capitulo 9 comunicaciones - hosting miarroba · 2008. 5. 27. · capitulo 9 comunicaciones 9.1....

23
El Microprocesador 8051 CAP 9 _________________________________________________________________________ ITMAR, Mazatlán 117 Ing. Rufino J. Domínguez Arellano CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo full- duplex, lo que significa que puede recibir y transmitir simultáneamente. Como receptor tiene un buffer que le permite recibir un segundo byte, antes de que el byte previamente recibido haya sido leído por el registro receptor. (Sin embargo, si el primer byte no ha sido leído en el tiempo en que el segundo byte se completa, uno de los dos bytes se pierde.) A los registros receptor y transmisor de los puertos serie se accede por un único registro que se denomina SBUF, estando situado en la dirección 99H del SFR (Special Function Register). Escribiendo en el SBUF carga el byte a transmitir y leyendo del SBUF se accede al byte recibido. El puerto serie puede operar en cuatro modos seleccionados utilizando los bit 6 = SM1 y bit 7 = SM0 del registro SCON (Apartado 9.3): Modo 0: Los datos en serie entran y salen a través de la línea RXD. TXD presenta los impulsos de desplazamiento del reloj. La palabra de información a transmitir o recibir es de 8 bits, siendo el primero en salir o en llegar el bit menos significativo. La velocidad de transmisión expresada en baudios (baudio = bits/seg) está dada por la relación 1/12 de la frecuencia de reloj del microcontrolador . Modo 1: Es una comunicación más acorde con los estándares habituales. Utiliza 10 bits que son transmitidos a través de TXD o recibidos a través de RXD. Los bits utilizados tienen la siguiente función: - 1 bit de start (0) (señala el comienzo). - 8 bits de datos (LSB = primero). -1 bit de stop ( 1 ). La velocidad de transmisión puede ser ajustada por el usuario dentro de un amplio rango. Modo 2: Transmite a través de TXD y recibe por RXD como en el caso anterior. Utiliza 11 bits distribuidos de la siguiente forma: -1 bit de slart (0). -8 bits de datos (LSB primero). -1 bit de dato (9. 0 bit) (programable). -1 bit de Stop (1)

Upload: others

Post on 17-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 117 Ing. Rufino J. Domínguez Arellano

CAPITULO 9

Comunicaciones

9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo full-duplex, lo que significa que puede recibir y transmitir simultáneamente. Como receptor tiene un buffer que le permite recibir un segundo byte, antes de que el byte previamente recibido haya sido leído por el registro receptor. (Sin embargo, si el primer byte no ha sido leído en el tiempo en que el segundo byte se completa, uno de los dos bytes se pierde.) A los registros receptor y transmisor de los puertos serie se accede por un único registro que se denomina SBUF, estando situado en la dirección 99H del SFR (Special Function Register). Escribiendo en el SBUF carga el byte a transmitir y leyendo del SBUF se accede al byte recibido. El puerto serie puede operar en cuatro modos seleccionados utilizando los bit 6 = SM1 y bit 7 = SM0 del registro SCON (Apartado 9.3):

• Modo 0: Los datos en serie entran y salen a través de la línea RXD. TXD presenta los impulsos de desplazamiento del reloj. La palabra de información a transmitir o recibir es de 8 bits, siendo el primero en salir o en llegar el bit menos significativo. La velocidad de transmisión expresada en baudios (baudio = bits/seg) está dada por la relación 1/12 de la frecuencia de reloj del microcontrolador .

• Modo 1: Es una comunicación más acorde con los estándares habituales.

Utiliza 10 bits que son transmitidos a través de TXD o recibidos a través de RXD. Los bits utilizados tienen la siguiente función: - 1 bit de start (0) (señala el comienzo). - 8 bits de datos (LSB = primero). -1 bit de stop ( 1 ). La velocidad de transmisión puede ser ajustada por el usuario dentro de un amplio rango.

• Modo 2: Transmite a través de TXD y recibe por RXD como en el caso anterior. Utiliza 11 bits distribuidos de la siguiente forma: -1 bit de slart (0). -8 bits de datos (LSB primero). -1 bit de dato (9.0 bit) (programable). -1 bit de Stop (1)

Page 2: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 118 Ing. Rufino J. Domínguez Arellano

