Problemas de distancia con la conexión I2C para múltiples dispositivos

3

Estoy considerando usar el protocolo de bus I2C para conectar hasta 100 dispositivos (en el peor de los casos) a una placa base para evitar el uso de la conexión de puerto serie con cada uno.

Los problemas que enfrento son:

  • Necesito que estén a una distancia de 3 a 5 m
  • El voltaje máximo debe ser 5V

Intenté encontrar una respuesta al problema y encontré un par de soluciones, como configurar resistencias pull-up para contrarrestar el aumento de la capacitancia, pero he encontrado opiniones y artículos variados y puedo No alcances una solución.

¿Crees que esto es viable? ¿Qué otras opciones tengo?

    
pregunta Alex P

1 respuesta

4

IIC tiene una impedancia bastante alta debido a que se levanta de forma pasiva y la corriente desplegable debe ser bastante pequeña. Los pullups suelen ser de unos pocos kΩ, que es la impedancia de las líneas cuando están inactivas. Por lo general, esto es correcto en una sola tabla sobre un plano de tierra consistente, pero extender esas líneas 5 metros es un problema. Si realmente tiene que hacer esto, reduzca la velocidad de datos y encapsule cada paquete con una suma de comprobación.

En última instancia, terminas negociando la tasa de datos con confiabilidad. Probablemente pueda salirse con 100 kBit / s o menos (solo adivinar). Eso le daría a las líneas 5 µs para establecerse después de cada borde antes de que deban observarse.

Una opción probablemente mejor sería usar CAN. 100 dispositivos se están acercando al límite pero aún está dentro de las especificaciones. El MCP2551 común se especifica para soportar 112 dispositivos, por ejemplo. CAN es un bus diferencial con resistencias de 120 Ω que se juntan en cada extremo. La naturaleza diferencial y la impedancia mucho menor (60) hacen que sea adecuada para salir del tablero. Inicialmente, fue diseñado para su uso en automóviles, que son conocidos por ser eléctricamente ruidosos.

5 metros es la abreviatura de CAN. Si utiliza el par trenzado correcto, la topología de la conexión en cadena y termina el bus en cada extremo, debería poder hacer 1 MBit / s sin problemas.

Otra ventaja de CAN es que el silicio para implementar los bajos niveles del protocolo está integrado en muchos microcontroladores. El firmware de nivel más bajo envía y recibe paquetes completos. El hardware se encarga de codificar los datos en el cable, la detección de colisiones con retroceso y reintento, y la generación y validación de la suma de comprobación.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas