ELM327

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

L ELM327 est un microcontroleur produit par la société ELM Electronics qui permet de décoder le langage OBD (On Board Diagnostics) qui est implanté d'une façon réglementaire (donc obligatoire au sens de la loi) dans toutes les voitures modernes. La norme OBD, qu'on appelle aussi "diagnostic réglementaire", s'applique à n'importe quelle voiture à essence (allumage commandé) vendue en Europe depuis 2001, et à n'importe quelle voiture diesel (allumage par compression) vendue depuis octobre 2003.

L'ELM327 est implanté sur un PIC18F2480 micro-contrôleur PIC à 8-bit de la société Microchip Technology. Il s'agit d'un produit "ancien", aux performances limitées, tout particulièrement quand le véhicule à diagnostiquer utilise le Protocole CAN Controller Area Network, qui est protocole quasi systématiquement utilisé à partir de 2005. En effet le très haut débit de données utilisé par le réseau multiplexé CAN (500 000 bit/s) combiné au très grand nombre de messages qui sont parfois segmentés ISO 15765-4 fait que le microcontrôleur 8 bit se trouve poussé au maximum de ses possibilités, et se retrouve fréquemment mis en défaut (message perdus, ré-assemblage d'un message segmenté impossible, problème de connexion, etc.) Néanmoins, le jeu de commande ELM 327 est devenu, au fil du temps, un quasi-standard car il est présent dans de nombreuses interfaces de diagnostic OBD vers PC.

Fonctionnalités[modifier | modifier le code]

L'ELM 327 crée une couche d'abstraction qui permet de décoder le langage de bas niveau présent sur la voiture, et de transmettre des messages plus intelligibles par UART. Ces messages sont alors pris en charge par un outil de diagnostic, ou un logiciel de diagnostic connecté par USB, RS-232, bluetooth ou Wi-Fi.

Typiquement de tels logiciels de diagnostic permettent de:

  • Relever les codes défauts (DTC) et de les effacer (extinction du voyant défaut)
  • Afficher en temps réel certains paramètres moteurs (Fonction "oscilloscope")
  • Espionner le Bus CAN si le débit de l'interface le permet (possible en 8bits et 16 bits)

Protocoles pris en charge par ELM327[modifier | modifier le code]

  • SAE J1850 PWM (41.6 kbaud)
  • SAE J1850 VPW (10.4 kbaud)
  • ISO 9141-2 (5 baud init, 10.4 kbaud)
  • ISO 14230-4 KWP (5 baud init, 10.4 kbaud)
  • ISO 14230-4 KWP (fast init, 10.4 kbaud)
  • ISO 15765-4 CAN (11 bit ID, 500 kbaud)
  • ISO 15765-4 CAN (29 bit ID, 500 kbaud)
  • ISO 15765-4 CAN (11 bit ID, 250 kbaud)
  • ISO 15765-4 CAN (29 bit ID, 250 kbaud)

Jeu de commande ELM327[modifier | modifier le code]

Le jeu de commande d'origine ELM327 est proche de celui classiquement utilisé pour un modem. On peut télécharger le document sur le site de la société ELM Electronics.

Produits alternatifs à ELM327[modifier | modifier le code]

Le STN1110 de OBD Solutions implémente le jeu de commande ELM327 sur un microcontrôleur 16 bit PIC24HJ128GP502, et complémente ce dernier par de nouvelles fonctions avancées.

Version Pirate[modifier | modifier le code]

La version 1.0 de l'ELM327 n'incluait aucun système de protection, et en conséquence le code injecté dans le microcontrôleur a pu être extrait. De nombreuses copies à très bas coût, le plus souvent en provenance d'Asie, ont alors inondé le marché. Ces versions "clonées" comportent donc un jeu de commande de version 1.0, même si elles s'identifient, par exemple, en version 1.5. On notera toutefois que ces versions clonées sont tout à fait opérationnelles et compatibles avec la plupart des logiciels de diagnostic...

Liens externes[modifier | modifier le code]