Comunicación Serial€¦ · Comunicación Serial Introducción Velocidad en la comunicación...

44
Comunicación Serial Introducción Las comunicaciones digitales pueden ser: Paralela Serial UNEXPO Pto. Ordaz. MICROPROCESADORES Prof. Antonio Pateti Prof. Antonio Pateti

Transcript of Comunicación Serial€¦ · Comunicación Serial Introducción Velocidad en la comunicación...

Comunicación SerialIntroducción

Las comunicaciones digitales pueden ser: Paralela Serial

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Comunicación SerialIntroducción

CPU InterfazParalela

Datos

Control

8

x

CPU

TxD

RxD TxD

RxD

CPU/I.S.

Comunicación Paralela Comunicación Serial01110001

01110001 01110001

UNEXPO – Pto. Ordaz. MICROPROCESADORES

CPU InterfazParalela

Controlx

GND GNDRxD TxD

Prof. Antonio PatetiProf. Antonio Pateti

Comunicación SerialIntroducción

La comunicación serial puede ser:

Sincrona: D0 D1 D2 D3 D4 D5 D6 D7Dato

clk

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Asincrona: D0 D1 D2 D3 D4 D5 D6 D7Dato

Prof. Antonio PatetiProf. Antonio Pateti

Bit de Paridad(Opcional)

8 bits de datosidle

0 0 1 0 1 1 1 0

Comunicación SerialIntroducción

Comunicación Asincrona:

5 V

1 bit,

2 bit de Stop1 ½ bit,

Bit de Start

0 0 1 0 1 1 1 0

UNEXPO – Pto. Ordaz. MICROPROCESADORES

0 V

t

Prof. Antonio PatetiProf. Antonio Pateti

Comunicación SerialIntroducción

Velocidad en la comunicación serial asíncrona:

La unidad para representar la velocidades bits/seg

BAUDIOS = bits/seg

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Se pueden conseguir con las siguientesvelocidades (en bits/seg):300, 600, 1200, 2400, 4800, 9600, 14400, 19200,28800, 33600, 57800, ●, ●, ●

Prof. Antonio PatetiProf. Antonio Pateti

Comunicación SerialIntroducción

¿Qué significa Tx o Rx a 4800 bits/seg?:

4800 bits/seg

1 bit = 208,3 seg

1 bits seg4800

1

UNEXPO – Pto. Ordaz. MICROPROCESADORES

0 0 1 0 1 1 1 00 V

5 V

t=208,3seg

Prof. Antonio PatetiProf. Antonio Pateti

Comunicación SerialEstándar RS-232

Para cumplir con el estándar RS-232 sedeben tener en cuenta:

Las normas mecánicas. Las normas eléctricas.

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Las normas lógicas.

Prof. Antonio PatetiProf. Antonio Pateti

Comunicación SerialNormas mecánicas

Tiene que ver con el tipo de conector: losutilizados son el DB-25 y DB-9

DB-9

Detector de Portadora (CD) 16

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Detector de Portadora (CD) 1

Recepción de Datos (RxD) 2

Transmisión de Datos (TxD) 3

Dato Listo Terminal (DTR) 4

Referencia (GND) 5

Dato Listo para Enviar (DSR)6

Solicitud de Envío (RTS)7

Listo para Envío (CTS)8

Detector de Tono (RI)9

Prof. Antonio PatetiProf. Antonio Pateti

Comunicación SerialNormas Eléctricas

Tiene que ver con los niveles de tensión conque se Tx y Rx los datos

‘0’ Lógico5 V

15 V‘0’ Lógico

3 V

25 V

‘1’ Lógico

UNEXPO – Pto. Ordaz. MICROPROCESADORES

0 V

-15 V

-5 V

Indeterminado

Tx Rx

‘1’ Lógico

0 V

3 V

-25 V

-3 V

Indeterminado

Prof. Antonio PatetiProf. Antonio Pateti

Comunicación Serial

Drivers utilizados en el estándar RS-232

CPU

GND GND

InterfaseSerial

TxD

RxD TxD

RxD

+Vcc

-Vcc

+Vcc

-Vcc

+Vcc

-Vcc

+Vcc

-Vcc

MC1488

MC1488

MC1489

MC1489

TTL RS-232 TTL

UNEXPO – Pto. Ordaz. MICROPROCESADORES

CPU

GND GND

InterfaseSerial

TxD

RxD TxD

RxD

+Vcc

