Texto - Universidad Nacional Abierta
Transcripción
Texto - Universidad Nacional Abierta
UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADEMICO INGENIERIA DE SISTEMAS Sistema Microcontrolado para diagnóstico de Carga y Descarga de Baterías para Sistemas de Telecomunicaciones Autor: Ahmed Fezazi, C.I. E-81.181.639 Tutor Académico: Ing. Edgar González, C.I. V -6.524.564 Asesor Empresarial: Ing. Enrique Romero, C.I. V-1.864.926 Caracas, Centro Local Metropolitano RESUMEN El presente Trabajo de Grado se fundamenta en el desarrollo de un equipo electrónico que sirve de control, diagnóstico y monitoreo de la carga y descarga de un banco de baterías, destinado a alimentar los equipos de radios y microondas de un sistema de telecomunicaciones ubicados en un Site (Lugar de Repetidoras). Este equipo electrónico (Monitor) está basado en el uso de la tecnología de los Microcontroladores (PIC, Programable Integrated Circuit ) de Microchip. Con este trabajo se mejora el flujo de las comunicaciones debido a que se minimizan las interrupciones por falta de energía, además de reducir las intervenciones técnicas en el mantenimiento del sistema de telecomunicaciones prestando mejor servicio a los clientes. El énfasis de este Trabajo de Grado está en el diseño, análisis, programación y construcción de un equipo electrónico como una solución novedosa, práctica, útil y económica para todos los sistemas de telecomunicaciones, ya sea para fines didácticos o comerciales. Palabras Claves Microcontrolador (PIC), monitoreo, diagnóstico, telecomunicaciones, banco de baterías, energía, programación. 2 ÍNDICE Introducción 1. El Problema-----------------------------------------------------------------------2 1.1 El Planteamiento del Problema------------------------------------------2 1.2 Importancia y justificación del Trabajo de Grado -------------------2 1.3 Objetivo General-------------------------------------------------------------3 1.4 Objetivos Específicos-------------------------------------------------------3 1.5 Limitaciones y Alcance-----------------------------------------------------4 2. Marco Teórico-------------------------------------------------------------------5 2.1 Antecedentes----------------------------------------------------------------.5 2.2 Microcontrolador-------------------------------------------------------------7 2.3 Repetidoras y Fuente de Energía---------------------------------------9 2.4 Sistemas de Comunicaciones------------------------------------------11 3. Marco Metodológico---------------------------------------------------------16 3.1 Tipo de Investigación-----------------------------------------------------16 3.2 Técnicas de Recolección de Datos------------------------------------18 3.3 Técnicas de Programación y Documentación----------------------18 4. Desarollo de la Solución---------------------------------------------------20 4.1 Escogencia del PIC--------------------------------------------------------20 4.1.1 Criterios de selección----------------------------------------------20 • Organización de la Memoria-----------------------------------------------------21 • Organización de la Memoria del Programa----------------------------------21 3 • Organización de la Memoria de Datos----------------------------------------22 • Archivo de Registro de Propósito General ----------------------------------22 • Registros de la Función Especial (Special Function Registers)--------23 • Estados de los Registros (Status Register ) -------------------------------23 • Registro OPTION_REG Register----------------------------------------------24 • Registro INTCON Register-------------------------------------------------------24 • Registro PIR1 Register------------------------------------------------------------24 • PCL y PCLATH----------------------------------------------------------------------24 • STACK (PILA)-----------------------------------------------------------------------25 • Direccionamiento Indirecto ------------------------------------------------------25 • PORTA (Puerto A) y el Registro TRISA---------------------------------------26 • PORTB (Puerto B) y el Registro TRISB---------------------------------------27 • PORTC (Puerto C) y el Registro TRISC--------------------------------------28 • Acceso a la Memoria del Programa--------------------------------------------28 • Acceso al EEPROM de Datos---------------------------------------------------28 • Registro EECON1 y EECON2---------------------------------------------------30 • Escritura en la Memoria de Datos del EEPROM---------------------------32 • Lectura de la Memoria del Programa del FLASH--------------------------34 • Escritura a la Memoria de Programa del FLASH---------------------------35 • Verificación de Escritura----------------------------------------------------------36 • Protección contra Espurias de Escrituras------------------------------------36 • Operación durante la Protección del Código -------------------------------37 • Protección de Escritura de la Memoria de Programa FLASH-----------37 • Módulo TIMER0--------------------------------------------------------------------38 • Interrupción del TIMER0----------------------------------------------------------39 • Uso del Timer0 con un Reloj Externo---------------------------------------- 39 • Pre-escala (Prescaler)-------------------------------------------------------------39 4 • Módulo Convertidor Analógico-Digital (A/D)---------------------------------40 • Requerimientos de las Adquisiciones de A/D-------------------------------42 • Selección del Reloj de Conversión de A/D---------------------------------- 43 • Configuración de los Pines del Puerto Analógico--------------------------43 • Las Conversiones de A/D---------------------------------------------------------43 • Resultado de los Registros de A/D---------------------------------------------44 • Características Especiales del CPU-------------------------------------------44 • Configuración de los Bits---------------------------------------------------------46 • Configuración del Oscilador------------------------------------------------------46 • Resonadores de Cristal Oscilador/Cerámico--------------------------------47 • USART (Universal Sincrónico Asincrónico Receptor Transmisor)-----47 • Generador de Rata de Baudios (BRG) del USART------------------------48 • Conjunto de Instrucciones (Set) ------------------------------------------------48 4.1.2 Utilización del Software----------------------------------------------49 • Soporte de Desarrollo------------------------------------------------------------- 49 • Software de Ambiente Integrado de Desarrollo (MPLAB IDE)----------50 • Ayuda del MPLAB------------------------------------------------------------------52 • Herramientas del Desarrollo del MPLAB-------------------------------------54 • Ensamblador MPASM-------------------------------------------------------------55 • Descripción del MPASM----------------------------------------------------------56 • Funcionamiento del MPASM-----------------------------------------------------56 • Características Notables del MPASM-----------------------------------------56 4.1.3 Escogencia y Utilización del Programador---------------------57 • Programador PIC800--------------------------------------------------------------57 • Hardware y Construcción del Programador PIC800----------------------59 • Software-------------------------------------------------------------------------------61 5 • Software de Prueba del Programador ----------------------------------------62 • Recomendaciones------------------------------------------------------------------63 • Ejemplos------------------------------------------------------------------------------64 • Rutinas---------------------------------------------------------------------------------65 • Funcionamiento-----------------------------------------------------------------------66 • Protección del Código (CP)------------------------------------------------------70 • Archivo Hexadecimal---------------------------------------------------------------71 4.2 Diseño del Sistema de Monitoreo de Carga y Descarga de Baterías 4.2.1 Objetivo General-------------------------------------------------------72 • Primera Función---------------------------------------------------------------------73 • Identificación de las Entidades y Atributos-----------------------------------73 • Determinación de las Claves de las Entidades-----------------------------74 • Establecimiento del Modelo de Datos de la Función----------------------75 • Segunda Función-------------------------------------------------------------------77 • Identificación de las Entidades y Atributos-----------------------------------78 • Determinación de las Claves de las Entidades identificadas------------78 • Modelo de Datos de la Función-------------------------------------------------80 • Modelo Conceptual de Datos del Sistema-----------------------------------81 • Documentación del Análisis de los Datos------------------------------------84 • Inventario de Atributos-------------------------------------------------------------85 • Descripción de Atributos----------------------------------------------------------86 • Inventario de Entidades---------------------------------------------------------101 • Descripción de Entidades-------------------------------------------------------102 4.2.2 Documentación del Sistema de Monitoreo-------------------112 • Definición de los Requerimientos de Hardware---------------------------112 6 • Preparación del Programa de Monitoreo----------------------------------- 112 • Elaboración del Diseño de la Base de Datos------------------------------113 • Funciones y Variables-----------------------------------------------------------114 • Pantallas del Sistema de Monitoreo------------------------------------------116 • Diseño de la Base de Datos----------------------------------------------------117 • Modelo Lógico--------------------------------------------------------------------- 117 • Modelo Físico o Interno----------------------------------------------------------118 4.2.3 Listado del Programa-----------------------------------------------118 4.3 Desarrollo y ensamblaje de la solución tecnológica--------------------119 4.3.1 Construcción y Ensamblaje del Monitor-----------------------120 4.3.2 Construcción del Interfaz RS232--------------------------------121 4.3.3 Construcción del Circuito Analógico----------------------------121 4.3.4 Construcción de la Entrada Analógica-------------------------122 4.4 Programación del PIC 16F873--------------------------------------------------122 4.4.1 Diagrama de Flujo---------------------------------------------------122 4.4.2 Código en Assembler-----------------------------------------------122 4.4.3 Código Hexadecimal------------------------------------------------123 4.4.4 Diagrama de la Solución Implantada---------------------------124 Conclusiones…………………………………………………………………..126 Recomendaciones…………………………………………………………….127 Bibliografía……………………………………………………………………..128 7 GLOSARIO ANEXOS: ANEXO A 9 Descripción General del PIC 16F873 ANEXO B 9 Pantalla del Software del MPLAB 9 Pantalla del Software del MPASM ANEXO C 9 Diagrama Esquemático del programador PIC800 9 Diagrama de la Fuente de Poder del Programador 9 Software de Programación del PIC 9 Foto 1: Circuito Armado del PIC800 ANEXO D 9 Pantalla del Sistema de Monitoreo 9 Pantalla de la Base de Datos 9 Ejemplo de los resultados de las Mediciones 9 Lista del Programa 8 ANEXO E 9 El circuito eléctrico del Monitor 9 Diagrama del puerto RS232 9 Diagrama Analógico 9 Entrada Analógica 9 Lista de materiales 9 Foto 2: Circuito armado del Circuito de Monitoreo ANEXO F 9 Diagrama de Flujo 9 Código Assembler 9 Código Hexadecimal 9 Diagrama de la Solución Implantada 9 INTRODUCCIÓN En los actuales momentos en que a nivel mundial, la globalización alcanza no solamente el ámbito comercial y financiero, sino también el medio de las telecomunicaciones, para éste ultimo se hace cada vez más necesario, el control de las variables que regulan los sistemas de telecomunicaciones, ya que éstos se ubican con frecuencia en lugares lejanos y a veces inaccesibles. En los últimos años, un componente electrónico ha revolucionado las técnicas de diseño de sistemas para el control de dichas variables, se ha basado en el uso del microcontrolador. Un circuito integrado programable que contiene toda una estructura de un microcomputador, es decir, unidad de control de proceso (Siglas en Ingles, CPU), memoria RAM (Random Acces Memory), memoria ROM (Read Only Memory) y circuitos de entrada/salida. Éste se concibe como un dispositivo programable tan importante en poder ejecutar varias tareas y varios procesos que el diseño de productos electrónicos ha cambiado radicalmente. Circuitos lógicos, manejo de periféricos, temporizadores y estructura de computadoras, todo programable y alojado en un solo integrado; es decir, un pequeño computador para todas las aplicaciones. La empresa de telecomunicaciones CODIYASCA ha empleado ese chip integrado para tener la posibilidad de manejar señales de entrada y salida, así como la capacidad de procesar datos y tomar decisiones. El trabajo de grado consiste en desarrollar, diseñar y construir un aparato electrónico (Monitor) que diagnostique y controle a distancia la carga y descarga de un banco de baterías de un sistema de comunicaciones. Por tal fin se escoge la tecnología avanzada de los PICs de Microchip. 10 Sin duda alguna, este trabajo de grado contribuye mucho como solución novedosa de gran beneficio tanto para la empresa como para el avance de conocimientos en el área de sistemas de control y monitoreo para sistemas de telecomunicaciones. 11 Capítulo 1 2. El Problema En vista de la importancia de la energía de alimentación para el buen funcionamiento de los equipos de comunicaciones, se necesita controlar el monitoreo general de la carga y descarga de baterías, de tal forma que no se tenga ningún problema de caída o corte del sistema de comunicaciones en ningún sitio de repetición (Sites). El trabajo de grado se desarrolla en la compañía CODIYASCA en Caracas. 2.1 El Planteamiento del Problema Se requiere realizar la supervisión y control remoto del funcionamiento de un sistema de carga de baterías de un sistema de comunicación, ubicado en la frontera o en cualquier parte de la geografía venezolana, evitando así la necesidad el traslado del personal técnico bajo condiciones ambientales y de trabajo sumamente adversas. Las baterías son empleadas para suministrarle energía a diversos equipos electrónicos, fundamentalmente de recolección de datos meteorológicos y de comunicaciones. 2.2 Importancia y Justificación del Trabajo de Grado La importancia del presente trabajo es haber desarrollado un sistema de Monitoreo de carga y descarga de Baterías (SMcCDB) cuyas características de diseño facilitan el diagnóstico y control a distancia de equipos de 12 comunicaciones situados en áreas remotas y de difícil accesibilidad (selvas, cerros y montes boscosos) con los siguientes beneficios, entre otros: • Mejor control de los equipos de comunicaciones a distancia sin necesidad de ir a los sitios de repetición. • Bajo costo de mantenimiento del sistema de telecomunicaciones, ya que sólo se manda al personal técnico a los Sitios de Repetición (Sites) cuando se detectan fallas. • Mejor administración y aprovechamiento del tiempo del personal técnico. • Una mejor redistribución de los costos de personal dedicados a operar las repetidoras, ya se disminuyen las horas-hombres dedicadas al monitoreo del sistema de telecomunicaciones en el sitio de operación. • Construcción de una herramienta útil para todos los sistemas de telecomunicaciones, ya sea para fines didácticos o comerciales. 2.3 Objetivo General Desarrollar un Sistema microcontrolado para el diagnóstico y control de Carga del Banco de Baterías de un sistema de telecomunicaciones 2.4 Objetivos Específicos • Analizar la situación actual y establecer los requerimientos de control del sistema. • Diseñar el Sistema de Control • Implantar el sistema de diagnóstico y control e instalarlo en las estaciones repetidoras. 13 • 2.5 Documentar el sistema. Limitaciones y Alcance El alcance del Trabajo de Grado contempla el desarrollo, análisis, diseño, construcción y puesta en marcha de un producto final. 14 Capítulo 2 3. Marco Teórico 3.1 Antecedentes Las empresas privadas y el Gobierno Nacional, para ejercer el Control y Vigilancia de nuestras fronteras, tanto desde el punto de vista militar y civil como ambiental, han creado desde hace muchos años, Estaciones de Vigilancia en diversos sitios remotos situados a todo su largo. Generalmente estas Estaciones están provistas de equipos de Medición de parámetros ambientales, que operan con electricidad y que constantemente registran sus resultados y los almacenan en forma escrita o en forma electrónica, para después ser recogidos por un personal que se traslade hasta el sitio. Además, las estaciones de vigilancia están ubicadas en sitios de difícil acceso alejados de las poblaciones. Por esta razón en la mayoría de los casos se hace difícil establecer un tendido eléctrico hasta estas estaciones para permitir el funcionamiento de los equipos. Así, la mayoría de las estaciones gozan de un sistema propio de generación y almacenamiento de electricidad. La energía del viento y la luz solar se aprovechan para generar electricidad que se almacena en baterías con las cuales operan todos los equipos de la Estación de Vigilancia. 15 El mantenimiento correctivo y preventivo del sistema de generación de electricidad se hace mediante visitas periódicas a las estaciones de vigilancia. Estas visitas muchas veces no se pueden realizar por inconvenientes climatológicos o de otra naturaleza, propia de la dinámica fronteriza. De aquí surge la idea, propuesta por una de las empresas, CODYIASCA, que realizan estas tareas de mantenimiento en la zona, de construir un Sistema Microcontrolado de Carga y Descarga de Baterías (SMcCDB), que transmita regularmente ciertas mediciones de parámetros de funcionamiento del sistema a cientos de kilómetros hasta una Estación Remota de Control, mediante un Enlace de Comunicación de Voz ya existente para otros fines. En nuestro caso se escoge la medición constante de los voltajes de las baterías que almacenan toda la electricidad generada localmente. Cuando el sistema de generación y las baterías funcionan normalmente el voltaje de las baterías debe estar comprendida en un cierto rango. La presencia de voltajes de baterías fuera del rango (menor que un mínimo o mayor que un máximo prestablecido) generan en la Estación de Control Remoto, señales de alarma. En la Estación de Control Remoto se dispone de una computadora con un programa creado especialmente, que permita almacenar en la misma el tipo de alarma producida, la fecha y hora de cuando aconteció. Esta información le permite al personal que opera en la estación remota tomar las acciones correspondientes, utilizando el tipo de enlace con el Dispositivo de Control y Supervisión creado para tal efecto. El desarrollo de cada nuevo dispositivo electrónico trae consigo técnicas de diseño diferentes, por lo general, más simples. En los años sesenta, para construir un reloj digital se necesita acoplar un buen número de circuitos lógicos como contadores, divisores, decodificadores y redes 16 combinatorias. Al mismo tiempo, el diseñador debe poseer muy buenos conocimientos sobre cada uno de los elementos. A partir de 1970, el panorama de la electrónica cambia radicalmente con la aparición del microprocesador. Viene la época de oro del Z-80, el 8085, el 6800 y otros microprocesadores utilizados como elementos centrales en aparatos de control, y se consolidan las técnicas de integración, el estudio de las memorias, la programación en lenguaje de máquina y la adaptación de periféricos de todo tipo. En 1980, aproximadamente, los fabricantes de circuitos integrados dieron a conocer un nuevo chip llamado microcontrolador, el cual contiene toda la estructura de un microcomputador, es decir, unidad de control y proceso (CPU), memoria RAM, memoria ROM y circuitos de entrada/salida. Hoy día es común encontrar microcontroladores en las cafeteras, hornos microondas, videograbadoras, alarmas y automóviles. Las aplicaciones son infinitas, el único límite es la imaginación. La posibilidad de manejar señales de entrada y de salida, así como su capacidad para procesar datos y tomar decisiones, lo convierten en uno de los elementos electrónicos más versátiles que existen. 3.2 Microcontroladores Hace más de tres décadas varias industrias electrónicas internacionales iniciaron la fabricación y comercialización de los famosos Circuitos Integrados con la inclusión de múltiples componentes de circuitos eléctricos dentro de una cápsula. Ya con estos primeros Circuitos Integrados se pueden realizar operaciones matemáticas algebraicas, lo que permitió la fabricación de las primeras calculadoras portátiles. El empeño de estas industrias en incorporar cada vez un mayor número de componentes 17 electrónicos dentro de un Circuito Integrado permite fabricar dispositivos que pueden realizar operaciones matemáticas y lógicas complejas. Así, la compañía norteamericana INTEL con el dominio y desarrollo de nuevas tecnologías logra la fabricación del primer Circuito Integrado miniatura, de unos pocos centímetros de dimensión, que debe considerarse como el primer microcontrolador, que con pocos componentes adicionales puede realizar operaciones secuenciales y lógicas, como las funciones de una computadora. Los primeros dispositivos comerciales son conocidos por sus códigos industriales como, 8748, 8085, Z-80, etc. Ahora más recientemente han aparecido una serie de microntroladores muy poderosos y versátiles denominados PIC (Circuitos Integrados Programables) de la fábrica Microchip, de los Estados Unidos. La industria electrónica de los semiconductores se expande por Europa y Asia, apareciendo a lo largo de los años nuevos microcontroladores, más pequeños y eficientes que los originales. Estos dispositivos se han venido incorporando cada vez más dentro de los más variados equipos electrónicos que requieren de cierto control y automatización para un mejor uso en el hogar, en la ciencia y en la industria. De los ejemplos de aparatos que llevan incorporados estos microcontroladores, podemos mencionar los Hornos de Microondas, Grabadores y Reproductores de video (Betamax y VHS), las centrales telefónicas, los sistemas de control de los ascensores, los equipos de transmisión, las cámaras fotográficas, las cámaras de video, en los robots que han descendido en la Luna y en Marte, en diversos juguetes electrónicos (como el NINTENDO), los celulares telefónicos, etc. Los Microcontroladores son circuitos integrados programables, (Programable Integrated Circuits= PIC), son componentes sumamente útiles en la Electrónica de Consumo. Aún son conocidos desde hace más de veinte 18 años, existen en la actualidad nuevos tipos que cumplen con una serie de requisitos y características sumamente útiles. Como una primera aproximación podemos definir a un PIC como un ´´chip que nos permite obtener un circuito integrado a nuestra medida´´, es decir se puede hacer que el PIC se comporte como un procesador de luminancia o un temporizador o cualquier otro sistema mediante un programa que se le grabe en una memoria ROM interna. Los PICs emplean un conjunto de instrucciones del tipo RISC (Reduced Instruction Set Computer, Set de Instrucciones Reducidas). Con el RISC se suele ejecutar la mayoría de las instrucciones con un solo pulso del reloj (Clock). El diagrama general de un sistema microcontrolado se muestra a continuación. DISPOSITIVOS DE ENTRADA 3.3 MICROCONTROLADOR PROGRAMA DISPOSITIVOS DE SALIDA Repetidoras y Fuentes de Energía La miniaturización de los Circuitos Integrados también facilita la construcción de equipos electrónicos más pequeños en la rama de las comunicaciones. La aparición comercial de equipos portátiles o para uso en vehículos diminutos, permite crear Redes de Comunicación como ayuda a las operaciones logísticas de diversos Cuerpos de Ayuda dentro de la sociedad, como los bomberos, la policía, el ejército, etc. La miniaturización de los equipos de transmisión viene asociada con la desventaja que su potencia de transmisión también era pequeña en comparación con los equipos tradicionales y por lo tanto con un alcance más pequeño. Así surge 19 la idea de construir equipos que pudieran recibir las transmisiones de los equipos de poca potencia y retransmitirla con una mayor potencia para alcanzar mayores distancias. Estos equipos de retransmisión se denominan Repetidoras. Generalmente se les coloca en edificaciones o montañas altas para facilitar la cobertura de las señales emitidas. También consisten de un transmisor y un receptor pero varían su manera de operación. Cuando la repetidora recibe una señal del equipo base o de cualquier otro radio del sistema inmediatamente la transmite. La operación de la repetidora se denomina Duplex (doble vìa o 2 vías), ya que puede recibir y transmitir a la vez, sin embargo el usuario de radio no puede hacer las dos funciones al mismo tiempo. Además una repetidora puede transmitir una señal de radio hasta un sistema simplex (una sola vía) de radio que no tiene acceso. Estas repetidoras pueden ser propias o comunitarias. Las repetidoras comunitarias permiten que un número determinado de usuarios de diferentes sistemas compartan un sistema. La energía, también llamada fuente de alimentación de los equipos de comunicación está conformada por un banco de baterías que está siempre cargado por un arreglo de celdas solares, un generador eólico (activado por el viento), en algunos casos una planta generadora de energía eléctrica (Corriente alterna) y un cargador de baterías conectado a la red de la compañía eléctrica (en caso que exista). La empresa de comunicaciones CODIYASCA, fabricante de equipos y sistemas de control de comunicaciones requiere diagnosticar y controlar la fuente de alimentación (Energía) por medio de un conjunto de variables como son, entre otras: Vac (Voltaje de corriente alterna), Iac (Intensidad de corriente alterna), Vdc (Voltaje de corriente continua), Idc (Intensidad de corriente continua), W (Potencia), Q (Cargas) y R (Resistencias) dentro de un sistema de comunicaciones, el cual estará integrado por un conjunto de 20 equipos como generadores (Paneles Solares, Fuentes de Poder conectados a la red de 110Vac y un conjunto de baterías), generadores eólicos, banco de baterías y cargas (Equipos de microondas, computadoras y radio-enlace). Para tener un máximo de eficiencia y eficacia, estos equipos deben funcionar en forma continua, las 24 horas, los 365 días al año. El sistema de diagnóstico y control debe dirigir la carga y descarga para mantener en óptimas condiciones los equipos de comunicaciones. El sistema funge como director de tráfico de energía para mantener la carga óptima en las baterías sin malograrlas, al igual que los equipos, debe prestar su servicio de transmisión y recepción continuamente y reportar cualquiera falla que se presente al control remoto por telemetría. Todas esas variables son controladas a distancia a través de una central de comunicaciones 3.4 Sistemas de comunicaciones Ssegún el autor del libro Sistemas de Comunicaciones A. Bruce Carlson: ‘’Attention, the Universe! By kingdoms, right wheel!’’ (Atención, el Universo! Por reinos, a la derecha!), esta frase profética es el primer mensaje telegráfico registrado, que envió a través de una línea de 16 km Samuel F.B Morse, en 1838. Así nace una nueva era en la comunicación, la era de la comunicación eléctrica. Hoy, los sistemas de comunicación se encuentran en todas partes donde se transmite información de un punto a otro. El teléfono, la radio y la televisión vienen a ser factores de la vida diaria. Definimos a la comunicación como el proceso por medio del cual la información se transfiere de un punto llamado fuente, en espacio y tiempo, a otro punto que es el destino o usuario. Un sistema de comunicación es la 21 totalidad de mecanismos que proporcionan el enlace para la información entre fuente y destino. ¾ Los elementos de un sistema de comunicación: Omitiendo los transductores, hay tres partes esenciales en un sistema de comunicación, el transmisor, el canal de transmisión y el receptor. Cada uno tiene su función característica. • Transmisor El transmisor pasa el mensaje al canal en forma de señal. Para lograr una transmisión eficiente y efectiva, se deben desarrollar varias operaciones de procesamiento de la señal. La más común e importante de estas operaciones es la modulación, un proceso que se distingue por el acoplamiento de la señal transmitida a las propiedades del canal, por medio de una onda portadora (es la que transporta la información). • Canal de transmisión El canal de transmisión o medio es el enlace eléctrico entre el transmisor y el receptor, siendo el puente de unión entre la fuente y el destino. Puede ser un par de alambres, un cable coaxial, una onda de radio o un rayo láser. Pero sin importar el tipo, todos los medios de transmisión eléctricos se caracterizan por la atenuación, la disminución progresiva de la potencia de la señal conforme aumenta la distancia. Es un factor que debe ser considerado al momento de diseñar un sistema de comunicación. 22 • Receptor La función del receptor es extraer del canal la señal deseada y entregarla al transductor de salida. Como las señales son frecuentemente muy débiles, como resultado de la atenuación, el receptor debe tener varias etapas de amplificación. En todo caso, la operación clave que ejecuta el receptor es la demodulación o detección, el caso inverso del proceso de modulación del transmisor, con lo cual vuelve la señal a su forma original. • Transductores Los transductores de entrada son elementos esenciales que producen sonido como por ejemplo el micrófono o imagen como una cámara de televisión y los transductores de salida son los que transforman o recuperan las señales de sonido como por ejemplo el altoparlante y los señales de imagen como un monitor o pantalla de televisión. • Contaminaciones Durante la transmisión de la señal ocurren ciertos efectos no deseados. Uno de ellos es la atenuación, la cual reduce la intensidad de la señal; sin embargo, son más serios la distorsión, la interferencia y el ruido, los cuales se manifiestan como alteraciones de la forma de la señal. Al introducirse estas contaminaciones al sistema, es una práctica común y conveniente imputárselas al canal, pues el transmisor y el receptor son considerados ideales. 23 En términos generales, cualquier perturbación no intencional de la señal se puede clasificar como ‘ruido’, y algunas veces es difícil distinguir las diferentes causas que originan una señal contaminada. 24 Los elementos de un sistema de comunicación Mensaje de Entrada Transductor de entrada Fuente Señal de Entrada Transmisor Señal Transmitida Canal de Transmisión Ruido, distorsión interferencia Señal Recibida Señal De Salida Receptor Mensaje De Salida Transductor de Salida Destino Capitulo 3 4. Marco Metodológico 4.1 Tipo de Investigación En el marco del trabajo planteado referido a un proyecto especial, la investigación se basa esencialmente en la búsqueda y selección del mejor Microcontrolador de la serie Pic de Microchip para construir un equipo electrónico y diseñar y desarrollar un software para programar la aplicación del sistema de control sobre el chip escogido. El proyecto es especial, porque el alcance contempla la construcción y puesta en marcha de un producto final. Según el manual de trabajos de grado de especialización y maestría y tesis doctorales (Universidad Pedagógica Experimental Libertador), el trabajo especial es un trabajo que lleve a creaciones tangibles, susceptibles de ser utilizadas como soluciones a problemas demostrados, o que respondan a necesidades e intereses de tipo cultural. Se incluyen en esta categoría los trabajos de elaboración de libros de texto y de materiales de apoyo educativo, el desarrollo de software, prototipos y de productos tecnológicos en general, así como también los de creación literaria y artística. La investigación es tanto documental como de campo. Es documental porque se investigan todos los tipos de control y de campo, porque se necesita saber como operan las estaciones repetidoras de los sistemas de comunicaciones para luego instalar el producto final. Para el logro del objetivo, se pueden usar muchas herramientas que están a nuestro alcance. En el marco del trabajo planteado referido a un proyecto especial, la investigación se basa esencialmente a la búsqueda y selección del mejor Microcontrolador de la serie Pic de Microchip para construir un equipo electrónico, diseñar y desarrollar un software para programar la aplicación del sistema de control sobre el chip escogido. • Para la investigación y búsqueda del Microcontrolador deseado, se consulta la página web de Microchip (www.microchip.com), allí se puede analizar las características de los chips y escoger el más idóneo para nuestra aplicación. • Para programar el microcontrolador, se utiliza esta misma página web, pudiéndose trabajar con el software (MPLAB) como ayuda a desarrollar y diseñar el programa de escritura y lectura del microchip. • Analizar y Diseñar un programa de retroalimentación (feed back) que permite monitorear y hacer consultas a distancia a través de una terminal, del estado del sistema en general (Baterías, señal RF, energía, fallas de equipos). • Para construir el sistema de control, lo más importante es acertar en la búsqueda del mejor Microcontrolador y luego ensamblar el circuito electrónico (previamente programado) sobre una lámina que contiene un circuito impreso y hacer las conexiones con los periféricos. • Validación del funcionamiento del sistema de control. • Documentación del Sistema de control. 27 4.2 Técnicas de Recolección de Datos La principal fuente de información para la realización de este Trabajo de Grado es la revisión bibliográfica de los libros y revistas relacionados con la ingeniería electrónica y de computación, como también entrevistas hechas a especialistas en el ramo específico y por último una ayuda fundamental por intermedio de internet, usando páginas Web para la captación de datos. 4.3 Técnicas de Programación y Documentación Para el desarrollo de la aplicación del sistema de Monitoreo, se selecciona un lenguaje de alto nivel con programación orientada a objetos (Visual Basic®) basándose en un diseño modular de procedimientos y funciones. Se aplica la normalización de las Bases de Datos hasta la tercera forma normal para reducir las inconsistencias, eliminar las redundancias, minimizar el impacto de posibles cambios en el sistema y facilitar su mantenimiento. Se elabora un conjunto de diagramas y recursos gráficos que favorecen la compresión. Para la programación de la aplicación en el chip (PIC), se utiliza directamente el lenguaje de bajo nivel (Assembler), y para compilar y ensamblar el código fuente, se utiliza el software MPLAB de Microchip (MPASM). Durante las distintas etapas o fases del desarrollo de este trabajo de Grado, se aplican pruebas y procesos de validación para detectar errores, y verificar el cumplimiento del objetivo para garantizar la calidad del producto final. 28 Una vez terminado el programa de Monitoreo, en este caso, la validación del circuito del producto final es lógicamente práctica, o sea, funciona o no funciona. En el caso que no funcione, hay que determinar las causas, determinar cual componente electrónico no esté trabajando, cambiarlo si es necesario y volver otra vez a probar hasta su funcionamiento final. 29 Capítulo 4 5. Desarrollo de la Solución En el desarrollo de la solución del Sistema Microcontrolado de Carga y Descarga de Baterías (SMcCDB), se aplica la metodología de la investigación y búsqueda del microcontrolador, programación del PIC 16F873, análisis, diseño del Monitor de control y diagnóstico de carga y descarga de baterías, Construcción del programador del microcontrolador (PIC800) y construcción del aparato electrónico del Monitor. 5.1 5.1.1 Escogencia del PIC Criterios de selección Se selecciona el dispositivo PIC16F873 por ser el más adecuado para nuestra aplicación, por su amplia memoria de datos y de programa y su costo muy accesible en el mercado nacional. Es muy fácil de manipular, posee conversiones analógicosdigitales (A/D), puertos suficientes de entrada y salida (I/O), se puede programar y reprogramar sin necesidad de borrarlo previamente con ningún tipo de sistema adicional. Tiene una alta ejecución RISC (Reduced Instruction Set Computer, Computador de Conjunto Reducido de instrucciones) del CPU y sólo 35 palabras sencillas de instrucción fáciles de aprender. Tiene una capacidad de hasta 8k x 14 palabras de FLASH Program Memory (Memoria del Programa), hasta 368 x 8 bytes de Data 30 Memory (RAM, Memoria de Datos) y hasta 256 x 8 bytes de EEPROM Data Memory. Posee ocho niveles de profundidad en el hardware del stack (pila), modos de direcciones directos, indirectos y relativos, bajo consumo, alta velocidad de la tecnología CMOS FLASH/EEPROM y un completo diseño estático. Tiene un procesador read/write (leer/escribir) que da acceso directo a la memoria del programa, rango de voltaje de operación de 2.0V hasta 5.5V, alto enfriamiento de la fuente de corriente de 25 mA y bajo consumo. Para mayor información, ver ANEXO A (Diagrama de los pines y referencia del PIC16F873, Descripción de los pines, Características de los periféricos, Diagrama en Bloque y Características del PIC16F873) • Organización de la Memoria Hay tres bloques de memoria en el PIC16F873: Memoria de Programa, Memoria de Datos y Memoria de Datos del EEPROM. La Memoria del Programa y de Datos tienen los buses separados y los accesos concurrentes pueden suceder en cualquier momento. Para mayor información, ver ANEXO A (Mapa de la Memoria del Programa y el Stack) • Organización de la Memoria del Programa El PIC16F873 tiene 13-bit contador de programa capaz de direccionar un espacio de 8k x 14-bit de memoria de programa. El vector del RESET está en la dirección 0000h (hexadecimal) y el vector de interrupción está en la dirección 0004h. 31 • Organización de la Memoria de Datos La memoria de datos está repartida en múltiples bancos, los cuales contienen los registros de Propósito General (General Purpose Registers) y los Registros de las Funciones Especiales (Special Funtion Registers). Los bits RP1 (STATUS<6>) y RP0 (STATUS<5>) son los bits de la selección de los bancos. RP1:RP0 00 01 10 11 Bank (Bancos) 0 1 2 3 Cada banco se extiende hasta 7Fh (128 bytes). Las localizaciones bajas de cada banco están reservadas para los Registros de la Función Especial (Special Funtion Registers). Arriba de los Registros de la Función Especial están los registros de Propósito General, implementados como RAM estática. Todos los bancos implementados contienen los Registros de Propósito General. Algunos Registros de la Función Especial usados frecuentemente en algunos bancos pueden ser extraídos en otros bancos para la reducción de los códigos y para un rápido acceso. • Archivo de Registro de Propósito General (General Purpose Register File) El archivo del registro puede ser accesado directamente o indirectamente a través del File Select Register (FSR, Archivo de Selección de Registros). Para mayor información, ver ANEXO A (Mapa del Archivo de Registro) 32 • Registros de la Función Especial (Special Function Registers) Los Registros de la Función Especial son registros usados por el CPU y sus módulos periféricos para controlar la operación deseada del objeto. Esos registros son implementados como RAM estática. La Función Especial de los Registros puede ser clasificada en dos partes: CPU y los periféricos. • Estados de los Registros (Status Register ) El estado de los registros contiene el estado aritmético del ALU, el estado del RESET y la selección del banco de los bits para la memoria de los datos. El estado (STATUS) del registro puede se el destino para cualquiera instrucción como con cualquier otro registro. Si el estado del registro es el destino para una instrucción que afecta los bits de Z (zero), DC (digito de acarreo) o C (acarreo), entonces la escritura a esos tres bits será inhabilitada. Esos bits son fijados o limpiados dependiendo del objeto lógico. Los bits TO (bit del tiempo fuera) y PD (bit de caída del encendido) no son grabables, lo cual, el resultado de una instrucción con el estado del registro como destinatario puede ser diferente que el intentado. Por ejemplo, CLRF STATUS limpiará los tres bits de arriba y fijará el bit Z. Eso deja el STATUS del registro como 000u u1uu (donde u = invariable). Es recomendable, desde luego, que solo las instrucciones BCF, BSF, SWAPF y MOVWF son usadas para alterar el STATUS del registro, porque esas instrucciones no afectan los bits de Z, C o DC del STATUS del registro. Para mayor información, ver ANEXO A (Registro STATUS) 33 • Registro OPTION_REG Register El registro OPTION_REG Register es un registro donde se puede leer y escribir, contiene varios bits de control para configurar el TMRO (temporizador interno) pre-escala/WDT post-escala, el external INT Interrupt, TMR0 y los pull-ups (arrancadas) en PORTB. Para mayor información, ver ANEXO A (Registros OPTION_REG) • Registro INTCON Register INTCON Register es un registro donde se puede leer y escribir, contiene varios bits de habilitado y bandera para el registro TMR0 de sobre carga, cambio del Puerto RB y el Externo RB0/INT de las interrupciones de los pines. Para mayor información, ver ANEXO A (Registro INTCON) • Registro PIR1 Register El PIR1 Register contiene los bits de la bandera individual para las interrupciones de los periféricos. Para mayor información, ver ANEXO A (Registro PIR1) • PCL y PCLATH El contador del Programa (PC) es de 13 bits de ancho. El byte bajo viene del registro PCL que es un registro donde se puede leer y escribir. Los bits más altos (PC<12:8>) no son registros donde se puede leer pero se 34 puede escribir indirectamente a través del registro PCLATH. En cualquier RESET, los bits más altos del PC pueden ser borrados. Para mayor información, ver ANEXO A (Carga del PC en diferentes situaciones) • STACK (PILA) El PIC16F873 tiene una profundidad de 8 niveles de un ancho de 13 bits para el hardware del stack. El espacio del stack no hace parte del programa o el espacio de datos y con el apuntador del stack no se puede leer o escribir. El PC es empujado (PUSHed) en el stack cuando una instrucción CALL (llamada) es ejecutada o una interrupción es activada. El stack es POPed (empujado de repente) dentro de un evento a una ejecución de una de las instrucciones siguientes: RETURN, RETLW o RETFIE. El PCLATH no se afecta con la operación PUSH o POP. El stack opera como un buffer circular. Eso significa que después que el stack había sido empujado (PUSHed) ocho veces, la novena empujada sobre-escribe el valor que había sido almacenado desde la primera empujada. La décima empujada sobre-escribe la segunda y así sucesivamente. Si un retorno de una instrucción CALL (o interrupción) es ejecutada, los enteros 13-bits del PC son empujados (popped) en el stack. • Direccionamiento Indirecto (Indirect Addressing, INDF y FSR Registers) El registro INDF no es un registro físico. Al direccionar el registro INDF se causará un direccionamiento indirecto. 35 El direccionamiento indirecto es posible usando el registro INDF. Cualquiera instrucción usando el actual registro INDF accesa el registro apuntando al Archivo de la Selección de Registro, FSR (File Select Register). Al leer el registro INDF, indirectamente (FSR=’0’) leerá 00h. Al escribir en el registro INDF indirectamente va a resultar en una acción inoperativa (aunque los bits de status pueden ser afectados). Una efectiva dirección de 9-bits es obtenida al concatenar el registro FSR de 8-bits y el bit IRP (STATUS<7>). Para mayor información, ver ANEXO A (Direccionamiento Directo/Indirecto) Algunos pines de esos puertos I/O son multiplexados con una función alterna de las características de los periféricos del objeto. En general, cuando un periférico es habilitado, este pin no debe ser usado como un propósito general de los pines I/O. • PORTA (Puerto A) y el Registro TRISA PORTA es 6-bit de ancho y es un puerto bidireccional. La dirección de datos del registro correspondiente es TRISA. Fijando un bit TRISA (=1) hace que el pin correspondiente de PORTA sea input (entrada) Borrando el bit (=0) hace que el pin sea output (salida). Todas las operaciones de escritura son operaciones lectura-modificarescritura. Eso significa que una escritura a un puerto implica que los pines del puerto son leídos, el valor es modificado y luego escrito al puerto de datos. El pin RA4 es multiplexado con la entrada del módulo del reloj TIMER0 convirtiéndose en pin RA4/TOCKI. El pin RA4/TOCKI es la entrada del Schmitt Trigger (disparador) y una salida drenada abierta. Todos los pines de PORTA tienen niveles de entrada tipo TTL (Transistor-Transistor- 36 Logic) y amplificadores (drivers) completos de salidas tipo CMOS (Tipos de circuitos integrados). Otros pines de PORTA son multiplexados con entradas analógicas y la entrada analógica del voltaje de referencia (VREF). La operación de cada pin es seleccionada por borrar y ajustar (clearing/setting) los bits de control en el registro ADCON1 (A/D Control Register1). El registro TRISA controla la dirección de los pines RA, aunque están usadas como entradas analógicas. El usuario debe estar seguro que los bits del registro TRISA son mantenidos fijos cuando los están usando como entradas analógicas. • PORTB (Puerto B) y el Registro TRISB El PORTB es 8-bit de ancho y es un puerto bidireccional. La correspondiente dirección de datos es TRISB. Ajustando el bit (=1) del TRISB hace que el pin del PORTB sea una entrada. Borrando el bit (=0) del TRISB hace que el correspondiente pin del PORTB sea una salida. Tres pines del PORTB son multiplexados con la función programable del bajo voltaje: RB3/PGM, RB6/PGC y RB7/PGD. Cada uno de esos pines del PORTB tiene un pull-up (arranque) interno. Un simple pin de control puede encender todos los pull-ups (arrancadas). Esto está hecho al borrar el bit RBPU (OPTION_REG<7>). El pull-up es automáticamente apagado cuando el pin del puerto está configurado como una salida. Los pull-ups son inhabilitados en Power-onReset. 37 • PORTC (Puerto C) y el Registro TRISC El puerto C es 8 bits de ancho y bidireccional. El correspondiente registro de la dirección de data es TRISC. Ajustando el bit de TRISC (bit= 1), hace que el correspondiente pin del puerto C sea una entrada (Input). Borrando el bit de TRISC (bit=0) hace que el correspondiente del pin del puerto C sea una salida (Output). El puerto C es multiplexado con muchas funciones de los periféricos. Cuando las funciones de los periféricos están habilitadas, hay que tener cuidado de definir los bits de cada pin del puerto C. • Acceso a la Memoria del Programa El acceso a la memoria del programa permite el chequeo de la suma (checksum) de la calculadora. Los valores escritos a la memoria del programa no necesitan la validación de las instrucciones. Sin embargo, los números de hasta 14-bit de ancho pueden ser almacenados en la memoria para el uso de los parámetros de calibración, números seriales, paketes ASCII de 7-bit. Ejecutando un programa de la localidad de la memoria que contiene los datos que forman una instrucción inválida, da resultado a una ejecución de NOP (no hace nada). • Acceso al EEPROM de Datos EL acceso de la memoria de datos es permitido para ocho ciclos de borrar-escribir (erase-write, especificación D120). El FLASH de la memoria de programa es permitido para ciclos menores (Especificación D130), porque 38 la memoria de datos del EEPROM puede ser usada para almacenar frecuentemente los valores actualizados. La escritura de un byte o palabra borra automáticamente la localidad y escribe el nuevo valor (borra la ejecución de las instrucciones hasta que la escritura no está completada. La memoria del programa no puede ser accesada durante la escritura. Durante la operación de escritura, el oscilador continúa operando, después escribe). Escribiendo a la memoria de datos del EEPROM no se afecta la operación del dispositivo. Escribiendo a la memoria del programa no cesan los periféricos y continúan funcionando y los eventos de interrupciones pueden ser detectados y esencialmente puestos a la cola hasta que la escritura sea completada. El acceso de escritura y lectura a ambas memorias toma lugar indirectamente a través del ajuste de Función Especial de los Registros (Special Function Registers, SFR). Los seis SFR usados son: EEDATA EEDATH EEDRH EECON1 EECON2 La memoria de datos del EEPROM, la lectura del byte y la operación de escritura no interfiere con la normal operación del microcontrolador. Cuando se realiza la interfaz a la memoria de datos del EEPROM, el registro EEADR mantiene la dirección a ser accesada. Dependiendo de la operación, el registro EEDATA mantiene los datos escritos, o los datos leídos a la dirección del EEADR. El dispositivo PIC16F873 tiene 128 bytes de la memoria de datos del EEPROM y desde luego requiere que el MSb (byte más significante) del EEADR permanezca limpio. 39 Cuando se realiza la interfaz a la memoria del programa, el EEDRH: los registros EEADR forman palabra de dos- byte, la cual mantiene la dirección de 13-bit de la localidad de la memoria de ser accesada. La combinación del registro EEDATH:EEDATA mantiene los datos de 14-bit para las escrituras, o refleja el valor de la memoria de programa antes la operación de lectura. Justo como en los accesos de la memoria de programa del EEPROM, el valor de los registros EEADRH:EEADR debe estar entre el rango válido de la memoria de programa, dependiendo del dispositivo: 000h al 1FFFh para nuestro caso. • Registro EECON1 y EECON2 El registro EECON1 es el registro de control para la configuración e inicialización de los accesos. El registro EECON2 no es un registro implementado físicamente, pero es usado exclusivamente en la secuencia de escritura en la memoria para prevenir las escrituras inadvertidas. Hay muchos bits usados para controlar las operaciones de lectura y escritura al EEPROM de datos y la memoria de programa de FLASH. El bit EEPGD determina si el acceso debe ser de programa o de datos. Cuando se limpia, cualquier operación subsiguiente debe funcionar en la memoria de datos del EEPROM. Cuando se fija, todas operaciones subsecuentes deben operar en la memoria de programa. Las operaciones de lectura solo usan un bit adicional, RD, lo cual inicia la operación de lectura de la localidad de memoria deseada. Una vez ese bit fijado, el valor de la localidad deseada de la memoria estaría habilitado en los registros de datos. Ese bit es borrado automáticamente al final de la operación de lectura. Para las lecturas de la memoria de datos del EEPROM, los datos deben ser habilitados en los registros de EEDATA en el 40 próximo ciclo de la instrucción después que el bit RD esté fijado. Para la memoria de programa de las lecturas, los datos deben ser cargados en los registros EEDATH:EEDATA, siguiendo la segunda instrucción después que el bit RD esté fijado. Las operaciones de escritura tienen dos bits de control: WR y WREN y dos bits de estados (status), WRERR y EEIF. El bit WREN es usado para habilitar o inhabilitar la operación de escritura. Cuando el bit WREN es borrado, la operación escritura debe ser inhabilitada. Sin embargo, el bit WREN debe ser fijado antes la ejecución de la operación escritura. El bit WR es usado para iniciar la operación escritura. Es automáticamente borrado al final de la operación escritura. La bandera de interrupción EEIF es usada para determinar cuando la memoria de escritura esté completada. Esta bandera debe ser borrada en el software antes que se fije el bit WR. Para la memoria de datos del EEPROM, una vez el bit WREN y el bit WR habían estado fijados, la dirección deseada de la memoria en EEADR debe ser borrada, seguida por la escritura de los datos en EEDATA. Esta operación toma lugar en paralelo con el microcontrolador que continúa la ejecución normal. Cuando la escritura es completada, el bit de la bandera EEIF debe ser fijado. Para la memoria de programa, una vez el bit WREN y WR han sido fijados, el microcontrolador debe cesar la ejecución de las instrucciones. La deseada localidad de la memoria apuntada a EEADRH:EEADR debe ser borrada. Después, el valor del dato en EEDATH:EEDATA debe ser programado. Cuando está completado, el bit de la bandera EEIF debe ser fijado y el microcontrolador debe continuar la ejecución de los códigos. El bit WRERR es usado para indicar cuando el dispositivo PICF873 ha sido reseteado durante la operación de escritura. WRERR debe ser borrado después del Power-on Reset y debe ser chequeado en cualquier otro RESET. El bit WRERR es fijado cuando una operación de escritura es 41 interrumpida por un Reset MCLR, o time-out Reset, durante la normal operación. En esas situaciones, siguiendo un Reset, el usuario debe verificar el bit WRERR y reescribir la localidad de la memoria, si esa es fijada. Los contenidos de los registros de datos, los registros de direcciones y el bit EEPGD no son afectados por el Reset MCLR o el Reset Time-out, durante la operación normal. Para leer la memoria de datos del EEPROM se requiere que la dirección deseada de acceso sea escrita al registro EEADR y se borre el bit EEPGD. Después que el bit RD ha sido fijado, los datos deben estar habilitados en el registro EEDATA en el próximo ciclo de la instrucción. EEDATA debe mantener ese valor hasta que otra operación de lectura es iniciada o hasta que sea escrita por el constructor. Los pasos de leer la memoria de datos EEPROM son: • Escribir la dirección al EEPROM. Hay que tener cuidado que la dirección no sea más larga que el tamaño de la memoria del dispositivo. • Borrar el bit EEPGD para apuntar la memoria de datos del EEPROM • Fijar el bit RD para iniciar la operación de lectura. • Leer los datos desde el registro EEDATA Para mayor información, ver ANEXO A (Registro EECON1) • Escritura en la Memoria de Datos del EEPROM Hay varios pasos de escribir en la memoria de datos del EEPROM. Ambos valores de datos y direcciones deben ser escritos al SFR. El bit EEPGD debe ser limpiado, y el bit WREN debe ser fijado, para habilitar las escrituras. El bit WREN debe ser mantenido limpio en todo tiempo, excepto cuando se esté escribiendo al EEPROM de datos. El bit WR puede ser solo 42 fijado si el bit WREN ha sido fijado en una previa operación, ambos bits no pueden ser fijados en el mismo tiempo. El bit WREN debe ser borrado por el programador después la escritura. Borrando el bit WREN antes que la actual escritura se complete, no debe terminar la escritura en progreso. Los pasos de escribir al EEPROM de la memoria de datos son: • Si el paso 10 no es implementado, verificar el bit WR para ver si una escritura está en progreso • Escribir la dirección al EEADR. Tener cuidado que la dirección no sea más larga que el tamaño de la memoria del PIC16F873. • Escribir el valor de dato de 8-bit para ser programado en el registro EEDATA. • Borrar el bit EEPGD para apuntar al EEPROM de la memoria de datos. • Fijar el bit WREN para habilitar las operaciones de programa. • Inhabilitar las interrupciones (si están habilitadas). • Ejecutar las cinco secuencias de las instrucciones especiales: o Escribir 55h al EECON2 en dos pasos (primero al W, después al EECON” o Escribir Aah al EECON2 en dos pasos (primero al W, después al EECON2 o Fijar el bit WR • Habilitar las interrupciones ( si son usadas) • Borrar el bit WREN para inhabilitar las operaciones de programa • Al completar el ciclo de escritura, el bit WR es borrado y la bandera de interrupción EEIF es fijada. Para mayor información, ver ANEXO A (Escritura de datos y escritura de data en el EEPROM) 43 • Lectura de la Memoria del Programa del FLASH Leyendo la Memoria del Programa del FLASH es igual que leyendo la memoria de datos del EEPROM, solo que dos instrucciones NOP deben ser insertadas después que el bit RD sea fijado. Esos dos ciclos de instrucciones que las instrucciones NOP ejecutan, deben ser usadas por el microcontrolador para leer los datos fuera de la memoria del programa e insertan los valores en los registros EEDATH:EEDATA. Los datos deben ser habilitados siguiendo la segunda instrucción NOP. EEDATH y EEDATA deben mantener sus valores hasta que otra operación de lectura se inicie, o hasta que sean escritos por el programador. Los pasos de leer la memoria de programa del FLASH son: • Escribir la dirección al EEADRH:EEADR. Tener cuidado que la dirección no sea más larga que el tamaño de la memoria del dispositivo. • Fijar el bit EEPGD de apuntar a la memoria de programa del FLASH. • Fijar el bit RD de iniciar la operación de lectura. • Ejecutar dos instrucciones NOP para permitir microcontrolador leer fuera de la memoria de programa. • Leer los datos desde los registros EEDATH:EEDATA. Para mayor información, ver ANEXO A (Lectura y Escritura del programa en el FLASH) 44 al • Escritura a la Memoria de Programa del FLASH La escritura de la memoria de programa del FLASH es única, donde el micro no ejecuta instrucciones mientras la programación este en curso. El oscilador continúa corriendo y todos los periféricos y las colas de interrupciones (Si están habilitadas) continúan funcionando. Una vez que la operación de escritura se completa (Especificación D133), el procesador empieza ejecutando el código desde donde dejó de operar. La otra diferencia importante, cuando esta escribiendo a la memoria de programa del FLASH, es que el bit de configuración WRT, cuando es limpio, previene cualquiera escritura a la memoria de programa. Igual que la memoria de datos del EEPROM, hay muchos pasos de escritura para la memoria de programa FLASH. Ambos valores de dirección y datos deben ser escritos a los SFRs. El bit EEPGD debe ser fijado y el bit WREN debe ser fijado para habilitar las escrituras. El bit WREN debe ser mantenido limpio en todo tiempo, excepto cuando se esta escribiendo a la memoria de Programa FLASH. EL bit WR puede ser solo fijado si el bit WREN ha sido fijado en la operación previa. Borrando el bit WREN antes que la actual escritura se complete, no termina el progreso de escritura. Los pasos de escribir a la memoria de programa son: o Escribir la dirección a EEADRH:EEADR. Estar seguro que la dirección no es más larga que el tamaño de la memoria del dispositivo PIC16F873. o Escribir el valor de 14-bit de datos de ser programado a los registros EEDATH:EEDATA. o Fijar el bit EEPGD de apuntar la memoria de programa FLASH. o Fijar el bit WREN de habilitar las operaciones de programa. Inhabilitar las interrupciones (Si están habilitadas) 45 o Ejecutar las 5 secuencias de instrucciones especiales Escribir 55h al EECON2 en dos pasos (primero al W, después al EECON2) Escribir AAh al EECON2 en dos pasos (primero al W, después al EECON2) Fijar el bit WR o Ejecutar dos instrucciones NOP para permitir que el micro ajuste la operación de escritura o Habilitar las interrupciones (si se están usando) o Limpiar el bit WREN para inhabilitar las operaciones de programa. • Verificación de Escritura El dispositivo PIC16F873 no verifica automáticamente el valor escrito durante la operación de escritura. Dependiendo de la aplicación, la mejor práctica de programación puede ayudar a que el valor escrito a la memoria sea verificado contra el valor original. • Protección contra Espurias de Escrituras Hay condiciones cuando el dispositivo no quiere escribir a la memoria de datos del EEPROM o al programa FLASH. Para proteger contra esas condiciones espurias de escritura, muchos mecanismos han sido construidos dentro del PIC. En Power-up (Encendido), el bit WREN es borrado y el Temporizador (Powr-up Timer, si esta habilitado) previene las escrituras. 46 El inicio de la secuencia de escritura y el bit WREN juntos ayudan a prevenir cualquiera escritura accidental durante cambios repentinos (brownout), chispas de encendido o mal funcionamiento de fábrica. • Operación durante la Protección del Código Los dispositivos PIC16F873 tienen dos mecanismos de protección del código, un bit para la memoria de datos del EEPROM y dos bits para la memoria de programa FLASH. Los datos deben ser leídos y escritos a la memoria de datos del EEPROM desde el punto de vista del estado del bit de protección del código, CPD. Cuando el código de protección está habilitado y el CPD borrado, el acceso externo vía ICSP es inhabilitado, desde el punto de vista del estado de los bits de la protección del código de la memoria de programa. Eso previene que los contenidos de la memoria de datos del EEPROM sean leídos fuera del dispositivo. El estado de los bits de protección del código de la memoria de programa, CP0 y CP1, no afecta la ejecución de las instrucciones fuera de la memoria de programa. El dispositivo PIC16F873 puede siempre leer los valores en la memoria de programa en vista del estado de los bits de protección del código. Una vez la protección del código ha sido habilitada para la memoria de datos EEPROM y la memoria de programa FLASH, sólo un borrado completo del dispositivo entero puede inhabilitar la protección del código. • Protección de Escritura de la Memoria de Programa FLASH La palabra de configuración contiene un bit donde la escritura protege la memoria de programa FLASH, llamado WRT. Ese bit puede ser sólo 47 accesado cuando se programe el dispositivo vía ICSP. Una vez la protección de escritura esta habilitada, solo una borrado completo del dispositivo entero puede inhabilitarlo. Cuando el bit está habilitado, la protección de escritura previene cualquiera escritura a la memoria de programa FLASH. La protección de escritura no afecta la memoria de programa de lecturas. Para mayor información, ver ANEXO A (Estado de Lectura/Escritura de la memoria interna del programa FLASH y registros asociados con data del FLASH EEPROM/PROGRAMA) • El Módulo TIMER0 módulo Timer0 temporizador/contador tiene las siguientes características: o Ancho de banda del temporizador/contador de 8-bit o Se puede leer y escribir o Software de 8-bit de pre-escala programable o Selección del reloj externa o interna o Interrupción de sobre flujo de FFh hasta 00h o Selección del pulso para el reloj externo El modo del Temporizador (Timer) es seleccionado borrando el bit TOCS (OPTION_REG<5>). En el modo Timer, el módulo timer0 debe incrementarse cada ciclo de instrucción (sin pre-escala). Si el registro está escrito, el incremento esta inhabilitado para los dos siguientes ciclos de instrucciones. El usuario puede trabajar durante ese tiempo escribiendo un valor ajustado al registro timer0. El modo Counter (Contador) es seleccionado fijando los bits TOCS (OPTION_REG<5>). En el modo Counter, Timer0 debe incrementar cada subida o a cada bajada del pulso del pin RA4/TOCKI. EL incremento del pico (edge) es determinado por la Selección de la Fuente del flanco (edge) del bit 48 de Timer0, TOSE (OPTION_REG<4>). Borrando el bit TOSE se selecciona la subida del pulso. • Interrupción del TIMER0 La interrupción TMR0 es generada cuando el registro TMR0 está fuera del rango de FFh hasta 00h. El sobreflujo fija el bit TOIF (INTCON<2>). La interrupción puede ser enmascarada borrando el bit TOIE (INTCON<5>). El bit TOIF puede ser borrado en el software por el módulo de Selección de Interrupciones de Rutina del TIMER0 antes que se rehabilite esa interrupción. La interrupción TMR0 no puede despertar el procesador de SLEEP (Dormir) porque el temporizador se encuentra inactivo durante el SLEEP. • Uso del Timer0 con un Reloj Externo Cuando la pre-escala no está usada, la entrada del reloj externo es la misma que la salida de la pre-escala. La sincronización del TOCKI con la fase interna de los relojes es cumplida por la muestra de la salida de la preescala en los ciclos de Q2 y Q4 de la fase interna de los relojes. Sin embargo, es necesario para TOCKI de estar en alto por al menos 2Tosc (y un pequeño retardo RC de 20 ns) y bajo por al menos 2Tosc (y un pequeño retardo RC de 20 ns). • Pre-escala (Prescaler) Hay un sola pre-escala disponible, lo cual está mutua y exclusivamente compartida entre el módulo Timer0 y el temporizador 49 Watchdog Timer (supervisor del temporizador). La asignación de pre-escala del módulo Timer0 significa que no hay pre-escala para el Watchdog Timer, y vice-versa. En esa pre-escala no se puede ni leer ni escribir. Los bits PSA y PS2:PS0 (OPTION_REG<3>) determina la asignación de la pre-escala y razón de la pre-escala. • Módulo Convertidor Analógico-Digital (A/D) El módulo Convertidor Analógico-Digital tiene cinco entradas. La entrada analógica carga una muestra y un condensador la mantiene. La salida de la muestra cargada es la entrada del convertidor. El convertidor genera una respuesta digital del nivel analógico. La conversión del A/D de la señal de entrada analógica resulta en un correspondiente número digital de 10-bit. El módulo A/D tiene un voltaje de referencia alto y bajo que es seleccionado por el software en alguna combinación de Vdd, Vss, RA2 o RA3. El convertidor A/D tiene una única característica de ser habilitada mientras el dispositivo esté en modo DORMIDO (SLEEP). Para operar en SLEEP, el reloj del A/D debe ser derivado del oscilador RC de los convertidores A/D. El módulo A/D tiene cuatro registros que son: o Registro del Resultado alto del A/D (ADRESH) o Registro del Resultado bajo (ADRESL) del A/D o Registro0 de control del A/D ADCON0 o Registro1 de control del A/D (ADCON1) El registro ADCON0 controla la operación del módulo de A/D. El registro ADCON1 configura la función de los pines del puerto. Los pines del 50 puerto pueden ser configurados como entradas analógicas (RA3 puede ser también el voltaje de referencia o como entrada/salida digital). Los registros ADRESH:ADRESL contienen el resultado de 10-bit de conversión de A/D. Cuando la conversión A/D es completada, el resultado es cargado en ese registro par del resultado de A/D, el bit GO/DONE (ADCON0<2>) es borrado y el bit ADIF de la bandera de interrupción del A/D es fijada. Después que el módulo A/D haya sido configurado como se ha deseado, la selección del canal debe ser adquirida antes que la conversión se inicie. La entrada analógica de los canales debe tener sus respectivos bits TRIS seleccionados como entradas. Se debe seguir esos pasos para hacer la Conversión A/D: ¾ Configurar el módulo A/D o Configurar los pines/voltaje de referencia analógicos y I/O digital (ADCON1) o Seleccionar la entrada del canal del A/D (ADCON0) o Seleccionar el reloj de conversión del A/D (ADCON0) o Encender el módulo de A/D (ADCON0) ¾ Configurar la interrupción de A/D (si se desea): o Borrar el bit ADIF o Fijar el bit ADIE o Fijar el bit PEIE o Fijar el bit GIE ¾ Esperar el tiempo de adquisición requerido ¾ Empezar la conversión: o Fijar el bit GO/DONE (ADCON0) 51 ¾ Esperar que la conversión A/D se complete por: o Polling (Encabezamiento) para que el bit GO/DONE sea borrado (con interrupciones habilitadas) o o Esperar por la interrupción del A/D ¾ Leer el resultado del registro par del A/D (ADRESH:ADRESL), borrar el bit ADIF si es requerido. ¾ Para la próxima conversión, ir al paso 1 o paso 2, como requerido. El tiempo de conversión por bit de A/D es definido como TAD. Una mínima espera del 2 TAD es requerida antes que las próximas adquisiciones empiecen. Para mayor información, ver ANEXO A (Diagrama en Bloque del A/D y Registro ADCON0) • Requerimientos de las Adquisiciones de A/D Para que el convertidor A/D consiga su exactitud especificada, el mantenimiento de la carga del capacitador (CHOLD) debe permitir la carga completa del nivel de voltaje de la entrada del canal. La impedancia de la fuente (RS) y la impedancia del switche interno del muestreo (RSS) afectan directamente el tiempo requerido de cargar el condensador (CHOLD). La impedancia del switche del muestreo varía en el rango del voltaje del dispositivo (VDD). La máxima impedancia recomendada para las fuentes analógicas es de 10 kΩ. Si la impedancia decrece, el tiempo de adquisición debe decrecer. Después que la entrada analógica del canal es seleccionada (cambiada), esta adquisición debe ser hecha antes que la conversión comenzara. 52 • Selección del Reloj de Conversión de A/D El tiempo de conversión del A/D está definido como TAD. La conversión del A/D requiere un mínimo de 12TAD por 10-bit de conversión. La fuente del reloj de conversión del A/D es seleccionada por medio del software. Las cuatro opciones posibles para TAD son: 2TOSC 8TOSC 32TOSC Módulo del oscilador interno RC (2-6μs) Para las conversiones correctas del A/D, el reloj de conversión del A/D (TAD) debe ser seleccionado para asegurar un mínimo tiempo TAD del orden de 1,6μs. • Configuración de los Pines del Puerto Analógico Los registros ADCON1 y TRIS controlan la operación de los pines del puerto del A/D. Los pines del puerto los cuales han sido seleccionados como entrada analógica deben tener sus correspondientes bits TRIS fijados (entrada). Si el bit TRIS es borrado (salida), el nivel de salida digital (VOH o VOL) debe ser convertido. La operación del A/D es independiente del estado de los bits CHS2:CHS0 y los bits TRIS. Para mayor información, ver ANEXO A (Registro ADCON1) • Las Conversiones de A/D Si se borra el bit GO/DONE durante la conversión, se abortaría la conversión que está en curso. El resultado del registro par del A/D no puede 53 ser actualizado con la parcialidad completada de la conversión del A/D de la muestra. Eso es, los registros ADRESH:ADRESL deben continuar conteniendo el valor de la última conversión (o el último valor escrito en los registros ADRESH:ADRESL). Después que la conversión del A/D es abortada, una espera de 2TAD es requerida antes que la próxima adquisición empezara. Después de esta espera de 2TAD, la adquisición en el canal seleccionado se empieza automáticamente. El bit GO/DONE puede ser fijado para empezar la conversión. • Resultado de los Registros de A/D El registro par ADRESH:ADRESL es la localidad donde el resultado de 10-bit del A/D es cargado cuando se complete la conversión de A/D. Este registro par es 16-bits de ancho. El módulo A/D nos da la flexibilidad de ir a la izquierda o a la derecha y justifica el resultado de 10-bit en el registro de resultado de 16-bit. La Selección del bit de Forma del A/D (ADFM) controla esa justificación. • Características Especiales del CPU El PIC873 tiene un patrón de características para intentar de maximizar la rentabilidad del sistema, minimizar el costo por la eliminación de componentes externos, provee modos de operación de ahorro de energía y ofrece protección de códigos. Esos son: ¾ Selección del oscilador ¾ RESET o Reseteo de encendido de energía (POR) o Tiempo de encendido (PWRT)\ 54 o Tiempo de inicio del oscilador (OST) o Brown-out Reset (Cambios repentinos de Reset, BOR) ¾ Interrupciones ¾ Tiempo de Supervisión (WDT) ¾ SLEEP (Modo Dormir) o Protección de códigos o Identificación de Localidades o Programación serial en circuito o Depuradora en circuito El dispositivo PIC873 tiene un temporizador de supervisión, lo cual puede ser apagado solo a través la configuración de los bits. Funciona con su propio oscilador RC para una rentabilidad adicional. Hay dos temporizadores que nos ofrecen retardos necesarios en el encendido de energía. Uno es el temporizador de inicio del oscilador (OST), intentado para mantener el dispositivo en RESET hasta que el cristal del oscilador sea estable. El otro es el temporizador de encendido (PWRT), lo cual provee un retardo fijo de 72ms (nominal) solamente en modo de encendido y está designado para mantener el dispositivo en RESET mientras la fuente de poder se establezca. Con esos dos temporizadores, muchas aplicaciones no necesitan circuitos externos de reseteo. El modo SLEEP está designado para ofrecer bajo consumo de energía en el modo Apagado. El usuario lo puede despertar del modo SLEEP a través el RESET externo, el Despertador del Temporizador del Supervisor o a través de una interrupción. Muchas opciones de oscilador están siendo habilitadas para permitir al dispositivo ajustarse a la aplicación. La opción del oscilador RC ahorra el costo, mientras la opción del cristal LP ahorra la energía. El ajuste de la configuración de los bits está usado para seleccionar varias opciones. 55 • Configuración de los Bits La configuración de los bits puede ser programada (leída como “0”) o dejada sin programar (leído como “1”) para seleccionar muchas configuraciones del dispositivo. El valor de la palabra de borrado o no de no programar la configuración es 3FFFh. Esos bits son delineados en mapa en la localidad 2007h de la memoria de programa. Es importante notar que la dirección 2007h está en el espacio de la memoria de programa del usuario, la cual puede ser accesada solamente durante la programación. Para mayor información, ver ANEXO A (Configuración de la Palabra, Dirección 2007h) • Configuración del Oscilador ¾ Tipos de Oscilador El PIC873 puede ser operado en cuatro diferentes modos de oscilador. El usuario puede programar dos bits de configuración (FOSC1 y FOSC0) para seleccionar uno de esos cuatro modos: o LP Cristal de bajo consumo o XT Cristal/Resonador o HS Cristal/Resonador de Alta Velocidad o RC Resistencia/Capacitador 56 • Resonadores de Cristal Oscilador/Cerámico En modos XT, LP o HS, un cristal o un resonador cerámico es conectado a los pines OSC1/CLKIN y OSC2/CLKOUT para establecer oscilaciones. El diseño del oscilador del PIC873 requiere del uso de cortes paralelos del cristal. En modos de XT, LP o HS, el dispositivo puede tener una fuente externa de reloj conectada al pin OSC1/CLKIN. • USART (Universal Sincrónico Asincrónico Receptor Transmisor) ¾ Módulo USART El módulo USART es uno de los dos módulos seriales I/O. (USART es también conocido como interfaz serial de comunicación o SCI). El USART puede ser configurado como sistema doble vía (full duplex) asincrónico, el cual puede comunicarse con los periféricos como terminales (CRT) y computadoras personales, o puede ser configurado como sistema asincrónico de una sola vía (half duplex) que puede comunicarse con los periféricos tales como circuitos integrados A/D o D/A, los EEPROMs seriales, etc. El bit SPEN (RCSTA<7> y los bits TRISC<7:6> deben ser fijados en orden para configurar los pines RC6/TX/CK y RC7/RX/DT como el receptor transmisor universal sincrcrónico asincrónico (USART). El módulo USART tiene también una capacidad del procesador múltiple de comunicación usando una dirección de 9-bit de detección. 57 Para mayor información, ver ANEXO A (Registro TXSTA, Estados de Transmisión y Registro de Control, Registro RCSTA, Estados de Recepción y Registro de Control) • Generador de Rata de Baudios (BRG) del USART El BRG soporta ambos modos sincrónico y asincrónico. Por eso está constituido por un generador de rata de baudios de 8-bit. El registro SPBRG controla el período de libre corrida de un temporizador de 8-bit. En modo asincrónico el bit BRGH (TXSTA<2>) controla también la rata de baudios. EN modo sincrónico, el bit BRG es ignorado. Para mayor información, ver ANEXO A (Formula de la Rata de Baudios y Registros Asociados con el Generador de Rata de Baudios, Rata de Baudios para el Modo Asincrónico, BRGH=0= Baja Velocidad y Rata de Baudios para el Modo Asincrónico, BRGH=1= Alta Velocidad) • Conjunto (Set) de Instrucciones Cada instrucción del PIC16F873 es una palabra byte de 14-bit, dividida en un OPCODE (Código) lo cual especifica el tipo de instrucción y uno o varios operandos los cuales además especifican la operación de la instrucción. Para las instrucciones orientadas por byte (byte-oriented), “f” representa un registro de archivo asignador y “d” representa un destino asignador. El registro del archivo asignador especifica cual registro del archivo está siendo usado por la instrucción. El destino asignador específica donde será colocado el resultado de la instrucción. Si “d” es cero, el resultado será colocado en el registro W 58 (Registro de trabajo). Si “d” es uno, el resultado será colocado en el registro especificado en la instrucción. Para las instrucciones orientadas por bit (bit- oriented), “b” representa un bit de campo asignador lo cual selecciona el número del bit afectado por la operación, mientras “f” representa la dirección del archivo donde el bit está localizado. Para las operaciones literales y de control (literal and control), “k” representa un ocho u once bits constantes o un valor literal. Todas las instrucciones son ejecutadas en un simple ciclo de instrucción, a menos que una prueba condicional sea verdadera o el contador de programa sea cambiado como un resultado de la instrucción. En ese caso, la ejecución toma dos ciclos de instrucciones con el segundo ciclo ejecutado como un NOP. Un ciclo de instrucción consiste de cuatro períodos del oscilador. Así, para una frecuencia del oscilador de 4 MHz, el tiempo de la ejecución normal de la instrucción es 1µs. Si la prueba condicional es verdadera, o el contador de programa es cambiado como un resultado de una instrucción, el tiempo de la ejecución de la instrucción es 2µs. Para mayor información, ver ANEXO A (Descripción del Campo del Código y Formato General para las Instrucciones), Set de Instrucciones del PIC 16F873) y Descripción de las Instrucciones) 4.1.2 Utilización del Software Soporte de Desarrollo Los microcontroladores PICmicro® son soportados por un rango completo de herramientas de desarrollo de hardware y software: ¾ Ambiente Integrado de Desarrollo 59 o Software MPLAB® IDE ¾ Ensamblador/Compilador/Enlazador o Ensamblador MPASM™ o Compilador MPLAB C17 y MPLAB C1 o Enlazador objeto MPLINK ™/MPLIB™ objeto de Librería ¾ Simuladores o Software del Simulador MPLAB SIM ¾ Emuladores o Emulador en Circuito MPLAB ICE 2000 o CEPIC™ ¾ Depuradora En-Circuito o MPLAB ICD para PIC 87X ¾ Programadores o Programador Universal PRO MATE® II o Programador de Desarrollo de Entrada de Nivel PICSTART® Plus o PIC800 ¾ Tarjetas de Demostración de Bajo Costo o PICDEM ™ 1 o PICDEM 2 o PICDEM 3 Software de Ambiente Integrado de Desarrollo (MPLAB IDE) El software de Microchip se llama MPLAB. El editor del MPLAB es una parte del Ambiente de Desarrollo Integrado del MPLAB-IDE (Integrated Development Environment) 60 El editor está siempre disponible cuando el MPLAB está corriendo. El editor no es un archivo ejecutable separado, pero es parte de las características del MPLAB. El MPLAB IDE y el editor están designados para permitir y desarrollar un simple y rápido método de compilar la familia de los productos de la tecnología PICmicro microcontroladores. El MPLAB es un Ambiente de Desarrollo Integrado basado en el programa operativo de Windows (IDE, Windows-based Integrated Development Environment ) para la tecnología incorporada de Microchip de la familia PICmicro microcontrolador. El MPLAB nos permite escribir, depurar y optimizar las aplicaciones para los diseños de los productos PICmicro. El MPLAB incluye un editor de textos, simulador y manejo de proyectos. El MPLAB soporta también los emuladores el MPLAB-ICE y el PICMASTER, los programadores PICSTART Plus y PRO MATE II y otros sistemas de desarrollos de otras compañías. El software del MPLAB IDE es un programa de desarrollo muy sencillo. El MPLAB IDE está basado en una aplicación de Windows ® que contiene: ¾ Una Interface de herramientas depuradoras o Simulador o Programador o Emulador o Depuradora En-Circuito ¾ Un Editor de características completas o Un gerente de proyecto ¾ Herramientas de barra y mapa de teclas ¾ Un estado de barra ¾ Ayuda en línea 61 Ayuda del MPLAB La organización de las herramientas del MPLAB a través de las funciones de la ayuda, hace fácil la interpretación, la búsqueda y la programación por la técnica del pull-down del menú general. Las herramientas del MPLAB nos permiten: ¾ Ensamblar, compilar y enlazar los códigos fuente ¾ Depurar el programa ejecutable lógico examinando el flujo del programa por intermedio del simulador o en tiempo real por el emulador MPLAB- ICE ¾ Hacer medidas de tiempo ¾ Ver las variables en la ventana de Supervisión ¾ Programar los micrcontroladores por el PICSTART Plus, PRO MATE II o PIC800 ¾ Encontrar respuestas rápidas de las interrogantes de ayuda en línea del MPLAB y mucho más. La habilidad de usar el MPLAB IDE con las herramientas múltiples de depuradora permite a los usuarios escoger fácilmente entre un simulador de costo efectivo y un emulador de características completas con un mínimo de entrenamiento. El MPLAB es un producto fácil de aprender y utilizar con el Ambiente de Desarrollo Integrado (IDE). El IDE provee el desarrollo de ingeniería, la flexibilidad para diseñar y depurar los programas de la familia Microchip's PICmicro microcontroladores. El MPLAB IDE corre bajo Microsoft Windows 3.1x, Windows 95, 98, NT, y 2000. No todos los componentes del hardware y las funciones bajo el MPLAB IDE (como los emuladores y programadores) funcionan bajo todos los sistemas operativos. Para más detalles nos referimos a la guía de usuarios para un hardware específico.. 62 El MPLAB provee las funciones que nos permiten: ¾ Crear y Editar los Archivos Fuente ¾ Agrupar los Archivos dentro de los Proyectos ¾ Depurar los Códigos Fuente ¾ Depurar el Ejecutable Lógico usando Simulador o Emulador El MPLAB IDE nos permite crear y editar los códigos fuente que nos provee las mejores características de un editor de texto. Podemos fácilmente depurar los códigos fuente con la ayuda de la ventana Build Results (Resultados de la Construcción) que nos muestra los errores encontrados por el compilador, ensamblador y el enlazador (Linker), cuando generan los archivos ejecutables. El Project Manager (Gerente de Proyectos) nos permite agrupar los archivos fuentes, los archivos objeto precompilados, librerías y los archivos de enlace en formato de proyecto. El MPLAB IDE nos provee también las ricas características en ambientes de simuladores y emuladores para depurar los ejecutables lógicos. Algunos de esas características son: ¾ La variedad de ventanas permitiéndonos ver los contenidos de todos los datos y las localidades de la memoria del programa. ¾ El Código Fuente Memoria del Programa y la ventana de los Listados Absolutos nos permite ver el código fuente y sus equivalentes niveles de ensamblaje separados y juntos (Absolute Listing) ¾ La habilidad de navegar a través del programa en general. 63 Herramientas del Desarrollo del MPLAB El MPLAB IDE integra muchas herramientas para proveer un ambiente de desarrollo completo. ¾ MPLAB Project Manager (Gerente de Proyectos) Se usa el Project Manager para crear un proyecto y trabajar con los archivos específicos. Cuando se usa un proyecto, el código fuente es reconstruido y cargado al simulador o al emulador con un simple click del ratón (mouse). ¾ MPLAB Editor (Editor) Se usa el Editor del MPLAB para crear y editar los archivos de texto, tales como los archivos fuente, código y los archivos del enlazador (linker script files) ¾ MPLAB-SIM Simulator (Simulador) El software simulador modela la ejecución de las instrucciones y las entradas y salidas (I/O) del PICmicro Microcontroldores (MCUs). ¾ MPLAB-ICE Emulator (Emulador) El emulador del MPLAB-ICE usa los hardwares para emular los PICmicros en tiempo real ¾ MPASM Universal Assembler (Ensamblador Universal) /MPLINK Relocatable Linker (Enlazador) /MPLIB Librarian (Manejador de Librerías). El Ensamblador del MPASM nos permite ensamblar los códigos fuente sin salir del MPLAB. El MPLINK crea la aplicación final por los módulos del enlace del MPASM, MPLAB-C17, y MPLAB-C18. El maneja las librerías para lograr una máxima codificación ¾ MPLAB-CXX C Compilers (Compiladores C) 64 MPLIB El MPLAB-C17 y MPLAB-C18 C Compilers son compiladores en lenguaje C, que proveen las soluciones de los códigos fuente en programación de alto nivel. ¾ PROMATEII y PICSTART Plus Programmers (Programadores) Desarrolla el código con un simulador o un emulador, lo ensambla o lo compila, y luego usa uno de esos programadores para cargar los micrcontroladores. Todo puede ser cumplido con el MPLAB. Aunque el PRO MATE II no requiere el MPLAB para operar, sin embargo la programación es mucho más fácil usándolo. Para mayor información, ver ANEXO B (Pantalla del Software del MPLAB) Ensamblador MPASM El Ensamblador es un macro de características completas para todos los PICmicro. El Ensamblador MPASM tiene un comando de interfaces en línea y una Ventana (shell). Puede ser usado como aplicación stand-alone (que se mantiene solo) en Windows 3.x o sistema mayor, o puede ser usado a través del MPLAB IDE. El ensamblador MPASM genera archivos objeto para el enlazador objeto MPLINK, Intel ® de archivos estándares HEX, archivos MAP de memoria de uso y referencia de símbolo, archivo absoluto LST que contiene archivos fuente y código de máquina generado, y archivos COD para depuración. Las características del ensamblador del MPASM incluyen: ¾ Integración dentro de los proyectos del MPLAB IDE ¾ Definición del usuario de los macros para streamline assembly code (Código de ensamblaje en línea) 65 ¾ Ensamblaje condicional para muti-propósito de los archivos fuente ¾ Directrices que permiten un control completo del proceso de ensamblaje. Para mayor información, ver ANEXO B (Pantalla del Software del MPASM) Descripción del MPASM El MPASM es una aplicación del sistema operativo DOS o Windowsbased PC que provee una plataforma para desarrollar los códigos en lenguaje Assembler para la familia Microchip's PICmicro microcontroladores (MCU). Generalmente el MPASM se refiere a la plataforma entera de desarrollo incluyendo el macro ensamblador y sus útiles funciones. Para usar el MPASM Universal Assembler para Microchip, se requiere un IBM PC/AT® o computador compatible que funciona y corre en MS- DOS® V5.0 o mayor o Microsoft® Windows 95/98/NT. El MPASM soporta todos los PICmicro, memoria, y los datos de seguridad de los productos de Microchip. Funcionamiento del MPASM El MPASM provee una solución universal para el desarrollo de los códigos en assembler para todos los Microchip's 12-bit, 14-bit y 16-bit. Características Notables del MPASM ¾ Todos las Ajustes de las Instrucciones dePICmicroMCU ¾ Comando de Interfaz de Línea 66 ¾ Comando de Interfaz de Gabinetes ( Shell Interfaces) ¾ Lenguajes de Directivas enriquecidas (Rich Directive Language) ¾ Macro Lenguaje Flexible ¾ Compatibilidad del MPLAB 4.1.3 Escogencia y Utilización del Programador Para este trabajo de grado se va a utilizar el programador PIC800 para cargar el microcontrolador escogido que es en ese caso el PIC16F873. Se seleccionó esa herramienta por ser su diseño muy sencillo, de bajo costo, su software de distribución libre y gratuita, consulta en línea por vía Internet con su creador (www.electronica.ar.com), sus componentes electrónicos están disponibles en el país y por supuesto es fácil de construir y armar. • Programador PIC800 ¾ Introducción El PIC800 es un programador de microcontroladores PIC de Microchip. Soporta los modelos 16C84, 16F84, 16F84A, 16F873, 16F874, 16F876 y 16F877. El hardware se conecta al puerto paralelo de la impresora y el software corre bajo DOS o en una ventana DOS bajo Windows 3.x o 9x. Debido a los sistemas de protección que tienen, el PIC800 no funciona bajo Windows 2000, Windows NT ni Linux, ya que accede directamente al puerto paralelo de la impresora y dichos sistemas operativos no lo permiten. La información de como diseñarlo fue extraída de las notas de aplicación de Microchip números DS39025, DS30189 y AN589. La primera trata sobre la programación de los PIC 16F87x, la segunda sobre los PIC 16x84, y la 67 tercera explica como armar un prototipo de programador básico. En ambas familias, el sistema de programación es el mismo. Lo único que cambia es la cantidad de memoria de programa y datos, por lo que las dos primeras notas de aplicación son muy similares. Las tres notas de aplicación explican como deben ser las señales que le deben llegar al PIC durante la fase de programación y lectura, y que debe hacer el software del programador. El hecho de controlar estas señales en forma adecuada da el dominio sobre el PIC. Con esto quiero decir que no es necesario que se programe el PIC usando el puerto paralelo de la PC y el software y hardware del PIC800, sino que mientras se generen las señales adecuadas, el PIC puede ser programado correctamente. Por eso, es posible usar un puerto serie RS-232, placas especiales de entrada y salida, y porque no, otro microcontrolador (sea o no de Microchip), dando pie a cambios y actualizaciones del software en forma remota. Debido a que Microchip hizo público el protocolo de programación de sus microcontroladores, existe una gran cantidad de programadores, tanto comerciales como amateurs. Los programadores comerciales se caracterizan por soportar gran cantidad de modelos de micros, incluso algunos soportan modelos de otras marcas. Obviamente, las empresas no distribuyen los circuitos esquemáticos. En cambio, los programadores amateurs se caracterizan por tener un bajo costo y por disponer los circuitos esquemáticos y programas en forma libre y gratuita. Incluso algunos distribuyen el código fuente del programador. Debido al bajo costo y por ende a la pequeña cantidad de componentes que necesitan, soportan una cantidad limitada de modelos de microcontroladores que pueden programar. A su favor, tienen la ventaja que para los PIC 16x84 y 16F87x son fácilmente adaptables para usarlos con el sistema ICSP (programación serie en el circuito). Este sistema permite programar al PIC en el mismo circuito en el 68 que va a funcionar, por lo que no es necesario sacarlo de su zócalo para ponerlo en el programador cada vez que hay que reprogramarlo. Esto es muy útil durante la fase de desarrollo y depuración del software del micro. Obviamente, el PIC800 es un programador hogareño. No es un programador de "producción", ya que no tiene implementado la verificación de la grabación a distintas tensiones de alimentación. En un programador comercial, luego de la grabación, el PIC es verificado a la tensión de alimentación mínima y máxima, con lo que se puede asegurar el correcto grabado de la memoria. PIC800 hace la verificación sólo a tensión nominal de alimentación (+5V), con lo que por lo menos se asegura el buen estado de grabación a esa tensión. Hardware y Construcción del Programador PIC800 Como puede verse en el circuito esquemático (ver ANEXO C, Circuito esquemático del PIC800), el hardware del PIC800 es sencillo. El circuito esta dividido en tres partes: alimentación, control y señalización. La alimentación del circuito se obtiene de una fuente externa de entre 15 a 24V (continúa) y 500mA. Un regulador 7805 se encarga de alimentar al PIC con los +5V, y un regulador 7812 con dos diodos 1N4148 conectados en serie a su masa se encarga de proporcionar la tensión de programación Vhh (+13,4V). Los condensadores eliminan los ruidos eléctricos y previenen las oscilaciones. Es conveniente que la llave de encendido (apagado) sea bipolar para evitar el pasaje de ruidos eléctricos desde el transformador a la PC a través de la masa cuando el programador está apagado. La parte de control utiliza transistores de efecto de campo BS170, los cuales toman las señales que envía la PC, las invierten y las envían al PIC. De esta manera se hace una separación eléctrica entre la PC y el PIC. En el 69 caso del bit de Data, hay otro transistor que toma la señal emitida por el PIC, lo invierte y lo envía a la PC. Ese bit es utilizado por el programador para leer el PIC. La señalización consiste en otros tres transistores que toman las señales recibidas por el PIC y manejan sendos leds para indicar el estado de cada señal: Data, Clock y Vpp. Obviamente esto es opcional y la falta de señalización no afecta el funcionamiento del programador. La construcción del programador no debería presentar ningún problema. Se debe tener cuidado al soldar los transistores y no calentarlos mucho ya que son muy sensibles. El conector para el cable que va a la PC debe tener cinco pines como mínimo. Puede ser una ficha DB 9 (como del puerto serie), una RJ45 (como las de red Ethernet) o alguna otra que sea cómoda para conectar. Para el cable de conexión con la PC se recomienda utilizar cable multipar apantallado. La pantalla del cable debe ir conectada al chasis de la PC a través de la ficha DB25. No se debe unir el chasis de la PC con el negativo de la fuente de alimentación. La llave interruptora es opcional, aunque es recomendable instalarla y que corte ambos polos de la fuente para poder desenchufar el transformador y que los ruidos eléctricos no afecten a la PC cuando está conectada. Debido a la sencillez del circuito y a las bajas frecuencias que manejan, no es crítica la posición de los componentes en la plaqueta. Para mayor información, ver ANEXO C (Diagrama Esquemático del Programador PIC800 y Diagrama de la Fuente de Poder del Programador) 70 Software o Instalación El PIC800 no trae un programa instalador porque no es necesario. Para instalarlo, simplemente se copia el archivo PIC800.EXE a un disco y subdirectorio que está en la variable de entorno PATH, para que el DOS lo pueda ejecutar sin necesidad de especificar su ruta. Inclusive lo puede copiar a una unidad de red o a un disco protegido contra escritura, ya que el software no genera ningún archivo de configuración. o Modo de Uso Todos los parámetros se le deben pasar a través de la línea de comandos del DOS. El modo de uso es el siguiente: PIC800 <comando> [-opción …] <archivo> [-opción ...] Donde: > PIC800 es el programa ejecutable del programador. Un comando puede ser uno de los siguientes: o P: Programa al PIC desde un archivo HEX. > o L: Lee el PIC y genera un archivo HEX. o V: Verifica el PIC con un archivo HEX. o B: Borra el contenido del PIC o T: Testea el hardware del programador. Archivo, es un archivo hexadecimal en formato generado por MPASM, y es leído al programar o verificar un PIC, o generado al leer un PIC. 71 Las opciones son: o -L x: Número de puerto LPT a usar (1, 2 o 3). Por defecto, usa LPT1 o -V x: Factor de corrección de la velocidad de procesamiento (1 a1000). Por defecto es 100. o -P x: >Forza al tipo de PIC a utilizar, evitando la autodetección. Los valores permitidos son: 84, 873, 874, 876 y 877. Por defecto: autodetectión. La detección del tipo de PIC se hace leyendo la dirección 0x2006 que contiene un valor único para cada modelo. El factor de corrección de velocidad es un porcentaje que se usa para acelerar o enlentecer la lectura y escritura del PIC. La velocidad nominal es de 100 (100%). Con 300 (300%) se triplica la velocidad, con 50 (50%) se baja la velocidad a la mitad, etc. Esto es útil cuando hay problemas de grabación con maquinas muy rápidas o cuando se quiere acelerar el proceso con máquinas lentas. Software para Probar el Programador (Test) Prueba del programador PIC800 a bajo nivel - Versión 1.41b (C) 1999-2003 por Miguel Scapolla [email protected] www.miguelo.com.ar ******* PIC800 no ofrece ninguna garantía. Vea la licencia GNU adjunta *****----------------- Estado del puerto - LPT1 [0x0378] --------------------Bit Salida Entrada Estado Pin 16x84 Pin 16F874/7 Pin 16F873/6 RB7:Dato 0v RB6:Clock 0v MCLR:Vpp 0v +5v --- BIEN --- 13 40 28 12 39 27 4 1 1 72 ------------------ Estado del puerto en binario --------------------------Salida: xxxxx111 Entrada: 0xxxxxxx ------------------ Comandos disponibles ----------------------------------D - Cambia el dato. C - Cambia el clock. V - Cambia VPP. R - Refresca pantalla. <ESC> - Salir. Elija su opción: Recomendaciones Dependiendo del entorno que se esté usando, hay varias formas de utilizarlo: Si sólo se usa desde DOS (con el compilador MPASM para DOS), conviene crear un programa BAT para invocar al programador sin tener que teclear todos los parámetros cada vez. Por ejemplo: o rem pgm.bat o @echo off o cls o pic800 P prueba.hex -L 2 Entonces, PGM.BAT graba el PIC con PRUEBA.HEX utilizando como puerto de salida/entrada LPT2. También se pueden crear los archivos BORRA.BAT y VERI.BAT para borrar el contenido y verificar respectivamente. Si se esté bajo Windows 3.1x, quizás lo más conveniente es crear un grupo de iconos (en el Administrador de Programas) con el proyecto. Por ejemplo, podrían ser los íconos del MPLAB, del Administrador de Archivos, y un icono del PIC800 por cada tarea a realizar y con un nombre descriptivo. Por ejemplo, el icono para programar se podría llamar "Programar PIC" y en la línea de comandos (en las propiedades del icono) se 73 pueden poner los parámetros. O también, que ese icono llame a PGM.BAT descrito antes. Bajo Windows 95, lo más fácil es crear accesos directos en el escritorio, y en las propiedades, llamar al programador con los parámetros necesarios. El PIC800 no funciona en Windows 2000 ni en Windows NT, ya que el PIC800 accede en forma directa al puerto de la impresora, y dichos sistemas operativos no lo permiten. Se debe usar el comando de borrado (B) con cuidado, porque el PIC800 no pregunta si está de acuerdo o no en borrar el PIC, sino que lo borra sin advertencia previa. Al ser un borrado por hardware de la memoria de programa, datos y configuración, es imposible recuperar el código del PIC. El PIC800 detecta automáticamente el tipo de PIC conectado, por lo que no es necesario especificar el modelo en la línea de comandos. También verifica la consistencia del archivo hexadecimal y que este archivo se corresponda con el PIC. De no corresponder, ya sea porque el archivo es para otro modelo o porque tiene direcciones de memoria inválidas, el PIC800 aborta la grabación presentando un mensaje de error. Ejemplos o PIC800 P -L2 TEST.HEX : Programa al PIC con el archivo TEST.HEX a través de LPT2 o PIC800 L PRUEBA.HEX : Lee el PIC y genera el archivo PRUEBA.HEX a través de LPT1 o PIC800 B -L3 : Borra el PIC a través de LPT3 o PIC800 T -L 2 : Verifica el hardware conectado a LPT2 74 o PIC800 P -V25 DEMO.HEX : Programa al PIC con el archivo DEMO.HEX en LPT1 a una velocidad de 25% de la normal o PIC800 L -V350 TEST.HEX : Lee el PIC hacia el archivo TEST.HEX con LPT1 y a una velocidad 3 1/2 veces mayor a lo normal (350%). Rutinas El testeo interactivo sirve para probar el buen funcionamiento del hardware del programador y detectar fallas. Permite al usuario manejar las señales en forma individual y poder medir las tensiones en el zócalo del PIC. Una vez que el programador está funcionando correctamente, no es necesario utilizar esta opción, pero es muy útil durante la fase de construcción. Simplemente, se llama al PIC800 con el parámetro T y el número de puerto al que está conectado el programador (si es distinto de LPT1). Se Recuerda que al utilizar esta opción, se le mandan las señales al zócalo en donde se aloja el PIC, por lo que se recomienda utilizarlo con el programador encendido pero sin un PIC en el zócalo. Las tensiones indicadas en la columna Salida, deben medirse con un tester en el zócalo del programador. Las de la columna Entrada, no hace falta medirlas. Por último, lo normal es que la señal de entrada de DATA esta invertida con respecto a la salida. Esto es debido al transistor que actúa como inversor y a que el pin BUSY es invertido por la PC. 75 Una vez en el menú de testeo, sólo hay que pulsar las teclas correspondientes para cambiar el valor de la señal para poder medirla en el zócalo del PIC. Las teclas son: o D: Cambia el estado del BIT de dato de salida. o C: Cambia el estado del BIT de reloj. o V: Cambia el estado del BIT de la tensión de programación. o R: Refresca la pantalla. o <ESC>: Finaliza el testeo. • Funcionamiento ¾ Introducción La programación de los PICs de las series 16x84 y 16F87x es relativamente sencilla. Se utiliza una comunicación serie sincrónica con dos hilos: dato y reloj. De esta manera, se le envían comandos para que el PIC los ejecute y datos para que los almacene. Lo que sigue está tomado de las hojas de programación de la EEPROM de los PICs con números DS39025, DS30189 y DS30262 de Microchip. ¾ Mapa de Memoria La memoria EEPROM del PIC está dividida en cinco partes: programa, ID Locs, identidad del dispositivo, configuración y datos. La memoria del programa se extiende desde la dirección 0x0000 hasta 0x1FFF (8Kb), aunque no está implementada en su totalidad en todos los modelos de PICs; contiene el código ejecutable del programa. 76 La memoria "ID Locs" se extiende desde 0x2000 hasta 0x2003. Son cuatro bytes de cuatro bits cada uno que sirve para almacenar un número para implementar alguna característica, por ejemplo, serial de los PICs. La memoria de identidad del dispositivo es un solo byte en la dirección 0x2006 y es de sélo lectura. Contiene un valor para identificar ante el programador el modelo del PIC. Para cada modelo es un valor único, exceptuando al PIC 16C84 y 16F84 que no lo traen implementado (se lee 0xFFFF). La memoria de configuración es un byte en la dirección 0x2007. También es conocida como los fusibles del PIC, y contiene la configuración de arranque, tal como habilitar o no el watch dog (supervisador), proteger el código (CP), tipo de cristal a utilizar (XT), etc. Por último, la memoria de datos se extiende desde la dirección 0x2100 y es una memoria que puede ser leída y escrita por el mismo PIC durante su funcionamiento normal a través de su programa almacenado o escrito por el programador. Al ser una memoria EEPROM no se pierde la información al quitar la alimentación al PIC. ¾ Modo de Programación Para poner al PIC en modo de programación, sólo hay que mantener en nivel bajo los pines RB6 (reloj) y RB7 (dato) mientras se produce el flanco ascendente de bajo (0V) a Vpp (13,4V) del pin MCLR. Una vez en este estado, se puede acceder a la memoria de programa. RB6 es usado como entrada de reloj, y RB7 es usado para entrada de bits de comandos y para entrada y salida de bits de datos durante la operación serie. Para ingresar un comando se necesitan 6 ciclos de reloj. Cada BIT de comando es almacenado en el flanco de bajada del reloj, con el BIT menos significativo (LSB) ingresando primero. En caso 77 de que el comando lleve un dato asociado, se ingresa dicho dato en 16 ciclos de reloj, también con el BIT menos significativo primero. Los datos son de 14 bits, por lo cual, el primer BIT es un BIT de comienzo y el ultimo es un BIT de parada. Si el comando es para leer un dato, el pin RB7 actúa como salida y envía cada BIT de dato en el flanco de subida del reloj, también con 16 bits: BIT de comienzo, 14 bits de datos y un BIT de parada. El dato sale con el BIT menos significativo primero. ¾ Comandos o Load Configuración: Después de recibir este comando y 16 ciclos de reloj, el contador de programa (PC) se sitúa en la dirección 0x2000. De esta manera se puede programar la memoria ID Loc, la de configuración y la de datos. El único modo de volver a poder programar o leer la memoria del programa (0x0000 a 0x1FFF) es reseteando el PIC con el pin MCLR abajo, saliendo del modo de programación volviendo a entrar en l. o Load Data for Program Memory: Después de recibir este comando, el PIC almacena el dato que sigue con los próximos 16 ciclos de reloj para ser grabado en la memoria del programa, ID Locs o configuración. o Load Data for Data Memory: Después de recibir este comando, el PIC almacena el dato que sigue con los próximos 16 ciclos de reloj para ser grabado en la memoria de datos. Nótese que la memoria de datos es de 8 bits por byte, por lo tanto sólo se tendría en cuenta los 8 bits menos significativos de los 14 que componen el dato recibido. 78 o Read Data from Program Memory: Después de recibir este comando, el PIC transmite los bits de datos de la memoria del programa, ID Locs, identidad o configuración según a donde está apuntando el contador de programa (PC). El pin RB7 (dato) cambia a modo salida en el segundo flanco ascendente del reloj y vuelve al modo entrada (alta impedancia) después del decimosexto flanco ascendente del reloj. o Read Data from Data Memory: Después de recibir este comando, el PIC transmite los bits de datos de la memoria de datos (EEPROM) en la que está apuntando el contador de programa (PC). El pin RB7 (dato) cambia a modo salida en el segundo flanco ascendente del reloj y vuelve al modo entrada (alta impedancia) después del decimosexto flanco ascendente del reloj. Nótese que la EEPROM de datos tiene 8 bits por byte, por lo que sólo los 8 bits menos significativos deberían ser tenidos en cuenta. o Increment Address: Después de recibir este comando, el contador de programa (PC) es incrementado en uno (1). Si está apuntando a la memoria de programa (0x0000 a 0x1FFF), cuando su valor es 0x1FFF, pasa a apuntar a la dirección 0x0000 (no a 0x2000). Si está apuntando a la memoria de datos (0x2000 a 0x3FFF) cuando su valor es 0x3FFF, pasa a apuntar a la dirección 0x2000 (no a 0x0000). El único modo de pasar de la memoria de datos a la memoria de programa es reseteando el PIC saliendo del modo de programación y volviendo a entrar en l. 79 o Begin Programming: Programa la memoria del PIC según el último comando "Load Data for Program Memory" o "Load Data for Data Memory" ingresado. Es necesario ejecutar uno de los dos comandos anteriores para programar la posición de memoria. No se requiere ningún comando de final de programación. o Bulk Erase Program Memory: Después de recibir este comando, con el próximo comando "Begin Programming" se borra toda la memoria de programa. Para realizar el borrado en forma correcta se deben cumplir los siguientes pasos: 9 Comando Load Data for Program Memory con 0xFFFF como valor 9 Comando Bulk Erase Program Memory 9 Comando Begin Programming 9 Esperar 10 ms Si el PIC tiene la protección de código activado, la memoria de programa no se borra. • Protección del Código (CP) Si el PIC tiene la protección del código activado, al leerlo se obtienen todas las posiciones de memoria en cero, y la programación de esa parte de la memoria será deshabilitada. Para poder reutilizar el PIC, es necesario deshabilitar esta protección antes de intentar grabar en él. Los pasos para deshabilitarla son: o Enviar el comando Load Configuración con 0xFFFF como dato. o Incrementar la dirección (PC) con el comando Increment Address a la dirección 0x2007 (Configuración). 80 o Enviar el comando 0x01. o Enviar el comando 0x0 o Enviar el comando Begin Programming. o Esperar 10 ms. o Enviar el comando 0x01. o Enviar el comando 0x07. • Archivo Hexadecimal El archivo hexadecimal contiene el programa compilado por el MPASM u otro compilador para PICs. Este archivo es leído por el programador (en este caso es PIC800) y es transferido al PIC. El PIC800 sólo reconoce el formato Intel INHX8M que se describe a continuación. Este formato produce un archivo hexadecimal de 8 bits con una combinación de byte bajo - alto. Como cada dirección contiene sólo 8 bits, todas las direcciones están duplicadas. Cada registro de datos comienza con un prefijo de 9 caracteres y termina con 2 caracteres de checksum (chequeo de suma). Cada registro tiene el siguiente formato: :BBAAAATTHHHHHH....HHHHCC Donde: o : Es el carácter dos puntos, y representa el comienzo de un registro. o BB Es un byte de dos dígitos hexadecimales que representan la cantidad de bytes de datos que contiene la línea. o AAAA Es una dirección de cuatro dígitos hexadecimales que representan la dirección de comienzo del registro de datos (multiplicada por dos). 81 o TT Es un byte de dos dígitos hexadecimales que siempre es '00', excepto en el registro de final de archivo, en donde es '01'. o HH..HH Son pares de bytes de dos dígitos hexadecimales, de la forma byte bajo - byte alto, y representan los datos a grabar en el PIC. o CC Es un byte de dos dígitos hexadecimales que representan el checksum de verificación de errores del registro de datos. Se calcula como el complemento a dos de la suma de todos los bytes anteriores en el registro. Ver foto 1: Circuito Armado del PIC800 5.2 Diseño del Sistema de Monitoreo de Carga y Descarga de Baterías 5.2.1 OBJETIVO GENERAL Analizar las variables periódicamente comparándolas con los valores dentro de los rangos máximos y mínimos permitidos para cada uno, dar alarma cuando dichos valores y rangos salgan de lo aceptado, emitir informes y tomar decisiones. 82 • Primera Función Recopilar y almacenar las informaciones. A continuación se ilustra la pantalla asociada a esta función: INFORMACION Tipo de información: datos recibidos durante una consulta o causados por una alarma Data.Rx : datos recibidos por método del USART por el puerto RS232 durante la consulta o causados por una alarma Data.Tx: datos transmitidos por el método del USART por el puerto RS232 durante la consulta o causados por una alarma Voltaje : Voltaje de alimentación de los equipos de telecomunicaciones Voltaje Máximo: Voltaje de Carga de la batería expresado en voltios Voltaje Mínimo : Voltaje de Descarga de la batería Fecha : Fecha de recepción de la información Hora : Hora de recepción de la información Amperaje : Amperaje de suministro para los equipos de telecomunicaciones Amperaje Máximo: Amperaje de carga de la batería expresado en Amperios Amperaje Mínimo: Amperaje de descarga de la batería • Identificación de las Entidades y Atributos que soportan la función Parece ser que toda la información que se despliega en la pantalla es relativa a los datos del sistema de monitoreo de carga y descarga de las baterías. Por lo tanto definimos una entidad que llamamos ”Información”. 83 Para facilitar su visualización representaremos la entidad y sus atributos en la Tabla de Valores. “INFORMACIÓN” Tipo.inf Amp.min • Fecha Hora Data.Rx Volt Volt.max Volt.mi Amp Amp.max Data.Tx Determinación de las Claves de las Entidades “INFORMACION/VOLTAJE” Seguidamente debemos identificar el atributo o conjunto de atributos que forman la clave de la entidad “INFORMACION/VOLTAJE”. En este caso el tipo de información y el voltaje forman la clave concatenada de la entidad y cumple con la condición de identificar en forma única a los datos del voltaje. Entidad: “INFORMACION/VOLTAJE” Tipo.inf Volt Volt.max Volt.min Hora Fecha INFORMACION/AMPERAJE En este caso el tipo de información y el amperaje forman la clave concatenada de la entidad y cumple con la condición de identificar en forma única a los datos de amperaje. 84 Entidad: “INFORMACION/AMPERAJE” Tipo.inf Amp Amp.max Amp.min Fecha Hora VOLTAJE Aquí la clave de la entidad simple es el voltaje Entidad: “VOLTAJE” Voltaje Voltaje.max Voltaje.min AMPERAJE En ese caso, la clave de la entidad es el amperaje. Entidad: “AMPERAJE” Amperaje Amperaje.max Amperaje.min Se han llevado las entidades a su tercera forma normal a fin de asegurarnos que los atributos se agrupan en entidades en la manera más simple, con claves correctas y completas. • Establecimiento del Modelo de Datos de la Función A partir de las entidades en tercera forma normal podemos ver las relaciones o vías de acceso que se establecen entre ellas para obtener la información que se despliega en la pantalla asociada a la función. El conjunto 85 de entidades y relaciones entre ellas, representan el modelo de datos de la función, que ilustramos a continuación: “INFORMACIÓN” Tipo.inf Fecha Hora Amp.min Volt Volt.max Volt.min Amp.max Data.Tx Data.Rx Entidad: INFORMACION/VOLTAJE” Tipo.inf Volt Volt.max Volt.min Hora Fecha Entidad: “VOLTAJE” Volt Volt.max Volt.min Entidad: “INFORMACION/AMPERAJE” Tipo.inf Amp Amp.max Amp.min Fecha Entidad: “AMPERAJE” Amp Amp.max Amp.min 86 Hora Amp La representación de este modelo en forma equivalente a la anterior, pero sólo en el ámbito de entidades, luce de la siguiente forma: INFORMACION INF/VOLTAJE VOLTAJE INF/AMPERAJE • AMPERAJE Segunda Función La segunda función se trata de analizar la información, transmitir las alarmas según los tipos de fallas que se originan en el sistema de telecomunicaciones (Voltaje, amperaje, carga, señal), y emitir los informes pertinentes para las tomas de decisiones. PROBLEMA Tipo.Información: datos recibidos durante la consulta o causados por una alarma Falla: Anomalía en el sistema de teletelecomunicaciones Tipo de falla: Tipo de desperfecto en el sistema Alarma: causa de cualquier falla registrada en el sistema Cód.alarma: Código de las alarmas según la falla Voltaje: Voltaje de alimentación de los equipos Amperaje: Carga de los equipos Data.Tx: Información de transmisión Data.Rx: Información de recepción Fecha/Hora: Fecha y hora de las informaciones 87 • Identificación de las Entidades y Atributos que soportan la Función Como se puede observar en la pantalla asociada a esta función, la información que en ella se despliega es relativa a las alarmas, por lo tanto definiremos una entidad que se llama “PROBLEMA”. Para facilitar la visualización y análisis de la entidad, la representaremos en la Tabla de Valores siguiente: Entidad: “PROBLEMA” Tipo.inf Falla Fecha • Tipo.falla Alarma Cod.alarma Voltae Amperaje Data.Tx Data.Rx Hora Determinación de las Claves de las Entidades identificadas Ahora que tenemos identificada la entidad asociada a esta función del sistema, su “Tipo.inf/Tipo.falla/Cod.Alarma”, clave concatenada como se que es representa a continuación en la Tabla de valores, procedemos a normalizar la entidad para llevarla a su expresión más simple. 88 Entidad: “TIPO.INF/FALLAS” Tipo.inf Falla Tipo.falla Amperae Data.Tx Data.Rx Voltaje Fecha Hora Entidad: “TIPO.INF/ALARMAS” Tipo.inf Alarma Cod.alarma Amperaje Data.Tx Data.Rx Voltaje Fecha Hora Entidad: “FALLAS” Falla Tipo.falla Amperaje Data.Tx Data.Rx Voltaje Fecha Hora Entidad: “ALARMAS” Alarma Cod.alarma Amperaje Data.Tx Data.Rx 89 Voltaje Fecha Hora • Modelo de Datos de la Función Igual que la primera función, el modelo de datos se queda como sigue a continuación: Entidad: “PROBLEMA” Tipo.inf Tipo.falla Cod.alarma Fecha Hora Voltae Amperaje Data.Tx falla alarma Data.Rx Entidad: “Tipo.Inf/Fallas” Tipo.inf Tipo.Falla Falla Amperaje Data.x Data.Rx Voltaje Fecha Hora Entidad: “Fallas” Tipo.falla Falla Amperaje Data.Tx Voltaje Data.Rx Fecha Hora Entidad: “Tipo.Inf/Alarma” Tipo.inf Alarma Cod.Alarma Amperaje Data.Tx Voltaje Data.Rx Fecha Hora Entidad: “Alarmas” Alarma Cod.alarma Amperaje Data.Tx Voltaje Data.Rx 90 Fecha Hora La representación de este modelo en forma equivalente a la anterior, pero sólo a nivel de entidades, luce de la siguiente forma: PROBLEMA • TIPO.INF/FALLAS FALLAS TIPO.INF/ALARMAS ALARMAS Modelo Conceptual de Datos del Sistema Ha llegado el momento de consolidar todos los datos requeridos para soportar cada una de las funciones, en un conjunto de entidades, a fin de desarrollar el modelo conceptual de datos del sistema. A continuación, se listan las entidades definidas para las dos funciones del sistema de información. 91 Entidad: “INFORMACION” Tipo.inf Amp.min Fecha Hora Volt Volt.max Volt.min Data.Tx Data. Rx Amp Amp.max Entidad: “INFORMACION/VOLTAJE” Tipo.inf Volt Volt.max Volt.min Hora Fecha Entidad: “INFORMACION/AMPERAJE” Tipo.inf Amp Amp.max Amp.min Fecha Hora Entidad: “VOLTAJE” Voltaje Voltaje.max Voltaje.min Amperaje.max Amperaje.min Entidad: “AMPERAJE” Amperaje 92 Entidad: “PROBLEMA” Tipo.inf Falla Fecha Tipo.falla Hora Alarma Cod.alarma Voltaje Amperaje Data.Rx Data.Tx Entidad: “TIPO.INF/FALLAS” Tipo.inf Falla Tipo.falla Amperae Voltaje Fecha Hora Data.Rx Data.Tx Entidad: “TIPO.INF/ALARMAS” Tipo.inf Alarma Cod.alarma Amperaje Voltae Fecha Hora Data.Tx Data.Rx Entidad: “FALLAS” Falla Tipo.falla Amperaje Voltaje Fecha Hora Data.x Data.Tx Entidad: “ALARMAS” Alarma Cod.alarma Una continuación vez Amperaje Data.Tx Voltaje Fecha Hora Data.x consolidadas las entidades, debemos proceder a con los modelos de datos de cada función para obtener finalmente el modelo conceptual de datos del sistema completo. 93 El mejor enfoque para obtener el modelo conceptual de datos del sistema (MCDS), es considerar cada uno de los modelos de datos de las funciones, uno por uno, y construir el modelo conceptual de datos (MCD) con las relaciones que soportan los caminos de acceso entre entidades en los modelos de datos de las funciones como se ilustra a continuación: INFORMACION ALARMAS FALLAS ALARMAS TIPO.INF/ FALLA TIPO.INF/VOLTAJE TIPO.INF/ ALARMA TIPO.INF/AMPERAJE VOLTAJE AMPERAJE Hemos terminado el último paso del análisis de datos. Las entidades, modelos de datos de las funciones y el modelo conceptual de datos del sistema están completos y normalizados y las claves de todas las entidades han sido identificadas. • Documentación del Análisis de los Datos Durante el análisis de los datos se prepara una serie de papeles de trabajo que fundamentarán posteriormente el diseño lógico y físico de la base de datos. 94 • Inventario de Atributos CODIYASCA SISTEMA DE MONITOREO DAT 100 INVENTARIO DE ATRIBUTOS REFERENCIA CRUZADA: DAT 100 NÚMERO NOMBRE DESCRIPCIÓN EL 001 Tipo.Inf Tipo de datos recibidos durante la consulta o por falla EL 002 Volt Voltaje normal de alimentación de los equipos (V) EL 003 Volt.max Voltaje máximo medido (mas de lo normal) (V) EL 004 Volt.min Voltaje mínimo medido (menos de lo normal) (V) EL 005 Amp Amperaje normal de carga de los equipos (A) EL 006 Amp.max Amperaje máximo medido (mas de lo normal) (A) EL 007 Amp.min Amperaje mínimo medido (menos de lo normal) (A) EL 008 Data.Tx Datos transmitidos de forma serial por método USART EL 009 Data.Rx Datos recibidos por USART EL 010 Falla Cualquier desperfecto del sistema EL 011 Tipo.falla Tipo de problema causado por cualquiera variable EL 012 Alarma Aviso de las diferentes fallas El 013 Cod.alarma código de las alarmas según las variables EL 014 Fecha Fecha de recepción de la información EL 015 Hora Hora de recepción 95 • Descripción de Atributos CODIYASCA DAT101 SISTEMA DE MONITOREO ITEM : EL001 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 001 NOMBRE DE ATRIBUTO: Tipo.inf DESCRIPCIÓN: Tipo de datos recibidos durante la consulta o por falla FORMATO: N (4) PROPÓSITO: Recibir el tipo de información a cada consulta o a cada problema que se presente en el sistema USADO EN ENTIDADES: "INFORMACIÓN ", “INFORMACION/VOLTAJE”, “INFORMACION/AMPERAJE”, “PROBLEMA”, “TIPO.INF/FALLA”, “TIPO.INF/ALARMA” VALOR TIPO 0001 DEFINICIÓN Falla Rx 96 CODIYASCA DAT 102 SISTEMA DE MONITOREO ITEM :EL002 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 002 NOMBRE DE ATRIBUTO: Volt DESCRIPCIÓN: Voltaje Normal de alimentación de los equipos expresado en voltios FORMATO: N (5) PROPÓSITO: Supervisar y controlar el voltaje normal USADO EN ENTIDADES: "INFORMACIÓN", “INF/VOLTAJE”, “VOLTAJE”, “PROBLEMA”, “TIPO.INF/FALLA”, “TIPO.INF/ALARMA”, “FALLA”, “ALARMA” VALOR Volt DEFINICION 13.5V 13 voltios y medio necesarios para alimentar los equipos 97 CODIYASCA DAT103 SISTEMA DE MONITOREO ITEM : EL 003 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 003 NOMBRE DE ATRIBUTO: Volt.max DESCRIPCIÓN: Voltaje máximo permitido sin detección de falla FORMATO: N (5) PROPÓSITO: Supervisar y controlar los voltajes máximos USADO EN ENTIDADES: "INFORMACION", “INFORMACION/VOLTAJE”, “VOLTAJE” VALOR Volt.max 16,5V DEFINICIÓN 16 Voltios y medio 98 CODiYASCA D 104 SISTEMA DE MONITOREO ITEM : 004 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 004 NOMBRE DE ATRIBUTO: Volt.min DESCRIPCIÓN: Voltaje mínimo permitido sin detectar falla alguna FORMATO: N (5) PROPÓSITO: Supervisar y controlar los voltajes mínimos USADO EN ENTIDADES: "INFORMACIÓN", “INFORMACION/VOLTAJE”, “VOLTAJE” VALOR Volt.min 11.5V DEFINICIÓN 11 voltios y medio 99 CODIYASCA DAT 105 SISTEMA DE MONITOREO ITEM: EL005 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 005 NOMBRE DE ATRIBUTO: Amp DESCRIPCIÓN: Amperaje que define la carga normal de los equipos expresado en Amperio (A) FORMATO: N (5) PROPOSITO: Supervisar y controlar la carga normal de los equipos USADO EN ENTIDADES: "INFORMACIÓN", “INFORMACION/AMPERAJE”, “AMPERAJE”, “PROBLEMA”, “TIPO:INF/FALLA”, “TIPO.INF/ALARMA”, “FALLA”, “ALARMA” VALOR Amp 30A DEFINICIÓN 30 Amperios (A) 100 CODIYASCA DAT 106 SISTEMA DE MONITOREO ITEM : EL 006 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 006 NOMBRE DE ATRIBUTO: Amp.max DESCRIPCIÓN: Amperaje máximo sin detección de falla FORMATO: N (5) PROPÓSITO: Supervisar y controlar la carga máxima de los equipos USADO EN ENTIDADES: “INFORMACIÓN”, “INFORMACION/AMPERAJE”, “AMPERAJE” VALOR Amp.max 35A DEFINICIÓN 35 Amperios (A) 101 CODIYASCA DAT 107 SISTEMA DE MONITOREO ITEM : EL007 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 007 NOMBRE DE ATRIBUTO: Amp.min DESCRIPCIÓN: Amperaje mínimo sin detección de falla FORMATO: N (5) PROPÓSITO: : Supervisar y controlar la carga mínima de los equipos USADO EN ENTIDADES: “INFORMACIÓN” “INFORMACION/AMPERAJE”, “AMPERAJE” VALOR Amp.min DEFINICION 25A 25 Amperios (A) 102 CODIYASCA DAT 108 SISTEMA DE MONITOREO ITEM : EL 008 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 008 NOMBRE DE ATRIBUTO: Data.Tx DESCRIPCIÓN: Datos transmitidos por el puerto RS232 por el método USART FORMATO: N (16) PROPÓSITO: Transmitir cualquier falla a la central USADO EN ENTIDADES: “INFORMACIÓN”, “PROBLEMA”, “TIPO.INF/FALLAS”, “TIPO.INF/ALARMAS”, “FALLAS”, “ALARMAS” VALOR Serial Binario DEFINICIÓN 1000110011100101 Transmisión binaria 103 CODIYASCA DAT109 SISTEMA DE MONITOREO ITEM : EL 009 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 009 NOMBRE DE ATRIBUTO: Data.Rx DESCRIPCIÓN: Datos recibidos por el puerto RS232 por el método USART FORMATO: N (15) PROPÓSITO: Datos recibidos de una consulta o una falla a la central USADO EN ENTIDADES: “INFORMACIÓN”, “PROBLEMA”, “TIPO.INF/FALLAS”, “TIPO.INF/ALARMAS”, “FALLAS”, “ALARMAS” VALOR Serial Binario DEFINICIÓN 1001010001100101 Recepción binaria 104 CODIYASCA DAT110 SISTEMA DE MONITOREO ITEM : EL 010 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 010 NOMBRE DE ATRIBUTO: Falla DESCRIPCIÓN: cualquier desperfecto de los parámetros del sistema causa una falla FORMATO: N (15) PROPÓSITO: Supervisar y controlar las fallas del sistema en general USADO EN ENTIDADES: “INFORMACIÓN”, “PROBLEMA”, “TIPO.INF:FALLAS”; “TIPO.INF/ALARMAS”, “FALLAS” VALOR Voltaje DEFINICIÓN 10V ese valor causa una falla de voltaje 20A ese valor de carga causa una falla de carga (Amperaje) 105 CODIYASCA DAT111 SISTEMA DE MONITOREO ITEM: EL 011 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 011 NOMBRE DE ATRIBUTO: Tipo.falla DESCRIPCIÓN: Tipo de problema causado por cualquiera variable del sistema FORMATO: N (15) PROPÓSITO: Supervisar y controlar los tipos de fallas para su análisis y su Corrección USADO EN ENTIDADES: “PROBLEMA”, “TIPO.INF/FALLAS”, FALLAS” VALOR Tipo DEFINICIÓN 00010 Falla de señal 00020 Falla de carga 106 CODIYASCA DAT112 SISTEMA DE MONITOREO ITEM: EL012 DESCRIPCIÓN DE ATRIBUTO NUMERO DE ATRIBUTO: EL 012 NOMBRE DE ATRIBUTO: Alarma DESCRIPCIÓN: Aviso de cualquiera falla surgida en el sistema FORMATO: N (7) PROPÓSITO: Supervisar y controlar las alarmas para su corrección inmediata USADO EN ENTIDADES: “PROBLEMA” , “TIPO.INF/ALARMAS”, “ALARMAS VALOR Tipo DEFINICION 00011 Alarma de voltaje mínimo 00021 Alarma de voltaje máximo 107 CODIYASCA DAT113 SISTEMA DE MONITOREO ITEM: EL 013 DESCRIPCIÓN DE ATRIBUTO NÚMERO DE ATRIBUTO: EL 013 NOMBRE DE ATRIBUTO: Cod.alarma DESCRIPCIÓN: Códigos de las diferentes alarmas según las variables del sistema FORMATO: N (15) PROPÓSITO: Supervisar, controlar y conocer los tipos de alarmas para su análisis, su detección y su corrección respectiva USADO EN ENTIDADES: “PROBLEMA”, “TIPO.INF/ALARMAS”, “ALARMAS” VALOR Código DEFINICIÓN 00010 Falla de señal 00020 Falla de carga 108 CODIYASCA DAT 114 SISTEMA DE MONITOREO ITEM: EL014 DESCRIPCIÓN DE ATRIBUTO NUMERO DE ATRIBUTO: EL 014 NOMBRE DE ATRIBUTO: Fecha DESCRIPCIÓN: Fecha de recepción de la información FORMATO: N (8) PROPÓSITO: Registrar las fechas de recepción de la información para su Análisis USADO EN ENTIDADES: “INFORMACIÓN”, “INFORMACIÓN/VOLTAJE”, “INFORMACIÓN/AMPERAJE”, “PROBLEMA”, “TIPO,INF/FALLAS”, “TIPO.INF.ALARMAS”, “FALLAS”, “ALARMAS” VALOR Tipo 25/03/03 DEFINICION 25 de Marzo del año 2003 109 CODIYASCA DAT115 SISTEMA DE MONITOREO ITEM: EL 015 DESCRIPCIÓN DE ATRIBUTO NUMERO DE ATRIBUTO: EL 015 NOMBRE DE ATRIBUTO: Hora DESCRIPCIÓN: Hora de recepción de la información FORMATO: N (8) PROPÓSITO: Registrar las horas de recepción de la información para su análisis USADO EN ENTIDADES: “INFORMACIÓN”, “INFORMACIÓN/VOLTAJE”, “INFORMACIÓN/AMPERAJE”, “PROBLEMA”,“TIPO,INF/FALLAS”, “TIPO.INF.ALARMAS”,“FALLAS”, “ALARMAS” VALOR Tipo DEFINICION 23:45:32 23 horas,45 minutos, 32 segundos 110 • Inventario de Entidades CODIYASCA SISTEMA DE MONITOREO DAT 110 INVENTARIO DE ENTIDADES REFERENCIA CRUZADA : DAT 111 NÚMERO NOMBRE ENT 001 INFORMACION ENT 002 INFORMACIÓN/VOLTAJE ENT 003 INFORMACIÓN/AMPERAJE ENT 004 VOLTAJE ENT 005 AMPERAJE ENT 006 PROBLEMA ENT 007 TIPO.INF/FALLAS ENT 008 TIPO.INF/ALARMAS ENT 009 FALLAS ENT 010 ALARMAS 111 • Descripción de Entidades CODIYASCA DAT 111 SISTEMA DE MONITOREO DESCRIPCIÓN DE ENTIDADES NÚMERO DE ENTIDADES: ENT 001 NOMBRE DE ENTIDAD: INFORMACIÓN TAMAÑO: 256 caracteres TIPO: Raíz DESCRIPCIÓN: Contiene todos los datos de la consulta o fallas ATRIBUTOS: NÚMERO NOMBRE EL 001 Tipo.inf EL 002 FORMATO LONGITUD USO N (4) 4 Clave Volt N (4) 4 Clave EL 003 Volt.max N (4) 4 EL 004 Volt.min N (4) 4 EL 005 Amp N (4) 4 EL 006 Amp.max N (4) 4 EL 007 Amp.min N (4) 4 EL 008 Data.Tx N(16) 16 El 009 Data.Rx N(16) 16 El 014 Fecha N(8) 8 El 015 Hora N(6) 6 112 Clave CODIYASCA DAT 112 SISTEMA DE MONITOREO DESCRIPCIÓN DE ENTIDADES NÚMERO DE ENTIDADES: ENT 002 NOMBRE DE ENTIDAD: INFORMACIÓN/VOLTAJE TAMAÑO: 256 caracteres TIPO: Raíz DESCRIPCION: Contiene los datos estáticos del voltaje ATRIBUTOS: NÚMERO NOMBRE EL 001 Tipo.inf EL 002 FORMATO LONGITUD USO N (4) 4 Clave Volt N (4) 4 Clave EL 003 Volt.max N (4) 4 El 004 Volt.min N(4) 4 El 015 Hora N(6) 6 El 014 Fecha N(8) 8 113 CODIYASCA DAT 112 SISTEMA DE MONITOREO DESCRIPCIÓN DE ENTIDADES NÚMERO DE ENTIDADES: ENT 003 NOMBRE DE ENTIDAD: INFORMACIÓN/AMPERAJE TAMAÑO: 256 caracteres TIPO: Raíz DESCRIPCION: Contiene los datos estáticos del Amperaje ATRIBUTOS: NÚMERO NOMBRE EL 001 Tipo.inf EL 005 FORMATO LONGITUD USO N (4) 4 Clave Amp N (4) 4 Clave EL 006 Amp.max N (4) 4 El 007 Amp.min N(4) 4 El 015 Hora N(6) 6 El 014 Fecha N(8) 8 114 CODIYASCA DAT112 SISTEMA DE MONITOREO DESCRIPCIÓN DE ENTIDADES NÚMERO DE ENTIDADES: ENT 004 NOMBRE DE ENTIDAD: VOLTAJE TAMAÑO: 4 caracteres TIPO: Raíz DESCRIPCION: Contiene los datos estáticos de los voltajes ATRIBUTOS NÚMERO El 002 El 003 El 004 NOMBRE Volt Volt.max Volt.min FORMATO N(4) N(4) N(4) 115 LONGITUD 4 4 4 USO clave CODIYASCA DAT112 SISTEMA DE MONITOREO DESCRIPCIÓN DE ENTIDADES NÚMERO DE ENTIDADES: ENT 005 NOMBRE DE ENTIDAD: AMPERAJE TAMAÑO: 4 caracteres TIPO: Raíz DESCRIPCION: Contiene los datos estáticos de los amperajes ATRIBUTOS NÚMERO El 005 El 006 El 007 NOMBRE Amp Amp.max Amp.min FORMATO N(4) N(4) N(4) 116 LONGITUD 4 4 4 USO clave CODIYASCA DAT112 SISTEMA DE MONITOREO DESCRIPCIÓN DE ENTIDADES NÚMERO DE ENTIDADES: ENT 006 NOMBRE DE ENTIDAD: PROBLEMA TAMAÑO: 256 caracteres TIPO: Raíz DESCRIPCION: Contiene los datos estáticos de las fallas de las variables ATRIBUTOS NÚMERO El 001 El 011 El 010 El 013 El 002 El 005 El 008 El 014 El 014 El 009 El 012 NOMBRE Tipo,inf Tipo.falla Falla Cod.alarma Volt Amp Data.Tx Fecha Hora Data.Rx Alarma FORMATO N(4) N(4) X(15) N(4) N(4) N(4) N(16) N(8) N(6) N(3) X(15) 117 LONGITUD 4 4 15 4 4 4 16 8 6 3 15 USO clave clave clave CODIYASCA DAT112 SISTEMA DE MONITOREO DESCRIPCIÓN DE ENTIDADES NÚMERO DE ENTIDADES: ENT 007 NOMBRE DE ENTIDAD: TIPO.INF/FALLAS TAMAÑO: 256 caracteres TIPO: Raíz DESCRIPCION: Contiene los datos estáticos de las fallas ATRIBUTOS NÚMERO El 001 El 011 El 002 El 005 El 014 El 015 El 008 El 009 El 010 NOMBRE Tipo.inf Tipo.fall Volt Amp Fecha Hora Data.T Data.Rx Falla FORMATO N(4) N(4) N(4) N(4) N(8) N(6) N(16) N(16) N(15) 118 LONGITUD 4 4 4 4 8 6 16 16 15 USO Clave Clave CODIYASCA DAT112 SISTEMA DE MONITOREO DESCRIPCIÓN DE ENTIDADES NÚMERO DE ENTIDADES: ENT 008 NOMBRE DE ENTIDAD: TIPO.INF/ALARMAS TAMAÑO: 256 caracteres TIPO: Raíz DESCRIPCION: Contiene los datos estáticos de las alarmas ATRIBUTOS NÚMERO El 001 El 012 El 013 El 005 El 008 El 014 El 015 El 009 El 002 NOMBRE Tipo.inf Alarma Cod.alarma Amp Data.Tx Fecha Hora Data.Rx Volt FORMATO N(4) N(4) N(4) N(4) N(16) N(8) N(6) N(16) N(4) 119 LONGITUD 4 4 4 4 16 8 6 16 4 USO Clave Clave CODIYASCA DAT112 SISTEMA DE MONITOREO DESCRIPCIÓN DE ENTIDADES NÚMERO DE ENTIDADES: ENT 009 NOMBRE DE ENTIDAD: FALLAS TAMAÑO: 256 caracteres TIPO: Raíz DESCRIPCION: Contiene los datos estáticos de las diferentes fallas ATRIBUTOS NÚMERO El 012 El 002 El 005 El 008 El 015 El 016 El 019 El 010 NOMBRE Tipo.falla Volt Amp Data.Tx Fecha Hora Data.Rx Falla FORMATO N(4) N(4) N(4) N(16) N(8) N(6) N(16) N(15) 120 LONGITUD 4 4 4 16 8 6 16 15 USO Clave CODIYASCA DAT112 SISTEMA DE MONITOREO DESCRIPCIÓN DE ENTIDADES NÚMERO DE ENTIDADES: ENT 010 NOMBRE DE ENTIDAD: ALARMAS TAMAÑO: 256 caracteres TIPO: Raíz DESCRIPCION: Contiene los datos estáticos de las diferentes alarmas ATRIBUTOS NÚMERO El 013 El 014 El 002 El 005 El 008 El 009 El 015 El 016 NOMBRE FORMATO Alarma X(15) Cod.alarma N(4) Volt N(4) Amp N(4) Data.Tx N(16) Data.Rx N(16) Fecha N(8) Hora N(6) 121 LONGITUD 15 4 4 4 16 16 8 6 USO Clave 5.2.2 • Documentación del Sistema de Monitoreo Definición de los Requerimientos de Hardware o Máquinas (Modelo de las computadoras): o Deben ser Pentium II - Procesador 400 MHZ - Disco Duro 10 GB - Monitor Super VGA - Mouse - Teclado o Sistema Operativo - Windows®98, MILLENIUM, 2000 o Periféricos: • - Puerto de comunicación Com (1-4) - Impresora - MODEM - Pantalla (Monitor) Preparación del Programa del Monitoreo El programa se codifica en el lenguaje de programación Visual Basic, debido a ello su análisis y desarrollo es orientado a objeto. El uso de un control llamado MSComm1, facilita la recepción de los datos (DataRx, DataTx) por medio del puerto de comunicación “Com1” de la máquina, el cual normalmente está destinado para el uso del ratón. Normalmente el “Com1” está conectado al Modem que tiene la función de enlace entre la línea telefónica y el computador que permite el 122 discado, la modulación y demodulación de la señal durante la consulta del estado del sistema general. • Elaboración del Diseño de la Base de Datos La base de datos se crea en Microsoft Access97®. Esto es debido a que el lenguaje de programación seleccionado presenta inconvenientes con versiones posteriores a ésta. Sin embargo, la posibilidad de utilizar una base de datos ODBC dentro de un servidor SQL es bastante pronunciada, debido a que según la cantidad de registros que han de ser ingresados, la base de Access puede colapsar, sobre todo en los casos en que el número supere el millón de registros. Según estadísticas que se realizan en el período de prueba se toma decisión sobre el cambio o no de la misma. La estructura que llevará la Base de Datos: Campos Tipo de datos Tipo de Información Alfanumérico.......................Entero Largo Voltaje.................................Numérico......................................Doble Voltaje Máximo...................Numérico ......................................Doble Voltaje Mínimo....................Numérico.......................................Doble Fecha..................................Fecha/Hora Hora....................................Fecha/Hora Amperaje.............................Numérico......................................Doble Amperaje Máximo............... Numérico......................................Doble Amperaje Mínimo.................Numérico......................................Doble Falla………………………….Numérico………………… ……….Entero Doble 123 • Funciones y Variables PROCEDIMIENTO DESCRIPCION Variables Acknowledge Reconocimiento y o AL1 Rutina de los Estados o AL2 de los Relés y Alarmas o RL2 o RL3 o LABEL2: Display PIC Check Cstr Procesamiento de los o Voltaje Datos del PIC o Label2: Display Función del Procesamiento del Voltaje Regresa el valor del o Voltaje o MSComm1: Establecimiento de Comunicaciones o Parámetros de entrada K Voltaje Voltage Manda el voltaje cada o K: Voltaje cierto tiempo o LABEL2: Display o MSComm1 COMMAND1_CLICK Respuesta del Voltaje o Voltaje o MSComm1 COMMAND10_CLICK Inicio del Display o Label2= OK o LABEL2: Display COMMAND7_CLICK Conexión del Modem o Number: Número Telefónico o MSComm1 FORM_LOAD Carga la pantalla de Inicio (FORM) con los valores de o Text C: Parámetros del MODEM o MSComm1: Ajuste de los 124 comunicación del MODEM y sus variables parámetros del Modem o FORM1: Forma o Text B: Puerto de Comunicación MSCOM1_OnComm Comunicaciones de eventos o MSCOM1: Buffer de entrada o Instring: Entrada de telecomunicaciones o LABEL2: Display Option1_Click Estado de la alarma2 o AL2=OFF o MSComm1 Option10_Click Estado del relé4 o RL4=ON o MSComm1 Option4_Click Estado de la alarma1 o AL1=ON o MSComm1 Option5_Click Estado de la alarma1 o AL1=OFF o MSComm1 Option6_Click Estado de la alarma2 o AL2=ON o MSComm1 Option7_Click Estado del Relé3 o RL3=ON o MSComm1 Option8_Click Estado del Relé3 o RL3=OFF o MSComm1 Option9_Click Estado del Relé4 o RL4=OFF o MSComm1 Timer1_Timer Chequea si los datos en la entrada del Buffer son válidos 125 o Textemp Timer2_Timer Respuesta del voltaje cada 5sec o MSComm1 o Tmr_AL1 o Tmr_AL2 Timer2_Timer Respuesta del voltaje cada 5sec o MSComm1 o Tmr_AL1 o Tmr_AL2 Tmr_AL1_Timer Tmr_AL1OFF_Timer Tmr_AL2_Timer Tmr_AL2OFF • Hace Llamada a la Option4_Click o Tmr_AL1OFF Hace llamada a la Option5_Click Hace llamada a la Option6_Click o Tmr_AL1OFF Hace llamada a la Option1_Click o Tmr_AL2OFF o Tmr_AL1 o Tmr_AL2 o Tmr_AL2OFF Pantallas del Sistema de Monitoreo Debido a que el sistema en sí es un monitor de señales, ésta es la única pantalla que posee, en ella se vacían los datos que recibe el monitor por medio de un control llamado MSCom, y posteriormente se convierten en información clasificada y entendible. Para mayor información, ver ANEXO D (Pantalla del Sistema de Monitoreo) ¾ Control MSCOM: Este es un control que cuando se ejecuta el sistema, permanece invisible. Su función es capturar datos que entran al puerto de telecomunicaciones COM1 ó COM2 de la máquina según sea el caso. 126 • Diseño de la Base de Datos En este punto se presenta el modelo de datos a implantar, el cual podemos clasificar en dos fases: el diseño del modelo lógico en donde se establece la estructura lógica de los datos en el sistema y el diseño del modelo físico o interno donde se establece la estructura organizativa de los datos. Los detalles concernientes al diseño lógico y físico se presentan a continuación: • Modelo Lógico REPETIDORA Antena Modem-Computadora RADIO – MICROONDA MONITOR 127 • Modelo Fisico o Interno Tablas: Nombre de la Tabla: Control Total Campos : 15 ---------------------------------------------------------------------------------------------| Nombre del Campo | Tipo de Dato | Relaciones | ---------------------------------------------------------------------------------------------| Voltaje | Numérico [Double] | | ---------------------------------------------------------------------------------------------| Volataje_Maximo | Numérico [Double] | | ---------------------------------------------------------------------------------------------| Volataje_Minimo | Numérico [Double] | | ---------------------------------------------------------------------------------------------| Fecha | Date/Time | | ---------------------------------------------------------------------------------------------| Hora | Date/Time | | ---------------------------------------------------------------------------------------------| Amperaje | Numérico [Double] | | ---------------------------------------------------------------------------------------------| Amperaje_Maximo | Numérico [Double] | | ---------------------------------------------------------------------------------------------| Amperaje_Minimo | Numérico [Double] | | ---------------------------------------------------------------------------------------------| Falla | Numérico [Entero] | | ---------------------------------------------------------------------------------------------Para mayor información, ver ANEXO D (Pantalla de la Base de Datos y Ejemplo de los resultados de las Mediciones) 5.2.3 Listado del Programa El programa del SMcCDB está elaborado en lenguaje Visual Basic® Para mayor información, ver ANEXO D (Listado del Programa) 128 5.3 Desarrollo y ensamblaje de la solución tecnológica: El SMcCDB PRE-PROYECTO DE MICRO CINTROLADOR PANTALLA TECLADO Generador Eolico Pic - + Micro-Controlodor Panel Solar Banco de batería Fuente de poder 110-Vac Tx/Rx PC Micro-Onda El proyecto está constituido por el PIC16F873 que es fundamental en ese trabajo, de tres pantallas (Displays) de siete segmentos de tipo ánodo común, circuitos integrados que controlan las señales e iluminan las pantallas, transistores que suministran la corriente para encender las pantallas y activan y desactivan los relés de alarma y de control, resistencias que limitan las corrientes y condensadores que sirven de filtro de corriente y acoplamiento y los equipos de telecomunicaciones y su banco de baterías que son objeto de supervisión y control. 129 5.3.1 Construcción y Ensamblaje del Monitor Para fabricar el circuito eléctrico se necesitan los componentes electrónicos. El PIC 16F873 es el cerebro principal y tiene a su cargo el control total del sistema. El cristal de 4 Mhz garantiza mayor precision y buen arranque del microcontrolador. Internamente esta frecuencia es dividida por cuatro (4), lo que hace que la frecuencia efectiva de trabajo sea de un (1) Mhz, por lo que cada instrucción se ejecuta en un (1) microsegundo. El cristal debe ir acompañado de dos (2) condensadores de 15 o 20 pf. Las tres (3) pantallas de siete (7) segmentos (Display) se manejan a través del integrado UL2003; éste es un buffer que permite obtener una buena iluminación de los segmentos, con una corriente de consumo que no es suministrada por el PIC. Para encenderlos, el microcontrolador debe dar una señal positiva en el pin correspondiente, ya que este dispositivo tiene internamente un transistor NPN que invierte el pulso. El Transistor NPN sirve para encender el LED cada vez que hay un Reset o cuando se prende el circuito. El Dip-switch permite seleccionar (podemos prescindir de este elemento programando esta función por software) la función de la medición del voltaje. Los tres (3) Transistores PNP sirven para quitar o poner el voltaje de 5V para prender o apagar las tres pantallas de siete segmentos (Anodo Común). La pantalla (Display) es de ánodo común, eso significa que el pin de alimentación (5V) es común para todos los segmentos y que para que éste se encienda se necesita un potencial de cero (0V) en cada pin correspondiente. Para mayor información ver ANEXO E (El circuito esquemático del Monitor, y Lista de materiales del Monitor)) 130 5.3.2 Construcción de la Interfaz RS232 Para construir ese circuito se necesitan algunos componentes electrónicos. Este circuito es el encargado de transmitir y recibir las señales desde el Monitor por el método USART (Transmisión y Recepción Sincrónico Asincrónico Universal) Este circuito está armado conjuntamente con el del Monitor. Para mayor información ver ANEXO E (Diagrama del puerto RS232, y Lista de materiales del RS232) 5.3.3 Construcción del Circuito Analógico Para este circuito, se necesita también algunos componentes electrónicos. El circuito integrado 74LS373 es de bajo potencia y tiene ocho compuertas de tres estados de serie Flip-Flop, tipo D (Latch). Su funcionamiento depende de la señal que le llegue del microcontrolador PIC (Entradas RA1, RA2, RA3, RA4). Es el encargado de prender los LEDs para las visualizaciones de las fallas (Alarma1 y Alarma2) y la activación de los relés (RL1, RL2). Este componente electrónico permite también poner en marcha los relés que a su vez sirven para activar y desactivar cualquier elemento del sistema de telecomunicación como ejemplo, apagar o prender el cargador de batería, apagar o prender un transmisor, quitar o poner un banco de batería, etc. 131 Los transistores son semi-conductores que son utilizados en este circuito como switche electrónico, es decir para activar o desactivar los relés según la señal que manda el PIC. Este circuito está armado conjuntamente con el del Monitor. Para mayor información ver ANEXO E (Diagrama Analógico y Lista de materiales del Circuito Analógico) 5.3.4 Construcción de la Entrada Analógica La entrada de medición analógica del voltaje puede ser de 0V hasta 50V y es un divisor de tensión resistivo que sirve de protección al PIC para evitar que el voltaje de entrada analógica (RA0) supere los 5V. También está armado conjuntamente con el del Monitor. Para mayor información ver ANEXO E (Entrada Analógica) Ver Foto 2 (Circuito armado del Circuito de Monitoreo) 5.4 5.4.1 Programación del PIC 16F873 Diagrama de Flujo El diagrama de flujo ayuda a visualizar las diferentes etapas de la programación en Assembler. Para mayor información ver ANEXO F (Diagrama de Flujo) 5.4.2 Código Assembler Este Programa multiplexa tres (3) pantallas (Display) de siete (7) segmentos, puede mostrar un tiempo real desde 0.00 a 9.59 minutos y hace 132 un muestreo en CH0 (Canal 1, RA0) de un Convertidor A/D en dos modos de operación (Un Disparo y Corrida libre, One Shot y Free Running). La pantalla está en decimal y también escanea Pulsadores en PUERTO A <5> (RA5, pin 5 del Puerto A) El USART es usado en Modo Asincrónico a 9600 baudios, No Paridad, ocho (8) bits, una Parada (1 Stop) y no usa Interrupciones. La Pantalla es manejada por un Inversor ULN2003 (Circuito Integrado) que sirve para iluminar y prender los segmentos de las pantallas. Él usa Timer0 de Interrupción solamente para contar tiempo, la frecuencia del cristal es: Fosc=4.096Mhz y la PreScalar=32. El Período de InterrupciónTMR0 = (25696)*[1/((Fosc/4)/32)] =160*0.00003125 = 5.00 ms. Los tiempos de las pantallas y los Voltios son independientes. Para mayor información ver ANEXO F (Código Assembler) 5.4.3 Código en Hexadecimal Después que tenemos el código en Assembler, se usa el programa MPASM para compilarlo, depurarlo y si no tenemos errores, nuestro programa se convierte en un código hexadecimal el cual sirve luego para cargarlo dentro la memoria FLASH del microcontrolador. Para cargar este código hexadecimal en el Chip, que no es otro que nuestra aplicación o sea nuestro objetivo de nuestro trabajo, se emplea el programador PIC 800. Para mayor información ver ANEXO F (Código Hexadecimal) 133 5.4.4 Diagrama de la Solución Implantada El sistema general está formado de una Repetidora (Site) con todo un conjunto de elementos indispensables para un buen y mejor funcionamiento de los equipos de comunicaciones, como son las baterías, celdas solares y generador eólico, que son la esencia de la energía eléctrica. Debido a la importancia de la energía, la carga y la descarga de las baterías están bajo supervisión permanente a través del Monitor instalado y cableado junto con la Repetidora. En la Central de Operaciones, tenemos la computadora con su programa del Monitor, el Radio de dos vías (Transmisor/Receptor) y el MODEM (Modulador/Demodulador), que sirve de enlace entre el computador y el Radio, convierte la señal digital del computador en señal analógica y la transfiere al Radio que la transmite al Repetidor. En sentido contrario, recibe la señal analógica del Repetidor y la convierte en señal digital y la envía al computador. Diciéndolo de otra manera, el MODEM es un elemento electrónico Analógico/Digital y viceversa. La transmisión de datos tiene unas señales específicas de control que se especifican a continuación: 9 CTS (Claer to send , clarificar para transmitir) Controla el paso del nivel de la salida de la señal que viene del conector RS- 232 9 RXD (Receive Data, Recepción de la Data) El nivel de salida de la recepción de la data del MODEM que va al terminal (Computador) 9 TXD (Transmit Data , transmisión de datos) El nivel de entrada del RS-232 del terminal del MODEM. 134 9 RTS (Request to Send , Requerido a transmitir) Controla el paso de la señal del MODEM. Eso indica que quiere transmitir data 9 DCD (Digital Control Data, Control Digital de datos) Esta señal provee la señal al terminal (Computadora) del DTE (Digital Terminal Electronic, Terminal Electrónico Digital) y significa que el MODEM está conectado con la Central (En línea). 9 Ground (Tierra o Masa) 9 PTT (Push to talk, Apretar para hablar) Esta señal está conectada internamente al PTT a través de una resistencia de 2,7 Kohmios y sirve para poner el Radio al aire (Transmitir) 9 Transmit Audio (Transmisión de Audio). La salida del MODEM está conectada a la entrada del micrófono. Se puede ajustar la salida del nivel de audio con una resistencia variable (Potenciómetro). 9 Receive Audio (Recepción de Audio) Es la señal que viene conectada al parlante del Radio o al audífono. Para mayor información ver ANEXO F (Diagrama de la Solución Implantada) 135 CONCLUSIONES El desarrollo del sistema Microcontrolado de Carga y Descarga de Baterías (SMcCDB) de Sistemas de Telecomunicaciones en la Empresa CODIYASCA, cumple de esta forma el objetivo general de trabajo de tesis. A continuación se detallan los logros alcanzados: Evaluación de las necesidades de los usuarios, logrando definir los requerimientos en cuanto al sistema de monitoreo del sistema de telecomunicaciones. Sobre la base de las necesidades planteadas por los usuarios, se realiza el diseño, la programación e implementación del mismo. En la prueba piloto, se confirma la importancia del sistema automatizado y la urgencia de tener un sistema actualizado, debido a que se demuestra la disminución de los costos, tiempo de repuesta y se incrementa la confiabilidad del mecanismo de control del sistema. Con la puesta en marcha del sistema de monitoreo se mejora el flujo de las comunicaciones, debido a que se minimizan las interrupciones por falta de energía. Todas las fallas y alarmas del sistema están registradas en un banco de datos que permite a la empresa decidir cuando debe mandar a su personal a hacer los correctivos necesarios y por supuesto el mantenimiento preventivo. 136 RECOMENDACIONES Hoy en día los sistemas de telecomunicaciones son tan amplios y globales que surge la idea de crear los mecanismos de control y diagnóstico que deben convertirse en una ayuda para que los profesionales logren un mejor desempeño de sus funciones. Este sistema de Monitoreo y diagnóstico puede convertirse en el futuro en la mejor ayuda de la empresa ya que podrá controlar no solamente la carga y descarga de un banco de batería sino todo el sistema general, tal como medir la señal de radiofrecuencia entrante y saliente, medir la potencia de los transmisores y decidir la transferencia de uno de baja potencia por otro adecuado (Sistema Redundante o Sistema 1 X 2), sin ningún problema de caída del sistema, que en este caso es muy importante ya que la eficiencia, la eficacia, la confiabilidad y el rendimiento de un sistema óptimo se mide justamente por las perdidas de señales (tiempo fuera del aire) ocasionadas por fallas técnicas (perdida de carga, caída de potencia, mala señal, etc.). 137 BIBLIOGRAFÍA • U.N.A , Análisis y Diseño de Sistemas, Caracas,1991 • U.N.A , Documentación de Sistemas, Caracas • U.N.A , Programación de Sistemas, Caracas • U.N.A , Microprocesador, Caracas • Página web de Microchip, www.microchip.com • Revista Electrónica, Edición Internacional No. 71, 72, 74, 75, Cekit s.a, Bogotá Colombia • Libro, Micro-Controlador de la McGrow Hill, 2002 • Revista Electrónica SABER, Edición Internacional (Argentina) • Libro, Sistemas de Comunicaciones, A. Bruce Carlson, 1980 • Manual de Trabajos de Grado de Especialización y Maestría y Tesis Doctorales, 1998. 138 GLOSARIO ‘W’: Registro de trabajo (Acumulador), está dentro la memoria RAM del PIC ‘f’: Registro de dirección de archivo, va desde 0h hasta 7Fh ‘b’: bit de dirección entre un registro de un archivo de 8-bits ‘d’: Selección de destino; si d = 0, se almacena el resultado en W, si d = 1, se almacena el resultado en el registro f ‘k’: Campo numérico o literal de dato constante (Variable) TO: bit del temporizador (Time-out bit) PD: bit de apagado (Power-down bit) PIC: Circuito Integrado Programable STACK: Pila de la memoria RAM que tiene en este caso 8 niveles Timers: temporizadores que se usan para efectuar retardos A/D: Módulo Analógico/Digital que sirve por ejemplo, medir la entrada del voltaje (Analógico) y convertirlo a la salida en código binario (Digital). PROGRAMA FLASH: memoria donde se guarda el programa de aplicación que no se borra aunque se le quita la fuente de alimentación. EEPROM: Memoria que no se borra fácilmente, allí se guarda los datos como la identidad del PIC, los fusibles (Configuración del PIC) y datos. Preescala (Prescaler): Módulo divisor de frecuencia por 2, 4, 8, 16, 32 y 64. Set: Conjunto como sujeto y como verbo fijar, ajustar. Interfaz RS232: Puerto Serial de 9 pines y sirve para las transmisiones y recepciones de las comunicaciones. PC: Contador de Programa Voltaje: Variable que mide la diferencia potencial entre dos puntos, en este caso el valor numérico (Voltios) entre los bornes positivo y negativo de una batería. Relé: Dispositivo eléctrico que se activa al alimentar su bobina y se desactiva al quitarle la alimentación. Esas acciones se manifiestan en cerrar y abrir unos contactos físicos del relé. 139 ANEXO A 9 Diagrama de los pines y Referencia del PIC16F873 9 Descripción de los pines del PIC16F873 9 Características del PIC16F873 9 Características de los periféricos 9 Diagrama en Bloque del PIC16F873 9 Mapa de la Memoria del Programa y el Stack 9 Mapa del Archivo del Registro 9 Registro OPTION_REG) 9 Registro STATUS 9 Registro INTCON 9 Registro PIR1 9 Carga del PC en diferentes situaciones 9 Direccionamiento Directo/Indirecto 9 Registro EECON1 9 Escritura de datos y Escritura de data en el EEPROM 9 Lectura y Escritura del Programa en el FLASH) 9 Estado de Lectura/Escritura de la memoria interna del programa FLASH y registros asociados con data del FLASH EEPROM/PROGRAMA 9 Diagrama en Bloque del A/D 9 Registro ADCON0 9 Registro RCSTA (Estados de Recepción y Registro de Control) 9 Registro ADCON1 140 9 Configuración de la Palabra, Dirección 2007h 9 Registro TXSTA: (Estados de Transmisión y Registro de Control) 9 Formula de la Rata de Baudios y Registros Asociados con el Generador de Rata de Baudios 9 Rata de Baudios para el Modo Asincrónico , BRGH=0= Baja Velocidad 9 Rata de Baudios para el Modo Asincrónico, BRGH=1= Alta Velocidad 9 Descripción del Campo del Código, y Formato General para las Instrucciones) 9 Set de Instrucciones del PIC 16F873 9 Descripción de las Instrucciones ANEXO B 9 Pantalla del Software del MPLAB 9 Pantalla del Software del MPASM ANEXO C 9 Diagrama Esquemático del programador PIC800 9 Diagrama de la Fuente de Poder del Programador 9 Software de Programación del PIC 9 Foto 1: Circuito Armado del PIC800 141 ANEXO D 9 Pantalla del Sistema de Monitoreo 9 Pantalla de la Base de Datos 9 Ejemplo de los resultados de las Mediciones 9 Lista del Programa ANEXO E 9 El circuito eléctrico del Monitor 9 Diagrama del puerto RS232 9 Diagrama Analógico 9 Entrada Analógica 9 Lista de materiales 9 Foto 2: Circuito armado del Circuito de Monitoreo ANEXO F 9 Diagrama de Flujo 9 Código Assembler 9 Código Hexadecimal 9 Diagrama de la Solución Implantada 142