Está en la página 1de 6

COMENTARIO TECNICO

“Mundo EDUKIT08”
Por:

Ing. Roberto Simone


Ingeniero de aplicaciones Freescale
robertosimone@arnet.com.ar

Ing. Daniel Di Lella


D.D.F.A.E Freescale Semiconductor Products
Departamento Ingeniería Electrocomponentes S.A.
fae@electrocomponentes.com
dilella@arnet.com.ar

Comunicación Serie RS-485....


..... Primera Parte

Este artículo es el primero dentro una serie dedicada a las comunicaciones por
interfaz RS-485. La extensión del tema nos ha obligado a desarrollarlo en varias
partes. En esta entrega exponemos los principios de la comunicación RS-232 sin la
cual no podremos emprender el estudio de las redes RS-485.

Comunicaciones serie.

Vincular 2 o mas dispositivos digitales es indispensable para llevar a cabo las más
elementales aplicaciones. Por vínculo entendemos el intercambio de bytes entre ambos
dispositivos. Este intercambio de bytes o comunicación puede hacerse en forma
paralelo o serie:

Comunicación paralelo: los bits que forman el byte se envían de un dispositivo al otro
en forma simultánea. Así la comunicación resulta muy veloz pues basta un instante para
dirigir la información de un extremo a otro. Requiere varios hilos de comunicación;
como mínimo tantos como bits se empleen, lo que termina siendo un aspecto
desfavorable de esta comunicación.

Comunicación serie: los bits que forman el byte se envían en forma secuencial, es decir
uno tras otro en el tiempo. Al viajar todos los bits por el mismo hilo la comunicación
serie requiere muchos menos hilos que la comunicación paralelo, pero a esta ventaja se
contrapone el hecho que la comunicación serie insume mas tiempo dado que debe
esperarse hasta el envío del último de los bits para completar la comunicación.
Comunicaciones sincrónicas

En una comunicación serie, al enviarse en forma secuencial los bits desde un dispositivo
a otro, surge la necesidad del dispositivo transmisor de hacerle saber al receptor que un
nuevo bit le ha sido enviado. De este modo el receptor puede reconstruir el byte que le
fue enviado. La técnica mas sencilla de lograrlo es enviando junto con el hilo de
comunicación, una señal de reloj que señalice el momento en que un nuevo bit aparece
en la línea de comunicación.

Se convendrá en usar el flanco ascendente o descendente de la señal de reloj para


señalizar el comienzo de un nuevo bit:

Gracias a la señal de reloj tenemos la posibilidad de establecer una comunicación a


elevada velocidad, pero con la desventaja de tener que agregar otro cable para
transportar el reloj. Este tipo de comunicación que transporta la señal de reloj junto con
la información útil, sufre los efectos de la capacidad distribuida de las líneas de
transmisión que producen la deformación de la señal original de reloj, por lo que las
comunicaciones sincrónicas se reservan para comunicar dispositivos entre distancias
relativamente cortas, por ejemplo, entre placas de un mismo sistema o dentro de la
propia placa.

Comunicaciones asincrónicas

Con el fin de suprimir el cable de reloj en el enlace entre transmisor y receptor surgió la
comunicación asincrónica. Toda la comunicación se basa en que trasmisor y receptor
adoptan una misma velocidad de comunicación, medida esta en bits por segundo (bps).

Existen velocidades estándares para este tipo de comunicaciones:

1200bps
2400bps
4800bps
9600bps
19200bps
115200bps

Solo resta establecer en que instante se considera que se inicia la comunicación. Para
ello se emplea el bit de “arranque” o de “start”.
Bit de arranque.

La línea de comunicación serie asincrónica permanece en estado lógico “1” durante los
momentos de inactividad. Podemos considerarlo su estado de reposo. El pasar a un
estado lógico “0” constituye una señal para el receptor de que se ha dado comienzo a
una comunicación. Este “0” debe permanecer un tiempo llamado tiempo de bit.
Podemos determinar este tiempo a partir de la velocidad de comunicación establecida:

tbit = 1 / velocidad

Este es el primer bit que se envía y se denomina bit de start o bit de arranque por las
razones antes mencionadas.

A continuación de este bit, se envían en forma secuencial los 8 bits que constituyen el
byte de información que deseamos transmitir de un dispositivo a otro. Cada uno de
estos bits tiene una duración igual a 1 tiempo de bit, y el primero en aparecer el menos
significativo; el último en enviarse es el mas significativo. Un diagrama de tiempo nos
permitirá apreciar mejor lo dicho:

Algunos sistemas utilizaban 7 bits de información en lugar de 8. No nos ocuparemos de


estos casos, concentrándonos en el más habitual de 8. También son importantes los
sistemas que emplean 9 bits, muy característicos en las redes RS-485, pero
postergaremos su análisis para próximos artículos.

