El Puerto Serie USART GRUPO2

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 12

UNIVERSIDAD DE LAS FUERZAS ARMADAS - ESPE

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA

MATERIA: MICROCONTROLADORES

EXPOSICION
GRUPO N˚2

TEMA: EL PUERTO SERIE USART

NRC: 2840

ING. VANESSA VARGAS

INTEGRANTES:

LUIS ALVAREZ
DAVID BRAVO

FECHA: 23 de junio de 2018


El Puerto Serie USART
Introducción
La abreviación USART viene de Receptor Transmisor Síncrono Asíncrono Universal, es una forma de
comunicación entre dispositivos que tengan esta capacidad, donde los datos son enviados en grupos de 8 bits
o de 9 bits, pero bit por bit, esto es en serie.

Los sistemas micro-programables basados en CPU internamente están diseñados para la transferencia de
datos en buses o líneas de 8 bits o múltiplos de 8. Así el bus de datos está optimizado para el tratamiento de
datos en paralelo lo cual es mucho más rápido que el tratamiento serie. Una manera de conectar dos
dispositivitos es mediante comunicaciones serie. A pesar de que la velocidad de trasferencia de datos en
paralelo es mucho mas rápida, la transmisión de datos en serie es la más utilizada por:

1. Comunicación en paralelo requiere una gran cantidad de hilos conductores, mientras que la
comunicación serie requiere 2, 3 o 4 hilos.
2. La entrada/salida serial puede ser transmitida a través de pares de cobre, cable coaxial, fibra óptica.
3. La comunicación en paralelo no posee el alto grado de estandarización que ha alcanzado la
comunicación serie.

La comunicación en serie es utilizada por la gran mayoría de los sistemas de comunicación de datos digitales,
puesto a que poseen grandes ventajas:

 Económicas- Utiliza pocas líneas de transmisión


 Confiable- Se permiten transmitir dato con bits de paridad y a niveles de voltaje o corriente que los
hacen poco sensibles a ruido eterno.
 Versátil- No se limite a usar únicamente conductores eléctricos como medio de transmisión pudiendo
usarse también: fibra óptica, aire, vacío, etc. Además, el tipo de energía utilizada puede ser diferente:
infrarroja, pulsos eléctricos, radio frecuencia, microondas, etc.

Existen dos tipos de comunicación de información: en Paralelo y en Serie:

1. Comunicación en paralelo. Se utiliza una línea física por cada bit del dato a comunicar; además de
posibles líneas para protocolo. A manera de ejemplo, en la figura 1 se muestra como se transmitiría e
dato de 8 bits 1001 0111= 97h

Figura 1. Ejemplo de comunicación en paralelo


(El Puerto Serie USART )

2. Comunicación en Serie. Sólo utiliza una línea para la transmisión de datos, y opcionalmente alguna
línea o líneas para protocolo. En la figura 2 se muestra cómo se transmitiría en serie el mismo dato
(97h).

2
Figura 2. Ejemplo de comunicación en serie
(El Puerto Serie USART )

Al momento de comparar ambos tipos de conexiones, existe una clara desventaja de la comunicación serie
puesto que un dato se envía de uno por uno, de manera que mientras que la comunicación en paralelo envía
en un ciclo un dato de 8 bits, es decir a la comunicación serie le toma más de 8 ciclos. Sin embargo, debido a
que la comunicación serie requiere sólo una línea para la transmisión esto abarata los costos en líneas de
cuyos datos no necesariamente deben ser enviados a través de un conductor eléctrico, sino inclusive por aire
o por el vacío usando impulsos electromagnéticos.

Modos de transmisión de datos serie


Existen dos modos de transmisión de datos serie:

 Las transmisiones asincrónicas: Son aquellas en que los bits que constituyen el código de un carácter
se emiten con la ayuda de impulsos suplementarios que permiten mantener en sincronismo los dos
extremos. Su misión es: Avisar al receptor de que está llegando un dato y darle suficiente tiempo al
receptor de realizar funciones de sincronismo antes de que llegue el siguiente byte.
 Las transmisiones sincrónicas: Los caracteres se transmiten consecutivamente, no existiendo ni bit
