Sunteți pe pagina 1din 8

Interfaz programable de comunicacin

serie asincrnica en FPGA


Alexander Surez Lon1, Danelia Matos Molina2, Roger Rivero Labrada3, Rubn D. Lpez Noa4,
Berta Pallerols Mir5
1 Universidad de Oriente, aasl@fie.uo.edu.cu
2 Centro Povincial de Electromedicina Santiago de Cuba
3 Universidad de Oriente, roger@fie.uo.edu.cu
4 Universidad de Oriente, lnoa@fie.uo.edu.cu
5 Universidad de Oriente, bertapm@fie.uo.edu.cu

RESUMEN
El presente artculo muestra el diseo, implementacin y prueba de una interfaz programable de comunicacin serie
asincrnica en un FPGA. El diseo est orientado a emular de forma parcial el funcionamiento de los dispositivos de
recepcin transmisin asincrnica universal (UART) comerciales del fabricante Intel. Se muestra la estructura interna de
los bloques funcionales fundamentales y los resultados de la simulacin funcional. Finalmente algunas aplicaciones y los
principales aspectos distintivos del diseo son discutidos.
Palabras claves: UART, FPGA, Comunicaciones Asincrnicas.

ABSTRACT
This paper shows the design, implementation and test of an asynchronous serial communications programmable interface
on FPGA device. The design is oriented to partially emulate the behavioural of the Intels universal asynchronous receiver
transmitter (UART) available in the market. The internal functional blocks structure and the functional simulation results
are showed. Finally some applications and essentially subjects of the design are argued both.
KeyWords: UART, FPGA, Asynchronous Communications
Asynchronous serial communication programmable interface on FPGA

detrs del dato uno o ms pulsos de parada. El valor del


INTRODUCCIN pulso de arranque es un cero (0) lgico de duracin igual
a un (1) bit y el valor de los pulsos de parada es un uno
De los fundamentos de la transmisin de informacin es (1) lgico y de duracin entre uno (1) y dos (2) bits. La
conocido que entre el transmisor y el receptor debe existir sincronizacin de bits se logra a travs del bit de arranque
una sincronizacin para que la transmisin de la y la de caracter a travs del conteo de los bits siguientes
informacin se realice de manera exitosa. Esto es as al bit de arranque.
debido a que en la transmisin de datos la informacin
pasa por varias etapas como por ejemplo la codificacin y En este tipo de sincronismo no todos los bits transmitidos
decodificacin en ambos extremos del canal lo cual exige son de datos debido a que hay bits de control (arranque,
que exista sincronismo entre la fuente y el destino. parada y opcionalmente paridad) por lo que no se puede
aprovechar la capacidad total del canal.
En el caso de una transmisin digital este sincronismo
puede ser de dos tipos: sincronismo de bit o sincronismo Este formato de transmisin es apropiado para transmitir
de caracter. Dependiendo de la forma en que se logra este a velocidades lentas, por debajo de los 32000 baudios.
la transmisin se denominar sincrnica o asincrnica. Como ventajas de este tipo de transmisin se pueden
El protocolo de transmisin asincrnica se desarroll a citar:
comienzos de la historia de las telecomunicaciones. Se 1. El formato asincrnico es ampliamente
puso muy de moda a partir de la invencin de los utilizado en terminales de baja velocidad
transmisores de telex o telegramas que se usaron para donde lograr gran eficiencia en la utilizacin
enviar telegramas alrededor del mundo. de la capacidad del canal no sea tan
En general el formato asincrnico requiere que delante de importante.
cada caracter se transmita un pulso de arranque y 2. No se necesita excesiva estabilidad en el
tiempo de duracin de cada pulso.
3. La transmisin de datos se verifica con chequeo de errores en la transmisin. Este bit es
mayor rapidez debido a lo sencillo del configurable y la paridad puede ser fija, par, impar o
sincronismo. prescindir de ella.
4. Este formato es muy fcil de implementar Dispositivos que implementen esta funcin existen
desde el punto de vista de la programacin muchos en el mercado, por ejemplo comercialmente estn
con respecto a otros formatos. disponibles dos integrados muy conocidos como el
UART Intel 8250 y el UART Intel 16550 que es el
Las desventajas que sobresalen son: empleado en las PC actuales que disponen de interfaz
RS232C.
1. Ineficiencia en la utilizacin de la capacidad Estos componentes son compatibles entre s y permiten
del canal. una amplia gama de velocidades de transmisin,
2. La distorsin o alteracin del pulso de destacando adems el polimorfismo de las tramas y otras
arranque causa errores en la recepcin del prestaciones como el soporte para interrupciones y
dato. buffers FIFO (16550).
Es por ello que son precisamente estos dispositivos los
El objetivo de este documento es mostrar el diseo e que han servido de modelo para el diseo que aqu se
implementacin en FPGA de una sencilla unidad de presenta.
comunicacin serie asincrnica para su uso con
Elementos generales
procesadores empotrados.
La idea bsica del diseo est sustentada en el propsito
METODOLOGA de disear un circuito para hardware programable (lase
FPGA) que dentro de lo admisible tenga un
El protocolo de comunicacin serie-asincrnica impone comportamiento similar a un 8250 clsico pero mucho
el siguiente formato: ms sencillo y menos general.
El circuito en forma de bloque funcional se muestra en la
Figura 2. De forma general cuenta con 26 patillas
divididas en 9 entradas, 1 salida y 16 lneas
bidireccionales (el bus de datos).