Tampoco debemos olvidar que muchas comunicaciones incorporan un bit adicional a


los ya enviados que cumple el papel de bit de paridad. Ello permite al receptor verificar
la integridad de la información y solicitarle al transmisor su reenvío en caso de errores.
No es el motivo de este artículo explicar el uso del bit de paridad, pero si aclaramos que
los microcontrolador HC908 en general y el EDUKIT08 en particular pueden hacer
uso del bit de paridad si se los programa convenientemente.

El bit de parada.

Luego de transmitidos el bit de arranque y los 8 bits de datos, la transmisión de ese byte
debe concluir con un bit en estado lógico “1”. Es el llamado bit de stop o bit de parada.
La transmisión de ese byte se da por concluida tanto por el transmisor como por el
receptor. La línea de comunicación permanece en “1” que es el estado de reposo. Hasta
tanto no aparezca un nuevo bit de arranque no se podra enviar un nuevo byte.

El bit de stop no es trivial. Si tras enviar un byte en forma serie asincrónica deseamos
enviar inmediatamente un segundo byte, deberemos poner la línea de comunicación en
“1” durante un tiempo de bit, el bit de stop, y recién entonces poner un bit de arranque
para enviar un nuevo byte.
Si el receptor encuentra un “0” lógico donde debería estar el bit de stop en la secuencia
de bits, lo interpretará como un error en la transmisión, conocido como Framing Error.

Norma RS-232.

Durante toda la explicación precedente nos hemos referido a niveles lógicos “1” y “0”.
En un microcontrolador de la línea HC908 estos niveles eléctricos son CMOS para una
alimentación de +5V, es decir 0V y +5V. Sin embargo existe una norma de
comunicación serie muy conocida, llamada RS-232 donde estos niveles se definen
como:

• De +3V a +15V se considera nivel bajo o “0”.

• De -3V a -15V se considera nivel alto o “1”.

Resulta adecuado llevar los niveles TTL que entrega el HC908 a los niveles RS-232,
pues nos permitirá establecer comunicaciones serie con dispositivos como ser una
computadora personal. Una forma sencilla de conseguirlo es emplear el “archiconocido”
circuito integrado conversor de nivel “MAX232” o dispositivos similares pin a pin
compatibles con este:

Este integrado nos permite convertir niveles TTL a RS-232 y viceversa. Gracias a ello
podemos tener una línea donde el microcontrolador HC908 transmita y otra por donde
reciba. Cabe aclarar que no solo los microcontroladores Freescale emplean niveles TTL
en sus líneas de comunicación serie, sino que la mayoría de los microcontroladores lo
hacen, debido a que ocupa mucha superficie de la pastilla de silício integrar este
conversor de nivel, y además deja sin flexibilidad al MCU para que el usuario utilice
otro tipo de conversor de nivel para otra norma eléctrica.

Mientras nos mantengamos en niveles TTL solo podremos realizar comunicaciones


serie de corta distancia, por lo general entre dispositivos que están en una misma
plaqueta. Transladandonos a niveles RS-232 podemos conseguir distancias de hasta
30m. Si este distancia nos resulta limitada debemos apelar a comunicaciones RS-485,
de la que hablaremos en las próximas publicaciones.
En el caso particular del EDUKIT08 se emplea el microcontrolador
MC908AP32CFBE que posee 2 módulos de comunicación serie, llamados SCI ( Serial
Comunication Interface ). Cada módulo provee una línea de transmisión y otra de
recepción, además de muchas otras características.

El EDUKIT08 aprovecha ambos módulos SCI, pudiendo realizar comunicaciones a


nivel eléctrico RS-232 con cualquiera de ellos. Un MAX232 lleva los niveles de las
líneas de transmisión del HC908 a niveles RS-232. A su vez el mismo MAX232 de
encarga de hacer lo contrario con las 2 líneas de recepción para que el HC908 reciba
niveles TTL en lugar de niveles RS-232.

El esquema circuital de las líneas de comunicación serie del EDUKIT08 y el conversor


de niveles es el siguiente:

En la próxima entrega analizaremos los módulos de comunicación serie asincrónica


(SCI) del microcontrolador MC908AP32CFBE y como programarlos. Describiremos
un programa de ejemplo donde comunicaremos al EDUKIT08 con una computadora.

El lector puede encontrar este y otros artículos anteriores del “Mundo EDUKIT08” en
el sitio web dedicado a la educación y al kit didáctico y sus programas de ejemplo:

http://www.electrocomponentes.com/educacion/microcontroladores.html
Hasta la próxima!!.......
Solicite información en:

Electrocomponentes S.A.
www.electrocomponentes.com/educacion

e-mail: educacion@electrocomponentes.com

También podría gustarte