Вы находитесь на странице: 1из 21

MICROCONTROLADORES PIC

USART

Universal Synchronous Asynchronous Receiver Transmitter


• Síncrona o asíncrona
• Recibe y transmite
• Operación full duplex asíncrona
• Aplicación típica: comunicación con un PC mediante el
protocolo RS232, para lo que necesita un driver para
desplazamiento de niveles

1
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

1
MICROCONTROLADORES PIC
USART

Bloques que forman la USART:


• Generador de la relación de baudios (BRG)
Genera el reloj de transmisión a partir del oscilador de la MCU
Determina la velocidad de transferencia
• Circuito de muestreo
Detección del nivel lógico en el terminal de RX
Síncronización del reloj
• Transmisor asíncrono
• Receptor asíncrono

2
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

2
MICROCONTROLADORES PIC
USART

Diagrama simplificado de transmisión:

3
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

3
MICROCONTROLADORES PIC
USART

Diagrama simplificado de recepción:

4
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

4
MICROCONTROLADORES PIC
USART

Ejemplo: forma de onda de la transmisión serie del dato 25h con 8 y 125h
con 9 bits:

5
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

5
MICROCONTROLADORES PIC
USART. Registros de control

SPBRG – Generación del ‘baud rate’


BRGH bit en el registro TXSTA
SYNC bit en TXSTA
TXSTA – Control y estado de transmisión
RCSTA - Control y estado de recepción
TXREG – Registro de transmisión de datos
RCREG - Registro de recepción de datos
PIR1 – Registro de indicadores (‘flags’) de interrupción
PIE1 – Registro de habilitación de interrupciones

6
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

6
MICROCONTROLADORES PIC
USART. Velocidad de transmisión

Formulas para el cáculo de los baudios


Baudios = Fosc/(16(SPBRG+1)), BRGH=1
Baudios = Fosc/(64(SPBRG+1)), BRGH=0
Formulas para SPBRG
SPBRG = (Fosc/(16 x Baud rate)) - 1, BRGH=1
SPBRG = (Fosc/(64 x Baud rate)) - 1, BRGH=0

Ejemplo:
•Oscilador: 4MHz oscillator
•Velocidad de transmisión: 9600 baudios asíncrono
Para BRGH = 1
SPBRG = 4000000/(16 x 9600) - 1 = 25.04
Para BRGH = 0
SPBRG = 4000000/(64 x 9600) - 1 = 5.51
Mejor elección: BRGH = 1, SPBRG = 25
7
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

7
MICROCONTROLADORES PIC
USART
Velocidades de transmisión para:

BRGH=0 BRGH=1

Registros asociados con el generador de relación de baudios:

8
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

8
MICROCONTROLADORES PIC
USART. Registros de control
TXSTA: Transmit Status and Control Register

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


Modo asíncrono: no utilizado
Modo síncrono
1 = Modo maestro (reloj generado internamente por BRG)
0 = Modo esclavo (reloj de la fuente externa)
bit 6 TX9: Bit de habilitación de transmisión de 9 bits
1 = Transmisión de 9 bits
0 = Transmisión de 8 bits
bit 5 TXEN: Bit de habilitación de transmisión
1 = Transmisión habilitada
0 = Transmisión no habilitada.
bit 4 SYNC: Bit de selección de modo en la USART
1 = Modo síncrono
0 = Modo asíncrono

9
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

9
MICROCONTROLADORES PIC
USART. Registros de control
TXSTA: Transmit Status and Control Register

bit 3 No implementado se lee 0


bit 2 BRGH: Bit de selección de alta velocidad de trasmisión (High Baud Rate)
Modo síncrono: no utilizado
Modo asíncrono
1 = Alta velocidad
0 = Baja velocidad
bit 1 TRMT: Bit de estado del registro de desplazamiento de transmisión
1 = TSR vacio
0 = TSR lleno
bit 0 TX9D: Noveno bit del dato a transmitir. Puede ser el bit de paridad.

10
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

10
MICROCONTROLADORES PIC
USART. Transmisor
Diagrama de bloques

TXREG vacío si TXIF=1


Buffer del registro
de desplazamiento (R/W)
Salida de datos