de inicio ni bit de parada entre los caracteres, estando dividida la corriente de caracteres en bloques,
enviándose una secuencia de sincronización al inicio de cada bloque. Su misión es: Alertar al receptor
de la llegada de los datos.

Modos de transmisión de datos serie


En la comunicación en serie es importante establecer métodos de sincronización para evitar la interpretación
errónea de los datos transmitidos. cuando se transmite información a través de una línea serie es necesario
utilizar un sistema de codificación que permita resolver los siguientes problemas:

1. Sincronización de bits: El receptor necesita saber dónde comienza y donde termina cada bit en la
señal recibida para efectuar el muestreo de esta en el centro del intervalo de cada símbolo.
2. Sincronización del carácter: La información serie se transmite por definición bit a bit, pero la misma
tiene sentido en palabras o bytes.
3. Sincronización del mensaje: Es necesario conocer el inicio y fin de una cadena de caracteres por parte
del receptor para detectar algún error en la comunicación de un mensaje. El control de la transmisión
serie depende del programador

Sincronización de bits
Existen algunos métodos para resolver el problema de una mala interpretación:

1. Codificación no auto reloj: Enviar por una línea adicional una señal de reloj que indique el centro de
las celdas de bits en la línea de datos.

3
Figura 3. Ejemplos de codificación no auto reloj
(Descripción Detallada del PIC16F87)

RZ. Una celda de bit es 1 si contiene un impulso positivo y un 0 si no lo contiene.


NRZ. La celda contiene un 1 o 0 de acuerdo con el nivel de la señal (constante) en la celda.
NRZI. La celda de bit contiene un 1 si hay una transición y un 0 si no la hay.

2. Codificación auto reloj: Enviar con cada bit y por la misma línea de datos información que permita
extraer la señal de reloj.

Figura 4. Ejemplos de codificación auto reloj


(Descripción Detallada del PIC16F87)

PE. Codificación de fase.


FSC. Codificación por cambio de frecuencia
FM. Modulación de frecuencia.
MFM y M2FM. Modulación de frecuencia modificada.

3. Los relojes de transmisión y de recepción se mantienen en fase: Lograr mediante alguna estrategia
que los relojes de transmisión y de recepción se mantengan en fase continuamente, es decir, sin
necesidad de tener una señal de reloj en una línea adicional o por la misma línea de datos de
información

Sincronización de carácter
Estos sistemas no requieren líneas adicionales a la línea de datos y son:

1. Método Asíncrono. Cada carácter va señalizado mediante dos bits: un bit de inicio y un bit de parada,
estos dos bits permiten al receptor reconocer el inicio y el final de cada carácter.
2. Método Síncrono. Cada mensaje o bloque de transmisión va precedido de unos caracteres de
sincronismo, es decir una configuración de bits que será detectada para el inicio y tamaño de datos.

La transmisión serie asíncrona


La transmisión serie asíncrona posee un formato básico en donde se debe analizar 3 parámetros: bit de
inicio/parada, reglas de transmisión y velocidad de transmisión. El tiempo por bit en una línea en que se
4
transfiere la información a 2400 bps es de unos 416 microsegundos (1 seg/2400). Una frecuencia de muestreo
de 2400 veces por segundo nos permitirá muestrear el principio o el final del bit.

Figura 5. Formato básico de transmisión asincrónica


(El Puerto Serie USART )

1. Bit de inicio y bit de parada

En la transmisión asíncrona un carácter a transmitir es encuadrado con un indicador de inicio y fin de


carácter. Durante el intervalo de tiempo en que no son transferidos caracteres, el canal debe poseer
un "1" lógico. Al bit de parada se le asigna también un "1". Al bit de inicio del carácter a transmitir se
le asigna un "0". Este cambio de nivel indica al receptor la transmisión de un nuevo carácter.

Figura 6. Ejemplos de bit de inicio y parada


(El Puerto Serie USART )

2. Reglas de transmisión asíncrona

La transmisión asíncrona para la norma RS232 esta definida por el siguiente conjunto de reglas (El
Puerto Serie USART ):