-Vcc

+Vcc

-Vcc

+Vcc

-Vcc

+Vcc

-Vcc

MC1488

MC1488

MC1489

MC1489

TTL RS-232 TTL

Prof. Antonio PatetiProf. Antonio Pateti

Comunicación Serial

Drivers utilizados en el estándar RS-232

CPU

GND GND

InterfaseSerial

TxD

RxDTxD

RxD

+5V +5V

GND GND

MAX232 MAX232

TTL RS-232 TTL

UNEXPO – Pto. Ordaz. MICROPROCESADORES

CPU

GND GND

InterfaseSerial

TxD

RxDTxD

RxD

+5V +5V

GND GND

MAX232 MAX232

TTL RS-232 TTL

Prof. Antonio PatetiProf. Antonio Pateti

Comunicación Serial

Modulo USART del PIC 16F1787

USART: Universal Synchronous AsynchronousReceiver Transmitter

Modo Asíncrono: Full duplex (Tx y Rxsimultaneamente)

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Modo Síncrono: Half duplex (Tx ó Rx)

Prof. Antonio PatetiProf. Antonio Pateti

Comunicación Serial

Pines utilizados en el módulo USART

TxRx

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

TxRx

Registros utilizados por USART

• TXSTA, TXREG

• RCSTA, RCREG

• SPBRGH, SPBRGL

Comunicación Serial

• BAUDCON

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

• APFCON1

Modulo USART

Transmisión Asíncrona

Registro TXREG

LSbMSb

0(8) Registro TSR

8

SPBRGGenerador Baudios

TXEN

TX9D

TXIFTXIE

Interrupción Tx

TX9

Buffer del Piny Control

TRMT SPEN

RC6/TX/CK

UNEXPO – Pto. Ordaz. MICROPROCESADORES

Registro TXREG

LSbMSb

0(8) Registro TSR

8

SPBRGGenerador Baudios

TXEN

TX9D

TXIFTXIE

Interrupción Tx

TX9

Buffer del Piny Control

TRMT SPEN

RC6/TX/CK

Prof. Antonio PatetiProf. Antonio Pateti

Modulo USART

CSRC: Solo modo Síncrono.0: Modo Esclavo. Reloj Externo1: Modo Maestro. Reloj Interno

TX9: Habilitación para la transmisión del 9º Bit.0: Seleccionado 8 bits para la Transmisión.1: Seleccionado 9 bits para la Transmisión

TXSTA

UNEXPO – Pto. Ordaz. MICROPROCESADORES

TX9: Habilitación para la transmisión del 9º Bit.0: Seleccionado 8 bits para la Transmisión.1: Seleccionado 9 bits para la Transmisión

TXEN: Bit de Habilitación para la Transmisión.0: Transmisión Deshabilitada.1: Transmisión Habilitada

Prof. Antonio PatetiProf. Antonio Pateti

TXSTA

Modulo USART

SYNC: Bit para seleccionar el modo del USART.0: Modo Asíncrono .1: Modo Síncrono.

SENDDB: Envio un carácter de Parada0: Se completo el envio del carácter de Parada.1: En la proxima Tx se envia el carácter de Parada

UNEXPO – Pto. Ordaz. MICROPROCESADORES

BRGH: Solo modo Asíncrono0: Baudios en Baja Velocidad.1: Baudios en Alta Velocidad

TRMT: Bit de estado del Transmit Shift Register (TSR)0: TSR está lleno.1: TSR está vacío.

TX9D: 9º Bit de Dato en la Transmisión (ejmp. Bit de Paridad)

Prof. Antonio PatetiProf. Antonio Pateti

SENDDB: Envio un carácter de Parada0: Se completo el envio del carácter de Parada.1: En la proxima Tx se envia el carácter de Parada

Bit START Bit 0 Bit 1 Bit 7/8 Bit STOP

Escribir en TXREG

BRG (Clock)

TXIF

RC6/TX/CK (pin)

TRMT

DATO

El Dato comienza a Tx

Dato Tx

Modulo USART

Transmisión Asíncrona

movwf TXREG

Bit START Bit 0 Bit 1 Bit 7/8 Bit STOP

Escribir en TXREG

BRG (Clock)

TXIF

RC6/TX/CK (pin)

TRMT

DATO

El Dato comienza a Tx

Dato Tx

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Bit START Bit 0 Bit 1 Bit 7/8 Bit STOP

Escribir en TXREG

