Sei sulla pagina 1di 54

145904

UNIVERSIDAD AUTONOMA METROPOLITANA


Iztapalapa

C.B.I.

Reporte del trabajo realizado durante el curso de la materiade

PROYECTO DE INGENIERIA E1,ECIXONICA 11.

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

LA AFERTURA DEL PUERTO SERIAL DE LA

PC

-DIAGRAMA ELECTRIC0 DEL MODllLO D :ADQL11SICION DE DATOS I

-BIBLIOGRAFIA

INTRODUCCION

Los ordenadorespersonales no sirven slo para el procesode


textos,hojas cuando una
d e clculo y manejodebasesdedatos.

De hecho,

PC

recibe informacin de puntos remotos, esta en e s t od a t o s , s para tarjetas elevado.

decisiones basadas capacitada para tomar

llegando as a convertirse en una potente herramienta funciones es control de que

controlar su entorno. El problema para llevar a cabo este tipo de

hay

que emplear

especializadas de entradalsalida cuyo precio es bastanze Adems, suele 5er necesario instalarlas dentro de la propia

PC,con

lo que ocupan se algunos de

los conectores expansin de que

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

R5232. El sistema podr transmitir


de funciones de control sobres u entorno.

y recibir informacin de

puntos alejados del ordenador, pudiendo as llevar a cabo una serie

En base a este sistema se

puede extraer y correlacionar

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

colecci6n de m6dulos de adquisicin de datos, t a l como se muestra

PTO. SERIE

-L

O
IEM

I \ / ,

MODULO 1

MODULO 3

---a
MODULO "N"

FIGURA 1;

Sistema modular de adquisicinde datos

AI sistema anterior se
modular adquisici6n datos de de con

le ha dado el nombre sistema de

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 decir que estn

interconectados, no5 referirnos a quecadamduloescapazde intercambiar informaci6n con el ordenador.

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

mdulos que integran al sistema

en e momento que l

La difusin por medio de bus comn es el tipo de arquitectura de


comunicacin empleada durante sistemas de difusi6n tienen un
5010

el diseo del sistema.

Los

canal de comunicacin que, a su

vez, es compartido por 'codos los mdulos que integran al siszema.

El ordenador envia un campo de direccin, localizado en el interior de


incluye ademas campo, de este parmetros una trama que adicionales como lo es el bit de arranque, el bit de paridad y el b i t d e paro tal como se explicar localizado dentro de

ms adelante de manera ms detallada

cuando se muestre la manera en que debe ser programado el


la t a r j e t d ie t e d a s e an

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

localizado en el interior de dichatrama,especifica respectivocampo de direccinesrecibidoportodos individual;

momento en que cada trama con su

los mdulos,
y el modulo

si dichocampo es igual a s u direccin si esto ocurre

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

registro especial llamado "registro de transmisin" hacia

y posiblemente enviar comandos de


la aplicaci6n que
s e este dando al a su

sistema. 5i la direccinrecibidaporunmodulocorresponde pero, no existe dato

que t r a n s m i t i r

el ordenador no recibir

del modulo en t u r n o y, entonces, enviar una

nueva t r a m a con el campo de direcci6n correspondiente al siguiente modulo del sistema. Finalmente, simplementedebeserignorado. mdulos conforman que

si la trama recibida por un modulo


a otra

contieneuncampodedireccindestinado

mquina, s t e

En conclusin, podemosobservar
105

que cada trama enviada por el ordenador, es recibida por todos

al sistemapero

solo uno responder

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

El adaptador de la tarjeta de comunicaciones que entra


otras mputadoras co

en un

SLOT de expansi6n, le dar a la PC la capacidad de comunicarse con


o dispositivos usando
la interfase de
comunicacin serial estndar

R5-232C.

Serial versus Paralelo

5i consideramos el caso de dos dispositivos colocados unoa el


ladode edificio? Sin incluir la tierra elctrica, nosotros necesitariamos
un cable con

el otro, la respuesta no es obvia. Pero i q u e pasaria si uno de


105

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

d a t o s y la informacin de control en u n con una linea ma5


solo sentido,

b i t a la vez, nosotrospodriamoslograresto

tierra elctrica para soportar una conversaci6n de un

esto se representa en la figura 2b y e s t e e5 el concepto bsico de

la comunicacin serial. La comunicacin serial e s significativamente


mas lenta que la comunicacinparaleladebido conforman la informacin de datos
a que
105

