You are on page 1of 25

MPEI

El modulo UART es empleado para la transmisin y recepcin de


datos paralelos de 8-bit o 9-bit sobre una lnea de transmisin y
una de recepcin serial.



Un receptor-transmisor asincrnico universal (Universal
Asynchronous Receiver-Transmitter) por naturaleza, significa que
el transmisor y receptor no estn sincronizados. Para ello tanto el
transmisor como el receptor hacen uso de una referencia de
tiempo que permite una tolerancia adecuada para la transmisin
de cada dato.
Comunicacin serial usando el modulo UART
MPEI
Comunicacin serial usando el modulo UART
Definicin del protocolo ( handshake )
El dato es transmitido enviando primero el LSB a una velocidad de
bit (Baud Rate), que es conocida por el transmisor y el receptor
El receptor necesita un mtodo de identificacin para conocer
cuando el LSB esta siendo enviado. Esto se logra por la
transmisin de un bit de sincronismo cuya representacin
corresponde a un tiempo de bit.
MPEI
Comunicacin serial usando el modulo UART
Conjunto de reglas
1 start bit
8 (9) data-bits: NRZ non-return-to-zero
1 (2) stop
Electronic Industries Alliance (EIA) RS-232 standard
Especifica las caractersticas elctricas, mecnicas y funcionales
para los equipos de comunicacin.
MPEI
Comunicacin serial usando el modulo UART
Sincronizacin
El receptor emplea el flanco de bajada del bit Start para iniciar un
circuito interno de temporizacin que permite muestrear el valor
del bit de entrada serial en un punto aproximadamente en el medio
de cada bit, punto en donde el bit deber ser mas estable.
1 0 1 0 0 1 0 1
tb
MPEI
Comunicacin serial usando el modulo UART
Algoritmo
La rata de muestreo es 16 veces la velocidad de bit, esto significa que cada bit es
muestreado 16 veces.
En el flanco del bit de Start un contador inicia un conteo hacia 7, alcanzando el punto
medio del bit. El contador es inicializado a 0.
Cuando el contador realiza 16 conteos (0-15) alcanza el punto medio del bit y su
valor en ese instante es almacenado en un registro de desplazamientos. El contador
es inicializado a 0. El proceso se repite N-1 + M veces.
Luego de que el MSB ha sido muestreado, el receptor verifica si el bit de stop es el
valor esperado (1) el cual confirma la correcta operacin. El receptor es re-
sincronizado para el flanco de bajada de cada bit de Start.
MPEI
Comunicacin serial usando el modulo UART
Proceso de Sobre-muestreo (Oversampling)

MPEI
Comunicacin serial usando el modulo UART
Baud Rate Timing

MPEI
Comunicacin serial usando el modulo UART
Baud Rate Timing

16

= 16

16


Qu significa K?
MPEI
Comunicacin serial usando el modulo UART
Macro UART de Xilinx

Full-duplex, comunicacin asincrnica
8-bit, No Parity, 1-Stop: (8,N,1)
Buffer FIFO de 16 niveles para Transmisin y Recepcin

MPEI
Comunicacin serial usando el modulo UART
Macro UART_TX
KCUART_Tx
BBFIFO_16x8
MPEI
Comunicacin serial usando el modulo UART
Declaration of UART Transmitter with integral 16-byte FIFO buffer
component uart_tx
Port (
data_in : in std_logic_vector(7 downto 0);
write_buffer : in std_logic;
reset_buffer : in std_logic;
en_16_x_baud : in std_logic;
serial_out : out std_logic;
buffer_full : out std_logic;
buffer_half_full : out std_logic;
clk : in std_logic);
end component;
MPEI
Comunicacin serial usando el modulo UART
Macro UART_RX
KCUART_Rx
BBFIFO_16x8
MPEI
Comunicacin serial usando el modulo UART
Declaration of UART Receiver with integral 16-byte FIFO buffer
component uart_rx
Port (
serial_in : in std_logic;
data_out : out std_logic_vector(7 downto 0);
read_buffer : in std_logic;
reset_buffer : in std_logic;
en_16_x_baud : in std_logic;
Buffer_data_present : out std_logic;
buffer_full : out std_logic;
buffer_half_full : out std_logic;
clk : in std_logic);
end component;
MPEI
Comunicacin serial usando el modulo UART
Conexin UART KCPSM3
INPUT Operations
READ_STROBE Iteration with FIFOs
MPEI
Comunicacin serial usando el modulo UART
Documentos de consulta

UART Transmitter and Receiver Macros
Ken Chapman
Xilinx Ltda.
MPEI
Comunicacin serial usando el modulo UART
dsPIC30F

Full-duplex, comunicacin asincrnica
Soporte para protocolos: RS-232, RS-422, RS-485 y LIN
Buffer FIFO de 4 niveles para Transmisin y Recepcin
Interrupcin para Transmisin y Recepcin
Deteccin de errores
Soporte para direccionamiento

MPEI
Comunicacin serial usando el modulo UART
Diagrama de Bloques
MPEI
Comunicacin serial usando el modulo UART
Registros
UxBRG
UxMODE
UxSTA

Generador de Baud-Rate

Baud-Rate de 16-bit controlado por el UxBRG
=

16 ( + 1)


Receptor y Transmisor emplean el mismo BRG
MPEI
Comunicacin serial usando el modulo UART

Deteccin de errores

Parity Cuando el bit de paridad transmitido no coincide con el bit de
paridad calculado por el receptor. UxSTA<PERR>

Framing Cuando el bit de STOP es esperado y se detecta un nivel bajo.
UxSTA<FERR>

Receive Overrun Cuando el buffer esta lleno y un 5 dato es recibido.
UxSTA<OERR>

MPEI
Comunicacin serial usando el modulo UART
Ejemplo Configuracin Modulo UART 1
8-bit,1stop, No Parity, 9600 bps
UxMODE Register
1 - 0 - - 1 - -
0 0 0 - - 0 0 0
8-bit,NP 1stop
MPEI
Comunicacin serial usando el modulo UART
Ejemplo Configuracin Modulo UART 1
8-bit,1stop, No Parity, 9600 bps
UxSTA Register
0 - - - 0 1 R R
0 X 0 R R R R R
1 carcter
Deteccin de
errores
MPEI
Comunicacin serial usando el modulo UART
Ejemplo Configuracin Modulo UART 1
8-bit,1stop, No Parity, 9600 bps
UxBRG Register
=

16
1


=

16 9600
1


MPEI
Comunicacin serial usando el modulo UART
/* Ex: LoopBack */
/* Config UART */

clr U1CON ; Reset UART 1 module to defaul state
mov #BRGVal, W0
mov W0, U1BRG ; 9600 bits/s
mov #0x8400, W0
mov W0, U1MODE ; 8-N-1
mov #0x0800, W0
mov W0, U1STA ; 1 character

MPEI
Comunicacin serial usando el modulo UART

LOOP: btss U1STA, #URXDA ; Dato Recibido?
bra NEXTPROCESS ; NO: Continua con el siguiente proceso
mov U1RXREG, W0 ; SI: Lee dato recibido
mov W0, U1RXVal ; Almacena dato
mov W0, U1TXREG ; Loopback

NEXTPROCESS:
instruction
...
bra LOOP
MPEI
Comunicacin serial usando el modulo UART
Documentos de consulta
Microcontrollers and Microcomputers: Principles of Software and
Hardware Engineering.
Serial I/O-The Asynchronous Serial Communication System.

dsPIC30F Family Refence Manual
Implementing Auto Baud on dsPIC30F Devices

You might also like