El noveno bit, en la transmisión, puede ser «0» o «1» y es la imagen del bit TB8 en el registro SCON. Así, el bit de paridad (P, en PSW) puede ser cargado en TB8 y asignado a este noveno bit en la transmisión. En la recepción este noveno bit se refleja en el bit RB8 del registro SCON, mientras el bit de Stop es ignorado. La velocidad de transmisión es programable bien a 1/32 o 1/64 de la frecuencia del oscilador.

• Modo 3: Como en el caso anterior, 11 bits son transmitidos a través de TXD

o recibidos por RXD, de la siguiente manera: -1 bit de slart (0). -8 bits de datos (LSB primero). -1 bit de dato (9.o bit). -1 bIt de stop ( 1).

Como se puede observar, el Modo 3 es igual al Modo 2 excepto en la velocidad de transmisión. En el Modo 3 la velocidad de transmisión puede ser ajustada por el usuario dentro de un amplio rango.

En los cuatro modos, la transmisión es iniciada mediante cualquier instrucción que use el registro SBUF como destino. La recepción se inicia en MODO 0 por la condición R1=0 y REN=1 y en los otros modos Modo 1, 2 y 3, cuando se recibe el bit start y REN=1.

9.2. COMUNICACIONES EN EL ENTORNO MULTIPROCESADOR Los Modos 2 y 3 tienen una especial adaptabilidad para las comunicaciones en el entorno multiprocesador. En estos modos se reciben 9 bits de datos, siendo capturado el noveno para el indicador RB8 del registro SCON y finaliza con el bit de stop. El puerto puede ser programado de tal manera que, cuando el bit de stop se recibe, la interrupción del puerto serie se activará, sólo si RB8 =1. Esta opción es permitida activando el bit SM2 en el registro SCON. Veamos seguidamente una forma de utilizar esta opción en el entorno multiprocesador. Cuando el procesador «maestro» quiere transmitir un bloque de datos a uno de los «esclavos», primero envía un byte de dirección que identifica el «esclavo». Un byte de dirección difiere de un byte de datos en que el «noveno bit» es «1» en el byte de dirección, y «0» en el byte de datos. Con SM2 =1, ningún «esclavo» será interrumpido por el byte de datos. Un byte de dirección, sin embargo, interrumpirá a todos los «esclavos», de manera que cada uno pueda examinar el byte recibido y ver si se refiere a su dirección para entrar en comunicación con el «maestro». El «esclavo» direccionado borrará el bit SM2 y se preparará para recibir el byte de datos que le será enviado. Los procesadores «esclavos» que no han sido direccionados dejan activo su bit SM2 y continúan sus procesos ignorando el byte de datos que es enviado por el «maestro».

Page 3: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 119 Ing. Rufino J. Domínguez Arellano

SM2 no tiene ningún efecto en Modo 0, y en Modo 1 puede utilizarse para compro- bar la validez del bit de Stop. En una recepción en Modo 1, si SM2=1, la interrupción de la recepción no se verá activada a no ser que se reciba un bit de Stop válido, es decir, a nivel alto.

9.3. EL REGISTRO DE CONTROL DEL PUERTO SERIE (SCON) El registro SCON (Serial PorI Control Register) (Cuadro 9.1) es el registro de control y de estado del puerto serie, situado en el SFR. Este registro contiene:

-Modo de trabajo {Modo 0, 1, 2 y 3) y de selección de velocidad de comunicación. -Noveno bit de dato para transmitir y recibir (TB8 y RB8). -Gestión de interrupciones del puerto serie (TI y RI).

CUADRO 9.1

Page 4: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 120 Ing. Rufino J. Domínguez Arellano

9.4. VELOCIDAD DE COMUNICACION La velocidad en baudios de comunicación en Modo 0 se fija por la relación:

12oladosmicrocontr deloscilador del frecuencia 0 modoen BAUDIOS =

Los baudios en, Modo 2 dependen del valor del bit 7 (SMOD) del registro PCON en el SFR. Si SMOD =0 (valor por defecto después del RESET) los baudios son 1/64 de la frecuencia del oscilador-reloj del microcontrolador. Si SMOD = 1 la velocidad de comunicación es 1/32 de la frecuencia del oscilador-reloj del microcontrolador, es decir:

oscilador) del frecuencia(64

2 2 modoen BAUDIOSSMOD

=

En el 8051, los baudios en, Modo 1 y 3 son determinados por la relación de «desbordamiento» del Timer 1. En el 8052 la velocidad de comunicación puede ser obtenida utilizando el Timer 1 o el Timer 2 o con ambos (uno para transmitir y el otro para ret:ibir).

9.4.1. El Timer 1 como generador de baudios Cuando el Timer 1 es utilizado como generador de baudios, éstos son obtenidos en Modo 1 y 3, por el valor de carga y «desbordamiento» del registro contador del Timer y el valor de SMOD como sigue:

1)Timer entodesbordami derelación (32

2 3y 1 modosen BAUDIOSSMOD

=

El Timer 1I puede ser configurado bien como temporizador o como contador y en cualquiera de sus tres modos. Se aconseja, porque así se utiliza en la mayoría de las aplicaciones, configurarlo como temporizador en modo autorrecarga (TMOD = 20H). En este caso los baudios vienen dados por la fórmula:

=

TH1) - 12(256oscilador del frecuencia

322 3y 1 modosen BAUDIOS

SMOD

Page 5: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 121 Ing. Rufino J. Domínguez Arellano

Se pueden lograr velocidades de comunicación muy bajas con el Timer 1, permitiendo la interrupción y configurando el Timer para el conteo con 16 bits (TMOD = 10H) y usando la interrupción del Timer para efectuar la recarga sobre el registro de conteo. La Tabla 9.1 lista algunas de las velocidades de comunicación comúnmente utilizadas y cómo pueden ser obtenidas utilizando el Timer 1.

TABLA 9.1

Así, por ejemplo, para obtener una velocidad de comunicación de 9.600 baudios con el Timer 1 en modo «autorrecarga» como temporizador. Es decir, con el Timer 1 en Modo 2. Si SMOD = 0, y TH1 = FDH = 253, y aplicando la fórmula:

=

TH1) - 12(256oscilador del frecuencia

322 3y 1 modosen BAUDIOS

SMOD

960083.9599253) - 12(256

11059x10321 BAUDIOS

3

≅=

=

9.4.2. El Timer 2 como generador de baudios En el 8052 el Timer 2 es configurado como generador de baudios inicializando TCLK y/o RCLK en el registro T2CON tal como se indica en el Cuadro 9.2

Page 6: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 122 Ing. Rufino J. Domínguez Arellano

CUADRO 9.2

Se puede observar a la derecha de la Figura 9.1, que las velocidades en baudios para la transmisión y recepción pueden ser diferentes, según se active RCLK y/o TCLK y así poder actuar simultáneamente con el Timer 1 y el Timer 2. EI modo generador de baudios actúa de forma similar que el modo «autorrecarga» estudiado en el Capítulo 7. Al producirse el ciclo de «desbordamiento» en TH2, los registros de conteo del Timer 2 son recargados con los valores de 16 bits de los registros RCAP2H y RCAP2L que previamente fueron inicializados por software. Los baudios en Modo 1 y 3 son determinados por la relación de desbordamiento del Timer 2. De una forma general se pueden expresar así:

162Timer entodesbordami deRelación 3y 1 modosen BAUDIOS =

Figura 9.1

Page 7: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 123 Ing. Rufino J. Domínguez Arellano

Concretando, el Timer 2 puede ser configurado bien como temporizador o como contador. En la mayoría de las aplicaciones se configura como Timer (C/T2 =0). La operación como Timer en el modo «generador de baudios» es un poco diferente de la estudiada como «temporizador» en el Apartado 7.3.2. Normalmente como «temporizador común» el registro de conteo se incrementaba cada ciclo máquina, es decir, a 1/12 de la frecuencia del oscilador. Como «generador de baudios» se incrementa cada periodo de estado, es decir, a 1/2 de la frecuencia del oscilador. En este caso los baudios están dados por la fórmula:

RCAP2L):RCAP2H - (65536 32oscilador del frecuencia 3y 1 modosen BAUDIOS =

donde (RCAP2H:RCAP2L) es el contenido de dichos registros en formato de 16 bits, como enteros y sin signo. Un estudio más detallado de la Figura 9.1 indica que para que actúe como «generador de baudios» debe ser RCLK = TCLK = 1 en T2CON, como indica la figura. El ciclo de «desbordamiento» en TH2 no activa el indicador TF2 ni produce interrupción, aspecto este que podría darse en los timers del Capítulo 7. Por consiguiente, cuando se utilice el Timer 2 como «generador de baudios» no se debe desactivar la interrupción del Timer 2. Obsérvese además que, si EXEN2 se activa, una transición descendente en el pin T2EX activará la bandera EXF2, pero no causará recarga del Timer 2. Así pues, cuando el Timer 2 se utilice como generador de baudios, T2EX puede ser empleado, si se desea, como un generador de interrupciones externas. Se aconseja no leer ni escribir los registros TH2 y TL2 cuando el Timer 2 está trabajando {TR2=1) como «generador de baudios». Bajo estas condiciones el registro de conteo se incrementa cada periodo de «estado» y el resultado de una lectura o escritura puede producir una pérdida de exactitud en la evaluación del tiempo. Los registros RCAP pueden ser leídos, pero no deben ser escritos, puesto que se podría producir solapamiento en la «recarga» y originar errores de escritura y/o recarga. Si se desean hacer estas operaciones, desconéctese el Timer 2 (desactivar TR2) antes de acceder al Timer 2 o a los registros RCAP. A continuación describiremos en detalle los cuatro modos de operación.

9.5. COMUNICACIONES EN MODO 0. Este modo se establece desde los bits 6 y 7 {SM0-SM1) de SCON {Véase Cuadro 9.1 ).

Page 8: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 124 Ing. Rufino J. Domínguez Arellano

Como se ha dicho anteriormente la entrada y salida de datos en serie se produce a través del pin 10 {RXD) del microcontrolador. El pin 11 (TXD) es la salida de los pulsos de desplazamiento {Shift Clock). Ocho bits de datos se transmiten o reciben comenzando por el menos significativo {LSB). La velocidad es fija y corresponde a 1/12 de la frecuencia del oscilador del microcontrolador. En la Figura 9.2 se muestra un diagrama simplificado y funcional del puerto serie en Modo 0. Para poder seguir mejor el proceso de comunicación en Modo 0, utilícense los cronogramas de la Figura 9.3 al tiempo que se lee el siguiente texto. La transmisión es iniciada por cualquier instrucción que utiliza SBUF como registro de destino. La señal de «escritura en SBUF» en el estado S6P2, también carga un «1» en la posición novena del registro de desplazamiento de transmisión e indica al bloque control TX que comience la transmisión. El intervalo de tiempo que transcurre desde «la escritura en SBUF» y la activación de la señal de control SEND es igual aun ciclo máquina completo. SEND autoriza la salida del dato contenido en el registro de desplazamiento de una forma alternada a través del pin 10 {RXD =P3.0) y también autoriza la salida de la señal de reloj simétrica (Shjft Clock) a través del pin 11 {TXD =P3.1 ). La señal TXD {SHIFT CLOCK) está a nivel bajo durante los estados S3, S4 y S5 de cada ciclo máquina, ya nivel alto durante los estados S6, S1 y S2. En la fase S6P2 de cada ciclo máquina en el que SEND es activa, el contenido del registro de desplazamiento transmisor se desplaza a la derecha una posición. Por cada bit de dato que se desplaza al exterior por la derecha un bit «cero» ingresa por la izquierda. Cuando el bit más significativo {MSB) del byte de datos está en la posición de salida del registro de desplazamiento, entonces el «1» que fue inicialmente cargado en la posición novena se encuentra a la izquierda del MSB y todas las posiciones a la izquierda de éste contienen «ceros». Esta condición previene al bloque de control TX para que haga un último desplazamiento, desactive SEND y active la señal de interrupción TI. Estas acciones ocurren en la fase S1P1 del décimo ciclo máquina después de «escribir en SBUF». La recepción es iniciada por la condición REN =1 y R1 =0. En la fase S6P2 del siguiente ciclo máquina, la unidad de control RX escribe los bits 11111110 en el registro de desplazamiento receptor, y en la siguiente fase de reloj activa RECEIVE. La señal de control RECEIVE autoriza la salida de la señal de reloj simétrica SHIFT CLOCK por la línea TXD. SHIFT CLOCK efectúa la transición en la fase S3P1 y S6P1 de cada ciclo máquina. En la fase S6P2 de cada ciclo máquina en que la señal de control RECEIVE es activa, el contenido del registro de desplazamiento receptor es desplazado a la izquierda una posición. El bit que

Page 9: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 125 Ing. Rufino J. Domínguez Arellano

ingresa desde el exterior por la derecha es el bit de dato que ha sido muestreado en el pin 10 (RXD=P3.0) en la fase S5P2 del mismo ciclo máquina.

Figura 9.2 Como los bits de datos entran por la derecha, los «unos» cargados inicialmente son desplazados «afuera» por la izquierda. Cuando el «0» cargado inicialmente se encuentre en el extremo izquierdo del registro de desplazamiento, entonces el bloque de control RX hace un último desplazamiento y carga SBUF, con el byte ingresado. En el estado S1P1 del décimo ciclo máquina después de la escritura en SCON, la señal de control RECEIVE es borrada y la bandera de interrupción RI es puesta a «1».

Page 10: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 126 Ing. Rufino J. Domínguez Arellano

Figura 9.3

9.5.1. Resumen comunicaciones en Modo 0 -Longitud palabra dato: 8 bits. Primero el bit LSB. -Formato palabra dato:

Page 11: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 127 Ing. Rufino J. Domínguez Arellano

- Esquema simplificado de comunicaciones:

Figura 9.4

Ejercicio 9.1. Transmisión en Modo 0

• Objetivos

-Programar el puerto serie como transmisor en Modo 0. -Transmitir por el puerto serie el byte que se introduce en paralelo por el Puerto 0. -Obtener la señal de sincronismo y visualizarla por el pin TXD.

• Esquema Como se ha indicado en los objetivos, por la línea RXD se obtiene el byte de datos que previamente se captura en paralelo por el Puerto 0, como se indica en la

Page 12: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 128 Ing. Rufino J. Domínguez Arellano

Figura 9.5, la señal de sincronismo se obtiene en el pin TXD. El dato que se transmite en el ejemplo es AAH.

Figura 9.5

ETIQUETA CODIGO

MOV SCON, #00 ; Pto. Serie en Modo 0. Transmisión. CLR P2.0 ; Bit de aviso de transmision en cero.

B0205: MOV A, P0 ; Dato a transmitir. MOV SBUF, A ; Inicia la transmisión. SETB P2.0 ; Avisa que inicia la transmisión.

B020B: MOV A, SCON JZ B020B ; ¿Ya se transmitió el 8º bit ? CLR P2.0 ; Borra bit de aviso de transmisión. LCALL SUB1 ; Solo un retardo. CLR .TI ; Borro bandera de interrupcion. ; Esto permite que haya otra transmisión

SJMP B0205 ; Empiezo de nuevo. ;

SUB1: MOV R0, #01 ; Rutina de retardo. B0302: MOV R1, # 03 B0304: MOV R2, #05 B0306: DJNZ R2, B0306

DJNZ R1, B0304

DJNZ R0, B0302 RET

Page 13: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 129 Ing. Rufino J. Domínguez Arellano

Ejercicio 9.2. Recepción en Modo 0

• Objetivos -Programar el puerto serie como receptor en Modo 0. -Recibir en el puerto serie el byte que se envía desde el exterior por el pin RXD. -Efectuar el tratamiento de la comunicación utilizando interrupciones.

• Esquema del montaje En la Figura 9.6 se observa cómo el dato se introduce utilizando un pulsador; la frecuencia de captura en el pin RXD es tan elevada que sólo se puede observar la presencia de «unos» o «ceros» en el Puerto 0 de salida.

Figura 9.6

Page 14: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 130 Ing. Rufino J. Domínguez Arellano

En el pin TXD se tendrán los impulsos de sincronismo que se corresponden con los pulsos de reloj del registro de desplazamiento.

• Listado del programa

ETIQUETA CODIGO ORG 0023H

LJMP 0400 ; ;------------------------------------------------------------------------- ; Inicialización ORG 200H

B0200: MOV IE, #90 MOV SCON, #10 LCALL RETARDO SJMP B0200 ; ;------------------------------------------------------------------------ ; Rutina de RETARDO ORG 300H

RETARDO: MOV R0, #02 B0302: MOV R1, #FF B0304: MOV R2, #FF B0306: DJNZ R2, B0306

DJNZ R1, B0304 DJNZ R0, B0302 RET ; ;----------------------------------------------------------------------- ; Rutina de Interrupción

; Realiza las siguientes tareas: ; 1) Sale del modo de recepción. ; 2) Salva registros en el slack. ; 3) Carga el contenido de SBUF en el ACC. ; 4) Visualiza el dato en paralelo en el Pulerlo P0 ; 5) Temporiza su visualizaci6n. ; 6) Repone los registros del slack. . ; ORG 400H MOV SCON, #00 MOV A.R0 PUSH ACC MOV A, R1