b i t s que en

y control deben de ser

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

d i s t a n t e s para permitir que se lleve a cabo una comunicacin serial.

El cable ya e s t ah, ya que es la linea telefnica. Con un protocolo


de comunicacibn serial

y un equipo incerfase de apropiado, una


a cabo a t r a v s

conversacibn entre dos dispositivos puede llevarse comunicacinserialse

de la linea telefnica. Con e s t o en mente, no e s una sorpresa que la

halla convertido en la manera estndar en

que las computadoras se intedasan conel r e s t o del mundo.

receptor

1 '
DATO

transmisor

m m
a)Paralelo b)Serie

CONTROL

CONTROL DATO

Figura 2. Transmisin de datos paralelovs. serie

Protocolo serial asncrono

El concepto principal detrs de el protocolo serial e s que t o d a l a


informacin necesaria de datos datos, bit un

y control para t r a n s m i t i r y recibir

un caracter de informacin debe moverse sobre una linea sencilla de


a la vez. La manera en que esto realiza se se

encuentra mostrado en la figura 3. Observando la figura 3 imaginmonos que


105

b i t sd ed a t o s

fluyen como si estuvieran viajando a travs de un cable sencillo.

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

llamada razn de baudios. 5i 10s d a t o s 5on t r a n s m i t i d o s a t r a v s


d e una linea de comunicaciones a 300 bits por segundo, entonces la
velocidad de transmisin son 300 baudios.

MARKING

BITS DE
SPACING

BIT DE
INICIO

BITS DE DATOS

BIT DE

PARO

_x

FLUJO DE DATOS

FIGURA

Formato d e datos seriales asncronos

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

uno (marking). Cuando

el primer bit quedeberdeser

inicio. El b i t de inicio encuentra se

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

la linea cambia d e un estado de marking a un estado de spacing (de

1 a O), en otras palabras, a la recepcin de el b i t de inicio.


Los bits de datos que se estn transmitiendo siguen a el b i t d e inicio en formainmediata.

El numerodebits

de d a t o s puede s e r

5,6,7 8, pero u

cada caracter debe de contener el mismo numero de

b i t s d e d a t o s en la misma transmisin. El numero de bits de datos

no es fijo porque muchas veces el numero de b i t s que conforman el


caracter de informacin que deseamos transmitir es menor a ocho.
Corno no fijamos el tamao de
105

datos transmitidos, la velocidad

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.

Un bit de paridad opcionalsigueinmediatamente

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

paridad debe de s e r par; si se selecciona la paridad impar, entonces

de s e r non. Los bitsdeparidad

permiten a el receptor detectar ciertos tipos error de transmisin.

en la

Hay 1, 1.5, o 2 b i t s d e unos lgicos que siguen a el b i t d e paridad


(o b i t s d e d a t o s s i no hay un bit de paridad presente). Estos bits

son

105

llamados bits de paro. El bit

de paro representa el tiempo

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

El numero de bits de paro


a

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

haya otro caracterque se desee transmitir.

Como los caracteres de datos pueden comenzar y terminar en


cualquier tiempo, el protocolo de comunicacin serial discutido mas adelante un es protocolo asincrono. Despus que hayan de se recibido los bits paro de

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

diferencia entre los relojes de el t r a n s m i s o r y el receptor, t a l vez no

haya error alguno, pues

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

Transmisor Receptor Asincrono

las conversaciones con protocolo serial.

El

en la PC es llamado elementocomunicacihn de

Un diagramafuncionaldel
omitidas para mayorclaridad ninguna conversin paralelo/serie
las instrucciones 8088

UART se encuentra mostrado

en la

figura 4. 5eales de control de interrupci6n

y de MODEM han sido

en la representaci6n. El UART nos


o serie/paralelo. Antes de

p e r m i t e t r a n s m i t i ry recibir datos serialmente sin t e n e r que realizar que el


las

pueda ser usado el UART, a e s t e s e le debe de indicar (a travs de

OUT) la razn baudios de deseada,


UART programado ha sido
con

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.

Cuando nosotros deseamos transmitir

un caracter de datos,

nosotros checamos el STATU5 delUART(mediante

la instrucci6n
un byte
el

8088 IN) para observar si el registro de transmisi6n HOLDING se


encuentra vacio. 5i sucede esto, nosotros podemos sacar retiene a la transmisi6n (llamado arriba HOLDING). Cuando
d e d a t o s a la UART, y e s t e byte s e colocar en el registro que

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

