Interface RS-232 a RS-485 (Reversible)
Introducción
Ya que me han solicitado algun esquema de la conversión del Bus 232 al Bus 485, aqui les planteo el circuito típico comercial que se ofrece en el rubro. El circuito es reversible, es decir, puede usarse como conversor de cualquiera de las dos normas : de RS-232 a RS-485 y de RS-485 a RS-232. Es de muy facil construcción y con tan solo unos pocos componentes podemos lograrlo.
---------------------------------------------
Fuente : DISCA (Departamento de Informática de Sistemas y Computadoras)
Traducción :MaMu
Versión del Producto :2005
Licencia :Freeware (Debe respetarse la autoría del Hardware Libre)
DataSheet List :
MAX232 - http://www.disca.upv.es/aperles/web51/pdf/1798.pdf
SN75176B/SN65176B - http://www.disca.upv.es/aperles/web51/pdf/slls101b.pdf
LTC485 - http://www.disca.upv.es/aperles/web51/pdf/lt0485.pdf
MAX485 - http://www.maxim-ic.com/appnotes.cfm?an_pk=2116
---------------------------------------------
Módulo de Conversión
Con este módulo vamos a poder comunicarnos con otros sistemas, usando las normas de comunicación serie más habituales que existen en el entorno industrial. Estas normas son la RS-232 y RS-485, para las cuales se desarrollará un circuito que podrá funcionar con una u otra norma con pocos cambios.
DESCRIPCIÓN:
Todo microcontrolador de la familia 80x51 incluye un puerto serie que, mediante un sencillo hardware de adaptación de niveles de tensión, permite implementar un interfaz RS-232 y RS-485 Esto permitirá al micro que se comunique fácilmente con otros equipos y, en especial, con los PCs.
Se recomienda, en general, que los cables que interconectan los dispositivos no excedan de 15 metros. Para distancias mayores se recomiendan otros sistemas de interconexión, por ejemplo un RS-485.
El estándar RS-232-C describe 21 señales en un conector de 25 líneas tipo DB-25, pero ha degenerado y es normal encontrarlo con conectores de 9 patillas tipo DB-9 y con menos señales.
Las líneas que más interesan en este capítulo son TRANSMIT y RECEIVE (líneas 2 y 3). Estas líneas son compatibles (entre el computador o terminal y el módem) porque TRANSMIT es una señal de entrada al módem y de salida para el computador/terminal. Lo mismo ocurre con la señal RECEIVE.
El resto de líneas permiten conocer cuando se produce una llamada, manejar una comunicación full-duplex o half-duplex, evitar perdidas de datos cuando uno de los dos elementos no puede absorber más datos, etc.
En cuanto a los niveles de tensión, la norma RS-232-C define una tensión simétrica respecto a la referencia, y al menos 3 V para un nivel lógico 0 y -3 V. para un nivel lógico 1. En la práctica los niveles de tensión son de +12V y -12V.
El interfaz RS-232 utiliza una transmisión no balanceada, por lo que no es adecuada en ambientes industriales (ruido en modo común) y en longitudes de conexión largas (efecto crosstalk).
Las velocidades de transmisión más utilizadas son: 300, 1200, 2400, 4800, 9600 y 19200 bps. En la práctica se logran alcanzar hasta 115.200 bps.
Las limitaciones de la norma RS-232C se pueden superar con las mejoras que aportó posteriormente la norma RS-485 (hay normas previas como la RS-423 y RS-422). Su ventaja es que se trata de una transmisión balanceada o diferencial que aporta como beneficios inmediatos una mayor velocidad de transmisión, una gran longitud de línea del orden del kilómetro y una buena inmunidad al ruido.
El medio físico de transmisión es un par trenzado, con las ventajas de rechazo de ruido que aporta. Si al par trenzado se le añade un apantallamiento se estará en condiciones de tener un red de comunicaciones industriales bastante inmune al ruido (incluso sin el apantallamiento), por ello, la mayoría de buses de campo (redes industriales de control) emplean este tipo de cableado. Téngase en cuenta que se admiten hasta 32 estaciones en un sólo hilo y la comunicación es half-duplex. Será necesario poner una resistencia terminadora en cada extremo de 120 Ohms.
Esquema de una RS-485
En un RS-485 se transmite exactamente lo mismo que para un RS-232 así que suele haber en el mercado adaptadores entre las dos normas que capacitan, por ejemplo, a un PC para comunicarse con sensores y actuadores industriales.
En el esquema se presenta un hardware que permite al microcontrolador conectarse con un sistema RS-232 y con un sistema RS-485. Para la interfaz RS-232 se usará un clásico MAX232 que incorpora un bomba de tensión que permite obtener +/-10 voltios a partir de una única alimentación de +5V. Las únicas señales del estándar RS-232 disponibles serán la masa lógica (línea 5), la señal T (línea 3) y la señal R (línea 2), todo ello en un conector DB-9 según suele ser habitual últimamente. Para conectar el micro a un PC bastaría con implementar un NULL-MODEM cruzando las líneas 2 y 3.
Para la interfaz RS-485 se puede usar un SN75176 o un LTC485. En el sistema propuesto se selecciona si se desea usar la interfaz 232 o la 485 mediante unos jumpers y si se quiere conectar una resistencia de 120 Ohms si está en un extremo del par trenzado.
EJEMPLO:
Se puede usar un PC como terminal RS-232 para enviar órdenes al micro o recibir información. El hardware mostrado en este apartado lo permite fácilmente, recuérdese que basta con cruzar las líneas 2 y 3. Sólo falta establecer el mimo protocolo en los extremos.
El siguiente listado muestra una aplicación que configura el puerto serie a 2400 bps, 8 bits, sin paridad (cristal de 12 Mhz) y envía continuamente un mensaje al puerto serie aprovechando la función printf.
Conectando la salida serie al PC como se ha indicado, se puede recibir la información desde cualquier software capacitado para leer los puertos serie del PC.
Introducción
Ya que me han solicitado algun esquema de la conversión del Bus 232 al Bus 485, aqui les planteo el circuito típico comercial que se ofrece en el rubro. El circuito es reversible, es decir, puede usarse como conversor de cualquiera de las dos normas : de RS-232 a RS-485 y de RS-485 a RS-232. Es de muy facil construcción y con tan solo unos pocos componentes podemos lograrlo.
---------------------------------------------
Fuente : DISCA (Departamento de Informática de Sistemas y Computadoras)
Traducción :MaMu
Versión del Producto :2005
Licencia :Freeware (Debe respetarse la autoría del Hardware Libre)
DataSheet List :
MAX232 - http://www.disca.upv.es/aperles/web51/pdf/1798.pdf
SN75176B/SN65176B - http://www.disca.upv.es/aperles/web51/pdf/slls101b.pdf
LTC485 - http://www.disca.upv.es/aperles/web51/pdf/lt0485.pdf
MAX485 - http://www.maxim-ic.com/appnotes.cfm?an_pk=2116
---------------------------------------------
Módulo de Conversión
Con este módulo vamos a poder comunicarnos con otros sistemas, usando las normas de comunicación serie más habituales que existen en el entorno industrial. Estas normas son la RS-232 y RS-485, para las cuales se desarrollará un circuito que podrá funcionar con una u otra norma con pocos cambios.
DESCRIPCIÓN:
Todo microcontrolador de la familia 80x51 incluye un puerto serie que, mediante un sencillo hardware de adaptación de niveles de tensión, permite implementar un interfaz RS-232 y RS-485 Esto permitirá al micro que se comunique fácilmente con otros equipos y, en especial, con los PCs.
Se recomienda, en general, que los cables que interconectan los dispositivos no excedan de 15 metros. Para distancias mayores se recomiendan otros sistemas de interconexión, por ejemplo un RS-485.
El estándar RS-232-C describe 21 señales en un conector de 25 líneas tipo DB-25, pero ha degenerado y es normal encontrarlo con conectores de 9 patillas tipo DB-9 y con menos señales.
Las líneas que más interesan en este capítulo son TRANSMIT y RECEIVE (líneas 2 y 3). Estas líneas son compatibles (entre el computador o terminal y el módem) porque TRANSMIT es una señal de entrada al módem y de salida para el computador/terminal. Lo mismo ocurre con la señal RECEIVE.
El resto de líneas permiten conocer cuando se produce una llamada, manejar una comunicación full-duplex o half-duplex, evitar perdidas de datos cuando uno de los dos elementos no puede absorber más datos, etc.
En cuanto a los niveles de tensión, la norma RS-232-C define una tensión simétrica respecto a la referencia, y al menos 3 V para un nivel lógico 0 y -3 V. para un nivel lógico 1. En la práctica los niveles de tensión son de +12V y -12V.
El interfaz RS-232 utiliza una transmisión no balanceada, por lo que no es adecuada en ambientes industriales (ruido en modo común) y en longitudes de conexión largas (efecto crosstalk).
Las velocidades de transmisión más utilizadas son: 300, 1200, 2400, 4800, 9600 y 19200 bps. En la práctica se logran alcanzar hasta 115.200 bps.
Las limitaciones de la norma RS-232C se pueden superar con las mejoras que aportó posteriormente la norma RS-485 (hay normas previas como la RS-423 y RS-422). Su ventaja es que se trata de una transmisión balanceada o diferencial que aporta como beneficios inmediatos una mayor velocidad de transmisión, una gran longitud de línea del orden del kilómetro y una buena inmunidad al ruido.
El medio físico de transmisión es un par trenzado, con las ventajas de rechazo de ruido que aporta. Si al par trenzado se le añade un apantallamiento se estará en condiciones de tener un red de comunicaciones industriales bastante inmune al ruido (incluso sin el apantallamiento), por ello, la mayoría de buses de campo (redes industriales de control) emplean este tipo de cableado. Téngase en cuenta que se admiten hasta 32 estaciones en un sólo hilo y la comunicación es half-duplex. Será necesario poner una resistencia terminadora en cada extremo de 120 Ohms.
Esquema de una RS-485
En un RS-485 se transmite exactamente lo mismo que para un RS-232 así que suele haber en el mercado adaptadores entre las dos normas que capacitan, por ejemplo, a un PC para comunicarse con sensores y actuadores industriales.
En el esquema se presenta un hardware que permite al microcontrolador conectarse con un sistema RS-232 y con un sistema RS-485. Para la interfaz RS-232 se usará un clásico MAX232 que incorpora un bomba de tensión que permite obtener +/-10 voltios a partir de una única alimentación de +5V. Las únicas señales del estándar RS-232 disponibles serán la masa lógica (línea 5), la señal T (línea 3) y la señal R (línea 2), todo ello en un conector DB-9 según suele ser habitual últimamente. Para conectar el micro a un PC bastaría con implementar un NULL-MODEM cruzando las líneas 2 y 3.
Para la interfaz RS-485 se puede usar un SN75176 o un LTC485. En el sistema propuesto se selecciona si se desea usar la interfaz 232 o la 485 mediante unos jumpers y si se quiere conectar una resistencia de 120 Ohms si está en un extremo del par trenzado.
EJEMPLO:
Se puede usar un PC como terminal RS-232 para enviar órdenes al micro o recibir información. El hardware mostrado en este apartado lo permite fácilmente, recuérdese que basta con cruzar las líneas 2 y 3. Sólo falta establecer el mimo protocolo en los extremos.
El siguiente listado muestra una aplicación que configura el puerto serie a 2400 bps, 8 bits, sin paridad (cristal de 12 Mhz) y envía continuamente un mensaje al puerto serie aprovechando la función printf.
Código:
/* serie3.c */
#include <stdio.h>
#include <io51.h>
sfr ADCON = 08; /* solo ALTAIR 535 */
#define DELAY 30000
void delay(int i);
void main(void)
{
unsigned char i;
/* en los ALTAIR hay que quitar el control del serie al S.O.*/
EA = 0; /* SOLO ALTAIR535, deshabilitar interrupciones*/
PSW.5 = 1; /* SOLO ALTAIR535, deshabilitar captura serie*/
/* generador baudios con timer 1, modo autorrecarga */
TMOD &= 0x0F;
TMOD |= 0x20;
PCON |= 0x80; /* SMOD=1 */
TH1= 0xE6; /* 2400 baudios, 12Mhz */
SCON=0x70; /* MODO 1 */
ADCON.7 = 0; /* solo ALTAIR535, desconectar generador dedicado */
TR1=1;
TI = 1;
while(1)
{
for (i=32;i<255;i++)
{
delay(DELAY);
printf(">>> Codigo: %c\n",i);
}
}
}
void delay(int i)
{
while (i--);
}
Conectando la salida serie al PC como se ha indicado, se puede recibir la información desde cualquier software capacitado para leer los puertos serie del PC.