X-NODE / XC12 - Interfaz RS232/RS485
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
¿Te fue útil?
El X-NODE RS232/RS485 Interface es un módulo que permite a los X-NODE (configuración X|B) comunicarse con dispositivos bajo el estándar RS-232 o en una red RS-485. Este módulo es ideal para conectar dispositivos creados con la plataforma de XIDE con equipos industriales como PLCs, terminales de control y sensores, equipos de laboratorio y OEMs. Comunicación de dispositivos IoT con redes industriales que utilicen el estándar RS-232/485 como redes Modbus ASCII/RTU.
El X-NODE RS232/RS485 Interface es un módulo que implementa dos transceptores: el MAX3232, un driver RS-232 que puede operar hasta 250 kbps y el THVD1426, un transceptor RS-485 con autodireccionamiento y una velocidad de hasta 12 Mbps.
El módulo integra un conector DE-9* común en los dispositivos que implementan comunicaciones seriales RS-232 en configuración 3-wire tipo DCE, además una terminal de pines macho de 2.54 mm con las señales RX, TX y GND. Cuenta con un puerto con conector tipo clema de 3 pines para cables AWG de calibre 26 a 18 que permite acceder a las señales A, B y GND del transceptor RS-485, un jumper para habilitar una resistencia de terminación de 120 ohms que permite igualar la impedancia del cable y minimizar las interferencias en comunicaciones de largo alcance.
X-NODE RS232/RS485 Interface es compatible con el estándar mikroBUS™ de Mikroe® para un uso fácil con un gran ecosistema de kits para desarrollo de hardware.
Conector DE-9 para comunicaciones RS-232 en configuración 3-wire tipo DCE.
Puerto serigrafiado con pines macho con separación de 2.54mm (0.1 pulgadas) para comunicaciones RS-232
Transceptor RS-232 MAX3232
Conector para comunicaciones RS-485 tipo clema de 9 pines para cables AWG de calibre 26 a 18
Transceptor RS-485 THVD1426
Jumper habilitador de resistencia de terminación de 120ohm.
Selector de transceptor para seleccionar comunicaciones: RS-232 <> RS-485
Puerto de comunicación UART
Modelo de X-NODE
Tipo de X-NODE
Jumpers para habilitar las señales A y B del transceptor RS-485 a los pines del conector DE-9
Conectores estándar mikroBUS™
Versión del hardware: R1
Número de parte del componente principal en el X-NODE
Acerca del protocolo RS-232 y el conector DE-9En comunicaciones RS-232 (Recommended Standard 232) existen hasta 25 señales para la especificación completa, que permiten el control de flujo de datos, transmisiones síncronas, etc., sin embargo, en la mayoría de los dispositivos se encuentran solo algunas, siendo el mínimo requerido para la comunicación 3 señales: TX, RX y GND. A esta configuración se le conoce como 3-wire y es la implementada en el X-NODE RS232/RS485 Interface.
El conector DE-9, también llamado DB-9, es comúnmente utilizado en comunicaciones RS-232, que designa una norma de patillaje para el intercambio de datos entre un equipo terminal de datos (Data Terminal Equipment) y un equipo de comunicación de datos (Data Communication Equipment). Dependiendo del tipo de equipo las señales RX y TX estarán ubicadas en pines diferentes del conector DE-9. En el caso del X-NODE RS232/RS485 Interface las señales siguen el patillaje tipo DCE, lo que permite la comunicación directa con dispositivos tipo DTE o a través de un cable straight-through, mientras que la comunicación con otros DCE requiere un cable tipo null-modem que cruce las señales TX y RX.
Nota: Si tiene problemas para enviar/recibir información entre el X-NODE RS232/RS485 Interface y otro dispositivo, revise si se trata de un dispositivo DCE, de ser así utilice un cable null-modem.
Acerca del protocolo RS-485En comunicaciones RS-485 la comunicación utiliza un modo de operación diferencial entre las señales A, B y GND, utilizando como medio cables de par trenzado. Esta configuración permite alcanzar velocidades de hasta 10 Mbps a una distancia de hasta 1200 metros (4000 ft). Para evitar perdida de datos, producto de imperfecciones en la fabricación o por degradación del cable, se suele emparejar las impedancias del cable utilizando una resistencia, con un valor típico de 120 ohm, el X-NODE RS232/RS485 Interface incluye un jumper que permite habilitar/deshabilitar esta resistencia de ese valor.
RS-485 suele ocuparse en topologías tipo BUS, para lograrlo utiliza comunicaciones Half-Duplex, lo que significa que solo un dispositivo puede controlar el BUS a la vez, cuando el dispositivo no se encuentre transmitiendo información deberá liberar las líneas colocando el driver en modo de alta impedancia (Hi-Z), lo que requiere un control activo del estado del driver, el X-NODE RS232/RS485 Interface cuenta con un mecanismo de auto-direccionamiento, que se encarga de este control de manera automática, sin embargo, el usuario debe asegurarse de no enviar información mientras se está recibiendo datos. Si el usuario requiere hacer uso de la comunicación UART (full-duplex) en el puerto mikroBUS™ sin afectar el bus RS-485 deberá forzar el estado del pin EN del X-NODE RS232/RS485 Interface a un bajo lógico, lo que deshabilitará el driver completamente.
El X-NODE RS232/RS485 Interface puede conectar las señales A y B al conector DE-9, utilizando los puentes soldables CFG1 y CFG2, sin embargo, el patillaje no sigue ninguna norma, por lo que es responsabilidad del usuario acoplar las señales apropiadamente con el resto de los equipos.
Tipo
Transceptor RS-485 + RS-232
Aplicaciones
Comunicación entre sistemas de IoT de 3.3 VDC con equipo industriales como PLCs, OEMs, equipos de laboratorio y sensores.
Módulo 1
Fabricante
Módulo 2
Fabricante
Características
* Transceptor RS-232 con una velocidad de operación de hasta 250 kbps y protección ESD de +/- 15kV * Transceptor RS-485 con velocidad de operación de hasta 12 Mbps y protección ESD de +/- 12kV
Interfaz
UART, GPIO
Compatibilidad
Estándar mikroBUS™
Tamaño
70.64 x 33.33 x 25.55 mm
Voltaje
3.3 V
La siguiente tabla muestra el pinout del X-NODE RS232/RS485 Interface con respecto al estándar mikroBUS™ (este último se encuentra en las dos columnas del centro).
Para utilizar el X-NODE RS232/RS485 Interface deberá conectar un dispositivo compatible con señales 3.3 VDC a los pines TX, RX y GND del puerto mikroBUS™, la mayoría de las comunicaciones RS-232/485 utilizan el formato de trama UART, por lo que se recomienda utilizar este periférico en su dispositivo.
Si se utiliza una tarjeta con estándar mikroBUS™, verifique que las señales TX y RX estén cruzadas para permitir una comunicación correcta. En los X-NODE con patillaje X|B, los pines RX (14) y TX (13) se encuentran en posiciones opuestas a las de los X-NODE con patillaje X|N, donde los pines TX (14) y RX (13) están invertidos, lo que provoca que, al conectar un X|B con un X|N, el cruce de señales ocurra de forma automática.
El X-NODE RS232/RS485 Interface es un X-NODE con patillaje X|N, por lo que deberá utilizar un X-NODE con patillaje X|B para controlarlo.
En las comunicaciones sobre RS-232 la implementación específica del formato de trama depende del tipo de dispositivo, por ejemplo, los módems suelen tener una interfaz de comandos AT en formato ASCII. Para utilizar el X-NODE RS232/RS485 Interface puede conectar el periférico UART del controlador del sistema a los pines TX/RX del X-NODE, después conecte los pines TX/RX del X-NODE con los pines TX/RX del dispositivo RS-232, asegúrese de utilizar una configuración cruzada (RX con TX), después envíe los comandos de acuerdo al manual de uso proporcionado por el fabricante.
En el caso de las comunicaciones RS-485 es muy común que la comunicación utilice un protocolo, debido a su naturaleza half-duplex, uno de los protocolos más usados sobre RS-485 es Modbus RTU.
Modbus RTU se utiliza sistemas industriales para la transmisión de datos, funciona a través de una topología cliente-servidor(es), donde un cliente escribe/lee un registro de un servidor, existen diferentes tipos de registros de acuerdo al tamaño del registro y el propósito:
Coil: Registros de escritura de 1 bit
Discrete Inputs: Registros de lectura de 1 bit
Holding Registers: Registros de 16 bits con acceso de escritura/lectura
Input Registers: Registros de 16 bits con acceso de solo lectura
El X-NODE RS232/RS485 Interface puede utilizarse para conectar un periférico UART del controlador a una red Modbus RTU utilizando una librería de software que implemente el protocolo.
Para poder compilar el ejemplo deberá descargar e instalar las librerías desde nuestro repositorio: ArduinoRS485 y ArduinoModbus, consulte como instalar en ArduinoIDE. Si está utilizando PlatformIO basta con agregar la siguiente línea al archivo platformio.ini en la opción lib_deps:
lib_deps =
https://github.com/MICROSIDE-TECHNOLOGY/[email protected]
https://github.com/MICROSIDE-TECHNOLOGY/[email protected]
#include <Arduino.h>
#include "ArduinoModbus.h"
#include "ArduinoRS485.h"
#define RS485_SERIAL Serial2
#define RS485_DEVICE_ADDRESS 0x01
#define PIN_RS485_RX 9
#define PIN_RS485_TX 10
#define PIN_BUTTON 0
#define PIN_LED 16
RS485Class rs485( RS485_SERIAL, PIN_RS485_TX, -1, -1 );
void setup() {
// Inicializar comunicación Serial
Serial.begin( 115200 ); // USB/UART0
RS485_SERIAL.setPins( PIN_RS485_RX, PIN_RS485_TX ); // mikroBUS
pinMode( PIN_BUTTON, INPUT_PULLUP );
pinMode( PIN_LED, OUTPUT );
// Inicializar driver RS485
rs485.begin( 115200 );
// Inicializar cliente Modbus configuración 8N1@115200
if ( !ModbusRTUClient.begin( rs485, 115200 ) ) {
Serial.println( "ERROR Failed to start Modbus RTU Client!" );
while ( 1 )
;
}
}
void loop() {
static uint8_t prev_led_status = HIGH;
prev_led_status = !prev_led_status;
// Conmuta el valor del registro Coil en la dirección 0x00
if ( !ModbusRTUClient.coilWrite( RS485_DEVICE_ADDRESS, 0x00, prev_led_status ) ){
Serial.print("Failed to write coil! ");
Serial.println(ModbusRTUClient.lastError());
}
// Lee 1 valor del InputRegister en la dirección 0x00
int input_register = ModbusRTUClient.inputRegisterRead( 1, 0x00 );
if ( input_register < 0 ){
Serial.print("Failed to read coil: ");
Serial.println(ModbusRTUClient.lastError());
} else {
Serial.print("Button: ");
Serial.println(input_register);
}
delay( 1000 );
}