¿Qué interfaz de comunicación en serie funcionaría mejor para el registro de datos cuando el sensor más cercano y la MCU principal están (al menos) a 1 metro de distancia?

Me gustaría configurar una "matriz de sensores" que tenga 4 sensores conectados. Se espera que cada sensor envíe datos a velocidades de hasta 8 Hz. Los datos se enviarían a una MCU que se encuentra a 1 o 2 metros de distancia. Esta MCU almacenará los datos en una tarjeta SD.

Para ilustrar esto un poco mejor:

ilustración de diseño básico

Estaba pensando en usar I2C para comunicarme entre la MCU y los sensores en la matriz de sensores, pero no estoy seguro de qué tan bien funcionaría I2C a esta distancia y si sería lo suficientemente rápido.

SPI parece ser un gran no no en términos de distancia.

Otras interfaces que podrían funcionar son CAN y RS485, aunque nunca las he usado antes. He profundizado en el uso de CAN y aunque parece que podría funcionar bien, también parece que podría ser un poco "excesivo" para lo que necesito.

Entonces, ¿qué interfaz de comunicación en serie podría funcionar mejor en este tipo de escenario?

Cualquier ayuda es apreciada.

8Hz es extremadamente lento. Puedes usar palomas para ello....
¿En qué consiste su conjunto de sensores? Si son I2C o SPI, también podría usar eso. O, según sus requisitos y el entorno, simplemente lea los valores analógicos directamente de los sensores...
¿Bucle de corriente de 4-20 mA? Realmente depende de cuáles sean los sensores.
Para solo 4 sensores y 2 m de distancia, consideraría una conexión analógica directa y sin bus de comunicaciones si los sensores y el controlador pueden comunicarse bien entre sí. Un conector DE9 admitirá una tierra común (o blindaje) y dos señales para cada sensor. Un conector DIN de 5 pines admitirá un común y una señal cada uno. Su entorno eléctrico puede dictar opciones más elaboradas, pero la conexión directa sería simple.

Respuestas (2)

No dijiste cuántos datos está produciendo cada sensor y cuál es el entorno (¿al lado de un motor grande?). Puede resultar que I2C simplemente funcione si no tiene mucha EMI del exterior.

Existen estándares de interfaz para distancias cortas (baratas y fáciles) y distancias más largas (más costosas y complejas). Los estándares clásicos de larga distancia son ciertamente RS-485 y CAN.

En su escenario, si no quiere usar CAN o RS-485, podría usar quizás SPI con controladores RS-422, para que cada línea (SCK, MOSI, CS) se transmita como un par diferencial. Será tan robusto como RS-485, no requerirá otra MCU en la placa del sensor, pero requerirá más cables de señal.

Si puede pagar una MCU básica, pequeña y económica en la placa del sensor, entonces podría usar RS-485 fácilmente.

Votaría por RS-232 ya que es más fácil de depurar. O incluso los niveles TTL funcionarán si están conectados correctamente. 1m no es una distancia larga.

4 sensores a 8 Hz es algo así como 1 kbit/s, asumiendo lecturas de 32 bits. Un UART simple de 5 V funcionará sin problemas a lo largo de varios metros a tales velocidades en baudios.

SPI también se puede usar directamente si sus sensores permiten velocidades de datos arbitrariamente lentas. Disminuya la velocidad de sus señales (usando un filtro RC) en el transmisor y regenere los bordes rápidos usando disparadores Schmitt en el receptor, si los bordes muestran un problema.

¿Quiere decir un UART en TTL/LVTTL o un UART en RS232?
Sí. En TTL o LVTTL o RS232.