Réseaux temps réel embarqués dans l'automobile
Les réseaux embarqués
CAN
Le protocole CAN a vu le jour dans les années 1980. A la base utilisé par le constructeur Mercedes, il est aujourd'hui
présent chez la quasi totalité des constructeurs automobiles. Il a répondu à la problématique des connexions point à point
en proposant un accès au support qui assure un temps de réponse minimum borné par un maximum afin de détecter les erreurs ou
de déduire que l'information reçue après ce temps maximum ne doit pas être analysée.
Aujourd'hui CAN est devenu un standard en Europe et est également normalisé ISO. Il utilise la technique CSMA/CR. Cette
technique permet d'accéder au médium en fonction de la priorité des trames. Cet arbitrage de trame est dit non destructif car la trame qui n'a pas
été autorisée à accéder au médium ne sera pas totalement détruite. Cette priorité des trames est donc fixée par un identifiant unique de 11 bits pour la
version CAN bas débit et d'un identifiant de 29 bits pour la version CAN haut débit. Le schéma ci-dessous explique ce comportement d'arbitrage.
Il faut savoir qu'avec CAN, le bit dominant n'est pas le bit 1 mais le bit 0. De plus ce protocole utilise une représentation NRZ. En d'autres termes, il y a deux états possibles, soit 1 soit 0. Si on observe le schéma ci-dessus, on remarque que tant qu'il n'y a pas eu de décision sur la trame victorieuse, il n'y a pas de destruction. L'arbitrage final se fait donc dès que la comparaison bit à bit est différente. La trame qui n'a pas accédé au support, se retire et la trame victorieuse accède donc au médium.
Le protocole CAN, utilise également une technique nommée le bit-stuffing. Cette technique consiste à envoyer un maximum de bits de consécutif égaux. Dans le cas du protocole CAN, le bit-stuffing est de longueur cinq. C'est à dire que dans une trame, il y aura au maximum cinq bits consécutifs égaux. Si dans la trame il doit y avoir plus de cinq bits consécutifs, on rajoute un bit supplémentaire de la valeur inverse que les données à envoyer. Cette méthode permet de détecter les erreurs le cas échéant car si on reçoit six bits consécutifs égaux cela signifie qu'un noeud est défaillant.
Voici le détail d'une trame CAN avec les différents champs la composant.
Le champ SOF correspond au début de la trame. Le champ identificateur avec le champ RTR permet l'arbitrage de la trame. Le champ RTR indique également si la trame est une trame de données ou une trame de requête. Le champ DLC correspond à la longueur des données. Le champs ACK permet d'offrir le mécanisme d'acquittement. Le champ CRC permet de vérifier que la trame reçue n'a pas été corrompue, c'est donc un moyen de plus de détecter les erreurs éventuelles. Le champ EOF indique que la trame prend fin et le champ inter et un champ inter-trame permettant de faire une légère pause entre l'envoi de trames successives.
Les types de support utilisés généralement sont la fibre optique, les paires torsadées, l'infrarouge...