Figura 1
Protocolo serie asincrnico.

Como se aprecia los bits de datos y los de control viajan


juntos por un solo conductor, la duracin de cada bit es
determinada por la velocidad de transmisin. En este
protocolo se acuerda que cuando no haya datos en la
lnea se pondr un nivel alto o uno (1) lgico en el canal.
Cuando esto sucede el receptor se pone en espera del bit
de arranque y a partir de ste captura el resto de la trama.
Los bits de datos pueden variar entre 5 y 8 como se Figura 2
muestra en la Tabla I. Los bits de parada varan de Bloque funcional de la interfaz.
acuerdo con la cantidad de bits de datos que tenga la
trama.
Las lneas del bus de datos D[15:0] se han colocado
Tabla I: Relacin cantidad de bits de datos / cantidad de convenientemente a la derecha.
bits de stop.
Bits de Datos Bits de Stop
5 bits 1,5 bits
6, 7 y 8 bits 2 bits Estructura interna
8 bits 1 bit
Internamente la unidad est compuesta por unidades
funcionales ms pequeas como se muestra en la Figura
A estos bits se puede sumar opcionalmente el bit de 3.
paridad, que permite implementar un rudimentario
Figura 4
Estructura interna del mdulo de recepcin
Figura 3 (RXM).
Estructura interna de la interfaz. Est formado por un bloque de entrada/salida I/O, un
generador de baudios (BRG), una mquina de estado
El dispositivo est compuesto por las unidades
finito (FSM), un contador de bits, (SEQ), un registro de
funcionales que a continuacin se enuncian:
desplazamiento de recepcin (RSR), un buffer de
recepcin, una lgica de chequeo de la recepcin (LLSR)
1. Unidades de entrada/salida. Bloques I/O en y parte del registro de estado de lnea, LSR.
el diagrama.
La tarea del BRG es generar pulsos con la frecuencia
2. Registro de almacenamiento del divisor para indicada por la velocidad de transmisin y entregarlos a
el generador de baudios. Bloque BRGR. la mquina de estado para que genere las rdenes que
3. Registro de Control de Lnea. LCR es deben ejecutar el resto de los dispositivos en el prximo
anlogo al que aparece en el 8250. ciclo.
4. Mdulo de recepcin. RXM. La mquina de estado finito (FSM) acta como unidad de
5. Mdulo de transmisin. TXM. control (UC, de aqu en adelante se llamar
indistintamente como mquina de estado o como unidad
Las unidades de entrada/salida tienen la funcin de de control) de todo el sistema controlando los recursos de
establecer las entradas y constituyen la interfaz entre el recepcin de datos auxiliada por el generador de baudios
dispositivo que solicita la transmisin serie y el y el contador de bits.[1] [4].
transmisor en s. El diagrama de estados de la mquina se muestra en la
Los registros BRGR y LCR son dos registros de 16 y 8 Figura 5.
bits respectivamente con la particularidad de que BRGR
tiene un valor de reinicio por defecto distinto de cero.
El LCR a diferencia de su anlogo en el 8250 slo es
configurable en los bits 7, 5, 4 y 3. Los tres ltimos
corresponden a seleccin de la paridad; y el ms
significativo, que en el 8250 es DLAB, aqu es el
equivalente al bit 4 del Modem Control Register (MCR),
que permite hacer un diagnstico del dispositivo
colocndole en un modo en que internamente se conecta
SOUT a SIN permitiendo que un caracter enviado por
SOUT sea recibido en SIN.
Los elementos ms importantes de esta estructura son el
mdulo de transmisin que como su nombre lo indica es
el elemento encargado de garantizar la recepcin de los Figura 5
datos que entran por la patilla SIN; y el mdulo de Diagrama de estados de la unidad de control de
transmisin que se encarga de transmitir los datos por la recepcin.
patilla SOUT.
Se vern a continuacin ms detalles de cada uno de estos El contador de bits, SEQ, genera un nivel bajo en su
dispositivos. salida cuando se ha alcanzado el ltimo bit o bit de stop
Mdulo de recepcin de la trama, permitiendo as que la unidad de control
conozca que se ha recibido el ltimo bit de la trama.
Internamente el mdulo de recepcin est estructurado Es necesario para que el contador de bits funcione
como se muestra en la Figura 4. correctamente si la paridad est habilitada.
El registro de desplazamiento de recepcin (RSR) es un su homlogo en el 8250, la cual no es ms que almacenar
registro de desplazamiento a la derecha de 10 bits (el bit (retener) temporalmente el valor del byte a transmitir en
de START no cuenta) cuyo propsito es recibir cada uno el caso de que se est produciendo una transmisin, hasta
de los bits que componen la trama de datos que esta concluya. De no estarse efectuando una
El registro buffer de recepcin RBR se encarga de transmisin casi inmediatamente su valor se escribir en
almacenar el dato recibido de 8 bits. el TSR.
La lgica de chequeo de recepcin (LLSR) est diseada
para determinar las condiciones de error (paridad, trama,
etc) que sern registradas en el registro de estado de lnea
de recepcin, incluye una puerta XOR para la obtencin
de la paridad de los bits recibidos.
El registro de estado de lnea (LSR) es un subconjunto de
las seales de este registro en el 8250 que pertenecen a la
operacin de recepcin. Estas son:
DR: Data Ready. (BIT 0)
OE: Overrun Error. (BIT 1)
PE: Parity Error. (BIT 2)
FE: Framing Error. (BIT 3)
El BIT 4, BI: Break Interrupt no est soportado.
Mdulo de Transmisin Figura 7
Diagrama de estados de la unidad de control de
El mdulo de transmisin (TXM) como ya se dijo es el transmisin.
encargado de transmitir los datos por la patilla SOUT. En
la Figura 6, se muestra la estructura interna de este La lgica de chequeo de transmisin (LTSR), es la lgica
mdulo. necesaria para generar la paridad y el bit de stop para las
Este mdulo cuenta con algunos de los elementos del diferentes variantes disponibles, de este mdulo los
mdulo de recepcin, como FSM, BRG y SEQ, que en el elementos ms sobresalientes son una puerta XOR, de 8
caso de los dos ltimos operan exactamente igual a como bits y dos (2) multiplexores.
lo hacen en el mdulo de recepcin, no siendo el caso de El registro de desplazamiento de transmisin (TSR) es
la mquina de estado que es tambin la unidad de control, anlogo al RSR con la diferencia que este es utilizado
pero en este caso de transmisin. Ver Figura 7. para la transmisin de los datos serie. Es un registro de
10 bits con desplazamiento a la derecha.
El registro de estado de lnea (LSR) para la transmisin
est compuesto por los bits:
THRE: Transmitter Holding Register Empty. (BIT 5)
TEMT: Transmitter Empty. (BIT 6)