Page 15: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 131 Ing. Rufino J. Domínguez Arellano

PUSH ACC MOV A, R2 PUSH ACC MOV A, SBUF MOV P0, A LCALL RETARDO POP ACC MOV R2, A POP ACC MOV R1, A POP ACC MOV R0, A RETI

9.6. COMUNICACIONES EN MODO 1 Seleccionado desde el registro SCON (Cuadro 9.1 ). En esta opción 10 bits se transmiten a través del pin 11I (TXD=P3.1) o se reciben a través del pin 10 (RXD=P3.0), de la siguiente manera: - 1 bit de Start (0). - 8 bits de datos (el primero, el LSB). - 1 bit de stop (1). En recepción el indicador RB8 del registro SCON es la imagen del bit de stop. En el 8051 los baudios vienen dados por la razón de desbordamiento del Timer 1 .En el 8052, vienen dados bien por la razón de desbordamiento del Timer 1 o del Timer 2, o de ambos (uno para transmitir y el otro para recibir). La Figura 9.7 muestra, de forma simplificada, un diagrama en bloques del puerto serie en Modo 1 y la Figura 9.8 presenta el cronograma de las operaciones secuenciadas en el tiempo de transmisión y recepción. La transmisión se inicia con cualquier instrucción que utilice SBUF como registro destino. La escritura en SBUF también carga un «1» en la posición del noveno bit del registro de desplazamiento transmisor y alerta a la unidad de control TX que una petición de transmisión ha sido solicitada. La transmisión comienza realmente en la fase S1P1 del siguiente ciclo máquina que resulta después del ciclo de desbordamiento del contador del timer dividido por 16 (así pues, «el tiempo de bit» está sincronizado por el contador divisor por 16 y no por la señal de «escritura en SBUF»).

