Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
C.B.I.
MEXICO D.F.
1994.
UAM
TESINA
ASESOR:
PROF.: ING. DONACIANO J M . E2 I EN .
INDICE
INTRODUCCION .................................................................................................................... DESCRIPCION GENERAL DEI. SISTEMA ................................................................................. COMUNICACION SERIAL SERIAL VS . PARALELO .......................................................................................... PROTOCOLO SERIAL ASINCRONO ........................................................................... EL UART .................................................................................................................................. INTERFASE FISICA .................................................................................................................. LLAMADAS SERIALES A L BIOS DE ENTMDA/SALIDA ................................................. PROGARMANDO EL 8250 ................................................................................................... INICIALIZANDO EL 8250 ................................................................................................... COMUNICANDONOSCON EL 8250 ................................................................................... COMO FUNCIONA CADA MODULO ................................................................................ UTILIZANDO EL MICROCONTROLADOR I'IClGC5X DESCRIPCION GENERALDEL FUNCIONAMIENTO DEL SISTEMA ........................ CARACTERISTICAS GENERALES DEL MICROCONTROLADOR ......................................... LA FAMILIA PIClGC5X ......................................................................................................... ARQUITECTURA .....................................................................................................................
1 2
5 7 11 17 20 21 23 29 32
37 38 40 41
-PROGRAMA CONTENIDO DENTRO DE I A EPROM DEL PIClGC57 -PROGRAMA QUE MllESTM LAS INSTRUCCIONES NECESARIASPARA
PC
-BIBLIOGRAFIA
INTRODUCCION
De hecho,
PC
hay
que emplear
especializadas de entradalsalida cuyo precio es bastanze Adems, suele 5er necesario instalarlas dentro de la propia
PC,con
podrian ser empleadosen o t r a s aplicaciones. Durante el desarrollo de este trabajo se describir un sistema de control de entradahalida modular de bajo costo y que se puede conectar a cualquier ordenador personal
a travsdeunpuerto
y recibir informacin de
informacin referente a diversos puntos remotos del ordenador tomar decisiones para poder controlar un complejo entorno con potente herramienta que es la
la
PC.
DESCRIPCION GENERAL
El sistemaestacompuestoporunordenadorpersonal
en la siguiente figura:
MODULO 2
y una
PTO. SERIE
-L
O
IEM
I \ / ,
MODULO 1
MODULO 3
---a
MODULO "N"
FIGURA 1;
AI sistema anterior se
modular adquisici6n datos de de con
lo cual, s e quiere d a r a
unordenador.
entender a una coleccin de m6dulos "no autbnornos" de adquisicibn de datos "interconectados" con
AI indicar que
105
rn6dulos no son aut6nornos, nos referimos a que es un sistema en el cual existe clara una relaci6n maestrolesclavo; decir, es ordenador puede forzosamente
cualquiera de s t e lo desee.
105
el
o controlar
a
arrancar, parar
en e momento que l
Los
8250
de Transmisi6n
Recepcin Asincrona Universal atender el ordenador; enel cada uno de estos verifica asignada de manera
(UART).
El campo de direccin
a quemodulo
los mdulos,
y el modulo
correspondiente tiene datos que enviar al ordenador para s u f u t u r o procesamiento, enviar este ordenador, para quepormedio procesar informacin tal respuesta, dependiendo de direccin pafiicular asignada dentro registrotransmisin, del de respuesta alguna el dato almacenado dentro un de el
de software, este s e encargue de
que t r a n s m i t i r
el ordenador no recibir
nueva t r a m a con el campo de direcci6n correspondiente al siguiente modulo del sistema. Finalmente, simplementedebeserignorado. mdulos conforman que
contieneuncampodedireccindestinado
mquina, s t e
En conclusin, podemosobservar
105
al sistemapero
t o d o s los dems simplemente lo ignorarn; e5 decir, se emplea un sistema de difusin esttica por medio de bus comn, en el cual se divide el tiempo en intervalos discretos permitiendo cada que modulo transmita correspondiente.
su d a t o
slo cuando
llegue su
intervalo
Comunicacin serial
en un
R5-232C.
nosotros colocramos
dispositivos en o t r o piso o
mas de 1 lineas para soport;ar una conversacin de un slo sentido 0 o un cable para soportarunaconversacincondossentidos.5i
nosotros transmitimos
105
b i t a la vez, nosotrospodriamoslograresto
b i t s que en
t r a n s m i t i d o s uno a la vez. S e puede ahorrar mucho dinero cuanto a cableado utilizando comunicacin serial, pero de cualquier
manera esta no es la razn principal de la gran popularidad de ste concepto.Usualmente no setiene quecablearentre
dos puntos
receptor
1 '
DATO
transmisor
m m
a)Paralelo b)Serie
CONTROL
CONTROL DATO
b i t sd ed a t o s
El
ancho de cada bit est determinado por la velocidad de transmisin de datos, que e s medida en bits por segundo. Esta velocidad e5 la
MARKING
BITS DE
SPACING
BIT DE
INICIO
BITS DE DATOS
BIT DE
PARO
_x
FLUJO DE DATOS
FIGURA
Cuando no se est transmitiendo algn dato se encuentra transmitido ser en un estado el b i t e d lgico de deseamos transmitir algn dato
en la linea, la linea
representado por un estado lgico de cero (spacing), en la linea. La duracin de el bit de inicio se encuentra determinada por la razn de baudios. El receptor sabe que espera un caracter cuando nota que
El numerodebits
de d a t o s puede s e r
5,6,7 8, pero u
de la transmisin de datos puede ser optimizada. Los b i t s d e d a t o s son transmitidos colocando primero 10s bits menos significativos y sonreensamblados en la parte receptora para volver a f o r m a r el caracter de datos que fue transmitido.
15 0
bits de
d a t o s . El tipodeparidadseleccionadadebedeserconsistente durante la misma transmisin. 5i selecciona paridad par, el numero de bits con un
el numerode
uno lgicoqueconformen
unos lgicosdebe
105
d a t o s m a s el b i t de
en la
son
105
rninirno que la linea debe d e e s t a r en estado de que el siguiente bit de inicio aparezca.
marking, antes de
debe de ser consistente durante la misma transmisin. 5i hay otro c a r a c t e r que s e desea transmitir, este seguir inmediatamente se encuentra caracter otro disponible entonces la linea permanecer para ser transmitido, en estado marking de hasta que
los bits de paro que se encuentran asociados a el bit de inicio. 5 i no
de el ltimo caracter,
el receptor no
buscar mas datos hasta que reciba un bit de inicio. Hasta llegar a ese momento, la linea deber de permanecer en estado de marking. Esto es diferentea un protocolo de comunicacin serial sincrona, en cuanto a que los caracteres de datos siempre son t r a n s m i t i d o s en la linea de comunicacin. Enunprotocoloasincrono, recibido. Dado que la razn el receptor tiene quesincronizarse caracter es b i t s d e inicio,
de baudios del transmisor y el receptor
105
con el transmisor cuando el b i t d e iniciodeunnuevo son iguales, el receptor puede tomar de la linea
datos, paridad y paro en funci6n de el tiempo; el inicio de el b i t d e inicio esusado para sincronizar el evento. 5 existeunapequea el t r a n s m i s o r y receptor pueden ser
para el mismo numero d e b i t s d e
resincronizados al inicio de cada caracter. El t r a n s m i s o r y receptor deben ser tambin configurados datos, el mismo tipo de paridad, y el mismo numero de bits de paro para que la recepcibn de datos sea exitosa.
El UART
Puede parecer muy complejo escribir un programa para mandar y recibir caracteres de datos Afortunadamente, lograr la rnayoria de UART usado asincrona 8250. un en unacomunicacibnserialasincrona. microprocesador dedicado llamado Universal, o UART, es usado para
El
en la PC es llamado elementocomunicacihn de
Un diagramafuncionaldel
omitidas para mayorclaridad ninguna conversin paralelo/serie
las instrucciones 8088
en la
numero de bits de datos, el tipo de paridad, y el numero de bits de paro. Una vez que el caracteristicas de protocolo serial deseadas, este puede ser usado
para t r a n s m i t i r y recibir datos serialmente.
un caracter de datos,
la instrucci6n
un byte
el
11
UART termin de t r a n s m i t i r el c a r a c t e r previo o se encuentra sin t r a n s m i t i r ningn d a t o (la salida de la linea esun
uno lgico), el
contenido d e el registro que retiene a la transmisin se encuentra en el registro de cambio de la transmisin. El registro que retiene la transmisin se encuentra entonces listo para s a c a r o t r o c a r a c t e r de la computadora. Los bits de bajo orden en el byte en el registro que retiene a la transmisin son usados solamente si el protocolo pide menos de ocho bits de d a t o s . El UART adhiere los caracteres apropiados de inicio, paridad y paro al caracter en el registro de cambio (shift register) de la transmisin, y despus manda el block entero de bits hacia la salida de la linea de comunicacin serial. Decualquiermanera,una vez que el UART ha sidoinicializado, un byte de datos hacia el t o d o lo que tenemos que hacer es sacar
la transmisin, la computadorapuedeestarhaciendootracosa,
checando peridicamente si el registro que retiene la transmisin se encuentra listo para aceptar otro byte de salida.
12
o t r o b y t e d e d a t o s d e el UART cuando el 5TATU5 de el receptor de datos se encuentra listo. Despus computadora, el UART indica no
de que el d a t o e s
leidopor
la
al receptornuevamenteque
10s
el
el registro de datos
recibidos antes que sea leido el primer caracter por la computadora entonces tendr lugar error sobrecorrido un de (overrun). Este error puede ocurrir estatusde
si la computadora
no monitorea seguido
el
el receptor/disporliblesuficientemente.
5i el protocolo
paro,
usadonecesitasietebitsdedatos,
paridad, y un b i td e
entonces mediante la divisibn de la razn de baudios entre diez (sin olvidar el b i t de inicio) nosotros podemos calcular el mximo numero de caracteres segundo por registro de datos recibidos. que la UART querr colocar en el
no monitorea el e s t a t u s del UART al menos ese numero de veces por segundo, entonces un error de sobrecorrida se suceder.
13
Algunasveces los problemas en la linea de transmisin pueden causar que algunos bits en los d a t o s t r a n s m i t i d o s cambien a n t e s que el receptor 10s reciba. Una linea teIef6nica ruidosa puede causar e s t e problema. El c a r a c t e r de d a t o s que el UART reensambla ser el incorrecto s cualquiera de los biz5 de datos es cambiado. Como i el bit de paridad debede m o s t r a r el numerode
unos lgicosque
para d e t e c t a r e s t e problema. 5 i s e d e t e c t a
transmisinde recibiendo.
al menosunaporcin
un errorde
paridad
inicializado el UART para la transmisin. El reloj de el receptor y el estar apagado lo suficiente para causar una perdida de la sincronizacin antes de que un caracter entero sea ensamblado. El ruidode deber;
recepci6n de los bits de paro. En cualquier caso, la accin tomada de ser la misma para errores de paridad y errores de trama. Algunosprotocolos
de comunicacinserialasincronapermiten
una condicin especial en la linea de transmisin. Esta es llamada la condicinderompimiento(break).Paramandarunacondicinde rompimiento, la lineadebe
de sermantenida
en unacondicinde
14
t o d o s sus bitsdecontrol.
condicin de rompimiento a la salida de s u e s t a t u s . 5er escribir dificil muchos programascomunicacin de si nosotros tenernos que checar constantemente el estatus del UART
se encuentra listo
para ser
a ~ c e s a d o o si el UART encuentra se listo sacado. ayudarnos Para c a r a c t e r para ser problema, el UART nos proveedeunprograma
de interrupcin. El
cualquierotracosa,
1 5
STATUS
STATUS
CONTROL
DATOS TRANSMITIDOS
A L A PC
RELOJ
A LA LINEA
FIGURA 4 El UART
16
lnterfase fsica
El adaptador comunicaciones de
para la IBM
PC
provee una
i n t e d a s e e s t n d a r R 5 2 3 2 para el mundo exterior. El conector que viene de el a d a p t a d o r e s un macho de 25 pines en forma de D. La figura 6 m u e s t r a el conector con la enumeracibn de los pines.
en el
- 5volts. 1
R5232 se encuentra
comunicaciones encendido poder medir cuandoningn correlacin de
la t a b l a 1. Con
el
adaptador de
los pines 2 y 7. E s t o
corresponde a la condicin de marking en que la linea debe de estar d a t o se este transmitiendo. Esta interfase puede
? t e a un MODEM sin cambios
a la
pines.
5
PCs
el pin 2 al pin
2 y as sucesivamente. 5i
lo cual no resultaria.
nosotros hiciramos esto, entonces los dos pines para transmisin de datos debern de ser conectados juntos, Lamaneracorrecta
de conectar dos mquinas con la interfase
17
m o s t r a d a en la t a b l a 1 se encuentraexhibida en la figura 6. E s t e esquemadeconversinesalgunasvecesllamado Ntese la manera en que las sealesdecontroldel correlacionan. es Esto necesario porque realmente se no est utilizando un el MODEM nulo.
MODEM se
de el MODEM son usadas, entonces solamente que nosotros ignoraremos seales control MODEM las de de
10s pines 2, 3 y 7
sern los que se conecten entre las dos computadoras. Es p o r e s t o cuando nosotros escribamos nuestro programa de comunicacin.
1 2 3 4 5
0 0 0 0 0 0
0 0
6 7 8 91011 213 1
0 0 0 0 0 0 0 0 0 0 0 0
18
NUMERO DE PIN
FUNCION
SALIDA ENTRADA SALIDA ENTRADA ENTRADA TRANSMITIR DATOS REClVlR D A T O S PETlClON DE ENVIO LIMPIAR PiENVlO DATOS LISTOS TIERRA DE LA SEAL ENTRADA SALIDA ENTRADA DETECCION DATOS LISTA TERMINAL DE DATOS INDICADOR DE TONO
3
4 5
7
8
20
22
COMPUTADORA 1
COMPUTADORA 2
DESCRIPCION PIN
DATO TRANSMITIDO RECIBIDO DATO
PIN
DESCRIPCION
* / x \
5
3
4 5
RTS CTS
DSR
DTR TIERRA
6x
6
DSR DTR
20
20
TIERRA
19
6 0 de entradaisalida usan un 15
un adaptador de
puerto de el UART
de
fuera (Time o u t ) en el AH. De otra manera regresado hasta quesearecibido colocado en el AL.
un caracter por
El estadodela
obtenidousando
linea decomunicacin
un IN" 14H con un
y el MODEMpuedeser
AH=3. Los b i t sd ee s t a t u s
20
hay un
6105.
De
examinemos los detalles Hardware de del muchas aplicaciones que muchas ocasiones
8250, descubriremos
a menos que
controlemos directamente el 8250 desde un programa de la PC. En el gradocontrol de sobre el UART no se encuentra disponible a menos que sea programado directamente.
Proqramando el
8250
ser
accesados por el microprocesador, la mayoriadeellospuedenser ignorados una vez que el 8250 ha sido inicializado. Una lista de los registros del 8250 y una lista de sus d i r e ~ ~ i o n e s d e e n t r a d a s a l i d a asociadas, aparece en la t a b l a 2. Ntese que el b i t d e el m a s a l t o orden de
105
en
registros debern
el
21
serignorados utilizado.
DlRECClON SALIDA ENTRADA SALIDA SALIDA SALIDA ENTRADA SALIDA SALIDA ENTRADA ENTRADA
REGISTRO SELECCIONADO REGISTRO DE RETENCION DE LA TRANSMISION REGISTRO DE DATOS RECIBIDOS DIVISORLA DE RAZONBAUDIOS DE DIVISOR DE LA RAZON DE BAUDIOS (MSBI REGISTRO DE INTERRUPCION REGISTRO IDENTIFICADOR DE INTERRUPCION REGISTRO DE LINEA DE CONTROL REGISTRO DE CONTROL DE MODEM REGISTRO DEL ESTATUS DE LA LINEA REGISTRO DEL ESTATUS DEL MODEM
ILSB)
22
el registro de
el microprocesador para
Los
e s t r a n s m i t i d o o recibido caracter. un
la transmisin. caracteres Los recibidos son
caracteres que s e van a t r a n s m i t i r son salidasdelregistrode entradas del registro de datos recibidos.
para
la interrupcin. 5 e debede
lnicializando el 8250
Antes de que podamos utilizarel 8250 para comunicacin serial, debe de estar apropiadamente muchos parmetros inicializado. Como hemos visto hay que debernos organizar
compatir los parmetros del sistema con sistema con el cual estamos comunicndonos.
parmetros del
e s el divisor de
El primerparmetro
razn de datos, este valor es utilizado para dividir las salidas de las
23
frecuencias altas de reloj hacia una seal de reloj que represente la razn datos de que deseamos utilizar para la transmisi6n y recepci6n de datos seriales. La t a b l a 3 contiene los valores
M50 y
L 5 0 deldivisordela
razn debaudiosnecesitados
para obtener
MSB
50 75 110 134.5
150
LSB
OOH OOH 17H 59H OOH 80H COH 60H 40H 3AH 30H 20H 18H 1OH
300 600 1200 1800 2000 2400 3600 4800 7200 9600
OCH
Para inicializar
la salida correcta de
los
24
ejemplo, si nosotros queremos que una transmisin s e lleve a I Z O 0 baudios, nosotros primero debemos salida 3F9H. Despus de inicializar el divisor d e la razn de baudios, el registro de la linea de control debe de encontrarse inicializado. Este registro determina la longitud de el caracter, el numero de bits de paro, y el tipo de paridad que ser utilizada en la transmisin serial. La figura
de sacar un
80H hacia la
son los
6 0 utilizada para 15
no necesitemos
deber
de estar
La figura 8 muestracomoseinicializaeste
registro. Normalmente, nosotros deberemos de colocar este registro en 0 3 H y olvidarnos d e el. Este valor da la salida correcta
25
la peticindetransmisin(request
t o send) de
las seales de
control del MODEM. 5 i no se encuentra presente un sistema no nos cuesta nada hacer esto. 5i nosotros queremos utilizar interrupciones, entonces OUT2 deber de estar
MODEM enel
el b i t
el 8250 gener pase a t r a v s de el bus de el sistema de la dondeeventualmente este alcanzar interrupcin 8259.
PC en
al chip de control de
Normalmente, el b i t c u a t r o de este registro deber de estar devuelta en un ciclo a la entrada serial mismo del propiedadpermite a unprogramaexaminar
para quesenospermitieraescribir
en
8250. E s t a
esta propiedad
o no si el 8250 est
y examinarunprograma
de
PC
sintener
60. 15
interrupciones, entonces este registro deber estar de Programarcomunicacionesserialesconinterrupcionespuedeser muy complejo. Afortunadamente, El registro habilitacibn de interrupcin de
el uso de interrupciones es no
necesario para nuestros prop6sitos. nos permite seleccionar selectivamente habilitacibn una
o deshabiIitaci6n de
26
de interrupcionesdecomunicacin
como
PARIDAD
I '
ElTS DE PARO
TIPO DE PARIDAD HABlLlTAClON DE PARIDAD HABlLlTAClON DE UN BREAK( O LOGIC0 EN LA SALIDA SERIAL) DIRECCIONAMIENTO DE ENTRADA/SALIDA
27
c I
7 7 6
1 6 1 5
1 4
1 3
1 2 1 1
I
FORZADOS A CERO
1
O =SIN ACCION
1 =ACTIVA PETlClON D E L L A M A D A A
OUT 1 SALIDA AUXILIAR AUXILIAR
I
I
tl
O
ESTATUS DEL MODEM
DE
DATOS
28
Una vez que el 8250 ha sido inicializado, e s t e puede ser usado para lograrunacomunicacinserial. caracter hacia
A dondeseaquequeramos
la transmisin si e s t e
el
el registro recepci6n de de
6 0 . nicadiferenciaesquelos 1 5 La
la direccindeentrada un
caracter, nosotros
bits de alto orden de este registro siempre estn cero. Nosotros en podemos accesar este registro mediante salida 3FDH. n o s o t r o s s e a m or a n s m i t i r 5i de ts ser sacado hacia debemos leer este registro y checar el b i t 5. Un caracter no puede el registro de retencin de
la transmisin hasta
en O,
que el b i t 5 seencuentre
en 1. 5 ie s t eb i ts ee n c u e n t r a
transmitirpodrsermandado delregistrodeestatus
a el registro retencin de
de la
29
la transmisin se encuentrelisto
para
Normalmente, el b i t O del registro estatus linea del de se encuentra en O. 5i e s t e b i t pasa a 1 entonces esto quiere decir que , se ha recibido un c a r a c t e r d e d a t o s en el 8250 y ha sido colocado en el registro de recepci6n de datos. Cuando desde el registrodedatos caracter no es accesado un programa detecta e s t a condicin, este deber de accesar el caracter de datos recibido I-ecibidos (o derecepcindedatos) a n t e s que el 8250 haya terminado de recibir otro caracter. en este momento,
un
5i el
error de
el caracter es accesado,
5i cualquiera de
105
bits
apropiados se encuentra en 1, entonces el registro de recepcin de d a t o s no contendra a ningn caracterdedatos programas de comunicaci6n deben saber que transmisin de datos acaba de ocurrir. errneos pasan a el estado de en el estado de valido, Muchos
un
error
de
en el 8250. De e s t a manera, la
105
bits se encontraran
30
el b i t 5 el
El e s t a t u s del
6105 es
exactamente el mismo estado que el del registro del estatus del modem. Los cuatro bits de ma5 bajo orden nos permiten checar si cualquiera de las entradas del e s t a t u s del modem a cambiado desde la Itima vez que fue monitoreado este registro. Esta es una propiedad que nos puede ser
31
Cada
modulo
esta
compuesto por
un
teclado,
un
microinterruptor,uncircuitoconvertidor niveles de voltaje propios del modulo. Como podernos observar de comopuertodeentrada en la tecnologia R I X el cual es
de niveles lgicos
TTL a
(de 8 bits)esutilizado
cada uno de estos; cada una de las terminales de dicho puerto esta c o n e c t a d a t a n t o a una resistencia que unade Cuando t o d o s
los las terminales de un interruptor que lo polariza a GND.
interruptores se encuentran
desactivada, el modulo tendrii la direccin 255 y, cuando todos se encuentren activados la direccihn del modulo ser cero, notndose que, dependiendo de la combinacin de podremostener en teoriauntotalde
105
ocho interruptores
realidad el numero de estos estar limitado por la corriente mxima suministrada al sistema. De igual manera, en el puerto C del microcontrolador (tambin de
ya
los
PC.
32
Finalmente, dos terminales del puerto A del micro son utilizadas como puertos de transmisin y recepcin de d a t o s en serie ya que &te no cuenta terminales con especialmente dedicadas
para
ms adelante
lo t a n t o ,
describiremos la manera en que por medio de so-ftware una palabra almacenada dentro de un registro del micro puede ser transmitida en serie cumpliendo con el formato de trama necesario, as1 como la manera en una que palabra recibida en serie puede leida ser adecuadamente para determinar el campo de direccin que envia
la
PC y saber
Una vez establecidas las funciones que desempearn cada de los diferentes puertos analicemos de que manera funcionan mdulos.
los
t a l como s e
el micro
se apoya en un procedimiento llamado HAYDATO5, el cual funciona de la siguiente manera: s e carga el valor de
105
bits presentes en el
puerto C almacenndose en u n registro especial llamado "Datos", el valor de este registro es analizadopara determinar si es que existe algn dato valido almacenado dentro del mismo; lo anterior ocurre cuando este dato tiene un valor diferente a 255 (es decir, t o d o s los bitsdelpuerto micro que sabe existe
s e encuentran en estadoalto), un valor presente
en cuyo caso,
el
y pasa al siguiente
33
procedimiento llamado CHECD~IR, cual se encarga de leer el campo el de direcciones proveniente de la P C y, comparar cada una de estas con la direccin fijada de manera particular a cada modulo para que cuando estas dos sean iguales inmediatamente despus envie la informacin presente enel casodeque registro Datos hacia el registroDatoscontengaunvalorigual el modulo
la PC. En
a 255, el
micro considera que no existe dato presente y vuelve a repetirse el proceso anterior. procedimiento Dentro del consiste simplemente
CHECDIR
existen
tres
subprocedimientos. El primero etiquetado de ellos con en determinar el numero que de bits conforman el campodedirecciones valorasignado
IIRcvrll
de la trama proveniente de
la
E l siguientesubprocedimientoconsiste
saber de que manera se irn introduciendo
registro destinado para este fin llamado "RcvrReg"; cabe mencionar, que para que los b i t s puedan ser introducidos tuvo haber que detectado anterioridad con contenido en la t r a m a enviada por la el bit arranque de
PC.
34
y como
consecuencia s e han almacenado 10s siguientes 7 b i t s del campo de direcciones enel registro RcvrReg, el micro lee la direccin cargada en paralelo en su puerto 0 y la compara con el campo almacenado en el registromencionadoanteriormente;sidespusdeefectuar dichacomparacinsedetectaqueambas pasaremos
son igualesentonces,
al
en
la
la
comparacin resulta negativa, es ambas decir, direcciones interruptores de direccionamiento son diferentes,
la
los
el procedimiento
Suponiendo que la direccibn recibida concuerda con puerto C que almacenado fue etapa de bsqueda. cual transmite de alguna manera iniciales comunicacin, de como
la direccin
del modulo, entonces el micro deber transmitir el dato recogido del en el registro"Datos"durante dependiendode
la
lo son el numero de
bits que
componen el campo datos, de numero bits paro, de de de bit paridad y b i t que ser recibido primero tiempo de duracin de cada uno de el d e los
105
la y la PC.
velocidad transmisin de preestablecida entre mdulos deben ser asignados a cada uno de
Para lograr lo anterior, el micro cuenta con una tabla de valores que
105
diferentes procedimientos
35
de retardo para lograr tiempos exactos de duracin o permanencia del valor de un bit durante la transmisin serial a travs de una de las terminales del puerto A. Una vez que han sido transmitidos siete bits del campo de datos, etapa de transmisi6n
s e transmiten posteriormente
105
105
y porconsiguiente,
el moduloregresa
a su
estadobsicodefuncionamiento,esdecir, anterior.
al r a s t r e od ed a t o s
el proceso
36
Este tipo de microcontroladores son de 8 b i t s y basados en la tecnologia EPROM, es decir tienen todo el modelo de Von Newman internamente, por lo cual tienen una EPROM interna que puede ser grabada y borrada dentro del mismo chip. Otra ventaja del chip es queesmuybarato,por Io cual se puede colocar uno d ee s t o s microcontroladores en cada nodo de adquisicin de datos haciendo de esta manera a nuestros nodos inteligentes. Logrando hacer
a nuestros nodos inteligentes, estos podrn
responder al llamadode la
a cadanodounadireccin
PC cuando esta
105
llamemediante
la
y mandarestadireccin
a t r a v s del
puerto serie, cuando el microcontrolador capte el nmero que le fue asignado responder este mandando
captado en un circuito de captacin de que datos estar conectado a algunode sus puertos de e/s,de microprocesador entregue estos datos computadora y despusmediante mediante este mismo software. Por una ultimo proceder vez m o n i t o r e a d ots d oe s t od a t os e o s s s en la pantalla el circuito de
a interpretarlos de t a l manera que
al puerto de serie
la
un software quelea
los d a t o s
a monitorearlos
de operacin de 20 MHz.
512 - 2K x 12
- Rango de voltaje de operacin: 2.5 a 6.25 V. - Bajo consumo de poder: <2 mA. ( 5 V y 4 MHz).
38
DESCRlPClbN GENERAL:
PlCl6C5X El Microchip de Tecnology de una es familia microcontroladores de 8 bits de bajo costoy alto performance, con tecnologia C M 0 5 Emplea un solamente programas tipoarquitectura con de Rl5C
un
33
las
slo
ciclo.
Todas
las
instrucciones son de sencillo ciclo exceptoetiquetas las de microcontroladores dan un performance mucho mayor que
los
el tiempo de
a partirde
4 configuraciones de
un osciladorahorradordeenergia
LP (Low
Power) y un oscilador RC que ahorra costos. Las versionesestos de rni~rocontroladores traen que una entradade
UV para poderborrarlesla
EPROM sonideales
para
t r a b a j a r ya que son mas flexibles que los otros microcontroladores que necesitancircuitera de externa Estos microcontroladores simulador mediante 5oftware, PC. vienen
un
circuito emulador
un
39
"
EPROM CHIP
RAM 32 x 8 32 x 8 32 X 8
80
PUERTOS DE WS
512 X 12
12 20 12 20
X 12
1K X 12 2K X 12
x8
RTCC
VDD
vss
N/C
N/C
2 3
4 5 6 7 8
9 10
11 12 13 14
1
40
ARQUITECTURA:
Estosmicrocontroladores
son rnicrocomputadorasintegradas
de
e
memorias separados
para
datos
ciclos de Fetch
y Ejecucin de
se
lleven
41
;DEFINIR RESET VECTORS +-***********************~1~16~57**************************************** PIC57 RTCC PC STATUS FSR Port-A Port-B Port-C EQU EQU EQU EQU EQU EQU EQU 6 EQU 7 7FFH 1 2 3 4 5
........................................................................
CARRY
C DCARRY DC Z-bit EQU EQU EQU EQU EQU Z EQU P-DOWN EQU PD EQU T-OUT 4 EQU TO EQU PA0 EQU PA1 EQU PA2 EQU Same U LSB MSB TRUE YES FALSE NO EQU EQU EQU 7 EQU EQU EQU EQU EQU
O O
1 1 2 2 3 3
4
5 6
7
1
O O
1 1
O O
+;******************PARAMETROSDE COMUNICACION************************** X-MODE R-MODE X-Nbit R-Nbit Sbit2 EQU EQU EQU EQU EQU
1 1 1
1 1
.........................................................................
PA0 PA1
X-f Lag EQU R-f lag EQU DX EQU DR EQU BAUD-1 EQU BAUD-2 EQU BAUD-3 EQU BAUD-4 EQU BAUD-X EQU BAUD-Y EQU
O
1 .68 .67 .34 -86 -66 -66
DirReg RES RcvReg RES XmtReg RES Countl RES Count2 RES DlyCnt RES Datos RES
1 1 1
1
1 1
.....................................................................
org O ;RUTINA QUE RECIBE DATOS DELTABLERO
I
START INICIO MOVLW 11111111B Port-B TRIS MOVLW 11111111B Port-C TRIS HAYDATOS BCF MOVF MOVUF MOVLW XORWF BTFSS GOTO GOTO
I
; COLOCA PUERTO-B COMO ENTRADA DE DIRECCIONES ; COLOCA PUERTO-C COMO ENTRADA DE DATOS
clrf Datos LIMPIA EL "STATUS" DE CERO 3,2 EN Port-C,O ; CARGA EL DATO EXISTENTE PORT-C EN ELREGISTRO DE TRABAJO"U" Datos I CARGA F8 CON U 11111111B ; CARGA EL REGISTRO "W" CON PUROS UNOS ALMACENENDO EL RESULTADO EN Datos Datos,Same ; EFECTUA UN XOR ENTRE "Uut Y 11F811, SI F8=U=1 SALTA A "CHECDIR"; SI F8=W=O SALTA A HAYDATOS 3,2 CHECDIR ; SALTA Y VERIFICA SI LA DIRECCION COINCIDE HAYDATOS ; NO HAY DATO PRESENTE EN PUERTO-C ESVALIDA
, ,
;RUT I NA QUE CHECA SI LA DIRECCION TRANSMITIDA POR LA PC CHECD I R btfsc got0 calL clrf RcvReg Port-A,DR User De L ay4
, ,
;RECEPCION Rcvr IF rnovl w ELSE mov 1 w END I F rnovwf R-next bcf R-Nbi t 8
7
Countl STATUS,CARRY R-MODE RcvReg,Same RcvReg,Same Port-A,DR R-MODE R-Nbi t RcvReg,MSB
IF
rrf ELSE rlf END1 F btfsc
I
IF IF bsf ELSE
bsf
ENDI F
ELSE bsf ENDI F
I
RcvReg,LSB ayY De 1 Count1,Same R-N tex RcvReg, 1 3.2 Port-B,O RcvReg,Sarne 3,2 CHECD I R Xrnt r
;TRANSMISION DEL DATO MOVWF MOVLW TRIS rnovlw ELSE w rnovI ENDI F movwf Datos,O XrntReg ; coloca PA1 COMOSALIADDEDATOS 0000001 OB Port-A X-Nbi t 8
MOVFX n r rt
IF
7
Count 1 X-MODE X-Nbi t XrntReg,Same
IF
ELSE
IF
ELSE rlf ENDI F ENDI F
,
X-next
bc f cal 1
Port-A,DX Delayl bcf STATUS,CARRY X-MODE XmtReg,Sarne XmtReg,Sarne STATUS,CARRY Port-A,DX STATUS,CARRY Port-A,DX DelayX Count1,Same X-nex t Port-A,DX Delayl Sbit2 Port-A,DX Delayl INICIO
;bit de arranque
IF
rrf ELSE rlf ENDI F
btf sc
;bit de parada
IF
bsf cal 1 ENDI F goto
;FIN DE LA TRANSMISION
"_
DelayY goto DelayX goto Delay4 goto Delay1 goto Delay2 save redo-I goto ret Lw main tris
bsf
mov 1 w BAUD-Y save BAUD-X mov L w save mov L w BAUD-4 save BAUD-1 mov L w save BAUD-2 mov L w movwf DLyCnt decfsr DLyCnt,Same redo-I
O
movlw OEH Port-A Port-A,DR CHECDIR BAUD-3 mov l w movwf DLyCnt decfsz DlyCnt,Same goto redo-2 CHECDIR goto main
GOT0
END
PTO = &H3F8 OUT PTO + 3, &Ha0 OUT PTO, &HC OUT PTO + 1,&HO OUT PTO + 3, &H1 F OUT PTO + 4, &H3 X = INP(PT0)
DIR = 2 OUT PTO, DIR + O DO T = INP(PT0 + 5) AND &H20 LOOP WHILE T e > &H20 '**LEE EL DATO PROCEDENTE DEL TABLERODIRECCIONADO****
IF (INP(PT0 + 5) AND &H1) = O THEN LOCATE 12, 1 O: PRINT "DIRECCION:"; DIR ' LOCATE 12, 3 5: PRINT "DATO: NO EXISTE"; COTO OTRO END IF IF (INP(PT0 + 5) AND &H1) = 1 THEN BUNO = INP(PT0) 'RECIBE EL DATO(BME) IF BUNO = 255 THEN BUNO = O LOCATE 12, 1O: PRINT "DIRECCION:"; DIR 11 . LOCATE 12, 44: PRINT I' LOCATE 12 3 5: PRINT "DATO:"; BUNO, , END IF COTO OTRO
I
I8"MS dICl
SS
3
l?
L3
93
S2
S3
-k
Z f zstl
HOT
X 8
t3
TZ
3
SS39T3Id
23
T3
6T
03' 82
r wtl
NIT1 T T
ax1
3wtl
AdST
HOT
X 8
AWOT
33A
AS+
33A
Bibliografa
8088 Assembler Languaje Programing: The IBM PC Second Edition David C. Willen Jeffrey I. Krantz Ed. Howard W. Sams & Company
145904
IBM PC Del laboratorio a la industria G. Apruzzese y C. Frauly Ediciones tcnicas REDE, S.A.
1993 EDITION
MICROCHIP
37