UART, y el caracter es automticamente transmitido serialmente


con t o d a s las caracteristicas apropiadas. Mientras se lleva a cabo

la transmisin, la computadorapuedeestarhaciendootracosa,
checando peridicamente si el registro que retiene la transmisin se encuentra listo para aceptar otro byte de salida.

El UART coloca cualquier entrada serial que recibe en el registro


de cambio de recepcin. Despus que han sido recibidos el numero apropiado de bits de paro se realiza chequeo de error, el c a r a c t e r un se coloca en un registro de rec:epcin de datos. 5i se utilizan menos de ocho bits de datos, entonc:es solamente de el registrodedatosrecibidos los bits de bajo orden el

son vlidos ahora. Despus


que puede ella leer

UART actualiza el STATU5 para m o s t r a r que los datos recibidos se


encuentrandisponibles.Lacomputadorasabe

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

d a t o s e s t n disponibles h a s t a que s e haya colocado otro caracter en el registro de recepcin de datos.

El UART nos ha hecho m a s fcil la recepcin de datos seriales.


Lo nico que tenemos quehacere5monitorearunbitsencillode
s t a t u s y meter un byte de datos cuandoel b i t d e e s t a t u s n o 5 d i g a que Io hagamos. El UART tambin no5 indica cuando ha ocurrido un b i td ee r r o r dato staisto, e l en el c a r a c t e r de entrada.Cuando el estatus reflejar cualquiera de
el e s t a t u s d e

el

UART se checa para ver si estn listos 10s d a t o s recibidos, si el


las posibles condiciones de error de entrada.

5 el UART coloca un segundo caracter en

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

S un programa que nosotros usemos i

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

contienen los bits de datos,

el UART puede u s a r el bit de paridad

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

para un c a r a c t e r recibido, entonces tendremos que pedir una nueva


de los d a t o s que e s t a m o s

5i el UART no recibe u n b i t de paro cuando lo espera, entonces


ocurrir error trama un de (framing). error Este muchascausas. recepcindebercompetir no de con t r a n s m i s o r debede puede t e n e r
la manera con que e5

La manera e n que e s inicializado el UART para

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;

la linea de transmisin puede falsear la

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

spacing por almenos el tiempo que tome transmitir un caracter con

14

t o d o s sus bitsdecontrol.

El UART reflejar la recepcindeuna

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

para observar si algn caracter

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

para a c e p t a r t r o o a solucionar este

de interrupcin. El

UART puede serprogramado para proveernosunainterrupcinsi


hay un caracter listo para ser recibido, si hay un error de entrada o si el registro de retencin de la transmisin se encuentra vacio. De cualquier forma, adems de estar monitoreando constantemente el e s t a t u s del

UART, nuestro programa estar puede haciendo


y cuando llegue el momento el programa ser

cualquierotracosa,

obligado a interactuar con el UART.

1 5

ENTRADADE REGISTRO REGISTRO DE DATOS RECIBIDOS RECIBIDOS

STATUS

STATUS

CONTROL

DATOS TRANSMITIDOS

SALIDA DE CORRIMIENTO DATOS

BAUD RATE GENERATOR

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.

La interfase R5232 convierte las seales elctricas del UART a


niveles de voltaje estndares conectorfisico. est representado de

EIA, que estn presentes

en el

Un cero Ibgico, queesunacondicindespacing,

+3 a + 5 volts. Un uno lgico, queesuna I


-3 a

condicibn de marking, se encuentra representado de


a seales binarias elctricas correctas para el UART.

- 5volts. 1

La interfase tambin convertir de regreso las entradas de voltaje La configuracin fsica

de pines de salida para el conector


en

R5232 se encuentra
comunicaciones encendido poder medir cuandoningn correlacin de

la t a b l a 1. Con

el

adaptador de

e inicializado, nosotros deberemos de

un voltaje negativo entre

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

ser acoplada directamer


105

a la

pines.
5

De cualquier manera, nopodremosconectar

nosotros deseamos conectar dos

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

MODEM fisico, algunos programas requieren las


MODEM, las cuales pueden ser
las seales de control

apropiadas entradas de control de proporcionadas por

las salidas control de correspondientes del

MODEM. Esto s e podria notar si ninguna de

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

FIGURA 5 Conector estndar de 25 pines macho

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

