1. CIRCUITOS DIGITALES IICIRCUITOS DIGITALES II
USART: Transmisor/ReceptorUSART: Transmisor/Receptor SSííncrononcrono/As/Asííncrono seriencrono serie
Ing. Fernando Aparicio Urbano Molano
2. 2
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
INTRODUCCIINTRODUCCIÓÓNN
Existen dos formas de intercambiar información binaria o
digital: la paralela y la serial. La comunicación paralela
transmite todos los bits de un dato de manera simultánea y
tiene la ventaja que la transferencia es rápida, pero la
desventaja de necesitar una gran cantidad de hilos o
líneas, situación que encarece los costos y se agrava
cuando las distancias que separan los equipos entre los
cuales se hace el intercambio es muy grande, debido a las
capacitancias entre los conductores, la cual limita el
correcto intercambio de datos a unos pocos metros.
3. 3
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
INTRODUCCIINTRODUCCIÓÓN (2)N (2)
La comunicación serial transmite un bit a la vez, por lo cual
es mucho más lenta, pero posee la ventaja de que necesita
mucho menor número de líneas para la transferencia de la
información y las distancias a la cual se puede realizar el
intercambio, es mayor; a esto se suma que mediante
dispositivos como los modems, la comunicación se pueda
extender prácticamente a cualquier lugar.
4. 4
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
INTERFAZ DE COMUNICACIINTERFAZ DE COMUNICACIÓÓN TTL/RSN TTL/RS--232232
El microcontrolador PIC16F87X posee un módulo USART,
usando la norma RS-232, sin embargo es necesario usar
un módulo adicional para convertir las señales que maneja,
a niveles TTL (0 – 5V) a niveles adecuados para que haya
una correcta comunicación con el computador (PC). Dicha
labor la realiza el circuito integrado MAX232 de Maxim
Semiconductor. Este integrado se destaca por que maneja
los niveles de voltaje positivos y negativos propios de la
interface RS-232, a pesar de que se alimenta con solo una
fuente sencilla de 5V.
5. 5
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
COMUNICACICOMUNICACIÓÓN SERIE ASN SERIE ASÍÍNCRONANCRONA
El USART (Universal Synchronous Asynchronous Receiver
Transmitter), o conocido como SCI (Serial Comunications
Interface), puede ser configurado como un sistema full
duplex o bidireccional asíncrono, adaptándose a multitud
de periféricos y dispositivos que transfieren información de
ésta forma, tales como el monitor CRT o el computador.
USART puede configurarse de tres formas:
• Asíncrona (Full duplex, bidireccional).
• Síncrona-Maestro (Half duplex, unidireccional).
• Síncrona-Esclavo (Half duplex, unidireccional).
6. 6
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
COMUNICACICOMUNICACIÓÓN SERIE ASN SERIE ASÍÍNCRONA (2)NCRONA (2)
Vamos a estudiar únicamente el modo asíncrono, donde
las transferencias de información se realizan sobre dos
líneas TX (transmisión) y RX (recepción), saliendo y
entrando los bits por dichas líneas al ritmo de una
frecuencia controlada internamente por el USART. Las
líneas de comunicación son los dos bits de más peso del
Puerto C: RC6/TX/CK y RC7/RX/DT, donde el bit SPEN
(RCSTA<7>) y los bits TRISC<7:6> tienen que activarse
mediante un 1 con el fin activar dichos pines.
7. 7
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
REGISTRO TXSTA: Estado de la transmisiREGISTRO TXSTA: Estado de la transmisióón y Registro de controln y Registro de control
8. 8
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
REGISTRO RCSTA: Estado de la recepciREGISTRO RCSTA: Estado de la recepcióón y Registro de controln y Registro de control
9. 9
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
GENERADOR DE BAUDIOSGENERADOR DE BAUDIOS
En el protocolo asíncrono RS-232-C, la frecuencia en
baudios (bits por segundo) a la que se realiza la
transferencia se debe efectuar a un valor normalizado:
2400, 4800, 9600, 19200, etc. Para generar esta frecuencia
en Baudios, BRG, cuyo valor es controlado por el contenido
grabado en el registro SPBRG.
Además del valor X cargado en el registro SPBRG, la
frecuencia en baudios del generador depende del bit BRGH
del registro TXSTA<2>. En caso de que BRGH sea 0 se
trabaja en baja velocidad y si BRGH = 1 se trabaja en alta
velocidad. Según éste bit se obtendrá el valor de una
constante K necesaria en la determinación de la frecuencia
de funcionamiento.
10. 10
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
GENERADOR DE BAUDIOS (2)GENERADOR DE BAUDIOS (2)
( )( )1
OSCF
K X
=
• +
Frecuencia en Baudios
X es el valor cargado en el registro SPBRG
Si BRGH = 0, baja velocidad y K = 64
Si BRGH = 1, alta velocidad y K = 16
De donde se tiene que:
1OSCF
X
Frecuencia K
= −
•
11. 11
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
GENERADOR DE BAUDIOS (3)GENERADOR DE BAUDIOS (3)
Si en un PIC16F877A funcionando con una 4OSCF MHz=
Se desea trabajar con el USART en modo asíncrono y alta
velocidad, con una frecuencia de 9600 baudios, calcular el
valor X que hay que cargar en el registro SPBRG y el error
que se origina.
(Alta velocidad) K = 16
( )9600 4000000 / 16 ( 1)X= • +
4000000
1
9600 16
X = −
•
25X =
12. 12
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
GENERADOR DE BAUDIOS (4)GENERADOR DE BAUDIOS (4)
Si se carga el registro SPBRG con 8 la frecuencia real de
trabajo será:
( )4000000 / 16 (25 1) 9615Frecuencia = • + = baudios
El error que se genera cargando 25 en el SPBRG será:
9615 9600
100% 0.16%
9600
Error
−⎛ ⎞
= ∗ =⎜ ⎟
⎝ ⎠
13. 13
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
TRANSMISOR ASTRANSMISOR ASÍÍNCRONONCRONO
Pasos a seguir para implementar una transmisión en el
USART:
1. Configurar las líneas RC6/TX/CK como salida y RC7/RX/DT como entrada.
2. Poner SYNC = 0 y SPEN = 1 para activar el USART en modo asíncrono.
3. Si se desea trabajar con interrupción, poner TXIE = 1, además de habilitar
las interrupciones en general.
4. Si el dato consta de 9 bits, en lugar de los 8 típicos, poner el bit TX9 = 1.
El noveno bit se colocará en TX9D (TXSTA).
5. Se carga el valor X adecuado en el registro SPBRG, para producir la
frecuencia de trabajo deseada. Hay que controlar el bit BRGH (alta y baja
velocidad).
6. Activar la transmisión con TXEN = 1. El bit TXIF tendrá valor 1, ya que
TXREG se encuentra vacío.
7. Cargar en TXREG el dato a transmitir. Comienza la transmisión.
14. 14
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
RECEPTOR ASRECEPTOR ASÍÍNCRONONCRONO
Pasos a seguir para el modo recepción:
1. Se carga con el valor X al registro SPBRG para trabajar con la frecuencia deseada,
controlando además el valor de BRGH.
2. Se habilita el USART en modo asíncrono con SPEN = 1 y SYNC = 0.
3. Si se desea trabajar con interrupción con la llegada del bit de STOP (parada), se pone RCIE =
1, además de habilitar las interrupciones en general.
4. Poner RX9 = 1 para permitir la recepción del bit 9 bits.
5. Para detectar la dirección, poner ADDEN = 1.
6. Se habilita la recepción poniendo CREN = 1.
7. Al completarse la recepción RCIF se pondrá a 1 y se produce una interrupción si se había
permitido
8. Se lee el registro RCSTA y se averigüa si se ha producido algún error.
9. Leer los 8 bits del registro RCREG para determinar si el dispositivo ha sido direccionado.
10. Si se ha producido algún error, poner CREN = 0.
11. Si ha sido direccionado el dispositivo, poner ADDEN = 0 para permitir la recepción de la
información.
15. 15
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
SIMULACISIMULACIÓÓN DEL RSN DEL RS--232 EN PROTEUS ISIS 6.9232 EN PROTEUS ISIS 6.9
Es posible simular la transmisión serial por medio de éste
terminal virtual, conectado directamente a los pines de
transmisión y/o recepción.
16. 16
USART: Transmisor/Receptor Asíncrono Serie
Ing. Fernando A. Urbano M.
REFERENCIASREFERENCIAS
1. PIC16F87X Data Sheet 28/40 pin 8-bit CMOS FLASH
Microcontrolers. Microchip Technologies Inc. 2001.
2. ANGULO, Jose M. y otros. Microcontroladores PIC.
Diseño práctico de aplicaciones. Segunda Parte:
PIC16F87X. Segunda Edición McGrawHill. 2006.
3. RODRIGUEZ, Luis Alfonso y otro. Adquisición y
almacenamiento de datos de 12 bits. Electrónica y
Computadores. Nro. 72. CEKIT.
4. NARANJO, John Jairo. Interface Serial RS-232.
Electrónica y Computadores. CEKIT.