RESULTADOS
Las tablas de costo de implementacin en el FPGA se
muestran, Tabla I y Tabla II, en cada caso se muestran los
costes de implementacin de los bloques funcionales y
finalmente para la estructura completa.
Como se muestra en ambas tablas el resultado de la
Figura 6 implementacin no supera el 2% de los recursos para una
Estructura interna del mdulo de transmisin (TXM). tarjeta con el XC3S1000FT256.
A los elementos antes mencionados se suman el registro
de retencin de transmisin (THR), la lgica de chequeo
Tabla II: Tabla de costos de implementacin
de transmisin, que en este caso estara ms bien llamarle
XC3S1000FT256
lgica de generacin de paridad, (LTSR), el registro de
desplazamiento de transmisin (TSR) y el registro de Element S % SFF % 4ILUT %
estado de lnea (LSR), en los bits que competen a la o
BRGR 9 0.12 9 0.10 - -
transmisin.
El registro de retencin de transmisin (THR) es un LCR 5 0.07 8 0.05 - -
registro comn de 8 bits que realiza la misma funcin que
RXM 68 0.89 64 0.42 125 0.81 Se ha elegido el modo loop para comprobar el
funcionamiento del sistema debido a que permite en una
TXM 56 0.73 57 0.37 101 0.66
misma simulacin comprobar tanto el sistema de
ASCPI 146 1.9 145 0.94 263 1.71 transmisin como el de recepcin.
S: Slices Tabla VI: Parmetros de configuracin del dispositivo
SFF: Slices Flip/Flops para la simulacin.
4ILUT: 4 - Input LUTs Parmetro Valor
Velocidad 98000 b
Tabla III: Tabla de costos de bloques de entrada/salida y
seales de reloj XC3S1000FT256 Divisor 2

