IZTAPALAPA
Casa abierta
al
tiempo
UNIDAD:
D I V I S I ~ N :
CARRERA:
MATER~A:
TÍTULO:
FECHA:
ALUMNO:
MATRÍCULA:
IZTAPALAPA
CBI
INGENIERÍA ELECTR~NICA
PROYECTO DE INGENIERÍA ELECTR~NICA
RED DE MICROCONTROLADORES 8031
16 DE OCTUBRE DE 1997
”
HUGO OCTAVIO PINEDA SÁNCHEZ
El presente documento es un reporte del
Proyecto
realizado en la materia
curricular de PROYECTO DE INVESTIGACIóN ELECTRóNICA. Y se realiza
conforme a los
requisitos establecidos por
la UNIVERSIDAD AUTóNOMA
METROPOLITANA
para
obtener
el
título
de
INGENIERO
EN
ELECTR~NICA.
El
Proyecto
realizado se llama
RED DE CONTROLADORES 8031
y el asesor
fue el Ing. Alejandro Martinez González.
La idea de este proyecto surgió del siguiente análisis:
1.
11.
..
...
Durante el diseño e implementación de diversos
Sistemas Electrónicos
basados en el microcontrolador
8031, uno de los
problemas que
enfrenté fue el de poder de ejecutar los programas que desarrollaba en
la PC, ya que la única manera de hacerlo era grabando el programa en
memoria EPROM por medio de una tarjeta especial. Este problema se
podía solucionar si logramos que la PC escriba programas en el
Sistema Electrónico
por medio de comunicación serial.
Si se quiere lograr comunicar la PC con varios
Sistemas Electrónicos
se requiere implementar una interface que permita tener comunicación
entre varios dispositivos.
1li.Si
los
Sistemas Electrónicos
estuvieran dedicados a algún proceso
específico, podrían utilizar la comunicación con la PC como una
herramienta adicional.
El análisis anterior llevo a proponer para el proyecto una
Red de
Microcontroladores
donde una PC se encargue de controlar el flujo de
información.
El esquema de este reporte esta formado por
7
capítulos:
INTRODUCCIóN.
Se analiza brevemente los fundamentos de
una red de microcontroladores
OBJETIVOS.
Se indican los alcances del proyecto
DISEÑO.
Se especifican las etapas necesarias para la
implementación de la
Red
DESARROLLO.
Se explica la forma en que se realizó cada etapa
MANUAL
DE OPERACIóN.
Contiene los procedimientos para
utilizar la
Red
CONCLUSIONES, BIBLIOGRAFÍA
y
ANEXOS.
Quiero expresar mi agradecimiento a todas las personas que me brindaron su
apoyo para la
realización de este proyecto: a mis amigos
José Garcia, Hugo
Rodriguez, Ricardo Vélez, Juan Hernández, Mario Zuñiga y Alfred0 Ayala; a los
compañeros de oficina, especialmente a Erica; y sobre todo al profesor Alejandro
Martinez por su paciencia (esperó bastante tiempo a que le entregara este trabajo).
A
las
personas que ya no se encuentran conmigo y que han sido muy importantes
en
mi
vida.
V.I.N.O.S.: compromiso cumplido.
Hugo Pineda
3
PAGINA
INTRODUCCI~N
6
1.1 MICROPROCESADORES
Y
MICROCONTROLADORES
6
1.2
REDES DE MICROCONTROLADORES
7
1.3 MICROCONTROLADOR 8031
9
OBJETIVOS
10
2.1 OBJETIVO GENERAL
10
2.2 OBJETIVOS PARTICULARES
10
DISEÑO
11
3.1 RECURSOS
11
3.1.1 SOFTWARE
11
3.1.2 HARDWARE
12
3.2 TOPOLOGÍA DE RED
13
3.3 ETAPA I. PC-KIT-MAESTRO
14
3
3 .
I
COMUNICACI~N
DEL KIT
14
3.3.2 PROGRAMA PC-KIT-MAESTRO
15
3.4 ETAPA
11. ESCLAVO
15
3.5 ETAPA 111. KIT-MAESTRO-ESCLAVO
15
3.5.1 CAPA
FÍSICA
DE LA RED
15
3.5.2 PROGRAMA DE COMUNICACIóN
16
3.6 ETAPA
IV.
PC-RED
17
DESARROLLO
18
4.1 ETAPA I. PC-KIT-MAESTRO
18
4.
l .
1
ADAPTAR KIT-MAESTRO
18
4.1.2 PROTOCOLO DE COMUNICACIóN
21
4.1.3
PROGRAMA DEL KIT-MAESTRO
24
4.1.4 PROGRAMA DE LA PC
26
28
28
30
4.2 ETAPA
11.
ESCLAVO
4.2.1 SISTEMA MÍNIMO
28
4.2.2 DISPLAY LCD
4.2.3 MAPA DE MEMORIA
4.3 ETAPA
111.
KIT-MAESTRO-ESCLAVO
30
4.3.1 IMPLEMENTACIÓN DE RS-485
30
4.3.2 MODOS DE INTERRUPCI~N SERIAL
31
4.3.3 PROTOCOLO DE COMUNICACI~N
32
4.3.4 PROGRAMA EN ESCLAVO
33
4.3.5 CONTROL DE LA RED
34
4.4 ETAPA VI. P C e R E D
36
4.4.1 PC-KIT-MAESTRO-ESCLAVO
36
MANUAL
DE
O P E R A C I ~ N
39
5.1 OPERACIóN DEL KIT-8031
39
5. l .
1
LEER MEMORIA EXTERNA
40
5.1.2 ESCRIBIR EN MEMORIA EXTERNA
41
5.1.3 LEER EN MEMORIA INTERNA
41
5.1.4 ESCRIBIR EN MEMORIA INTERNA
42
5.1.5 EJECUTAR PROGRAMAS
42
5.2
CONTROL DE LA RED CON
EL
KIT-MAESTRO
43
5.2.1 INICIO DE PROGRAMA
43
5.2.2 TEST DE COMUNICACIóN 43
5.2.3 ESCRIBIR EN ESCLAVO
44
5.2.4 LEER EN ESCLAVO
'45
5.2.5 EJECUTAR EN ESCLAVO
-
46
5.3
CONTROL DE LA RED
CON LA PC
46
5.3.1 INICIO DE PROGRAMA
46
5.3.2 CONTROL DE RED DESDE LA PC
47
CONCLUSIONES
48
"
BIBLIOGRAF~A
50
ANEXOS
52
5
El uso de las computadoras se ha extendido a todos los ámbitos de nuestra vida, no
solo en su forma de computadora personal (PC), sino en aparatos electrónicos que
realizan tareas específicas. Se encuentran por ejemplo en:
0
Hogar. Videograbadora, sistemas de sonido y horno de microondas
0
Oficina. Fotocopiadora, fax y conmutadores telefónicos
0
Comercios. Cajas registradoras, lectores de código de barras y
0
Industria. Control de procesos químicos, líneas de ensamble y
balanzas electrónicas
sistemas de adquisición de datos en
tiempo' real
1.1 MICROPROCESADORES Y MICROCONTROLADORES
El diseño
y construcción de la computadoras se basa en un circuito principal: el
CPU (Unidad Central de Proceso). El CPU es un
chip
(circuito integrado), y es el
encargado de coordinar
y procesar todos los
dispositivos que conforman a la
computadora. Existen 2 tipos de CPU que puede utilizar una computadora:
0
Microprocesador. Algunas de sus características son:
-
Sus actividades están orientadas al procesamiento de grandes
-
Requiere conectarse a otros dispositivos (memorias, interfaces,
volúmenes de datos
timers, etc.), para crear un
Sistema de Computadora
0
Microcontrolador. Algunas de sus características son:
-
Sus actividades están orientadas al
control
-
Puede contener en el mismo
chip
elementos (memorias, interfaces,
timers, etc.), que permiten utilizarlo como un
Sistema de
Para poder solucionar estos problemas, puede emplearse otra forma de operación
que consiste realizar el control por SISTEMAS SECUNDARIOS
que agrupan a un
número reducido de
dispositivos electrónicos.
En la FIGURA
1-2 se muestra un esquema de funcionamiento utilizando SISTEMAS
SECUNDARIOS.
FIGURA
1-2
El esquema mostrado en la FIGURA
1-2 tiene las siguientes características:
0
Los SISTEMAS SECUNDARIOS
son
Sistemas de Computadora
basados
0
Cada SISTEMA SECUNDARIO
se encarga de controlar solo a algunos
El Sistema Principal tiene el control de todos los
dispositivos
La conexión fisica entre el Sistema Principal y los SISTEMAS
en microcontrolador
dispositivos electrónicos
electrónicos
por medio de los Sistemas Secundarios.
SECUNDARIOS es
un cable para la comunicación
Cuando un
Sistema de Monitoreo
y Control
tiene una configuración como la
mostrada en la Figura 1-2, se trata en realidad de una
RED DE
MICROCONTROLADORES.
Una
RED DE MICROCONTROLADORES
puede implementarse con casi
cualquier tipo de microcontrolador. A continuación se muestran las características
de un microcontrolador en particular.
1.3
MICROCONTROLADOR 8031
El microcontrolador 8031 forma parte de la familia MCS-51TM diseñada,
manufacturada y registrada por Intel Corporation, aunque también es fabricado por
otras empresas como Siemens, Advanced Micro, Devices, Fujitsu y Philips.
Algunas de las características del microcontrolador 803 1 son:
0
128 bytes de RAM
0
4 puertos bidireccionalesde 8 bits
0
2 timers de
16 bits
0
Interface serial
0
Tiene capacidad de operaciones lógicas
En este proyecto se utilizará el microcontrolador 8031 porque se ha utilizado con
anterioridad en materias curriculares como “Sistemas Digitales
11”
y “Sistemas
2.1 OBJETIVO GENERAL
Diseñar e implementar una
RED DE MICROCONTROLADORES
que se
pueda controlar desde una Computadora Personal.
2.2 OBJETIVOS PARTICULARES
0
Utilizar el microcontrolador 803 1 para implementar
2 Sistemas de
Computadora.
0
Utilizar los
Sistemas de Computadora
como SISTEMAS SECUNDARIOS
en
la
RED DE MICROCONTROLADORES.
0
Seleccionar e implementar una interface eléctrica en la
RED DE
MICROCONTROLADORES
que tenga un alcance mínimo de 1 Km.
o
Programar la Computadora Personal y los Sistemas Secundarios para
poder realizar los siguientes procesos:
-
La
PC
escribe información en los Sistemas Secundarios
-
La
PC
lee información de
los
Sistemas Secundarios
-
La
PC
ejecuta programas en los Sistemas Secundarios
0
Diseñar y ejecutar un programa de demostración para comprobar el
funcionamiento de la
RED DE MICROCONTROLADORES
En este capítulo se muestra el desarrollo teórico para el diseño y construcción de la
red de microcontroladores.
3.1 RECURSOS
Los recursos con se cuenta para desarrollar el proyecto son de dos tipos:
0
Software
Hardware
3.1.1
SOFTWARE
El software que se utilizará esta conformado por en compiladores, programas y
simuladores.
3.1.1.1 COMPILADOR 8031
El compilador utilizado para programar el microcontrolador 8031 es el ‘8051
CROSS-ASSEMBLER (XASM5 1)
--
Version 1.1
O M’.
3.1.1.2 SIMULADOR 8031
Para probar los programas elaborados para el micocontrolador 803 1, se utilizará el
simulador desarrollado por alumnos de la
UAM-Azcapotzalco: ‘SIMULADOR
DEL MICROCONTROLADOR 805 1,1986’.
3.1.1.3 LENGUAJE C
Se utilizará el lenguaje ‘C’ para programar la PC debido a que:
0
Se encuentra en medio de la escala de nivel de los lenguajes de
programación, por lo
que permite programar tanto en forma
estructurada como en operaciones a bajo nivel tal como lo haría
el lenguaje ‘ENSAMBLADOR’.
Existe una gran contidad de bibliografía relacionada a las
comunicaciones de la PC que utilizan lenguaje ‘C’.
Se cuenta con librerías hechas anteriormente que se pueden
utilizar para desarrollar los programas.
El compilador que se utilizará es el ‘Turbo C++ V 1 .O1
’
de Borland.
3.1.1.4 GRABADOR DE MEMORIAS EPROM
Para grabar las memorias EPROM utilizadas en los sistemas del
KIT-MAESTRO
y los
ESCLAVOS,
se utilizará el programa ‘EMP Ver. 1.85, Needham’s
Electrónics’, que cuenta con una tarjeta electrónica grabar las memorias.
3.1.2
HARDWARE
Los recursos del hardware incluyen sistemas electrónicos desarrollados
anteriormente y la tecnología para implementar los nuevos sistemas.
3.1.2.1 KIT-8031
Se cuenta con un
sistema electrónico basado en el microcontrolador 8031 de
INTEL (al cual se denominará
KIT-8031),
que servirá de base para la
implementación.
El
KIT-8031
fue construido durante la materia curricular de ‘Sistemas Digitales
11’. Las características de este sistema electrónico son:
0
Basado en el microcontrolador 803
1 de INTEL
4 Kb de memoria ROM
0
2 Kb de memoria RAM
24 teclas y
8
displays del tipo
‘7 segmentos’ manejadas por el
Reloj de 5 Mhz
Programa base
(Monitor)
que permite:
controlador 8279 de INTEL
-
Leer y escribir en memoria externa
-
Leer y escribir en memoria interna
-
Ejecutar programas
El diagrama del
KIT-8031
se presenta en los
ANEXOS en el diagrama
MST-8031.SCH
así como el listado del programa
Monitor
en el listado
MONITOR4.ASM.
3.1.2.2
IMPLEMENTACI~N
Los prototipos se implementarán en 'WIRE WRAP', ya que
permite realizar
conexiones para añadir o quitar elementos de manera sencilla. Con esta técnica se
,puede trabajar con frecuencias del orden de Megahertz.
El
KIT-8031
está implementado con esta técnica.
3.2 TOPOLOGIA DE RED
La topología de red que se utilizará en el
Proyecto
será del tipo
Bus cornzin.
Este
tipo de topología utiliza:
Sistema Principal
(MAESTRO).
Se encarga de controlar el flujo
de información en toda la Red.
0
Sistemas Secundarios
(ESCLAVOS).
Contiene un
número
determinado de ESCLAVOS que se identifican con un número
de
dirección.
La topología mas empleada para una Red con topología
Bus comzin
se muestra en
la FIGURA
3-
l .
PC-MAESTRO
Esclavo 1
Esclavo 2
Esclavo n
FIGURA
3- 1
En la FIGURA
3-1 el encargado de controlar el flujo de información a traves de la
red es la PC, por
lo
que se requiere que
siempre
haya una PC que realice este
PC
KIT-MAESTRO
Esclavo I
Esclavo 2
Esclavo
n
FIGURA
3-2
En la topología de
la FIGURA
3-2 el responsable de controlar el flujo de
información a traves de la Red es el
KIT-MAESTRO,
que es un sistema basado
en el microcontrolador 803
l .
Este
KIT-MAESTRO
además de controlar la red se
puede conectar a una PC y entonces se comporta como una interface para que el
control de la red la tenga la PC.
Con esta configuración no se requiere de una PC de manera permanente en la red,
y solo se utilizaría para cargar o descargar información de la Red. Por esta razón se
utilizará para desarrollar el
Proyecto
la topología de la FIGURA
3-2.
Al conjunto de los
ESCLAVOS
se le llamará
Red.
3.3 ETAPA I. PC-KIT-MAESTRO
La primera etapa del desarrollo del proyecto será establecer el programa de
comunicación entre PC y
KIT-MAESTRO.
3.3.1
COMUNICACI~N
DEL KIT
Para establecer la comunicación PC-KIT-MAESTRO
se toman las siguientes
consideraciones:
El puerto de comunicación serial del 8031 se usará para
comunicar el
KIT-MAESTRO
con los
ESCLAVOS.
Para comunicar al
KIT-MAESTRO
con la PC se implementará
en
el
KIT-MAESTRO
un
UATR
8250
(Universal
Asynchronous Receiver-Transmitter).
Se implementarán en el
KIT-MAESTRO
los elementos
3.3.2 PROGRAMA PCHKIT-MAESTRO
El programa que se desarrolle en la
PC debe permitir realizar las siguientes
acciones:
o
Escribir en el
KIT-MAESTRO
0
Leer del
KIT-MAESTRO
0
Ejecutar en el
KIT-MAESTRO
El programa en la PC estará orientado principalmente al manejo del UART 8250
que se encuentra en
la PC y que se utiliza como puerto serial.
El programa en el
KIT-MAESTRO
utilizará interrupciones
para permitir la
ejecución de otros programas sin que tenga que estar dedicado
al poleo de
recepción de datos por el UART 8250.
Se establecerá un protocolo de comunicación con tramas
que permitan la detección
y corrección errores.
3.4 ETAPA 11. ESCLAVO
Para el funcionamiento
del
Proyecto
se requiere diseñar e implementar
por lo
menos un
ESCLAVO
La características que tendrá
el
ESCLAVO
son:
0
4 Kb. de memoria ROM
0
4
Kb. de memoria
RAM
0
Display para poder desplegar información
Se utilizará un display de cristal líquido (HD44780).
3.5 ETAPA 111. KIT-MAESTR0f)ESCLAVO
Una vez terminadas las etapas I y
11, habrá que lograr establecer la comunicación
entre el
KIT-MAESTRO
y el
ESCLAVO
en una forma que pueda seleccionarse
un
solo
ESCLAVO
en la
red
y que no interfiera con las tareas de los otros
ESCLAVOS.
3.5.1
CAPA FÍSICA DE LA RED
Tanto en el
KIT-MAESTRO
como en los
ESCLAVOS
se agregará una interface
serial que permitirá la comunicación por lo menos a
1 Km de distancia. Esta
característica la cumple la interface RS-485.
15
Para usar esta interface se utilizará el tranceiver '75176' cuyo esquema se muestra
en la
FIGURA
3-3.
Rx
Control
I
Tx
-
Par trensado a la red
I
FIGURA
3-3
Este tranceiver trabaja con voltajes
TTL (0-5 volts), tanto en alimentación como
en
entradas Rx, Tx y Control.
El funcionamiento del tranceiver
75 176 es:
0
Cuando
Control=O,
el 75 176 está preparado para recibir datos.
0
Cuando
Control=l,
el
75
176 está preparado para transmitir datos.
En una red implementada con 75 176 solo un dispositivo a la
vez puede tener
activado el
Control,
de lo contrario provocaría colisiones en la
red.
3.5.2
PROGRAMA DE COMUNICACIóN
El programa que controle la comunicación entre
el
KIT-MAESTRO
y los
ESCLAVOS
debe ser capaz de:
seleccionado.
0
Escribir programas (o información), en el
ESCLAVO
Leer información del
ESCLAVO
seleccionado.
Ejecutar programas en el
ESCLAVO
seleccionado.
Además cuando se establezca la comunicación entre
el
KIT-MAESTRO
y un
ESCLAVO
específico, los demás
ESCLAVOS
deben permanecer ajenos a este
3.6 ETAPA IV. P C H R E D
La última etapa consiste en desarrollar un programa que será el que permita a la
PC controlar la
Red
por medio del
KIT-MAESTRO.
Este programa deberá ser
capaz de:
0
Escribir en el
KIT-MAESTRO
0
Leer del
KIT-MAESTRO
0
Ejecutar en
KIT-MAESTRO
0
Escribir en
ESCLAVO
seleccionado
0
Leer en
ESCLAVO
seleccionado
o
Ejecutar en
ESCLAVO
seleccionado
Para el usuario de este programa el
KIT-MAESTRO
funciona como una interface
transparente como se muestra en la
FIGURA
3-4.
PC
KIT-MAESTRO
Esclavo 1
Esclavo 2
Esclavo n
En este capítulo se describen las acciones realizadas en cada etapa del desarrollo
del proyecto y que se definieron en el capítulo 3. También se muestra en cada
etapa los fundamentos teóricos y la forma en que
se implementaron
los
dispositivos.
4.1 ETAPA I. PCHKIT-MAESTRO
La primera etapa del proyecto fue establecer la comunicación entre la PC y el
Las características que debe cumplir este programa son:
KIT-MAESTRO.
El programa del
KIT-MAESTRO
recibe datos seriales por
El programa de la PC recibe datos seriales por medio de poleo
Se puede escoger el puerto serial a utilizar (Coml
o Com2)
La interface entre PC y
KIT-MAESTRO
será RS-232
Velocidad de transmisión 2400 bauds; 8 bits de datos,
1 bit de
medio de interrupciones
(revisa el buffer hasta que se reciba dato)
parada
y
sin paridad
4.1.1 ADAPTAR KIT-MAESTRO
Debido a que el puerto serial del 803 1 se utilizará para comunicarse con la
Red,
se
añadirá un dispositivo dentro del mapa de memoria del
KIT-MAESTRO
que
realice la comunicación con la PC.
El diagrama de
la
implementación en el
KIT-MAESTRO
se muestra en los
4.1.1.1
El UART
8250
El dispositivo que se utilizó
para establecer la comunicación
PC-KIT-
MAESTRO fue el UART 8250.
El funcionamiento del UART 8250 se muestra en el esquema de la FIGURA
4-1.
SISTEMA
~~ ~
n
Microprocesador
FIGURA
4-1
Para transmitir datos, el UART 8250
convierte los datos paralelos
del
Bus de
Datos
dentro del
Sistema,
a datos seriales.
De manera similar para recibir datos,
convierte los datos que
llegan por recepción serial a datos paralelos dentro
del
Sistema.
El UART 8250 es programable y tiene
10 registros internos que se utiíizan para
establecer el protocolo de comunicaciones.
En la
TABLA
4-1 se indican estos
registros y las direcciones correspondientes. El
DLAB
(Divisor Latch Access Bit),
corresponde al bit No.
7
del registro
Data Format
y se utiliza para accesar a los
registros que configuran la velocidad de transmisión.
Readí
DLAB
A2
A l
A0
Write
Registro
O
O
O
0
-
Receiver (read), Transmitter (write)
O
O
O
1
RNV
lnterrup Enable
X
O
1
O
READ
lnterrup Identification
X
O
1
1
RNV
Data Format (Line Control)
X
1
O
O
RNV
RS-232 Output (Modem Control)
X
1
O
1
RNV
Serialization Status (Line Status)
X
1
1
O
RNV
RS-232 Input Status (Modem Status)
X
1
1
1
RNV
Scratch Pad
1
O
O
O
RNV
LSB Baud Rate Divisor Latch
1
O
O
1
RNV
MSB Baud Rate Divisor Latch
TABLA
4-1
El UART 8250 cuenta con la señal INTRPT (pin
#
30), que permite generar
interrupciones hacia el microcontrolador 8031 por medio de
la interrupción
O
(INTRO, pin
#
12).
4. l . l.
2 INTERFACE RS-232
La implementación de la interface RS-232 en el
KIT-MAESTRO
se realizó en 2
partes:
0
Característica Física. Se adaptó un conector DB-25 Macho y se
construyó un cable de comunicación serial de acuerdo al
diagrama
RS-232COMSCH
de los ANEXOS.
0
Característica Eléctrica. Para acoplar eléctricamente los voltajes
utilizados en el RS-232 con los voltajes TTL, se utilizaron los
circuitos 1488 (para Transmisión) y 1489 (para Recepción).
4.1.1.3 MAPA DE MEMORIA
El
KIT-MAESTRO
consta de páginas de memoria de
2 Kb. El mapeo de
memoria
se
muestra en la Figura 4-2.
O000
07FF
0800
OFFF
1 O00
17FF
EPROM
EPROM
RAM
1800
1
FFF
UART 8250
2000-3FFF
No
asignado
3800
3FFF
8279
4000-FFFF
No
asignado
4.1.2
PROTOCOLO DE COMUNICACI~N
Para tener una comunicación confiable se diseñaron cuatro tipos de tramas:
l . Trama de prueba
2. Trama de escritura en
KIT-MAESTRO
3. Trama de lectura en
KIT-MAESTRO
4. Trama de ejecución en
KIT-MAESTRO
En el diseño de las tramas se utilizaron algunos caracteres que son estándares en
comunicación serial. Los caracteres que se utilizaron se muestran en la TABLA
4-2.
Valor
Símbolo Nombre
Hex
Descripción
r
SOH
I
STX
02
Inicio de bloque de
datos
t
EOT
m
ENQ
05
Interrogación, ¿Estás ahí?
/
VL
c
CHK
Suma de
los
bytes después de
I
O 1
Inicio de trama
04
Fin de transmisión
ACK
06
Recepción correcta
NAK
15
Detección de error
ADH
Parte alta de la dirección
ADL
Parte baja de la dirección
LOT Longitud de
la trama
NUB
Número de bytes a leer
TABLA
4-2
4.
l.
2.1 TRAMA
DE PRUEBA
La trama de prueba se diseñó para comprobar de una manera rápida
y
efectiva que
todos los componentes involucrados en la comunicación funcionen correctamente.
Esta trama se muestra en la FIGURA
4-3.
KIT-MAESTRO
L
FIGURA
4-3
La descripción de la trama de prueba es:
1. La PC envía el caracter
El
(05 Hex), que indica un comando de
prueba.
2. Si la PC recibe el caracter r/
(06 Hex), significa que la prueba
fue correcta. En otro caso la prueba fue incorrecta (puede recibir
otro caracter o no recibir ningún dato).
Nota:
En los encabezados de
las
tramas se mandará siempre el comando que indica el
tipo
de
trama. Este encabezado inicia con el caracter
r
y
temina con
el caracter
t
.
4.1.2.2
TRAMA
DE
ESCRITURA
La trama de escritura se diseñó para poder escribir en el
KIT-MAESTRO.
La
trama cuenta con un Check-Sum
(X),
para poder detectar cuando existan errores en
la comunicación y solicitar retransmisión. Esta trama se muestra en la FIGURA
4-4.
KIT-MAESTRO
FIGURA
4-4
La descripción de la trama de escritura es:
l . La PC envía el caracter 'O'
(30 Hex), que indica un comando de
escritura.
2. Si la PC recibe el caracter r/
(06 Hex) continúa al punto
3. En
otro caso termina la comunicación.
3. Si quedan datos por transmitir envía ADH, ADL, LOT, DATOS
y
'X'
(X
=
ADH+ADL+LOT+DATOS). Si ya no hay datos por
transmitir envía
k
indicando fin de transmisión.
4. Si la PC recibe el caracter
r/
(06 Hex), continúa transmitiendo
mas datos (punto
3 ) .
Si la
PC recibe el caracter
rf
(1
5 Hex),
envía nuevamente los mismos datos (punto 3).
4.1.2.3 TRAMA DE LECTURA
La trama de lectura se diseñó para poder leer del
KIT-MAESTRO.
La trama
cuenta con un
Check-Sum
(E),
para poder detectar cuando existan errores en
la
comunicación y solicitar retransmisión. Esta trama se muestra en la FIGURA
4-5
.
V
IV
I11
I1
m
I
KIT-MAESTRO
FIGURA
4-5
La descripción de la trama de lectura es:
1.
2.
3.
4.
5.
6.
7.
La PC envía el caracter
‘
1
’
(3
1 Hex), que indica un comando de
lectura.
Si la PC recibe el caracter
r/
(06 Hex) continúa al punto
3. En
otro caso termina la comunicación.
La PC envía ADH, ADL, NUB y
‘E’ (E
=
ADH+ADL+NUB).
Si la PC recibe
r/
(06 Hex), envía
(04 Hex), indicando que se
encuentra lista para recibir datos (punto
5).
Si la PC recibe
rf
(1
5 Hex), envía nuevamente los mismos datos (punto
3 ) .
Si la
PC recibe
‘1’
(02Hex), significa que recibirá trama de
datos (paso 6). Si recibe
‘N’
(04 Hex), termina la comunicación.
La PC recibe ADH, ADL, LOT, DATOS
y
‘E‘ (E
=
ADH+ADL+LOT+DATOS).
Si los datos recibidos son correctos envía r/
y regresa al punto
5. En otro caso envía
If
y regresa al punto 5.
4.1.2.4 TRAMA
DE
E J E C U C I ~ N
La trama de ejecución se diseñó para poder correr en el
KIT-MAESTRO
algún
programa con
solo indicar la dirección de inicio. La trama cuenta con un Check-
Sum
(E),
para poder detectar cuando existan errores en la comunicación y solicitar
retransmisión. Esta trama se muestra en la FIGURA
4-6.
111
I1
I
KIT-MAESTRO
FIGURA
4-6
La descripción de la trama de
ejecución es:
l . La PC envía el caracter ‘2’ (32 Hex), que indica un comando de
ejecución.
2. Si la PC recibe el dato r/
(06 Hex) continúa al punto
3. En otro
caso termina la comunicación (puede recibir otro dato
o no
recibir ninguno).
3. La PC envía ADH, ADL y
‘E‘ (E
=
ADH.tADL).
4.
Si
la PC
recibe el dato
V
‘
(06 Hex), envía
‘1,
(04 Hex),
terminando comunicación. Si la PC recibe
If
(1
5
Hex), envía
nuevamente los mismos datos (punto 3).
4.1.3 PROGRAMA DEL KIT-MAESTRO
El programa de comunicación del
KIT-MAESTRO
se diseñó pensando en que
funcionara con interrupciones provocadas por el UART 8250 por medio de INTO.
Esto es, que
el programa se comporta como un autómata que dependiendo el
estado en que se encuentre, realiza las acciones correspondientes cuando ocurre
una interrupción.
El listado del programa de comunicación del
KIT-MAESTRO
se encuentra en los
ANEXOS en el listado
PC
-
KITO4.ASM
En el PSEUDOC~DIGO
4-1 se explica el funcionamiento del programa.
24
variables
estado
I*
guarda el estado en que se
encuentra el automata
*I
dato
I*
guarda el dato recibido
*I
instr
I*
guarda la instruccion
'I
Tx(
)
I*
funcion que transmite el dato indicado por el argumento
*I
inicio
inicializa-8250(
)
habilita-int(
)
estado=O
espera()
I*
inicio de programa de comunicación
*I
I*
llama a procedimiento para inicializar 8250
*I
/*llama a procedimiento para habilitar interrupcion
*I
I*
inicializa el automata en estado0
*I
I*
en este punto se esperara siempre. Cuando suceda una
*I
I*
interrupcion se atendera por medio del automata
*I
""""""""""""""
I*
inicio de automata, este procedimiento atendera las interrupciones*/---.
¡ni-automata
Salta-a-Edo(
)
I'
salta al procedimiento adecuado dependiento el estado
Estado00
I*
estado inicial del automata
Estado01
Estado02
si(dato=01 H) entonces estado=01
I*
si es inicio de trama
instr=dato; estado=02
i*
guarda instruccion
si(dato#04H) entonces estado=00; ret
I*
si no es fin de trama
si(instr=05H) entonces Tx(O6H); estado=00; ret
/*termina trama de prueba
si(instr=30H) entonces Tx(O6H); estado=03; ret
I*
continua trama de escritura
si(instr=32 H) entonces Tx(O6H); estado=09; ret
I*
continua trama de lectura
si(instr=32H) entonces Tx(O6H); estado=16; ret
I*
continua trama de ejecucion
Tx(l5H); estado=00
I*
no corresponde ningun cornando
, """"
*I
*I
*I
*I
*I
*I
*I
*I
*I
*I
"""""""""""""""""""
I*
il?icio del ciclo de recepcion de trama de escritura*l---
Estado03
si(dato#02H) entonces estado=00
I*
si
no
es STX
termina comunicacion*l
otro estado=04
ADH=dato; estado=05
I*
recibe ADH
*I
ADL=dato; estado=06
I'
recibe ADL
*I
LOT=dato; estado=07
I*
recibe LOT
*I
mientras(dat0.s-recibidos<LOT)
I*
recibe los datos
*I
escribe-en-memoria(
)
/*escribe los datos en RAM
*I
estado=08
I*
se terminaron de recibir los datos
*I
si (CHK#dato) entonces Tx(l5H);
estado=03;ret
I*
transmite NAK y repiten trama
*I
Tx(O6H); estado=03
I*
transmite ACK y recibe otra trama
*I
Estado04
Estado05
Estado06
Estado07
Estado08
---____---
-
---__---
/*
inicio del ciclo de reception de trama de lectura*/
________________________________________---
Estado09
si (dato=OZH) entonces estado=l O; ret
I*
se prepara a recibir ADH, ADL y NUMB
si (dato=04H) entonces estado=14; ret
I*
se prepara a transmitir datos de RAM
ADH=dato; estado=ll
I*
recibe ADH
ADL=dato; estado=12
I*
recibe ADL
NUB=dato; estado=13
I*
recibe NUB
si
(CHK+dato) entonces Tx(l5H); estado=09;ret
I*
transmite NAK y repiten trama
Tx(O6H); estado=14
I*
transmite ACK
Estado10
Estadol 1
Estadol 2
Estadol 3
*I
*I
*I
*I
*I
25
Estado14
si(dato+04H) entonces estado=00; ret
I*
si
no
es EOT termina comunicacion*/
Etiql
si(datos-transmitidos=>NUB)
I*
si ya se
transmitieron todos los datos
*I
Transmite-trama(
)
/*calcula
los
parametros y transmite la trama
*I
estado=l5
I*
se termino de transmitir la trama
*/
si
(dato=OGH) entonces estado=14;
goto Etiql
I*
transmite siguiente trama
*I
si (dato=15H)
entonces trama_anterior();estado=14;
goto Etiql
I*
retransmite trama anterior
*I
entonces Tx(04H);estado=00; ret
Estado15
""""""""""""""""-
/*
inicio del ciclo de reception de trama de ejecucuion*/
________________________________________---
Estadol 6
si
(dato=OZH) entonces estado=l7;
ret
I*
se prepara a recibir ADH y ADL
*I
otro estado=00; ret
I*
si
no
recibe STX regresa a Estado00
*I
ADH=dato; estado=l8
I"
recibe ADH
*I
ADL=dato; estado=12
I"
recibe ADL
*I
Estado17
Estadol 8
Estadol 9
si (CHK#dato) entonces Tx(l5H);
estado=16;ret
I*
transmite NAK y repiten trama
*I
Tx(O6H); estado=20
I*
transmite ACK de
trama recibida correcta 'I
si (dato#O4) entonces estado=OO;ret
Estado20
Ejecuta-programa(
)
estado=O
I*
procedimiento para ejecutar programa
*/
PSEUDOC~DIGO
4-1
4.1.4
PROGRAMA DE LA PC
El programa de comunicación en la PC recibe datos del puerto serial por medio de
poleo. Esto significa que cuando espera recibir un dato revisa si el bit
RxRDY
se
encuantra en
'
1'
(RxRDY=Line
Status.
O
del
8250),
esto significa que ya se recibió
un dato.
El programa utiliza librerías
para comunicación y para el desplegado de mensajes.
variables
buffer[
]
I*
guarda
los
datos (a transmitir o recibidos)
*I
I*
funcion que transmite el dato indicado por el argumento *I
I*
función que recibe el dato del puerto serial
'I
________________________________________----
/*
inicio de programa de comunicación*/
________________________________________---
inicio
escoge-puerto(
)
I*
selecciona coml
o
com2
'I
inicializa-8250(puerto)
/*procedimiento para inicializar el puerto selccionado
*I
escoge-opcion(
)
/*Selecciona opción de:
1
.-
Prueba de comunicación
2.- Escribir en KIT
3.- Leer en KIT
4.- Ejecutar en KIT
Q.- Salir
*I
si
(opcion=l)
entonces
Test-Kit(
);
ret
I'
llama procedimiento de prueba
*I
si
(opcion=2)
entonces
Ld-Kit(
);
ret
I*
llama procedimiento de cargar en KIT
' I
si
(opcion=l)
entonces
Rd-Kit(
);
ret
I*
llama procedimiento de lectura del KIT
*I
si
(opcion=l)
entonces
Run-Kit(
);
ret
I*
llama procedimiento de ejecucion en el KIT
*I
si
(opcion=l)
entonces
exit(
)
I*
salida del programa
*I
fin
--.---I*
inicio de procedimiento de carga
*I
________________________________________---
Ld-Kit
Pide-parametros(
);
I*
captura nombre de archivo y direccion a escribir
*I
Lee-archivo(
)
Tx(O1 H); Tx(30H); Tx(04H);
/*
lee el archivo a cargar y llena
los
datos en buffer[
J
*I
I*
transmite inicio de trama de escritura
*I
dato=Rx(
);
si
(datozO6H)
entonces
Ld-mal(
);
I'
regresa bandera de error de escritura en KIT
' I
mientras(datosTx=O)
Tx(02H);
I*
I*
mientras haya datos para transmitir
inicia bloque de datos
*I
*I
Tx(ADH);Tx(ADL);Tx(LOT);
I*
transmite ADH, ADL y LOT
for(i=O;i<LOT;i++) Tx(Dato);
Tx(CHK);
I*
transmite datos
*I
/*transmite CheckSum
*I
dato=Rx(
);
si
(dato#OGH)
entonces
nueva-trama(
);
I*
calcula parametros para transmitir nueva trama
*I
otro
repite-trama(
);
I*
establece parametros para repetir trama
*I
/'transmite fin de transmision
*I
Tx(04H);
si
(datozOGH)
entonces
Rd-mal(
);
I*
regresa bandera de error de lectura en KIT
dato=O;
mientras(datwO6H)
I*
mientras se reciba dato incorrecto repite trama
' I
*I
*I
*I
Tx(04H);
I*
transmite fin de trama. Y esta preparado a leer
datos
*I
Tx(02H);
I*
inicia bloque de datos
Tx(ADH);Tx(ADL);Tx(NUB);
I*
transmite ADH, ADL y NUB
Tx(CHK);
/*transmite CheckSum
dato=Rx(
);
mientras(siempre)
dato=Rx(
);
si
(dato=04H)
entonces beak;
si
(datoO2H)
entonces
Rd-mal(
)
Rx(ADH);Rx(ADL);Rx(LOT);
for(i=O;i<LOT;i++) dato=Rx(
);
dato=Rx(
);
si
(dato#CHK)
entonces
Tx(l5H);
otro Tx(O6H);
desplega-datos(
);
I*
ciclo eterno
I*
recibe inicio
I*
si fin de transmision entonces rompe ciclo eterno
I*
si
no es inicio de trama de datos regresa error
I*
recive ADH, ADL y LOT
I*
recibe datos
I*
recibe Checksum
I*
si la trama se recibio mal, transmite NAK
I*
si la trama se recibio bien, transmite ACK
I*
procedimiento que desplega datos leidos
*I
*I
*I
*I
*I
*I
*I
*I
*I
...
I*
inicio de procedimiento de ejecucion
*I
________________________________________---
Run-Kit
Lee-parametros(
)
I*
captura direccion de memoria a ejecutar
*I
Tx(O1 H); Tx(32H); Tx(04H);
I*
transmite inicio de trama de lectura
*I
dato=Rx(
);
si
(dato+OGH)
entonces
Run-mal(
);
I*
regresa bandera de error de ejecucion en KIT
*I
dato=O;
mientras(datwO6H)
I*
mientras se reciba dato incorrecto repite trama
*I
Tx(02H);
I*
inicia bloque de datos
*I
Tx(ADH);Tx(ADL);
I*
transmite ADH y ADL
Tx(CHK);
/*transmite Checksum
*I
dato=&(
);
Tx(04H);
I'
transmite fin de trama. Y el KIT ejecuta programa
*I
SEUDOC~DIGO
4-2
4.2 ETAPA 11. ESCLAVO
En la Etapa
I1 del proyecto se diseñó e implementó un sistema mínimo para
utilizarse como
ESCLAVO
en la
Red.
Este sistema mínimo debe tener
características específicas para poderse adaptar a la
Red.
4.2.1 SISTEMA MÍNIMO
Las características de este sistema son:
0
4 Kb de memoria ROM
4 Kb de memoria
RAM
Reloj de 4 Mhz
Display LCD de 2 renglones por
16
caracteres
El diagrama del
ESCLAVO
se muestra en
los ANEXOS el diagrama
DISPl-51
.SCH.
4.2.2 DISPLAYLCD
El Display que se conectó al sistema esta basado en el
controlador 44780 de
Hitachi. En la
TABLA
4-3
se indican las características funcionales de los
'pines'
del Display. El 44780 contiene ROM, RAM y ejecuta 11 instrucciones.
28
Pin Símbolo
Función
~1
2
3
4
5
6
7
8
9
10
11
12
13
14
v s s
Vdd
v o
RS
WW
E
DO
D l
D2
D3
D4
D5
D6
D7
Tierra
+5
Volts
Ajuste de contraste (O a
-5
Volts)
Selección de registro (O= registro
de instrucción. 1= registro de
datos)
Selección
lecturdescritura
(O=escritura, l=lectura)
Habilita R/W
I/O
de
dato.
Bit
menos
significativo
I/O
de dato. 20. bit
I/O de dato. 3er. bit
I/O
de dato.
40.
bit
I/O de dato.
50.
bit
I/O
de dato. 60. bit
I/O
de dato. 70. bit
I/O de dato. 80. bit. Bit más
significativo
TABLA
4-3
Se utilizó el
puerto
I
del 803 1 para conectarse a los datos del 44780, además se
utilizaron los
‘pines
’
INTI,
TO y TI, también del 803 l . En la
FIGURA
4-7 se
muestra el esquema de
conección del Display.
Microcontrolador
b
8031
DISPLAY
LCD
~
Puerto
1
-
~~
FIGURA
4-7
Memoria
datos
29
4.2.3 MAPA DE MEMORIA
El mapeo de memoria del
ESCLAVO
se muestra en la
FIGURA
4-8.
O000
17FF
2000
3FFF
EPROM
RAM
FIGURA
4-8
4.3 ETAPA
111.
KIT-MAESTROHESCLAVO
En la tercera etapa
del proyecto se establecio la comunicación entre
el
KIT-
MAESTRO
y el
ESCLAVO.
Las características del programa de comunicación son:
0
El programa del
ESCLAVO
recibe datos seriales por medio de
El programa del
KIT-MAESTRO
recibe datos seriales
por
0
El programa debe ser capaz de establecer la comunicación solo
La interface entre
KIT-MAESTRO
y el
ESCLAVO
es RS-485
0
Velocidad de transmisión
1200 bauds.
interrupciones
medio de poleo (revisa el buffer hasta que se reciba dato)
con el
ESCLAVO
seleccionado.
4.3.1 IMPLEMENTACIÓN DE RS-485
Se conectó en el
KIT-MAESTRO
y en el
ESCLAVO
el tranceiver 75 176 y se
utilizó para realizar el control de transmisión:
TO (pin
#
14) en el
KIT-MAESTRO
0
INTO (pin
#
12) en el
ESCLAVO
Se utilizó en la
Red
el cable tipo
par trenzado blindado
con conectores RJ-11.
Las conexiones de la
interface RS-485 se muestran
en los ANEXOS en
los
diagramas 485-8031
.SCH
y
485SLA
VE.SCH.
30
4.3.2
MODOS DE
INTERRUPCIóN
SERIAL
La forma de operación del puerto serial del microcontrolador 8031 se define al
escribir en el registro SCON (serial port control), cuya dirección es 98H. En la
TABLA
4-4 se describen los Bits del registro SCON.
Bit
Símbolo
Descripción
Bit O del modo serial (ver TABLA
4-5)
SCON.7
SMO
SCON.6
SMl
SCON.5
SM2
SCON.4
REN
SCON.3
TB8
SCON.2
RB8
SCQN.l
TI
SCON.0
RI
Bit 1 del modo serial (ver TABLA
4-5)
Bit 2 del modo serial. Habilita comunicación
entre microcontroladores en modos 2 y
3;
RI
no se activa si el 90. dato recibido
es O
Habilita recepción
Bit 8 de transmisión. En este bit se escribe por
software el 90. bit que se transmite en
modos 2 y3
Bit 8 de recepción. En este bit se gauda el 90.
dato recibido
Bandera de interrupcihn por transmisión.
Cambia a -1
'
cuando se transmite el
último dato; se borra por software
Bandera de interrupción por recepción.
Cambia a
'
1
'
cuando se recibe el último
dato; se borra por software
TABLA
4-4
El microcontrolador 803 1 tiene
4
modos de operación de comunicación serial. La
TABLA
4-5 muestra los modos de operación.
SMO SM1 MODO Descripción
Baud Rate
O
O
O
Registro de
Fijo (frecuencia del
O
1
1
S-bit UART
Variable (programando el
1
O
2
9-bit UART
Fijo (frecuencia del
1 1
3
9-bit UART
Variable (programando el
corrimiento
oscilador
-+
12)
Timer)
oscilador
+
12 o
+
64)
Timer)
~ ~~Los modos 2
y 3 permiten establecer una red
de microcontroladores. En estos
modos cuando se recibe
el 90. bit este se guarda
en RB8. El puerto del
microcontrolador 8031 puede ser programado para que se active una interrupción
solo si RB8=1. Esto se logra poniendo SM2=1.
Para el control de la
Red
el maestro utiliza dos tipos de transmisiones:
Transmisión de
direcciones
(9o.bit=l)
0
Transmisión de
datos
(9o.bit=O).
La forma en que se logra establecer la comunicación en la
Red
es la siguiente:
1. El maestro transmite la
dirección
del
ESCLAVO
con el que se
2. Todos los
ESCLAVOS
se interrumpen y leen el dato
3. El
ESCLAVO
que corresponde a la dirección transmitida
cambia la programación del puerto(SM2=0),
para que se
interrumpa cuando se reciban datos sin importar el dato en el
9o.bit
4. La comunicación entre el
KIT-MAESTRO
y
ESCLAVO
se
realiza con
el 9o.bit=O para evitar interrumpir
a
los otros
ESCLAVOS
5.
Al terminar la comunicación,
el
ESCLAVO
regresa a la
programación incial del puerto (SM2=1)
establecerá comunicación
4.3.3 PROTOCOLO DE COMUNICACI~N
Para tener una comunicación confiable se diseñaron cuatro tipos
de tramas:
Trama de prueba
0