BRG (Clock)

TXIF

RC6/TX/CK (pin)

TRMT

DATO 1

El Dato 1 comienza a Tx

Tx Dato 1

Bit START Bit 0

Tx Dato 2

DATO 2

El Dato 2 comienza a Tx

Modulo USART

Transmisión Asíncrona

1er. movwf TXREG

2do. movwf TXREG

Bit START Bit 0 Bit 1 Bit 7/8 Bit STOP

Escribir en TXREG

BRG (Clock)

TXIF

RC6/TX/CK (pin)

TRMT

DATO 1

El Dato 1 comienza a Tx

Tx Dato 1

Bit START Bit 0

Tx Dato 2

DATO 2

El Dato 2 comienza a Tx

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Transmisión Asíncrona

TxD

TXIF=1

TXREG W

NO

SI

TxDBANKSEL PIR1

NO_TX btfss PIR1,TXIFgoto NO_TXmovwf TXREGreturn

UNEXPO – Pto. Ordaz. MICROPROCESADORES

return

TXREG W

TxDBANKSEL PIR1

NO_TX btfss PIR1,TXIFgoto NO_TXmovwf TXREGreturn

Prof. Antonio PatetiProf. Antonio Pateti

Modulo USART

Recepción Asíncrona

LSbMSb

START(8) Registro RSR

SPBRG

Generador Baudios

SPEN

RX9

Interrupción RxRCIF

Buffer del Piny Control

OERR FERR

RC7/RX/DTRestaurador

de Datos

STOP 7 0

8

RX9D RCREG

RCIE

FIFO

64o

16

Fosc CREN

UNEXPO – Pto. Ordaz. MICROPROCESADORES

LSbMSb

START(8) Registro RSR

SPBRG

Generador Baudios

SPEN

RX9

Interrupción RxRCIF

Buffer del Piny Control

OERR FERR

RC7/RX/DTRestaurador

de Datos

STOP 7 0

8

RX9D RCREG

RCIE

FIFO

64o

16

Fosc CREN

Prof. Antonio PatetiProf. Antonio Pateti

Modulo USART

SPEN: Bit de Habilitación del Puerto Serial.0: Puerto Serial Deshabilitado.1: Puerto Serial Habilitado. (RC7 y RC6 como pines del Puerto Serial)

RX9: Habilitación para la Recepción del 9º Bit.0: Seleccionado 8 bits para la Recepción.1: Seleccionado 9 bits para la Recepción

RCSTA

UNEXPO – Pto. Ordaz. MICROPROCESADORES

RX9: Habilitación para la Recepción del 9º Bit.0: Seleccionado 8 bits para la Recepción.1: Seleccionado 9 bits para la Recepción

SREN:Activación de Recepción simple (Solo Síncrono).0: Desactiva la Recepción simple.1: Activa la Recepción simple.

Prof. Antonio PatetiProf. Antonio Pateti

RCSTA

Modulo USART

CREN:Bit de Habilitación para la Recepción continua.Modo Asíncrono:

0: Deshabilitada la Recepción.1: Habilitada la Recepción

Modo Síncrono:0:Deshabilitada la Recepción.1:Habilitada Recepción continua hasta que se borre CREN.

UNEXPO – Pto. Ordaz. MICROPROCESADORES

CREN:Bit de Habilitación para la Recepción continua.Modo Asíncrono:

0: Deshabilitada la Recepción.1: Habilitada la Recepción

Modo Síncrono:0:Deshabilitada la Recepción.1:Habilitada Recepción continua hasta que se borre CREN.

ADDEN:Bit de habilitación para detección de Dirección (modo Asíncrono con 9 bit).0: Detección de dirección Deshabilitado. Todos los bytes son recibidos y el 9º bit

puede ser usado como paridad.1: Detección de dirección Habilitado. Habilita la interrupción y carga el dato

recibido cuando el 9º bit recibido es 1

Prof. Antonio PatetiProf. Antonio Pateti

RCSTA

Modulo USART

FERR: Error de Trama.0: No ha’y error de Trama.1: Ha habido error de Trama.

OERR: Bit de Sobrepasamiento. Se recibe un nuevo dato sin leer el anterior.0: No hay error de sobrepasamiento.1: Hay error de sobrepasamiento. Se borra CREN

UNEXPO – Pto. Ordaz. MICROPROCESADORES

