Question

Quel bus de communication série utiliseriez-vous dans un système embarqué automobile si vos principaux critères de sélection étaient:

  • Robuste électriquement
  • Vitesse lente (32 kb / s)
  • Facile à programmer
  • Interface facile avec les microcontrôleurs

Les données ne seront pas beaucoup transférées, mais elles devront être transférées périodiquement à haute vitesse (100 - 500 Hz). Je trouve que RS-232 n’est tout simplement pas assez fiable si vous avez du bruit dans votre ligne de masse. Le bus CAN semble intéressant, mais je n'en ai aucune expérience.

Nous sommes actuellement intéressés par une combinaison de microcontrôleurs AVR AT90CAN128.

Était-ce utile?

La solution

Vous avez déjà choisi l’AT90CAN128, dont la fonctionnalité exceptionnelle par rapport aux autres processeurs AVR prend en charge le bus CAN. Il n’ya vraiment pas de meilleur choix que CAN pour une application automobile avec vos exigences en matière de débit de données et d’immunité au bruit. Si vous vous rendez chez un client du secteur automobile avec autre chose que CAN, vous finirez par passer tout votre temps à défendre la décision de ne pas l'utiliser.

Cela dit, pour une immunité au bruit dans un environnement hostile tel qu'une voiture, vous aurez besoin d'un bus utilisant la signalisation différentielle. Cela exclut i2c ou SPI, ce qui est regrettable car ils répondent à vos autres exigences. La RS-485 serait pratique, comme le souligne @Andrew Edgecombe.

Si vous ne construisez pas un produit commercial, mais que vous construisez quelque chose pour votre propre usage à placer dans le compartiment moteur, vous pouvez probablement vous en tirer avec la clé USB. L’USB facilite l’interface avec un ordinateur portable dans l’habitacle et, bien qu’il ne soit pas conçu pour les environnements très bruyants, il est signalé de manière différentielle à une tension relativement élevée.

Autres conseils

Pour une fiabilité maximale, vous ne pouvez pas dépasser le CANbus (mais cela était-il en quelque sorte lié au choix de votre processeur?)

En fonction de l’interface que vous souhaitez utiliser, ceci peut être très simple: le protocole de base est assez simple. Mais si vous souhaitez parler à tout autre appareil non propriétaire, vous devrez implémenter les protocoles les plus élevés (par exemple, CANopen).

Mais si CANbus ne convient pas, je vous recommanderais RS485 ou RS422 (selon votre topologie). Si tout ce que vous essayez d’obtenir est une communication point à point, c’est identique au RS232. (vous devrez cependant mettre votre propre couche de protocole au dessus si vous essayez de supporter les communications multipoints.)

Deux autres excellents choix que CAN sont LIN et FlexRay. LIN est une interface plus simple et plus lente, tandis que FlexRay est plus robuste et conçu pour les systèmes critiques pour la sécurité tels que les contrôles de freins en temps réel.

Pour un tableau de synthèse de la corrélation entre les différents choix de bus, consultez cette slide .

Je dirais toujours que CAN est le meilleur en matière de communication automobile.

  • Il a une ligne différentielle qui peut résister même s'il y a un problème électrique dans le transfert de données dans la couche physique
  • il peut fournir une vitesse fiable, il sert une vitesse de 500 Kbps dans la plupart des applications logicielles automobiles.
  • L’interfaçage
  • est également facile si vous connaissez la structure de la boîte aux lettres et des registres du contrôleur CAN.

Comme d’autres l’ont dit, CAN est standard, robuste, plus robuste avec une vitesse lente, etc.

Le noyau Linux prend même en charge cette version à partir de la version 2.6.15 si vous avez besoin d'un système plus volumineux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top