Présentation
CAN a été développé depuis 1992 par des industriels, ce protocole présente de nombreux avantages : réseau multi maitre, mise en œuvre aisé, débits des transmissions. Il devient une référence en industrie et dans le monde automobile.Dans cet article nous n'aborderons pas les spécifications du bus CAB.
On trouve sur Internet une littérature abondante sur le sujet; nous citerons simplement des sources et fournirons des liens vers des sites contenant ce type d'informations.
Pour résumer CAN est une recommandation, définissant le protocole des couches physiques au niveau transport.
Pour mettre en œuvre un bus CAN il suffit d'une paire torsadée et blindée.
Soulignons tout de même qu'avec une vitesse de plus de 500 kbauds on prêtera une attention particulière à la qualité des connections.
Mise en œuvre
Nous allons mettre en œuvre une liaison CAN entre notre ordinateur et une voiture.les communications se feront au moyen d'une interface CANUSB de Lawicel, nous avons choisis cette solution plutôt que d'autre produits type ELM,MOBYDIC car cette interface n'est pas dédié au seuls automobiles.
En outre l'interface CANUSB propose deux types de driver, un port série virtuel et des API contenues dans une DLL.
Le port série virtuel est très utile pour les tests, on a un aperçu rapide des transmissions CAN. Il est mis en œuvre aisément avec des logiciels terminal de type Realterm, Hyperterminal ou autre.
Les API, elles ne vous seront utile que pour réaliser un logiciel mais c'est là le mode d'exploitation le plus performant surtout si vous envisager d'envoyer des trames CAN.
Le matériel
Pour notre application nous avons utiliser les éléments suivants:- une interface CANUSB et un PC avec un logiciel de type CAN Monitor Pro
- un câble "maison" qui nous permet d'adapter le câblage
- un câble OBD, avec deux fiches l'une en DB9 et l'autre en SAE J1962, que nous branchons sur le port diagnostique du véhicule
- deux connecteurs DB9, un male et un femelle
Ce câble est apparemment un modèle standard, cependant j'ai préféré contrôler le câblage avant pour éviter tout dégât au véhicule, a l'interface CANUSB ou au PC. Je vous invite à procéder de la même manière.
Le câblage
Le câble maison ne présente pas de difficulté particulières, ce n’est pas du CMS, il faut simplement faire attention à la qualité des soudures.Je vous conseille d'employer un câble de 2 m avec un minimum de 2 paires torsadées, blindées. Utiliser une paire pour les transmissions CAN et l'autre pour la masse. Relier la tresse à la masse à chaque extrémité du câble sur les DB9.
On part d'une DB9 Mâle sur la CAN USB, on branche un câble "maison" avec un DB9 Femelle. A l'extrémité du câble "maison" on retrouve un DB9 mâle qui se raccorde sur le câble "OBD-2" sur le connecteur DB9 femelle.
Le câblage du cable maison est le suivant :

Voici le schéma du connecteur DB9 mâle due l'interface CANUSB

Le schéma du cable OBD-2, avec le DB9 femelle

Maintenant pour rapel le brochage des DB9, notez que les brochages sont données connecteurs vue coté broches ou vue de face. La vue de face d'un DB9 mâle correspond à la vue arriere ou coté soudure d'un DB9 femelle et inverséeent.

Communications protocole OBD sur bus CAN
Les essais de communication sont
réalisés avec CAN monitor Pro un excellent outil très flexible.
Quelques notions de CAN pour commencer.
Pour la liaison deux paires torsadées
dans un câble blindé suffisent, Les trames ont un entête, des
données et un contrôle de redondance cyclique pour contrôler
l’intégrité des données
Notez qu’avec le CANUSB la gestion
des CRC est totalement transparente. Mais nous essaierons de
développer les méthodes liés au contrôle de la qualité des
transmissions.
Pour le moment nous nous concentrons
sur le protocole CAN, les trames sont émisses par des équipements
disposant d’adresse ou ID. L’entête contient des informations
sur la trame et sont format. Un DLC permet de connaitre le nombre
d’octets de données. Les données sous forme de suite d’octet
contenant des informations structurées.
Tout d’abord l’adressage CAN est
dit 11 ou 29 Bit selon les réseaux et équipements interconnectées.
La priorité sur le bus CAN est donnée
aux trame sont les ID sont les plus bas. Certaines adresses sont
normalisées et réservé ç un usage particulier. Pour ce qui
concerne la Prius 3 nous disposons de deux calculateurs qui
communiquent selon le protocole OBD2. ODB 2 , plus particulièrement
la norme ISO15495 définissent l’adressage des équipements OBD
communiquant sur un bus CAN. Les équipements de test peuvent
utiliser une adresse générique x7DF pour lire des données du
véhicule, sur la copie d’écran ci-dessous on voit que tous les
calculateurs supportant le protocole OBD répondent à la requête
émises par l’interface de test qu’est le CANUSB. Ici les deux
calculateurs ont les adresses x7E8 et x7EA.
La norme prévoit la possibilité de ne
communiquer qu’avec l’un des 8 calculateurs prévues. Ci après
nous nous intéressons au calculateur répondant avec un ID x7E8, la
norme préconise que ce soit le calculateur du moteur, nous
chercherons plus d’informations pour nous assurer que ce soit bien
cela.
On détermine les adresse de la manière
suivante : Adresse test = x7E0 + (n-1) pour le calculateur x7E0
+ (n-1) + 8. Voir le tableau ci après
ECU | Adr Test | Adr ECU |
1 | 0x07E0 | 0x07E8 |
2 | 0x07E1 | 0x07E9 |
3 | 0x07E2 | 0x07EA |
4 | 0x07E3 | 0x07EB |
5 | 0x07E4 | 0x07EC |
6 | 0x07E5 | 0x07ED |
7 | 0x07E6 | 0x07EE |
8 | 0x07E7 | 0x07EF |
Les entêtes de trame ou headers
contiennent d’autres informations nous renseignant sur la nature de
la trame et ses données. La norme CAN prévoit 4 types de trame..
Nous nous focalisons sur les trames de données, nous évoquerons les
autres types de trame par la suite.
Des bits nous indiquent le type de
trame notamment RTR pour les trames requête.
Le DLC nous indique la longueur des
donnes de la trame en octet.
Les données sont codées en octet,
elles ne peuvent dépasser 8 octets.
Nous allons aborder maintenant la
description d’une trame capturée sur le bus CAN.
Aucun commentaire:
Enregistrer un commentaire