Bus LIN di reverse engineering su sistema E-bike

Oct 23 2020

Come progetto sto cercando di "hackerare" una vecchia e-bike. Il sistema elettronico della bici è composto da:

  • Un sensore di coppia che misura la deformazione della parte posteriore.
  • Un sensore di "rotazione" che misura se la persona sta pedalando.
  • Un pacco batteria con BMS
  • Un regolatore di velocità all'interno del motore del mozzo.
  • Un display per controllare la velocità, le luci e visualizzare le informazioni sulla distanza, ecc.

Dalla ricerca ho concluso che i sensori, il display e il regolatore di velocità stanno comunicando su LIN perché hanno un ricetrasmettitore LIN ATA6661 e sono tutti collegati in parallelo sul filo VS, LIN e GND. Quando accendo il regolatore di velocità da solo, posso vedere alcune comunicazioni LIN sul mio oscilloscopio:

Non ho un ricetrasmettitore LIN per registrare i dati ma ho collegato un ricetrasmettitore USB-TTL sul lato uart del transceiver LIN. Dal mio oscilloscopio ho dedotto che il baud rate era 9600. Ho usato la termite per ascoltare sulla mia porta seriale e l'ho impostato sulla visualizzazione esadecimale. Questo è quello che ho ottenuto:

Non sono sicuro di dover modificare la quantità di bit o di parità.

Il mio obiettivo è capire i frame che vengono inviati e dedurre quale frame contiene quali sensordati o risultati in una determinata attività. Quando lo confronto con un progetto CANbus che stavo facendo, è stato abbastanza facile, ad esempio, dedurre quale comando stava controllando il finestrino sinistro della mia auto perché con can-utils (candump) potevo vedere ogni pacchetto. Potevo filtrare i pacchetti invariati e ha codificato a colori quali bit in ogni pacchetto sono stati recentemente modificati.

Qualche consiglio / idea su come farlo per LINbus?

Risposte

2 bernardRodriguez Oct 25 2020 at 04:43

Come punto di partenza, collegherei il tuo rigol ds1054z tramite usb a sigrok https://sigrok.org/wiki/PulseViewquesto ti consentirà di registrare il dump e analizzare i tuoi frame lin. Dispone di un decoder frame per protocollo LIN. Questo dovrebbe darti un'ottima visuale di cosa sta transitando sul bus lin e quale PID slave chiamare. Da lì puoi usare una macchina.cc per comunicare su lin o usarehttps://github.com/macchina/LINcon un arduino due e un lin tranceiver. Cheerz