a) Cuando no se envían datos por la línea, ésta se mantiene en estado alto “1”
b) Cuando se desea transmitir un carácter, se envía primero un bit de inicio que pone la línea a
estado bajo “0” durante el tiempo de un bit.
c) Durante la transmisión, si la línea está a nivel bajo, se envía un 0, y si está a nivel alto se envía
un 1.
d) se envían todos los bits del mensaje a transmitir con los intervalos que marca el reloj de
transmisión. Por convenio se transmiten entre 5 y 8 bits, al ritmo marcado por el reloj de
transmisión.
e) Se envía primero el bit menos significativo, siendo el más significativo el último en enviarse.
f) A continuación del último bit del mensaje se envía el bit (o los bits) del final que hace que la
línea se ponga a 1 por lo menos durante el tiempo mínimo de un bit.

Los bits del último paso pueden ser un bit de paridad para detectar errores y el bit o bits de stop, que
indican el fin de la transmisión de un carácter. En cuanto a los datos pueden ser recibidos siguiendo
los siguientes pasos (El Puerto Serie USART ):

a) Esperar la transición 1 a 0 en la señal recibida.


b) Activar el reloj con una frecuencia igual a la del transmisor
c) Muestrear la señal recibida al ritmo de ese reloj para formar el mensaje
d) Leer un bit más de la línea y comprobar si es 1 para confirmar que no ha habido error en la
sincronización.

5
3. Velocidad de transmisión

La velocidad de transmisión de datos es expresada en bits por segundo o baudios. La velocidad de


transmisión queda limitada por el ancho de banda, potencia de señal y ruido en el conductor de señal;
quedando básicamente establecida por el reloj. Su objetivo es examinar o muestrear continuamente
la línea para detectar la presencia o ausencia de los niveles de señal ya predefinidos además de
sincronizar los componentes internos.

Líneas o canales de comunicación serie


Si tomamos al microcontrolador como referencia (transmisor) y al periférico como destino (receptor) se
pueden establecer canales para la comunicación serie de acuerdo con tres técnicas (Descripción Detallada del
PIC16F87):

a) Simplex: En ella la comunicación serie usa una dirección y una línea de comunicación. Siempre existirá
un transmisor y un receptor, pero no ambos. La ventaja de este sistema consiste en que es necesario
sólo un enlace a dos hilos sin embargo el extremo receptor no tiene ninguna forma de avisar al
extremo transmisor sobre su estado y sobre la calidad de la información que se recibe.

b) Semi duplex: La comunicación serie se establece a través de una sola línea, pero en ambos sentidos.
En un momento el transmisor enviará información y en otro recibirá. Este modo permite la
transmisión desde el extremo receptor de la información, sobre el estado de dicho receptor y sobre
la calidad de la información recibida por lo que permite así la realización de procedimientos de
detección y corrección de errores.

c) Full duplex: Se utilizan dos líneas, una transmisora y otra receptora, y se transfiere información en
ambos sentidos. La ventaja de este método es que se puede transmitir y recibir información de
manera simultánea.

La USART del PIC16F877


El PIC 16F877A posee dos periféricos que le permiten realizar comunicación en serie, el MSSP (Master
Synchronous Serial Port) y la USART (Universal Synchronous Asynchronous Receiver Transmitter) o también
conocida como SCI (Serial Communication Interface). La USART puede configurarse como una unidad de
comunicación en serie para la transmisión de datos asíncrona full dúplex, conectándose con computadoras
personales, o half dúplex para comunicarse con otros microcontroladores y diversos periféricos adicionales.
Por ello, la USART del pic mencionado puede configurarse en tres modos:

1. Modo Asíncrono (full duplex)


2. Modo Síncrono – Maestro (half duplex)
3. Modo Síncrono – Esclavo (half duplex)

Aunque la USART tiene funciones independientes para la transmisión y recepción, los formatos de datos y de
velocidad de transmisión son iguales para los dos casos. El bit de paridad no está soportado por el hardware,
pero se puede implementar por software empleando para ello el noveno bit de datos. En este modo la USART
usa un formato estándar NRZ asíncrono.

