Cette analyse a pour but de pouvoir se passer de la gateway present dans le compteur et d’en comprendre son fonctionnement.
Architecture des Bus E46
Voici l’architecture du Ibus tel que present dans une E46
On peut remarquer que le bus de diagnostique ne permet de diagnostiquer que les calculateurs de boite, Moteur, ABS et Compteur.
Pour le reste, le compteur sert de passerelle et traduit les commandes sur le bus de diagnostique vers le Kbus et inversement pour permettre le diagnostique d’éléments tels que l’antidémarrage, la clim, le contrôle des phares et autres.
Methode
Pour l’analyse, je vais utiliser un analyseur logique pour lire et le Kbus et le DiagBus pendant le diagnostique du module RLS pour pouvoir tenter de comprendre comment le compteur traduit les données.
Prérequis
Il est nécessaire de comprendre comment le Kbus et le DiagBus fonctionnent.
Une explication plus complète sera disponible dans le futur pour chaqu’un.
Kbus
Les paquets kbus sont composés comme suit
Les commandes sont composées comme suit:
- Calculateur source
- E8: RLS
- D0: LCM
- 5B: IHKA
- 80:IKE
- ….
- Longueur du paquet
- Correspond au nombre d’octets en comptant depuis la destination jusqu’au Checksum compris.
- Destination
- BF: Golbal
- E8: RLS
- D0: LCM
- 5B: IHKA
- 80:IKE
- ….
- Commande
- 01: Device status request
- 0C: Vehicule control
- 27: MID display request
- 53: Vehicule data request
- ….
- Données
- Facultatif
- Checksum
- XOR de tous les Bits précedents.
DiagBus
Les paquets diagbus sont composés comme suit
Les commandes sont composées comme suit:
- Destination
- BF: Golbal
- E8: RLS
- D0: LCM
- 5B: IHKA
- 80:IKE
- ….
- Longueur du paquet
- Correspond au nombre d’octets du premier au dernier octet Checksum compris.
- Commande
- 01: Device status request
- 0C: Vehicule control
- 27: MID display request
- 53: Vehicule data request
- ….
- Données
- Facultatif
- Checksum
- XOR de tous les Bits précedents.
Remarque
Les deux bus peuvent s’apparenter à de l’UART 8E1 à 9600 bauds, mais sur un fil seulement a la manière du CAN.
Analyse
Voici une série de lecture avec la question et la réponse du calculateur :
Lecture de L’IDENTITÉ du calculateur
Lecture des defaults
Effacement des defaults
Lecture des valeurs
Analyse d’un paquet
Le premier paquet que je vais analyser est celui de la requête d’identité destinée au RLS adresse E8
On peu voir que sur le DiagBus la requête est
- Destinée au E8
- De 04 octets de long
- La commande est 00
- le checksum (Xor) est EC
Le paquet est ensuite converti pour le Kbus en
- Provenance du diag
- 03 octets suivent
- Destiné a E8
- Commande 00
- Checsum (Xor) est D4
En soit le fonctionnement semble simple et un code simple permettrai de se passer du compteur pour faire la passerelle.
Description rapide sur un paquet plus long.
Voici une gateway réalisée a l’aide de cette analyse: