Pregunta

¿Qué bus de comunicación en serie usaría en un sistema integrado automotriz si sus principales criterios de selección fueran:

  • eléctricamente robusto
  • Velocidad lenta (32 kb / s)
  • Fácil de programar
  • Fácil de conectar con microcontroladores

No transferirá muchos datos, pero deberá ser transferido periódicamente a alta velocidad (100 - 500 Hz). Me parece que RS-232 no es lo suficientemente confiable si tiene ruido en su línea de tierra. El bus CAN parece interesante, pero no tengo experiencia con él.

Actualmente estamos interesados ??en una combinación de microcontroladores AVR AT90CAN128.

¿Fue útil?

Solución

Ya ha elegido el AT90CAN128, cuya característica destacada en comparación con otros procesadores AVR es el soporte para el bus CAN. Realmente no hay una mejor opción que CAN para una aplicación automotriz con sus requisitos de tasa de datos y de inmunidad al ruido. Si ingresas a un cliente automotriz con algo que no sea CAN, terminarás gastando todo tu tiempo defendiendo la decisión de no usarlo.

Dicho esto, para la inmunidad al ruido en un entorno hostil como un automóvil, necesitará un bus que utilice señalización diferencial. Eso descarta i2c o SPI, lo cual es desafortunado porque cumplen con sus otros requisitos. RS-485 sería viable como señala @Andrew Edgecombe.

Si no está construyendo un producto comercial, sino que está construyendo algo para su propio uso para colocarlo en el compartimiento del motor, es probable que pueda funcionar con USB. El USB facilitará la interfaz con una computadora portátil en el compartimiento de pasajeros, y aunque no está diseñado para entornos de alto ruido, se señaliza de manera diferencial a un voltaje razonablemente alto.

Otros consejos

A pesar de toda la confiabilidad, no puede ir más allá de CANbus (¿pero eso fue algo implícito en su elección de procesador?)

Dependiendo de a qué se quiera conectar, esto puede ser muy simple: el protocolo de nivel básico es bastante sencillo. Pero si desea hablar con cualquier otro dispositivo no propietario, deberá implementar los protocolos más altos (por ejemplo, CANopen).

Pero si CANbus no es apropiado, entonces recomendaría RS485 o RS422 (dependiendo de su topología). Si todo lo que está tratando de lograr es una comunicación punto a punto, es idéntica a RS232. (aunque tendrás que poner tu propia capa de protocolo en la parte superior si intentas admitir las comunicaciones multipunto).

Otras dos opciones excelentes distintas de CAN son LIN y FlexRay. LIN es una interfaz más sencilla y lenta, mientras que FlexRay es más robusto y está diseñado para sistemas de seguridad críticos como los controles de frenos en tiempo real.

Para obtener un buen cuadro general de cómo se interrelacionan las distintas opciones de bus, vea esto diapositiva .

Siempre sugeriría que CAN es el mejor en comunicación automotriz.

  • Tiene una línea diferencial que puede soportar incluso si hay un problema eléctrico en la transferencia de datos en la capa física
  • puede proporcionar una velocidad confiable, sirve a una velocidad de 500KBaud en la mayoría de las aplicaciones de software automotriz.
  • la interfaz también es fácil si conoce la estructura de registro y buzón del controlador CAN.

Como han dicho otros, CAN es estándar, robusto, más robusto con velocidad lenta, etc.

E incluso hay soporte en el kernel de Linux desde la versión 2.6.15 si alguna vez necesitas un sistema más grande.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top