Sie sind auf Seite 1von 3

INTRODUCCION ACCESO AL PUERTO SERIE RS232 EN C#

Modulo UART (Universal Asynchronous Receiver Transmitter)

El módulo UART en una PC es una interfaz de comunicación serie trabaja en modo


asincrónico full-duplex para comunicar con dispositivos periféricos.

El concepto de asincrónico se refiere a la no existencia de una señal de clock que acompañe


a la señal de datos. En modo sincrónico, una señal de clock indica al dispositivo periférico
cuando tiene un valor válido en la línea de datos.

En cambio, en modo asincrónico no existe una señal de clock que sincronice a los
dispositivos que se están comunicando, por lo que es necesario que ambos se sincronicen al
inicio de la comunicación y luego permanezcan así durante todo el tiempo en el que esta se
extienda.

El modulo UART disponible en la PC, cumple con todos los requisitos establecidos por la
norma RS232.

Trama de datos RS232

La mínima unidad de información que puede ser transmitida o recibida por un puerto serie
RS232 es de un byte. Según la norma, cada byte transmitido debe ir delimitado por dos
bits, uno al inicio y otro al final, llamados bit de START y bit de STOP respectivamente. Para
los fines de nuestros proyectos utilizaremos el puerto serie RS232 en modo “8N1”, lo cual
significa que cada trama transportará 8 bits de datos (“8”), no habrá bit de control de
paridad (“N”) y cada trama enviada o recibida finalizará con un solo bit de STOP (“1”).

Así, una trama genérica RS232 en este modo tiene la siguiente forma

Inicio de trama

1
IDLE 0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 1 IDLE
0
t
Bit START

Bit STOP
DB0

DB1

DB2

DB3

DB4

DB5

DB6

DB7

Tb

Cuando la línea no se está utilizando para transferencia de datos, su estado lógico


permanece en 1. A este estado se lo denomina estado IDLE ó inactivo.

Toda transmisión se inicia con un 0 lógico denominado Bit de START. Esta transición de 1 a
0 que el transmisor genera sobre la línea de datos indica al receptor que se va a transmitir
una trama y le pide que se sincronice. A partir de este momento, el transmisor enviará 10
bits con una duración de tiempo constante denominada Tb.

Por otro lado, el receptor deberá medir el nivel de tensión de la linea un total de 10 veces y
espaciar cada medición realizada el mismo tiempo Tb. Por esto es necesario que tanto
transmisor como receptor tengan configurada la misma velocidad de transmisión, que en
definitiva, es lo que determina el valor de Tb.

Pagina 1 ESCUELA DE EDUCACIÓN TECNICA SALESIANA SAN JOSE Nº8013


INTRODUCCION ACCESO AL PUERTO SERIE RS232 EN C#

A modo de ejemplo, una velocidad de transmisión de 9600 baudios significa que el tiempo
asignado a un bit es de 1/9600 segundos, o sea, 104.16 microsegundos.

Acceso de una aplicación al puerto serie.


Para que una aplicación pueda enviar y recibir datos por un puerto serie, lo primero que
tiene que hacer es abrir el puerto por el cual desea establecer comunicación con otros
dispositivos. Los puertos serie en una PC se denominan con las siglas COM, por ejemplo,
podemos tener disponibles COM1, COM2, COM3, etc.

Cada uno de los puertos puede ser abierto por una y solo una aplicación al mismo tiempo.
No se pueden transmitir ni recibir datos por puertos que estén cerrados.

En el mismo momento que se abre el puerto, de deben especificar además algunos


parámetros que definirán la velocidad de transmisión y recepción, cantidad de bits de datos,
paridad, etc. Para todos nuestros proyectos utilizaremos una trama de 8 bits de datos
(como se ilustra en la figura anterior), sin paridad y con un bit de STOP. A esta
configuración se la denomina universalmente como “8N1” (Data bits:8 – Parity:None –
Stop Bits:1).

Como se mencionó antes, hay que especificar también la velocidad de


transmisión/recepción. Las velocidad de Tx/Rx se expresan en baudios, que para este caso
equivalen a bits por segundo (bps). Las velocidades estándar más utilizadas para una
comunicación por puerto serie son 1200, 2400, 9600, 19200, 28800, 38400, 57600 y
115200 baudios, debiéndose elegir para una aplicación en particular, la velocidad más baja
que la aplicación admita, ya que a menores velocidades, menores son las probabilidades de
errores en la comunicación.

La UART de la PC es la que se encarga de generar todas las señales en función de las


configuraciones antes mencionadas y se encarga también de monitorear y decodificar todas
las señales que ingresan en el pin de recepción del puerto serie.

Envío y recepción de datos.

La interfaz entre la aplicación y la UART de la PC es la memoria RAM. Todos los datos que la
aplicación desea transmitir los debe tener almacenados en un arreglo del tipo unsigned char
(variable de 8 bits sin signo) y posteriormente escribirlos en el BUFFER de SALIDA de la
UART. Una vez que los datos son escritos en el BUFFER de SALIDA, la aplicación no tiene
mas nada que hacer y el hardware de la PC se encarga de tomar de tomar uno por uno los
bytes presentes, agregar los bits de START y STOP, y gestionar la salida de cada uno de los
bits por el pin TX del puerto serie con los tiempos correspondientes.

40 1
APLICACION 2
3

BUFFER de ENTRADA BUFFER de SALIDA

0 0 0 0 0 0 0 3
0 0 0 0 0 0 0 2
0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1

Pin RX 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 Pin TX

Pagina 2 ESCUELA DE EDUCACIÓN TECNICA SALESIANA SAN JOSE Nº8013


INTRODUCCION ACCESO AL PUERTO SERIE RS232 EN C#

De forma similar, la señal que ingresa por el pin RX del puerto serie es ingresada a la UART,
aquí se verifica que el bit de START tenga valor 0, que el bit de STOP tenga valor 1, se
chequea el bit de PARIDAD en caso de utilizarse y si todas estas pruebas son satisfactorias,
se copian los 8 bits de datos a una zona de memoria de la UART llamada BUFFER de
ENTRADA.

Los datos que arriban al BUFFER DE ENTRADA se acumulan ahí esperando que la aplicación
los lea, y una vez que son leídos por la aplicación, la UART los borra del BUFFER de
ENTRADA. Cuando la aplicación lee el BUFFER de ENTRADA, extrae de este los bytes que
han ingresado por el puerto serie en el mismo orden en que llegaron al mismo.

Pagina 3 ESCUELA DE EDUCACIÓN TECNICA SALESIANA SAN JOSE Nº8013

Das könnte Ihnen auch gefallen