Professional Documents
Culture Documents
VICERRECTORADO ACADEMICO
INGENIERIA DE SISTEMAS
Sistema Microcontrolado para diagnstico de Carga y
Descarga de Bateras para Sistemas de Telecomunicaciones
Autor: Ahmed Fezazi, C.I. E-81.181.639
Tutor Acadmico: Ing. Edgar Gonzlez, C.I. V -6.524.564
Asesor Empresarial: Ing. Enrique Romero, C.I. V-1.864.926
Caracas, Centro Local Metropolitano
2
RESUMEN
El presente Trabajo de Grado se fundamenta en el desarrollo de un
equipo electrnico que sirve de control, diagnstico y monitoreo de la carga y
descarga de un banco de bateras, destinado a alimentar los equipos de
radios y microondas de un sistema de telecomunicaciones ubicados en un
Site (Lugar de Repetidoras).
Este equipo electrnico (Monitor) est basado en el uso de la
tecnologa 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 energa, adems de reducir
las intervenciones tcnicas en el mantenimiento del sistema de
telecomunicaciones prestando mejor servicio a los clientes.
El nfasis de este Trabajo de Grado est en el diseo, anlisis,
programacin y construccin de un equipo electrnico como una solucin
novedosa, prctica, til y econmica para todos los sistemas de
telecomunicaciones, ya sea para fines didcticos o comerciales.
Palabras Claves
Microcontrolador (PIC), monitoreo, diagnstico, telecomunicaciones, banco
de bateras, energa, programacin.
3
NDICE
Introduccin
1. El Problema-----------------------------------------------------------------------2
1.1 El Planteamiento del Problema------------------------------------------2
1.2 Importancia y justificacin del Trabajo de Grado -------------------2
1.3 Objetivo General-------------------------------------------------------------3
1.4 Objetivos Especficos-------------------------------------------------------3
1.5 Limitaciones y Alcance-----------------------------------------------------4
2. Marco Terico-------------------------------------------------------------------5
2.1 Antecedentes----------------------------------------------------------------.5
2.2 Microcontrolador-------------------------------------------------------------7
2.3 Repetidoras y Fuente de Energa---------------------------------------9
2.4 Sistemas de Comunicaciones------------------------------------------11
3. Marco Metodolgico---------------------------------------------------------16
3.1 Tipo de Investigacin-----------------------------------------------------16
3.2 Tcnicas de Recoleccin de Datos------------------------------------18
3.3 Tcnicas de Programacin y Documentacin----------------------18
4. Desarollo de la Solucin---------------------------------------------------20
4.1 Escogencia del PIC--------------------------------------------------------20
4.1.1 Criterios de seleccin----------------------------------------------20
Organizacin de la Memoria-----------------------------------------------------21
Organizacin de la Memoria del Programa----------------------------------21
4
Organizacin de la Memoria de Datos----------------------------------------22
Archivo de Registro de Propsito General ----------------------------------22
Registros de la Funcin 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
Verificacin de Escritura----------------------------------------------------------36
Proteccin contra Espurias de Escrituras------------------------------------36
Operacin durante la Proteccin del Cdigo -------------------------------37
Proteccin de Escritura de la Memoria de Programa FLASH-----------37
Mdulo TIMER0--------------------------------------------------------------------38
Interrupcin del TIMER0----------------------------------------------------------39
Uso del Timer0 con un Reloj Externo---------------------------------------- 39
Pre-escala (Prescaler)-------------------------------------------------------------39
5
Mdulo Convertidor Analgico-Digital (A/D)---------------------------------40
Requerimientos de las Adquisiciones de A/D-------------------------------42
Seleccin del Reloj de Conversin de A/D---------------------------------- 43
Configuracin de los Pines del Puerto Analgico--------------------------43
Las Conversiones de A/D---------------------------------------------------------43
Resultado de los Registros de A/D---------------------------------------------44
Caractersticas Especiales del CPU-------------------------------------------44
Configuracin de los Bits---------------------------------------------------------46
Configuracin del Oscilador------------------------------------------------------46
Resonadores de Cristal Oscilador/Cermico--------------------------------47
USART (Universal Sincrnico Asincrnico Receptor Transmisor)-----47
Generador de Rata de Baudios (BRG) del USART------------------------48
Conjunto de Instrucciones (Set) ------------------------------------------------48
4.1.2 Utilizacin 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
Descripcin del MPASM----------------------------------------------------------56
Funcionamiento del MPASM-----------------------------------------------------56
Caractersticas Notables del MPASM-----------------------------------------56
4.1.3 Escogencia y Utilizacin del Programador---------------------57
Programador PIC800--------------------------------------------------------------57
Hardware y Construccin del Programador PIC800----------------------59
Software-------------------------------------------------------------------------------61
6
Software de Prueba del Programador ----------------------------------------62
Recomendaciones------------------------------------------------------------------63
Ejemplos------------------------------------------------------------------------------64
Rutinas---------------------------------------------------------------------------------65
Funcionamiento------------------------------------------------------------------------
66
Proteccin del Cdigo (CP)------------------------------------------------------70
Archivo Hexadecimal---------------------------------------------------------------71
4.2 Diseo del Sistema de Monitoreo de Carga y Descarga de Bateras
4.2.1 Objetivo General-------------------------------------------------------72
Primera Funcin---------------------------------------------------------------------73
Identificacin de las Entidades y Atributos-----------------------------------73
Determinacin de las Claves de las Entidades-----------------------------74
Establecimiento del Modelo de Datos de la Funcin----------------------75
Segunda Funcin-------------------------------------------------------------------77
Identificacin de las Entidades y Atributos-----------------------------------78
Determinacin de las Claves de las Entidades identificadas------------78
Modelo de Datos de la Funcin-------------------------------------------------80
Modelo Conceptual de Datos del Sistema-----------------------------------81
Documentacin del Anlisis de los Datos------------------------------------84
Inventario de Atributos-------------------------------------------------------------85
Descripcin de Atributos----------------------------------------------------------86
Inventario de Entidades---------------------------------------------------------101
Descripcin de Entidades-------------------------------------------------------102
4.2.2 Documentacin del Sistema de Monitoreo-------------------112
Definicin de los Requerimientos de Hardware---------------------------112
7
Preparacin del Programa de Monitoreo----------------------------------- 112
Elaboracin del Diseo de la Base de Datos------------------------------113
Funciones y Variables-----------------------------------------------------------114
Pantallas del Sistema de Monitoreo------------------------------------------116
Diseo de la Base de Datos----------------------------------------------------117
Modelo Lgico--------------------------------------------------------------------- 117
Modelo Fsico o Interno----------------------------------------------------------118
4.2.3 Listado del Programa-----------------------------------------------118
4.3 Desarrollo y ensamblaje de la solucin tecnolgica--------------------119
4.3.1 Construccin y Ensamblaje del Monitor-----------------------120
4.3.2 Construccin del Interfaz RS232--------------------------------121
4.3.3 Construccin del Circuito Analgico----------------------------121
4.3.4 Construccin de la Entrada Analgica-------------------------122
4.4 Programacin del PIC 16F873--------------------------------------------------122
4.4.1 Diagrama de Flujo---------------------------------------------------122
4.4.2 Cdigo en Assembler-----------------------------------------------122
4.4.3 Cdigo Hexadecimal------------------------------------------------123
4.4.4 Diagrama de la Solucin Implantada---------------------------124
Conclusiones..126
Recomendaciones.127
Bibliografa..128
8
GLOSARIO
ANEXOS:
ANEXO A
Descripcin General del PIC 16F873
ANEXO B
Pantalla del Software del MPLAB
Pantalla del Software del MPASM
ANEXO C
Diagrama Esquemtico del programador PIC800
Diagrama de la Fuente de Poder del Programador
Software de Programacin del PIC
Foto 1: Circuito Armado del PIC800
ANEXO D
Pantalla del Sistema de Monitoreo
Pantalla de la Base de Datos
Ejemplo de los resultados de las Mediciones
Lista del Programa
9
ANEXO E
El circuito elctrico del Monitor
Diagrama del puerto RS232
Diagrama Analgico
Entrada Analgica
Lista de materiales
Foto 2: Circuito armado del Circuito de Monitoreo
ANEXO F
Diagrama de Flujo
Cdigo Assembler
Cdigo Hexadecimal
Diagrama de la Solucin Implantada
10
INTRODUCCIN
En los actuales momentos en que a nivel mundial, la globalizacin
alcanza no solamente el mbito comercial y financiero, sino tambin el medio
de las telecomunicaciones, para ste ultimo se hace cada vez ms
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 aos, un componente electrnico ha revolucionado las
tcnicas de diseo 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 diseo de productos
electrnicos ha cambiado radicalmente.
Circuitos lgicos, manejo de perifricos, temporizadores y estructura
de computadoras, todo programable y alojado en un solo integrado; es decir,
un pequeo computador para todas las aplicaciones.
La empresa de telecomunicaciones CODIYASCA ha empleado ese
chip integrado para tener la posibilidad de manejar seales de entrada y
salida, as como la capacidad de procesar datos y tomar decisiones.
El trabajo de grado consiste en desarrollar, disear y construir un
aparato electrnico (Monitor) que diagnostique y controle a distancia la carga
y descarga de un banco de bateras de un sistema de comunicaciones. Por
tal fin se escoge la tecnologa avanzada de los PICs de Microchip.
11
Sin duda alguna, este trabajo de grado contribuye mucho como
solucin 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.
12
Captulo 1
2. El Problema
En vista de la importancia de la energa de alimentacin para el buen
funcionamiento de los equipos de comunicaciones, se necesita controlar el
monitoreo general de la carga y descarga de bateras, de tal forma que no se
tenga ningn problema de cada o corte del sistema de comunicaciones en
ningn sitio de repeticin (Sites).
El trabajo de grado se desarrolla en la compaa CODIYASCA en
Caracas.
2.1 El Planteamiento del Problema
Se requiere realizar la supervisin y control remoto del funcionamiento
de un sistema de carga de bateras de un sistema de comunicacin, ubicado
en la frontera o en cualquier parte de la geografa venezolana, evitando as la
necesidad el traslado del personal tcnico bajo condiciones ambientales y de
trabajo sumamente adversas. Las bateras son empleadas para suministrarle
energa a diversos equipos electrnicos, fundamentalmente de recoleccin
de datos meteorolgicos y de comunicaciones.
2.2 Importancia y Justificacin del Trabajo de Grado
La importancia del presente trabajo es haber desarrollado un sistema de
Monitoreo de carga y descarga de Bateras (SMcCDB) cuyas caractersticas
de diseo facilitan el diagnstico y control a distancia de equipos de
13
comunicaciones situados en reas remotas y de difcil 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 repeticin.
Bajo costo de mantenimiento del sistema de telecomunicaciones, ya
que slo se manda al personal tcnico a los Sitios de Repeticin
(Sites) cuando se detectan fallas.
Mejor administracin y aprovechamiento del tiempo del personal
tcnico.
Una mejor redistribucin 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 operacin.
Construccin de una herramienta til para todos los sistemas de
telecomunicaciones, ya sea para fines didcticos o comerciales.
2.3 Objetivo General
Desarrollar un Sistema microcontrolado para el diagnstico y control
de Carga del Banco de Bateras de un sistema de telecomunicaciones
2.4 Objetivos Especficos
Analizar la situacin actual y establecer los requerimientos de control
del sistema.
Disear el Sistema de Control
Implantar el sistema de diagnstico y control e instalarlo en las
estaciones repetidoras.
14
Documentar el sistema.
2.5 Limitaciones y Alcance
El alcance del Trabajo de Grado contempla el desarrollo,
anlisis, diseo, construccin y puesta en marcha de un producto final.
15
Captulo 2
3. Marco Terico
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 aos, Estaciones de
Vigilancia en diversos sitios remotos situados a todo su largo. Generalmente
estas Estaciones estn provistas de equipos de Medicin de parmetros
ambientales, que operan con electricidad y que constantemente registran sus
resultados y los almacenan en forma escrita o en forma electrnica, para
despus ser recogidos por un personal que se traslade hasta el sitio.
Adems, las estaciones de vigilancia estn ubicadas en sitios de difcil
acceso alejados de las poblaciones. Por esta razn en la mayora de los
casos se hace difcil establecer un tendido elctrico hasta estas estaciones
para permitir el funcionamiento de los equipos. As, la mayora de las
estaciones gozan de un sistema propio de generacin y almacenamiento de
electricidad. La energa del viento y la luz solar se aprovechan para generar
electricidad que se almacena en bateras con las cuales operan todos los
equipos de la Estacin de Vigilancia.
16
El mantenimiento correctivo y preventivo del sistema de generacin de
electricidad se hace mediante visitas peridicas a las estaciones de
vigilancia. Estas visitas muchas veces no se pueden realizar por
inconvenientes climatolgicos o de otra naturaleza, propia de la dinmica
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 Bateras
(SMcCDB), que transmita regularmente ciertas mediciones de parmetros de
funcionamiento del sistema a cientos de kilmetros hasta una Estacin
Remota de Control, mediante un Enlace de Comunicacin de Voz ya
existente para otros fines.
En nuestro caso se escoge la medicin constante de los voltajes de
las bateras que almacenan toda la electricidad generada localmente.
Cuando el sistema de generacin y las bateras funcionan normalmente el
voltaje de las bateras debe estar comprendida en un cierto rango. La
presencia de voltajes de bateras fuera del rango (menor que un mnimo o
mayor que un mximo prestablecido) generan en la Estacin de Control
Remoto, seales de alarma. En la Estacin 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 informacin le permite al personal que opera en la
estacin remota tomar las acciones correspondientes, utilizando el tipo de
enlace con el Dispositivo de Control y Supervisin creado para tal efecto.
El desarrollo de cada nuevo dispositivo electrnico trae consigo
tcnicas de diseo diferentes, por lo general, ms simples. En los aos
sesenta, para construir un reloj digital se necesita acoplar un buen nmero
de circuitos lgicos como contadores, divisores, decodificadores y redes
17
combinatorias. Al mismo tiempo, el diseador debe poseer muy buenos
conocimientos sobre cada uno de los elementos.
A partir de 1970, el panorama de la electrnica cambia radicalmente
con la aparicin 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 tcnicas de integracin,
el estudio de las memorias, la programacin en lenguaje de mquina y la
adaptacin de perifricos 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 da es comn encontrar microcontroladores en las cafeteras,
hornos microondas, videograbadoras, alarmas y automviles. Las
aplicaciones son infinitas, el nico lmite es la imaginacin. La posibilidad de
manejar seales de entrada y de salida, as como su capacidad para
procesar datos y tomar decisiones, lo convierten en uno de los elementos
electrnicos ms verstiles que existen.
3.2 Microcontroladores
Hace ms de tres dcadas varias industrias electrnicas
internacionales iniciaron la fabricacin y comercializacin de los famosos
Circuitos Integrados con la inclusin de mltiples componentes de circuitos
elctricos dentro de una cpsula. Ya con estos primeros Circuitos Integrados
se pueden realizar operaciones matemticas algebraicas, lo que permiti la
fabricacin de las primeras calculadoras porttiles. El empeo de estas
industrias en incorporar cada vez un mayor nmero de componentes
18
electrnicos dentro de un Circuito Integrado permite fabricar dispositivos que
pueden realizar operaciones matemticas y lgicas complejas.
As, la compaa norteamericana INTEL con el dominio y desarrollo de
nuevas tecnologas logra la fabricacin del primer Circuito Integrado
miniatura, de unos pocos centmetros de dimensin, que debe considerarse
como el primer microcontrolador, que con pocos componentes adicionales
puede realizar operaciones secuenciales y lgicas, como las funciones de
una computadora. Los primeros dispositivos comerciales son conocidos por
sus cdigos industriales como, 8748, 8085, Z-80, etc. Ahora ms
recientemente han aparecido una serie de microntroladores muy poderosos y
verstiles denominados PIC (Circuitos Integrados Programables) de la
fbrica Microchip, de los Estados Unidos.
La industria electrnica de los semiconductores se expande por
Europa y Asia, apareciendo a lo largo de los aos nuevos
microcontroladores, ms pequeos y eficientes que los originales.
Estos dispositivos se han venido incorporando cada vez ms dentro
de los ms variados equipos electrnicos que requieren de cierto control y
automatizacin 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
telefnicas, los sistemas de control de los ascensores, los equipos de
transmisin, las cmaras fotogrficas, las cmaras de video, en los robots
que han descendido en la Luna y en Marte, en diversos juguetes electrnicos
(como el NINTENDO), los celulares telefnicos, etc.
Los Microcontroladores son circuitos integrados programables,
(Programable Integrated Circuits= PIC), son componentes sumamente tiles
en la Electrnica de Consumo. An son conocidos desde hace ms de veinte
19
aos, existen en la actualidad nuevos tipos que cumplen con una serie de
requisitos y caractersticas sumamente tiles. Como una primera
aproximacin 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 mayora de las instrucciones con un solo pulso del
reloj (Clock).
El diagrama general de un sistema microcontrolado se muestra a
continuacin.
3.3 Repetidoras y Fuentes de Energa
La miniaturizacin de los Circuitos Integrados tambin facilita la
construccin de equipos electrnicos ms pequeos en la rama de las
comunicaciones. La aparicin comercial de equipos porttiles o para uso en
vehculos diminutos, permite crear Redes de Comunicacin como ayuda a
las operaciones logsticas de diversos Cuerpos de Ayuda dentro de la
sociedad, como los bomberos, la polica, el ejrcito, etc. La miniaturizacin
de los equipos de transmisin viene asociada con la desventaja que su
potencia de transmisin tambin era pequea en comparacin con los
equipos tradicionales y por lo tanto con un alcance ms pequeo. As surge
DISPOSITIVOS
DE
ENTRADA
DISPOSITIVOS
DE
SALIDA
MICROCONTROLADOR
PROGRAMA
20
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 retransmisin se denominan
Repetidoras. Generalmente se les coloca en edificaciones o montaas altas
para facilitar la cobertura de las seales emitidas.
Tambin consisten de un transmisor y un receptor pero varan su
manera de operacin. Cuando la repetidora recibe una seal del equipo base
o de cualquier otro radio del sistema inmediatamente la transmite. La
operacin de la repetidora se denomina Duplex (doble va o 2 vas), ya que
puede recibir y transmitir a la vez, sin embargo el usuario de radio no puede
hacer las dos funciones al mismo tiempo. Adems una repetidora puede
transmitir una seal de radio hasta un sistema simplex (una sola va) de radio
que no tiene acceso. Estas repetidoras pueden ser propias o comunitarias.
Las repetidoras comunitarias permiten que un nmero determinado de
usuarios de diferentes sistemas compartan un sistema.
La energa, tambin llamada fuente de alimentacin de los equipos de
comunicacin est conformada por un banco de bateras que est siempre
cargado por un arreglo de celdas solares, un generador elico (activado por
el viento), en algunos casos una planta generadora de energa elctrica
(Corriente alterna) y un cargador de bateras conectado a la red de la
compaa elctrica (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 alimentacin (Energa) 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
21
equipos como generadores (Paneles Solares, Fuentes de Poder conectados
a la red de 110Vac y un conjunto de bateras), generadores elicos, banco
de bateras y cargas (Equipos de microondas, computadoras y radio-enlace).
Para tener un mximo de eficiencia y eficacia, estos equipos deben
funcionar en forma continua, las 24 horas, los 365 das al ao. El sistema de
diagnstico y control debe dirigir la carga y descarga para mantener en
ptimas condiciones los equipos de comunicaciones.
El sistema funge como director de trfico de energa para mantener la
carga ptima en las bateras sin malograrlas, al igual que los equipos, debe
prestar su servicio de transmisin y recepcin continuamente y reportar
cualquiera falla que se presente al control remoto por telemetra. Todas esas
variables son controladas a distancia a travs de una central de
comunicaciones
3.4 Sistemas de comunicaciones
Ssegn el autor del libro Sistemas de Comunicaciones A. Bruce
Carlson: Attention, the Universe! By kingdoms, right wheel! (Atencin, el
Universo! Por reinos, a la derecha!), esta frase proftica es el primer
mensaje telegrfico registrado, que envi a travs de una lnea de 16 km
Samuel F.B Morse, en 1838. As nace una nueva era en la comunicacin, la
era de la comunicacin elctrica.
Hoy, los sistemas de comunicacin se encuentran en todas partes
donde se transmite informacin de un punto a otro. El telfono, la radio y la
televisin vienen a ser factores de la vida diaria.
Definimos a la comunicacin como el proceso por medio del cual la
informacin se transfiere de un punto llamado fuente, en espacio y tiempo, a
otro punto que es el destino o usuario. Un sistema de comunicacin es la
22
totalidad de mecanismos que proporcionan el enlace para la informacin
entre fuente y destino.
Los elementos de un sistema de comunicacin:
Omitiendo los transductores, hay tres partes esenciales en un sistema de
comunicacin, el transmisor, el canal de transmisin y el receptor.
Cada uno tiene su funcin caracterstica.
Transmisor
El transmisor pasa el mensaje al canal en forma de seal. Para lograr
una transmisin eficiente y efectiva, se deben desarrollar varias operaciones
de procesamiento de la seal. La ms comn e importante de estas
operaciones es la modulacin, un proceso que se distingue por el
acoplamiento de la seal transmitida a las propiedades del canal, por medio
de una onda portadora (es la que transporta la informacin).
Canal de transmisin
El canal de transmisin o medio es el enlace elctrico entre el
transmisor y el receptor, siendo el puente de unin entre la fuente y el
destino. Puede ser un par de alambres, un cable coaxial, una onda de
radio o un rayo lser. Pero sin importar el tipo, todos los medios de
transmisin elctricos se caracterizan por la atenuacin, la
disminucin progresiva de la potencia de la seal conforme aumenta
la distancia. Es un factor que debe ser considerado al momento de
disear un sistema de comunicacin.
23
Receptor
La funcin del receptor es extraer del canal la seal deseada y
entregarla al transductor de salida. Como las seales son
frecuentemente muy dbiles, como resultado de la atenuacin, el
receptor debe tener varias etapas de amplificacin. En todo caso, la
operacin clave que ejecuta el receptor es la demodulacin o
deteccin, el caso inverso del proceso de modulacin del transmisor,
con lo cual vuelve la seal a su forma original.
Transductores
Los transductores de entrada son elementos esenciales que
producen sonido como por ejemplo el micrfono o imagen como una
cmara de televisin y los transductores de salida son los que
transforman o recuperan las seales de sonido como por ejemplo el
altoparlante y los seales de imagen como un monitor o pantalla de
televisin.
Contaminaciones
Durante la transmisin de la seal ocurren ciertos efectos no
deseados. Uno de ellos es la atenuacin, la cual reduce la intensidad
de la seal; sin embargo, son ms serios la distorsin, la interferencia
y el ruido, los cuales se manifiestan como alteraciones de la forma de
la seal. Al introducirse estas contaminaciones al sistema, es una
prctica comn y conveniente imputrselas al canal, pues el
transmisor y el receptor son considerados ideales.
24
En trminos generales, cualquier perturbacin no intencional de
la seal se puede clasificar como ruido, y algunas veces es difcil
distinguir las diferentes causas que originan una seal contaminada.
Transductor
de entrada
Transmisor Canal de
Transmisin
Receptor
Transductor
de Salida
Fuente
Destino
Los elementos de un sistema de comunicacin
Mensaje
de
Entrada
Seal
de Entrada
Seal
Transmitida
Seal
De Salida
Seal
Recibida
Mensaje
De Salida
Ruido, distorsin
interferencia
Capitulo 3
4. Marco Metodolgico
4.1 Tipo de Investigacin
En el marco del trabajo planteado referido a un proyecto especial, la
investigacin se basa esencialmente en la bsqueda y seleccin del mejor
Microcontrolador de la serie Pic de Microchip para construir un equipo
electrnico y disear y desarrollar un software para programar la aplicacin
del sistema de control sobre el chip escogido.
El proyecto es especial, porque el alcance contempla la construccin y
puesta en marcha de un producto final.
Segn el manual de trabajos de grado de especializacin y maestra y
tesis doctorales (Universidad Pedaggica 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 categora los
trabajos de elaboracin de libros de texto y de materiales de apoyo
educativo, el desarrollo de software, prototipos y de productos tecnolgicos
en general, as como tambin los de creacin literaria y artstica.
La investigacin 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
estn a nuestro alcance.
27
En el marco del trabajo planteado referido a un proyecto especial, la
investigacin se basa esencialmente a la bsqueda y seleccin del mejor
Microcontrolador de la serie Pic de Microchip para construir un equipo
electrnico, disear y desarrollar un software para programar la aplicacin
del sistema de control sobre el chip escogido.
Para la investigacin y bsqueda del Microcontrolador deseado, se
consulta la pgina web de Microchip (www.microchip.com), all se
puede analizar las caractersticas de los chips y escoger el ms
idneo para nuestra aplicacin.
Para programar el microcontrolador, se utiliza esta misma pgina
web, pudindose trabajar con el software (MPLAB) como ayuda a
desarrollar y disear el programa de escritura y lectura del
microchip.
Analizar y Disear un programa de retroalimentacin (feed back)
que permite monitorear y hacer consultas a distancia a travs de
una terminal, del estado del sistema en general (Bateras, seal
RF, energa, fallas de equipos).
Para construir el sistema de control, lo ms importante es acertar
en la bsqueda del mejor Microcontrolador y luego ensamblar el
circuito electrnico (previamente programado) sobre una lmina
que contiene un circuito impreso y hacer las conexiones con los
perifricos.
Validacin del funcionamiento del sistema de control.
Documentacin del Sistema de control.
28
4.2 Tcnicas de Recoleccin de Datos
La principal fuente de informacin para la realizacin de este Trabajo
de Grado es la revisin bibliogrfica de los libros y revistas relacionados con
la ingeniera electrnica y de computacin, como tambin entrevistas hechas
a especialistas en el ramo especfico y por ltimo una ayuda fundamental por
intermedio de internet, usando pginas Web para la captacin de datos.
4.3 Tcnicas de Programacin y Documentacin
Para el desarrollo de la aplicacin del sistema de Monitoreo, se
selecciona un lenguaje de alto nivel con programacin orientada a objetos
(Visual Basic) basndose en un diseo modular de procedimientos y
funciones. Se aplica la normalizacin 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 grficos que
favorecen la compresin.
Para la programacin de la aplicacin en el chip (PIC), se utiliza
directamente el lenguaje de bajo nivel (Assembler), y para compilar y
ensamblar el cdigo 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 validacin para detectar errores, y
verificar el cumplimiento del objetivo para garantizar la calidad del producto
final.
29
Una vez terminado el programa de Monitoreo, en este caso, la
validacin del circuito del producto final es lgicamente prctica, o sea,
funciona o no funciona.
En el caso que no funcione, hay que determinar las causas,
determinar cual componente electrnico no est trabajando, cambiarlo si es
necesario y volver otra vez a probar hasta su funcionamiento final.
30
Captulo 4
5. Desarrollo de la Solucin
En el desarrollo de la solucin del Sistema Microcontrolado de Carga y
Descarga de Bateras (SMcCDB), se aplica la metodologa de la
investigacin y bsqueda del microcontrolador, programacin del PIC
16F873, anlisis, diseo del Monitor de control y diagnstico de carga y
descarga de bateras, Construccin del programador del microcontrolador
(PIC800) y construccin del aparato electrnico del Monitor.
5.1 Escogencia del PIC
5.1.1 Criterios de seleccin
Se selecciona el dispositivo PIC16F873 por ser el ms
adecuado para nuestra aplicacin, por su amplia memoria de datos y de
programa y su costo muy accesible en el mercado nacional.
Es muy fcil de manipular, posee conversiones analgicos-
digitales (A/D), puertos suficientes de entrada y salida (I/O), se puede
programar y reprogramar sin necesidad de borrarlo previamente con ningn
tipo de sistema adicional. Tiene una alta ejecucin RISC (Reduced
Instruction Set Computer, Computador de Conjunto Reducido de
instrucciones) del CPU y slo 35 palabras sencillas de instruccin fciles 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
31
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 tecnologa CMOS FLASH/EEPROM y un completo
diseo esttico. Tiene un procesador read/write (leer/escribir) que da acceso
directo a la memoria del programa, rango de voltaje de operacin de 2.0V
hasta 5.5V, alto enfriamiento de la fuente de corriente de 25 mA y bajo
consumo.
Para mayor informacin, ver ANEXO A (Diagrama de los pines y
referencia del PIC16F873, Descripcin de los pines, Caractersticas de los
perifricos, Diagrama en Bloque y Caractersticas del PIC16F873)
Organizacin 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 informacin, ver ANEXO A (Mapa de la Memoria del
Programa y el Stack)
Organizacin 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 direccin 0000h (hexadecimal) y el vector de interrupcin est en
la direccin 0004h.
32
Organizacin de la Memoria de Datos
La memoria de datos est repartida en mltiples bancos, los cuales
contienen los registros de Propsito 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 seleccin de
los bancos.
RP1:RP0 Bank (Bancos)
00 0
01 1
10 2
11 3
Cada banco se extiende hasta 7Fh (128 bytes). Las localizaciones
bajas de cada banco estn reservadas para los Registros de la Funcin
Especial (Special Funtion Registers). Arriba de los Registros de la Funcin
Especial estn los registros de Propsito General, implementados como
RAM esttica. Todos los bancos implementados contienen los Registros de
Propsito General. Algunos Registros de la Funcin Especial usados
frecuentemente en algunos bancos pueden ser extrados en otros bancos
para la reduccin de los cdigos y para un rpido acceso.
Archivo de Registro de Propsito General (General Purpose
Register File)
El archivo del registro puede ser accesado directamente o
indirectamente a travs del File Select Register (FSR, Archivo de Seleccin
de Registros).
Para mayor informacin, ver ANEXO A (Mapa del Archivo de Registro)
33
Registros de la Funcin Especial (Special Function Registers)
Los Registros de la Funcin Especial son registros usados por el CPU
y sus mdulos perifricos para controlar la operacin deseada del objeto.
Esos registros son implementados como RAM esttica.
La Funcin Especial de los Registros puede ser clasificada en dos
partes: CPU y los perifricos.
Estados de los Registros (Status Register )
El estado de los registros contiene el estado aritmtico del ALU, el
estado del RESET y la seleccin del banco de los bits para la memoria de los
datos. El estado (STATUS) del registro puede se el destino para cualquiera
instruccin como con cualquier otro registro. Si el estado del registro es el
destino para una instruccin 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 lgico.
Los bits TO (bit del tiempo fuera) y PD (bit de cada del encendido) no son
grabables, lo cual, el resultado de una instruccin 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 informacin, ver ANEXO A (Registro STATUS)
34
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 informacin, 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 informacin, ver ANEXO A (Registro INTCON)
Registro PIR1 Register
El PIR1 Register contiene los bits de la bandera individual para las
interrupciones de los perifricos.
Para mayor informacin, 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 ms altos (PC<12:8>) no son registros donde se puede leer pero se
35
puede escribir indirectamente a travs del registro PCLATH. En cualquier
RESET, los bits ms altos del PC pueden ser borrados.
Para mayor informacin, 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
instruccin CALL (llamada) es ejecutada o una interrupcin es activada. El
stack es POPed (empujado de repente) dentro de un evento a una ejecucin
de una de las instrucciones siguientes: RETURN, RETLW o RETFIE. El
PCLATH no se afecta con la operacin PUSH o POP.
El stack opera como un buffer circular. Eso significa que despus que
el stack haba sido empujado (PUSHed) ocho veces, la novena empujada
sobre-escribe el valor que haba sido almacenado desde la primera
empujada. La dcima empujada sobre-escribe la segunda y as
sucesivamente.
Si un retorno de una instruccin CALL (o interrupcin) 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 fsico. Al direccionar el registro INDF
se causar un direccionamiento indirecto.
36
El direccionamiento indirecto es posible usando el registro INDF.
Cualquiera instruccin usando el actual registro INDF accesa el registro
apuntando al Archivo de la Seleccin 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 accin inoperativa (aunque
los bits de status pueden ser afectados). Una efectiva direccin de 9-bits es
obtenida al concatenar el registro FSR de 8-bits y el bit IRP (STATUS<7>).
Para mayor informacin, ver ANEXO A (Direccionamiento
Directo/Indirecto)
Algunos pines de esos puertos I/O son multiplexados con una funcin
alterna de las caractersticas de los perifricos del objeto. En general, cuando
un perifrico es habilitado, este pin no debe ser usado como un propsito
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 direccin 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-modificar-
escritura. Eso significa que una escritura a un puerto implica que los pines
del puerto son ledos, el valor es modificado y luego escrito al puerto de
datos. El pin RA4 es multiplexado con la entrada del mdulo del reloj
TIMER0 convirtindose 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-
37
Logic) y amplificadores (drivers) completos de salidas tipo CMOS (Tipos de
circuitos integrados).
Otros pines de PORTA son multiplexados con entradas analgicas y la
entrada analgica del voltaje de referencia (VREF). La operacin 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 direccin de los pines RA, aunque estn
usadas como entradas analgicas. El usuario debe estar seguro que los bits
del registro TRISA son mantenidos fijos cuando los estn usando como
entradas analgicas.
PORTB (Puerto B) y el Registro TRISB
El PORTB es 8-bit de ancho y es un puerto bidireccional. La
correspondiente direccin 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 funcin 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 automticamente apagado cuando el pin del puerto est
configurado como una salida. Los pull-ups son inhabilitados en Power-on-
Reset.
38
PORTC (Puerto C) y el Registro TRISC
El puerto C es 8 bits de ancho y bidireccional. El correspondiente
registro de la direccin 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 perifricos.
Cuando las funciones de los perifricos estn 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 validacin de las instrucciones. Sin embargo, los
nmeros de hasta 14-bit de ancho pueden ser almacenados en la memoria
para el uso de los parmetros de calibracin, nmeros seriales, paketes
ASCII de 7-bit. Ejecutando un programa de la localidad de la memoria que
contiene los datos que forman una instruccin invlida, da resultado a una
ejecucin 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, especificacin D120). El FLASH de la memoria
de programa es permitido para ciclos menores (Especificacin D130), porque
39
la memoria de datos del EEPROM puede ser usada para almacenar
frecuentemente los valores actualizados.
La escritura de un byte o palabra borra automticamente la localidad y
escribe el nuevo valor (borra la ejecucin de las instrucciones hasta que la
escritura no est completada. La memoria del programa no puede ser
accesada durante la escritura. Durante la operacin de escritura, el oscilador
contina operando, despus escribe). Escribiendo a la memoria de datos del
EEPROM no se afecta la operacin del dispositivo. Escribiendo a la memoria
del programa no cesan los perifricos y continan 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 travs del ajuste de Funcin 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 operacin
de escritura no interfiere con la normal operacin del microcontrolador.
Cuando se realiza la interfaz a la memoria de datos del EEPROM, el registro
EEADR mantiene la direccin a ser accesada. Dependiendo de la operacin,
el registro EEDATA mantiene los datos escritos, o los datos ledos a la
direccin del EEADR. El dispositivo PIC16F873 tiene 128 bytes de la
memoria de datos del EEPROM y desde luego requiere que el MSb (byte
ms significante) del EEADR permanezca limpio.
40
Cuando se realiza la interfaz a la memoria del programa, el EEDRH:
los registros EEADR forman palabra de dos- byte, la cual mantiene la
direccin de 13-bit de la localidad de la memoria de ser accesada. La
combinacin del registro EEDATH:EEDATA mantiene los datos de 14-bit
para las escrituras, o refleja el valor de la memoria de programa antes la
operacin de lectura. J usto como en los accesos de la memoria de programa
del EEPROM, el valor de los registros EEADRH:EEADR debe estar entre el
rango vlido 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 configuracin e
inicializacin de los accesos. El registro EECON2 no es un registro
implementado fsicamente, 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 operacin 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 operacin de lectura de la localidad de memoria deseada. Una vez
ese bit fijado, el valor de la localidad deseada de la memoria estara
habilitado en los registros de datos. Ese bit es borrado automticamente al
final de la operacin de lectura. Para las lecturas de la memoria de datos del
EEPROM, los datos deben ser habilitados en los registros de EEDATA en el
41
prximo ciclo de la instruccin despus 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 instruccin despus 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 operacin de escritura. Cuando el bit WREN es
borrado, la operacin escritura debe ser inhabilitada. Sin embargo, el bit
WREN debe ser fijado antes la ejecucin de la operacin escritura. El bit WR
es usado para iniciar la operacin escritura. Es automticamente borrado al
final de la operacin escritura. La bandera de interrupcin 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 haban
estado fijados, la direccin deseada de la memoria en EEADR debe ser
borrada, seguida por la escritura de los datos en EEDATA. Esta operacin
toma lugar en paralelo con el microcontrolador que contina la ejecucin
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 ejecucin de las instrucciones.
La deseada localidad de la memoria apuntada a EEADRH:EEADR debe ser
borrada. Despus, 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 ejecucin de los cdigos.
El bit WRERR es usado para indicar cuando el dispositivo PICF873 ha
sido reseteado durante la operacin de escritura. WRERR debe ser borrado
despus del Power-on Reset y debe ser chequeado en cualquier otro
RESET. El bit WRERR es fijado cuando una operacin de escritura es
42
interrumpida por un Reset MCLR, o time-out Reset, durante la normal
operacin. 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
operacin normal.
Para leer la memoria de datos del EEPROM se requiere que la
direccin deseada de acceso sea escrita al registro EEADR y se borre el bit
EEPGD. Despus que el bit RD ha sido fijado, los datos deben estar
habilitados en el registro EEDATA en el prximo ciclo de la instruccin.
EEDATA debe mantener ese valor hasta que otra operacin de lectura es
iniciada o hasta que sea escrita por el constructor.
Los pasos de leer la memoria de datos EEPROM son:
Escribir la direccin al EEPROM. Hay que tener cuidado que la
direccin no sea ms larga que el tamao de la memoria del
dispositivo.
Borrar el bit EEPGD para apuntar la memoria de datos del EEPROM
Fijar el bit RD para iniciar la operacin de lectura.
Leer los datos desde el registro EEDATA
Para mayor informacin, 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
43
fijado si el bit WREN ha sido fijado en una previa operacin, ambos bits no
pueden ser fijados en el mismo tiempo. El bit WREN debe ser borrado por el
programador despus 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 direccin al EEADR. Tener cuidado que la direccin
no sea ms larga que el tamao 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 estn habilitadas).
Ejecutar las cinco secuencias de las instrucciones especiales:
o Escribir 55h al EECON2 en dos pasos (primero al W,
despus al EECON
o Escribir Aah al EECON2 en dos pasos (primero al W,
despus 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 interrupcin EEIF es fijada.
Para mayor informacin, ver ANEXO A (Escritura de datos y escritura
de data en el EEPROM)
44
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 despus 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 instruccin NOP. EEDATH y EEDATA
deben mantener sus valores hasta que otra operacin 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 direccin al EEADRH:EEADR. Tener cuidado que la
direccin no sea ms larga que el tamao 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 operacin de lectura.
Ejecutar dos instrucciones NOP para permitir al
microcontrolador leer fuera de la memoria de programa.
Leer los datos desde los registros EEDATH:EEDATA.
Para mayor informacin, ver ANEXO A (Lectura y Escritura del
programa en el FLASH)
45
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 programacin este en curso. El
oscilador contina corriendo y todos los perifricos y las colas de
interrupciones (Si estn habilitadas) continan funcionando. Una vez que la
operacin de escritura se completa (Especificacin D133), el procesador
empieza ejecutando el cdigo desde donde dej de operar. La otra diferencia
importante, cuando esta escribiendo a la memoria de programa del FLASH,
es que el bit de configuracin 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 direccin 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 operacin 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 direccin a EEADRH:EEADR. Estar seguro que la
direccin no es ms larga que el tamao 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 estn habilitadas)
46
o Ejecutar las 5 secuencias de instrucciones especiales
Escribir 55h al EECON2 en dos pasos (primero al W,
despus al EECON2)
Escribir AAh al EECON2 en dos pasos (primero al W,
despus al EECON2)
Fijar el bit WR
o Ejecutar dos instrucciones NOP para permitir que el micro
ajuste la operacin de escritura
o Habilitar las interrupciones (si se estn usando)
o Limpiar el bit WREN para inhabilitar las operaciones de
programa.
Verificacin de Escritura
El dispositivo PIC16F873 no verifica automticamente el valor escrito
durante la operacin de escritura. Dependiendo de la aplicacin, la mejor
prctica de programacin puede ayudar a que el valor escrito a la memoria
sea verificado contra el valor original.
Proteccin 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.
47
El inicio de la secuencia de escritura y el bit WREN juntos ayudan a
prevenir cualquiera escritura accidental durante cambios repentinos (brown-
out), chispas de encendido o mal funcionamiento de fbrica.
Operacin durante la Proteccin del Cdigo
Los dispositivos PIC16F873 tienen dos mecanismos de proteccin del
cdigo, un bit para la memoria de datos del EEPROM y dos bits para la
memoria de programa FLASH. Los datos deben ser ledos y escritos a la
memoria de datos del EEPROM desde el punto de vista del estado del bit de
proteccin del cdigo, CPD. Cuando el cdigo de proteccin est habilitado y
el CPD borrado, el acceso externo va ICSP es inhabilitado, desde el punto
de vista del estado de los bits de la proteccin del cdigo de la memoria de
programa. Eso previene que los contenidos de la memoria de datos del
EEPROM sean ledos fuera del dispositivo.
El estado de los bits de proteccin del cdigo de la memoria de
programa, CP0 y CP1, no afecta la ejecucin 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
proteccin del cdigo.
Una vez la proteccin del cdigo ha sido habilitada para la memoria de
datos EEPROM y la memoria de programa FLASH, slo un borrado completo
del dispositivo entero puede inhabilitar la proteccin del cdigo.
Proteccin de Escritura de la Memoria de Programa FLASH
La palabra de configuracin contiene un bit donde la escritura protege
la memoria de programa FLASH, llamado WRT. Ese bit puede ser slo
48
accesado cuando se programe el dispositivo va ICSP. Una vez la proteccin
de escritura esta habilitada, solo una borrado completo del dispositivo entero
puede inhabilitarlo. Cuando el bit est habilitado, la proteccin de escritura
previene cualquiera escritura a la memoria de programa FLASH. La
proteccin de escritura no afecta la memoria de programa de lecturas.
Para mayor informacin, ver ANEXO A (Estado de Lectura/Escritura
de la memoria interna del programa FLASH y registros asociados con data
del FLASH EEPROM/PROGRAMA)
Mdulo TIMER0
El mdulo Timer0 temporizador/contador tiene las siguientes
caractersticas:
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 Seleccin del reloj externa o interna
o Interrupcin de sobre flujo de FFh hasta 00h
o Seleccin 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 mdulo timer0 debe
incrementarse cada ciclo de instruccin (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 Seleccin de la Fuente del flanco (edge) del bit
49
de Timer0, TOSE (OPTION_REG<4>). Borrando el bit TOSE se selecciona
la subida del pulso.
Interrupcin del TIMER0
La interrupcin TMR0 es generada cuando el registro TMR0 est fuera
del rango de FFh hasta 00h. El sobreflujo fija el bit TOIF (INTCON<2>). La
interrupcin puede ser enmascarada borrando el bit TOIE (INTCON<5>). El
bit TOIF puede ser borrado en el software por el mdulo de Seleccin de
Interrupciones de Rutina del TIMER0 antes que se rehabilite esa
interrupcin. La interrupcin 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 sincronizacin del TOCKI con la
fase interna de los relojes es cumplida por la muestra de la salida de la pre-
escala 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 pequeo retardo RC de 20 ns) y bajo por al menos 2Tosc (y un pequeo
retardo RC de 20 ns).
Pre-escala (Prescaler)
Hay un sola pre-escala disponible, lo cual est mutua y
exclusivamente compartida entre el mdulo Timer0 y el temporizador
50
Watchdog Timer (supervisor del temporizador). La asignacin de pre-escala
del mdulo 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 asignacin
de la pre-escala y razn de la pre-escala.
Mdulo Convertidor Analgico-Digital (A/D)
El mdulo Convertidor Analgico-Digital tiene cinco entradas.
La entrada analgica 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 analgico. La conversin del A/D de la
seal de entrada analgica resulta en un correspondiente nmero digital de
10-bit. El mdulo A/D tiene un voltaje de referencia alto y bajo que es
seleccionado por el software en alguna combinacin de Vdd, Vss, RA2 o
RA3.
El convertidor A/D tiene una nica caracterstica 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 mdulo 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 operacin del mdulo de A/D. El
registro ADCON1 configura la funcin de los pines del puerto. Los pines del
51
puerto pueden ser configurados como entradas analgicas (RA3 puede ser
tambin el voltaje de referencia o como entrada/salida digital).
Los registros ADRESH:ADRESL contienen el resultado de 10-bit de
conversin de A/D. Cuando la conversin 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 interrupcin del
A/D es fijada.
Despus que el mdulo A/D haya sido configurado como se ha
deseado, la seleccin del canal debe ser adquirida antes que la conversin
se inicie. La entrada analgica de los canales debe tener sus respectivos
bits TRIS seleccionados como entradas.
Se debe seguir esos pasos para hacer la Conversin A/D:
Configurar el mdulo A/D
o Configurar los pines/voltaje de referencia analgicos y
I/O digital (ADCON1)
o Seleccionar la entrada del canal del A/D (ADCON0)
o Seleccionar el reloj de conversin del A/D (ADCON0)
o Encender el mdulo de A/D (ADCON0)
Configurar la interrupcin 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 adquisicin requerido
Empezar la conversin:
o Fijar el bit GO/DONE (ADCON0)
52
Esperar que la conversin A/D se complete por:
o Polling (Encabezamiento) para que el bit GO/DONE sea
borrado (con interrupciones habilitadas) o
o Esperar por la interrupcin del A/D
Leer el resultado del registro par del A/D (ADRESH:ADRESL),
borrar el bit ADIF si es requerido.
Para la prxima conversin, ir al paso 1 o paso 2, como
requerido. El tiempo de conversin por bit de A/D es definido
como TAD. Una mnima espera del 2 TAD es requerida antes
que las prximas adquisiciones empiecen.
Para mayor informacin, 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 vara en el rango del voltaje del
dispositivo (VDD).
La mxima impedancia recomendada para las fuentes analgicas es
de 10 k. Si la impedancia decrece, el tiempo de adquisicin debe decrecer.
Despus que la entrada analgica del canal es seleccionada (cambiada),
esta adquisicin debe ser hecha antes que la conversin comenzara.
53
Seleccin del Reloj de Conversin de A/D
El tiempo de conversin del A/D est definido como TAD. La
conversin del A/D requiere un mnimo de 12TAD por 10-bit de conversin.
La fuente del reloj de conversin del A/D es seleccionada por medio del
software. Las cuatro opciones posibles para TAD son:
2TOSC
8TOSC
32TOSC
Mdulo del oscilador interno RC (2-6s)
Para las conversiones correctas del A/D, el reloj de conversin del A/D
(TAD) debe ser seleccionado para asegurar un mnimo tiempo TAD del orden
de 1,6s.
Configuracin de los Pines del Puerto Analgico
Los registros ADCON1 y TRIS controlan la operacin de los pines del
puerto del A/D. Los pines del puerto los cuales han sido seleccionados como
entrada analgica 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 operacin del A/D es independiente del estado
de los bits CHS2:CHS0 y los bits TRIS.
Para mayor informacin, ver ANEXO A (Registro ADCON1)
Las Conversiones de A/D
Si se borra el bit GO/DONE durante la conversin, se abortara la
conversin que est en curso. El resultado del registro par del A/D no puede
54
ser actualizado con la parcialidad completada de la conversin del A/D de la
muestra. Eso es, los registros ADRESH:ADRESL deben continuar
conteniendo el valor de la ltima conversin (o el ltimo valor escrito en los
registros ADRESH:ADRESL). Despus que la conversin del A/D es
abortada, una espera de 2TAD es requerida antes que la prxima adquisicin
empezara. Despus de esta espera de 2TAD, la adquisicin en el canal
seleccionado se empieza automticamente. El bit GO/DONE puede ser fijado
para empezar la conversin.
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 conversin de A/D. Este
registro par es 16-bits de ancho. El mdulo 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 Seleccin del bit de Forma del A/D (ADFM) controla
esa justificacin.
Caractersticas Especiales del CPU
El PIC873 tiene un patrn de caractersticas para intentar de
maximizar la rentabilidad del sistema, minimizar el costo por la eliminacin de
componentes externos, provee modos de operacin de ahorro de energa y
ofrece proteccin de cdigos. Esos son:
Seleccin del oscilador
RESET
o Reseteo de encendido de energa (POR)
o Tiempo de encendido (PWRT)\
55
o Tiempo de inicio del oscilador (OST)
o Brown-out Reset (Cambios repentinos de Reset, BOR)
Interrupciones
Tiempo de Supervisin (WDT)
SLEEP (Modo Dormir)
o Proteccin de cdigos
o Identificacin de Localidades
o Programacin serial en circuito
o Depuradora en circuito
El dispositivo PIC873 tiene un temporizador de supervisin, lo cual
puede ser apagado solo a travs la configuracin 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 energa. 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 energa
en el modo Apagado. El usuario lo puede despertar del modo SLEEP a
travs el RESET externo, el Despertador del Temporizador del Supervisor o
a travs de una interrupcin.
Muchas opciones de oscilador estn siendo habilitadas para permitir al
dispositivo ajustarse a la aplicacin. La opcin del oscilador RC ahorra el
costo, mientras la opcin del cristal LP ahorra la energa. El ajuste de la
configuracin de los bits est usado para seleccionar varias opciones.
56
Configuracin de los Bits
La configuracin de los bits puede ser programada (leda como 0) o
dejada sin programar (ledo como 1) para seleccionar muchas
configuraciones del dispositivo. El valor de la palabra de borrado o no de no
programar la configuracin es 3FFFh. Esos bits son delineados en mapa en
la localidad 2007h de la memoria de programa.
Es importante notar que la direccin 2007h est en el espacio de la
memoria de programa del usuario, la cual puede ser accesada solamente
durante la programacin.
Para mayor informacin, ver ANEXO A (Configuracin de la Palabra,
Direccin 2007h)
Configuracin del Oscilador
Tipos de Oscilador
El PIC873 puede ser operado en cuatro diferentes modos de
oscilador. El usuario puede programar dos bits de configuracin (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
57
Resonadores de Cristal Oscilador/Cermico
En modos XT, LP o HS, un cristal o un resonador cermico es
conectado a los pines OSC1/CLKIN y OSC2/CLKOUT para establecer
oscilaciones. El diseo 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 Sincrnico Asincrnico Receptor
Transmisor)
Mdulo USART
El mdulo USART es uno de los dos mdulos seriales I/O. (USART es
tambin conocido como interfaz serial de comunicacin o SCI). El USART
puede ser configurado como sistema doble va (full duplex) asincrnico, el
cual puede comunicarse con los perifricos como terminales (CRT) y
computadoras personales, o puede ser configurado como sistema
asincrnico de una sola va (half duplex) que puede comunicarse con los
perifricos 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 sincrcrnico asincrnico (USART).
El mdulo USART tiene tambin una capacidad del procesador
mltiple de comunicacin usando una direccin de 9-bit de deteccin.
58
Para mayor informacin, ver ANEXO A (Registro TXSTA, Estados de
Transmisin y Registro de Control, Registro RCSTA, Estados de Recepcin y
Registro de Control)
Generador de Rata de Baudios (BRG) del USART
El BRG soporta ambos modos sincrnico y asincrnico. Por eso est
constituido por un generador de rata de baudios de 8-bit. El registro SPBRG
controla el perodo de libre corrida de un temporizador de 8-bit. En modo
asincrnico el bit BRGH (TXSTA<2>) controla tambin la rata de baudios. EN
modo sincrnico, el bit BRG es ignorado.
Para mayor informacin, 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 Asincrnico, BRGH=0=Baja Velocidad y Rata de
Baudios para el Modo Asincrnico, BRGH=1=Alta Velocidad)
Conjunto (Set) de Instrucciones
Cada instruccin del PIC16F873 es una palabra byte de 14-bit,
dividida en un OPCODE (Cdigo) lo cual especifica el tipo de instruccin y
uno o varios operandos los cuales adems especifican la operacin de la
instruccin.
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 instruccin.
El destino asignador especfica donde ser colocado el resultado de la
instruccin. Si d es cero, el resultado ser colocado en el registro W
59
(Registro de trabajo). Si d es uno, el resultado ser colocado en el registro
especificado en la instruccin.
Para las instrucciones orientadas por bit (bit- oriented), b representa
un bit de campo asignador lo cual selecciona el nmero del bit afectado por
la operacin, mientras f representa la direccin 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
instruccin, a menos que una prueba condicional sea verdadera o el
contador de programa sea cambiado como un resultado de la instruccin. En
ese caso, la ejecucin toma dos ciclos de instrucciones con el segundo ciclo
ejecutado como un NOP. Un ciclo de instruccin consiste de cuatro perodos
del oscilador. As, para una frecuencia del oscilador de 4 MHz, el tiempo de
la ejecucin normal de la instruccin es 1s. Si la prueba condicional es
verdadera, o el contador de programa es cambiado como un resultado de
una instruccin, el tiempo de la ejecucin de la instruccin es 2s.
Para mayor informacin, ver ANEXO A (Descripcin del Campo del
Cdigo y Formato General para las Instrucciones), Set de Instrucciones del
PIC 16F873) y Descripcin de las Instrucciones)
4.1.2 Utilizacin 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
60
o Software MPLAB IDE
Ensamblador/Compilador/Enlazador
o Ensamblador MPASM
o Compilador MPLAB C17 y MPLAB C1
o Enlazador objeto MPLINK /MPLIB objeto de Librera
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 Demostracin 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)
61
El editor est siempre disponible cuando el MPLAB est corriendo. El
editor no es un archivo ejecutable separado, pero es parte de las
caractersticas del MPLAB.
El MPLAB IDE y el editor estn designados para permitir y desarrollar
un simple y rpido mtodo de compilar la familia de los productos de la
tecnologa 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 tecnologa incorporada de Microchip de
la familia PICmicro microcontrolador. El MPLAB nos permite escribir,
depurar y optimizar las aplicaciones para los diseos de los productos
PICmicro. El MPLAB incluye un editor de textos, simulador y manejo de
proyectos. El MPLAB soporta tambin los emuladores el MPLAB-ICE y el
PICMASTER, los programadores PICSTART Plus y PRO MATE II y otros
sistemas de desarrollos de otras compaas.
El software del MPLAB IDE es un programa de desarrollo muy
sencillo. El MPLAB IDE est basado en una aplicacin de Windows que
contiene:
Una Interface de herramientas depuradoras
o Simulador
o Programador
o Emulador
o Depuradora En-Circuito
Un Editor de caractersticas completas
o Un gerente de proyecto
Herramientas de barra y mapa de teclas
Un estado de barra
Ayuda en lnea
62
Ayuda del MPLAB
La organizacin de las herramientas del MPLAB a travs de las
funciones de la ayuda, hace fcil la interpretacin, la bsqueda y la
programacin por la tcnica del pull-down del men general.
Las herramientas del MPLAB nos permiten:
Ensamblar, compilar y enlazar los cdigos fuente
Depurar el programa ejecutable lgico 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 Supervisin
Programar los micrcontroladores por el PICSTART Plus, PRO
MATE II o PIC800
Encontrar respuestas rpidas de las interrogantes de ayuda en
lnea del MPLAB y mucho ms.
La habilidad de usar el MPLAB IDE con las herramientas mltiples de
depuradora permite a los usuarios escoger fcilmente entre un simulador de
costo efectivo y un emulador de caractersticas completas con un mnimo de
entrenamiento.
El MPLAB es un producto fcil de aprender y utilizar con el Ambiente
de Desarrollo Integrado (IDE). El IDE provee el desarrollo de ingeniera, la
flexibilidad para disear 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 ms detalles nos
referimos a la gua de usuarios para un hardware especfico..
63
El MPLAB provee las funciones que nos permiten:
Crear y Editar los Archivos Fuente
Agrupar los Archivos dentro de los Proyectos
Depurar los Cdigos Fuente
Depurar el Ejecutable Lgico usando Simulador o Emulador
El MPLAB IDE nos permite crear y editar los cdigos fuente que nos
provee las mejores caractersticas de un editor de texto.
Podemos fcilmente depurar los cdigos fuente con la ayuda de la
ventana Build Results (Resultados de la Construccin) 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, libreras y los archivos
de enlace en formato de proyecto. El MPLAB IDE nos provee tambin las
ricas caractersticas en ambientes de simuladores y emuladores para
depurar los ejecutables lgicos.
Algunos de esas caractersticas son:
La variedad de ventanas permitindonos ver los contenidos de
todos los datos y las localidades de la memoria del programa.
El Cdigo Fuente Memoria del Programa y la ventana de los
Listados Absolutos nos permite ver el cdigo fuente y sus
equivalentes niveles de ensamblaje separados y juntos
(Absolute Listing)
La habilidad de navegar a travs del programa en general.
64
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 especficos. Cuando se usa un proyecto, el cdigo fuente es
reconstruido y cargado al simulador o al emulador con un simple click del
ratn (mouse).
MPLAB Editor (Editor)
Se usa el Editor del MPLAB para crear y editar los archivos de texto,
tales como los archivos fuente, cdigo y los archivos del enlazador (linker
script files)
MPLAB-SIM Simulator (Simulador)
El software simulador modela la ejecucin 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 Libreras).
El Ensamblador del MPASM nos permite ensamblar los cdigos
fuente sin salir del MPLAB. El MPLINK crea la aplicacin final por los
mdulos del enlace del MPASM, MPLAB-C17, y MPLAB-C18. El MPLIB
maneja las libreras para lograr una mxima codificacin
MPLAB-CXX C Compilers (Compiladores C)
65
El MPLAB-C17 y MPLAB-C18 C Compilers son compiladores en
lenguaje C, que proveen las soluciones de los cdigos fuente en
programacin de alto nivel.
PROMATEII y PICSTART Plus Programmers (Programadores)
Desarrolla el cdigo 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 programacin es
mucho ms fcil usndolo.
Para mayor informacin, ver ANEXO B (Pantalla del Software del
MPLAB)
Ensamblador MPASM
El Ensamblador es un macro de caractersticas completas para todos
los PICmicro.
El Ensamblador MPASM tiene un comando de interfaces en lnea y
una Ventana (shell). Puede ser usado como aplicacin stand-alone (que se
mantiene solo) en Windows 3.x o sistema mayor, o puede ser usado a travs
del MPLAB IDE. El ensamblador MPASM genera archivos objeto para el
enlazador objeto MPLINK, Intel de archivos estndares HEX, archivos
MAP de memoria de uso y referencia de smbolo, archivo absoluto LST que
contiene archivos fuente y cdigo de mquina generado, y archivos COD
para depuracin.
Las caractersticas del ensamblador del MPASM incluyen:
Integracin dentro de los proyectos del MPLAB IDE
Definicin del usuario de los macros para streamline assembly
code (Cdigo de ensamblaje en lnea)
66
Ensamblaje condicional para muti-propsito de los archivos
fuente
Directrices que permiten un control completo del proceso de
ensamblaje.
Para mayor informacin, ver ANEXO B (Pantalla del Software del
MPASM)
Descripcin del MPASM
El MPASM es una aplicacin del sistema operativo DOS o Windows-
based PC que provee una plataforma para desarrollar los cdigos 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/ATo computador compatible que funciona y corre en MS-
DOSV5.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 solucin universal para el desarrollo de los
cdigos en assembler para todos los Microchip's 12-bit, 14-bit y 16-bit.
Caractersticas Notables del MPASM
Todos las Ajustes de las Instrucciones dePICmicroMCU
Comando de Interfaz de Lnea
67
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 Utilizacin 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 diseo muy sencillo, de bajo costo, su
software de distribucin libre y gratuita, consulta en lnea por va Internet con
su creador (www.electronica.ar.com), sus componentes electrnicos estn
disponibles en el pas y por supuesto es fcil de construir y armar.
Programador PIC800
Introduccin
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 proteccin 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
informacin de como disearlo fue extrada de las notas de aplicacin de
Microchip nmeros DS39025, DS30189 y AN589. La primera trata sobre la
programacin de los PIC 16F87x, la segunda sobre los PIC 16x84, y la
68
tercera explica como armar un prototipo de programador bsico. En ambas
familias, el sistema de programacin es el mismo. Lo nico que cambia es la
cantidad de memoria de programa y datos, por lo que las dos primeras notas
de aplicacin son muy similares. Las tres notas de aplicacin explican como
deben ser las seales que le deben llegar al PIC durante la fase de
programacin y lectura, y que debe hacer el software del programador.
El hecho de controlar estas seales 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 seales 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 pblico el protocolo de programacin 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 esquemticos. En cambio, los programadores amateurs se
caracterizan por tener un bajo costo y por disponer los circuitos
esquemticos y programas en forma libre y gratuita. Incluso algunos
distribuyen el cdigo fuente del programador. Debido al bajo costo y por ende
a la pequea 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 fcilmente
adaptables para usarlos con el sistema ICSP (programacin serie en el
circuito). Este sistema permite programar al PIC en el mismo circuito en el
69
que va a funcionar, por lo que no es necesario sacarlo de su zcalo para
ponerlo en el programador cada vez que hay que reprogramarlo. Esto es
muy til durante la fase de desarrollo y depuracin del software del micro.
Obviamente, el PIC800 es un programador hogareo. No es un
programador de "produccin", ya que no tiene implementado la verificacin
de la grabacin a distintas tensiones de alimentacin. En un programador
comercial, luego de la grabacin, el PIC es verificado a la tensin de
alimentacin mnima y mxima, con lo que se puede asegurar el correcto
grabado de la memoria. PIC800 hace la verificacin slo a tensin nominal
de alimentacin (+5V), con lo que por lo menos se asegura el buen estado de
grabacin a esa tensin.
Hardware y Construccin del Programador PIC800
Como puede verse en el circuito esquemtico (ver ANEXO C, Circuito
esquemtico del PIC800), el hardware del PIC800 es sencillo. El circuito
esta dividido en tres partes: alimentacin, control y sealizacin.
La alimentacin del circuito se obtiene de una fuente externa de entre
15 a 24V (contina) 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 tensin de programacin Vhh
(+13,4V). Los condensadores eliminan los ruidos elctricos y previenen las
oscilaciones. Es conveniente que la llave de encendido (apagado) sea
bipolar para evitar el pasaje de ruidos elctricos desde el transformador a la
PC a travs de la masa cuando el programador est apagado.
La parte de control utiliza transistores de efecto de campo BS170, los
cuales toman las seales que enva la PC, las invierten y las envan al PIC.
De esta manera se hace una separacin elctrica entre la PC y el PIC. En el
70
caso del bit de Data, hay otro transistor que toma la seal emitida por el PIC,
lo invierte y lo enva a la PC. Ese bit es utilizado por el programador para leer
el PIC.
La sealizacin consiste en otros tres transistores que toman las
seales recibidas por el PIC y manejan sendos leds para indicar el estado de
cada seal: Data, Clock y Vpp. Obviamente esto es opcional y la falta de
sealizacin no afecta el funcionamiento del programador.
La construccin del programador no debera presentar ningn
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 mnimo. Puede ser una ficha DB 9 (como del
puerto serie), una RJ 45 (como las de red Ethernet) o alguna otra que sea
cmoda para conectar. Para el cable de conexin con la PC se recomienda
utilizar cable multipar apantallado. La pantalla del cable debe ir conectada al
chasis de la PC a travs de la ficha DB25. No se debe unir el chasis de la PC
con el negativo de la fuente de alimentacin. 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 elctricos no
afecten a la PC cuando est conectada. Debido a la sencillez del circuito y a
las bajas frecuencias que manejan, no es crtica la posicin de los
componentes en la plaqueta.
Para mayor informacin, ver ANEXO C (Diagrama Esquemtico del
Programador PIC800 y Diagrama de la Fuente de Poder del Programador)
71
Software
o Instalacin
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 ningn archivo de configuracin.
o Modo de Uso
Todos los parmetros se le deben pasar a travs de la lnea de
comandos del DOS. El modo de uso es el siguiente:
PIC800 <comando>[-opcin ] <archivo>[-opcin ...]
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 ledo al programar o verificar un PIC, o generado al
leer un PIC.
72
Las opciones son:
o -L x: Nmero de puerto LPT a usar (1, 2 o 3). Por defecto,
usa LPT1
o -V x: Factor de correccin de la velocidad de
procesamiento (1 a1000). Por defecto es 100.
o -P x: >Forza al tipo de PIC a utilizar, evitando la
autodeteccin. Los valores permitidos son: 84, 873, 874,
876 y 877. Por defecto: autodetectin.
La deteccin del tipo de PIC se hace leyendo la direccin 0x2006 que
contiene un valor nico para cada modelo. El factor de correccin 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 grabacin
con maquinas muy rpidas o cuando se quiere acelerar el proceso con
mquinas lentas.
Software para Probar el Programador (Test)
Prueba del programador PIC800 a bajo nivel - Versin 1.41b
(C) 1999-2003 por Miguel Scapolla webmaster@miguelo.com.ar
www.miguelo.com.ar
******* PIC800 no ofrece ninguna garanta. 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 +5v BIEN 13 40 28
RB6:Clock 0v -- -- 12 39 27
MCLR:Vpp 0v -- -- 4 1 1
73
------------------ 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 opcin:
Recomendaciones
Dependiendo del entorno que se est usando, hay varias formas de
utilizarlo:
Si slo 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 parmetros 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. Tambin se pueden crear los archivos
BORRA.BAT y VERI.BAT para borrar el contenido y verificar
respectivamente.
Si se est bajo Windows 3.1x, quizs lo ms conveniente es crear un
grupo de iconos (en el Administrador de Programas) con el proyecto.
Por ejemplo, podran 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 podra llamar
"Programar PIC" y en la lnea de comandos (en las propiedades del icono) se
74
pueden poner los parmetros. O tambin, que ese icono llame a PGM.BAT
descrito antes.
Bajo Windows 95, lo ms fcil es crear accesos directos en el
escritorio, y en las propiedades, llamar al programador con los parmetros
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 configuracin, es imposible recuperar el cdigo del
PIC.
El PIC800 detecta automticamente el tipo de PIC conectado, por lo
que no es necesario especificar el modelo en la lnea de comandos. Tambin
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 invlidas, el PIC800
aborta la grabacin presentando un mensaje de error.
Ejemplos
o PIC800 P -L2 TEST.HEX : Programa al PIC con el archivo
TEST.HEX a travs de LPT2
o PIC800 L PRUEBA.HEX : Lee el PIC y genera el archivo
PRUEBA.HEX a travs de LPT1
o PIC800 B -L3 : Borra el PIC a travs de LPT3
o PIC800 T -L 2 : Verifica el hardware conectado a LPT2
75
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 seales en forma individual y poder medir las tensiones en
el zcalo del PIC. Una vez que el programador est funcionando
correctamente, no es necesario utilizar esta opcin, pero es muy til
durante la fase de construccin.
Simplemente, se llama al PIC800 con el parmetro T y el
nmero de puerto al que est conectado el programador (si es distinto
de LPT1).
Se Recuerda que al utilizar esta opcin, se le mandan las
seales al zcalo en donde se aloja el PIC, por lo que se recomienda
utilizarlo con el programador encendido pero sin un PIC en el zcalo.
Las tensiones indicadas en la columna Salida, deben medirse con un
tester en el zcalo del programador. Las de la columna Entrada, no
hace falta medirlas.
Por ltimo, lo normal es que la seal de entrada de DATA esta
invertida con respecto a la salida. Esto es debido al transistor que acta
como inversor y a que el pin BUSY es invertido por la PC.
76
Una vez en el men de testeo, slo hay que pulsar las teclas
correspondientes para cambiar el valor de la seal para poder medirla
en el zcalo 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 tensin de programacin.
o R: Refresca la pantalla.
o <ESC>: Finaliza el testeo.
Funcionamiento
Introduccin
La programacin de los PICs de las series 16x84 y 16F87x es
relativamente sencilla. Se utiliza una comunicacin serie sincrnica con dos
hilos: dato y reloj. De esta manera, se le envan comandos para que el PIC
los ejecute y datos para que los almacene. Lo que sigue est tomado de las
hojas de programacin de la EEPROM de los PICs con nmeros 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, configuracin y datos. La
memoria del programa se extiende desde la direccin 0x0000 hasta
0x1FFF (8Kb), aunque no est implementada en su totalidad en todos
los modelos de PICs; contiene el cdigo ejecutable del programa.
77
La memoria "ID Locs" se extiende desde 0x2000 hasta 0x2003.
Son cuatro bytes de cuatro bits cada uno que sirve para almacenar un
nmero para implementar alguna caracterstica, por ejemplo, serial de
los PICs. La memoria de identidad del dispositivo es un solo byte en la
direccin 0x2006 y es de slo 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 configuracin es un byte
en la direccin 0x2007. Tambin es conocida como los fusibles del PIC,
y contiene la configuracin de arranque, tal como habilitar o no el watch
dog (supervisador), proteger el cdigo (CP), tipo de cristal a utilizar
(XT), etc. Por ltimo, la memoria de datos se extiende desde la
direccin 0x2100 y es una memoria que puede ser leda y escrita por el
mismo PIC durante su funcionamiento normal a travs de su programa
almacenado o escrito por el programador. Al ser una memoria
EEPROM no se pierde la informacin al quitar la alimentacin al PIC.
Modo de Programacin
Para poner al PIC en modo de programacin, slo 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
operacin 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
78
de que el comando lleve un dato asociado, se ingresa dicho dato en 16
ciclos de reloj, tambin 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 acta como salida y enva cada BIT de dato en el flanco de subida
del reloj, tambin 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 Configuracin: Despus de recibir este comando y 16
ciclos de reloj, el contador de programa (PC) se sita en la
direccin 0x2000. De esta manera se puede programar la
memoria ID Loc, la de configuracin 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 programacin volviendo
a entrar en l.
o Load Data for Program Memory: Despus de recibir este
comando, el PIC almacena el dato que sigue con los
prximos 16 ciclos de reloj para ser grabado en la memoria
del programa, ID Locs o configuracin.
o Load Data for Data Memory: Despus de recibir este
comando, el PIC almacena el dato que sigue con los
prximos 16 ciclos de reloj para ser grabado en la memoria
de datos. Ntese que la memoria de datos es de 8 bits por
byte, por lo tanto slo se tendra en cuenta los 8 bits menos
significativos de los 14 que componen el dato recibido.
79
o Read Data from Program Memory: Despus de recibir este
comando, el PIC transmite los bits de datos de la memoria
del programa, ID Locs, identidad o configuracin segn 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) despus del decimosexto flanco ascendente del
reloj.
o Read Data from Data Memory: Despus 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) despus del decimosexto flanco
ascendente del reloj. Ntese que la EEPROM de datos tiene
8 bits por byte, por lo que slo los 8 bits menos significativos
deberan ser tenidos en cuenta.
o Increment Address: Despus 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
direccin 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 direccin 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
programacin y volviendo a entrar en l.
80
o Begin Programming: Programa la memoria del PIC segn 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
posicin de memoria. No se requiere ningn comando de
final de programacin.
o Bulk Erase Program Memory: Despus de recibir este
comando, con el prximo comando "Begin Programming" se
borra toda la memoria de programa. Para realizar el borrado
en forma correcta se deben cumplir los siguientes pasos:
Comando Load Data for Program Memory con
0xFFFF como valor
Comando Bulk Erase Program Memory
Comando Begin Programming
Esperar 10 ms
Si el PIC tiene la proteccin de cdigo activado, la memoria de
programa no se borra.
Proteccin del Cdigo (CP)
Si el PIC tiene la proteccin del cdigo activado, al leerlo se
obtienen todas las posiciones de memoria en cero, y la programacin
de esa parte de la memoria ser deshabilitada. Para poder reutilizar el
PIC, es necesario deshabilitar esta proteccin antes de intentar grabar
en l. Los pasos para deshabilitarla son:
o Enviar el comando Load Configuracin con 0xFFFF como dato.
o Incrementar la direccin (PC) con el comando Increment
Address a la direccin 0x2007 (Configuracin).
81
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 ledo por el
programador (en este caso es PIC800) y es transferido al PIC. El
PIC800 slo reconoce el formato Intel INHX8M que se describe a
continuacin.
Este formato produce un archivo hexadecimal de 8 bits con una
combinacin de byte bajo - alto. Como cada direccin contiene slo 8
bits, todas las direcciones estn 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 carcter dos puntos, y representa el comienzo de un
registro.
o BB Es un byte de dos dgitos hexadecimales que representan
la cantidad de bytes de datos que contiene la lnea.
o AAAA Es una direccin de cuatro dgitos hexadecimales que
representan la direccin de comienzo del registro de datos
(multiplicada por dos).
82
o TT Es un byte de dos dgitos 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 dgitos hexadecimales, de
la forma byte bajo - byte alto, y representan los datos a grabar
en el PIC.
o CC Es un byte de dos dgitos hexadecimales que representan
el checksum de verificacin 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 Diseo del Sistema de Monitoreo de Carga y Descarga de Bateras
5.2.1 OBJETIVO GENERAL
Analizar las variables peridicamente comparndolas con los valores
dentro de los rangos mximos y mnimos permitidos para cada uno, dar
alarma cuando dichos valores y rangos salgan de lo aceptado, emitir
informes y tomar decisiones.
83
Primera Funcin
Recopilar y almacenar las informaciones.
A continuacin se ilustra la pantalla asociada a esta funcin:
INFORMACION
Tipo de informacin: datos recibidos durante una consulta o causados por una
alarma
Data.Rx : datos recibidos por mtodo del USART por el puerto RS232 durante la
consulta o causados por una alarma
Data.Tx: datos transmitidos por el mtodo del USART por el puerto RS232 durante
la consulta o causados por una alarma
Voltaje : Voltaje de alimentacin de los equipos de telecomunicaciones
Voltaje Mximo: Voltaje de Carga de la batera expresado en voltios
Voltaje Mnimo : Voltaje de Descarga de la batera
Fecha : Fecha de recepcin de la informacin
Hora : Hora de recepcin de la informacin
Amperaje : Amperaje de suministro para los equipos de telecomunicaciones
Amperaje Mximo: Amperaje de carga de la batera expresado en Amperios
Amperaje Mnimo: Amperaje de descarga de la batera
Identificacin de las Entidades y Atributos que soportan la
funcin
Parece ser que toda la informacin que se despliega en la pantalla es
relativa a los datos del sistema de monitoreo de carga y descarga de las
bateras. Por lo tanto definimos una entidad que llamamos Informacin.
84
Para facilitar su visualizacin representaremos la entidad y sus atributos en
la Tabla de Valores.
INFORMACIN
Tipo.inf Fecha Hora Volt Volt.max Volt.mi Amp Amp.max
Amp.min Data.Rx Data.Tx
Determinacin 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 informacin y el voltaje forman la clave
concatenada de la entidad y cumple con la condicin 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 informacin y el amperaje forman la clave
concatenada de la entidad y cumple con la condicin de identificar en forma
nica a los datos de amperaje.
85
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 ms
simple, con claves correctas y completas.
Establecimiento del Modelo de Datos de la Funcin
A partir de las entidades en tercera forma normal podemos ver las
relaciones o vas de acceso que se establecen entre ellas para obtener la
informacin que se despliega en la pantalla asociada a la funcin. El conjunto
86
de entidades y relaciones entre ellas, representan el modelo de datos de la
funcin, que ilustramos a continuacin:
INFORMACIN
Tipo.inf Fecha Hora Volt Volt.max Volt.min Amp
Amp.min Amp.max Data.Tx Data.Rx
Entidad:
INFORMACION/VOLTAJ E
Tipo.inf Volt Volt.max Volt.min Hora Fecha
Entidad: VOLTAJ E
Volt Volt.max Volt.min
Entidad: INFORMACION/AMPERAJ E
Tipo.inf Amp Amp.max Amp.min Fecha Hora
Entidad: AMPERAJ E
Amp Amp.max Amp.min
87
La representacin de este modelo en forma equivalente a la anterior,
pero slo en el mbito de entidades, luce de la siguiente forma:
Segunda Funcin
La segunda funcin se trata de analizar la informacin,
transmitir las alarmas segn los tipos de fallas que se originan en el
sistema de telecomunicaciones (Voltaje, amperaje, carga, seal), y
emitir los informes pertinentes para las tomas de decisiones.
PROBLEMA
Tipo.Informacin: datos recibidos durante la consulta o causados por una
alarma
Falla: Anomala en el sistema de teletelecomunicaciones
Tipo de falla: Tipo de desperfecto en el sistema
Alarma: causa de cualquier falla registrada en el sistema
Cd.alarma: Cdigo de las alarmas segn la falla
Voltaje: Voltaje de alimentacin de los equipos
Amperaje: Carga de los equipos
Data.Tx: Informacin de transmisin
Data.Rx: Informacin de recepcin
Fecha/Hora: Fecha y hora de las informaciones
INFORMACION
INF/VOLTAJ E
INF/AMPERAJ E
VOLTAJ E
AMPERAJ E
88
Identificacin de las Entidades y Atributos que soportan la
Funcin
Como se puede observar en la pantalla asociada a esta funcin,
la informacin que en ella se despliega es relativa a las alarmas, por lo
tanto definiremos una entidad que se llama PROBLEMA. Para
facilitar la visualizacin y anlisis de la entidad, la representaremos en
la Tabla de Valores siguiente:
Entidad: PROBLEMA
Tipo.inf Falla Tipo.falla Alarma
Cod.alarma Voltae Amperaje Data.Tx Data.Rx
Fecha Hora
Determinacin de las Claves de las Entidades identificadas
Ahora que tenemos identificada la entidad asociada a esta
funcin del sistema, su clave concatenada que es
Tipo.inf/Tipo.falla/Cod.Alarma, como se representa a
continuacin en la Tabla de valores, procedemos a normalizar la
entidad para llevarla a su expresin ms simple.
89
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 Voltaje Fecha Hora
90
Modelo de Datos de la Funcin
Igual que la primera funcin, el modelo de datos se queda como
sigue a continuacin:
Entidad: PROBLEMA
Tipo.inf Tipo.falla Cod.alarma Voltae Amperaje Data.Tx falla alarma
Fecha Hora 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 Fecha Hora
91
La representacin de este modelo en forma equivalente a la anterior,
pero slo a nivel de entidades, luce de la siguiente forma:
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 continuacin, se listan las entidades definidas para las dos
funciones del sistema de informacin.
PROBLEMA
TIPO.INF/FALLAS
TIPO.INF/ALARMAS
FALLAS
ALARMAS
92
Entidad: INFORMACION
Tipo.inf Fecha Hora Volt Volt.max Volt.min Amp Amp.max
Amp.min Data.Tx Data. Rx
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
Entidad: AMPERAJE
Amperaje Amperaje.max Amperaje.min
93
Entidad: PROBLEMA
Tipo.inf Falla Tipo.falla Alarma
Cod.alarma Voltaje Amperaje Data.Rx
Fecha Hora 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 Amperaje Data.Tx Voltaje Fecha Hora Data.x
Una vez consolidadas las entidades, debemos proceder a
continuacin con los modelos de datos de cada funcin para obtener
finalmente el modelo conceptual de datos del sistema completo.
94
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 continuacin:
Hemos terminado el ltimo paso del anlisis de datos. Las entidades,
modelos de datos de las funciones y el modelo conceptual de datos del
sistema estn completos y normalizados y las claves de todas las entidades
han sido identificadas.
Documentacin del Anlisis de los Datos
Durante el anlisis de los datos se prepara una serie de papeles
de trabajo que fundamentarn posteriormente el diseo lgico y fsico
de la base de datos.
INFORMACION
TIPO.INF/VOLTAJ E
TIPO.INF/AMPERAJ E
VOLTAJ E
AMPERAJ E
ALARMAS
TIPO.INF/
FALLA
TIPO.INF/
ALARMA
FALLAS
ALARMAS
95
Inventario de Atributos
CODIYASCA
SISTEMA DE MONITOREO DAT 100
INVENTARIO DE ATRIBUTOS
REFERENCIA CRUZADA: DAT 100
NMERO NOMBRE DESCRIPCIN
EL 001 Tipo.Inf Tipo de datos recibidos durante la consulta o por falla
EL 002 Volt Voltaje normal de alimentacin de los equipos (V)
EL 003 Volt.max Voltaje mximo medido (mas de lo normal) (V)
EL 004 Volt.min Voltaje mnimo medido (menos de lo normal) (V)
EL 005 Amp Amperaje normal de carga de los equipos (A)
EL 006 Amp.max Amperaje mximo medido (mas de lo normal) (A)
EL 007 Amp.min Amperaje mnimo medido (menos de lo normal) (A)
EL 008 Data.Tx Datos transmitidos de forma serial por mtodo 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 cdigo de las alarmas segn las variables
EL 014 Fecha Fecha de recepcin de la informacin
EL 015 Hora Hora de recepcin
96
Descripcin de Atributos
CODIYASCA DAT101
SISTEMA DE MONITOREO ITEM : EL001
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 001
NOMBRE DE ATRIBUTO: Tipo.inf
DESCRIPCIN: Tipo de datos recibidos durante la consulta o por falla
FORMATO: N (4)
PROPSITO: Recibir el tipo de informacin a cada consulta o a cada problema
que se presente en el sistema
USADO EN ENTIDADES: "INFORMACIN ", INFORMACION/VOLTAJ E,
INFORMACION/AMPERAJ E, PROBLEMA,
TIPO.INF/FALLA, TIPO.INF/ALARMA
VALOR
TIPO DEFINICIN
0001 Falla Rx
97
CODIYASCA DAT 102
SISTEMA DE MONITOREO ITEM :EL002
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 002
NOMBRE DE ATRIBUTO: Volt
DESCRIPCIN: Voltaje Normal de alimentacin de los equipos expresado en
voltios
FORMATO: N (5)
PROPSITO: Supervisar y controlar el voltaje normal
USADO EN ENTIDADES: "INFORMACIN", INF/VOLTAJ E, VOLTAJ E,
PROBLEMA, TIPO.INF/FALLA,
TIPO.INF/ALARMA, FALLA, ALARMA
VALOR
Volt DEFINICION
13.5V 13 voltios y medio necesarios para alimentar los
equipos
98
CODIYASCA DAT103
SISTEMA DE MONITOREO ITEM : EL 003
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 003
NOMBRE DE ATRIBUTO: Volt.max
DESCRIPCIN: Voltaje mximo permitido sin deteccin de falla
FORMATO: N (5)
PROPSITO: Supervisar y controlar los voltajes mximos
USADO EN ENTIDADES: "INFORMACION", INFORMACION/VOLTAJ E,
VOLTAJ E
VALOR
Volt.max DEFINICIN
16,5V 16 Voltios y medio
99
CODiYASCA D 104
SISTEMA DE MONITOREO ITEM : 004
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 004
NOMBRE DE ATRIBUTO: Volt.min
DESCRIPCIN: Voltaje mnimo permitido sin detectar falla alguna
FORMATO: N (5)
PROPSITO: Supervisar y controlar los voltajes mnimos
USADO EN ENTIDADES: "INFORMACIN", INFORMACION/VOLTAJ E,
VOLTAJ E
VALOR
Volt.min DEFINICIN
11.5V 11 voltios y medio
100
CODIYASCA DAT 105
SISTEMA DE MONITOREO ITEM: EL005
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 005
NOMBRE DE ATRIBUTO: Amp
DESCRIPCIN: 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: "INFORMACIN", INFORMACION/AMPERAJ E,
AMPERAJ E, PROBLEMA,
TIPO:INF/FALLA,
TIPO.INF/ALARMA, FALLA, ALARMA
VALOR
Amp DEFINICIN
30A 30 Amperios (A)
101
CODIYASCA DAT 106
SISTEMA DE MONITOREO ITEM : EL 006
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 006
NOMBRE DE ATRIBUTO: Amp.max
DESCRIPCIN: Amperaje mximo sin deteccin de falla
FORMATO: N (5)
PROPSITO: Supervisar y controlar la carga mxima de los equipos
USADO EN ENTIDADES: INFORMACIN, INFORMACION/AMPERAJ E,
AMPERAJ E
VALOR
Amp.max DEFINICIN
35A 35 Amperios (A)
102
CODIYASCA DAT 107
SISTEMA DE MONITOREO ITEM : EL007
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 007
NOMBRE DE ATRIBUTO: Amp.min
DESCRIPCIN: Amperaje mnimo sin deteccin de falla
FORMATO: N (5)
PROPSITO: : Supervisar y controlar la carga mnima de los equipos
USADO EN ENTIDADES: INFORMACIN
INFORMACION/AMPERAJ E, AMPERAJ E
VALOR
Amp.min DEFINICION
25A 25 Amperios (A)
103
CODIYASCA DAT 108
SISTEMA DE MONITOREO ITEM : EL 008
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 008
NOMBRE DE ATRIBUTO: Data.Tx
DESCRIPCIN: Datos transmitidos por el puerto RS232 por el mtodo USART
FORMATO: N (16)
PROPSITO: Transmitir cualquier falla a la central
USADO EN ENTIDADES: INFORMACIN, PROBLEMA, TIPO.INF/FALLAS,
TIPO.INF/ALARMAS, FALLAS, ALARMAS
VALOR
Serial Binario DEFINICIN
1000110011100101 Transmisin binaria
104
CODIYASCA DAT109
SISTEMA DE MONITOREO ITEM : EL 009
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 009
NOMBRE DE ATRIBUTO: Data.Rx
DESCRIPCIN: Datos recibidos por el puerto RS232 por el mtodo USART
FORMATO: N (15)
PROPSITO: Datos recibidos de una consulta o una falla a la central
USADO EN ENTIDADES: INFORMACIN, PROBLEMA, TIPO.INF/FALLAS,
TIPO.INF/ALARMAS, FALLAS, ALARMAS
VALOR
Serial Binario DEFINICIN
1001010001100101 Recepcin binaria
105
CODIYASCA DAT110
SISTEMA DE MONITOREO ITEM : EL 010
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 010
NOMBRE DE ATRIBUTO: Falla
DESCRIPCIN: cualquier desperfecto de los parmetros del sistema causa una
falla
FORMATO: N (15)
PROPSITO: Supervisar y controlar las fallas del sistema en general
USADO EN ENTIDADES: INFORMACIN, PROBLEMA, TIPO.INF:FALLAS;
TIPO.INF/ALARMAS, FALLAS
VALOR
Voltaje DEFINICIN
10V ese valor causa una falla de voltaje
20A ese valor de carga causa una falla de carga
(Amperaje)
106
CODIYASCA DAT111
SISTEMA DE MONITOREO ITEM: EL 011
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 011
NOMBRE DE ATRIBUTO: Tipo.falla
DESCRIPCIN: Tipo de problema causado por cualquiera variable del sistema
FORMATO: N (15)
PROPSITO: Supervisar y controlar los tipos de fallas para su anlisis y su
Correccin
USADO EN ENTIDADES: PROBLEMA, TIPO.INF/FALLAS, FALLAS
VALOR
Tipo DEFINICIN
00010 Falla de seal
00020 Falla de carga
107
CODIYASCA DAT112
SISTEMA DE MONITOREO ITEM: EL012
DESCRIPCIN DE ATRIBUTO
NUMERO DE ATRIBUTO: EL 012
NOMBRE DE ATRIBUTO: Alarma
DESCRIPCIN: Aviso de cualquiera falla surgida en el sistema
FORMATO: N (7)
PROPSITO: Supervisar y controlar las alarmas para su correccin inmediata
USADO EN ENTIDADES: PROBLEMA , TIPO.INF/ALARMAS, ALARMAS
VALOR
Tipo DEFINICION
00011 Alarma de voltaje mnimo
00021 Alarma de voltaje mximo
108
CODIYASCA DAT113
SISTEMA DE MONITOREO ITEM: EL 013
DESCRIPCIN DE ATRIBUTO
NMERO DE ATRIBUTO: EL 013
NOMBRE DE ATRIBUTO: Cod.alarma
DESCRIPCIN: Cdigos de las diferentes alarmas segn las variables del sistema
FORMATO: N (15)
PROPSITO: Supervisar, controlar y conocer los tipos de alarmas para su
anlisis, su deteccin y su correccin respectiva
USADO EN ENTIDADES: PROBLEMA, TIPO.INF/ALARMAS, ALARMAS
VALOR
Cdigo DEFINICIN
00010 Falla de seal
00020 Falla de carga
109
CODIYASCA DAT 114
SISTEMA DE MONITOREO ITEM: EL014
DESCRIPCIN DE ATRIBUTO
NUMERO DE ATRIBUTO: EL 014
NOMBRE DE ATRIBUTO: Fecha
DESCRIPCIN: Fecha de recepcin de la informacin
FORMATO: N (8)
PROPSITO: Registrar las fechas de recepcin de la informacin para su
Anlisis
USADO EN ENTIDADES: INFORMACIN, INFORMACIN/VOLTAJ E,
INFORMACIN/AMPERAJ E,
PROBLEMA, TIPO,INF/FALLAS,
TIPO.INF.ALARMAS, FALLAS, ALARMAS
VALOR
Tipo DEFINICION
25/03/03 25 de Marzo del ao 2003
110
CODIYASCA DAT115
SISTEMA DE MONITOREO ITEM: EL 015
DESCRIPCIN DE ATRIBUTO
NUMERO DE ATRIBUTO: EL 015
NOMBRE DE ATRIBUTO: Hora
DESCRIPCIN: Hora de recepcin de la informacin
FORMATO: N (8)
PROPSITO: Registrar las horas de recepcin de la informacin para su anlisis
USADO EN ENTIDADES: INFORMACIN, INFORMACIN/VOLTAJ E,
INFORMACIN/AMPERAJ E,
PROBLEMA,TIPO,INF/FALLAS,
TIPO.INF.ALARMAS,FALLAS, ALARMAS
VALOR
Tipo DEFINICION
23:45:32 23 horas,45 minutos, 32 segundos
111
Inventario de Entidades
CODIYASCA
SISTEMA DE MONITOREO DAT 110
INVENTARIO DE ENTIDADES
REFERENCIA CRUZADA : DAT 111
NMERO NOMBRE
ENT 001 INFORMACION
ENT 002 INFORMACIN/VOLTAJ E
ENT 003 INFORMACIN/AMPERAJ E
ENT 004 VOLTAJ E
ENT 005 AMPERAJ E
ENT 006 PROBLEMA
ENT 007 TIPO.INF/FALLAS
ENT 008 TIPO.INF/ALARMAS
ENT 009 FALLAS
ENT 010 ALARMAS
112
Descripcin de Entidades
CODIYASCA DAT 111
SISTEMA DE MONITOREO
DESCRIPCIN DE ENTIDADES
NMERO DE ENTIDADES: ENT 001
NOMBRE DE ENTIDAD: INFORMACIN
TAMAO: 256 caracteres
TIPO: Raz
DESCRIPCIN: Contiene todos los datos de la consulta o fallas
ATRIBUTOS:
NMERO NOMBRE FORMATO LONGITUD USO
EL 001 Tipo.inf N (4) 4 Clave
EL 002 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 Clave
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
113
CODIYASCA DAT 112
SISTEMA DE MONITOREO
DESCRIPCIN DE ENTIDADES
NMERO DE ENTIDADES: ENT 002
NOMBRE DE ENTIDAD: INFORMACIN/VOLTAJ E
TAMAO: 256 caracteres
TIPO: Raz
DESCRIPCION: Contiene los datos estticos del voltaje
ATRIBUTOS:
NMERO NOMBRE FORMATO LONGITUD USO
EL 001 Tipo.inf N (4) 4 Clave
EL 002 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
114
CODIYASCA DAT 112
SISTEMA DE MONITOREO
DESCRIPCIN DE ENTIDADES
NMERO DE ENTIDADES: ENT 003
NOMBRE DE ENTIDAD: INFORMACIN/AMPERAJ E
TAMAO: 256 caracteres
TIPO: Raz
DESCRIPCION: Contiene los datos estticos del Amperaje
ATRIBUTOS:
NMERO NOMBRE FORMATO LONGITUD USO
EL 001 Tipo.inf N (4) 4 Clave
EL 005 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
115
CODIYASCA DAT112
SISTEMA DE MONITOREO
DESCRIPCIN DE ENTIDADES
NMERO DE ENTIDADES: ENT 004
NOMBRE DE ENTIDAD: VOLTAJ E
TAMAO: 4 caracteres
TIPO: Raz
DESCRIPCION: Contiene los datos estticos de los voltajes
ATRIBUTOS
NMERO NOMBRE FORMATO LONGITUD USO
El 002 Volt N(4) 4 clave
El 003 Volt.max N(4) 4
El 004 Volt.min N(4) 4
116
CODIYASCA DAT112
SISTEMA DE MONITOREO
DESCRIPCIN DE ENTIDADES
NMERO DE ENTIDADES: ENT 005
NOMBRE DE ENTIDAD: AMPERAJ E
TAMAO: 4 caracteres
TIPO: Raz
DESCRIPCION: Contiene los datos estticos de los amperajes
ATRIBUTOS
NMERO NOMBRE FORMATO LONGITUD USO
El 005 Amp N(4) 4 clave
El 006 Amp.max N(4) 4
El 007 Amp.min N(4) 4
117
CODIYASCA DAT112
SISTEMA DE MONITOREO
DESCRIPCIN DE ENTIDADES
NMERO DE ENTIDADES: ENT 006
NOMBRE DE ENTIDAD: PROBLEMA
TAMAO: 256 caracteres
TIPO: Raz
DESCRIPCION: Contiene los datos estticos de las fallas de las variables
ATRIBUTOS
NMERO NOMBRE FORMATO LONGITUD USO
El 001 Tipo,inf N(4) 4 clave
El 011 Tipo.falla N(4) 4 clave
El 010 Falla X(15) 15
El 013 Cod.alarma N(4) 4 clave
El 002 Volt N(4) 4
El 005 Amp N(4) 4
El 008 Data.Tx N(16) 16
El 014 Fecha N(8) 8
El 014 Hora N(6) 6
El 009 Data.Rx N(3) 3
El 012 Alarma X(15) 15
118
CODIYASCA DAT112
SISTEMA DE MONITOREO
DESCRIPCIN DE ENTIDADES
NMERO DE ENTIDADES: ENT 007
NOMBRE DE ENTIDAD: TIPO.INF/FALLAS
TAMAO: 256 caracteres
TIPO: Raz
DESCRIPCION: Contiene los datos estticos de las fallas
ATRIBUTOS
NMERO NOMBRE FORMATO LONGITUD USO
El 001 Tipo.inf N(4) 4 Clave
El 011 Tipo.fall N(4) 4 Clave
El 002 Volt N(4) 4
El 005 Amp N(4) 4
El 014 Fecha N(8) 8
El 015 Hora N(6) 6
El 008 Data.T N(16) 16
El 009 Data.Rx N(16) 16
El 010 Falla N(15) 15
119
CODIYASCA DAT112
SISTEMA DE MONITOREO
DESCRIPCIN DE ENTIDADES
NMERO DE ENTIDADES: ENT 008
NOMBRE DE ENTIDAD: TIPO.INF/ALARMAS
TAMAO: 256 caracteres
TIPO: Raz
DESCRIPCION: Contiene los datos estticos de las alarmas
ATRIBUTOS
NMERO NOMBRE FORMATO LONGITUD USO
El 001 Tipo.inf N(4) 4 Clave
El 012 Alarma N(4) 4
El 013 Cod.alarma N(4) 4 Clave
El 005 Amp N(4) 4
El 008 Data.Tx N(16) 16
El 014 Fecha N(8) 8
El 015 Hora N(6) 6
El 009 Data.Rx N(16) 16
El 002 Volt N(4) 4
120
CODIYASCA DAT112
SISTEMA DE MONITOREO
DESCRIPCIN DE ENTIDADES
NMERO DE ENTIDADES: ENT 009
NOMBRE DE ENTIDAD: FALLAS
TAMAO: 256 caracteres
TIPO: Raz
DESCRIPCION: Contiene los datos estticos de las diferentes fallas
ATRIBUTOS
NMERO NOMBRE FORMATO LONGITUD USO
El 012 Tipo.falla N(4) 4 Clave
El 002 Volt N(4) 4
El 005 Amp N(4) 4
El 008 Data.Tx N(16) 16
El 015 Fecha N(8) 8
El 016 Hora N(6) 6
El 019 Data.Rx N(16) 16
El 010 Falla N(15) 15
121
CODIYASCA DAT112
SISTEMA DE MONITOREO
DESCRIPCIN DE ENTIDADES
NMERO DE ENTIDADES: ENT 010
NOMBRE DE ENTIDAD: ALARMAS
TAMAO: 256 caracteres
TIPO: Raz
DESCRIPCION: Contiene los datos estticos de las diferentes alarmas
ATRIBUTOS
NMERO NOMBRE FORMATO LONGITUD USO
El 013 Alarma X(15) 15
El 014 Cod.alarma N(4) 4 Clave
El 002 Volt N(4) 4
El 005 Amp N(4) 4
El 008 Data.Tx N(16) 16
El 009 Data.Rx N(16) 16
El 015 Fecha N(8) 8
El 016 Hora N(6) 6
122
5.2.2 Documentacin del Sistema de Monitoreo
Definicin de los Requerimientos de Hardware
o Mquinas (Modelo de las computadoras):
o Deben ser Pentium II
- Procesador 400 MHZ
- Disco Duro 10 GB
- Monitor Super VGA
- Mouse
- Teclado
o Sistema Operativo
- Windows98, MILLENIUM, 2000
o Perifricos:
- Puerto de comunicacin Com (1-4)
- Impresora
- MODEM
- Pantalla (Monitor)
Preparacin del Programa del Monitoreo
El programa se codifica en el lenguaje de programacin Visual
Basic, debido a ello su anlisis y desarrollo es orientado a objeto. El uso
de un control llamado MSComm1, facilita la recepcin de los datos
(DataRx, DataTx) por medio del puerto de comunicacin Com1 de la
mquina, el cual normalmente est destinado para el uso del ratn.
Normalmente el Com1 est conectado al Modem que tiene la
funcin de enlace entre la lnea telefnica y el computador que permite el
123
discado, la modulacin y demodulacin de la seal durante la consulta
del estado del sistema general.
Elaboracin del Diseo de la Base de Datos
La base de datos se crea en Microsoft Access97. Esto es debido
a que el lenguaje de programacin 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 segn la cantidad de registros que han de ser
ingresados, la base de Access puede colapsar, sobre todo en los casos
en que el nmero supere el milln de registros. Segn estadsticas que
se realizan en el perodo de prueba se toma decisin sobre el cambio o
no de la misma.
La estructura que llevar la Base de Datos:
Campos Tipo de datos Tipo de Informacin
Alfanumrico.......................Entero Largo
Voltaje.................................Numrico......................................Doble
Voltaje Mximo...................Numrico ......................................Doble
Voltaje Mnimo....................Numrico.......................................Doble
Fecha..................................Fecha/Hora
Hora....................................Fecha/Hora
Amperaje.............................Numrico......................................Doble
Amperaje Mximo............... Numrico......................................Doble
Amperaje Mnimo.................Numrico......................................Doble
Falla.Numrico .Entero Doble
124
Funciones y Variables
PROCEDIMIENTO DESCRIPCION Variables
Acknowledge Reconocimiento y
Rutina de los Estados
de los Rels y Alarmas
o AL1
o AL2
o RL2
o RL3
o LABEL2: Display
PIC Procesamiento de los
Datos del PIC
o Voltaje
o Label2: Display
Check Funcin del
Procesamiento del
Voltaje
o Voltaje
o MSComm1: Establecimiento
de Comunicaciones
Cstr Regresa el valor del
Voltaje
o Parmetros de entrada K
Voltage Manda el voltaje cada
cierto tiempo
o K: Voltaje
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 Conexin del Modem o Number: Nmero Telefnico
o MSComm1
FORM_LOAD
Carga la pantalla de
Inicio (FORM) con los
valores de
o Text C: Parmetros del
MODEM
o MSComm1: Ajuste de los
125
comunicacin del
MODEM y sus variables
parmetros del Modem
o FORM1: Forma
o Text B: Puerto de
Comunicacin
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 rel4 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 Rel3 o RL3=ON
o MSComm1
Option8_Click Estado del Rel3 o RL3=OFF
o MSComm1
Option9_Click Estado del Rel4 o RL4=OFF
o MSComm1
Timer1_Timer Chequea si los datos en
la entrada del Buffer son
vlidos
o Textemp
126
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 Hace Llamada a la
Option4_Click
o Tmr_AL1OFF
o Tmr_AL1
Tmr_AL1OFF_Timer Hace llamada a la
Option5_Click
o Tmr_AL1OFF
Tmr_AL2_Timer Hace llamada a la
Option6_Click
o Tmr_AL2
o Tmr_AL2OFF
Tmr_AL2OFF Hace llamada a la
Option1_Click
o Tmr_AL2OFF
Pantallas del Sistema de Monitoreo
Debido a que el sistema en s es un monitor de seales, sta es la
nica pantalla que posee, en ella se vacan los datos que recibe el
monitor por medio de un control llamado MSCom, y posteriormente se
convierten en informacin clasificada y entendible.
Para mayor informacin, ver ANEXO D (Pantalla del Sistema de
Monitoreo)
Control MSCOM: Este es un control que cuando se ejecuta el
sistema, permanece invisible. Su funcin es capturar datos que
entran al puerto de telecomunicaciones COM1 COM2 de la
mquina segn sea el caso.
127
Diseo de la Base de Datos
En este punto se presenta el modelo de datos a implantar, el
cual podemos clasificar en dos fases: el diseo del modelo lgico en
donde se establece la estructura lgica de los datos en el sistema y el
diseo del modelo fsico o interno donde se establece la estructura
organizativa de los datos. Los detalles concernientes al diseo lgico y
fsico se presentan a continuacin:
Modelo Lgico
Modem-Computadora
RADIO MICROONDA
MONITOR
Antena
REPETIDORA
128
Modelo Fisico o Interno
Tablas:
Nombre de la Tabla: Control Total Campos : 15
----------------------------------------------------------------------------------------------
| Nombre del Campo | Tipo de Dato | Relaciones |
----------------------------------------------------------------------------------------------
| Voltaje | Numrico [Double] | |
----------------------------------------------------------------------------------------------
| Volataje_Maximo | Numrico [Double] | |
----------------------------------------------------------------------------------------------
| Volataje_Minimo | Numrico [Double] | |
----------------------------------------------------------------------------------------------
| Fecha | Date/Time | |
----------------------------------------------------------------------------------------------
| Hora | Date/Time | |
----------------------------------------------------------------------------------------------
| Amperaje | Numrico [Double] | |
----------------------------------------------------------------------------------------------
| Amperaje_Maximo | Numrico [Double] | |
----------------------------------------------------------------------------------------------
| Amperaje_Minimo | Numrico [Double] | |
----------------------------------------------------------------------------------------------
| Falla | Numrico [Entero] | |
----------------------------------------------------------------------------------------------
Para mayor informacin, 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 informacin, ver ANEXO D (Listado del Programa)
129
5.3 Desarrollo y ensamblaje de la solucin tecnolgica: El SMcCDB
Pic
Bancode
batera
-
+
Generador Eolico
Panel Solar
Fuentedepoder 110-Vac
Micro-Controlodor
PANTALLA
TECLADO
Tx/Rx PC Micro-Onda
PRE-PROYECTO DE MICRO CINTROLADOR
El proyecto est constituido por el PIC16F873 que es fundamental en
ese trabajo, de tres pantallas (Displays) de siete segmentos de tipo nodo
comn, circuitos integrados que controlan las seales e iluminan las
pantallas, transistores que suministran la corriente para encender las
pantallas y activan y desactivan los rels 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 bateras
que son objeto de supervisin y control.
130
5.3.1 Construccin y Ensamblaje del Monitor
Para fabricar el circuito elctrico se necesitan los componentes
electrnicos.
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 instruccin se ejecuta en un (1) microsegundo. El cristal
debe ir acompaado de dos (2) condensadores de 15 o 20 pf.
Las tres (3) pantallas de siete (7) segmentos (Display) se manejan a
travs del integrado UL2003; ste es un buffer que permite obtener una
buena iluminacin de los segmentos, con una corriente de consumo que no
es suministrada por el PIC. Para encenderlos, el microcontrolador debe dar
una seal 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 funcin por software) la funcin de la medicin
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
Comn).
La pantalla (Display) es de nodo comn, eso significa que el pin de
alimentacin (5V) es comn para todos los segmentos y que para que ste
se encienda se necesita un potencial de cero (0V) en cada pin
correspondiente.
Para mayor informacin ver ANEXO E (El circuito esquemtico del
Monitor, y Lista de materiales del Monitor))
131
5.3.2 Construccin de la Interfaz RS232
Para construir ese circuito se necesitan algunos componentes
electrnicos.
Este circuito es el encargado de transmitir y recibir las seales
desde el Monitor por el mtodo USART (Transmisin y Recepcin Sincrnico
Asincrnico Universal)
Este circuito est armado conjuntamente con el del Monitor.
Para mayor informacin ver ANEXO E (Diagrama del puerto RS232, y
Lista de materiales del RS232)
5.3.3 Construccin del Circuito Analgico
Para este circuito, se necesita tambin algunos componentes
electrnicos.
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 seal 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 activacin de los
rels (RL1, RL2).
Este componente electrnico permite tambin poner en marcha los
rels que a su vez sirven para activar y desactivar cualquier elemento del
sistema de telecomunicacin como ejemplo, apagar o prender el cargador
de batera, apagar o prender un transmisor, quitar o poner un banco de
batera, etc.
132
Los transistores son semi-conductores que son utilizados en este
circuito como switche electrnico, es decir para activar o desactivar los rels
segn la seal que manda el PIC.
Este circuito est armado conjuntamente con el del Monitor.
Para mayor informacin ver ANEXO E (Diagrama Analgico y Lista de
materiales del Circuito Analgico)
5.3.4 Construccin de la Entrada Analgica
La entrada de medicin analgica del voltaje puede ser de 0V hasta
50V y es un divisor de tensin resistivo que sirve de proteccin al PIC para
evitar que el voltaje de entrada analgica (RA0) supere los 5V. Tambin
est armado conjuntamente con el del Monitor.
Para mayor informacin ver ANEXO E (Entrada Analgica)
Ver Foto 2 (Circuito armado del Circuito de Monitoreo)
5.4 Programacin del PIC 16F873
5.4.1 Diagrama de Flujo
El diagrama de flujo ayuda a visualizar las diferentes etapas de la
programacin en Assembler.
Para mayor informacin ver ANEXO F (Diagrama de Flujo)
5.4.2 Cdigo 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
133
un muestreo en CH0 (Canal 1, RA0) de un Convertidor A/D en dos modos
de operacin (Un Disparo y Corrida libre, One Shot y Free Running).
La pantalla est en decimal y tambin escanea Pulsadores en
PUERTO A <5>(RA5, pin 5 del Puerto A)
El USART es usado en Modo Asincrnico 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 Interrupcin solamente para contar tiempo, la
frecuencia del cristal es: Fosc=4.096Mhz y la PreScalar=32. El Perodo de
InterrupcinTMR0 =(25696)*[1/((Fosc/4)/32)] =160*0.00003125 =5.00 ms.
Los tiempos de las pantallas y los Voltios son independientes.
Para mayor informacin ver ANEXO F (Cdigo Assembler)
5.4.3 Cdigo en Hexadecimal
Despus que tenemos el cdigo en Assembler, se usa el programa
MPASM para compilarlo, depurarlo y si no tenemos errores, nuestro
programa se convierte en un cdigo hexadecimal el cual sirve luego para
cargarlo dentro la memoria FLASH del microcontrolador.
Para cargar este cdigo hexadecimal en el Chip, que no es otro que
nuestra aplicacin o sea nuestro objetivo de nuestro trabajo, se emplea el
programador PIC 800.
Para mayor informacin ver ANEXO F (Cdigo Hexadecimal)
134
5.4.4 Diagrama de la Solucin 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 bateras, celdas solares y
generador elico, que son la esencia de la energa elctrica.
Debido a la importancia de la energa, la carga y la descarga de las
bateras estn bajo supervisin permanente a travs 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 vas (Transmisor/Receptor) y el
MODEM (Modulador/Demodulador), que sirve de enlace entre el computador
y el Radio, convierte la seal digital del computador en seal analgica y la
transfiere al Radio que la transmite al Repetidor. En sentido contrario, recibe
la seal analgica del Repetidor y la convierte en seal digital y la enva al
computador. Dicindolo de otra manera, el MODEM es un elemento
electrnico Analgico/Digital y viceversa.
La transmisin de datos tiene unas seales especficas de control que
se especifican a continuacin:
CTS (Claer to send , clarificar para transmitir)
Controla el paso del nivel de la salida de la seal que viene del
conector RS- 232
RXD (Receive Data, Recepcin de la Data)
El nivel de salida de la recepcin de la data del MODEM que va al
terminal (Computador)
TXD (Transmit Data , transmisin de datos)
El nivel de entrada del RS-232 del terminal del MODEM.
135
RTS (Request to Send , Requerido a transmitir)
Controla el paso de la seal del MODEM. Eso indica que quiere
transmitir data
DCD (Digital Control Data, Control Digital de datos)
Esta seal provee la seal al terminal (Computadora) del DTE (Digital
Terminal Electronic, Terminal Electrnico Digital) y significa que el
MODEM est conectado con la Central (En lnea).
Ground (Tierra o Masa)
PTT (Push to talk, Apretar para hablar)
Esta seal est conectada internamente al PTT a travs de una
resistencia de 2,7 Kohmios y sirve para poner el Radio al aire
(Transmitir)
Transmit Audio (Transmisin de Audio).
La salida del MODEM est conectada a la entrada del micrfono. Se
puede ajustar la salida del nivel de audio con una resistencia variable
(Potencimetro).
Receive Audio (Recepcin de Audio)
Es la seal que viene conectada al parlante del Radio o al audfono.
Para mayor informacin ver ANEXO F (Diagrama de la
Solucin Implantada)
136
CONCLUSIONES
El desarrollo del sistema Microcontrolado de Carga y Descarga de
Bateras (SMcCDB) de Sistemas de Telecomunicaciones en la Empresa
CODIYASCA, cumple de esta forma el objetivo general de trabajo de tesis.
A continuacin se detallan los logros alcanzados:
Evaluacin 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 diseo, la programacin e implementacin 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 disminucin 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 energa.
Todas las fallas y alarmas del sistema estn 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.
137
RECOMENDACIONES
Hoy en da los sistemas de telecomunicaciones son tan amplios
y globales que surge la idea de crear los mecanismos de control y
diagnstico que deben convertirse en una ayuda para que los
profesionales logren un mejor desempeo de sus funciones.
Este sistema de Monitoreo y diagnstico 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 batera sino todo el
sistema general, tal como medir la seal 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 ningn problema de cada 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 seales (tiempo fuera del aire)
ocasionadas por fallas tcnicas (perdida de carga, cada de potencia,
mala seal, etc.).
138
BIBLIOGRAFA
U.N.A , Anlisis y Diseo de Sistemas, Caracas,1991
U.N.A , Documentacin de Sistemas, Caracas
U.N.A , Programacin de Sistemas, Caracas
U.N.A , Microprocesador, Caracas
Pgina web de Microchip, www.microchip.com
Revista Electrnica, Edicin Internacional No. 71, 72, 74, 75,
Cekit s.a, Bogot Colombia
Libro, Micro-Controlador de la McGrow Hill, 2002
Revista Electrnica SABER, Edicin Internacional (Argentina)
Libro, Sistemas de Comunicaciones, A. Bruce Carlson, 1980
Manual de Trabajos de Grado de Especializacin y Maestra y
Tesis Doctorales, 1998.
139
GLOSARIO
W: Registro de trabajo (Acumulador), est dentro la memoria RAM del PIC
f: Registro de direccin de archivo, va desde 0h hasta 7Fh
b: bit de direccin entre un registro de un archivo de 8-bits
d: Seleccin de destino; si d =0, se almacena el resultado en W, si d =1, se almacena el
resultado en el registro f
k: Campo numrico 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: Mdulo Analgico/Digital que sirve por ejemplo, medir la entrada del voltaje (Analgico)
y convertirlo a la salida en cdigo binario (Digital).
PROGRAMA FLASH: memoria donde se guarda el programa de aplicacin que no se borra
aunque se le quita la fuente de alimentacin.
EEPROM: Memoria que no se borra fcilmente, all se guarda los datos como la identidad
del PIC, los fusibles (Configuracin del PIC) y datos.
Preescala (Prescaler): Mdulo 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
numrico (Voltios) entre los bornes positivo y negativo de una batera.
Rel: Dispositivo elctrico que se activa al alimentar su bobina y se desactiva al quitarle la
alimentacin. Esas acciones se manifiestan en cerrar y abrir unos contactos fsicos del rel.
140
ANEXO A
Diagrama de los pines y Referencia del PIC16F873
Descripcin de los pines del PIC16F873
Caractersticas del PIC16F873
Caractersticas de los perifricos
Diagrama en Bloque del PIC16F873
Mapa de la Memoria del Programa y el Stack
Mapa del Archivo del Registro
Registro OPTION_REG)
Registro STATUS
Registro INTCON
Registro PIR1
Carga del PC en diferentes situaciones
Direccionamiento Directo/Indirecto
Registro EECON1
Escritura de datos y Escritura de data en el EEPROM
Lectura y Escritura del Programa en el FLASH)
Estado de Lectura/Escritura de la memoria interna del
programa FLASH y registros asociados con data del FLASH
EEPROM/PROGRAMA
Diagrama en Bloque del A/D
Registro ADCON0
Registro RCSTA (Estados de Recepcin y Registro de
Control)
Registro ADCON1
141
Configuracin de la Palabra, Direccin 2007h
Registro TXSTA: (Estados de Transmisin y Registro de
Control)
Formula de la Rata de Baudios y Registros Asociados con
el Generador de Rata de Baudios
Rata de Baudios para el Modo Asincrnico , BRGH=0=Baja
Velocidad
Rata de Baudios para el Modo Asincrnico, BRGH=1=Alta
Velocidad
Descripcin del Campo del Cdigo, y Formato General para
las Instrucciones)
Set de Instrucciones del PIC 16F873
Descripcin de las Instrucciones
ANEXO B
Pantalla del Software del MPLAB
Pantalla del Software del MPASM
ANEXO C
Diagrama Esquemtico del programador PIC800
Diagrama de la Fuente de Poder del Programador
Software de Programacin del PIC
Foto 1: Circuito Armado del PIC800
142
ANEXO D
Pantalla del Sistema de Monitoreo
Pantalla de la Base de Datos
Ejemplo de los resultados de las Mediciones
Lista del Programa
ANEXO E
El circuito elctrico del Monitor
Diagrama del puerto RS232
Diagrama Analgico
Entrada Analgica
Lista de materiales
Foto 2: Circuito armado del Circuito de Monitoreo
ANEXO F
Diagrama de Flujo
Cdigo Assembler
Cdigo Hexadecimal
Diagrama de la Solucin Implantada