comunicacion serial rev3

Upload: jorge-palma-lara

Post on 16-Oct-2015

14 views

Category:

Documents


0 download

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