TABLA 1 Pines de salida estiindares de RS232

COMPUTADORA 1

COMPUTADORA 2

DESCRIPCION PIN
DATO TRANSMITIDO RECIBIDO DATO

PIN

DESCRIPCION

* / x \
5

DATO TRANSMITIDO DATO RECIBIDO RTS CTS

3
4 5

RTS CTS

DSR
DTR TIERRA

6x
6

DSR DTR

20

20

TIERRA

FIGURA 6 Conectando dos interfases RS232

19

Llamadas seriales al BIOS de entradakalida

Todas las llamadas seriales del funciones llamada.se de si instala de mas

6 0 de entradaisalida usan un 15
un adaptador de

IN7 14H. A la entrada AH es usado para diferenciarse de las o t r a s


comunicacin, entonces el DX debe de ser cero o uno a la entrada. Para nuestros propsitos debe d e e s t a r en cero. Cuandoqueremos nosotros inicializar comunicaciones toda con
el

puerto de el UART

la informacin necesaria que

requiere para funcionar apropiadamente, nosotros utilizamos un INT

14H con AH=O. E s t a funcin de llamada no nos permite lograr una


comunicacin serial con interrupciones. Cuandonosotrosdeseamostransmitir usamos un INT 14H con AH=I. peticin de transmisin de
un caracter,nosotros

Esta llamada coloca lista la terminal

de d a t o s y las seales de peticin de transmisin y las seales de


las seales de control del MODEM y no

t r a n s m i t i r un caracter si no recibe la correcta seal de control del

MODEM para indicar que 10s d a t o s e s t n l i s t o s a mandarse (Data


s e t ready). 5i la seal es no recibida tiempo, entonces el en el periodopresente

de

6 0 regresar a la llamada un error de tiempo 15


el control no ser
el UART y sea

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

delta son usados para indicar que ha ocurrido un cambio en el b i t

20

correspondiente del estatus del deber de


ser usada primero

MODEM. Para prevenirque no se


para asegurarse que de

reciba una llamada de un caracter que nunca regres6, esta llamada

hay un

c a r a c t e r en el UART para recibir. 5e facilita bastante escribir llamadas de


un programa utilizando estas

6105.

De

cualquier cuando forma, nosotros

examinemos los detalles Hardware de del muchas aplicaciones que muchas ocasiones

8250, descubriremos
a menos que

no pueden ser usadas

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

Afortunadamente el 8250 no e s t a n complejocomoparece primera instancia.

El 8250 tiene 1 registros que 0 pueden

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

registros de la linea de control debe de ser puesto

en

uno para a c c e ~ a r105 registrosdivisores de la razn de baudios.


Este bit deber de e s t a r en cero el tiempo restante. Cinco de
105

registros debern

de ser programados por

el

microprocesador una con instruccin de

OUT para inicializar el pueden

8250. Una vez que se han inicializado estos registros, ellos

21

serignorados utilizado.

por el resto de el tiempo en el que el 8250 sea

Estos registros son:


- Divisor de la razn de baudios ( L 5 0 ) - Divisor de la razbn de baudios (M56) - Registro de la linea de control - Registro del control del MODEM - Registro de habilitacin de interrupcin

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)

TABLA 2 Accesando los registros del 8250

22

Durante el curso de el programa de comunicaci6n,

el registro de

la linea de estatus es usado por


determinar cuando mantenimiento 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.

5i las seales de control del MODEM son importantes, entonces


el registro de estatus del monitorearesasseales

MODEM puede ser usado

para

o cambios en esas seales. 5 i noson

del utilizadas las seales de control registro puede ser ignorado.

MODEM, entonces este


el

5i el programade comunic;aciones utilizainterrupcionescon

8250, entonces el registro de identificacibn interrupcin de es


utilizado para identificarlacausade t o m a r la accin apropiada.

la interrupcin. 5 e debede

5i no estn siendo utilizadas las

interrupciones, entonces este registro puede ser ignorado.

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

para que puedan


105

compatir los parmetros del sistema con sistema con el cual estamos comunicndonos.

parmetros del
e s el divisor de

El primerparmetro

que debemos inicializar

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

una raz6n de baudiosdada.

VALOR DE LOS REGISTROS DIVISORES DE LA RAZON DE BAUDIOS RAZON DE BAUDIOS

MSB
50 75 110 134.5
150

LSB
OOH OOH 17H 59H OOH 80H COH 60H 40H 3AH 30H 20H 18H 1OH

