SEARCH2

mardi 9 février 2016

CAN

Cet article va nous permettre d'aborder le protocole CAN, nous aborderons sa mise en oeuvre dans le cadre d'échanges avec un véhicule.

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
Cela fait beaucoup de câble mais je voulais absolument conserver mon câble OBD en ceci qu'il me sert pour mon interface Mobydic.
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.







Automates TREND

Voici une présentation rapide de la technologie IQ3 de NOVAR / TREND. Ces automates programmé en langage graphique avec le logiciel SET peuvent être intgré au superviseur 963.
Nous avons deployé ces produits sur 2 chantiers, l'ensemble de sous station et la gestion technique centralisée d'un site industriel classé CEVESO 2.

Les contrôleurs IQ3 et IQ2 sont des automates dont les applications sont variables.
Les automates TREND ne sont pas destinés à la gestion de processus industriels complexes, pour cela on utilisera plutôt des solutions SCHNEIDER ou SIEMENS. Cependant les automates TREND présentent un intérêt certain.




Maintenant nous allons aborder l’architecture matérielle des contrôleurs TREND IQ3.

Ils existent plusieurs versions d’IQ3, les IQ3 Xcite, LAN et XNC ; ces automates disposent d’une interface Ethernet, ils embarquent un serveur web et peuvent supporter la technologie serveur XML. Selon les versions on peut atteindre 128 points numériques ou analogiques avec des modules d’extensions. Les points analogiques sont des signaux tensions courants ou résistances. Le module de base propose 10 entrées et 8 sorties. La version XNC propose des liaisons RS232 et RS485 supportant les protocoles Mobus, Mnus et Bacnet.

Nous avons déployés ces solutions dans des applications chauffage et GTC. Nous avons utilisés le superviseur TREND 963, une passerelle XTEND et des modems TMNH pour la GTC. Cependant nous avons apprécié tout le potentiel offert par le service XML, ces services ont permit d’interfacer la technologie TREND avec le superviseur PANORMA de la centrale d’énergie.

 Dans la section suivante nous allons nous intéresser aux entrées et sorties.
Nous aborderons ensuite les blocs fonctions et logiques qui permettent d’implémenter un programme.
Dans une troisième partie nous présenterons des exemples tirées de programme.
Nous présenterons rapidement le logiciel de programmation et la configuration des liaisons .
Enfin nous verrons quelles sont les possibilités offertes par les services HTTP et XML des contrôleurs TREND IQ3

Les entrées TOR, U, I ou R se configure en fonction des signaux a traiter. La configuration des entrées se fait par l’intermédiaire de cavaliers. Les sorties sont uniquement configurable de manière logicielle, elle délivre un maximum de 10 V et permet d’alimenter des relais d’automatisme.




La masse commune des entrées et sorties peut être séparée de la terre.

Une entrée ou une sortie dispose d’un numéro de module, 0 pour la base de 1 à 15 pour une extension et un numéro de voie ou canal.

Les entrées TOR utilisent des contacts libres de potentiel, l’automate alimente le contact NO ou NF. Dans ce mode une diode signale l’état de l’entrée, allumée contact fermée, éteinte contact ouvert..On raccorde les contacts entres les bornes 0 et celles portant les numéros de l’entrée

 Exemple le contact LSH se branche en entree 1 (module 0 voie 1) sur les bornes 2 et 3;
un contact LSL (module 0, voie 2) se branche entre 5 et 6

Les tensions analogiques 2/10V et 0-10V se raccordent de manière similaire aux entrées TOR, entre les bornes portant le numéro de voie du module  et les borne 0, Prêter la plus grande attention aux polarités

Les entrées courant 4/20 et 0/20 mA , le câblage varie selon les technologies de capteurs : 2 ou 3 fils. L’IQ3 dispose d’une source de tension 24V que l’on peut utiliser pour alimenter les capteurs.
Dans le cas d’un capteur deux fils on branche le + du capteur sur la borne 24Vcc et le – du capteur sur la borne portant le numéro de l’entrée, les masses de l’alimentation 24V et celle des entrées étant commune le courant circule.
On peut renvoyer le 24Vcc sur les bornes + des entrées. Il faut réaliser un pont entre les bornes 24V et P du bornier A

. Les entrées Résistance fonctionnent avec des résistances de 1 à 100K mais pas avec des PT100.

Pour les grandeurs analogiques on peut définir une mise à l’échelle de la mesure, ceci est fait en définissant un type de capteurs ;
Prenons pour exemple une tension 0-10V correspondant au signal de charge d’un groupe froid, nous définirons une mesure de 0 à 1