OBD2-NG et les codes AT + utilisation de OBD-DIAG

Postby smba38 » Sat Feb 20, 2010 12:00 am

Bonjour,

Le kit OBD2-NG d’Elektor de septembre 2009 utilise le module diamex DXM1.

C’est ce module qui est connecté à la prise OBD du véhicule.

Le microcontrôleur AT90CAN128 pour sa part se charge :
De commander via des commandes AT le DXM1.
De gérer l’interface IHM via l’afficheur LCD.

Elektor a prévu au mois d’avril 2010 de proposer une extension Bluetooth au kit OBD2-NG.
Cette extension va permettre de relier le kit à un PC (Module BTM-222).

On pourra alors envoyer des commandes AT depui un PC via une liaison bluetooth :
A partir d'une émulation de terminal ASCII.
En utilisant un logiciel qui reconnaît les codes AT du DXM1.

Mais on peut en attendant se connecter depuis un pc en utilisant le connecteur ISP à 10 broches prévu pour programmer le Microcontroleur AT90CAN128.

En effet les broches DMX_RX, DMX_TX du DXM1 sont également présentes sur ce connecteur (multiplexage avec les broches utilisées pour la programmation via le protocole SPI) .

J’ai relié un MAX3232 (IN, OUT, VCC et GND) sur la prise ISP et j’ai récupéré le trafic entre de DXM1 et l’AVR.

Attention ne pas oublier de fermer le cavalier J3 qui se trouve en haut à droite en dessus du connecteur ISP SV1 pour fournir une tension au MAX3232.

Une petite particularité de l’AT90CAN128, les broches MISO et MOSI ne sont pas utilisées pour la programmation, il faut utiliser les broches PDO et PDI , c’est pour cette raison que le connecteur ISP est relié à ces broches.).


Un exemple du trafic capturé.

DIAMEX DXM1 v1.7
>ATE0
OK
>1 = SAE J1850 / PWM
>NO DATA
>2 = SAE J1850 / VPWM
>NO DATA
>5 = ISO 14230-4, KWP2000 (Fast Init)
>ERROR (36)
>OK
>3 = ISO 9141-2
>ERROR (30)
>6 = ISO 15765-4, CAN (11/500)
>ERROR (40)
>7 = ISO 15765-4, CAN (29/500)
>ERROR (40)
>8 = ISO 15765-4, CAN (11/250)
>ERROR (40)
>9 = ISO 15765-4, CAN (29/250)
>ERROR (40)

Les erreurs sont normales car la prise OBD n’était pas branchée pour ce test.

La connexion RS232 avait pour paramètres 19200 bauds 8 bits 1 stop.

Par contre impossible d’envoyer des ordres AT au DXM1.
C’est est normal car le Microcontrôleur AVR est déjà connecté sur les RXD et TXD du DMX1.

Une analyse du source func_bluetooth.c montre que cette fonction active ou désactive le bluetooth.
Sur activation du bluetooth :
Désactivation de l’UART du AT90CAN128.
Activation du module bluetooth BTM-222 (BTM_PWR=1).
Boucle en attente de la touche Escape.
Copie de BTM_OUT sur DXM_IN.
Copie de DXM_OUT sur BTM_IN.
Sur désactivation de bluetooth (touche escape).
Désactivation du module bluetooth (BTM_PWR=0)
Initialisation de l’UART du AT90CAN128.
Sortie de la fonction.

Lorsque le bluetooth est actif toutes les données envoyées bar le DXM1 sont transférées sur le bluetooth et toutes les données reçues du bluetooth sont envoyées sur le DXM1 (c’est l’AT90CAN128 qui se charge de la copie).

Par contre pour initialiser le module bluetooth aucune commande AT n’est envoyée vers le module seule la broche BTM_PWR est forcée à 1.


Comme sur la prise ISP on peut accéder au RESET de l’AVR, il est possible d’inhiber celui-ci en connectant le RESET à la masse.

Et ensuite miracle on peut envoyer des commandes AT (9600 bauds cette fois ci).

Voir le lien en annexes pour télécharger la documentation du DXM1.