09H 06H 04H 03H 03H


O1 H

300 600 1200 1800 2000 2400 3600 4800 7200 9600

OOH OOH OOH OOH OOH OOH OOH OOH OOH

OCH

TABLA 3 Valores del divisor de la razn de baudios

Para inicializar

el divisor de la razn baudios, de nosotros

primero debernos de colocar el bit de mas alto orden del registro de


la linea de control en uno con un OUT hacia la direccin de entrada

salida 3FBH. Nosotros podemos obtener direccindeentradasalida

la salida correcta de

los

valores L 5 0 y M50 para el divisor de la razn de baudios hacia la

3F8H y 3F9H, respectivamente.Por

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

direccibn entrada salida 3FBH y un OOH a la direccin de entrada

7 muestra como se inicializa este registro


de registro este

para los parmetros de

transmisin deseados. Ntese que los cinco b i t s d e mas bajo orden

son los

mismos que se encuentran como

parmetros d e entrada para la llamada de inicializar el puerto de comunicaciones. Normalmente, ordendebedeestar


105

6 0 utilizada para 15

tres bits de mas alto orden de ste registro en cerodetalmaneraque

deben de encontrase en cero en e s t e momento. El b i t d e el mas a l t o

no necesitemos

accesar mas los registros del divisor de

la razn de baudios. El bit

de la colocacin de rompimiento (set-break) rompimiento a la salida de parity)deberde

deber

de estar

colocado en uno solamente si necesitamos causar una condicin de

la linea. El b i t de paridad fija (stick

estar coloc:ado en uno solamentesideseamos

que el bit de paridad sea un valor constante.

El siguiente registro que debe de ser inicializado es el registro de


controldelMODEM.

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

para la terminal de datos disponibles (Data terminal Ready) y para

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

en uno. Esto permite que la interrupcin que

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

cero. Si se encuentra en uno, entonces la salida serial del 8250 ser

8250. E s t a
esta propiedad

o no si el 8250 est

trabajando apropiadamente. Nosotros utilizaremos comunicacin serial conexin fisica en nuest,ra

y examinarunprograma

de

PC

sintener

que hacer ninguna

a nuestra PC. Esta propiedad no se encuentra

disponible si se estn utilizando las llamadas del habilitacin interrupcitl. de

60. 15

El ltimo registro que necesita ser inicializado es el registro de

no estn se utilizando en cero.

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

cuatro diferentes clases semuestra

de interrupcionesdecomunicacin

como

en la figura 9. E s t a propiedad no5 permite disear

nuestro programa alrededor de eventos especficos que nosotros queramos interrumpir.

PARIDAD

I '

LONGITUD DEL CARACTER

ElTS DE PARO

TIPO DE PARIDAD HABlLlTAClON DE PARIDAD HABlLlTAClON DE UN BREAK( O LOGIC0 EN LA SALIDA SERIAL) DIRECCIONAMIENTO DE ENTRADA/SALIDA

FIGURA 7 Registro de control de linea

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

1 =ACTIVA TERMINAL 1 =ACTIVA TERMINAL DE DATOS

DE

DATOS

OUT 2 SALIDA AUXILIAR

1 =SE RECICLA EL UART

FIGURA 8 Registro da control de MODEM

RUPCIONDE DATOS RECIBIDOS FORZADOS A CERO DELREGISTRODERETENCION DE LA TRANSMISION


1 =HABILITA UNCARACTERDEERRORRECIBIDO 1 =HABILITA UNA INTERRUPCIONDE CAMBIO EN EL

FIGURA 9 Registro de habilitacicin de interrupcin

28

Comunicndonos con el 8250

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

t r a n s m i t i r un caracterdedatos,nosotrospodemossacarese el registroderetencinde vacio. Todos ltimoseencuentra datos.


10s caracteresrecibidospor

8250 pueden ser accesados desde

el registro recepci6n de de

El registro del estatus de linea puede s e r utilizado para decirnos


cuando podemos meter o sacar un caracter de datos. Este registro tiene el mismo valor que nos regresa el estatus de comunicaciones de el estatus de llamada del

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

nosotrosdebemosseguirmetiendo que pase

el registro a el microprocesador quequiera se

y observando el b i t 5 h a s t a que e s t e pase al e s t a d o de 1. Una vez


a 1, el siguiente caracter datos de

transmitirpodrsermandado delregistrodeestatus

a el registro retencin de

de la

transmisin. Despus de que .se haya mandado el caracter, el b i t 5


de linea s e pondr en O h a s t a que el

29

registroderetencinde aceptar otro caracter.

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

sobrecorrida (overrun) aparecer. Cuando que el 8250 reciba a el siguiente caracter.

el caracter es accesado,

el b i t O del registro del e s t a t u s de linea pasa al estado de O h a s t a

El registro del estatus de linea tambin es usado para d e t e c t a r


cualquier condicin de datos recibidos
con error o cualquier

condicin de un rompimiento recibido.

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

Una vez que el registro del

e s t a t u s d e linea ha sido acceSado, automticamente todos 105 b i t s

en el 8250. De e s t a manera, la
105

siguiente vez que se accesa este registro

bits se encontraran

aunque el programa no hayaprocesadoningn que tener cuidado esto con porque

error. Nosotros tenemos

nosotros tambin checamos registro este cuando deseamos

30

t r a n s m i t i r un caracter. 5 nosotros solamente checamos

el b i t 5 el

del registro, tal vez accesaremos un error sin que lo notemos.

El registro del e s t a t u s del modemnospermitedeterminar


estado de
las entradas control modem. de del

El e s t a t u s del
6105 es

modem regresado estatuslas del de llamadas del

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

de gran utilidad para programas que

se encuentran relacionados con seales de control del modem.

31

COMO FUNCIONA CADA MODULO.

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

R5232 y un Microcontrolador basado


el elemento principal cada de el diagrama elctrico en cada

modulo, el puerto 3 delmicrocontrolador

(de 8 bits)esutilizado

para asignar la direccinparticularde lo polariza a +Vcc como a en posicin

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

256 mdulos; ya que en

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

8 bits) cada una de las termirlales del mismo es conectado tanto a