Es importante recalcar que en este modo de comunicaciones se emplea una configuración estándar de un bit
de Start, ocho o nueve bits de datos, y un bit de Stop. Este modo de trabajo es detenido durante la función
Sleep.

6
Para configurar dichas funciones se debe poner a "1" bit SPEN (RCSTA <7>), y los bits TRISC <7:6>, se configura
RC6/TX/CK y RC7/RX/DT como USART. El generador de baudios produce siempre las señales de reloj x16 ó x64
(dependiendo de BRGH, TXSTA<2>) para el desplazamiento de los bits.

Registros asociados al USART del PIC16F877A

Dirección Nombre Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
98h TXSTA CSRC TX9 TXEN SYNC ---- BRGH TRMT TX9D
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D
99h SPGBRG Registro generador de Baud Rate

La Norma RS232
La Norma RS-232 fue definida para conectar un ordenador a un modem. Además de transmitirse los datos de
una forma serie asíncrona son necesarias una serie de señales adicionales, que se definen en la norma. Las
tensiones empleadas están comprendidas entre +15/-15 voltios. El RS-232C consiste en un conector tipo DB-
25 de 25 pines, aunque es normal encontrar la versión de 9 pines DB-9. Cada pin puede ser de entrada o de
salida, teniendo una función específica cada uno de ellos, como se muestran en la siguiente figura:

Figura 7. Figura con funciones de pines de ordenador


(El Puerto Serie USART )

En la siguiente tabla de la figura 8 se identifican las funciones correspondientes al numero de patita en los
cables DB-25 y DB-9:

Figura 8. Funciones de patittas y diagrama de cable DB25/9


(Descripción Detallada del PIC16F87)

7
La comunicación serial asincrónica usando RS232
Una comunicación serial generalmente consiste en la transmisión y recepción de datos de un punto a otro
sólo usando una línea eléctrica. La comunicación serial usando RS232, se detalla a continuación:

1. La comunicación serial usando RS232 entre un par de PC’s

La comunicación serial usando RS232 entre un par de PC’s, se hace de acuerdo con la figura 9:

Figura 9. Comunicación serial usando RS232 entre dos PC’s.

La línea de transmisión de Datos (TXD) se presenta con el pin 3 del conector DB9 macho del PC, para
ser conectado a la línea de recepción de datos (RXD) que se presenta en el pin 2 del segundo PC.

La configuración del puerto serial entre dos PC’s. Se realiza para que la información de un PC se pueda
transmitir inmediatamente a través del puerto serial al otro PC.

Para indicar al receptor PC que la transmisión ha empezado, el PC transmisor coloca la línea TXD a +12
voltios correspondientes a la condición 0 lógico, por un tiempo igual al inverso de la frecuencia de
transmisión o al tiempo de transmisión de un sólo bit. Este 0 lógico se denomina bit de inicio (START
BIT) y siempre está presente en la transmisión al principio de un solo byte. El bit de inicio se transmite
en sucesión con los ocho bits componentes del código ASCII del carácter transmitido partiendo del bit
menos significativo. Una vez transmitido el octavo bit, el PC agrega automáticamente un último bit
con valor 1 lógico denominado bit de parada (STOP BIT); para indicar la transmisión del byte entero
se ha realizado.

Para efectuar una transmisión RS232 bidireccional se agrega al cable serial una conexión entre el pin
TXD del PC receptor con el pin RXD del PC transmisor. El cable que se consigue es el cable más simple
NULL MODEM para poner en conexión entre los dos DTE1.

2. La comunicación serial usando RS232 entre el circuito con PIC y otro circuito

El circuito con PIC simula un dispositivo DCE2,esto significa que el cable que se debe usar no debe ser
de tipo NULL MODEM o INVERTENTE.

El cable de conexión entre el PIC y el circuito debe estar a su vez seguido de un conector hembra de
un lado, para poder realizar la transmisión serial del PIC, y un conector macho del otro para poder
estar conectado al conector del circuito de prueba. Se tienen en la figura 10 siguiente las conexiones
internas al cable que se usa:

