You are on page 1of 3

A diferencia de los puertos paralelos, los puertos serie son los

que ms se usan, USB, UART, I2C, CAN bus, RS232 que se


nombr anteriormente son puertos serie. Por tanto van a
tender a usar pocos cables y la informacin se enviar
secuencialmente. Por otra parte se puede distinguir entre
buses sncronos y asncronos. La diferencia entre ambos
reside en que a la hora de comunicar dispositivos que
trabajan a frecuencias distintas necesiten o no de una seal de
sincronizacin, a continuacin se nombran algunos:

Es importante conocer un trmino que ser de mucha


importancia a lo largo del avance del proyecto es UART, este
bsicamente es el corazn del sistema de comunicaciones,
acrnimo de Universal Asynchronous Receiver-Transmitter.
Es un chip cuya misin principal es convertir los datos
recibidos del bus del PC en formato paralelo, a un formato
serie que ser utilizado en la transmisin hacia el exterior.
Tambin realiza el proceso contrario: transformar los datos
serie recibidos del exterior en un formato paralelo entendible
por el bus. [1]

I2C
Los UARTs ms significativos se sealan a continuacin:
Es un bus que est formado por 2 cables conocidos como
SDA y SCL ms 1 para conectar las masas (GND) de los
dispositivos. Con este tipo de bus es posible conectar
bastantes dispositivos entre s. Constructivamente lo nico
que hace falta es que conectar una resistencia de 2.2KOhm de
algn punto de SDA a Vcc y otra resistencia de 2,2KOhm
desde un punto de SCL hasta Vcc, es decir, que las lneas
SDA y SCL deben tener una resistencia de pull-up.
Tambin es importante decir que en cada momento uno de los
dispositivos toma el papel de maestro y el resto de esclavos.
El maestro genera una seal de reloj por SCL que se usar
para sincronizar todos los dispositivos. Y por SDA viaja la
informacin propiamente dicha. Cada esclavo debe tener
configurada una direccin de esclavo. Esta direccin es una
variable de 8 bits donde los 7 primeros son un nmero en
binario y el ltimo bit indica si es una lectura o escritura lo
que quiere hacer el maestro.
Existen dos escenarios distintos, o bien el maestro es un
escritor en los esclavos, o bien el maestro es el que pide a los
esclavos que le enven informacin. [5]

Figura NN. Bus tpico

2C

