INTRODUCCIÓ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ñales de un interfaz RS-232C. Conexión DTE-DCE.

La figura muestra el uso para el que fue pensado y desarrollado el estándar. Un aspecto a  destacar en la figura es la existencia de dos señales de tierra tal como define el estándar. Una de ellas es la señal de tierra conectada al chasis del sistema y que debe estar interconectada entre todos los sistemas que se relacionen. Esta línea se debe conectar siempre que la conexión entre los chasis sea segura y no aparezcan problemas de bucles de
tierra. La otra señal ejerce de referencia digital para el resto de señales que se intercambian y es obligatoria. 

El estándar tiene amplio uso en distancias cortas, cuando éstas se hacen grandes se convierte en algo menos aconsejable y es más complejo conseguir un correcto funcionamiento. 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. La Figura 6-10 muestra el esquema de un sistema con RS-485, 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.

Descarga Del Esquematico Del Módulo De Comunicaciones Serie (RS-232 y RS-485)

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 TxD (línea 3) y la señal RxD (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. 

PCB:

Descarga Del PCB Del Módulo De Comunicaciones Serie (RS-232 y RS-485)

COMPONENTES:

Los componentes necesarios para el montaje de este sistema son: 

COMPONENTES CANTIDAD
C.I. MAX232 1
C.I. SN75176 ó LTC485 1
Condensadores Electroliticos 10uF/ 63V 4
Condensadores 2.2 nF 2
Conector Molex 2 x 5 Pines 1
Conector Sub-D 9 pines acodado para pcb hembra 1
Regleta Circuito Impreso Atronillable 2 Conductores 1
Resistencias 47 1/4W 2
Resistencias 120 1/4W 1
Resistencias 1K5 1/4W 2
Resistencias 4K7 1/4W 2
Resistencias 15K 1/4W 2
Tira Jumpers 1
Torretetas Separadoras 10mm 4
Transistor BC547 1
Placa PCB 1 cara (80 x 72)mm 1
Zócalo DIP-8 1
Zócalo DIP-16 1



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. 

    /* serie3.c */ 
    #include <stdio.h>
    #include <io51.h>

    sfr ADCON = 0xD8; /* 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.