Analyse gateway E46


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: