2

Auteur Sujet: Initiation aux protocoles de communication avec les ecu iaw59 am et iaw5am.  (Lu 637 fois)

Hors ligne LL

  • Riders d'argent
  • ***
  • Messages: 753
    • 848
Ceci a juste pour but de dégrossir un peu et peut présenter des erreurs de langages.En gros, j'ai voulu comprendre un peu comment marcher les outils de débogage car il existe pleins de possibilités actuels avec les nouveaux mini pc ( carte arduino, carte teensy).

En guise de bibliographie et aide, je voudrai citer :

Le créateur de scanST christian GUIPPONI
Le site internet de FUELINO ( il a crée un systeme similaire à un powercommander en utilisant une carte arduino)
Le site internet de pulsesecurity sur ses aventures avec le bus can sur un ducati
Le  forum sur la bellastrada ( montage d'un compteur de 848 sur une multistrada premiere generation)



- Sur les ecu iaw59 am, seul le protocole KWP2000 est possible. j'attire votre attention sur le fait que si l'on s'attache aux correspondances aux bornes de l'ecu, on voit néanmoins la présence  de CAN + et CAN - même si physiquement elles ne sont pas câblées. Il semble donc que ducati ne les ai pas implémenté. 





Les bornes intéressantes sont donc 16, 20 et 29.

- Sur les ecu iaw5am,  il y a deux protocoles possibles le KWP 2000 ainsi que  par le bus CAN




Je vais surtout parler de la ducati 848 car elle présente l'avantage d'utiliser deux protocoles de communication différente.

Vous savez tous qu'on utilise la norme OBD2 pour on board Diagnostic mais qui peut utiliser différents protocoles de communications.En conséquence, on peut utiliser la petite connectique situé prés de l'ecu  ( 2 fils)



ou bien celle situé prés de la selle arrière que l'on nomme aussi prise DDA ( ducati data acquisition) et qui utilise 4 fils ( et qui correspond au BUS CAN).




et qui correspond à ces deux elements au niveau du schema electrique :



La principale difference entre les deux consiste en la vitesse ( hos initialisation, nous sommes en 10400 bauds avec les puces iaw5am ( debit impossible sur les puces iaw59am) tandis que le bus can  culmine à 125 Kbps ( Source sur cet excellent article Vous ne pouvez pas voir les liens. Mais vous pouvez vous enregistrer ou vous connecter ) .

Le KWP 2000 implemente la norme ISO 14230 Version 4  tandis que le buscan implemente la norme 11898-3.


Je vais m'attacher à vous décrire ce qui se passer par exemple quand on utilise les logiciels pour accéder aux tests ou autres.

Ducati comme d'habitude a implémenté sa version du protocole que l'on peut retrouver dans des fichiers pdf que je tiens à disposition pour ceux-qui le souhaitent.



Hors ligne LL

  • Riders d'argent
  • ***
  • Messages: 753
    • 848
Voici l'ensemble des fonctions disponibles :



Pour le moment et pour pas compliquer, on ne vas s'interesser uniquement à la trame de demande d'informations ( on l'oublie la partie chiante d'entete et de checksum).


Par exemple, si je voulais afficher la tension de la batterie, d'après la doc je dois utiliser la fonction ReadDataLocalIdentifier définie ainsi :


et voici une partie de la  liste des RLI



[img]https://www.desmo-riders.fr/uploads/member_86/1588001592.png[/img


Pour les codeurs, il pourrait penser au premier abord qu'il  faudrait tapper

ResultatDelaFonction = ReadDataLocalIdentifier ( Parametre 1, Parametre2);

Alors qu'en fait, il ne faut pas raisonner en temre de fonction mais d'adresse hexadecimal.

Ainsi pour appeler notre fonction, il suffit juste d'ecrire 21 3C

 le premier bit 21 fait reference à l'appel de la fonction readdatabylocalidentifier
 le deuxième bit 3C fait reference à la tension batterie

toujours suivant la description de la fonction ReadatalocalIdentifier

en cas de reponse positive, la trame renvoyée sera du type
613C0080

61 => 40+21 le 40 indique le message de succès
3C => reference au rli qui correspond à la tension de la batterie
00 80 => 128/10 soit 12.8 V





Hors ligne Little

  • DesmoModos
  • Riders d'or
  • ***
  • Messages: 1051
    • 924RS et 1057 proto piste sur base de 999s
Si tu as du temps, je veux bien que tu m'expliques la différence entre les pin 20 et 29 et la différence en CAN High/+ et un CAN Low/-?
Merci à toi

Hors ligne LL

  • Riders d'argent
  • ***
  • Messages: 753
    • 848
Du peu que j'ai retenu pour le moment

CAN L et CAN H sont en parallèles et sont reliés à chaque extrémité  par ce qu'on appelle une résistance de terminaison ( 120 ohms au début de l'application de la norme CAN).

Dans notre cas, si on se réfère au schéma électrique, on comprend donc qu'il existe un résistance de terminaison dans l'ecu et une autre dans le compteur.

L'ecu et le compteur  se servent à ce différentiel de tension pour communiquer ( en gros une tension correspond à un bit 0 ou 1)

Après je ne sais pas si c'est bien dit car je n'ai pas encore approfondi. je regarderai si tu veux

Un bon article avec les valeurs de tension est :

Vous ne pouvez pas voir les liens. Mais vous pouvez vous enregistrer ou vous connecter

Hors ligne gege

  • Riders débutant
  • *
  • Messages: 88
    • 888
Très interessant ce decortiquage  8) merci pour le partage  ;)
Heureux soient les fêlés, car ils laisseront passer la lumière.