una resistencia como a un interruptor, que forman parte del teclado
5010

que en e s t e caso, cada

uno de estos interruptores esta compuesto por un push-boton


a travs delcualseintroducen

ya
los

d a t o s que ms tarde sern transmitidos a la

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

desempear funciones. dichas Por

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

si esel momento de enviar informacin.


uno

Una vez establecidas las funciones que desempearn cada de los diferentes puertos analicemos de que manera funcionan mdulos.

los

El estado bsico de cada modulo es el de bsqueda o rastreo de


datosprovenientesdelteclado, menciono anteriormente. el cual, seencuentraconectado directamente a la entrada del puerto C del micro,

t a l como s e
el micro

Para llevar a cabo este rastreo,

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

PC; el numero de bits podria tomar el valor de 7 u 8 dependiendo del


el parmetro de comunicacibnR-Nbitaliniciodel el sistema esta diseado
un

programa pero, en nuestrocaso,como

para t r a b a j a r con un mximo de 256 mdulos, bastaracon

campo de direcciones de7 bits de longitud.

E l siguientesubprocedimientoconsiste
saber de que manera se irn introduciendo

en determinar que b i t b i t s d e llegada en el


a dicho registro se

ser recibido primero si el L5E o el M56,lo anterior con el objeto de


105

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

Una vez que s e ha detectado el bit arranque de

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

siguiente procedimiento consistente en el registro "Datos". Si modulomedio por de

en

la
la

transmisin dato del almacenado recibida y la preestablecida en el de CHECDIR se vuelve a repetir.

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

Para esto, se vale del procedimiento "Xmtr" el


los parmetros

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

ya sea el LSB o el M56. El


bits, ya sea el de arranque, el

de cada uno lo los que componen el campo de datos, el de paridad y


d e paro debe estar perfectamente relacionado con

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

bits de paridad y paro respec;tivamente, con lo cual, se finaliza la

y porconsiguiente,

el moduloregresa

a su

estadobsicodefuncionamiento,esdecir, anterior.

al r a s t r e od ed a t o s
el proceso

provenientes del teclado repitindose nuevamente todo

36

UTILIZANDO EL MICROCONTROLADOR PIC16C5X DESCRIPCIN GENERAL DEL FUNCIONAMIENTO DEL SISTEMA

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

tcnica de poleo. La tcnica de poleo en e s t e caso consiste en dar

y mandarestadireccin

a t r a v s del

puerto serie, cuando el microcontrolador capte el nmero que le fue asignado responder este mandando

la informacin haya que


t a l manera,que
el

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