1
Data Terminal Equipment (DTE) es un dispositivo que se usa para almacenar o recibir datos.
2
Data Communication Equipment (DCE) es un dispositivo que se usa para manejar una comunicación de los datos.
8
Figura 10. Comunicación serial usando RS232 entre el circuito con PIC y otro circuito.

3. La comunicación serial usando RS232 entre el PC y el circuito PIC

Para la conexión entre el PC y el circuito con PIC se usa un driver RS232 (MAX232) o un integrado para
convertir las señales a +/- 12 voltios típico del RS232 en señales a 0/5 voltios del puerto del PIC. Por
lo tanto, se necesita una adaptación de niveles, como se muestra en la siguiente figura 11:

Figura 11. Comunicación serial usando RS232 entre el PC y el circuito PIC

Para el usuario de un microcontrolador que posee una USART o sistema similar, la manera detallada
como el sistema logra establecer la comunicación resulta transparente a él, ya que sólo tiene que
configurar el protocolo del transmisor y del receptor para que estos logren la comunicación adecuada,
es decir, el usuario usualmente sólo debe configurar:

 Tipo de comunicación (síncrona o asíncrona)


 Velocidad de transmisión en Baudios (bits por segundo)
 Longitud de los datos
 Bits de inicio y de paro, bits de paridad, etc.

Módulos fundamentales de la USART


1. El Generador de Baud Rate (BRG)

Consiste en un contador/divisor de frecuencia de 8 bits controlado por el registro SPBRG (99H). De tal
manera que su función consiste en determinar la frecuencia de transmisión de la comunicación serie,
la cual se calcula de acuerdo con la siguiente tabla:

SYNC BRGH=0 (baja velocidad) BRGH=1 (alta velocidad)


0 (modo asíncrono) Baud rate = Fosc/(64(X+1)) Baud rate = Fosc/(16(X+1))
1 (modo síncrono) Baud rate = Fosc/(4(X+1))
En esta tabla X=valor de 8 bits en el registro del divisor, SPBRG. El bit BRGH corresponde a TXSTA.

Debido a que el divisor es de 8 bits, no se puede tener cualquier velocidad de transmisión deseada,
ya que X se deberá redondear al entero más cercano.

9
2. El transmisor asíncrono

En la figura 12 se muestra el diagrama de bloques del transmisor de la USART. El corazón de este


módulo es el registro de corrimiento (transmit shift register, TSR).

Figura 12. Diagrama de bloques del transmisor de la USART

Registro de Estado y Control TXSTA (Transmisor)

R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0


CSRC TX9 TXEN SYNC ---- BRGH TRMT TX9D
Bit 7 Bit 0

bit 7: CSRC: Bit de selección de reloj


Modo Asíncrono
Sin importancia
Modo Síncrono
1 = Modo master (reloj generado internamente para BRG (Generador de Baudios))
0 = Modo esclavo (reloj externo)
bit 6: TX9: Habilita transmisión de 9-8 bits
1 = Transmisión de 9 bits
0 = Transmisión de 8 bits
bit 5: TXEN: Bit de habilitación del transmisor
1 = Habilita transmisión
0 = Deshabilita transmisión
Nota: SREN/CREN anula TXEN en modo SYNC.
bit 4: SYNC: Bit de selección del modo USART
1 = Modo Síncrono
0 = Modo Asíncrono
bit 3: Sin implementar: En lectura es'0'
bit 2: BRGH: Bit de selección del rango de baudios alto
Modo Asíncrono
1 = Alta velocidad
0 = Baja velocidad
Modo Síncrono
No se usa este modo
bit 1: TRMT: Bit de estado del registro de desplazamiento del transmisor (TSR)
1 = TSR vacío
0 = TSR lleno
bit 0: TX9D: Noveno bit de datos de transmisión. Se puede emplear como bit de paridad.
10
De acuerdo con lo anterior, la inicialización del módulo de transmisión consiste en los siguientes
pasos:
1. Inicializar baud rate escribiendo al registro SPBRG el divisor adecuado y opcionalmente al bit
BRGH.
2. Habilitar comunicación asíncrona limpiando el bit SYNC y poniendo el 1el bit SPEN.
3. Si se van a usar interrupciones, poner el bit TXIE (PIE<4>).
4. Poner el bit TX9 si se desea transmitir datos de 9 bits
5. Habilitar transmisión poniendo el bit TXEN, lo cual pondrá el bit TXIF.
6. Colocar el noveno bit del dato en TX9D si se están usando datos de 9 bits.
7. Cargar el dato al registro TXREG (inicia la transmisión).