Element IOB % GCLK % Paridad Sin


o s paridad
BRGR 34 19 1 12.5 Modo Loop
LCR 18 10 1 12.5
RXM 35 20 1 12.5 Informacin a transmitir 04h
TXM 32 18 1 12.5
ASCPI 25 14 1 12.5 Informacin a recibir 04h
IOBs: Bloques de entrada/salida
GCLK: Buffers globales de reloj.
Obsrvese cmo las patillas de entrada/salida
El anlisis de respuesta en frecuencia da igualmente (SIN/SOUT) permanecen en nivel alto todo el tiempo de
resultados positivos, aunque en este caso no es de suma simulacin, mientras la seal ISIN es la que recibe el dato
importancia que el dispositivo sea muy rpido ya que los serie internamente.
autores ven como caracterstica ms til la posibilidad de En la figura aparecen tambin los bits del registro de
interconexin con computadoras que incorporen UART y estado de lnea (LSR) correspondientes a la recepcin
cuyas velocidades ms comunes no son precisamente (DR, PE, OE, FE) y los bits del registro de control de
altas. lnea (LCR) que se relacionan con la paridad.
Las Tablas IV y V muestran el resumen de la respuesta en
frecuencia del dispositivo para cada una de las
especificaciones temporales y los peores caminos
respectivamente.

Tabla IV: Retrasos en ns de la lgica del sistema.


C2S C2P P2S
5.369ns 8.674ns 6.307ns

Tabla V: Peores caminos en cada caso.


C2S C2P P2S
cnt16-cnt4 CLK D[3] A[2] CLK
C2S: Clock to setup
C2P: Clock to pad
P2S: Pad to setup