Registro de desplazamiento
de transmisión
Habilitación
de TX Habilitación
TSR vacio
(TRMT=1) puerto serie
Habilitación bit 9
Bit 9

11
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

11
MICROCONTROLADORES PIC
USART. Transmisor

Registros asociados en el 16F87x:

12
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

12
MICROCONTROLADORES PIC
USART. Transmisor

Cronogramas de transmisión:

13
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

13
MICROCONTROLADORES PIC
USART
Inicialización de la transmisión

• Inicializar el registro SPBRG con el valor apropiado para la velocidad a


utlizar (tener en cuenta el bit BRGH)
• Habilitar el puerto serie asíncrono poniendo a 0 el bit SYNC y a 1 el bit
SPEN.
• Para utilizar interrupciones poner a 1 los bits TXIE, GIE y PEIE.
• Para una trasmisión de 9 bits poner a 1 el bit TX9.
• Habilitar la transmisión con un 1 en el bit TXEN , qué también pondrá a
uno el bit TXIF.
• Si se utiliza la transmisión de 9 bits cargar el noveno bit en TX9D.
• Cargar el dato en el registro TXREG (comienza la transmisión).

14
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

14
MICROCONTROLADORES PIC
USART. Registros de control

RCSTA: Receive Status and Control Register

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


1 = Puerto serie habilitado (configura RX/DT y TX/CK como pines del puerto
serie)
0 = Puerto serie inhibido
bit 6 RX9: Bit de habilitación de datos de 9
1 = Recepción de 9 bits
0 = Recepción de 8 bits
bit 5 SREN: Bit de habilitación de recepción sencilla.
Modo asíncrono: no utilizado
Modo síncrono - maestro
1 = Habilitada
0 = Inhibida Se pone a cero cuando se completa una recepción.
Modo síncrono - esclavo: no utilizado

15
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

15
MICROCONTROLADORES PIC
USART. Registros de control
RCSTA: Receive Status and Control Register

bit 4 CREN: Bit de habilitación de recepción continua


Modo asíncrono
1 = Habilitado
0 = Inhibido
Modo síncrono
1 = Habilitado
0 = Inhibido
bit 3 No implementado se lee 0
bit 2 FERR: Bit de error de trama
1 = Error de trama (se puede actualizar leyendo el registro RCREG y
leyendo el siguiente byte válido)
0 = Sin error de trama
bit 1 OERR: Bit de error de overrun
1 = Error de overrun (se puede ‘borrar’ poniendo a cero CREN)
0 = Sin error de overrun
bit 0 RX9D: Noveno bit recibido. Puede ser el bit de paridad
16
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

16
MICROCONTROLADORES PIC
USART. Receptor
Indicadores de error
Diagrama de bloques: Recepción continua =1

Entrada de datos

Registro de desplazamiento
de recepción
Habilitación
puerto serie

Datos de 9 bits

Recepción completa
Datos no leído en FIFO
Doble buffer de recepción (FIFO)

17
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

17
MICROCONTROLADORES PIC
USART. Receptor

Registros asociados en la MCU 16F87x:

18
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

18
MICROCONTROLADORES PIC
USART
Inicialización de la recepción

• Inicializar el registro SPBRG con el valor apropiado para la velocidad a


utlizar (tener en cuenta el bit BRGH)
• Habilitar el puerto serie asíncrono poniendo a 0 el bit SYNC y a 1 el bit
SPEN.
• Para utilizar interrupciones poner a 1 los bits TXIE, GIE y PEIE.
• Para una trasmisión de 9 bits poner a 1 el bit RX9.
• Habilitar la recepción con un 1 en el bit CREN.
• El bit RCIF se pondrá a 1 cuando la recepción se complete, se generará
una interrupción si RCIE esta activado.
• Leer RCSTA para coger el noveno bit si es necesario y determinar si ha
ocurrido algun error.
• Recoger el dato recibido del registro RCREG.
• Si se ha producido algun error poner a cero el bit .CREN

19
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

19
MICROCONTROLADORES PIC
USART.
Ejemplo de programa

20
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

20
MICROCONTROLADORES PIC
USART.
Muestreo

El dato en el pin de RX se muestrea tres veces y se determina su nivel


(alto o bajo) por mayoría.

21
SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

21

Вам также может понравиться