Está en la página 1de 7

4.

6 EL PUERTO SERIE DEL MICROCONTROLADOR 8051

Comunicación serie

La comunicación serie se utiliza para que un sistema mande en serie los bits que representan
un carácter para enviarlo por una línea y reensamblarlo en forma paralelo en el extremo
receptor. La conservación paralelo- serie y serie- paralelo se hace utilizando registros de
corrimiento. En la mayoría de las comunicaciones es preferible usar la serie que la paralelo.

L a operación asincrónica se usa cuando la eficiencia en la transmisión no es muy importante y


la verificación de errores se hace por humanos. En la comunicación de datos, el uso del modo
asincrónico contra el asincrónico es basado en la economía y tradición al igual que en la
tecnología.

En un dispositivo asincrónico, el dispositivo transmisor enviara una señal conocida como


marca (usualmente un 1 lógico) mientras no tenga un dato que transmitir. Para indicar que
comenzara a transmitir un dato valido, el transmisor envía un bit 0. el cual se conoce como bit
de arranque. Después del bit de arranque el transmisor envía en dato compuesto por una
cantidad predefinida de bits ( de 5 a 8 bits)

Para indicar que termino la transmisión de un dato, el transmisor envía una señal conocida
como señal de para, esta señal puede ser 1,1.5 o 2 bits en nivel alto.

Ejemplo de una transmisión asincrónica.

D a to d e 5 a 8 b its
LSB M SB P P a ra r

Usar un solo bit de arranque en 0 es lo más aceptado en los sistemas de microcomputadoras.

Velocidad de comunicación del puerto serie

El intervalo de tiempo en el cual la señal de datos serie representa un digito binario relaciona
directamente la velocidad a la cual los datos son transmitidos. La velocidad de transmisión y
recepción de un teletipo es de 110 BAUDS.

Para 110 BAUDS


Tiempo de un bit =1/110=9.09 mseg
Tiempo de una palabra= 11* 9.09 mseg = 0.1 seg
Velocidad de las palabras = 10 caracteres/ seg.
110 BAUDS =caracteres/ seg = 80 bits/seg (bits de información incluyendo paridad)

Sin embargo la duración de un digito en un flujo de datos serie no es la forma en la cual se


mide la transferencia de los datos serie; Ens. Lugar se miden bits de información por segundo
y se refiere a esta como la razón de BAUDS.
Razón de BAUDS.

La velocidad en BAUDS en modo 0 se fija:

Baud en modo 0 = frecuencia del Oscilador


-------------------------------
12

La velocidad del modo 2 depende del valor del bit SMOD en PCON. Si SMOD = 0 la
velocidad será 1/64 de la frecuencia del oscilador, si SMOD = 1 será 1/32 de la frecuencia del
oscilador.

Baud en modo 2 = 2 SMOD


--------------= Frecuencia del Oscilador
64

En el 8051 las velocidades de los modos 1 y 3 se determinan por la frecuencia de la bandera


de sobre flujo del temer 1 y en el 8052 estas velocidades pueden ser determinadas por el timer
1 o por timer 2 o por ambos (unos para transmitir y otro para recibir)

Usando el Timer 1 para generar BAUD.

Cuando el timer 1 se usa para generar BAUD, la velocidad en modos 1 y 3 se determina con
la siguiente expresión:

Baud en modos 1,3 = 2 SMOD


--------------=Frecuencia de la bandera de sobre flujo del timer 1
32

L a interrupción del timer 1 será deshabilitada en esta aplicación. El timer mismo puede ser
configurado como timer o contador y en cualquier de sus 3 modos. En la mayoría de las
aplicaciones se configura como timer con el modo auto-carga (parte alta de TMOD = 0010B),
en este caso la velocidad esta dada por ka formula:

Baud en modos 1,3 = 2 SMOD = Frecuencia del Oscilador


------------- ------------------------------
32 12 ( 256- TH 1)