Figura 8
La Figura 8 muestra los resultados de una simulacin
Resultados de la simulacin funcional.
funcional. Para ello se ha montado un banco de prueba
(testbench) con los datos de la simulacin hasta el pulso
nmero 769 de un reloj de 200 ns de perodo (5 MHz). El RSR muestra la secuencia de entrada de los bits desde
La simulacin incluye la configuracin del dispositivo, el LSB hasta el bit de STOP, mientras RBR es el registro
as como las lecturas de encuesta al pin DR (DATA buffer de recepcin a la entrada es por ello que se ve
READY), para conocer cuando ha llegado un nuevo dato como cambia la seal, pues en realidad no debe cambiar
al mdulo de recepcin. hasta que sea recibido el bit de STOP que marca el
Los parmetros de configuracin del dispositivo se instante de registrar el contenido del RSR y modificar si
muestran en la Tabla VI. La velocidad se ha tomado es necesario el estado del registro de estado de lnea
grande para que la simulacin no se extienda demasiado (LSR).
en el tiempo de manera que sea ms rpido y fcil de Tambin se muestran las seales de control del
comprobar el correcto funcionamiento del dispositivo. dispositivo en general, parte del bus de direcciones
(A[2:0]) y el bus de datos bidireccional (D[15:0]).
DISCUSIN
Para discutir las caractersticas del mdulo los autores se
han basado en dos (2) elementos fundamentales que
tienen que ver con:
1. Semejanzas, diferencias, ventajas y
desventajas del mdulo frente a un UART
clsico (modelo 8250 16550).
2. Aplicaciones de prueba
Comenzando con el primer aspecto, el mdulo ha sido
construido teniendo en cuenta el protocolo serie
asincrnico y como modelo los UART de Intel por ello
existe bastante similitud en la manera de programar el Figura 9
dispositivo pues se ha tratado, salvando las diferencias, Mini plataforma 1.
de mantener las mismas direcciones de los registros.
Estas direcciones se mantienen inalterables para el
registro de estado de lnea (LSR), el registro buffer de El programa que incorpora el procesador implementa el
recepcin (RBR), el registro de transmisin (THR) y el algoritmo que se muestra en la Figura 10.
registro de control de lnea (LCR).
Esta situacin permite que a pesar de no ser un UART
completo el dispositivo siga parte del algoritmo clsico
de programacin de un 8250 o un 16550.
Esta filosofa le da la posibilidad al diseo de seguir
creciendo en el futuro hasta dejar de ser una interfaz
bastante simple para convertirse en un verdadero UART.
Las diferencias ms significativas estn dadas en la
imposibilidad de la interfaz de variar el tamao de la
trama (fija en 8) y el nmero de bits de stop (fijo en 1), la
inexistencia de los registros asociados al tratamiento de
interrupciones (IER, IIR) y seales y control de mdem
(MCR, MSR).
Otras diferencias se aprecian en que la interfaz no Figura 10
especifica reloj as que este puede tener en general una
Algoritmo de prueba en la mini plataforma 1.
frecuencia distinta a la clsica 1.8432 MHz, no existe
soporte para el BIT 4 del LSR (BI) y por ltimo debido Bsicamente se trata de programar el procesador para que
al tamao del bus de datos (16 bits) no tiene efecto a su vez programe la interfaz en modo loop y
utilizar DLAB al programar la velocidad, lo que trae seguidamente transmitir un dato, recibir el dato y
como consecuencia que para programar los divisores esto comparar el dato enviado con el recibido
se realiza en una sola operacin de transferencia de 16 (autodiagnstico) y como seal de xito o fallo encender
bits y como si se estuviera escribiendo el bit ms una de las lmparas con un valor especfico para cada
significativo de la velocidad en un UART clsico, esto es, caso.
en la misma direccin. Lo primero a hacer es programar la velocidad de
Pasando al tema de la aplicaciones, para discutir los transmisin y recepcin, a continuacin se programan las
resultados los autores se auxiliaron de dos mini caractersticas de la trama, esto es, el tipo de paridad,
plataformas distintas, la plataforma nmero uno se pues es fijo 8 bits de datos, 1 bit de stop; y el modo.
muestra en la Figura 9 y no es ms que una extensin real Seguidamente se enva un byte de informacin (E) al
del testbench realizado en el acpite anterior. THR para inmediatamente comenzar a encuestar el bit
Se trata de una plataforma que adems de la interfaz de DR (DATA READY) del Registro de Estado de Lnea
comunicacin que se analiza, incorpora el procesador (LSR). Cuando se halla recibido el dato se lee el
Silmaril 1.1, y un mdulo de visualizacin para cuatro contenido del Registro Buffer de Recepcin (RBR) que
lmparas de 7 segmentos. [5] - [6]. es en definitiva el byte recibido (R).
El objetivo de la plataforma es comprobar prcticamente El prximo paso es comparar el dato enviado (E) con el
el modo de funcionamiento en lazo (loop) y en general de dato recibido (R), si la diferencia es cero entonces son
toda la estructura de la interfaz. iguales y se procede a encender una de las lmparas con
el carcter A, si no es as se ilumina la lmpara con el
valor B.
La mini plataforma 2 se muestra en la Figura 11, como se en aplicaciones como dispositivos de control inteligentes
ve se trata de un procesador, conectado a un adaptador de y configurables.
vdeo VGA con su correspondiente conector, un
adaptador de teclado, similar al utilizado en el IBM PC
AT y la interfaz serie conectada a un adaptador de nivel
REFERENCIAS
fsico (conector RS232C) y un cable comn para conectar 1. XILINX, INC: Xilinx UG130 Spartan-3 Starter Kit
al PC. Board User Guide. 2004.
2. XILINX, INC: Xilinx Libraries Guide. 2004.
3. WAKERLY, J. F: Digital Design. Principles and
Practices. 4ed. New Jersey: Pearson Perentice Hall,
pp. 553 587. 2006.
4. XILINX, INC: StateCAD Release 6.2i Help.
2004.
5. ASHENDEN, P. J: The VHDL Cookbook. 1990.
6. SUREZ LEN, A. A: Diseo del
microprocesador Silmaril 1.1 para sistemas
empotrados en FPGA en Conferencia Internacional
FIE 2008. 2008

