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: [email protected] [email protected] 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: [email protected] [email protected] 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