technology inc serial-port microcontroller can can-bus

serial-port - inc - microchip can bus



Bus serial robusto y fácil de implementar(aplicación automotriz) (5)

Para mayor confiabilidad, no puede pasar CANbus (¿pero eso fue algo implícito por su elección de procesador?)

Dependiendo de con qué se quiere conectar, esto puede ser muy simple: el protocolo de nivel base es bastante directo. Pero si desea hablar con cualquier otro dispositivo no propietario, deberá implementar los protocolos superiores (por ejemplo, CANopen).

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

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

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

No transferirá mucha información, pero deberá transferirse periódicamente a alta velocidad (100 - 500 Hz). Me parece que RS-232 no es lo suficientemente confiable si tienes ruido en tu línea de tierra. CAN-bus parece interesante, pero no tengo experiencia con eso.

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


Como otros dijeron, CAN es estándar, robusto, más robusto con baja velocidad, etc.

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


Ya ha elegido el AT90CAN128, cuya característica sobresaliente en comparación con otros procesadores AVR es el soporte para el bus CAN. Realmente no existe una mejor opción que CAN para una aplicación automotriz con sus requisitos de velocidad de datos e inmunidad al ruido. Si ingresa a un cliente automotriz con algo más que CAN, terminará gastando todo su tiempo defendiendo la decisión de no usarlo.

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

Si no está construyendo un producto comercial, sino que está construyendo algo para su propio uso y colocado en el compartimento del motor, probablemente pueda hacerlo con un USB. 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ñala diferencialmente a un voltaje razonablemente alto.


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

Para obtener una buena tabla de descripción general de cómo se interrelacionan las distintas opciones de autobús, consulte esta diapositiva .


Siempre sugiero que CAN es lo mejor en comunicación automotriz.

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