Se pueden lograr velocidades muy bajas con el timer dejando habilitada la interrupción y
configurando el timer a 16 bits ( parte alta de tmod = 0001 b), y usando la interrupción para
realizar la recarga por medio de programa.

La siguiente tabla muestra los modos del puerto serie para las diferentes velocidades de
BAUDS y como se utilizan:
Frecuencia
Razón de BUAD del SMOD Timer 1
Oscilador C/T modo Recarga

Modo 0 max:1MHz 12 MHz x x x x


Modo 2 max :375kHz 12 MHz 1 x x x
Modos 1,3 max 62.5kHz 12 MHz 1 0 2 FFH
19.2k Hz 11.059MHz 1 0 2 FFH
9.6k Hz 11.059MHz 0 0 2 FFH
4.8k Hz 11.059MHz 0 0 2 FFH
2.4k Hz 11.059MHz 0 0 2 F4H
1.2k Hz 11.059MHz 0 0 2 E8H
139.5 Hz 11.059MHz 0 0 2 1DH
110 Hz 6MHz 0 0 2 72H
110 Hz 12MHz 0 0 1 FEEBH

El punto serie 8051.

El puerto serial es un puerto “FULL DUPLEX”, lo cual significa que puede transmitir y
recibir datos simultáneamente. El receptor contiene un almacén “Buffer”, que permite
comenzar a recibir un segundo dato sin necesidad de que el primero haya sido completamente
leído del registro Buffer. Sin embargo si el primero byte permanece sin leer hasta el final de la
recepción del segundo dato, este se perderá.

El dato de la Recepción y de la Transmisión se encuentra en el registro SBUF del SFR


(espacio de funciones especiales)

REGISTRO DE CONTROL DEL PUERTO SERIAL SCON.

El puerto Serie puede ser operado en 4 modos diferentes que son especificados mediante la
escritura en los bits SM0 y SM1 del registro de Control del Puerto Serie.

SM0 SM1 SM2 REN TB8 RB8 T1 R1

Explicacíon

SMO SCON.7 Especifica el modo de control del puerto serie


SM1 SCON.6 Especifica el modo de control del puerto serie
SM2 SCON.5 Habilita la comunicación del tipo “multiprocesador “utilizando en los
modos 2 y 3.En estos modos, si SM2 = 1,R no es activado si el noveno
dato recibido (RB8) es 0. En modo 1,R1no es activado si no recibe un
bit de stop.
En el modo 0, SM2 será 0
REN SCON.4 Establece la recepción serie, cuando REN = 0 se desactiva la recepción
(por software)

TB8 SCON.3 Almacena el noveno bit que será transmitido en los modos 2y3

RB8 SCON.2 Es el noveno bit que fue recibido en los modos 2 y 3. En modo 1 , si
SM = 0, RB8 es el bit de stop recibido. En el modo RB8 no es usado.
T1 SCON.1 Bandera de interrupción de la transmisión. Activada por hardware al
final del octavo bit en el modo 0. o al principio del bit de stop en los
otros modos. Debe ser limpiado por software.

R1 SCON.0 Bandera de interrupción de la recepción. Activada por hardware al final


del octavo bit en el modo 0, o al tiempo de transmitido el bit de stop en
los otros modos. Debe ser limpiado por software.

Selección del modo de control del puerto:

SM0 SM1 MODO Especificacion BAUD RATE


0 0 0 Registro de corrimiento Frecuencia del oscilador/12
0 1 1 UART 8 bits Variable
1 0 2
UART 9 bits Frecuencia del oscilador/32 o 64
1 1 3
UART 9 bits Variable

Descripción de los modos de control

MODO 0: El dato serie entra y sale por R x D . La salida T x D contiene la señal de


reloj. 8 bits son transmitidos o recibidos siempre comenzando por el menos
significativo y al ultimo el más significativo; El dato se envía con una
velocidad fijada por 1/ 12 de la frecuencia de oscilación.