>at!10
11.6V
>atp
AUTO 6 = ISO 15765-4, CAN (11/500)
>atv
E1 L1 H0 M0 OF0 KW1 SW19 SF00 SB0 (9600)
HEADER: C0 33 F1
WAKEUP: C1 33 F1 3E
CA1 CC1
CAN-BAUD: 015A0007
CAN-TXID: 18DB33F1
CAN-RXID: 18DAF100
CAN-MASK: 1FFFFF00
CAN-FLOW: 18DA00F1
FLOWDATA: 30 00 0A 00

>atp6
6 = ISO 15765-4, CAN (11/500)
Pour lire les données du bus can le Nb de tours du moteur code Pid 0C est lu par 010C .( attention facteur de 0,25, il faut diviser par 4)
>010C
41 0C 1C 22
>
41 0C 0C 6E



>0100
41 00 98 39 80 11 ( 20 premiers bits des pids Supportés 1er bit après le 4100 dans notre cas PID 1,4,5,B,C,D,10,11 car 98398000 en hexa = 1001 1000 0011 1001 1000 en binaire)
>0100
41 00 98 39 80 11
>0101
41 01 00 06 80 00
>0101
41 01 00 06 80 00
>0111
41 11 23
>
41 11 25

>0104
41 04 79
>
41 04 A9
>0110
41 10 02 13
>
41 10 05 8B
>0123
41 23 08 FA
>
41 23 0A 17
>0121
41 21 00 00
>
41 21 00 00
>
41 21 00 00

On peut donc manuellement piloter le DXM1.

Mais pour plus de confort, on peut utiliser un logiciel qui reconnaît le DMX1 par exemple OBD-DIAG.

Voir en pièce jointe des captures d’écrans d’OBD-DIAG.

Nous en avons pas fini avec les commandes AT car l’extension bluetooth utilisant le module BTM-222 se configure par l’intermédiaire de commande AT.

L’inteface IHM du kit OBD2-NG est déjà prévu pour configurer via des commandes AT le BTM-222.

Comme sur la platine de l’OBD2-NG il est prévu des emplacements pour des extensions :
Microcontrôleur AT90USB162 (avec un connecteur ISP).
Horloge RTC.
Mémoire flash.
Prise USB.
Module bluetooth BTM-222 ( Elektor Avril 2010).

Il y aura jusqu’à 4 microcontrôleurs sur le kit avec pour chacun une version de bios qui peut évoluer.
Pour l’instant les versions sont les suivantes :
DXM1 v-17
AT90CAN128 V1.2.1
BTM-222 ? (pas encore testé)
Extension (pas encore de bios en développement).