(Imagen tomada de

NS 8250: La UART del IBM PC original; este circuito


tena un pequeo "bug" que fue corregido mediante las
oportunas modificaciones en las rutinas BIOS. Fue
sustituido por el 8250-B.

NS 8250A: Este chip correga los problemas de los


predecesores, sin embargo no poda ser utilizado en los
modelos XT precisamente porque sus BIOS trataban de
corregir un problema inexistente. En cualquier caso
este chip no funcionaba ms all de 9600 bps.

NS 8250B: Este chip fue el ltimo de la saga de los


8250, y reinstal el antiguo bug, de forma que pudiera
funcionar correctamente con las BIOS de los XT. Todos
los de esta serie tenan un acceso muy lento, lo que
obligaba a incluir estados de espera en el procesador.
Tampoco funcionaba por encima de 9600 bps.

NS 16450: Fue el chip elegido para acompaar a los


procesadores i286 de clase AT. Funcionaba bien a 9600
bps, e inaugur la poca de mdems de alta velocidad.
Sin embargo no funcionaba correctamente en los
sistemas XT, debiendo ser sustituido por el 16550.

NS 16550: Fue el primer chip de su clase dotado con


bferes FIFO [4] para transmisin y recepcin de 16
bytes, que le hacen especialmente indicado para
comunicaciones rpidas. Era ms rpido que el 16450,
operando por encima de los 9600 bps, pero segua
adoleciendo de algunos problemas, especialmente en los
bferes, por lo que tambin fue sustituido.

NS 16550A: Es la ms rpida y fiable de las UARTs;


adecuada para operar con mdems de alta velocidad,
puede operar a 115 Kbps. Su lgica es compatible pin a
pin con el 16450, al que puede sustituir. Adems puede
utilizar canales DMA.

https://geekytheory.com/puertos-y-buses-1-i2c-y-uart/).
UART

Los microcontroladores Atmega8/168/328, en los cuales est


basado Arduino, disponen de un dispositivo compatible
llamado USART (Universal Synchronous and Asynchronous

serial Receiver and Transmitter) que permite tanto la


comunicacin asincrnica como sincrnica.
En la comunicacin asincrnica, la velocidad de envo de los
datos es acordada a priori entre el emisor y el receptor. En la
comunicacin sincrnica, el envo de los datos es
sincronizado por el emisor a partir de un pulso constante de
reloj (Clock), con cada pulso enva un nuevo dato. [2]

Figura NN. Diagrama de bloques de un Receptor/Trasmisor


Asincrono
Universal
(imagen
tomada
de
http://www.el.uma.es/marin/Practica4_UART.pdf)

Los parmetros que se han de definir para el correcto diseo


de un interfaz de comunicaciones usando un USART son los
siguientes:
Figura NN. Comunicacin asincrnica. (Imagen tomada de la
pgina https://galaxi0.wordpress.com/el-puerto-serial/)

Sincronismo entre el receptor y el transmisor.


Codificacin de los datos.
Prioridad en el envi de los bits.
Tasa de envo de datos.
Seales Handshaking.
Seales elctricas de los valores lgicos

La sincronizacin en la trasmisin de los datos se lleva a cabo


colocando en primer lugar un bit de comienzo (start bit),
despus se envan los datos (data bits) usualmente entre 5 y 9
bits empezando siempre por el bit menos significativo, LSB,
y por ltimo, se enva un bit de parada (stop bit). [3]
Interrupciones de transmisin.
Figura NN. Comunicacin sincrnica. (Imagen tomada de la
pgina https://galaxi0.wordpress.com/el-puerto-serial/)

En la figura NN se muestra el esquema general con los


bloques bsicos de un UART. Se distinguen los registros de
datos, tanto de recepcin como de transmisin y sus
correspondientes registros de desplazamiento (RxD, tXD),
los registros de control de transmisin y recepcin y seales
de sincronizacin para comienzo de la trasmisin/recepcin
(RTS, CTS).

Es importante ver que el transmisor USART tiene dos


banderas que indican un estado: Registro de Datos Vaco
(UDRE) y Transmisin Completada (TXC). Ambas banderas
pueden usarse para generar interrupciones. La bandera del
registro de datos vaca (UDRE) indica si el buffer del
transmisor est listo para recibir nuevos datos. Este bit se
pone a uno cuando el buffer del transmisor est vaco., y se
limpia cuando el buffer del transmisor contiene datos para ser
transmitidos que an no se han movido al registro de
corrimiento. Por compatibilidad para dispositivos futuros,
siempre escriba a este bit un cero cuando se escriba al
registro UCSRA. Cuando el bit de habilitacin de
interrupcin del registro de datos vaco (UDRIE) en el
UCSRB se escriba a uno, la interrupcin del registro de datos
vaco del USART ser ejecutada tan pronto como UDRE pase
a uno (siempre y cuando las interrupciones globales estn
habilitadas). UDRE se limpia escribiendo en UDR. Cuando
se usa una transmisin de datos manejada por interrupcin, la

rutina de interrupcin de registro vaco debe ya sea escribir


un nuevo dato a UDR para limpiar UDRE o deshabilitar la
interrupcin de datos de registro vaco, de lo contrario una
nueva interrupcin puede ocurrir una vez que la rutina de
interrupcin termine. [4]

Como se puede deducir de la descripcin anterior los


niveles lgicos estn invertidos, esto quiere decir, que lo que
se entiende como un 1 lgico en RS232 (estado de la lnea
abajo), se entiende en la UART como un 0, lo mismo ocurre
con el estado lgico 0 del RS232. [4]

A continuacin se muestran algunas diferencias entre RS232


y UART. Bsicamente son dos las diferencias entre la
comunicacin estndar RS232 y la comunicacin serie
mediante UART, estas son las siguientes:

Referencias

Los niveles de tensin para representar los estados lgicos


del bit son diferentes, en la comunicacin serie RS232 los
niveles de tensin son -12 V (1 lgico) y +12 V (0 lgico), en
cambio utilizando la UART se utilizan los niveles de tensin
+Vdd (1 lgico) y 0 V (0 lgico), en este caso Vdd utilizado
es 3,3V.

[1] https://galaxi0.wordpress.com/el-puerto-serial/
[2] http://www.zator.com/Hardware/H2_5_1_1.htm
[3] http://www.el.uma.es/marin/Practica4_UART.pdf
[4] http://bibing.us.es/proyectos/abreproy/40048/fichero/VOL
UMEN+1.+MEMORIA%252F10.+Comunicaciones.pdf
[5] https://geekytheory.com/puertos-y-buses-1-i2c-y-uart/

You might also like