MODO 1: 10 bits son transmitidos por T x D o son recibidos por R x D . Un bit de


inicio en nivel lógico 0 ( bajo), 8 bits de datos (comenzando por el menos
significativo) y un bit de parada en nivel 1 lógico (alto). En el receptor el bit
de parada se carga en el RB8. La velocidad es variable.
MODO 2: 11 bits son transmitados por Tx D o son recibidos por Rx D un bit de inicio
en nivel lógico 0 ( bajo), 8 bits de datos (comenzando por el menos
significativo), un noveno bit de datos programables y un bit de parada de
nivel 1 lógico (alta) . El noveno bit en la transmisión (TB8 DEL SCON) se le
puede asignar cualquier valor de 0 o 1 o por ejemplo el bit de paridad ( P del
PSW). En el recptor el noveno bit va al RB8 del SCON mientras que el bit de
parada es ignorado. La velocidad es programable a 1/ 32 o 1/ 64 de la
frecuencia del oscilador.
MODO 3: 11bits son transmitidos por Tx D o recibidos por RxD.: un bit de inicio en
nivel 0 lógico (bajo), 8 bits de datos ( comenzando por el menos
significativo), un bit programable y un bit de parada en nivel 1 lógico
( alta).De hecho este modo es igual al modo 2, solo que la velocidad es
variable.

Comunicación entre varios microcontroladores

Los modos 2 y 3 tienen una característica especial para comunicarse entre varios micros. En
estos modos se reciben daros de 9 bits y el noveno bit va a RB8.Enseguida viene el bit de
parada, el puerto puede ser programado tal que cuando llegue un bit de parada, la interrupción
del puerto serie sea activada solo si RB8 = 1.Esta caracteristica es habilitada poniendo en 1 el
bit SM2 en SCON. Una manera de usar esta característica se muestra a continuación.

Cuando el procesador maestro quiere transmitir un bloque de datos a uno de varios esclavos,
primero envía un byte de dirección que identifica el esclavo destino.

Un byte de dirección se diferencia de un byte de datos en que el de dirección tiene su 9º bit en


1 y el de dato lo tiene en 0. Cuando SM2 =1, ninguno esclavo será interrumpido por un byte
de datos.

Un byte de dirección sin embargo interrumpirá a todos los esclavos para que puedan examinar
si son seleccionados o no. El esclavo diseccionado borrara su bit SM2 y se prepara para recibir
los datos que le enviara el maestro Los esclavos que no fueron seleccionados dejan su bit
SM2 en 1 tal que los datos seran ignorados por ellos.
TXD RXD TXD RXD TXD RXD RXD TXD TXD RXD TXD RXD

8051 8051 8051 8051 8051 8051

B .M U L T I- 8 0 5 1 IN T E R C O N N E C T -F U L L D U P L E X
A .M U L T I- 8 0 5 1 IN T E R C O N N E C T -H A L F D U P L E X

Esquema de conexión entre varios 8051

Protocolo para comunicación multi-procesador

 Esclavo -Configurar el puerto serie para interrumpir al CPU si recibe un 9º BIT


igual a 1

 Maestro -Transmitir el formato conteniendo la dirección en los primeros 8 bits y


poner en 1 el 9º.

 Esclavos-El puerto serie interrumpe al CPU cuando se recibe un formato de


dirección. El programa de servicio a la interrupción compara la dirección recibida a
la dirección propia. El esclavo que tenga la dirección recibida, reconfigura su
puerto serie para interrumpir al CPU en cada transmisión.

 Maestro-Transmite los formatos de control y datos (estos serán aceptados solo por
el procesador que reconoció su dirección. Poniendo SM2 en 0 ).

El bit SM2 no tiene efecto en modo 0 y en modo 1 se puede usar para comprobar la validez del
bit de parada. En recepción modo 1 si SM2= 1 ,la interrupción de recepción será activada solo
si un bit de parada valido se recibe.

También podría gustarte