Vous êtes sur la page 1sur 6

PUERTO SERIAL – PROTOCOLO Y SU TEORÍA

Un puerto Serial es un modulo de comunicación digital para un sistema embebido.Es decir, permite la
comunicación entre dos dispositivos digitales. Cuenta con dos conexiones, RX y TX. Lo que nos indica los modos
de comunicación que puede manejar, Full-duplex, Duplex y Simplex. Además podemos considerar como su
principal ventaja a la sencillez de su protocolo de comunicación. Sin embargo también tiene desventajas como que
sólo se puede comunicar a un puerto dos dispositivos.

Full duplex. Significa que puede recibir y enviar información digital simultáneamente.

Duplex o Half-duplex. Es cuando sólo podemos transmitir o recibir información, una cosa a la vez.

Simplex. Cuando sólo podemos ya sea recibir o transmitir.

La función principal de un puerto serial, es la de empacar y des-empacar paquetes de datos binarios seriales. Como
resultado, la serialización significa convertir un dato paralelo (byte) a un conjunto de pulsos seriales que puedan
ser recibidos y enviados por una línea de transmisión. En primer lugar, el protocolo serial opera mediante tres
condiciones digitales básicas: inicio de transmisión (IT), paridad (P) y fin de transmisión (FT). Estas condiciones son
sincronizadas mediante un oscilador interno. El generador permite controlar la velocidad del puerto serial. Por lo
tanto, la velocidad se mide en BAUD ‘s. Al modulo serial también se le conoce como UART ó USART o EUSART.

 UART – Universal Asyncronos Receiver and Transmitter que en español se traduciría como Transceptor
Asíncrono.

 USART – Universal Syncronos and Asyncronos Receiver and Transmitter, que significa en español
Transceptor Síncrono y Asíncrono.

 EUART – Enhanced Universal Asyncronos Receiver and Transmitter ó Transceptor Asíncrono Universal
Mejorado.

Nota. Otros puertos seriales incluyen al puerto i2c, puerto spi, puerto USB, puerto CAN en un microcontrolador.

ESTRUCTURA INTERNA Y CONFIGURACIÓN DE UN PUERTO SERIAL

Una UART contiene, en su estructura interna, un generador de paridad, registros de corrimiento, oscilador variable
(para generar el BAUD), verificadores de las tres condiciones y lógica de control. Por consiguiente, la Figura-1,
muestra un diagrama a bloques general para una UART. Un paquete de datos se transmite a través de un registro
de corrimiento. Por lo tanto, la velocidad a la que se transmite, esta controlada por el generador de BAUD. La
lógica de control se encarga de agregar los bits de Inicio, Paridad y de Fin de transmisión [1]. El proceso de
recepción serial es lo opuesto.
Diagrama de un puerto serial

Figura 1. Estructura general de una UART (Puerto serial). Esta obra está bajo una Licencia Creative Commons
Atribución-NoComercial-SinDerivar 4.0 Internacional.

Para configurar al modulo se requiere indicar la velocidad de operación. Los BAUDios que es una medida de
cuantos bits por segundo se van a transmitir, se configuran mediante un registro de propósito específico.
Dependiendo del lenguaje de programación la configuración puede ser relativamente sencilla. En el caso
de Arduino se haría con la instrucción Serial.begin(9600). También es necesario configurar cuantos bits de parada
y si habrá o no bit de paridad. Una de las configuraciones más usadas para un puerto serial es:

 8 bits de datos

 1 bit de parada

 Sin bit de paridad

 1 bit de inicio

 Velocidad de 9600 BAUD

Para que pueda haber una sincronización de los datos enviados, se requiere que ambos dispositivos que usen el
mismo puerto serial, tengan la misma configuración.

Funciones de Arduino para el puerto Serial

 Función Serial print

 Serial read

 Para iniciarlizar Serial begin

MODOS DE COMUNICACIÓN EN EL PUERTO SERIAL

El modo de comunicación para un puerto serial,se refiere a la forma en la que se envían y reciben los paquetes de
información. De acuerdo al tipo de conexión, una UART tiene separadas las lineas de transmisión y recepción. Esta
característica le permite poder operar los tres modos de comunicación asíncrona que existen. Los modos de
comunicación son los siguientes:

 Full-duplex. Significa que puede transmitir y recibir simultáneamente.


 Half-duplex. O sólo transmite o sólo recibe.

 Simplex. Sólo se dedica a transmitir información binaria.

Cuando se diseña una aplicación que requiere comunicación serial, al inicio, se suelen cometer algunos errores
básicos. Dentro de los esquemas de comunicación se utiliza al dispositivo serial en modo simplex, sólo enviando
información. Lo recomendable es usar el esquema de comunicación Half-duplex, en donde, solo se envíe
información si así lo pide uno de los elementos en la comunicación.

TIPOS DE CONEXIONES O ARREGLOS DEL PUERTO SERIAL

Cuando un puerto serial, opera o trabaja a un voltaje lógico distinto del de nuestro sistema embebido se requieren
hacer ciertas modificaciones al circuito. La Figura-2, muestra tres tipos de conexiones para un puerto de
comunicación digital. En el elemento 1, estaríamos comunicando a dos sistemas con el mismo voltaje lógico.
Mientras que para el elemento 2 se considera que uno de los dispositivos trabaja a un voltaje distinto, por lo que
requiere de una etapa intermedia que ajuste a los voltajes lógicos. Esta etapa intermedia puede ser un ” elevador
de voltaje ” o en ingles ” level shiffter “. En este enlace puedes ver a uno de ello, CLICK AQUI. En el caso 3, de la
Figura-2 se observa como seria la comunicación serial con una computadora.

