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

Hors ligne LL

  • Riders d'argent
  • ***
  • Messages: 734
    • 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: 734
    • 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: 1048
    • 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: 734
    • 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: 83
    • 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: 734
    • 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é..).