TITULO DEL PROYECTO

Anuncio
TITULO DEL PROYECTO
DISEÑO DE UNA INTERFAZ RS-232 PARA POSICIONAR UN SERVOMOTOR
FESTO EMPLEANDO UNA TARJETA SEC AC.
DATOS DE LOS EJECUTORES
RAUL ALFONSO PRIETO ESCOBAR
CÓDIGO: 44991121.
DIRECCIÓN: Cra 2 No. 4 – 64 Zipaquirá.
TELÉFONO: 091-8526086; CELULAR: 310-3305046
E-MAIL:
raulpe21@hotmail.com
raulpe21@gmail.com
HARVEY RODRIGO CORTÉS GARZÓN
CÓDIGO: 44991069.
DIRECCIÓN: Cll 2A No 16-21 Zipaquirá.
TELÉFONO: 091-8525325; CELULAR: 3112269176
E-MAIL:
harveyrcg69@hotmail.com
harveyrcg69@yahoo.es
NOTA ACEPTACIÓN
___________________________________
JURADO
___________________________________
JURADO
Bogotá, D.C. Noviembre de 2005
2
AGRADECIMIENTOS Y DEDICATORIA
Damos un agradecimiento muy especial a todas
las personas que nos colaboraron en este
largo proceso, en especial a nuestros padres
que tuvieron mucha paciencia para con nosotros.
Queremos dedicar este trabajo a Dios pues
hasta ahora es lo más grande que hemos hecho.
3
TABLA DE CONTENIDO
TITULO DEL PROYECTO................................................................................... 1
DATOS DE LOS EJECUTORES.......................................................................... 1
AGRADECIMIENTOS Y DEDICATORIA............................................................. 3
LISTA DE TABLAS............................................................................................... 7
RESUMEN........................................................................................................... 8
2. ESTADO DEL ARTE...................................................................................... 10
3.JUSTIFICACIÓN............................................................................................. 11
4.OBJETIVOS.................................................................................................... 12
4.1. OBJETIVO GENERAL............................................................................. 12
4.2. OBJETIVOS ESPECIFICOS................................................................... 12
5. MARCO TEÓRICO......................................................................................... 13
5.1. ESTUDIO DE LA TARJETA SEC-AC...................................................... 13
5.1.1. Unidad de Control................................................................................. 13
5.1.2.1. Alimentación...................................................................................... 14
5.1.2.2. Etapa de Salida................................................................................. 14
5.1.3. Display.................................................................................................. 14
5.1.4. Interface Serie...................................................................................... 14
5.1.5. Interfaces de Usuario............................................................................ 15
5.1.5.1. Entradas Digitales: ............................................................................ 15
5.1.5.2. Finales de Carrera por Hardware: .................................................... 15
5.1.5.3. Entradas Análogas: .......................................................................... 15
5.1.6. Parametrizaciones................................................................................ 15
5.1.6.1. Programa de Parametrización .......................................................... 16
5.1.7. Funciones de supervisión..................................................................... 16
5.1.7.1 Supervisión de la etapa final de potencia........................................... 16
5.1.7.1.1. Supervisión sobre intensidad y cortocircuito. .................................16
5.2 MICROCONTROLADORES:.................................................................... 17
5.2.1 Aplicaciones de los microcontroladores................................................. 19
5.2.2. El mercado de los microcontroladores.................................................. 19
5.2.3. ¿Qué microcontrolador emplear?......................................................... 20
5.2.3.1 Costos. ............................................................................................... 20
5.2.3.2.3. Consumo: ...................................................................................... 22
5.2.3.2.4. Memoria: ........................................................................................ 22
5.2.3.2.5 Ancho de palabra: ........................................................................... 22
5.2.3.2.6. Diseño de la placa: ........................................................................ 23
5.2.4. Recursos comunes a todos los microcontroladores............................. 24
5.2.5. Arquitectura básica............................................................................... 24
5.2.5.2. Memoria............................................................................................. 25
5.2.5.4. Reloj principal............................................................................... 26
5.2.6. Recursos especiales............................................................................. 26
5.2.6.1. Temporizadores o “Timers”............................................................... 27
4
5.2.6.2. Perro guardián o “Watchdog”............................................................ 27
5.2.6.5. Conversor A/D (CAD)........................................................................ 28
5.2.6.6. Conversor D/A (CDA)....................................................................... 28
5.2.6.8. Modulador de anchura de impulsos o PWM................................. 29
5.2.6.9. Puertas de E/S digitales.................................................................... 29
5.2.6.10. Puertas de comunicación................................................................ 29
5.2.7. Herramientas para el desarrollo de aplicaciones.................................. 30
5.2.7.1. Desarrollo del software:..................................................................... 30
5.2.8. La familia de los pic como elección.......................................................... 31
5.3. TECLADO MATRICIAL............................................................................ 33
5.4. LCD......................................................................................................... 34
5.4.1. LCD en la industria............................................................................... 35
5.4.2. LCD de texto......................................................................................... 36
5.4.3. LCD de gráficos.................................................................................... 37
5.5.1. El puerto serie en el PC y en el microcontrolador:................................40
6. ANALISIS....................................................................................................... 43
7.1. VISUALIZACIÓN:.................................................................................... 48
7.4. TRANSMISIÓN Y RECEPCIÓN:............................................................. 50
8. MONTAJE...................................................................................................... 52
8.1. DIMENSIONES DE LA TARJETA SEA-AC............................................. 52
8.2. RESUMEN DE CONEXIÓN..................................................................... 57
9. PLANO DE ELECTRONICO.......................................................................... 58
10. DIAGRAMA DE BLOQUES:......................................................................... 59
11. DIAGRAMA DE FLUJO................................................................................ 60
12. CODIGO FUENTE....................................................................................... 61
13. PROGRAMADOR........................................................................................ 77
14. CIRCUITO IMPRESO.................................................................................. 78
15. IMPRESO..................................................................................................... 79
CONCLUSIONES............................................................................................... 80
BIBLIOGRAFIA.................................................................................................. 81
5
LISTA DE FIGURAS
1ª Gráfica: Arquitectura Harvard........................................................................ 24
2ª Gráfica: Esquema y disposición de pines de un microcontrolador Pic 16f877
........................................................................................................................... 33
3ª Gráfico: Diagrama de pines de Teclado Matricial Hexadecimal.....................33
4ª Gráfica: Conectores db9 y db25.................................................................... 40
5 Gráfica: LCD de 2x16 con luz......................................................................... 48
6ª Gráfica: Teclado Matricial 4x4....................................................................... 49
7ª Gráfica: Microcontrolador Pic 16f877............................................................. 50
8ª Gráfica: Max 232 9ª Gráfica: Cable para conexión Serial........................... 50
8ª Gráfica: Max 232 9ª Gráfica: Cable para conexión Serial........................... 50
10ª Gráfica: Dimensiones de la tarjeta SEC-AC................................................ 52
11ª Gráfica: Distancias mínimas para el montaje en pared o en armario de
maniobra............................................................................................................ 53
12ª Gráfica: Vista Frontal................................................................................... 54
13ª Gráfica: Vista Superior................................................................................. 55
14ª Gráfica: Vista inferior................................................................................... 56
15ª Gráfica: Conexionado con servomotor......................................................... 57
16ª Gráfica: Plano Electrónico........................................................................... 58
17ª Gráfica: Diagrama de Bloques..................................................................... 59
6
LISTA DE TABLAS
Tabla 1: Nombre y función de pines del estándar rs-232................................... 38
Tabla 2: Pines rs-232 en conectores db9 y db25............................................... 39
Tabla 3: Instrucciones de programación para tarjeta SEC-AC por rs-232......... 45
7
RESUMEN
El proyecto consiste en el diseño de una interfaz basada en microcontroladores, la cual
permite programar una tarjeta SEC-AC de FESTO1, para que controle el movimiento de
un Servomotor. Esta interfaz realizara la programación de las diferentes posiciones a la
cual el servomotor se debe dirigir.
La parte de control esta constituida por un microcontrolador de microchip 16f877a, y
está encargado de recibir los datos brindados por el usuario, con un teclado matricial, y
visualizados en un pantalla de cristal líquido LCD, para controlar la tarjeta SEC-AC por
medio de RS-2322. Los datos brindados por el usuario son adquiridos por un teclado
matricial
La idea de este proyecto, es disminuir los costos de operación a la hora de programar un
servomotor FESTO, por esta razón, diseñamos una interfaz que maneje comunicación
RS-232, la cual tenga la capacidad de programar las posiciones al servomotor FESTO a
través de su tarjeta controladora SEC-AC.
1
2
FESTO: Empresa de Automatización a nivel mundial
RS 232: Estándar para comunicación serial.
8
1. IDENTIFICACIÓN DEL PROBLEMA
En la industria existen cientos de aplicativos industriales que hacen posicionamiento en
una sola dimensión, en éstos procesos en la mayoría de los casos no se pueden
implementar soluciones que incluyan PLC´s3 por su costo, es decir, se requiere de otro
tipo de soluciones que sean asequibles a pequeñas y medianas industrias.
En la actualidad, los servomotores FESTO se manejan con PLC y por su elevado costo
hacen que muchos procesos no se automaticen; con ésta interfaz se busca que más
empresas puedan acceder a sistemas de costo reducido, con la misma funcionalidad y
fiabilidad.
3
PLC: Controlador Lógico Programable
9
2. ESTADO DEL ARTE
En la industria Colombiana, la Automatización es un proceso que se viene desarrollando
tanto desde las Pymes, hasta llegar a las grandes empresas, en todas ellas, la
implementación de mecanismos autónomos es hoy en día una necesidad.
En la implementación de los servomotores FESTO, se tiene una gran falencia, su
elevado costo en la parte de control, puesto que en la actualidad se está trabajando con
mecanismos basados en PLC.
Cuando el PLC está dedicado a diferentes tareas (por ejemplo el manejo de un
servomotor, una banda transportadora y una electroválvula), se justifica su utilización.
Pero, cuando la empresa sólo necesita controlar la posición de un servomotor FESTO,
esta solución no es económicamente atractiva.
La implementación de esta interfaz, será un gran beneficio para la empresa FESTO, ya
que podría ampliar su mercado a diferentes empresas por su bajo costo.
10
3. JUSTIFICACIÓN
Los sistemas que utilizan un solo actuador requieren solamente de una tarjeta
controladora, en el caso de actuadores FESTO emplean la tarjeta controladora SEC-AC,
éstos procesos se distinguen por emplear sistemas sencillos y económicos de
implementar.
Las Empresas que los requieren no los implementan debido a que la única forma de
programar y hacer posicionamiento a través de la SEC es con un PLC, lo que aumenta
enormemente el costo de la aplicación; entonces éstas empresas optan por desarrollos
más económicos que no ofrecen la fiabilidad que ellos necesitan.
Con la implementación de la programación de la SEC por medio de un microcontrolador
se supera la barrera de los costos, dado que los microcontroladores son muy económicos
y fáciles de conseguir en el mercado, por tanto, muchas más empresas podrán acceder a
este tipo de tecnología.
11
4. OBJETIVOS
4.1. OBJETIVO GENERAL
Diseñar una interfaz RS-232 para posicionar un Servomotor FESTO empleando una
tarjeta SEC-AC.
4.2. OBJETIVOS ESPECIFICOS
•
Estudiar la tarjeta SEC-AC, que controla al Servomotor, para saber cómo se le
programan las posiciones.
•
Elegir el tipo de controlador más óptimo para este sistema.
•
Elegir la interfaz más adecuada para el manejo del Servomotor.
12
5. MARCO TEÓRICO
5.1. ESTUDIO DE LA TARJETA SEC-AC
Las tarjetas SEC-AC4, son dispositivos creados por FESTO con el fin de controlar
servomotores con gran precisión, son servoreguladores de corriente alterna
completamente digitales que pueden adaptarse a un gran número de aplicaciones debido
a sus amplias posibilidades de parametrización.
Entre las características más importantes de esta tarjeta tenemos:
–
Puede Acoplarse a un bus de campo5 CAN open o PROFIBUS, (Solicitando un
–
módulo extra, bajo demanda).
Integración de todos los filtros necesarios para su optimo funcionamiento, como son
–
los filtros de red, filtros de salida del motor, filtros para alimentación, y filtros para
las entradas y salidas.
Aislamiento eléctrico completo entre la unidad de control y la etapa de salida,
–
entradas y salidas digitales, analógicas y electrónicas de control.
Sencillo acoplamiento a un control de nivel superior como un PLC.
5.1.1. Unidad de Control
La Unidad de control de esta tarjeta está compuesta por un microcontrolador RISC de
32 bits de alta integración del tipo HITACHI SH 7032.
La comunicación con otros dispositivos (PLC y computadores) se realiza por medio de
interfaz serie.
Las diez entradas digitales externas y las 5 salidas digitales están completamente
aisladas.
4
5
SEC-AC Commissioning es. Manual 192 353 0007NH FESTO 205 págs.
Bus de Campo: Modo de Comunicación entre PLC`s.
13
5.1.2. Etapa final de Salida
Los motores deben estar conectados en estrella6, para evitar corrientes circundantes en el
motor.
5.1.2.1. Alimentación
Para la tarjeta SEC-AC-305 no se necesita una fuente de alimentación externa para
potencias nominales en el margen de dimensionado. La conexión se realiza a una red
monofásica de 230 V AC. Para la SEC-AC-508 se puede conectar directamente a una
red trifásica.
5.1.2.2. Etapa de Salida
En la etapa de salida, si se produce alguna irregularidad, se desconectará muy
rápidamente, con esto obtenemos un alto grado de protección al motor, y a la tarjeta.
5.1.3. Display
La tarjeta SEC-AC se comunica con el usuario por medio de unos display, configurados
de la siguiente manera.
El led verde, ubicado en la parte frontal de la tarjeta SEC-AC, sirve para indicar que el
sistema está preparado para funcionar.
El display de 7 segmentos en la parte frontal de la SEC-AC, indica el modo de
funcionamiento y muestra cualquier mensaje de error.
5.1.4. Interface Serie
El interfaz serie RS-232, sirve para parametrizar el SEC-AC. La parametrización se
realiza actualmente por medio de un programa de parametrización para PC, en sistema
6
Estrella: Tipo de conexionado para motores trifásicos.
14
operativo Windows/NT. En aplicaciones en las que no se necesitan elevadas
transmisiones de datos ni la puesta en red de varios reguladores, el RS-232 también
puede utilizarse para controlar el regulador.
5.1.5. Interfaces de Usuario
5.1.5.1. Entradas Digitales:
Dispone de diez entradas digitales para las funciones elementales de control. Para
guardar destinos de posicionado, el SEC-AC posee una tabla de destino con perfiles de
posicionado individuales, a los cuales puede accederse posteriormente. Cuatro salidas
sirven para la selección del destino, una quinta entrada se utiliza como entrada de
arranque.
5.1.5.2. Finales de Carrera por Hardware:
Los finales de carrera por hardware sirve para establecer límites de seguridad en la zona
de movimiento. Durante el recorrido de referencia, uno de los dos finales de carrera
sirve como punto de referencia para el control del posicionado.
5.1.5.3. Entradas Análogas:
Esta tarjeta posee dos entradas análogas diferenciales, para evitar interferencias; sirven
para especificar valores nominales (velocidad o par) para el regulador.
5.1.6. Parametrizaciones
El SEC-AC posee dos márgenes de memoria en los que almacena parámetros. La
memoria FLASH7 se utiliza para parámetros que son cargados cuando el control se pone
en marcha o tras un RESET. Estos parámetros son retenido incluso cuando se corta la
alimentación. La memoria interna (RAM) se utiliza para parámetros que se utilizan
Memoria Flash: Funciona dinámicamente, puede ser borrada y se encunetra en la mayoría de
dispositivos actuales.
7
15
realmente para el control. Puede accederse a estos parámetros con el programa de
parametrización.
5.1.6.1. Programa de Parametrización
Es un programa para parametrizar, controlar y supervisar el funcionamiento de la SECAC a través de las interfaces de comunicación. El código de funcionamiento es bajo
Windows, con esto se busca que pueda ser utilizado por usuarios con poca experiencia
en la parte Computacional.
5.1.7. Funciones de supervisión
El SEC-AC posee un amplia gama de sensores, los cuales supervisan la etapa final de
salida de potencia, como el motor y la comunicación col los periféricos.
Cualquier fallo que se produzca en la SEC-AC, es guardado en la memoria interna de la
tarjeta. La gran mayoria de los errores hacen que la tarjeta desconecte la etapa final de
potencia. Para restaurar el sistema, es necesario desconectar el regulador, y ser borrada
la memoria de errores, (desconectar la tensión o accionar el sistema de reset encima del
display de cifras).
5.1.7.1 Supervisión de la etapa final de potencia
La etapa final de potencia está supervisada por amplias funciones de supervisión.
5.1.7.1.1. Supervisión sobre intensidad y cortocircuito.
Esta responde cuando la intensidad en el circuito sobrepasa dos veces la intensidad
máxima del regulador. Los cortocircuitos entre dos fases del motor son reconocidos, así
como los cortocircuitos en los terminales de salida del motor con respecto a los
potenciales de referencia positivos y negativos del circuito intermedio y con respecto al
tierra de protección. Cuando el supervisor de errores reconoce una sobreintensidad, la
16
etapa final de potencia se desconecta inmediatamente, de forma que está garantizada la
resistencia a cortocircuitos.
5.1.7.1.2. Supervisión de sobreintensidad para el circuito intermedio.
Esta responde así que la tensión del circuito intermedio sobrepasa el margen de tensión
de funcionamiento. En este caso la etapa final de potencia se desconecta.
5.1.7.1.3. Supervisión de temperatura de disparo de calor:
La temperatura del disipador en la etapa final de potencia se mide con un sensor lineal
de temperatura. Cuando se sobrepasa una determinada temperatura definida, el regulador
se desconectará.
5.2 MICROCONTROLADORES:
Normalmente hay confusión al mencionar microcontroladores con controladores por lo
que iniciaremos con definir los dos términos para aclarar sus diferencias:
Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o
varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno
dispone de un sensor que mide constantemente su temperatura interna y, cuando traspasa
los límites prefijados, genera las señales adecuadas que accionan los efectores que
intentan llevar el valor de la temperatura dentro del rango estipulado.
Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su
implementación física ha variado frecuentemente. Hace tres décadas, los controladores
se construían exclusivamente con componentes de lógica discreta, posteriormente se
emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre
una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se
han podido incluir en un chip, el cual recibe el nombre de microcontrolador8.
Realmente consiste en un sencillo pero completo computador contenido en el corazón
(chip) de un circuito integrado.
8
Manual del PIC. 152 págs. Victor Rodríguez.
17
Un microcontrolador es un circuito integrado de alta escala de integración que incorpora
la mayor parte de los elementos que configuran un controlador.
Un microcontrolador dispone normalmente de los siguientes componentes:
•
Procesador o UCP (Unidad Central de Proceso).
•
Memoria RAM para Contener los datos.
•
Memoria para el programa tipo ROM/PROM/EPROM.
•
Líneas de E/S para comunicarse con el exterior.
•
Diversos módulos para el control de periféricos (temporizadores, Puertas Serie y
Paralelo,
CAD:
Conversores
Analógico/Digital,
CDA:
Conversores
Digital/Analógico, etc.).
•
Generador de impulsos de reloj que sincronizan el funcionamiento de todo el
sistema.
Los productos que para su regulación incorporan un microcontrolador disponen de las
siguientes ventajas:
•
Aumento de prestaciones: un mayor control sobre un determinado elemento
representa una mejora considerable en el mismo.
•
Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado
número de elementos disminuye el riesgo de averías y se precisan menos ajustes.
•
Reducción
del tamaño
en el producto
acabado: La integración
del
microcontrolador en un chip disminuye el volumen, la mano de obra y los stocks.
•
Mayor flexibilidad: las características de control están programadas por lo que su
modificación sólo necesita cambios en el programa de instrucciones.
El microcontrolador es en definitiva un circuito integrado que incluye todos los
componentes de un computador. Debido a su reducido tamaño es posible montar el
controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el
nombre de controlador empotrado (embedded controller).
18
5.2.1 Aplicaciones de los microcontroladores.
Cada vez existen más productos que incorporan un microcontrolador con el fin de
aumentar sustancialmente sus prestaciones, reducir su tamaño y costo, mejorar su
fiabilidad y disminuir el consumo.
Algunos fabricantes de microcontroladores superan el millón de unidades de un modelo
determinado producidas en una semana. Este dato puede dar una idea de la masiva
utilización de estos componentes.
Los microcontroladores están siendo empleados en multitud de sistemas presentes en
nuestra vida diaria, como pueden ser juguetes, horno microondas, frigoríficos,
televisores, computadoras, impresoras, módems, el sistema de arranque de nuestro
coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados
como instrumentación electrónica, control de sistemas en una nave espacial, etc. Una
aplicación típica podría emplear varios microcontroladores para controlar pequeñas
partes del sistema. Estos pequeños controladores podrían comunicarse entre ellos y con
un procesador central, probablemente más potente, para compartir la información y
coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC.
5.2.2. El mercado de los microcontroladores.
Aunque en el mercado de la microinformática la mayor atención la acaparan los
desarrollos de los microprocesadores, lo cierto es que se venden cientos de
microcontroladores por cada uno de aquéllos.
Existe una gran diversidad de microcontroladores. Quizá la clasificación más importante
sea entre microcontroladores de 4, 8, 16 ó 32 bits. Aunque las prestaciones de los
microcontroladores de 16 y 32 bits son superiores a los de 4 y 8 bits, la realidad es que
los microcontroladores de 8 bits dominan el mercado y los de 4 bits se resisten a
desaparecer. La razón de esta tendencia es que los microcontroladores de 4 y 8 bits son
apropiados para la gran mayoría de las aplicaciones, lo que hace absurdo emplear micros
19
más potentes y consecuentemente más caros. Uno de los sectores que más tira del
mercado del microcontrolador es el mercado automovilístico. De hecho, algunas de las
familias de microcontroladores actuales se desarrollaron pensando en este sector, siendo
modificadas posteriormente para adaptarse a sistemas más genéricos. El mercado del
automóvil es además uno de los más exigentes: los componentes electrónicos deben
operar bajo condiciones extremas de vibraciones, choques, ruido, etc. y seguir siendo
fiables. El fallo de cualquier componente en un automóvil puede ser el origen de un
accidente.
En cuanto a las técnicas de fabricación, cabe decir que prácticamente la totalidad de los
microcontroladores actuales se fabrican con tecnología CMOS 49. Esta tecnología supera
a las técnicas anteriores por su bajo consumo y alta inmunidad al ruido.
También los modernos microcontroladores de 32 bits van afianzando sus posiciones en
el mercado, siendo las áreas de más interés el procesamiento de imágenes, las
comunicaciones, las aplicaciones militares, los procesos industriales y el control de los
dispositivos de almacenamiento masivo de datos.
5.2.3. ¿Qué microcontrolador emplear?
A la hora de escoger el microcontrolador a emplear en un diseño concreto hay que tener
en cuenta multitud de factores, como la documentación y herramientas de desarrollo
disponibles y su precio, la cantidad de fabricantes que lo producen y por supuesto las
características del microcontrolador (tipo de memoria de programa, número de
temporizadores, interrupciones, etc.):
5.2.3.1 Costos.
Como es lógico, los fabricantes de microcontroladores compiten duramente para vender
sus productos. Y no les va demasiado mal ya que sin hacer demasiado ruido venden 10
veces más microcontroladores que microprocesadores.
9
CMOS: Complementary Metal Oxide Semiconductor
20
Para que nos hagamos una idea, para el fabricante que usa el microcontrolador en su
producto una diferencia de precio en el microcontrolador de algunos pesos es importante
(el consumidor deberá pagar además el costo del empaquetado, el de los otros
componentes, el diseño del hardware y el desarrollo del software). Si el fabricante desea
reducir costos debe tener en cuenta las herramientas de apoyo con que va a contar:
emuladores, simuladores, ensambladores, compiladores, etc. Es habitual que muchos de
ellos siempre se decanten por microcontroladores pertenecientes a una única familia.
5.2.3.2 Aplicación.
Antes de seleccionar un microcontrolador es imprescindible analizar los requisitos de la
aplicación:
5.2.3.2.1. Procesamiento de datos:
Puede ser necesario que el microcontrolador realice cálculos críticos en un tiempo
limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo
suficientemente rápido para ello. Por otro lado, habrá que tener en cuenta la precisión de
los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser
necesario acudir a microcontroladores de 16 ó 32 bits, o incluso a hardware de coma
flotante. Una alternativa más barata y quizá suficiente es usar librerías para manejar los
datos de alta precisión.
5.2.3.2.2. Entrada Salida:
Para determinar las necesidades de Entrada/Salida del sistema es conveniente dibujar un
diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y
tipo de señales a controlar. Una vez realizado este análisis puede ser necesario añadir
periféricos hardware externos o cambiar a otro microcontrolador más adecuado a ese
sistema.
21
5.2.3.2.3. Consumo:
Algunos productos que incorporan microcontroladores están alimentados con baterías y
su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo más
conveniente en un caso como éste puede ser que el microcontrolador esté en estado de
bajo consumo pero que despierte ante la activación de una señal (una interrupción) y
ejecute el programa adecuado para procesarla.
5.2.3.2.4. Memoria:
Para detectar las necesidades de memoria de nuestra aplicación debemos separarla en
memoria volátil (RAM), memoria no volátil (ROM, EPROM, etc.) y memoria no volátil
modificable (EEPROM). Este último tipo de memoria puede ser útil para incluir
información específica de la aplicación como un número de serie o parámetros de
calibración.
El tipo de memoria a emplear vendrá determinado por el volumen de ventas previsto del
producto: de menor a mayor volumen será conveniente emplear EPROM, OTP y ROM.
En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una
versión preliminar, aunque sea en pseudo-código, de la aplicación y a partir de ella hacer
una estimación de cuánta memoria volátil y no volátil es necesaria y si es conveniente
disponer de memoria no volátil modificable.
5.2.3.2.5 Ancho de palabra:
El criterio de diseño debe ser seleccionar el microcontrolador de menor ancho de palabra
que satisfaga los requerimientos de la aplicación. Usar un microcontrolador de 4 bits
supondrá una reducción en los costos importante, mientras que uno de 8 bits puede ser el
más adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32
bits, debido a su elevado costo, deben reservarse para aplicaciones que requieran sus
altas prestaciones (Entrada/Salida potente o espacio de direccionamiento muy elevado).
22
5.2.3.2.6. Diseño de la placa:
La selección de un microcontrolador concreto condicionará el diseño de la placa de
circuitos. Debe tenerse en cuenta que quizá usar un microcontrolador barato encarezca el
resto de componentes del diseño.
Los microcontroladores más populares se encuentran, sin duda, entre las mejores
elecciones:
8048 (Intel10). Es el padre de los microcontroladores actuales, el primero de todos. Su
precio, disponibilidad y herramientas de desarrollo hacen que todavía sea muy popular.
8051 (Intel y otros). Es sin duda el microcontrolador más popular. Fácil de programar,
pero potente. Está bien documentado y posee cientos de variantes e incontables
herramientas de desarrollo.
80186, 80188 y 80386 EX (Intel). Versiones en microcontrolador de los populares
microprocesadores 8086 y 8088. Su principal ventaja es que permiten aprovechar las
herramientas de desarrollo para PC.
68HC11 (Motorola y Toshiba). Es un microcontrolador de 8 bits potente y popular con
gran cantidad de variantes.
683xx (Motorola). Surgido a partir de la popular familia 68k, a la que se incorporan
algunos periféricos. Son microcontroladores de altísimas prestaciones.
PIC (MicroChip). Familia de microcontroladores que gana popularidad día a día.
Fueron los primeros microcontroladores RISC.
Es
preciso
resaltar
en
este
punto
que
existen
innumerables
familias
microcontroladores, cada una de las cuales posee un gran número de variantes.
Empresa productora de Procesadores
10
23
de
5.2.4. Recursos comunes a todos los microcontroladores.
Al estar todos los microcontroladores integrados en un chip, su estructura fundamental y
sus características básicas son muy parecidas. Todos deben disponer de los bloques
esenciales Procesador, memoria de datos y de instrucciones, líneas de E/S, oscilador de
reloj y módulos controladores de periféricos. Sin embargo, cada fabricante intenta
enfatizar los recursos más idóneos para las aplicaciones a las que se destinan
preferentemente.
En este apartado se hace un recorrido de todos los recursos que se hallan en todos los
microcontroladores describiendo las diversas alternativas y opciones que pueden
encontrarse según el modelo seleccionado.
5.2.5. Arquitectura básica
Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de
von Neumann, en el momento presente se impone la arquitectura Harvard. La
Arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal
donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se
accede a través de un sistema de buses único (direcciones, datos y control).
La arquitectura Harvard11 dispone de dos memorias independientes una, que contiene
sólo instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de
buses de acceso y es posible realizar operaciones de acceso (lectura o escritura)
simultáneamente en ambas memorias.
1ª Gráfica: Arquitectura Harvard
Se le dió el nombre de Harvard en honor a la Universidad donde se inventó.
11
24
5.2.5.1. El procesador o UCP12
Es el elemento más importante del microcontrolador y determina sus principales
características, tanto a nivel hardware como software.
Se encarga de direccionar la memoria de instrucciones, recibir el código OP de la
instrucción en curso, su decodificación y la ejecución de la operación que implica la
instrucción, así como la búsqueda de los operandos y el almacenamiento del resultado.
5.2.5.2. Memoria
En los microcontroladores la memoria de instrucciones y datos está integrada en el
propio chip. Una parte debe ser no volátil, tipo ROM13, y se destina a contener el
programa de instrucciones que gobierna la aplicación. Otra parte de memoria será tipo
RAM, volátil, y se destina a guardar las variables y los datos.
La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las
variables y los cambios de información que se produzcan en el transcurso del programa.
Por otra parte, como sólo existe un programa activo, no se requiere guardar una copia
del mismo en la RAM pues se ejecuta directamente desde la ROM.
5.2.5.3. Puertas de Entrada y Salida
La principal utilidad de las patitas que posee la cápsula que contiene un
microcontrolador es soportar las líneas de E/S que comunican al computador interno con
los periféricos exteriores.
Según los controladores de periféricos que posea cada modelo de microcontrolador, las
líneas de E/S se destinan a proporcionar el soporte a las señales de entrada, salida y
control.
12
13
UCP: Unidad Central de Proceso.
ROM: Es equivalente en un PC al Disco Duro
25
5.2.5.4. Reloj principal
Todos los microcontroladores disponen de un circuito oscilador que genera una onda
cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la
sincronización de todas las operaciones del sistema.
Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo se
necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia
de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a
elementos pasivos o bien un resonador cerámico o una red R-C14.
Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las
instrucciones pero lleva aparejado un incremento del consumo de energía.
5.2.6. Recursos especiales
Cada fabricante oferta numerosas versiones de una arquitectura básica de
microcontrolador. En algunas amplía las capacidades de las memorias, en otras
incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones
muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga
todos los requerimientos de su aplicación. De esta forma, minimizará el costo, el
hardware y el software.
Los principales recursos específicos que incorporan los microcontroladores son:
• Temporizadores o “Timers”.
• Perro guardián o “Watchdog”.
• Protección ante fallo de alimentación o “Brownout”.
• Estado de reposo o de bajo consumo.
14
Red R-C es equivalente a un circuito resistencia-condensador.
26
• Conversor A/D.
• Conversor D/A.
• Comparador analógico.
• Modulador de anchura de impulsos o PWM.
• Puertas de E/S digitales.
• Puertas de comunicación.
5.2.6.1. Temporizadores o “Timers”
Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta
de acontecimientos que suceden en el exterior (contadores).
5.2.6.2. Perro guardián o “Watchdog”
Cuando el computador personal se bloquea por un fallo del software u otra causa, se
pulsa el botón del reset y se reinicializa el sistema. Pero un microcontrolador funciona
sin el control de un supervisor y de forma continuada las 24 horas del día. El Perro
guardián consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un
reset automáticamente en el sistema.
5.2.6.3. Protección ante fallo de alimentación o “Brownout”
Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentación
(VDD) es inferior a un voltaje mínimo (“brownout”). Mientras el voltaje de
alimentación sea inferior al de brownout el dispositivo se mantiene reseteado,
comenzando a funcionar normalmente cuando sobrepasa dicho valor.
27
5.2.6.4. Estado de reposo ó de bajo consumo
Son abundantes las situaciones reales de trabajo en que el microcontrolador debe
esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de
nuevo en funcionamiento. Para ahorrar energía, (factor clave en los aparatos portátiles),
los microcontroladores disponen de una instrucción especial (SLEEP en los PIC), que
les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia
son mínimos. En dicho estado se detiene el reloj principal y se “congelan” sus circuitos
asociados, quedando sumido en un profundo “sueño” el microcontrolador. Al activarse
una interrupción ocasionada por el acontecimiento esperado, el microcontrolador se
despierta y reanuda su trabajo.
5.2.6.5. Conversor A/D (CAD)
Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden
procesar señales analógicas, tan abundantes en las aplicaciones. Suelen disponer de un
multiplexor que permite aplicar a la entrada del CAD diversas señales analógicas desde
las patitas del circuito integrado.
5.2.6.6. Conversor D/A (CDA)
Transforma los datos digitales obtenidos del procesamiento del computador en su
correspondiente señal analógica que saca al exterior por una de las patitas de la cápsula.
Existen muchos efectores que trabajan con señales analógicas.
5.2.6.7. Comparador analógico
Algunos modelos de microcontroladores disponen internamente de un Amplificador
Operacional que actúa como comparador entre una señal fija de referencia y otra
variable que se aplica por una de las patitas de la cápsula. La salida del comparador
proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra.
También hay modelos de microcontroladores con un módulo de tensión de referencia
que proporciona diversas tensiones de referencia que se pueden aplicar en los
comparadores.
28
5.2.6.8. Modulador de anchura de impulsos o PWM
Son circuitos que proporcionan en su salida impulsos de anchura variable, que se
ofrecen al exterior a través de las patitas del encapsulado.
5.2.6.9. Puertas de E/S digitales
Todos los microcontroladores destinan algunas de sus patitas a soportar líneas de E/S
digitales. Por lo general, estas líneas se agrupan de ocho en ocho formando Puertas.
5.2.6.10. Puertas de comunicación
Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros
dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de
redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos
modelos disponen de recursos que permiten directamente esta tarea, entre los que
destacan:
•
UART, adaptador de comunicación serie asíncrona.
•
USART, adaptador de comunicación serie síncrona y asíncrona
•
Puerta paralela esclava para poder conectarse con los buses de otros
microprocesadores.
•
USB (Universal Serial Bus), que es un moderno bus serie para los PC.
•
Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips.
•
CAN (Controller Area Network), para permitir la adaptación con redes de
conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el
cableado de dispositivos en automóviles. En EE.UU. se usa el J185O.
29
5.2.7. Herramientas para el desarrollo de aplicaciones.
Uno de los factores que más importancia tiene a la hora de seleccionar un
microcontrolador entre todos los demás es el soporte tanto software como hardware de
que dispone. Un buen conjunto de herramientas de desarrollo puede ser decisivo en la
elección, ya que pueden suponer una ayuda inestimable en el desarrollo del proyecto.
Las principales herramientas de ayuda al desarrollo de sistemas basados en
microcontroladores son:
5.2.7.1. Desarrollo del software:
5.2.7.1.1. Ensamblador.
La programación en lenguaje ensamblador puede resultar un tanto ardua para el
principiante, pero permite desarrollar programas muy eficientes, ya que otorga al
programador el dominio absoluto del sistema. Los fabricantes suelen proporcionar el
programa ensamblador de forma gratuita y en cualquier caso siempre se puede encontrar
una versión gratuita para los microcontroladores más populares.
5.2.7.1.2. Compilador.
La programación en un lenguaje de alto nivel (como el C) permite disminuir el tiempo
de desarrollo de un producto. No obstante, si no se programa con cuidado, el código
resultante puede ser mucho más ineficiente que el programado en ensamblador. Las
versiones más potentes suelen ser muy caras, aunque para los microcontroladores más
populares pueden encontrarse versiones demo limitadas e incluso compiladores
gratuitos.
5.2.7.2. Depuración:
Debido a que los microcontroladores van a controlar dispositivos físicos, los
desarrolladores necesitan herramientas que les permitan comprobar el buen
funcionamiento del microcontrolador cuando es conectado al resto de circuitos.
30
5.2.7.2.1. Simulador.
Son capaces de ejecutar en un PC programas realizados para el microcontrolador. Los
simuladores permiten tener un control absoluto sobre la ejecución de un programa,
siendo ideales para la depuración de los mismos. Su gran inconveniente es que es difícil
simular la entrada y salida de datos del microcontrolador. Tampoco cuentan con los
posibles ruidos en las entradas, pero, al menos, permiten el paso físico de la
implementación de un modo más seguro y menos costoso, puesto que ahorraremos en
grabaciones de chips para la prueba in-situ.
5.2.7.2.2. Placas de evaluación.
Se trata de pequeños sistemas con un microcontrolador ya montado y que suelen
conectarse a un PC desde el que se cargan los programas que se ejecutan en el
microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LEDs, fácil
acceso a los pines de E/S, etc. El sistema operativo de la placa recibe el nombre de
programa monitor. El programa monitor de algunas placas de evaluación, aparte de
permitir cargar programas y datos en la memoria del microcontrolador, puede permitir
en cualquier momento realizar ejecución paso a paso, monitorizar el estado del
microcontrolador o modificar los valores almacenados los registros o en la memoria.
5.2.7.2.3. Emuladores en circuito.
Se trata de un instrumento que se coloca entre el PC anfitrión y el zócalo de la tarjeta de
circuito impreso donde se alojará el microcontrolador definitivo. El programa es
ejecutado desde el PC, pero para la tarjeta de aplicación es como si lo hiciese el mismo
microcontrolador que luego irá en el zócalo. Presenta en pantalla toda la información tal
y como luego sucederá cuando se coloque la cápsula.
5.2.8. La familia de los pic como elección.
Hemos buscado en multitud de bibliografía y realmente nadie da una respuesta concreta,
pero una aproximación a la realidad puede ser esta:
31
Los PIC tienen gran velocidad, bajo precio, la facilidad de uso, la información, las
herramientas de apoyo.
Queremos constatar que para las aplicaciones más habituales (casi un 90%) la elección
de una versión adecuada de PIC es la mejor solución; sin embargo, dado su carácter
general, otras familias de microcontroladores son más eficaces en aplicaciones
específicas, especialmente si en ellas predomina una característica concreta, que puede
estar muy desarrollada en otra familia.
Los detalles más importantes que dan excelente acogida de los PIC son los siguientes:
 Sencillez de manejo: Tienen un juego de instrucciones reducido; 35 en la gama media.
 Buena información, fácil de conseguir y económica.
 Precio: Su costo es comparativamente inferior al de sus competidores.
 Poseen una elevada velocidad de funcionamiento. Buen promedio de parámetros:
velocidad, consumo, tamaño, alimentación, código compacto, etc.
 Herramientas de desarrollo fáciles y baratas. Muchas herramientas software se pueden
recoger libremente a través de Internet desde Microchip15.
 Existe una gran variedad de herramientas hardware que permiten grabar, depurar,
borrar y comprobar el comportamiento de los PIC.
 Diseño rápido.
 La gran variedad de modelos de PIC permite elegir el que mejor responde a los
requerimientos de la aplicación.
Para nuestro caso elegimos específicamente el microcontrolador pic 16f877 porque
cuenta con los recursos mencionados anteriormente, además su encapsulado de 40 pines
permite la conexión del teclado, la LCD16 y la comunicación RS-232 dejando abierta la
posibilidad a que la interfaz que diseñamos pueda ser mejorada en cuanto a otros
sistemas de visualización (de mayor resolución).
15
http://www.microchip.com
16
LCD: Display de Cristal Líquido.
32
2ª Gráfica: Esquema y disposición de pines de un microcontrolador Pic 16f877
5.3. TECLADO MATRICIAL
3ª Gráfico: Diagrama de pines de Teclado Matricial Hexadecimal
Un teclado17 de este tipo consta de 16 teclas (matriz 4 X 4). Por cada fila y cada columna
de la matriz hay un contacto que pasa por detrás de las teclas, los cuales están colocados
en las intersecciones entre filas y columnas.
17
www.disca.upv.es/aperles/ web51/modulos/modulo7/m7-teclado.html
33
Así pues, la columna18 1 (COL1) es un contacto que pasa por debajo del 1, del 4, del 7 y
del * ; la fila19 1 (FIL1) pasa debajo de la A, 3, 2 y 1.Filas y columnas no están
conectadas entre si.
Cuando se pulsa una tecla se conecta la columna y la fila que pasa por debajo de dicha
tecla. Por ejemplo, si se pulsa el 1 se conecta la COL1 con FIL1; si se pulsa el 8 se
conecta la COL2 con FIL3, y así sucesivamente con el resto de las teclas.
Esta forma estratégica de colocar todas las teclas y conexiones permite manejar 16
pulsadores con solo llevar 8 cables. Si en lugar de esto usáramos 16 pulsadores
tendríamos 32 cables, sin necesidad de pensar mucho se nos podría ocurrir ponerlos
todos con un terminal común, con lo que tendríamos 17 cables, La ventaja de usar la
configuración matricial es clara.
El inconveniente que tiene es que para saber que tecla estas pulsando hace falta un
microcontrolador. Para poder ir dando distintos valores a las columnas y saber,
dependiendo de los valores que se reflejen en las filas, la tecla pulsada. A un
microcontrolador no le cuesta nada hacer esto.
Dado que nuestro proyecto requiere un microcontrolador y que hay pines disponibles
empleamos este tipo de teclado para la interfaz con el usuario.
5.4. LCD
LCD son las siglas en inglés de "Pantalla de Cristal Líquido" ("Liquid Crystal Display")
Se trata de un sistema eléctrico de presentación de datos formado por 2 capas
conductoras trasparentes y en medio un material especial cristalino (cristal líquido) que
tienen la capacidad de orientar la luz a su paso.
Columna: Van de izquierda a derecha y están formadas por hileras.
Fila: Van de arriba a abajo.
18
19
34
Cuando la corriente circula entre los electrodos transparentes con la forma a representar
(por ejemplo, un segmento de un número) el material cristalino se reorienta alterando su
transparencia.
El material base de un LCD lo constituye el cristal líquido, el cual exhibe un
comportamiento similar al de los líquidos y unas propiedades físicas anisotrópicas
similares a las de los sólidos cristalinos. Las moléculas de cristal líquido poseen una
forma alargada y son más o menos paralelas entre sí en la fase cristalina. Según la
disposición molecular y su ordenamiento, se clasifican en tres tipos: nemáticos,
esméticos y colestéricos. La mayoría de cristales responden con facilidad a los campos
eléctricos, exhibiendo distintas propiedades ópticas en presencia o ausencia del campo.
El tipo más común de visualizador LCD es, con mucho, el denominado nemático de
torsión, término que indica que sus moléculas en su estado desactivado presentan una
disposición en espiral. La polarización o no de la luz que circula por el interior de la
estructura, mediante la aplicación o no de un campo eléctrico exterior, permite la
activación de una serie de segmentos transparentes, los cuales rodean al cristal líquido.
Según sus características ópticas, pueden también clasificarse como: reflectivos,
transmisivos y transreflectivos.
5.4.1. LCD en la industria
Las pantallas LCD se encuentran en multitud de dispositivos industriales y de consumo:
máquinas
expendedoras,
electrodomésticos,
equipos
de
telecomunicaciones,
computadoras, etc. Todos estos dispositivos utilizan pantallas fabricadas por terceros de
una manera mas o menos estandarizada. Cada LCD se compone de una pequeña placa
integrada que consta de:
•
La propia pantalla LCD.
•
Un microchip controlador.
•
Una pequeña memoria que contiene una tabla de caracteres.
•
Un interfaz de contactos eléctricos, para conexión externa.
•
Opcionalmente, una luz trasera para iluminar la pantalla.
35
El controlador simplifica el uso del LCD proporcionando una serie de funciones básicas
que se invocan mediante el interfaz eléctrico, destacando:
•
La escritura de caracteres en la pantalla.
•
El posicionado de un cursor parpadeante, si se desea.
•
El desplazamiento horizontal de los caracteres de la pantalla (scrolling).
La memoria implementa un mapa de bits para cada carácter de un juego de caracteres, es
decir, cada octeto de esta memoria describe los puntitos o pixels que deben iluminarse
para representar un carácter en la pantalla. Generalmente, se pueden definir caracteres a
medida modificando el contenido de esta memoria. Así, es posible mostrar símbolos que
no están originalmente contemplados en el juego de caracteres.
La interfaz de contactos eléctricos suele ser de tipo paralelo, donde varias señales
eléctricas simultáneas indican la función que debe ejecutar el controlador junto con sus
parámetros. Por tanto, se requiere cierta sincronización entre estas señales eléctricas.
La luz trasera facilita la lectura de la pantalla LCD en cualquier condición de
iluminación ambiental.
Existen dos tipos de pantallas LCD en el mercado: pantallas de texto y pantallas
gráficas.
5.4.2. LCD de texto
Los LCD de texto son los más baratos y simples de utilizar. Solamente permiten
visualizar mensajes cortos de texto. Existen algunos modelos estandarizados en la
industria, en función de su tamaño medido en número de líneas y columnas de texto.
Existen modelos de una, dos y cuatro filas únicamente. El número de columnas típico es
de ocho, dieciséis, veinte y cuarenta caracteres.
36
El controlador Hitachi HD44780 se ha convertido en un estándar de industria cuyas
especificaciones funcionales son imitadas por la mayoría de los fabricantes. Este
controlador cuenta con los siguientes interfaces eléctricos:
D0-D7: ocho señales eléctricas que componen un bus de datos.
R/W: una señal que indica si se desea leer o escribir en la pantalla (generalmente
solamente se escribe).
RS: una señal que indica si los datos presentes en D0-D7 corresponden bien a una
instrucción, bien a sus parámetros.
E: una señal para activar o desactivar la pantalla.
V0: señal electrica para determinar el contraste de la pantalla. Generalmente en el rango
de cero a cinco voltios. Cuando el voltaje es de cero voltios se obtienen los puntos más
oscuros.
Vss y Vdd: señales de alimentación. Generalmente a cinco voltios. La señal Vss sirve
para encender la luz trasera de la pantalla en algunos modelos.
Estas señales son fácilmente controladas desde un ordenador a través de un interfaz
paralelo, típicamente a través del interfaz IEEE 1284, también conocido como
"Centronics"20. El mismo que se utiliza para conectar impresoras.
5.4.3. LCD de gráficos
Las pantallas LCD gráficas permiten encender y apagar individualmente pixels de la
pantalla. De esta manera es posible mostrar gráficos en blanco y negro. No solamente
texto. Los controladores más populares son el Hitachi HD61202 y el Samsung KS0108.
Los tamaños también están estandarizados y se miden en filas y columnas de pixels.
Algunos tamaños típicos son 128x64 y 96x60. Naturalmente, algunos controladores
también permiten la escritura de texto de manera sencilla.
Estas pantallas son más caras y complejas de utilizar. Existen pocas aplicaciones donde
no baste con un LCD de texto. Se suelen utilizar, por ejemplo, en ecualizadores gráficos.
20
www.wikipedia.org/electr/lcd.htm
37
5.5. EL ESTANDAR RS-232
El puerto serie RS-232C, presente en la mayoría de los ordenadores actuales, es la forma
mas comúnmente usada para realizar transmisiones de datos entre ordenadores y entre
ordenadores y máquinas a nivel industrial. El RS-232C es un estándar que constituye la
tercera revisión de la antigua norma RS-232, propuesta por la EIA21, realizándose
posteriormente un versión internacional, conocida como V.24. Las diferencias entre
ambas son mínimas, por lo que a veces se habla indistintamente de V.24 y de RS-232C
(incluso sin el sufijo "C"), refiriéndose siempre al mismo estándar.
El RS-232C consiste en un conector tipo DB-25 de 25 pines, aunque es normal encontrar
la versión de 9 pines DB-9, mas barato e incluso mas extendido para cierto tipo de
periféricos (como el ratón serie del PC). En cualquier caso, los PCs no suelen emplear
mas de 9 pines en el conector DB-25. Las señales con las que trabaja este puerto serie
son digitales, de +12V (0 lógico) y -12V (1 lógico), para la entrada y salida de datos, y a
la inversa en las señales de control. El estado de reposo en la entrada y salida de datos es
-12V. Dependiendo de la velocidad de transmisión empleada, es posible tener cables de
hasta 15 metros.
Cada pin puede ser de entrada o de salida, teniendo una función especifica cada uno de
ellos. Las mas importantes son:
TXD
(Transmitir Datos)
RXD
(Recibir Datos)
DTR
(Terminal de Datos Listo)
DSR
(Equipo de Datos Listo)
RTS
(Solicitud de Envío)
CTS
(Libre para Envío)
DCD
(Detección de Portadora)
Tabla 1: Nombre y función de pines del estándar rs-232
21
Asociación de Industrias Electrónicas
38
Las señales TXD, DTR y RTS son de salida, mientras que RXD, DSR, CTS y DCD son
de entrada. La masa de referencia para todas las señales es SG (Tierra de Señal).
Finalmente, existen otras señales como RI (Indicador de Llamada), y otras poco
comunes que no se explican en este capítulo por ser irrelevante en la ejecución del
proyecto.
Numero
de Pin
Señal
Descripción
E/S
En DB-25 En DB-9
1
1
-
Masa chasis
-
2
3
TxD
Transmit Data
S
3
2
RxD
Receive Data
E
4
7
RTS
Request To Send
S
5
8
CTS
Clear To Send
E
6
6
DSR
Data Set Ready
E
7
5
SG
Signal Ground
-
8
1
15
-
TxC(*)
Transmit Clock
S
17
-
RxC(*)
Receive Clock
E
20
4
DTR
Data Terminal Ready
S
22
9
RI
Ring Indicator
E
24
-
CD/DCD (Data) Carrier Detect
RTxC(*) Transmit/Receive Clock
E
S
Tabla 2: Pines rs-232 en conectores db9 y db25
39
4ª Gráfica: Conectores db9 y db25
5.5.1. El puerto serie en el PC y en el microcontrolador:
El ordenador y el microcontrolador, controlan el puerto serie mediante un circuito
integrado especifico, llamado UART (Transmisor-Receptor-Asíncrono Universal).
Normalmente se utilizan los siguientes modelos de este chip: 8250 (bastante antiguo,
con fallos, solo llega a 9600 baudios), 16450 (versión corregida del 8250, llega hasta
115.200 baudios) y 16550A (con buffers de E/S). A partir de la gama Pentium, la
circuiteria UART de las placa base son todas de alta velocidad, es decir UART 16550A.
De hecho, la mayoría de los módems conectables a puerto serie necesitan dicho tipo de
UART, incluso algunos juegos para jugar en red a través del puerto serie necesitan de
este tipo de puerto serie. Por eso hay veces que un 486 no se comunica con la suficiente
velocidad con un PC Pentium. Los portátiles suelen llevar otros chips: 82510 (con buffer
especial, emula al 16450) o el 8251 (no es compatible).
Para controlar al puerto serie, la CPU y el microcontrolador emplean direcciones de
puertos de E/S y líneas de interrupción (IRQ). En el AT-286 se eligieron las direcciones
3F8h (o 0x3f8) e IRQ 4 para el COM1, y 2F8h e IRQ 3 para el COM2. El estándar del
PC llega hasta aquí, por lo que al añadir posteriormente otros puertos serie, se eligieron
las direcciones 3E8 y 2E8 para COM3-COM4, pero las IRQ no están especificadas.
Cada usuario debe elegirlas de acuerdo a las que tenga libres o el uso que vaya a hacer
de los puertos serie (por ejemplo, no importa compartir una misma IRQ en dos puertos
siempre que no se usen conjuntamente, ya que en caso contrario puede haber
problemas). Es por ello que últimamente, con el auge de las comunicaciones, los
40
fabricantes de PCs incluyan un puerto especial PS/2 para el ratón, dejando así libre un
puerto serie.
Mediante los puertos de E/S se pueden intercambiar datos, mientras que las IRQ
producen una interrupción para indicar a la CPU que ha ocurrido un evento (por
ejemplo, que ha llegado un dato, o que ha cambiado el estado de algunas señales de
entrada). La CPU debe responder a estas interrupciones lo mas rápido posible, para que
de tiempo a recoger el dato antes de que el siguiente lo sobrescriba. Sin embargo, las
UART 16550A incluyen unos buffers de tipo FIFO, dos de 16 bytes (para recepción y
transmisión), donde se pueden guardar varios datos antes de que la CPU los recoja. Esto
también disminuye el numero de interrupciones por segundo generadas por el puerto
serie.
El RS-232 puede transmitir los datos en grupos de 5, 6, 7 u 8 bits, a unas velocidades
determinadas (normalmente, 9600 bits por segundo o mas). Después de la transmisión
de los datos, le sigue un bit opcional de paridad (indica si el numero de bits transmitidos
es par o impar, para detectar fallos), y después 1 o 2 bits de Stop. Normalmente, el
protocolo utilizado ser 8N1 (que significa, 8 bits de datos, sin paridad y con 1 bit de
Stop).
Una vez que ha comenzado la transmisión de un dato, los bits tienen que llegar uno
detrás de otro a una velocidad constante y en determinados instantes de tiempo. Por eso
se dice que el RS-232 es asíncrono por caracter y síncrono por bit. Los pines que portan
los datos son RXD y TXD. Las demás se encargan de otros trabajos: DTR indica que el
ordenador esta encendido, DSR que el aparato conectado a dicho puerto esta encendido,
RTS que el ordenador puede recibir datos (porque no esta ocupado), CTS que el aparato
conectado puede recibir datos, y DCD detecta que existe una comunicación, presencia
de datos.
Tanto el aparato a conectar como el ordenador (o el programa terminal) tienen que usar
el mismo protocolo serie para comunicarse entre sí. Puesto que el estándar RS-232 no
permite indicar en que modo se esta trabajando, es el usuario quien tiene que decidirlo y
41
configurar ambas partes. Como ya se ha visto, los parámetros que hay que configurar
son: protocolo serie (8N1), velocidad del puerto serie, y protocolo de control de flujo.
Este ultimo puede ser por hardware (el que ya hemos visto, el handshaking RTS/CTS) o
bien por software (XON/XOFF, el cual no es muy recomendable ya que no se pueden
realizar transferencias binarias). La velocidad del puerto serie no tiene por que ser la
misma que la de transmisión de los datos, de hecho debe ser superior. Por ejemplo, para
transmisiones de 1200 baudios es recomendable usar 9600, y para 9600 baudios se
pueden usar 38400 (o 19200).
42
6. ANALISIS
De acuerdo al estudio realizado de la tarjeta SEC-AC y dado que el objeto de la Empresa
FESTO con este proyecto es la reducción de costos, y actualmente ellos manejan ésta
interfaz con un PLC que hace que para muchas aplicaciones sea inaccesible el sistema
debido a su alto costo, se implementó un sistema con un microcontrolador de la marca
MICROCHIP de la familia media de referencia pic16f877a, el cual por su costo
reducido, alta escala de integración y recursos con que cuenta nos permite realizar la
comunicación mediante el estándar RS-232; cuyas características tratamos en capítulos
anteriores.
Ahora bien, existen otro tipo de controladores que podrían utilizarse como las nuevas
tarjetas conocidas como @chip´s, pero son costosas para la aplicación y la mayoría de
sus recursos no serían empleadas.
La tarjeta SEC-AC es necesaria debido a que FESTO la emplea en todos sus
servomotores, los FIRMWARE22 que han diseñado para cada servo solamente aplican
para la SEC; y no cuentan con ninguna otra opción para los servos al menos en esta
marca.
El posicionamiento a través de la SEC lo manejan exclusivamente los técnicos de
FESTO quienes están acostumbrados a programarla y usarla a través de un PLC, el cuál
ya tiene los parámetros de posicionamiento. Los valores de posicionamiento se dan en
función de un valor entre 0 y 6553623 que son los valores que la SEC comprende, es
decir, ellos están familiarizados con el valor de 65536 y no de una revolución por lo que
no se pueden cambiar las convenciones que ellos manejan.
22
23
FIRMWARE: Archivo digital que contiene la información de un dispositivo físico.
Valor máximo de un registro de 16 bits.
43
Para el posicionamiento básico de un servo con la SEC sólo es necesario tener en cuenta
la posición final y la velocidad máxima permitida, ya que las aceleraciones finales y de
recorrido que aplica la SEC al servo son calculadas automáticamente por la misma
tarjeta a partir de éstos dos parámetros.
Al cargar el FIRMWARE al la SEC, ésta toma los parámetros del servo de allí lo que
hace que no sea necesario calibrar el servo púes vienen previamente calibrados. Aún así
se recomienda hacer la calibración pero como puede hacerse periódicamente de acuerdo
al trabajo que el motor tenga, entonces ésta operación debe hacerse desde un PC a través
del programa WMEMOC24 y verificar las posiciones con este software, luego programar
dos o tres posiciones con la Interfaz RS-232 y verificarlas con el instrumento de
medición.
La fiabilidad del sistema depende de la calibración inicial, es decir, del resultado que se
obtenga de montar el servomotor a la estación de trabajo, las cargas que el servo tenga
que realizar serán reguladas por la SEC, a la cuál se puede cambiar los parámetros
iniciales del motor de acuerdo a las cargas, esto con el software WMEMOC.
Lo ideal sería tener dentro del microcontrolador la base completa de servos y elegirla
dentro de sí, pero esta información es muy extensa para guardarla dentro de la pequeña
memoria del microcontrolador e implementar una memoria de gran capacidad elevaría el
costo de la interfaz de tal forma que no justificaría su construcción, por tanto, la
información de cada servo (FIRMWARE) debe cargarse desde el computador a través
del WMEMOC.
La SEC maneja cualquier tipo de servomotor FESTO, y cada servo tiene su propio
FIRMWARE, por tanto, no tenemos que analizar cada servo pues sus características
están implícitas en el archivo y para reproducir éstos archivos ya se hicieron los estudios
necesarios sobre cada servo y no debe hacerse algo que ya existe.
Las demás características de la SEC, del microcontrolador, la LCD, el teclado y el
estándar RS-232 se encuentran en capítulos anteriores.
24
WMEMOC: Software de FESTO para la programación de la tarjeta SEC.
44
6.1. ANÁLISIS DE LAS INSTRUCCIONES DE PROGRAMACIÓN DE LA
TARJETA SEC-AC
Tabla 3: Instrucciones de programación para tarjeta SEC-AC por rs-232
Las instrucciones que se muestran en el cuadro anterior son las reglas básicas para
programar una posición en la SEC; nótese que para lograr una simplificación en el
código de programación deben emplearse los caracteres SP que hacen parte de la
cabecera de la TRAMA25, se puede iniciar un posicionado hacia algún lugar agregando
en la trama la posición START cuyo parámetro es PP o el lugar en la memoria de la
posición.
25
TRAMA: Secuencia de caracteres para tener un orden en la transmisión.
45
Cada instrucción tiene unos parámetros que son propios para cada una, para la
programación de cada posición se requieren aplicar la mayoría de las TRAMAS que
arriba se muestran.
Estas TRAMAS no se pueden modificar pues vienen incluidas dentro de la
programación propia de la SEC y son códigos de FESTO.
El orden y la forma de envío de las TRAMAS es el mismo que emplea el WMEMOC 26
de FESTO, y fue con este software con el cuál las obtuvimos; dado que éstos códigos
sólo están disponibles para personal autorizado de la Empresa.
Cada TRAMA tiene su respuesta que corresponde a otra TRAMA, es decir, una
TRAMA se responde con otra; pero para no saturar la memoria del microcontrolador y
no incrementar costos empleando memorias extras, optamos por sensar solamente los
datos relevantes de la misma, nótese en la tabla que la mayoría vota valores basura al
inicio, entonces por programación éstos valores se desechan y sólo se esperan en el
programa los relevantes; si no concuerda con los valores esperados se envía un mensaje
de error y si se trata de un valor al estar programando, el valor se borra y pregunta de
nuevo el valor esto por seguridad de no errar valores en la SEC.
26
WMEMOC: Software de Desarrollo para tarjeta SEC-AC.
46
7. DISEÑO
El tipo de servomotor y la tarjeta SEC-AC no se eligieron porque hacían parte de las
especificaciones del proyecto, es decir, la interfaz debe acoplarse al uso específico de
ésta tarjeta, como ya mencionamos anteriormente el uso de distintos servomotores con
ésta tarjeta se facilita debido a que ya existen los FIRMWARE para cada uno de los
modelos de servomotores, no sobra decir que por cuestiones de marca la SEC solamente
maneja servomotores FESTO.
Por tanto, la interfaz que diseñamos debe amoldarse a como trabaja la SEC.
De acuerdo a las características de la SEC la interfaz se comunica a través del estándar
RS-232 a 9600 bps. La interfaz no interviene con el funcionamiento de la SEC,
podríamos pensar que nuestro sistema es portable, permite programar las posiciones de
cualquier tarjeta de la Familia SEC-AC y dejar luego los valores para llegar a ellos
digitalmente con entradas a 24V27 y la interfaz no debe estar conectada todo el tiempo
,ésto para procesos que sean fijos; o puede emplearse estacionariamente, permaneciendo
conectada siempre a la SEC y permitiendo la programación de la tarjeta en el momento
que se desee, ésto funciona perfectamente para procesos que son cambiantes.
Elegimos la marca MICROCHIP28 de microcontroladores porque sus herramientas de
desarrollo son económicas y acsequibles en el mercado, su bajo costo y porque cuenta
con el módulo USART29 que permite la transmisión y recepción de datos por RS-232;
por tanto, el microcontrolador a utilizar es el pic 16f877; además porque tiene el número
suficientes de entradas salidas para manejar una LCD de 2x16 y un teclado matricial que
van a ser parte de la interfaz con el usuario.
Se eligió la LCD de 2x16 de texto dado que no vamos a representar ningún tipo de
gráfica sino solamente necesitamos representar caracteres alfanuméricos.
24V Voltaje al que trabajan los pines de control de la SEC.
MICROCHIP: Marca de Microcontroladores.
29
USART: Módulo de transmisión serial en dispositivos programable.
27
28
47
La elección del teclado se debió a que la SEC solamente maneja 16 posiciones y para
facilitar la asignación de las posiciones se optó por asignar una tecla a cada posición, y
colocar otro interruptor para la tecla ENTER, para reducir el número de pines empleados
usamos un teclado matricial de 4x4.
El valor deseado de la posición, dado que los técnicos que manejan la SEC están
acostumbrados a utilizar éstos valores no en revoluciones sino su equivalente en un
número de 0 a 65536, o sea, un registro de 16 bits que es la resolución que maneja la
SEC para una revolución.
La tarjeta SEC-AC maneja varios tipos de servomotores que funcionan a 220V, sus
entradas son a 24V, por requerimiento de FESTO el manejo de las posiciones
digitalmente no debe manejarse desde la interfaz, porque en caso de falla de ésta última
la SEC podrá seguirse operando a través de sus entradas digitales y de igual manera
desde la interfaz se puede a través de datos comunicados por rs-232 elegir la posición a
la que se desea llegar.
La interfaz se divide en varias etapas cuyo diseño depende de cada una de ellas, dichas
etapas son: visualización, entrada de datos, procesamiento, transmisión y recepción.
7.1. VISUALIZACIÓN:
5 Gráfica: LCD de 2x16
con luz
En la parte de visualización, usamos una LCD de 2x16, cuyas características
enunciamos en el marco teórico.
48
La programación de la LCD es para manejar caracteres a 8 bits, su contraste para
obtener mayor resolución no se conecta a un potenciómetro sino que se conecta a tierra,
esto garantiza que aunque la interfaz se ubique en un sitio oscuro, se logra la
visualización de los caracteres, siempre que la luz de la LCD esté prendida; la luz de la
LCD enciende al momento de energizar la interfaz.
La LCD es uno de los dispositivos más grandes de la interfaz, dado que el tamaño de la
caja no debe ser muy grande porque la distancia de la interfaz rs-232 no permite que sea
mayor a 3mts y dentro del gabinete de la SEC no debe usarse mucho espacio porque está
restringido para el cableado del servomotor y de plc´s en caso de ser necesarios. Además
también debe ubicarse el teclado, el conector DB9, el switch de encendido.
Este dispositivo se encuentra muy fácilmente en el mercado y es a un costo muy
reducido, existen en distintas marcas y referencias, pero mientras su tamaño sea de 2x16
sin importar la marca que sea su uso, programación y conexión se hace el mismo para
todas.
7.2. ENTRADA DE DATOS:
Para recibir los datos que el usuario entrega a la interfaz se empleó un teclado matricial
de 4x4 que como se explicó en su marco teórico permite la utilización de 16 botones con
solamente 8 bits de control.
6ª Gráfica: Teclado Matricial 4x4.
49
Cada tecla corresponde a una de las posiciones fijas que a la SEC se pueden programar y
los números permiten colocar el valor deseado de la posición de acuerdo a su valor entre
0 y 65536 correspondiente a una revolución.
7.3. PROCESAMIENTO:
Llamamos procesamiento a la ejecución del programa que consiste básicamente en
recibir el valor deseado de la posición y enviárselo a la tarjeta SEC.
7ª Gráfica: Microcontrolador Pic 16f877
Dicha ejecución la realiza un microcontrolador MICROCHIP pic16f877 que cuenta con
los recursos necesarios para la aplicación: pines suficientes para manejar la LCD a 8
bits, pines para el teclado, USART para comunicación serial, bajos consumos de
corriente y de voltaje.
7.4. TRANSMISIÓN Y RECEPCIÓN:
A través del USART se realiza la comunicación serial, tanto de recepción como de
transmisión, lo que ocurre es que es con voltajes de 0 a 5V, los valores que reconoce la
SEC son de -12 a 12V por lo que se requiere hacer el acople de señales.
8ª Gráfica: Max 232
9ª Gráfica: Cable para conexión Serial
50
El acople de éstas señales se hace con el chip MAX232 que cumple con ésta función, lo
que resta por configurar es la velocidad de transmisión que de acuerdo al requerimiento
de la SEC debe ser a 9600 bps; valor que se obtiene configurando el valor 19h en el
registro SPBRG de configuración del USART en el microcontrolador.
51
8. MONTAJE
8.1. DIMENSIONES DE LA TARJETA SEA-AC30
10ª Gráfica: Dimensiones de la tarjeta SEC-AC
Los dispositivos están previstos como dispositivos compactos para montaje en serie en
un armario de maniobra o en una pared. Puede conectarse cualquier número de SEC-AC
uno junto al otro. La pérdida de potencia que se produce en su funcionamiento, junto
con el calentamiento del dispositivo depende el consumo de la salida. La refrigeración
30
SEC-AC Installation es. FESTO. 83 págs.
52
de la SEC-AC se hace por convección libre, (algunas necesitan de un ventilador
externo). Para que halla suficiente refrigeración, es indispensable observar las mínimas
dimensiones superior e inferior mostrada a continuación.
11ª Gráfica: Distancias mínimas para el montaje en pared o en armario de maniobra.
En la mayoría de aplicaciones en que se montan tarjetas SEC se usan armarios que
FESTO suministra y ellos por estándar dan las medidas de montaje de las tarjetas en el
armario.
Estas medidas se aplican debido a que cada SEC genera calor y si están muy cerca la una
de la otra podrían generar interferencia entre sí.
Éstas medidas no son de obligatoriedad, más si debe tratar de respetarse y la distancia
mínima tiene un margen del 10% al que se observa en la gráfica.
En esta vista se sugiere también que el armario esté anclado a algo, ya que el peso no de
las tarjetas sino de los servomotores podría incidir en la paralelidad del armario.
53
12ª Gráfica: Vista Frontal.
Al montaje de la SEC se le agrega un soporte FESTO que es único para esta, además de
servir de base trae etiquetado el nombre de los puertos y un ventilador, así como también
las indicaciones generales de seguridad que por norma aplican para la tarjeta SEC.
Como es de esperarse todas estas etiquetas vienen en el frontal y al momento de adquirir
la SEC debe hacerse el montaje con el soporte.
54
13ª Gráfica: Vista Superior
En la vista superior se encuentran los módulos de disipación de calor que se hacen por
etapas.
La primera etapa está comprendida por un ventilador el cuál saca el calor de la SEC, es
decir, no sopla sino aspirar; la corriente de aire que por allí fluye termina en los
disipadores de calor auxiliares.
Esto no aplica para todas las SEC, ya que algunas por manejar servomotores de poca
corriente no necesitan disipadores de calor.
55
14ª Gráfica: Vista inferior
El aire fluye también hacia la parte inferior de la Sec por lo que allí se dispone de
disipadores y posibilidad de instalar otro ventilador dependiendo de que tan encerrada
quede en el armario y de las condiciones del sistema en el cual se va a implementar.
56
8.2. RESUMEN DE CONEXIÓN
15ª Gráfica: Conexionado con servomotor
La concexión que se muestra en la figura corresponde a la inicial, es decir, cuando se
carga el FIRMWARE a la SEC para hacerl el montaje de la interfaz es simplemente
cambiar el ordenador por la interfaz.
57
9. PLANO DE ELECTRONICO
16ª Gráfica: Plano Electrónico.
Los componentes empleados son los que se muestran en el plano, los buses de datos de
color rojo corresponden al conexionado del teclado; los buses de datos de color azul
corresponden al control y datos de la LCD, los de color verde son para transimisión y
recepción serial con el computador.
58
10. DIAGRAMA DE BLOQUES:
17ª Gráfica: Diagrama de Bloques
Los buses de control y datos de la LCD funcionan a 5V, al igual que el teclado; las
señales seriales de salida del microcontrolador son a 5V pero se transmiten a 9600 bps,
la MAX 232 hace la conversión de 0-5V a 12V y -12V donde 12V es cero y -12V es
uno.
En el diagrama se observa el número del pin para reconocer fácilmente y sin enredos
como ocurre en el plano eléctrico.
59
INICIO
Declarar
variables
Generar el 1er
letrero
“Programa SEC-AC”
Generar el 2 letrero
“Posición a guardar (00-ff)”
11. DIAGRAMA DE FLUJO
1
s
Espera un
#=si
o *=no
no
Generar el 5
letrero
“A cual posición desea ir”
El micro espera una
posición de 00 a ff
El micro espera
un dato
Guarda el dato en
dos variables
Generar el 3 letrero
“Distancia a mover el servo
(00000-65525)”
Guarda el dato en dos
variables
Arma la trama para enviar
a la SEC-AC
Generar el 6
letrero
“Desea ir a otra posición”
El micro espera
todos los datos
Guarda los datos en
5
variables
Arma la trama para ser
enviada
a la tarjeta SEC-AC
n
Guarda el data y
verifica
si # no *
s
Start
Envía la trama
a la SEC-AC
Generar el 4 letrero
“Desea guardar otra
posición”si # no *
1
60
12. CODIGO FUENTE
;-----------------------------------------------------------------------------; PROGRAMA PARA INTERFAZ RS 232 QUE MANEJA UN SERVOMOTOR A
TRAVES DE UAN TARJETA SEC-AC
;-----------------------------------------------------------------------------; DESARROLLADO POR:
; ING. RAUL ALFONSO PRIETO ESCOBAR
; ING. HARVEY RODRIGO CORTES GARZON
;-----------------------------------------------------------------------------;-----------------------------------------------------------------------------; CUERPO DEL PROGRAMA
;-----------------------------------------------------------------------------List p=16f877
include"P16f877.INC"
;Tipo de procesador
;Definiciones de registros internos
;-----------------------------------------------------------------------------; DECLARACION DE VARIABLES
;-----------------------------------------------------------------------------Lcd_var
EQU 0x26
REG1 EQU 0x23
REG2 EQU 0x24
REG3 EQU 0x25
Tecla EQU 0x27
DPOS0
EQU 0x28
POSICION
DPOS1
EQU 0x29
DPOS2
EQU 0x30
DPOS3
EQU 0x31
DPOS4
EQU 0x32
p1
EQU 0x37
CONT EQU 0x39
TEMP EQU 0x40
org
goto
org
0x00
Inicio
0x05
;VARIABLES PARA GUARDAR EL VALOR LA
;Vector de reset
;Salva vector de interrupción
;-----------------------------------------------------------------------------; INCLUSION DE LIBRERIAS
;------------------------------------------------------------------------------
61
include"LCD_CXX.INC"
;Incluir rutinas de manejo del LCD
;-----------------------------------------------------------------------------; CONFIGURACION DE PUERTOS
;-----------------------------------------------------------------------------Inicio:
nop
BANKSEL TRISA
movlw b'10000100'
;pata RC7 y RC2 como entrada 10000000
movwf TRISC
movlw 24h
;REG de tX '1001 0000
BANKSEL TXSTA
movwf TXSTA
movlw 19h
;vel=9.600bps =81h con 20MHz
movwf SPBRG
;
=19h con 4MHz
clrf
TRISA
;Configura Puerto A como salida
movlw b'00000111'
movwf ADCON1
;Todas las salidas son digitales
BANKSEL RCSTA
movlw 90h
movwf RCSTA
;REG de RX
call
ConfPuerto
BANKSEL PORTE
call
UP_LCD
;Configura Puerta A y B como salidas
movlw b'11111000'
movwf PORTE
;Pines RC0-RC3 de salida los demás de
entrada
call
LCD_INI
movlw b'00001100'
call
LCD_REG
movlw b'00000001'
call
LCD_REG
movlw ' '
call LCD_DATO
movlw 'I'
call LCD_DATO
movlw 'N'
call LCD_DATO
movlw 'T'
call LCD_DATO
movlw 'E'
call LCD_DATO
movlw 'R'
call LCD_DATO
movlw 'F'
call LCD_DATO
movlw 'A'
;Rutina de inicialización del LCD
;LCD en ON, cursor Off
;
;Borra LCD y HOME
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
62
call LCD_DATO
movlw 'Z'
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 'R'
call LCD_DATO
movlw 'S'
call LCD_DATO
movlw '2'
call LCD_DATO
movlw '3'
call LCD_DATO
movlw '2'
call LCD_DATO
movlw 0C0h
call
LCD_REG
movlw ' '
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 'P'
call LCD_DATO
movlw 'A'
call LCD_DATO
movlw 'R'
call LCD_DATO
movlw 'A'
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 'S'
call LCD_DATO
movlw 'E'
call LCD_DATO
movlw 'C'
call LCD_DATO
movlw '-'
call LCD_DATO
movlw '-'
call LCD_DATO
movlw 'A'
call LCD_DATO
movlw 'C'
call LCD_DATO
call time
btfsc PORTC,2
goto ejecutar
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
63
opcion
goto opcion
movlw b'00000001'
call
LCD_REG
movlw 'D'
call LCD_DATO
movlw 'i'
call LCD_DATO
movlw 'g'
call LCD_DATO
movlw 'i'
call LCD_DATO
movlw 't'
call LCD_DATO
movlw 'e'
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 'e'
call LCD_DATO
movlw 'l'
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 'v'
call LCD_DATO
movlw 'a'
call LCD_DATO
movlw 'l'
call LCD_DATO
movlw 'o'
call LCD_DATO
movlw 'r'
call LCD_DATO
movlw 0C0h
call
LCD_REG
movlw 'd'
call LCD_DATO
movlw 'e'
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 'l'
call LCD_DATO
movlw 'a'
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 'p'
;
;Borra LCD y HOME
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
64
call LCD_DATO
;Visualiza
movlw 'o'
call LCD_DATO
;Visualiza
movlw 's'
call LCD_DATO
;Visualiza
movlw 'i'
call LCD_DATO
;Visualiza
movlw 'c'
call LCD_DATO
;Visualiza
movlw 'i'
call LCD_DATO
;Visualiza
movlw 'o'
call LCD_DATO
;Visualiza
movlw 'n'
call LCD_DATO
;Visualiza
movlw ' '
call
LCD_DATO
call
Escanear
movf Tecla,w
movwf p1
;guarda en un registro el valor de la dirección a
guardar
call
TRAMA
movlw b'00000001'
call
LCD_REG
movlw 'D'
call LCD_DATO
movlw 'i'
call LCD_DATO
movlw 'g'
call LCD_DATO
movlw 'i'
call LCD_DATO
movlw 't'
call LCD_DATO
movlw 'e'
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 'v'
call LCD_DATO
movlw 'a'
call LCD_DATO
movlw 'l'
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 's'
call LCD_DATO
;
;Borra LCD y HOME
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
65
ejecutar
movlw 'e'
call LCD_DATO
movlw 'r'
call LCD_DATO
movlw 'v'
call LCD_DATO
movlw 0C0h
call
LCD_REG
movlw '('
call LCD_DATO
movlw '0'
call LCD_DATO
movlw '-'
call LCD_DATO
movlw 'F'
call LCD_DATO
movlw 'F'
call LCD_DATO
movlw 'F'
call LCD_DATO
movlw 'F'
call LCD_DATO
movlw 'F'
call LCD_DATO
movlw ')'
call LCD_DATO
movlw ':'
call LCD_DATO
movlw ' '
call LCD_DATO
call
POSICION
call
TRAMA1
btfsc PORTC,2
goto ejecutar
goto opcion
movlw b'00000001'
call
LCD_REG
movlw 'D'
call LCD_DATO
movlw 'i'
call LCD_DATO
movlw 'g'
call LCD_DATO
movlw 'i'
call LCD_DATO
movlw 't'
call LCD_DATO
movlw 'e'
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Toma el valor pulsado de tecla
;
;Borra LCD y HOME
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
66
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 'p'
call LCD_DATO
movlw 'o'
call LCD_DATO
movlw 's'
call LCD_DATO
movlw 'i'
call LCD_DATO
movlw 'c'
call LCD_DATO
movlw 'i'
call LCD_DATO
movlw 'o'
call LCD_DATO
movlw 'n'
call LCD_DATO
movlw 0C0h
call
LCD_REG
movlw 'a'
call LCD_DATO
movlw ' '
call LCD_DATO
movlw 'E'
call LCD_DATO
movlw 'j'
call LCD_DATO
movlw 'e'
call LCD_DATO
movlw 'c'
call LCD_DATO
movlw 'u'
call LCD_DATO
movlw 't'
call LCD_DATO
movlw 'a'
call LCD_DATO
movlw 'r'
call LCD_DATO
movlw ' '
call LCD_DATO
call
Escanear
movf Tecla,w
movwf p1
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;Visualiza
;guarda en un registro el valor de la dirección a
guardar
call
START
67
btfsc PORTC,2
goto ejecutar
goto opcion
;-----------------------------------------------------------------------------; ARMA LA TRAMA PARA ENVIARLA A LA SEC-AC
;-----------------------------------------------------------------------------TRAMA
movlw b'01010011'
movwf
TXREG
;envia la S
call
retardo1
movlw b'01010000'
movwf TXREG
;envia la P
call
retardo1
movlw b'01010100'
movwf TXREG
;envia la T
call
retardo1
movlw b'00110001'
movwf TXREG
;envia la 1
call
retardo1
movlw b'00111010'
movwf TXREG
;envia los :
call
retardo1
movlw b'00110000'
movwf TXREG
;envia el cero
call
retardo1
movf p1,w
movwf TXREG
;envia la pos
call
retardo1
movlw b'00111010'
movwf TXREG
;envia los :
call
retardo1
movlw b'00110000'
movwf TXREG
;envia la 0
call
retardo1
movlw b'00110000'
movwf TXREG
;envia la 0
call
retardo1
movlw b'00110110'
movwf TXREG
;envia la 6
call
retardo1
movlw b'00110100'
movwf TXREG
;envia la 4
call
retardo1
call
ser_rec
;espera la verificación de la tarjeta
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
68
call
call
call
call
call
call
call
call
call
call
call
call
return
TRAMA1
ser_rec
ser_rec
ser_rec
ser_rec
ser_rec
ser_rec
ser_rec
ser_rec
ser_rec
ser_rec
ser_rec
ser_rec
movlw b'01010011'
movwf TXREG
call
retardo1
movlw b'01010000'
movwf TXREG
call
retardo1
movlw b'01011000'
movwf TXREG
call
retardo1
movlw b'00111010'
movwf TXREG
call
retardo1
movlw b'00110000'
movwf TXREG
call
retardo1
movf p1,w
movwf TXREG
call
retardo1
movlw b'00111010'
movwf TXREG
call
retardo1
movlw b'00110000'
movwf TXREG
call
retardo1
movlw b'00110000'
movwf TXREG
call
retardo1
movlw b'00110000'
movwf TXREG
call
retardo1
movf DPOS0,w
movwf TXREG
call
retardo1
movf DPOS1,w
;envia la S
;envia la P
;envia la X
;envia los :
;envia la 0
;envia la pos 1
;envia los :
;envia la 0
;envia la 0
;envia la 0
;envia la POS1
69
movwf TXREG
call
retardo1
movf DPOS2,w
movwf TXREG
call
retardo1
movf DPOS3,w
movwf TXREG
call
retardo1
movf DPOS4,w
movwf TXREG
call
retardo1
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
return
;envia la POS2
;envia la POS3
;envia la POS4
;envia la POS5
;espera la verificación de la tarjeta
;-----------------------------------------------------------------------------; ARMA LA TRAMA PARA EJECUTAR POSICIONADO EN LA SEC-AC
;-----------------------------------------------------------------------------START
movlw b'01010011'
movwf
TXREG
call
retardo1
movlw b'01010000'
movwf TXREG
call
retardo1
movlw b'01010011'
movwf TXREG
call
retardo1
movlw b'01010100'
movwf TXREG
;envia la S
;envia la P
;envia la S
;envia la T
70
call
retardo1
movlw b'01000001'
movwf TXREG
call
retardo1
movlw b'01010010'
movwf TXREG
call
retardo1
movlw b'01010100'
movwf TXREG
call
retardo1
movlw b'00111010'
movwf TXREG
call
retardo1
movlw b'00110000'
movwf TXREG
call
retardo1
movf p1,w
movwf TXREG
call
retardo1
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
call
ser_rec
return
;envia los A
;envia R
;envia la T
;envia los :
;envia la 0
;envia la pos
;-----------------------------------------------------------------------------; RUTINA DE CONFIGURACION DE PUERTO PARA TECLADO
;-----------------------------------------------------------------------------ConfPuerto
nop
BANKSEL TRISD
movlw b'11110000' ;RD0-RD3 salidas y RD4-RD7 entradas
movwf TRISD
return
;-----------------------------------------------------------------------------; RUTINA DE ESCANEO DE TECLAS
71
;-----------------------------------------------------------------------------Escanear
Scan
uno
siga
cuatro
siga1
siete
siga2
aster
siga3
dos
nop
BANKSEL PORTD
movlw b'11111110'
movwf PORTD
btfsc PORTD,4
goto siga
goto uno
btfss PORTD,4
goto uno
movlw .49
movwf Tecla
goto sale
btfsc PORTD,5
goto siga1
goto cuatro
btfss PORTD,5
goto cuatro
movlw .52
movwf Tecla
goto sale
btfsc PORTD,6
goto siga2
goto siete
btfss PORTD,6
goto siete
movlw .55
movwf Tecla
goto sale
btfsc PORTD,7
goto siga3
goto aster
btfss PORTD,7
goto aster
movlw .70
movwf Tecla
goto sale
movlw b'11111101'
movwf PORTD
btfsc PORTD,4
goto siga4
goto dos
btfss PORTD,4
goto dos
movlw .50
movwf Tecla
goto sale
72
siga4
cinco
siga5
ocho
siga6
cero
siga7
tres
siga8
seis
siga9
nueve
btfsc PORTD,5
goto siga5
goto cinco
btfss PORTD,5
goto cinco
movlw .53
movwf Tecla
goto sale
btfsc PORTD,6
goto siga6
goto ocho
btfss PORTD,6
goto ocho
movlw .56
movwf Tecla
goto sale
btfsc PORTD,7
goto siga7
goto cero
btfss PORTD,7
goto cero
movlw .48
movwf Tecla
goto sale
movlw b'11111011'
movwf PORTD
btfsc PORTD,4
goto siga8
goto tres
btfss PORTD,4
goto tres
movlw .51
movwf Tecla
goto sale
btfsc PORTD,5
goto siga9
goto seis
btfss PORTD,5
goto seis
movlw .54
movwf Tecla
goto sale
btfsc PORTD,6
goto siga10
goto nueve
btfss PORTD,6
goto nueve
movlw .57
73
siga10
numero
siga11
a
siga12
be
siga13
c
siga14
d
sale
movwf Tecla
goto sale
btfsc PORTD,7
goto siga11
goto numero
btfss PORTD,7
goto numero
movlw .69
;codigo ascii de la tecla "#"
movwf Tecla
goto sale
movlw b'11110111'
movwf PORTD
btfsc PORTD,4
goto siga12
goto a
btfss PORTD,4
goto cuatro
movlw .65
;codigo de la "A" en ascci
movwf Tecla
goto sale
btfsc PORTD,5
goto siga13
goto be
btfss PORTD,5
goto be
movlw .66
movwf Tecla
goto sale
btfsc PORTD,6
goto siga14
goto c
btfss PORTD,6
goto c
movlw .67
movwf Tecla
goto sale
btfsc PORTD,7
goto Scan
goto d
btfss PORTD,7
goto d
movlw .68
movwf Tecla
goto sale
nop
return
;------------------------------------------------------------------------------
74
; RUTINA DE RETARDO PARA LCD
;-----------------------------------------------------------------------------time
MOVLW
30
;
MOVWF
REG1
TRES MOVLW
99
;
MOVWF
REG2
DOS MOVLW
99
;
MOVWF
REG3
UNO DECFSZ
REG3,1
GOTO UNO
DECFSZ
REG2,1
GOTO DOS
DECFSZ
REG1,1
GOTO TRES
retlw 0
15
10
5
;-----------------------------------------------------------------------------; RUTINA PARA GUARDAR LA POSICION
;-----------------------------------------------------------------------------POSICION CALL Escanear
MOVFTecla,W
MOVWF
DPOS0
call LCD_DATO
;Visualiza
CALL Escanear
MOVFTecla,W
MOVWF
DPOS1
call LCD_DATO
;Visualiza
CALL Escanear
MOVFTecla,W
MOVWF
DPOS2
call LCD_DATO
;Visualiza
CALL Escanear
MOVFTecla,W
MOVWF
DPOS3
call LCD_DATO
;Visualiza
CALL Escanear
MOVFTecla,W
MOVWF
DPOS4
call LCD_DATO
;Visualiza
return
;-----------------------------------------------------------------------------; MODULO DE RECEPCION SERIAL
;-----------------------------------------------------------------------------ser_recbtfss PIR1,RCIF
75
goto ser_rec
movf RCREG,W
return
;===========================================Retardo de 100Inst.
20MHz =20us
retardo movlw 18h
;
a 4MHz =100us
movwf TEMP
time1 nop
decfsz TEMP,F
goto time1
nop
return
;===========================================
retardo1
movlw .80
movwf CONT
time2 call retardo
decf CONT,1
bnz time2
return
;-----------------------------------------------------------------------------; FIN DEL PROGRAMA
;-----------------------------------------------------------------------------end
76
a
13. PROGRAMADOR
Gráfica 18ª: Quemador de Microcontroladores
Para introducir el programa en hexadecimal al microcontrolador se usó el programa
EPICWIND con el quemador que aparece en la figura.
El EPICWIND sirve para cualquier tipo de microcontrolador de la MICROCHIP desde
los de ocho pines hasta los de cuarenta pines.
77
14. CIRCUITO IMPRESO
El diseño del circuito impreso se realizó en CIRCUIT MAKER 2000 profesional, tal y
como se observa en la figura:
19ª Gráfica: Diseño del impreso en CIRCUIT MAKER 2000
78
15. IMPRESO
El impreso se llevó a la baquela mediante el papel termotransferible, se quitó el cobre
con Percloruroférrico y los huecos se hicieron a mano con una broca 1/64” y un mandril
de Relojería.
El resultado final del impreso es:
20ª Gráfica: Impreso.
79
CONCLUSIONES
•
Para la programación de un tarjeta SEC-AC, no es necesario la implementación
de un PLC , o tener a la mano un ordenador, basta con tener un interfaz SEC-AC
1.0 (con un microcontrolador 16f877, un teclado matricial, una LCD y un cable
serial), la cual se puede desarrollar a un bajo costo.
•
Las empresas colombianas ven más asequible la implementación de estas
tarjetas, gracias a su flexibilidad, su fácil conectividad, sencilla programación y
ante todo la disminución de costos con respecto a otras tecnologías (como PLC).
•
Las tarjetas SEC-AC son muy utilizadas en la industria Colombiana, si
la
empresa FESTO decidiera crear un producto con nuestra tarjeta, llegaría a
Pequeñas y medianas empresas, cubriendo diferentes campos de la industrial.
•
La implementación de un PLC, es justificable cuando se necesita controlar mas
de un dispositivo, pero si solo se va a manejar una tarjeta SEC-AC, sería ideal la
implementación de nuestra tarjeta interfaz SEC-AC 1.0.
80
BIBLIOGRAFIA
[1]SEC-AC Commissioning es.
Manual 192 353 0007NH FESTO 205 págs
[2]Manual del PIC.
152 págs. Victor Rodríguez
[3]SEC-AC Installation es. FESTO.
Manual 192 352 0007NH FESTO 83 págs
[4] Microchip
http://www.microchip.com
[5] BUNGE, Mario. La ciencia y su método.
Argentina : Trillas, 1970. 120 p.
81
Descargar