Hors ligne LL

  • Riders d'argent
  • ***
  • Messages: 753
    • 848
Je vais vous montrer comment afficher les messages d erreur , c est surtout ce qui nous intéresse tous.

Ensuite, j expliquerai pourquoi tous les logiciels disponibles fonctionnent en bluetooth en wifi ou en liaison série ( afin d éviter d avoir à gérer les initialisation de connections , de faciliter de ne pas avoir d écrire des en-têtes de ne pas avoir à calculer de cheksum à chaque trame envoyé..).

Hors ligne LL

  • Riders d'argent
  • ***
  • Messages: 753
    • 848
voici pour afficher les messages d'erreur.

Pour commencer, on en revient toujours à la specification ducati



Il faut donc utiliser la fonction readdiagnosticTroubleCodeByStatus, mais comme nous l'avons dit pas en ecrivant la suite de chiffre hexa suivant :

1800FF00

Attention avec le type de dongle utilisé car la réponse pourra être tronquée s'il y a plusieurs messages d'erreur.

Voici la trame de reponse :

1800FF00 58 03 0335    24 048044017064

en analysant celle-ci

1800FF00 correspond tout simplement à l'echo de notre demande
58 comme l'indique la spec signifie une reponse positive ( 58=18+40 comme signalé auparavant)
03 correspond aux nombres de défauts en mémoires
0335 24  P0335: Crankshaft Position Sensor A Circuit Malfunction
0480 44 = P0480 Cooling Fan 1 Control Circuit Malfunction
0170 64 = P0170 Fuel Trim Malfunction (Bank 1)
24, 44, 64 sont les statuts (intermittent, présent, ...) suivant la spec FIAT.

si nous avions eu une reponse negative, on aurait pas eu 58 au début mais 7F

Hors ligne ducati748

  • Riders d'or
  • ****
  • Messages: 1379
  • Ducati pour tous
    • Desmo4all
sympa, mais j'avoue j'ai pas trop le courage de me lancer dans ce genre de truc !!
Vous ne pouvez pas voir les liens. Mais vous pouvez vous enregistrer ou vous connecter Reprogrammation de compteur Ducati, clés rouges et noires, code card, ECU

Hors ligne LL

  • Riders d'argent
  • ***
  • Messages: 753
    • 848
En fait à terme, j'aimerai utiliser une carte teensy ( qui sont plus puissante et qui ont des fonctionnalités supplementaires par rapport aux cartes arduino) afin de pouvoir lire et supprimer les erreurs, effectuer le reset tps. en effet, on peut y ajouter des modules comme un ecran tft ( donc tactile) que je pourrai placer discretement sous le compteur motogadget sur le S4R.

Aviez vous lu le post d'une femme sur ducati.ms qui avait crée une carte mere ( en lieu et place des fusibles) à base de mosfet et de diode?

En gros tant que le defaut etait present, une diode etait allumé mais pas de fusible à changer. Par ailleurs, elle avait amelioré la puissance de demarrage de la bete... J'ai tenté de la contacter sans succés....

Hors ligne samytou

  • Administrateur
  • Riders d'argent
  • *****
  • Messages: 596
  • Une bière?
Intéressant, t'as le lien?

Hors ligne ducati748

  • Riders d'or
  • ****
  • Messages: 1379
  • Ducati pour tous
    • Desmo4all
Initiation aux protocoles de communication avec les ecu iaw59 am et iaw5am.
« Réponse #10 le: juillet 01, 2020, 22:41:45 »
Vous ne pouvez pas voir les liens. Mais vous pouvez vous enregistrer ou vous connecter
Vous ne pouvez pas voir les liens. Mais vous pouvez vous enregistrer ou vous connecter Reprogrammation de compteur Ducati, clés rouges et noires, code card, ECU

Hors ligne LL

  • Riders d'argent
  • ***
  • Messages: 753
    • 848
Initiation aux protocoles de communication avec les ecu iaw59 am et iaw5am.
« Réponse #11 le: juillet 02, 2020, 09:37:55 »
merci ducati748 !

le seul point ou je ne suis pas d'accord , c'est qu'elle a supprimé la plaque qui sert d'ailette de refroidissement sous l'ecu. Par exemple, j'ai monté une mwtuning qui permet de gagner 10% de refroidissement.

J'ai cherché partout mais je pense qu'elle l'avait fait faire elle même. Dimensionnement optimal. elle montre meme la puce exact à couper sur le compteur qui gere le clignotement

Hors ligne samytou

  • Administrateur
  • Riders d'argent
  • *****
  • Messages: 596
  • Une bière?
Initiation aux protocoles de communication avec les ecu iaw59 am et iaw5am.
« Réponse #12 le: juillet 05, 2020, 20:46:21 »
Merci Vous ne pouvez pas voir les liens. Mais vous pouvez vous enregistrer ou vous connecter  :)

Hors ligne LL

  • Riders d'argent
  • ***
  • Messages: 753
    • 848
Initiation aux protocoles de communication avec les ecu iaw59 am et iaw5am.
« Réponse #13 le: juillet 06, 2020, 09:54:03 »
samytou

j'ai tout essayé pour essayer de la retourver ou de retrouver le fruit de son travail.... ça aurait été tellement bien