Figura 11 AUTORES
Mini plataforma 2. Alexander A. Surez Len, Ing. en Automtica,
El objetivo de la prueba es realizar un pequeo Chat entre Instructor recin graduado, Universidad de Oriente. FIE,
el ordenador (PC) y la plataforma para el intercambio de Dpto. Ingeniera Biomdica. aasl@fie.uo.edu.cu
informacin entre ambas. Lo que requiere hardware y Miembro del Grupo Cientfico de Electrnica
software del lado de la plataforma y software del lado del Programable Ni.
PC. Danelia Matos Molina, Ing. en Automtica, Profesor
La plataforma ha sido construida y se encuentra Instructor, Centro Provincial de Electromedicina,
funcionando en una tarjeta de desarrollo que incorpora Santiago de Cuba, Dpto. Electro-ptica. Miembro del
adems de los adaptadores de nivel fsico para monitor Grupo Cientfico de Electrnica Programable Ni.
VGA y teclado, un Spartan - 3 XC3S1000-4FT256 de Roger E. Rivero Labrada, Ing. en Materiales y
Xilinx. Componentes Electrnicos, Profesor Asistente, Master en
Ciencias, Universidad de Oriente. FIE, Dpto. Ingeniera
CONCLUSIONES Biomdica. roger@fie.uo.edu.cu. Subdirector Grupo
Cientfico de Electrnica Programable Ni. Jefe de Carrera
Hasta aqu se han mostrado el diseo, la implementacin Ingeniera Biomdica.
y algunas plataformas de prueba de la interfaz tratada.
Rubn D. Lpez Noa, Ing. en Automtica, Profesor
Se han examinado las principales caractersticas que Auxiliar, Master en Ciencias. Universidad de Oriente
acercan y alejan la interfaz al comportamiento clsico de FIE, Dpto. Ingeniera Biomdica. lnoa@fie.uo.edu.cu
los dispositivos de transmisin serie que se encuentran en Director del Grupo Cientfico de Electrnica
los ordenadores. Programable Ni. Jefe de Departamento Ingeniera
A pesar de no contar con la universalidad de un UART se Biomdica.
puede decir que salvando la primera letra de esta sigla el
Berta Pallerols Mir, Ing. en Telecomunicaciones, Profesora
dispositivo cumple con el resto y puede (como se ha
mostrado) ser utilizado en numerosas aplicaciones donde Auxiliar, Universidad de Oriente. FIE, Dpto. Ingeniera en
se requiera la transmisin de datos hacia un PC u otro Telecomunicaciones bertapm@fie.uo.edu.cu. Miembro del
dispositivo similar. Grupo Cientfico de Electrnica Programable Ni. Jefa de
Departamento Ingeniera en Telecomunicaciones.
Como se ha visto adems es un dispositivo que requiere
de relativamente pocos recursos y tiene una respuesta en
frecuencia que puede calificarse como aceptable.
Tambin se ha visto en el caso de la mini plataforma 2
cmo combinado con un procesador y algunos otros
dispositivos se puede crear un pequeo terminal con
comunicacin a un PC que puede ser utilizado en las dos
direcciones para intercambiar datos, lo que cobra utilidad

S-ar putea să vă placă și