Tengo un dispositivo (un contador de energía) que envía datos a través de RS-485 (protocolo Modbus). Y quiero cobrarlo con MCU. Lo importante es que estoy intentando diseñar una placa y quiero que sea escalable. Eso significa que podría tener 1 dispositivo conectado, o tal vez 2 o 3 dispositivos conectados (con ID de esclavo diferentes). Tengo las siguientes preguntas:
¡Gracias de antemano!
Sí, obviamente necesitas un UART. Tu conductor también se ve bien. Un UART es suficiente. No intente construir su proyecto si no está familiarizado con términos como: sistema de bus, RS485, capa física, UART, RS232, semidúplex, topología maestro-esclavo, arbitraje de bus. Con eso, comprenderá qué es un sistema de bus y cómo funcionan varios dispositivos en una sola línea. Un buen punto de partida son las notas de aplicación de algunos proveedores y tutoriales de rs485, por ejemplo, este .
Personalmente, utilicé el ST3485, que tiene una nota de aplicación que explica algunas cosas básicas aquí , pero también puede encontrar la misma información de todos los demás proveedores.
Para el descifrado de Firmware y Protocool, existen muchas bibliotecas. En primer lugar, debe saber si desea construir un dispositivo Maestro o Esclavo. Por todo lo anterior: Google es tu amigo. Pero para que Google encuentre lo correcto, ¡necesita conocer la terminología (qué buscar)!
Es posible que desee considerar el hardware en una etapa temprana si es MODBUS-RTU. El protocolo MODBUS-RTU tiene una condición de MARCA de 3-1/2 caracteres para indicar INICIO/FIN, que es posible que un UART común no admita.
Con MODBUS ASCII no existe tal problema: el carácter de dos puntos y CR/LF se utilizan como delimitadores. Por supuesto, la desventaja es que es mucho más lento.
Gesto de desaprobación