Las computadoras, tanto de escritorio como laptops, ya no cuenta con puertos de comunicación serial. Para lograr
comunicar un sistema embebido serial con una computadora, se requiere de un puerto adicional. Este elemento
electrónico se le conoce como convertidor USB-TTL. El convertidor esta programado para convertir el protocolo
de comunicación serial al protocolo de comunicación USB. En este caso la computadora reconoce a dicho circuito
como un puerto Serial Virtual. Por lo tanto, para los sistemas operativos de Windows se le asigna un nombre que
comienza con la palabra COM seguida de un numero. Mientras tanto, Linux se utilizan las letras TTYACM# o
TTYUSB# donde el # es un numero que se va asignando consecutivamente a la conexión de los dispositivos.

Figura-2. Tipos de conexiones seriales. 1 – Dos dispositivos seriales con el mismo voltaje lógico. 2 – Distintos
voltajes lógicos. 3 – Comunicación serial con una computadora mediante una tarjeta de conversión de protocolo
serial a protocolo USB.

PROTOCOLO SERIAL Y SUS TRAMAS DE COMUNICACIÓN


El protocolo serial se refiere a la forma o a la cantidad de bits que forma un paquete de datos. En este caso el ”
dato ” es la información que queremos transmitir por el puerto serial. Como resultado, la trama de datos o bits
digitales necesarios para transmitir un byte de información pueden variar. Esencialmente se tienen que agregar
tres tipos de bits al byte de información. Un bit de inicio, un bit de paridad y uno o dos bits de parada. Por ejemplo,
se configura el puerto serial a una velocidad de 9600 BAUD, 8 bits de datos, 1 bit de parada y sin bit de paridad.
Para este ejemplo la trama de datos seria:

Paquete de datos = Bit de inicio+8 bits de datos + 1 bit de parada

Es decir, que esta configuración envía 10 bits para cada 8 que se quieran transmitir. Si la velocidad es 9600 bits/s,
da como resultado una tasa real de 960Bytes por segundo, dado que cada byte tiene agregados dos bits por parte
del protocolo serial. La Figura-3, muestra un tipo de trama, esta consta de 11 bits que se transmiten cada uno a
una velocidad de 9600 bits/s. Es decir, que a cada bit le toma 1/9600 s transmitirse para cada flanco de subida del
generador de BAUD. La taza de transferencia de esta configuración serial de 9600/11 = 872.72 Bytes/segundo. La
Figura-4, indica una trama que no incluye al bit de paridad y con una velocidad mayor, para esta trama la tasa de
transferencia sería de 115200/10 = 11520 Bytes/s.

TRAMAS ESPECIALES

Existen configuraciones poco comunes. La Figura-5 muestra una trama poco habitual, en donde solo se envían 6
bits de datos y con dos bits de parada sin bit de paridad. Esta configuración se podría utilizar para cuando el byte
a enviar no se utilizan los últimos dos y permite velocidades más altas de transferencia de bytes, en este coso sería
115200/9 = 12800Bytes/s. Cada byte sólo teniendo 6-bits reales.

Figura-3. Trama de comunicación serial con la siguiente configuración: 1 bit de parada, 1 bit de inicio, 8 bits de
datos a 9600 BAUDs.
Figura-4. Para esta trama, no se configuro el bit de paridad y la velocidad se configuro a 115200 BAUD.

Figura-5. Trama con 6 bits de datos, dos bits de parada y sin bit de paridad a 115200 BAUD.

APLICACIONES DEL PUERTO SERIAL

Las aplicaciones del puerto serial incluyen al uso de la mayoría de los sensores digitales tiene un puerto de
comunicación serial. Por ejemplo el GPS NEUBLOX NEO-6M , requiere de un puerto serial para poder leer la
información y configurarlo apropiadamente. También se puede usar en aplicaciones donde nuestro sistema
embebido, por ejemplo Arduino, Tarjetas Freedom, ARM’s, quieran enviar información a una computadora. Si
queremos dotar de conectividad, por ejemplo, wifi, ethernet, RF, XBEE, tenemos que saber usar este puerto y su
protocolo para comunicarnos con los shields o módulos externos.

Ejemplo-1, usar un GPS para graficar la posición en Matlab. Puedes ver el tutorial en este enlace.

Ejemplo-2, mandar y recibir mensajes de texto o llamadas en un Arduino con un modulo GSM SIM900.

RESUMEN
Los puertos seriales y su protocolo son muy importantes en el diseño de sistemas embebidos. Su uso extendido
esta fundamentado en la facilidad de su protocolo que sólo adhiere unos pocos bits a cada paquete de datos.
Actualmente esta siendo desplazado por protocolos seriales más avanzados como lo son I2C o SPI. Finalmente, su
facilidad de uso lo hace un puerto indispensable para hobbistas y profesionales de la electrónica y sistemas
embebidos.

FUENTES:

[1] – http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-
168PA-328-328P_datasheet_Complete.pdf

Autor: Dr. Rubén Estrada-Marmolejo.

Profesor de Asignatura, Universidad de Guadajara, México.

Vous aimerez peut-être aussi