OERR: Bit de Sobrepasamiento. Se recibe un nuevo dato sin leer el anterior.0: No hay error de sobrepasamiento.1: Hay error de sobrepasamiento. Se borra CREN

RX9D: Bit recibido en la comunicación con 9 bits..

Prof. Antonio PatetiProf. Antonio Pateti

Modulo USART

Recepción Asíncrona

Bit START Bit 0 Bit 7/8 Bit STOP

RSR a RCREG

Lectura a RCREG

RC7/RX (pin)

RCIF

Bit START Bit 0

DATO 1 a RCREG

Bit 7/8 Bit STOP Bit START Bit STOP

DATO 2 a RCREG

Bit 7/8

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Recepción Asíncrona

RxD

RXIF=1

W RCREG

NO

SI

RxDBANKSEL PIR1

NO_RX btfss PIR1,RXIFgoto NO_RXmovf RCREG,Wreturn

UNEXPO – Pto. Ordaz. MICROPROCESADORES

return

W RCREG

RxDBANKSEL PIR1

NO_RX btfss PIR1,RXIFgoto NO_RXmovf RCREG,Wreturn

Prof. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

El generador consiste en un contador/divisorde frecuencia de 8/16 bits, controlado por elregistro SPBRG

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USARTBAUDCON

ABDOVF:Bit de Overflow de detección de auto detector de Baudios (Auto-Baud).0: No hay overflow de Auto-Baud.1: Hay un overflow de Auto-Baud

RCIDL:Bandera que señaliza: No se esta Rx Datos.0: Comienza a Rx un Dato.1: No se esta Rx ningún Dato

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

RCIDL:Bandera que señaliza: No se esta Rx Datos.0: Comienza a Rx un Dato.1: No se esta Rx ningún Dato

SCKP: Bt de Inversión de Polaridad en la Tx .0: Polaridad no invertida en el pin Tx.1: Polaridad invertida en el pin Tx

Modulo USARTBAUDCON

BRG16: Bit de Generación de la Rata de Baudio (BRG), de 16 bits.0: BRG de 8 bts.1: BRG de 16 bits

WUE: Bit que habilita Despertar (Wake-UP), del modo Sleep.0: Rx normal.1: Rx espera por flanco de bajada. No se Rx Carácter, WUE=0 y RCIF=1

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

WUE: Bit que habilita Despertar (Wake-UP), del modo Sleep.0: Rx normal.1: Rx espera por flanco de bajada. No se Rx Carácter, WUE=0 y RCIF=1

ABDEN: Bt que habilita la Auto detección de la rata de baudios (Auto-Baud).0: Auto-Baud esta deshabilitado1: Auto-Baud esta habilitado

Modulo USART

Generador de Baud Rate (BRG)

Formulas para calcular el BRG

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

El generador consiste en un contador/divisorde frecuencia de 8 bits, controlado por elregistro SPBRG

SYNC BRGH=0 (Baja velocidad) BRGH=1 (Alta velocidad)

UNEXPO – Pto. Ordaz. MICROPROCESADORES

0(modo asíncrono) 164

x

FBR osc

116

x

FBR osc

1(modo síncrono) - 164

x

FBR osc

Siendo X el registro SPBRG

Prof. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

Para Fosc=4MHz y BR=9600, se tiene:

SYNC=0 y BRGH=0BRG16=0 164

x

FBR osc

164

BR

FX osc

UNEXPO – Pto. Ordaz. MICROPROCESADORES

164

BR

FX osc

51,5X

Para X=6, se tiene 5,8928164

x

FBR osc

%E = 7%

Prof. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

Para Fosc=4MHz y BR=9600, se tiene:

SYNC=0 y BRGH=1BRG16=0 116

x

FBR osc

116

BR

FX osc

UNEXPO – Pto. Ordaz. MICROPROCESADORES

116

BR

FX osc

04,25X

Para X=25, se tiene 4,961512516

oscF

BR

%E = 0,1%

Prof. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

Modulo USART

Generador de Baud Rate (BRG)

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

TXSEL: Selección del pin de salida de TX.0: Tx es RC61: Txes RB6

APFCON1

Modulo USART

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

RXSEL: Selección del pin de entrada de RX.0: Rx es RC71: Rx es RB7

Modulo USART

Ejemplo con el USART

PIC16F87X

MAX232

UNEXPO – Pto. Ordaz. MICROPROCESADORESProf. Antonio PatetiProf. Antonio Pateti

DB-9M

Rx

Tx

MAX232