Page 16: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 132 Ing. Rufino J. Domínguez Arellano

Figura 9.7

La primera operación de la unidad de control TX es activar la señal de control SEND que pone el bit de start en el pin TXD. Un tiempo de bit más tarde, la señal DATA se activa, lo que autoriza la salida del «bit» del registro de desplazamiento transmisor a través del pin TXD. El primer pulso de desplazamiento ocurre un «tiempo de bit» más tarde de la salida del primer bit de dato, como se puede ver en el cronograma. Como los bits de datos son desplazados al exterior por la derecha, sus lugares son reemplazados por ceros por la izquierda. Cuando el MSB del byte de datos está en la posición de salida del registro de desplazamiento, entonces el «1», que ha sido inicialmente cargado en la novena posición, está a la izquierda del bit MSB y el resto de posiciones a su izquierda están cargadas con ceros. Estas condiciones alertan a la unidad de control TX para que realice un último

Page 17: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 133 Ing. Rufino J. Domínguez Arellano

desplazamiento y desactive la señal SEND y active el indicador TI (petición de interrupción). Esto ocurre en el décimo ciclo de desbordamiento del contador divisor por 16 después de la instrucción de «escritura en SBUF».

Figura 9.8 La recepción es iniciada al detectar la transición (flanco descendente) en el pin RXD. Por este motivo este pin es muestreado a razón de 16 veces independientemente de la velocidad en baudios que haya sido establecida. Cuando una transición ha sido detectada, el contador divisor por 16 es inmediatamente puesto a «cero» y el dato 1FFH se escribe en el registro de desplazamiento. Poniendo a «cero» el contador divisor por 16, sincroniza los ciclos de desbordamiento con los tiempos de bit entrantes. Los 16 estados del contador dividen cada «tiempo de bit» en 16 intervalos. En los estados 7, 8 y 9 de cada «tiempo de bit>, el «bit detector» muestrea el valor de RXD. El valor aceptado es el que ha sido leído en al menos dos de las tres muestras. Esto se hace para rechazar el ruido eléctrico. Si el valor aceptado durante el primer «tiempo de bit> no es «cero», los circuitos receptor son reseteados y la unidad vuelve a alertarse para detectar otra transición de flanco descendente. Esto está previsto para rechazar falsos bits de start. Si el bit de start resulta correcto, se desplaza dentro del registro de desplazamiento y lo mismo haría con el resto de la cadena de bits. Como los bits de datos ingresan en el registro de desplazamiento por la derecha, los «unos» son desplazados fuera por la izquierda. Cuando el bit de Start llega a la posición novena, la más extrema a la izquierda del registro de desplazamiento, alerta al bloque de control RX para hacer un último desplazamiento, carga SBUF y RB8, y activa la señal RI (interrupción). La señal para cargar SBUF y RB8, y para

Page 18: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 134 Ing. Rufino J. Domínguez Arellano

activar RI, se generará si las siguientes condiciones son satisfechas en el momento en que el pulso final de desplazamiento se genera: -- 1) R1=0, y -- 2) bien SM2=0, o el bit de Stop recibido es igual a «1». Si cualquiera de estas dos condiciones no se cumplen, la cadena de bits se pierde irremediablemente. Si ambas condiciones se cumplen, el bit de Stop se alojará en el indicador RBI, los 8 bits se ubicarán en el registro SBUF, y RI se activará. En este intervalo de tiempo, tanto si las condiciones indicadas se cumplen como si no, la unidad vuelve a muestrear el pin RXD para ver si se produce un flanco descendente.

9.6.1, Resumen comunicaciones en Modo I - Longitud palabra dato: 10 bits. Primero el bit LSB. - Formato palabra dato:

- Esquema simplificado de comunicación:

-Velocidad de comunicación:

• Modo de carga y desbordamiento del Timer 1:

)(32

2 BAUDIOSSMOD

entodesbordami=

Page 19: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 135 Ing. Rufino J. Domínguez Arellano

• Timer I como temporizador con «autorrecarga»:

=

TH1) - (256 12oscilador del frecuencia

322 BAUDIOS

SMOD

• También utilizando el Timer 2 (véase Apartado 9.4.2),

-Transmisión : Comienza: Escribiendo el dato en SBUF

Termina: Activando el indicador TI

- Recepción : Comienza: Cuando REN=1 y se detecta un flanco descendente (bit start) en RXD. Termina: Activando la bandera RI

9.7. COMUNICACIONES EN LOS MODOS 2 Y 3 En esta opción 11 bits se transmiten a través de TXD, o se reciben a través de RXD, de la siguiente manera: - 1 bit de slart (0) - 8 bits de datos (el primero el LSB), - 1 bit noveno programable. - 1 bit de Stop (1). En la operación de transmisión el noveno bit de datos es la imagen del bit TB8 perteneciente al registro SCON, pudiendo asignarle el valor «0» o «1». En recepción el noveno bit de datos se refleja en el bit RB8 del registro SCON. La Figura 9.9 muestra el diagrama en bloques del puerto serie en el Modo 2. El Modo 3 presenta el mismo diagrama en bloques que el Modo 1 (Figura 9.7), siendo las diferencias mínimas, como se desprende de las explicaciones que siguen a continuación.

Page 20: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 136 Ing. Rufino J. Domínguez Arellano

Figura 9.9 El cronograma representado en la Figura 9.10 muestra las operaciones secuenciadas en el tiempo para la transmisión y recepción en el Modo 2 y 3. Las diferencias, como se aclararán en las explicaciones que siguen, residen en la velocidad de comunicación que en el Modo 2 es fija, mientras que en el Modo 3 la velocidad de comunicación es variable.

Page 21: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 137 Ing. Rufino J. Domínguez Arellano

Figura 9.10 Como en los otros modos, la transmisión se inicia por una instrucción que utilice el registro SBUF como destino. La señal de escritura en SBUF, también carga TB8 en la posición del noveno bit del registro desplazamiento transmisor y alerta a la unidad de control TX para que proceda a la transmisión una vez sea solicitada. La transmisión comienza en la fase S1P1 del ciclo de máquina siguiente que resulta a partir del desbordamiento del contador del timer dividido por 16 (así pues, el «tiempo de bit» está sincronizado con el contador divisor por 16, no con la señal de «escritura en SBUF») (Figura 9.10). La unidad de control TX comienza su gestión con la activación de SEND que pone el bit de Starl en el pin TXD. Un «tiempo de bit» más tarde DATA se activa autorizando la salida de los bits del registro de desplazamiento de transmisión a través de TXD. El primer pulso de desplazamiento ocurre un «tiempo de bit» después de la salida del primer bit de datos. También, en ese mismo instante, el registro de desplazamiento envía un «1» (bit de Stop), que ocupa la posición del noveno bit en el registro de desplazamiento. Después, sólo «ceros» se almacenan en dicho registro. Así pues, como los bits de dalos son desplazados al exterior por la derecha, por la izquierda se introducen bits «ceros». Cuando el bit reflejado de TB8 en el registro de desplazamiento está en la posición de salida, entonces el bit de Stop se encuentra justo a la izquierda del TB8 y todos los bits a la izquierda de éste son «ceros». Esta condición alerta a la unidad de control TX para que haga el último desplazamiento y entonces desactive SEND y active el indicador TI (interrupción en la transmisión). Esto sucede en el undécimo ciclo de desbordamiento del contador-divisor por 16 después de la «escritura en SBUF».

Page 22: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 138 Ing. Rufino J. Domínguez Arellano

La recepción se inicia al detectar en el pin RXD una transición descendente. Por este motivo el pin RXD es muestreado a razón de 16 veces, independientemente de la velocidad en baudios establecida. Cuando una transición ha sido detectada, el contador-divisor por 16 es inmediatamente puesto a «cero» y el dato 1FFH se escribe en el registro de desplazamiento. En los eslados 7, 8 y 9, correspondientes al intervalo de un «tiempo de bit», el «detector de bit» muestrea el valor de RXD. El valor aceptado es el que ha sido leído en al menos dos de las tres muestras. Si el valor aceptado durante el primer «tiempo de bit> no es «cero», los circuitos receptores son puestos a «cero» y la unidad vuelve a alertarse para detectar una nueva transición de flanco descendente. Si el bit de start resulta correcto, éste es ingresado en el registro de desplazamiento, y lo mismo sucederá con el resto de la cadena. Como los bits de datos ingresan en el registro de desplazamiento por la derecha, los «unos» son desplazados al exterior por la izquierda. Cuando el bit de Stara llega a la posición más extrema ala izquierda del registro de desplazamiento (que en los Modos 2 y 3 es el noveno bit), alerta al bloque de control RX para hacer un último desplazamiento, carga SBUF y RB8 y activa el indicador RI (interrupción en e] modo receptor). La señal para cargar SBUF y RB8, y para activar RI, se genera si las siguientes condiciones son satisfechas en el momento en que el pulso final de desplazamiento se produce: - 1) RI =-O y - 2) bien SM2 =0; o el noveno bit recibido es igual a «1». Si cualquiera de estas condiciones no se cumple, la cadena recibida se pierde y RI no se activa. Si ambas condiciones se cumplen, el noveno bit de datos se alojará en la bandera RBI, y los primeros 8 bits de datos se alojarán dentro del registro SBUF. Un «tiempo de bit> más tarde, se cumplan o no las condiciones indicadas más arriba, la unidad vuelve a comprobar la transición descendente en la entrada RXD. Obsérvese que el valor del bit de Stop recibido es irrelevante para SBUF, RB8 o RI.

9.7.1. Resumen comunicaciones Modo 2 y 3 - Longitud palabra dato: 11 bits. - Formato palabra dato:

Page 23: CAPITULO 9 Comunicaciones - Hosting Miarroba · 2008. 5. 27. · CAPITULO 9 Comunicaciones 9.1. INTRODUCCION El puerto serie de los Microcontroladores 8052/8051 trabaja en el modo

El Microprocesador 8051 CAP 9

_________________________________________________________________________ ITMAR, Mazatlán 139 Ing. Rufino J. Domínguez Arellano

- Velocidad de comunicación: Se puede utilizar el Tirner 1 o el Tirner 2.

• Para el Modo 2:

)oscilador del frecuencia(64

2 BAUDIOSSMOD

=

• Para el Modo 3 (velocidad variable):

=

TH1) - (256 12oscilador del frecuencia

322 BAUDIOS

SMOD

- Transmisión: Comienza: Escribiendo en SBUF

TermIna: ActIvando el indicador TI

- Recepción : Comienza: Cuando REN=1 y se detecta un flanco

descendente (bit Start) en RXD

Termina: Activando el indicador RI