Vous êtes monté dans votre voiture, avez appuyé sur le bouton de démarrage et le moteur a pris vie en un rien de temps, mais comment votre voiture a-t-elle décidé si elle devait démarrer ou non ?
Eh bien, pour faire démarrer la voiture, plusieurs antennes et unités de contrôle électronique ont communiqué avec le porte-clés. Le protocole CAN (Controller Area Network) garantit que la communication entre votre porte-clés, les antennes et les ECU se déroule correctement à l'intérieur de votre voiture.
Alors, qu'est-ce que le protocole CAN et comment aide-t-il les appareils des systèmes de votre véhicule à fonctionner ensemble? Eh bien, découvrons.
Qu'est-ce que le protocole CAN et pourquoi est-il nécessaire ?
À l'époque, les voitures n'avaient pas beaucoup d'électronique. En fait, si vous vouliez démarrer votre véhicule au début des années 1900, vous deviez sortir de votre véhicule et lancer le moteur à la main.
Les voitures d'aujourd'hui, au contraire, ont plusieurs capteurs électroniques, et les appareils électroniques surveillent tout, de la température de l'habitacle aux révolutions du vilebrequin.
Cela dit, les données reçues de ces capteurs n'ont aucune valeur tant qu'elles ne sont pas traitées. Ce traitement de données est effectué par des dispositifs informatiques connus sous le nom d'unités de contrôle électronique (ECU).
Contrairement à un ordinateur doté d'un seul processeur, une voiture possède plusieurs calculateurs, chacun étant chargé d'effectuer une tâche particulière. Bien que ces calculateurs puissent effectuer efficacement une seule tâche, ils doivent fonctionner ensemble pour garantir des fonctionnalités telles que abdos et ESC travaille correctement.
Pour cette raison, tous les ECU d'une voiture doivent être connectés. On pourrait utiliser une topologie point à point pour établir ces connexions, où chaque ECU est connecté directement à tous les autres ECU. Cependant, cette architecture rendrait le système complexe. En fait, un véhicule moderne compte plus de 70 ECU, et les connecter de manière individuelle augmenterait le poids du câblage de manière exponentielle.
Pour résoudre ce problème, Bosch, avec Mercedes-Benz et Intel, a créé le protocole Controller Area Network en 1986. Ce protocole permettait aux calculateurs de communiquer entre eux à l'aide d'un bus de données partagé appelé bus CAN.
Comment fonctionne CAN ?
Le protocole CAN est une méthodologie de communication basée sur les messages qui repose sur un ensemble de câbles à paires torsadées pour la transmission de données. Ces fils sont appelés CAN high et CAN low.
Pour permettre la transmission de données sur ces fils, leurs niveaux de tension sont modifiés. Ces changements de niveaux de tension sont ensuite traduits en niveaux logiques permettant aux calculateurs d'une voiture de communiquer entre eux.
Pour transmettre la logique un sur le bus CAN, la tension des deux lignes est réglée sur 2,5 volts. Cet état est également connu sous le nom d'état récessif, ce qui signifie que le bus CAN est disponible pour une utilisation par n'importe quel ECU.
Au contraire, le 0 logique est transmis sur le bus CAN lorsque la ligne CAN high est à une tension de 3,5 volts et la ligne CAN low est à 1,5 volts. Cet état du bus est également connu sous le nom d'état dominant, qui indique à chaque ECU du système qu'un autre ECU transmet, il doit donc attendre la fin de la transmission avant de commencer à transmettre son message.
Pour activer ces changements de tension, les ECU de la voiture sont connectés au bus CAN via un émetteur-récepteur CAN et un contrôleur CAN. L'émetteur-récepteur est responsable de la conversion des niveaux de tension sur le bus CAN en niveaux que l'ECU peut comprendre. Le contrôleur, quant à lui, est utilisé pour gérer les données reçues et s'assurer que les exigences du protocole sont remplies.
Tous ces calculateurs connectés au bus CAN peuvent transmettre des données sur le câble torsadé, mais il y a un hic, seul le message avec la priorité la plus élevée peut être transmis sur le bus CAN. Pour comprendre comment un calculateur transmet des données sur le bus CAN, nous devons comprendre la structure des messages du protocole CAN.
Comprendre la structure des messages du protocole CAN
Chaque fois que deux calculateurs veulent communiquer, des messages avec la structure ci-dessous sont transmis sur le bus CAN.
Ces messages sont transférés en modifiant les niveaux de tension sur le bus CAN, et la conception à paire torsadée des fils CAN empêche la corruption des données pendant la transmission.
- FOS: Abréviation de Start Of Frame, le bit SOF est une trame de données à un seul bit dominant. Ce bit est transmis par un nœud lorsqu'il veut envoyer des données sur le bus CAN.
- Identifiant: L'identifiant sur le protocole CAN peut avoir une taille de 11 bits ou de 29 bits. La taille de l'identifiant est basée sur la version du protocole CAN utilisée. Si la version étendue de CAN est utilisée, la taille de l'identifiant est de 29 bits, et dans les autres cas, la taille de l'identifiant est de 11 bits. L'objectif principal de l'identifiant est d'identifier la priorité du message.
- RRT: La demande de transmission à distance ou le RTR est utilisé par un nœud lorsque des données doivent être demandées à un autre nœud. Pour ce faire, le nœud qui veut les données envoie un message avec un bit récessif dans la trame RTR au nœud visé.
- Contenu téléchargeable: Le code de longueur de données définit la taille des données transmises dans le champ de données.
- Champ de données: Ce champ contient la charge utile des données. La taille de cette charge utile est de 8 octets, mais des protocoles plus récents comme CAN FD augmentent la taille de cette charge utile à 64 octets.
- CRC: Abréviation de Cyclic Redundancy Check, le champ CRC est une trame de vérification des erreurs. La même taille est de 15 bits et est calculée à la fois par le récepteur et l'émetteur. Le nœud émetteur crée un CRC pour les données lorsqu'elles sont transmises. Lors de la réception des données, le récepteur calcule le CRC pour les données reçues. Si les deux CRC correspondent, l'intégrité des données est confirmée. Si ce n'est pas le cas, les données contiennent des erreurs.
- Champ d'accusé de réception : Une fois les données reçues et exemptes d'erreurs, le nœud récepteur alimente un bit dominant dans la trame d'accusé de réception et le renvoie à l'émetteur. Cela indique à l'émetteur que les données ont été reçues et qu'elles sont exemptes d'erreurs.
- Fin de trame : Une fois la transmission de données terminée, sept bits récessifs consécutifs sont transmis. Cela garantit que tous les nœuds savent qu'un nœud a terminé la transmission de données et qu'ils peuvent transmettre des données sur le bus.
En plus des bits ci-dessus, le protocole CAN a quelques bits réservés pour une utilisation future.
Simplifier CAN à travers un exemple
Maintenant que nous avons une compréhension de base de ce à quoi ressemble un message sur le bus CAN, nous pouvons comprendre comment les données sont transmises entre différents calculateurs.
Pour simplifier, disons que notre voiture a 3 ECU: Node 1, Node 2 et Node 3. Sur les 3 ECU, Node 1 et Node 2 veulent communiquer avec Node 3.
Voyons comment le protocole CAN permet d'assurer la communication dans un tel scénario.
- Détection de l'état du bus : Tous les calculateurs de la voiture sont connectés au bus CAN. Dans le cas de notre exemple, Node 1 et Node 2 veulent envoyer des données à un autre ECU; avant de faire cela, les deux ECU doivent vérifier l'état du bus CAN. Si le bus est dans un état dominant, les ECU ne peuvent pas transmettre de données car le bus est en cours d'utilisation. En revanche, si le bus est dans un état récessif, les calculateurs peuvent transmettre des données.
- Envoi du début de trame: Si la tension différentielle sur le bus CAN est nulle, les nœuds 1 et 2 changent l'état du bus en dominant. Pour ce faire, la tension de CAN high est portée à 3,5 volts, et la tension de CAN low est réduite à 1,5 volts.
- Décider quel nœud peut accéder au bus: Une fois le SOF envoyé, les deux nœuds se font concurrence pour accéder au bus CAN. Le bus CAN utilise le protocole Carrier Sense Multiple Access/Collision Detection (CSMA/CD) pour décider quel nœud obtient l'accès. Ce protocole compare les identifiants transmis par les deux nœuds et donne accès à celui qui a la priorité la plus élevée.
- Envoi de données: Une fois que le nœud a accès au bus, le champ de données, ainsi que le CRC, sont envoyés au récepteur.
- Vérification et fin de communication: A la réception des données, le nœud 3 vérifie le CRC des données reçues. S'il n'y a pas d'erreurs, le nœud 3 envoie un message CAN au nœud émetteur avec un bit dominant sur la trame d'accusé de réception avec l'EOF pour mettre fin à la communication.
Différents types de CAN
Bien que la structure de message utilisée par le protocole CAN reste la même, la vitesse de transmission des données et la taille des bits de données sont modifiées pour transférer des bandes passantes de données plus élevées.
En raison de ces différences, le protocole CAN a différentes versions, dont un aperçu est donné ci-dessous :
- CAN haut débit: Les données sur les fils CAN sont transmises en série, et cette transmission peut se faire à différents débits. Pour le CAN haut débit, cette vitesse est de 1 Mbps. En raison de cette vitesse de transmission de données élevée, la vitesse élevée peut être utilisée pour les ECU, qui contrôlent le groupe motopropulseur et les systèmes de sécurité.
- CAN bas débit: Dans le cas du CAN à faible vitesse, le débit auquel les données sont transmises est réduit à 125 kbps. Comme le bas débit peut offrir des débits de données inférieurs, il est utilisé pour connecter des calculateurs qui gèrent le confort du passager, comme la climatisation ou le système d'infodivertissement.
- Peut-FD : Abréviation de débit de données flexible CAN, CAN FD est la dernière version du protocole CAN. Il augmente la taille de la trame de données à 64 octets et permet aux calculateurs de transmettre des données à des vitesses allant de 1 Mbps à 8 Mbps. Cette vitesse de transmission de données peut être gérée par les ECU en temps réel en fonction des exigences du système, permettant aux données d'être transférées à des vitesses plus élevées.
Quel est l'avenir de la communication automobile ?
Le protocole CAN permet à plusieurs calculateurs de communiquer entre eux. Cette communication active des fonctionnalités de sécurité telles que le contrôle électronique de la stabilité et des systèmes avancés d'assistance à la conduite tels que la détection des angles morts et le régulateur de vitesse adaptatif.
Cela dit, avec l'avènement de fonctionnalités avancées telles que la conduite autonome, la quantité de données transmises par le bus CAN augmente de façon exponentielle. Pour activer ces fonctionnalités, de nouvelles versions du protocole CAN, comme le CAN FD, arrivent sur le marché.