Un bus CAN (Controller Area Network) est un système de bus série haute intégrité pour la mise en réseau de périphériques intelligents. Les bus et périphériques CAN sont des composants courants dans les systèmes automobiles et industriels. Par exemple, le protocole CAN facilite la communication efficace entre les capteurs et les unités de contrôle électronique (ECU) pour prendre en charge le système avancé d'aide à la conduite. En utilisant un périphérique d'interface CAN, vous pouvez écrire des applications LabVIEW pour communiquer avec un réseau CAN.
Le protocole CAN a été développé en 1985 par Bosch pour simplifier les réseaux embarqués. Dans le passé, les constructeurs automobiles connectaient les appareils électroniques des véhicules en utilisant des systèmes de câblage point à point. Les fabricants ont commencé à utiliser de plus en plus d’appareils électroniques dans les véhicules, ce qui a produit des faisceaux de fils encombrants lourds et coûteux. Ils ont ensuite remplacé le câblage dédié par des réseaux embarqués, ce qui a réduit le coût, la complexité et le poids du câblage. CAN, un système de bus série haute intégrité pour la mise en réseau de périphériques intelligents, est devenu le réseau embarqué standard. L'industrie automobile a rapidement adopté la norme CAN et, en 1993, elle est devenue la norme internationale connue sous le nom d'ISO 11898. Depuis 1994, plusieurs protocoles de plus haut niveau ont été normalisés sur CAN, comme CANopen et DeviceNet. D'autres marchés ont largement adopté ces protocoles additionnels, qui sont maintenant des normes pour les communications industrielles. Ce white paper porte sur le CAN en tant que réseau embarqué.
CAN fournit un réseau durable et peu coûteux qui aide plusieurs périphériques CAN à communiquer entre eux. Un avantage à cela est que les unités de contrôle électronique (ECU) peuvent avoir une seule interface CAN plutôt que des entrées analogiques et numériques à chaque périphérique du système. Cela réduit le coût global et le poids des automobiles.
Chacun des périphériques du réseau possède une puce de contrôleur CAN et est donc intelligent. Tous les périphériques du réseau voient tous les messages transmis. Chaque périphérique peut décider si un message est pertinent ou s'il doit être filtré. Cette structure permet de modifier les réseaux CAN avec un impact minimal. Des nœuds non émetteurs supplémentaires peuvent être ajoutés sans modification au réseau.
Chaque message a une priorité, donc si deux nœuds essaient d'envoyer des messages simultanément, celui qui a la priorité la plus élevée est transmis et celui qui a la priorité la plus basse est reporté. Cet arbitrage n'est pas destructif et entraîne une transmission sans interruption du message à plus haute priorité. Cela permet également aux réseaux de respecter des contraintes de cadencement déterministes.
La spécification CAN inclut un code de redondance cyclique (CRC) pour vérifier les erreurs sur le contenu de chaque trame. Les trames comportant des erreurs sont ignorées par tous les nœuds et une trame d'erreur peut être transmise pour signaler l'erreur au réseau. Les erreurs globales et locales sont différenciées par le contrôleur, et si trop d'erreurs sont détectées, les différents nœuds peuvent arrêter de transmettre des erreurs ou se déconnecter complètement du réseau.
Figure 1 : Les réseaux CAN réduisent considérablement le câblage.
Le CAN a d’abord été créé pour une utilisation automobile, son application la plus courante est donc la mise en réseau électronique à bord des véhicules. Cependant, comme d'autres industries ont réalisé la fiabilité et les avantages du CAN au cours des 20 dernières années, elles ont adopté le bus pour une grande variété d'applications. Les applications ferroviaires telles que les tramways, les tramways, les métros, les chemins de fer légers et les trains longue distance intègrent le CAN. Vous trouverez des exemples de périphériques CAN reliant les unités de porte, les contrôleurs de frein, les unités de comptage de passagers, etc. à différents niveaux des réseaux multiples à l’intérieur de ces véhicules. Le CAN a également des applications dans les avions dotés de capteurs d’état de vol, de systèmes de navigation et de PC de recherche dans le cockpit. De plus, vous pouvez trouver des bus CAN dans de nombreuses applications aérospatiales, allant de l’analyse des données en vol aux systèmes de contrôle des moteurs d’avion tels que les systèmes de carburant, les pompes et les actionneurs linéaires.
Les fabricants d'équipements médicaux utilisent le CAN comme réseau embarqué dans les dispositifs médicaux. En fait, certains hôpitaux utilisent le CAN pour gérer des salles d'opération complètes. Les hôpitaux contrôlent les composants de la salle d’opération tels que les lumières, les tables, les caméras, les appareils à rayons X et les lits de patients avec des systèmes basés sur CAN. Les ascenseurs et les escaliers mécaniques utilisent des réseaux CAN embarqués, et les hôpitaux utilisent le protocole CANopen pour relier les appareils de levage, tels que les panneaux, les contrôleurs, les portes et les barrières lumineuses, les uns aux autres et les contrôler. CANopen est également utilisé dans des applications non industrielles telles que les équipements de laboratoire, les caméras de sport, les télescopes, les portes automatiques et même les machines à café.
CAN a plusieurs couches physiques différentes que vous pouvez utiliser. Ces couches physiques classifient certains aspects du réseau CAN, tels que les niveaux électriques, les schémas de signalisation, l’impédance du câble, les débits en bauds maximaux, etc. Les couches physiques les plus courantes et les plus utilisées sont décrites ci-dessous :
La CAN haute vitesse est de loin la couche physique la plus courante. Les réseaux CAN haute vitesse sont implémentés avec deux fils de liaison et permettent de communiquer à des vitesses de transfert pouvant atteindre 1 Mbit/s. Les autres noms de CAN haute vitesse comprennent CAN C et ISO 11898-2. Les dispositifs CAN haute vitesse typiques comprennent les systèmes de freinage antiblocage, les modules de contrôle moteur et les systèmes d’émission. CAN avec débit de données flexible (CAN FD) est la prochaine génération de communication CAN haute vitesse avec des normes en constante évolution pour des débits de données plus élevés. NI a activé des vitesses allant jusqu'à 8 Mbit/s en utilisant les émetteurs-récepteurs TJA1041 et TJA1043 via le driver NI-XNET. Au fur et à mesure que les fournisseurs d’émetteurs-récepteurs remplissent les conditions requises pour les vitesses CAN FD, NI mettra à jour sa documentation si nécessaire.
Les réseaux CAN basse vitesse/à tolérance de panne sont également implémentés avec deux fils, peuvent communiquer avec des périphériques à des débits allant jusqu’à 125 kbit/s et offrent des émetteurs-récepteurs avec des capacités de tolérance de panne. D'autres noms pour CAN basse vitesse/tolérant aux pannes incluent CAN B et ISO 11898-3. Les dispositifs de confort sont généralement des dispositifs à faible vitesse/à tolérance de panne dans une automobile. Les fils qui doivent franchir la porte d'un véhicule sont peu rapides et tolérants aux pannes compte tenu de la contrainte inhérente à l'ouverture et à la fermeture d'une porte. De plus, dans les situations où un niveau de sécurité avancé est souhaité, comme avec des feux stop, CAN basse vitesse/tolérant aux pannes offre une solution.
Les interfaces CAN monofilaires peuvent communiquer avec des périphériques à des vitesses allant jusqu'à 33,3 kbit/s (88,3 kbit/s en mode haute vitesse). Les autres noms de CAN monofilaire incluent SAE-J2411, CAN A et GMLAN. Les périphériques monofilaires typiques d'une automobile ne nécessitent pas de hautes performances. Les applications courantes incluent les dispositifs de confort tels que les réglages de siège et de rétroviseur.
Avec les produits matériels CAN de National Instruments, vous pouvez configurer les interfaces CAN sélectionnables par logiciel pour utiliser n'importe lequel des émetteurs-récepteurs embarqués (CAN haute vitesse, faible vitesse/tolérant aux pannes ou CAN monofilaire). Le matériel à plusieurs émetteurs-récepteurs offre la solution idéale pour les applications qui requièrent une combinaison de normes de communication. Avec du matériel CAN sélectionnable par logiciel, vous pouvez également choisir votre propre émetteur/récepteur CAN externe.
Le logiciel NI-XNET est inclus avec les périphériques PCI/PXI-851x et NI 986x et peut être téléchargé gratuitement sur ni.com. Ce nouveau driver est utilisé pour développer des applications CAN, LIN (Local Interconnect Network) et FlexRay dans NI LabVIEW, NI LabWindows/CVI et C/C++ sous Windows et LabVIEW Real-Time OS. Faisant partie de la plate-forme NI-XNET, les périphériques NI 851x et NI 986x fonctionnent bien pour des applications qui nécessitent une manipulation temps réel haute vitesse de centaines de trames et de signaux, telles que la simulation HIL (hardware-in-the-loop), le prototypage rapide de systèmes de contrôle, la surveillance du bus, le contrôle/commande d’automatismes, etc.
La plate-forme NI-XNET combine une série d'interfaces CAN, LIN et FlexRay hautes performances avec l'API NI-XNET, un ensemble commun de fonctions faciles à utiliser pour lire et écrire des trames et des signaux CAN, LIN et FlexRay.
Les interfaces NI-XNET regroupent les performances associées à la programmation de bas niveau par microcontrôleur ainsi que la vitesse et la puissance du développement des systèmes d'exploitation Windows et LabVIEW Real-Time. Le moteur DMA piloté par périphérique NI-XNET en instance de brevet réduit la latence du système, un point douloureux courant pour les interfaces CAN sur PC, de millisecondes à microsecondes. Le moteur permet au processeur embarqué de faire passer des trames et des signaux CAN entre l'interface et le programme utilisateur sans interruption du processeur, en minimisant la latence de messagerie, en libérant du temps du processeur hôte pour le traitement de modèles et d'applications complexes.
Pour en savoir plus sur les avantages et les applications de NI-XNET, reportez-vous à l'aperçu de NI-XNET CAN, LIN et FlexRay Platform Overview.
National Instruments inclut le driver NI-CAN avec toutes les interfaces National Instruments Legacy CAN et le télécharge gratuitement sur ni.com. Avec d'autres interfaces CAN, vous ne pouvez tirer parti que d'un petit pourcentage des fonctionnalités de la carte si vous n'achetez pas l'outil logiciel clé en main. Cependant, toutes les fonctionnalités de la carte CAN de National Instruments sont entièrement exposées, de sorte que vous pouvez développer vos propres applications personnalisées dans le langage de programmation de votre choix. Le driver NI-CAN fournit des fonctions de haut niveau et faciles à utiliser pour vous aider à développer rapidement des applications CAN complètes, ce qui vous fait gagner du temps et de l'argent.
Deux API sont exposées avec le driver NI-CAN. Frame API est l'API d'origine pour la programmation CAN. Dans l'API Frame, vous pouvez transmettre et recevoir des trames CAN qui contiennent des octets de données brutes. Votre programme doit analyser et mettre à l'échelle ces octets pour produire des unités ingénieur mises à l'échelle. Pour en savoir plus sur la programmation avec l'API Frame, consultez la section "Utilisation de l'API Frame" du Manuel NI CAN Hardware and Software.
NI a d'abord introduit l'API Channel dans le driver NI-CAN 2.0. Vous pouvez lire et écrire dans des voies CAN en utilisant des noms de voies définis dans des fichiers de base de données (.dbc ou .ncd). Channel API offre les avantages suivants :
Pour en savoir plus sur la programmation avec l ' API Channel, reportez-vous à la documentation NI-CAN Channel API.
Les périphériques CAN envoient des données sur le réseau CAN par paquets appelés trames. Une trame CAN comprend les sections suivantes.
Figure 2 : Le format de trame CAN standard.
Figure 3 : Les signaux peuvent être définis comme un certain nombre de bits à l'intérieur d'une trame CAN.
Les fichiers de base de données CAN sont des fichiers texte qui contiennent des informations de mise à l'échelle pour les trames CAN et les définitions de signaux. Le logiciel d'édition de base de données NI-XNET de National Instruments reconnaît les fichiers de base de données FIBEX (.xml), les fichiers de base de données vectorielles (*.dbc) et les fichiers de base de données CAN de National Instruments (*.ncd).
Pour chaque signal, les bases de données CAN définissent les règles de conversion en unités ingénieur. Les données suivantes sont stockées dans des bases de données :
Vous pouvez utiliser ces informations pour convertir facilement les informations de trame "brutes" (généralement des octets) en valeur "du monde réel". La figure ci-dessous illustre un exemple de cette conversion.
Figure 4 : Toutes les données de mise à l'échelle nécessaires sont contenues dans une base de données pour convertir des trames en signaux.
Les fichiers de base de données CAN peuvent contenir des définitions de trames et de signaux pour un véhicule entier. Chaque réseau a son propre fichier de base de données. De plus, ces fichiers de base de données sont spécifiques au fournisseur et généralement confidentiels.
En utilisant un fichier de base de données pour de nombreuses trames du réseau CAN, de nombreuses API CAN (comme NI-XNET) peuvent convertir automatiquement les informations de trame directement en valeur réelle. Cela simplifie le développement d'applications car vous n'avez jamais à vous soucier des valeurs brutes des trames.
Comme indiqué précédemment, CAN est un réseau pair à pair. Cela signifie qu'aucun maître ne contrôle quand des nœuds individuels ont accès à la lecture et à l'écriture de données sur le bus CAN. Lorsqu'un nœud CAN est prêt à transmettre des données, il vérifie si le bus est occupé, puis écrit simplement une trame CAN sur le réseau. Les trames CAN transmises ne contiennent pas d'adresses du nœud émetteur ou d'un des nœuds récepteurs prévus. À la place, un ID d'arbitrage unique sur tout le réseau étiquette la trame. Tous les nœuds du réseau CAN reçoivent la trame CAN et, en fonction de l'ID d'arbitrage de cette trame transmise, chaque nœud CAN du réseau décide s'il accepte la trame.
Si plusieurs nœuds essaient de transmettre un message sur le bus CAN en même temps, le nœud ayant la plus haute priorité (ID d'arbitrage le plus bas) obtient automatiquement l'accès au bus. Les nœuds à priorité inférieure doivent attendre que le bus soit disponible avant d'essayer de transmettre à nouveau. De cette manière, vous pouvez implémenter des réseaux CAN pour assurer une communication déterministe entre les nœuds CAN.
Figure 5 : CAN contient une priorité intégrée pour les messages afin d'éviter les conflits.
NI fournit une variété d'outils matériels et logiciels pour le développement d'applications CAN. NI propose des interfaces CAN pour différentes platesformes, notamment PCI, PXI, USB, CompactRIO et CompactDAQ (Série C). Pour PCI, PXI et la Série C, vous pouvez choisir entre haute vitesse/FD, basse vitesse/tolérant aux pannes et couche physique monofilaire. Pour PCI et PXI, National Instruments fournit la première interface CAN sélectionnable par logiciel de l'industrie qui contient un émetteur-récepteur haute vitesse/FD, basse vitesse/tolérant aux pannes et monofilaire sur chaque carte, pour chaque port, sur un seul périphérique. Cela signifie que vous pouvez simplement sélectionner dans votre logiciel quel mode vous souhaitez utiliser.
De plus, NI fournit chacun de ces périphériques avec le driver approprié. Le driver d'interface NI CAN est décrit ci-dessous.
National Instruments ECU Measurement and Calibration Toolkit étend les capacités des environnements de développement NI LabVIEW, NI LabWindowsTM/CVI et Microsoft C/C++ afin de supporter les applications de mesure et d'étalonnage, pour la conception et la validation des unités de commande électronique (ECU). ECU Measurement and Calibration Toolkit fournit des fonctions de haut niveau et faciles à utiliser basées sur le protocole d'étalonnage CAN (CCP) que les concepteurs, testeurs et ingénieurs ECU peuvent utiliser pour construire leurs propres applications de mesure et d'étalonnage personnalisées.
La marque LabWindows est utilisée sous licence Microsoft Corporation. Windows est une marque déposée de Microsoft Corporation aux États-Unis et dans d’autres pays.