Pour le DXM1 les broches MOSI et MISO ne sont pas câblées, il existe sur le site du constructeur (http://www.dxm.obd-diag.net ) un programme pour faire une mise à jour du DXM1 mais ce programme travaille sur la version 1.6 alors que la version livrée avec le kit d’Elektor est la 1.7

Pour le kit OBD2-NG la version livrée est la 1.2.1 celle téléchargeable sur le site d’Elektor est la 1.0.8 ( Version sans le bluetooth).

Annexes :

Voici d’autres liens.
Le site du constructeur.
http://www.dxm.obd-diag.net/html/download.html

Sources de la version 1.2.1 du kit OBD2-NG avec le support bluetooth BTM-222 (Commentaires en allemand).
http://www.er-forum.de/obd-diag-dl/index.php?action=downloadfile&filename=HandheldOpen_121.zip&directory=DXM%20-%20Diamex-OBD2-Modul/open-source%20handheld&


Des infos sur les modules DXM1 et BTM-222 ( en anglais).
http://www.er-forum.de/obd-diag-dl/index.php?&direction=0&order=&directory=DXM%20-%20Diamex-OBD2-Modul

Bonnes commandes AT.

Cordialement.

SMBA38.
Attachments
obd-diag-copies--crans.pdf
(376.69 KiB) Downloaded 228 times
smba38
 
Posts: 8
Joined: Mon Jan 20, 2014 7:53 am

Postby pat074 » Mon Feb 22, 2010 12:00 am

Bonjour,

ce petit objet est interessant mais pourquoi il n'affiche pas les donné d'un ordinateur de bord comme la consommation instantané, moyenne et tout ces detail fort interessant

peut on mettre à jour le programme pour avoir acces a ces donné

merci de vos réponses
pat074
 
Posts: 9
Joined: Mon Jan 20, 2014 7:53 am

Postby smba38 » Tue Feb 23, 2010 12:00 am

Bonjour,

Le kit OBD2-NG est autonome il ne peut que récupérer les données OBD2 et les afficher sur son écran LCD de deux lignes.

Par contre au mois d’avril Elektor va proposer une extension Bluetooth au kit OBD2-NG qui va permettre de se connecter à distance sur le nodule OBD2-NG en utilisant un logiciel qui peut être bien plus puissant que le petit programme embarqué sur le kit OBD2-NG.

Ce logiciel par exemple OBD-DIAG peut permettre de tracer des courbes, d’analyser les données (voir le fichier PDF joint au message précédent)..

Attention chaque constructeur ne livre qu’un certain nombre de données ces données ne sont pas nécessairement suffisantes pour afficher toutes les infos d’un calculateur de bord (Les données Quantité d’essence restante, kilométrage en cours etc ne sont pas forcément délivrées).

Il est toujours possible de modifier le programme en C du kit car on dispose des sources (En Open source).

Cordialement.

SMBA38.
smba38
 
Posts: 8
Joined: Mon Jan 20, 2014 7:53 am

Postby pat074 » Tue Feb 23, 2010 12:00 am

la consommation doit etre un simple calcul fonction des differents capteur connecté à l'ordinateur de bord

il ya de plus bien plus de capteur que ceux montré par l'afficheur elektor pourquoi ceux ci sont caché ?

en attendant une extension ou un nouveau firmware impatiement je n'ai malheureusement pas les connaissances pour modifier le programme moi même
pat074
 
Posts: 9
Joined: Mon Jan 20, 2014 7:53 am

Postby smba38 » Wed Feb 24, 2010 12:00 am

Bonjour,

Le protocole OBD2 prévoit pas mal de codes PIDs organisés en 10 modes.

Voir le lien http://en.wikipedia.org/wiki/OBD-II_PIDs

En fonction du constructeur seule une petite partie de ces PIDs est accessible.

Par exemple pour une Renault clio III diesel les codes lus sont : 04,05,0B,0C,OD,10,11,1C,21,23.

Un analyseur OBD est surtout intéressant dans un objectif de diagnostic.

Le protocole OBD2 permet également la lecture des « trouble codes » DTC ainsi que codes PIDs au moment de l’incident (freeze frames).

Si un trouble code est signalé, l’alarme normalisée « MIL » s’éclaire sur le tableau de bord du véhicule.

Le protocole OBD2 permet la remise à zéro des « troubles codes ».


Deux programmes en Open source sont actuellement disponibles sur le kit Elektor OBD2-NG..

Hhopen : lecture des PIDs , des DTCs, de freeze frames et le raz des DTCs.

Speedmeter : contrôle visuel et acoustique de la vitesse d’un véhicule.

Le Kit se programme en C, il faut disposer d’un module pour flasher le firmware du microcontrôleur Atmel AT90CAN128 (env 25€ sur Ebay).

Il faut également quelques connaissances en programmation et si possible quelques notions d’électronique.

Cordialement.

SMBA38.
smba38
 
Posts: 8
Joined: Mon Jan 20, 2014 7:53 am

Postby pat074 » Wed Feb 24, 2010 12:00 am

merci pour les explication je vais poursuivre mes recherches
pat074
 
Posts: 9
Joined: Mon Jan 20, 2014 7:53 am

Postby danigrov » Wed Aug 11, 2010 12:00 am

Bonjour
Dispose tu de l'open source en francais pour analyseur OBD2 NG
Mercid'avance
danigrov
 
Posts: 2
Joined: Fri Jan 17, 2014 4:36 pm

Postby pascalou95 » Sat May 21, 2011 12:00 am

bonjour !
voila je serais content de pouvoir avoir les menus de cet analyseur en français.
comme sur le premier analyseur d'elektor 2005
merci d'avance
pascal
pascalou95
 
Posts: 8
Joined: Fri Jan 17, 2014 4:36 pm


Return to Analyseur OBD-2 NG (09-2009)

Who is online

Users browsing this forum: No registered users and 1 guest