comunicacion serial rev3
TRANSCRIPT
-
1ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 1
Comunicacin Serial
Autor: Ing. Hugo PrattPontificia Universidad Catlica del Per
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 2
Comunicacin Serial y Paralela
Comunicacin serial Se denomina as a la transmisin de datos
(informacin) un bit a la vez, en el tiempo. Comunicacin paralela
Se denomina as a la transmisin de ms de un bit de datos simultneamente.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 3
Comunicacin serial
Medio
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 4
Comunicacin SerialEl Medio
El medio es el elemento fsico a travs del cual se transmite la informacin.
Por ejemplo, podra ser: Fibra ptica Cable coaxial Par trenzado cable de cobre
En radio comunicaciones, el medio es el aire.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 5
Comunicacin serial
En el caso que nos interesa, el medio ser un cable de cobre.
Veremos la comunicacin entre computadoras serialmente.
Especficamente el estndar EIA/TIA 232-E.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 6
Comunicacin Serialpunto a punto
La comunicacin es entre dos equipos nicamente.Es el soportado por el estndar RS232
-
2ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 7
Comunicacin Serial
RS CS TR RD TD CDTALK / DATATALK RS CS TR R D TD CDTALK / DATATALKCentraltelefnica
cable telefnico
Mdem Mdem
RS232 RS232
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 8
Comunicacin serial de una computadora a muchos equipos (multi-drop)
La comunicacin es de una computadoraa ms de un equipo, en un solo sentido.
Es el soportado por el estndar RS422
SD
1A-001
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 9
Comunicacin serialmultipunto (multi-point)
La comunicacin es de uno de los equipos acualesquiera de los otros.Es soportado por el estndar RS485.
SD
1A-001
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 10
ComparativaCaracterstica RS232 RS422 RS485
Tipo decomunicacin
Punto a punto Muti-drop Multi-punto
Tipo detransmisin
no balanceada balanceada balanceada
Distancia Tx max. 15m 1200m 1200m
Velocidad Max. deTx a distancia Max
10Kbps 10Kbps 100Kbps
Velocidad de Txmaxima
10Mbps(20m)
10Mbps(30m)
Nmero de cargas Slo se conecta aun equipo
10 U.L. 32 U.L.
Tx: transmisin max.: mxima
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 11
Algunas definiciones
Bits por segundo (bps) cantidad de bits que se transmiten por segundo.
Baudio nmero de variaciones de la seal, en el medio fsico,
por unidad de tiempo. No necesariamente coinciden los baudios con los
bits por segundo.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 12
Comunicacin serial Estndard EIA/TIA 232-E
Ms conocido por el nombre del estndar original: RS-232C o simplemente RS-232.
Define las caractersticas elctricas de las seales de
comunicacin Los conectores a utilizarse El protocolo de inicio y final de comunicacin
No define: El protocolo de comunicacin serial asncrono (bit de
arranque, de datos, paridad, parada).
-
3ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 13
En el curso veremos ...
Slo el uso de las lneas de transmisin (Tx) y recepcin (Rx) del estndard EIA/TIA 232-E
El protocolo de comunicacin serial asncrono.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 14
Protocolo de comunicacin serial asncrona
En la comunicacin serial asncrona, se emplean las siguientes lneas: una lnea para la transmisin de datos de un equipo
(denominado DTE) a otro equipo (denominado DCE). Una lnea para la recepcin de datos por parte del DTE
que son enviados por el DCE. Una lnea comn de retorno de seal (tierra).
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 15
Temporizacin Transmisin de un caracter
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 16
Temporizacin Se envan caracteres, uno por vez. Cada carcter est conformado por un grupo de bits El envo de un carcter consta de:
Un bit denominado bit de arranque (start bit). Los bits que conforman el carcter (5, 6, 7, 8 9 bits)
envindose el menos significativo primero. Un bit de paridad (parity bit) de manera opcional. 1, 1 , 2 bits de parada
Todos los bits tienen la misma duracin. Ancho de bit = 1/(velocidad de transmisn en bps)
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 17
Temporizacin Ambos equipos deben tener la misma
configuracin de: Nmero de bits por carcter Existencia o no del bit de paridad Tipo de paridad: par impar Nmero de bits de parada Velocidad de transmisin Velocidad de recepcin
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 18
Ejemplo
Se tienen dos equipos configurados as: Velocidad de transmisin: 9600bps Bits por carcter: 8 Bit de paridad: par Bits de parada: 1
El ancho de cada bit ser: 1/(9600 bps) = 104.17us Si el equipo DTE transmite el carcter
0b010011011 se tendr en la lnea de transmisin lo mostrado.
-
4ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 19
Transmisin de carcter: 10011011Cada intervalo de bit: 104.17us
Inicio de la transmisinFin de la transmisin
TRAMA (frame)ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 20
Comunicacin serial asncrona en el ATmega8
El ATmega8 cuenta con un dispositivo de comunicacin serial asncrona/sncrona denominado USART.
Slo veremos su funcionamiento y configuracin para comunicacin asncrona.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 21
Pines usados por el USART
recepcinde datos
transmisinde datos
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 22
Registros de E/S involucrados UDR
Representa a dos registros diferentes, uno se accesa al escribir, y el otro al leer.
Para transmitir un carcter, ste debe escribirse en UDR. Para leer un carcter recibido, ste debe leerse de UDR.
UCSRA, UCSRB, UCSRC Permiten configurar el USART.
UBRRL, UBRRH Permiten configurar la velocidad de transmisin y la velocidad de
recepcin. Observacin
El registro UCSRC comparte la misma direccin que UBRRH, sin embargo, fsicamente, son dos registros diferentes.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 23
Pasos a seguir para la configuracin
1. Configurar la velocidad de transmisin y recepcin
2. Definir el formato de la trama: nmero de bits por carcter, bit de paridad y tipo, nmero de bits de parada.
3. Habilitar la transmisin y recepcin de datos.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 24
Paso 1: Velocidad de transmisin Registros a modificar: UBRRH, UBRRL, bit
U2X de UCSRA Debe conocerse antes:
Qu velocidad de transmisin se desea. La frecuencia de reloj del oscilador del
microcontrolador.
Hay dos opciones de configuracin:i. Modo asncrono normalii. Modo asncrono doble velocidad.
-
5ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 25
Paso 1. Velocidad de transmisin
Modo asncrono normal: Bit U2X de registro UCSRA debe valer 0. La velocidad est dada por:
Velocidad = fosc /(16*(UBRR+1))
Despejando se obtiene: UBRR = fosc / (16*velocidad)-1
Donde: fosc: frecuencia de reloj del microcontrolador UBRR: par de registros UBRRH:UBRRL
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 26
Paso 1. Velocidad de transmisin
Modo asncrono doble velocidad Bit U2X de registro UCSRA debe valer 1 La velocidad est dada por:
Velocidad = fosc/(8*[UBRR+1])
Despejando: UBRR = fosc/(8*velocidad)-1
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 27
Registro UCSRA
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 28
Paso 2. Formato de la trama Registros a modificar:
Bit UCSZ2 de registro UCSRB UCSRC
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 29
Registros UCSRB y UCSRC
USCRB
USCRCBits por caracter
Bits de parada
Bit de paridad
Modo asncrono(0)/sncrono(1)
Habilitar recepcin Habilitar transmisin
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 30
Paso 2. Formato de la trama ...
Bits por caracter Se configuran con bits UCSZ2, UCSZ1, UCSZ0 segn
se muestra.
UCSZ2 UCSZ1 UCSZ0 Bits por caracter0 0 0 50 0 1 60 1 0 70 1 1 81 1 1 9
-
6ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 31
Paso 2. Formato de la trama ...
Bit de paridad Se configura con los bits UPM1 y UPM0
UPM1
UPM0
Modo Paridad
0 0 Deshabilitado0 1 (reservado)1 0 Habilitado, paridad par1 1 Habilitado, paridad impar
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 32
Paso 2. Formato de la trama ...
Bits de parada Se configuran con bit USBS USBS = 0, un bit de parada USBS = 1, dos bits de parada
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 33
Paso 3. habilitar la transmisin y recepcin de datos
Registro involucrado: UCSRB Poner a 1 bit RXEN para habilitar la recepcin de
datos. Poner a 1 bit TXEN para habilitar la transmisin de
datos.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 34
Transmisin de datos Primero debe haberse configurado el dispositivo
de comunicacin y habilitado la transmisin. Pasos:
Verificar que est vaco el buffer de transmisin (UDRE=1)
Si el caracter es de 9 bits, copiar el bit 8 en TX8B Copiar el caracter en registro UDR
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 35
Recepcin de datos
Pasos: Verificar que hay un dato recibido (RXC=1) Si el caracter es de 9 bits, leer bit RX8B de registro
UCSRB Leer el caracter recibido de registro UDR.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 36
Ejercicio 1
Escribir una subrutina para configurar el USART para tener lo siguiente: Velocidad de transmisin: 9600bps 7 bits por caracter paridad impar 2 bits de parada
La frecuencia de reloj del microcontrolador es 1 Mhz.
-
7ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 37
Ejercicio 2
Escribir una subrutina de nombre: RxCar1 que analiza si hay un caracter recibido en el puerto serial, y de haberlo, lo lee.
Parmetros de entrada: Ninguno Parmetro de salida:
Z = 0 Si hay un caracter Z = 1 Si no hay caracter recibido R16 : el caracter recibido (8 bits) si haba un caracter
Registros modificados: R16, banderas
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 38
Ejercicio 3
Escribir una subrutina de nombre: RxCar que retorne slo si se ha recibido un caracter.
Parmetros de entrada: Ninguno Parmetro de salida:
R16 : el caracter recibido (8 bits) si haba un caracter Registros modificados: R16, banderas
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 39
Ejercicio 4
Escribir una subrutina de nombre TxCar, que enve un caracter por el puerto serial.
Parmetros de entrada: R16: el caracter a transmitir
parmetros de salida: ninguno Registros modificados: banderas
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 40
Errores de recepcin en el USART
Hay tres tipos de errores que puede detectar Error de trama (framing error)
Cuando al recibir un caracter, el primer bit de parada vale 0.
Error de sobreescritura (overrun error) Cuando se recibe un caracter y ste sobreescribe a otro que se
ha recibido previamente y no fue ledo por el programa.
Error de paridad (parity error) Cuando se recibe un caracter que cuenta con bit de paridad,
pero el valor de dicho bit no corresponde al valor que tiene el caracter.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 41
Manejo de errores de recepcin Existen tres bits, en el registro UCSRA que
permiten saber si ha ocurrido un error en la recepcin. PE error de paridad DOR error de sobreescritura FE error de trama
Si ocurre uno de los errores, el bit correspondiente es puesto a 1 por el USART.
Los bits valen 0 si no hubo error en la recepcin del caracter.
ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 42
Manejo de errores de recepcin ...
Si se van a analizar los errores de recepcin, la recepcin de caracteres debe hacerse en los siguientes pasos, en ese orden: Leer registro UCSRA y verificar que hay un caracter
recibido (bit RXC=1) Leer caracter recibido en registro UDR Del valor ledo de UCSRA, analizar si hubo errores, y
procesarlos.
-
8ComunSerialRev222/10/03
IEE205 Sistemas Digitalesrea de Circuitos y Sistemas - SEE
Ing. Hugo Pratt 43
Ejercicio 5 Escribir una subrutina de nombre: RxByteErr que
retorna slo si se recibe un caracter por el puerto serial.
Entrada: ninguna salida:
R16: El caracter recibido Bandera C: 1 si hubo error de paridad bandera V: 1 si hubo error de trama bandera M: 1 si hubo error de desborde