3. El receptor asíncrono

En la figura 13 se muestra el diagrama de bloques del receptor de la USART. El corazón del receptor
es el registro de corrimiento RSR.

Figura 13. Diagrama de bloques del receptor de la USART

Registro de estado y Control RCSTA (Receptor)

R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0


SPEN RX9 SREN CREN ---- FERR OERR RX9D
Bit 7 Bit 0

bit 7: SPEN: Bit de habilitación del puerto serie


1 = Habilita puerto serie (configura patillas RC7/RX/DT y RC6/TX/CK para el puerto serie)
0 = Deshabilita puerto serie
bit 6: RX9: Habilita recepción de 9-8 bits
1 = Selecciona 9 bits de recepción
0 = Selecciona 8 bits de recepción
bit 5: SREN: Bit de habilitación de recepción única
Modo asíncrono
Este modo no se usa
Modo Síncrono master
1 = Habilita una recepción única
0 = Deshabilita una recepción única

11
Este bit se borra después de completar la recepción
Modo Síncrono esclavo
En este modo no se usa
bit 4: CREN: Bit de habilitación de recepción continua
Modo Asíncrono
1 = Habilita recepción continua
0 = Deshabilita recepción continua
Modo Síncrono
1 = Habilita recepción continua hasta que el bit CREN sea borrado (CREN anula SREN)
0 = Deshabilita la recepción continua
bit 3: Sin implementar: En lectura es '0'
bit 2: FERR: Bit de error de empaquetamiento
1 = Error de empaquetamiento (Puede actualizarse al leer el registro RCREG y recibir el
siguiente byte)
0 = No hay error
bit 1: OERR: Bit de error de desbordamiento
1 = Error de desbordamiento (puede ser borrado al borrar CREN)
0 = No hay desbordamiento
bit 0: RXGD: Noveno bit de datos de recepción. Se puede emplear como bit de paridad

De acuerdo con lo anterior, la inicialización del módulo de recepción es como sigue:


1. Inicializar el baud rate escribiendo al registro SPBRG el divisor adecuado y opcionalmente al bit
BRGH.
2. Habilitar el puerto serie asíncrono limpiando el bit SYNC y poniendo el bit SPEN.
3. Si se van a usar interrupciones, poner el bit RCIE (PIE<5>).
4. Si se desea recepción de datos de 9 bits se deberá poner el bit RX9 (RCSTA<0>).
5. Habilitar la recepción poniendo el bit CREN (RCSTA<4>)
6. El bit RCIF se pondrá cuando la recepción de un dato se complete y se generará una interrupción
si RCIE está puesto.
7. Leer el registro RCSTA para obtener el noveno bit (si se están recibiendo datos de 9 bits) o para
determinar si ha ocurrido un error de recepción.
8. Leer los 8 bits del dato recibido leyendo el registro RCREG.
9. Si ocurrió algún error este se limpia al limpiar el bit CREN, el cual deberá volver a ponerse si se
desea continuar la recepción.

Bibliografía
Descripción Detallada del PIC16F87. (n.d.). Retrieved from Unioviedo:
https://www.unioviedo.es/ate/alberto/detalladaPic16F877.pdf

Dogan, I. (2007). Programacion de microntontroladores PIC. Marcombo.

(n.d.). El Puerto Serie USART . Sangolqui.

PIC16F87XA. (2003). In PIC16F87XA Data Sheet (pp. 111-113). Retrieved from Micrchip.

Valdes Perez, F., & Pallas Areny, R. (2007). Microntroladores: fundamentos y aplicaciones con PIC.
Marcombo.

12

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy