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

Documentos relacionados