Éviter les problèmes de transmission de données des émetteurs-récepteurs CAN grâce à des tests au niveau du système
Avec la contribution de Rédacteurs nord-américains de DigiKey
2023-10-11
CAN (Controller Area Network) est une norme de communication éprouvée et robuste, notamment utilisée dans les secteurs de l'automatisation industrielle et de l'automobile. Deux versions de la technologie existent : CAN2.0, et la version plus récente, CAN-Flexible Data (FD). Les systèmes CAN2.0 hérités peuvent être améliorés en ajoutant des nœuds CAN-FD, qui offrent un débit de charge utile plus élevé pour prendre en charge les événements de communication critiques.
Les technologies sont généralement compatibles, mais à mesure que la complexité et la longueur de bus des systèmes augmentent, la vitesse plus élevée de CAN-FD dans les systèmes mixtes peut provoquer des problèmes de synchronisation, entraînant une défaillance de la transmission.
Un test de système CAN impliquant un seul bus court reliant deux paires contrôleur/émetteur-récepteur peut être satisfaisant pour des systèmes simples. Cependant, ce test échoue souvent à détecter les problèmes qui peuvent se manifester dans les systèmes multi-nœuds plus complexes combinant des composants CAN2.0 et CAN-FD. Des tests exclusifs sur tous les cas d'utilisation potentiels avec un jumeau du système de production peuvent détecter tous les problèmes pouvant survenir sur le terrain.
Cet article présente brièvement CAN2.0 et CAN-FD et explique les défis en matière de transmission. Il décrit ensuite les techniques de test visant à garantir que les systèmes utilisant ces réseaux affichent un minimum de défaillances sur le terrain. Il présente des exemples de composants d'Analog Devices qui intègrent la détection et le signalement des défaillances, et montre comment l'utilisation de tels composants peut accélérer la phase de test et la résolution des problèmes dans les systèmes déployés. Une carte d'évaluation associée est également présentée.
Présentation de CAN2.0 et CAN-FD
CAN est une norme pour les communications distribuées avec gestion intégrée des défaillances. Les couches physique (PHY) et liaison de données (DLL) sont spécifiées dans la norme ISO-118981.
Les fonctionnalités de CAN incluent :
- Autorisation de plusieurs maîtres sur un bus
- Niveaux de priorité inhérents aux messages
- Arbitrage de bus en fonction de la priorité des messages
- Détection des erreurs et récupération à plusieurs niveaux
- Synchronisation des données entre les nœuds avec des sources d'horloge distinctes
CAN utilise un schéma de transmission de données de tension différentielle comportant deux états de tension de bus : « récessif » (sorties du circuit d'attaque à haute impédance) et « dominant » avec des seuils comme illustré dans le Tableau 1.
|
Tableau 1 : Niveaux de tension récessifs et dominants CAN par rapport à RS-485. Notez que la tension dominante (supérieure) correspond au « 0 » logique. (Source de l'image : Analog Devices)
Les nœuds transmettent l'état dominant pour la logique « 0 » (dans cet état, une ligne de bus (CANH) est haute et l'autre (CANL) est basse) et l'état récessif pour la logique « 1 ». Un bus CAN inactif se distingue d'un bus en mode de transmission de bits récessifs via la détection de plusieurs bits récessifs après la fin de la trame standard ou d'une trame d'erreur (Figure 1).
Figure 1 : Schéma de transmission CAN. Le mode veille est identifié par plusieurs bits récessifs. (Source de l'image : Analog Devices)
Les émetteurs-récepteurs CAN fournissent l'interface PHY différentielle entre la couche DLL, le contrôleur CAN (qui est souvent intégré dans un autre dispositif tel qu'un microcontrôleur) et le câblage physique du bus CAN. Les différents éléments requis pour mettre en œuvre une application CAN sont illustrés à la Figure 2, ainsi que leur relation avec les couches d'interconnexion de systèmes ouverts (OSI) et les fonctionnalités implémentées par chaque élément.
Figure 2 : L'émetteur-récepteur CAN forme l'interface PHY différentielle entre le contrôleur CAN et le bus CAN. (Source de l'image : Analog Devices)
CAN2.0 a été introduit en 1991 et offre un débit nominal de 500 kilobits par seconde (Kb/s). Parce que ce débit de données s'est parfois avéré insuffisant pour des événements de communication critiques, CAN-FD a été lancé en 2012. CAN-FD fournit un débit nominal allant jusqu'à 2 mégabits par seconde (Mb/s) pour des conditions de fonctionnement normales et jusqu'à 5 Mb/s pour les diagnostics ou la programmation. Notez que la communication à plus haute vitesse n'est applicable qu'à la charge utile du message ; d'autres éléments du message, tels que l'identificateur 11 bits, le contrôle par redondance cyclique (CRC) et l'accusé de réception (ACK), sont envoyés au débit CAN2.0 de 500 Kb/s.
Une autre différence entre CAN2.0 et CAN-FD réside dans la charge utile de la trame de données standard, qui passe de 8 octets pour CAN2.0 à 64 octets pour CAN-FD. Cette augmentation de la charge utile rend la communication CAN-FD plus efficace en améliorant le rapport surcharge/données. En outre, les messages qui devaient auparavant être divisés en raison de la limite de charge utile de 8 octets de CAN2.0 peuvent désormais être combinés en un seul message à l'aide de CAN-FD. De plus, la sécurité peut être renforcée via le cryptage des messages CAN-FD en raison du débit de données plus élevé et de la charge utile accrue.
Il est courant de mélanger des nœuds CAN2.0 et CAN-FD dans le même réseau car les contrôleurs CAN-FD prennent en charge les protocoles CAN2.0 et CAN-FD. Le mélange de nœuds est populaire car il permet aux réseaux hérités de migrer vers le protocole le plus rapide sur une durée prolongée. L'un des inconvénients des systèmes mixtes est le coût et la complexité supplémentaires, car les émetteurs-récepteurs doivent être capables de prendre en charge une méthode de filtrage CAN-FD sur les nœuds CAN2.0 afin de garantir qu'aucune trame d'erreur n'est générée pendant la communication CAN-FD.
Mécanismes d'erreur et arbitrage CAN
Tout nœud CAN connecté peut transmettre des données sur le bus. Pour éviter les conflits de communication, les nœuds arbitrent l'utilisation du bus afin que les messages soient transmis les uns après les autres selon leur priorité. CAN utilise un arbitrage non destructif et transparent ; le nœud qui réussit pendant l'arbitrage continue de transmettre son message de priorité plus élevée sans qu'aucun autre nœud n'interfère ou ne corrompe les informations. Un tel arbitrage est possible car la transmission d'un bit dominant écrase l'état de bus récessif.
La trame de données standard comprend un identificateur de message et plusieurs bits indicateurs. Cette information est connue sous le nom de « champ d'arbitrage ». Elle dicte l'arbitrage et, par conséquent, la priorité des messages. Les messages avec un identificateur inférieur (plus de « 0 » initiaux) ont une priorité plus élevée (Figure 3).
Figure 3 : La trame de données standard CAN comprend un identificateur de message ainsi que des bits indicateurs RTR et IDE. Ce champ d'arbitrage dicte l'arbitrage et la priorité des messages. (Source de l'image : Analog Devices)
Même avec le schéma d'arbitrage, les choses peuvent mal tourner. Pour faire face aux problèmes, le protocole CAN dispose de mécanismes permettant de prendre en charge la vérification et la gestion des erreurs. Ces mécanismes incluent :
- Vérification des bits de transmission
- Vérification CRC
- Vérifications des champs de bits de forme fixe
- Accusé de réception de message obligatoire
Les erreurs sont gérées à l'aide des mécanismes suivants :
- Trames d'erreur
- Compteurs d'erreurs
- États d'erreur des nœuds
Tout contrôleur CAN peut détecter les erreurs et réagir en déclenchant des trames d'erreur et des compteurs de nœuds d'erreur. Une trame d'erreur se distingue par l'utilisation de six bits dominants ou récessifs consécutifs. Une telle séquence est en contradiction avec les règles de transmission normales, ce qui la rend détectable par d'autres nœuds. Les nœuds transmettant des trames d'erreur envoient ensuite des bits récessifs jusqu'à ce que le bus soit détecté comme étant dans l'état récessif. Après une nouvelle transmission de sept bits récessifs, le nœud peut tenter de transmettre des trames CAN normales (Figure 4).
Figure 4 : Dans cet exemple de transmission défaillante (en raison de bits supplémentaires [1] entraînant une erreur de bits CRC), la trame d'erreur de six bits consécutifs est affichée à l'extrême droite. (Source de l'image : Analog Devices)
En plus de la transmission des trames d'erreur, chaque nœud CAN implémente des compteurs d'erreurs de transmission et de réception. Une erreur augmente le compteur de 1, tandis qu'une transmission ou une réception réussie d'un message diminue le compteur de 1. Sur la base des compteurs d'erreurs, un nœud peut être dans l'un des états suivants : erreur active, erreur passive ou bus désactivé. Dans l'état d'erreur active, le nœud peut communiquer sur le bus et envoyer des indicateurs d'erreur active lorsque des erreurs sont détectées. Un état d'erreur passive se produit lorsque le compteur dépasse 127 ; dans cet état, le nœud ne peut envoyer que des indicateurs d'erreur passive. Le nœud repasse en état d'erreur active une fois que le compteur est en dessous de 127. Si le compteur dépasse 256, le nœud entre dans l'état de bus désactivé et ne peut pas communiquer sur le bus. Les compteurs de nœuds peuvent être remis à 0 après avoir reçu 128 séquences de 11 bits récessifs consécutifs.
Importance de tests complets
Les mécanismes d'erreur et d'arbitrage de CAN aident à maintenir le fonctionnement des systèmes sur le terrain lorsque des défaillances surviennent. Cependant, un fonctionnement plus efficace est possible en concevant des systèmes destinés à limiter les erreurs de transmission et de réception. Tester le système proposé dans plusieurs scénarios opérationnels est un moyen d'identifier et de corriger les faiblesses avant le déploiement.
Une technique courante consiste à tester l'émetteur-récepteur CAN sélectionné en transmettant des trames de données standard opérationnelles typiques sur la broche TxD de l'émetteur-récepteur à l'aide d'un générateur de fonctions et en vérifiant si des erreurs se produisent. Bien qu'il s'agisse d'un test utile pour un seul nœud, il n'est pas représentatif de la manière dont un système à plusieurs nœuds avec un bus long est susceptible de fonctionner sur le terrain. Par exemple, les problèmes qui peuvent survenir avec des systèmes complexes incluent les réflexions et d'autres artefacts produits par les dérivations de circuit lors du fonctionnement à haute fréquence. Ils peuvent introduire un déphasage entre les bits.
Le mécanisme d'arbitrage de CAN ne fonctionne que si les bits sont synchronisés. Si le déphasage bit-à-bit dépasse plus de la moitié du temps de transmission d'un seul bit, la synchronisation échoue et l'arbitrage est impossible.
Dans les anciens systèmes CAN2.0 fonctionnant entre 500 Kb/s et 1 Mb/s, le temps de transmission d'un seul bit est d'une durée suffisante pour que les déphasages induits posent rarement un problème. Cependant, en raison des vitesses plus élevées de CAN-FD, les temps de transmission des bits sont raccourcis et les déphasages peuvent rapidement devenir importants.
De tels défis doivent être atténués en passant du simple test d'un seul nœud à la vérification d'une conception en dupliquant le système final complet et en le testant dans diverses conditions de fonctionnement. Bien que cette méthode prenne plus de temps et coûte plus cher que le test basique, elle se révèle plus rentable que de traiter les défaillances sur le terrain et de gérer les clients mécontents.
Un exemple pratique
Pour voir comment fonctionnent les tests de déphasage dans la pratique, considérons un système conçu avec un émetteur-récepteur CAN et un contrôleur CAN d'un fournisseur présélectionné. Le nœud est connecté à un bus de 20 mètres (m), qui prend également en charge de nombreux autres nœuds, y compris les composants CAN2.0 et CAN-FD. À des fins de test, le nœud transmet à 13,3 Mb/s, ce qui correspond à une largeur de bit de 75 nanosecondes (ns). À des fins de synchronisation et d'arbitrage, le contrôleur échantillonne à 80 % de la largeur de bit TxD, et requiert donc une largeur de bit RxD minimum de 0,8 x 75 = 60 ns, y compris le temps de montée, le temps de descente et le délai de boucle. Le composant testé a produit une largeur de bit TxD de 48 ns, résultant en une défaillance du système.
Le même test a été effectué avec un émetteur-récepteur CAN alternatif, le MAX33012EASA+ d'Analog Devices. Dans ce test, la largeur de bit TxD a été mesurée à 75 ns, et la largeur de bit RxD à 72 ns. La largeur de bit de 72 ns dépasse l'exigence de temps d'échantillonnage de 80 % de 60 ns, de sorte que la synchronisation et l'arbitrage du système fonctionnent de manière satisfaisante. Le débit de 13,3 Mb/s est plus rapide que celui utilisé par le système dans les applications cibles, démontrant qu'il est suffisamment robuste pour fonctionner dans toutes les conditions opérationnelles prévues (Figure 5).
Figure 5 : Résultats d'un test exécutant un émetteur-récepteur CAN MAX33012EASA+ à 13,3 Mb/s (largeur de bit TxD de 75 ns) sur un bus de 20 m. La largeur de bit RxD est de 72 ns, ce qui est suffisant pour garantir que le temps d'échantillonnage de 80 % (60 ns) du contrôleur est respecté et que la synchronisation est réalisée. (Source de l'image : Analog Devices)
Dépannage intégré
Le cycle de test peut être simplifié et moins coûteux en utilisant des composants qui intègrent la détection et le signalement des défaillances. Des composants tels que l'émetteur-récepteur CAN MAX33012EASA+ permettent non seulement de mettre rapidement en évidence les problèmes des circuits CAN de prototype et de pré-production, mais ils sont également utiles pour les applications où un dépannage rapide est important pour les déploiements de systèmes de contrôle en direct.
Le MAX33012EASA+ est un émetteur-récepteur CAN de +5 volts (V) qui répond aux problèmes fréquents tels que les surintensités, les surtensions et les échecs de transmission. Il offre une protection contre les défaillances jusqu'à ±65 V, ce qui le rend adapté aux applications dans lesquelles une protection contre les surtensions est requise. Une plage de tensions de mode commun de ±25 V permet la communication dans les environnements bruyants tels que ceux où se trouvent des machines lourdes. Les sorties CANH et CANL sont limitées en courant de court-circuit et protégées contre une dissipation de puissance excessive par un circuit de blocage thermique qui place les sorties du circuit d'attaque dans un état d'impédance élevée.
Le MAX33012EASA+ fonctionne jusqu'à 5 Mb/s et dispose d'une option permettant de ralentir la vitesse de balayage à 8 V/microseconde (μs) afin de minimiser les interférences électromagnétiques (EMI) et de permettre l'utilisation d'un câble parallèle ou torsadé non blindé (Figure 6).
Figure 6 : Circuit d'application MAX33012EASA+ dans un système multimode. Dans cet exemple, le microcontrôleur inclut un contrôleur CAN embarqué. (Source de l'image : Analog Devices)
La détection des défaillances de l'émetteur-récepteur CAN est activée à la mise sous tension en passant 100 transitions bas-haut via TxD (généralement une ou deux trames de données standard, selon le protocole utilisé). Une fois la détection des défaillances activée, si un problème est détecté, 16 autres transitions bas-haut sur TxD sont nécessaires pour transmettre le code d'erreur. Enfin, 10 impulsions supplémentaires sont requises pour éliminer la défaillance.
La détection d'échec de transmission est déclenchée lorsque le signal sur RxD ne correspond pas à TxD pendant 10 cycles consécutifs après l'activation de la détection des défaillances. Cela peut se produire, par exemple, lorsque les deux résistances de terminaison sont manquantes ou qu'il y a un court-circuit entre CANH et la terre ou entre CANL et VDD, ce qui fait que le signal différentiel ne répond pas aux spécifications.
Analog Devices propose la carte d'évaluation MAX33012E de plateforme Arduino et interface CANbus, qui peut être utilisée pour démontrer les fonctionnalités du MAX33012E. Bien que le dispositif présente un facteur de forme de shield Arduino, il peut être utilisé comme carte d'évaluation autonome.
Conclusion
Pour garantir le fonctionnement fiable des systèmes mixtes CAN2.0 et CAN-FD multimodes sur le terrain, il est important de tester minutieusement la conception complète. Cependant, de simples tests sur un seul nœud ne sont pas suffisants lorsqu'il s'agit de détecter des erreurs pouvant conduire ultérieurement à des défaillances sur le terrain en raison de problèmes de synchronisation susceptibles de corrompre le mécanisme d'arbitrage de la technologie. Ces tests initiaux et le dépannage ultérieur sur le terrain des systèmes CAN mixtes à plusieurs nœuds peuvent être facilités en sélectionnant des émetteurs-récepteurs CAN dotés de fonctions de détection et de signalement des défaillances intégrées.
Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.