existentes en el puerto serie, se proceder

a monitorearlos

aparezcan los datos correctos entregados por captacibn al microcontrolador.

A continuacibn se Iistan algunas de


microcontroladores de utilidad en la irnplernentaci6n del circuito.

las caracteristicas de los

la familia PIC16C5X que nos serian de

CARACTERSTICAS GENERALES DEL MICROCONTROLADOR:

- CPU de alto performance (tecnologa RISC)

Solamente contiene 33 instrucciones.

- Todas las instrucciones - Velocidad -

son de un 5610 ciclo (200n5)

de operacin de 20 MHz.

Bus de datos de 0 bits.

- EPROM interna (programable) de

512 - 2K x 12

- Registros de propsito general (SRAM)de 25 .- 72 x 0 - 7 Regietros para funciones especialesd e hardware

- Stack d e dos niveles.

- Modos de direccionamiento directo, indirecto, relativo y


para datos e instrucciones.

- De 12 a 20 pins (dependiendo del modelo) d e e/s.

Reloj de tiempo real de0 bits. Fusible de proteccin para la EPROM.

- tecnologa CMOS. - tecnologa


velocidad. CMOS en la EPROM, e5 decir, bajo poder y alta

- 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

instrucciones de cualesde constan ciclos. dos Estos

slo

ciclo.

Todas

las

instrucciones son de sencillo ciclo exceptoetiquetas las de microcontroladores dan un performance mucho mayor que

los

competidores que tienen un precio parecido. La facilidad de su uso y

la facilidad de aprenderse sus instrucciones reducen


creacin de algn sistema significativamente.

el tiempo de

Esta familia microcontroladores de estn equipados un con


equipo especial que logra reducir de energa, 5 e puede escoger osciladoresincluyendo el c o s t o del sistema y el c o n s ~ m o

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

para aadirles memorias


un ensamblador, un

EPROM con lo cual se reduce el c o s t o y el tamao del sistema.


con

un

circuito emulador

un

programador. Todas estas herramientas

son compatibles con IBM

39

"

LA FAMILIA PIC16C5X CONSTA DE LOS CHIPS:

EPROM CHIP

RAM 32 x 8 32 x 8 32 X 8
80

PUERTOS DE WS

PIC16C54 PIC16C55 512 PIC16C56 PIC 16C57

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

RAO RAl RA2 RA 3 R BO RB1 RB2 RB3 RB4


I

4 5 6 7 8

9 10
11 12 13 14
1

FIGURA 10: CONFIGURACIONES DE LOS PINES DEL PIC16C55

40

ARQUITECTURA:

Estosmicrocontroladores

son rnicrocomputadorasintegradas

en un chip que tienen un bajo ons sumo de potencia, alta velocidad y

son dispositivos CM05 que contienen EPROM, RAM, dispositivos de

EL3 y unidad de procesamiento central, todo un slo chip. en


La arquitecturaestabasada
registro con buses en un conceptodearchivos

de
e

memorias separados

para

datos

instrucciones (Arquitectura Harvard).

El bus y memoria de datos


que

(RAM) son de 8 bits mientras que el bus del programa y la memoria


del programa (EPROM) son de 12 bits. Este concepto permite se opere a una alta velocidad de t a l m a n e r a que
105

ciclos de Fetch

y Ejecucin de

se

lleven

cabo mediante instrucciones que mientras instruccin una se

sobreencimadas. Esto significa

ejecuta, la siguiente instrucci6n ya se comenz a leer de la memoria

del programa, este es el principio que tiene el concepto de PIPELINE


que utiliza la tecnologia R I X y que la hace superior a cualquier otro chip realizado con tecnologia CI5C.

41

TITLE PRUEBA3.ASM LIST P=16C57; processor type

;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

cal 1 decf sz goto R-over rnovf


I

bcf MOV F XORWF BTFSS goto goto

;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

bsf btfss bcf cal1 decfsz goto bsf call

;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

goto User redo-2

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

Guia de las comunicaciones del IBM/PC David Kruglinski Ed. OSBORNEIMcGraw-Hill

IBM PC Del laboratorio a la industria G. Apruzzese y C. Frauly Ediciones tcnicas REDE, S.A.

MICROCHIP DATA BOOK

1993 EDITION
MICROCHIP

EMBEDDED CONTROL HANDBOOK 1992 EDITION MICROCHIP

37

Potrebbero piacerti anche