You are on page 1of 6

Comunicación Serial RS232 PIC16F877A

En muchas ocasiones cuando trabajamos en nuestros proyectos será necesario tomar diferentes
tipos de señales físicas, convertirlas en tensiones eléctricas y luego digitalizarlas, para facilitar su
transmisión y procesamiento en una computadora.

Existen 2 formas de comunicación binaria, la paralela y la serial. La comunicación paralela se


encarga de enviar los datos simultáneamente a través de 4 hilos, lo cual presenta su principal
ventaja ya que la transferencia de datos es mas rápida, pero el problema es que un cable por cada
bit de dato, lo cual encarece y dificulta el diseño de placas, otro inconveniente es la capacitancia
que generan los conductores por lo que la transmisión se vuelve deficiente a los pocos metros.

La comunicación serial es mas lenta debido a que transmite bit por bit pero tiene la ventaja de
necesitar menos cantidad de hilos, y también puede extender la comunicación a mayor distancia,
por ejemplo en la norma RS232 a 15 mts, en la norma RS422/485 a 1200 mts y podemos utilizar
modem para extenderlo a cualquier parte del mundo.
MÓDULO USART

El modulo USART (Universal Synchronous Asynchronous Receiver Transmitter) nos permite la


transmisión y recepción de datos en serie ya sea con un ordenador trabajando en modo Full-Duplex
asíncrono o con periféricos trabajando en modo Half-Duplex.

Existen 2 formas de realizar la comunicación serial: La sincrónica y la Sincronizar, la diferencia


que hay entre estas 2 formas de comunicación es que la sincrónica ademas de la linea de
transmisión de datos necesita otra que contenga los pulsos de reloj, estos a su vez indican cuando
un dato es valido. La serial asincrónica no necesita pulsos de reloj, en su lugar utiliza mecanismo
como referencia tierra (RS232) o voltajes diferenciales (RS433/485), donde la duración de cada
bit es determinada por la velocidad de transmisión de datos que se debe definir previamente en
cada equipo.

Modo Síncrono:
- Modo maestro, es donde el microcontrolador maestro genera la señal de reloj e inicia o finaliza
la comunicación.
- En modo esclavo, donde el microcontrolador esclavo recibe la señal de reloj y depende del
microcontrolador para recibir o enviar información.

Comunicación Síncrona

Modo Asíncrono:
- Se usan relojes tanto en el emisor como en el receptor.
- Ambos relojes deben estar sincronizados a la misma frecuencia.
- Cada trama de datos tiene un tamaño fijo y posee un bit inicial o de arranque y un bit final o de
parada.
- Comunicación en modo Full-Duplex.

El modo comúnmente utilizado para transmisión por el USART es el modo síncrono, ya que esta
nos permite comunicaciones a largas distancias. Los niveles de voltaje son empleados en estas
normas son diferentes a los utilizados por el PIC. Debido a esto se hace necesario utilizar drivers
externos de adaptación tales como el MAX232 de Dallas Semiconductor - Maxim.

Niveles Lógicos RS232

Para empezar a transmitir datos el transmisor coloca en nivel bajo durante el tiempo de un bit,
este es conocido como bit de arranque, luego de eso transmite los bits de datos los cuales pueden
ser de 7 a 8, empezando por los bit menos significativos y terminando con los mas significativos,
por últimos los bits de parada que pueden ser 1 o 2, para finalizar la señal vuelve a un
estado lógico de alto. La siguiente imagen podemos observar los requisitos en los niveles lógicos
que se deben cumplir una transmisión serie según la norma RS232.

En resumen podemos decir:

- Los datos son transmitidos con lógica negativa, esto quiere decir, un tensión positiva en la
conexión representa un '0' y una tensión negativa representa un un '1'.

- Un 'o' lógico una linea debe mantener un voltaje entre +3V y +15V.

- Un '1' lógico una linea debe mantener un voltaje entre -3V y -15V.

- Cuando el puerto no esta transmitiendo, mantiene el terminal de transmisión a '1' lógico a -12V.

- Se conoce como banda muerta a la región de transición donde los niveles lógicos no están
definidos. Esto quiere decir que estos valores pueden interpretarse ambiguamente como '0' y '1'.
USART en PIC C COMPILER

Primeramente debemos declarar la siguiente directiva y luego las funciones que encontramos
disponibles en CCS para utilizar el módulo USART se definen dentro del paréntesis, las cuales
describiremos posteriormente.

#USE RS232(Opciones)

Un ejemplo del cuadro anterior seria algo así:

#USE RS232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8, stream=PORT1)

Este ejemplo nos indica que la velocidad en baudios será de 9600(el dispositivo al que este
conectado debera tener la misma velocidad), no tendra paridad, el pin para recepción será el C6 y
el de transmisión el C7, bits de transmisión 8 y por ultimo la opción '"STREAM_PORT1" nos indica
que utilizaremos el identificador PORT1 para enviar una cadena de caracteres al hacer uso de la
función putc por ejemplo.

Sintaxis #USE RS232(Opciones)


STREAM=id Asocia un identificador con su puerto
RS232. El identificador podrá ser utilizado
en funciones como fputc.
BAUD=x Establece la taza de baudios con el valor
de x
XMIT=pin Pin para Transmisión
RCV=pin Pin para Recepción
FORCE_SW Utiliza un UART mediante software
STOP=x Bits de Parada (Por defecto 1)
PARITY=x Donde x es N(Ninguna), E(par) u O(impar)
BITS=x Donde x es 5-9 (no puede usarse 5-7 con
el USART interno)
Para más información respecto a todas las opciones consultar la ayuda de CCS

You might also like