Da ich aktuell noch nicht weis wie und wo sich die Daten des Batteriesensors im CAN tummeln, wäre das noch zu früh. Ich muss erstmal den Sensor auf dem LIN eindeutig identifizieren und seine Kommunikationen mitlesen. Dann kenne ich seine Daten und kann danach auf dem CAN suchen um der Sache näher zu kommen.
Reverse Engineering des Batterie-Sensors
-
Go4IT -
27. Januar 2026 um 08:44 -
Erledigt
-
-
Sodale, mein LIN Sniffer Code nimmt langsam Form an. Nachdem ich ein paar Bugs finden und beheben konnte scheine ich nun beliebige LIN Frames, beantwortete und unbeantwortete, sniffen zu können. Das bishere Ergebnis (mit noch ein paar Debug-Logs) sieht so aus:
Code
Alles anzeigenI (5368) LIN_SNIFFER: ----------------------------------------- I (5368) LIN_SNIFFER: UART_DATA event: load 120 of received 120 bytes I (5369) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 20 84 80 00 00 FA 00 55 | .U.....U ......U I (5377) LIN_SNIFFER: 06 00 00 FF 00 55 85 40 09 B6 00 55 06 00 00 FF | .....U.@...U.... I (5385) LIN_SNIFFER: 00 55 50 00 2A D5 00 55 06 00 00 FF 00 55 85 40 | .UP.*..U.....U.@ I (5393) LIN_SNIFFER: 09 B6 00 55 06 00 00 FF 00 55 20 84 80 01 00 F9 | ...U.....U ..... I (5400) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 85 40 08 B7 00 55 06 00 | .U.....U.@...U.. I (5408) LIN_SNIFFER: 00 FF 00 55 0D 98 1F C2 1E 67 00 55 06 00 00 FF | ...U.....g.U.... I (5416) LIN_SNIFFER: 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 20 84 | .U.@...U.....U . I (5424) LIN_SNIFFER: 80 01 00 F9 00 55 06 00 | .....U.. I (5431) LIN_SNIFFER: ----------------------------------------- I (5436) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5442) LIN_SNIFFER: 00 00 | .. I (5449) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (5455) LIN_SNIFFER: 84 80 00 00 | .... I (5462) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5468) LIN_SNIFFER: 00 00 | .. I (5474) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (5480) LIN_SNIFFER: 40 09 | @. I (5487) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5493) LIN_SNIFFER: 00 00 | .. I (5500) LIN_SNIFFER: Valid frame (Classic) - ID: 0x10, Data len: 2 I (5506) LIN_SNIFFER: 00 2A | .* I (5512) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5518) LIN_SNIFFER: 00 00 | .. I (5525) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (5531) LIN_SNIFFER: 40 09 | @. I (5537) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5543) LIN_SNIFFER: 00 00 | .. I (5550) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (5556) LIN_SNIFFER: 84 80 01 00 | .... I (5563) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5569) LIN_SNIFFER: 00 00 | .. I (5575) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (5581) LIN_SNIFFER: 40 08 | @. I (5588) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5594) LIN_SNIFFER: 00 00 | .. I (5600) LIN_SNIFFER: Valid frame (Classic) - ID: 0x0D, Data len: 4 I (5606) LIN_SNIFFER: 98 1F C2 1E | .... I (5613) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5619) LIN_SNIFFER: 00 00 | .. I (5626) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (5632) LIN_SNIFFER: 40 02 | @. I (5638) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5644) LIN_SNIFFER: 00 00 | .. I (5651) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (5657) LIN_SNIFFER: 84 80 01 00 | .... I (5664) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (5767) LIN_SNIFFER: ----------------------------------------- I (5768) LIN_SNIFFER: UART_DATA event: load 105 of received 105 bytes I (5768) LIN_SNIFFER: 00 FF 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 | ...U.@...U.....U I (5776) LIN_SNIFFER: 8E 00 B2 0F FF 3E 00 55 06 00 00 FF 00 55 85 40 | .....>.U.....U.@ I (5784) LIN_SNIFFER: 02 BD 00 55 06 00 00 FF 00 55 20 84 80 01 00 F9 | ...U.....U ..... I (5792) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 85 40 02 BD 00 55 06 00 | .U.....U.@...U.. I (5800) LIN_SNIFFER: 00 FF 00 55 CF 9D 7C AE 18 1F 00 55 06 00 00 FF | ...U..|....U.... I (5808) LIN_SNIFFER: 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 20 94 | .U.@...U.....U . I (5815) LIN_SNIFFER: 80 01 00 E9 00 55 06 00 00 | .....U... I (5822) LIN_SNIFFER: ----------------------------------------- I (5828) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5834) LIN_SNIFFER: 00 00 | .. I (5841) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (5847) LIN_SNIFFER: 40 02 | @. I (5853) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5859) LIN_SNIFFER: 00 00 | .. I (5866) LIN_SNIFFER: Valid frame (Classic) - ID: 0x0E, Data len: 4 I (5872) LIN_SNIFFER: 00 B2 0F FF | .... I (5879) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5885) LIN_SNIFFER: 00 00 | .. I (5891) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (5897) LIN_SNIFFER: 40 02 | @. I (5904) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5910) LIN_SNIFFER: 00 00 | .. I (5916) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (5922) LIN_SNIFFER: 84 80 01 00 | .... I (5929) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5935) LIN_SNIFFER: 00 00 | .. I (5942) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (5948) LIN_SNIFFER: 40 02 | @. I (5954) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5960) LIN_SNIFFER: 00 00 | .. I (5967) LIN_SNIFFER: Valid frame (Classic) - ID: 0x0F, Data len: 4 I (5973) LIN_SNIFFER: 9D 7C AE 18 | .|.. I (5980) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (5986) LIN_SNIFFER: 00 00 | .. I (5992) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (5998) LIN_SNIFFER: 40 02 | @. I (6005) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6011) LIN_SNIFFER: 00 00 | .. I (6017) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (6023) LIN_SNIFFER: 94 80 01 00 | .... I (6030) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (6121) LIN_SNIFFER: ----------------------------------------- I (6121) LIN_SNIFFER: UART_DATA event: load 120 of received 120 bytes I (6122) LIN_SNIFFER: FF 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 8E | ..U.@...U.....U. I (6130) LIN_SNIFFER: 00 B2 0F FF 3E 00 55 06 00 00 FF 00 55 85 40 02 | ....>.U.....U.@. I (6137) LIN_SNIFFER: BD 00 55 06 00 00 FF 00 55 20 94 80 01 00 E9 00 | ..U.....U ...... I (6145) LIN_SNIFFER: 55 06 00 00 FF 00 55 85 40 02 BD 00 55 06 00 00 | U.....U.@...U... I (6153) LIN_SNIFFER: FF 00 55 0D 0E 1E BF 1E F5 00 55 06 00 00 FF 00 | ..U.......U..... I (6161) LIN_SNIFFER: 55 85 40 02 BD 00 55 06 00 00 FF 00 55 20 94 80 | U.@...U.....U .. I (6169) LIN_SNIFFER: 01 00 E9 00 55 06 00 00 FF 00 55 85 40 02 BD 00 | ....U.....U.@... I (6177) LIN_SNIFFER: 55 06 00 00 FF 00 55 08 | U.....U. I (6184) LIN_SNIFFER: ----------------------------------------- I (6189) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6195) LIN_SNIFFER: 00 00 | .. I (6202) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6208) LIN_SNIFFER: 40 02 | @. I (6214) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6220) LIN_SNIFFER: 00 00 | .. I (6227) LIN_SNIFFER: Valid frame (Classic) - ID: 0x0E, Data len: 4 I (6233) LIN_SNIFFER: 00 B2 0F FF | .... I (6240) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6246) LIN_SNIFFER: 00 00 | .. I (6252) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6258) LIN_SNIFFER: 40 02 | @. I (6265) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6271) LIN_SNIFFER: 00 00 | .. I (6277) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (6283) LIN_SNIFFER: 94 80 01 00 | .... I (6290) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6296) LIN_SNIFFER: 00 00 | .. I (6303) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6309) LIN_SNIFFER: 40 02 | @. I (6315) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6321) LIN_SNIFFER: 00 00 | .. I (6328) LIN_SNIFFER: Valid frame (Classic) - ID: 0x0D, Data len: 4 I (6334) LIN_SNIFFER: 0E 1E BF 1E | .... I (6341) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6347) LIN_SNIFFER: 00 00 | .. I (6353) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6359) LIN_SNIFFER: 40 02 | @. I (6366) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6372) LIN_SNIFFER: 00 00 | .. I (6378) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (6385) LIN_SNIFFER: 94 80 01 00 | .... I (6391) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6397) LIN_SNIFFER: 00 00 | .. I (6404) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6410) LIN_SNIFFER: 40 02 | @. I (6416) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6422) LIN_SNIFFER: 00 00 | .. I (6429) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (6434) LIN_SNIFFER: ----------------------------------------- I (6440) LIN_SNIFFER: UART_DATA event: load 33 of received 33 bytes I (6446) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 85 40 02 BD 00 55 06 00 | .U.....U.@...U.. I (6454) LIN_SNIFFER: 00 FF 00 55 20 94 82 03 00 E5 00 55 06 00 00 FF | ...U ......U.... I (6461) LIN_SNIFFER: 00 | . I (6468) LIN_SNIFFER: ----------------------------------------- I (6473) LIN_SNIFFER: Unanswered frame - ID: 0x08 I (6478) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6484) LIN_SNIFFER: 00 00 | .. I (6490) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6496) LIN_SNIFFER: 40 02 | @. I (6503) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6509) LIN_SNIFFER: 00 00 | .. I (6516) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (6522) LIN_SNIFFER: 94 82 03 00 | .... I (6528) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6534) LIN_SNIFFER: 00 00 | .. I (6541) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (6546) LIN_SNIFFER: ----------------------------------------- I (6551) LIN_SNIFFER: UART_DATA event: load 3 of received 3 bytes I (6557) LIN_SNIFFER: 55 85 40 | U.@ I (6564) LIN_SNIFFER: ----------------------------------------- I (6570) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (6574) LIN_SNIFFER: ----------------------------------------- I (6580) LIN_SNIFFER: UART_DATA event: load 120 of received 120 bytes I (6586) LIN_SNIFFER: 02 BD 00 55 06 00 00 FF 00 55 8E 00 B2 0F FF 3E | ...U.....U.....> I (6594) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 85 40 02 BD 00 55 06 00 | .U.....U.@...U.. I (6602) LIN_SNIFFER: 00 FF 00 55 20 94 82 03 00 E5 00 55 85 40 02 BD | ...U ......U.@.. I (6610) LIN_SNIFFER: 00 55 50 00 4A B5 00 55 2B 02 41 47 39 4E 00 00 | .UP.J..U+.AG9N.. I (6618) LIN_SNIFFER: 00 ED 00 55 6A FF FF FF FF FF FF 00 00 55 06 00 | ...Uj........U.. I (6626) LIN_SNIFFER: 00 FF 00 55 97 B9 C7 E8 C3 D1 00 55 20 94 82 03 | ...U.......U ... I (6633) LIN_SNIFFER: 00 E5 00 55 85 40 02 BD 00 55 A6 87 C3 6C C2 85 | ...U.@...U...l.. I (6641) LIN_SNIFFER: 00 55 E7 FF FF FF FF 00 | .U...... I (6648) LIN_SNIFFER: ----------------------------------------- I (6654) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6660) LIN_SNIFFER: 40 02 | @. I (6666) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6672) LIN_SNIFFER: 00 00 | .. I (6679) LIN_SNIFFER: Valid frame (Classic) - ID: 0x0E, Data len: 4 I (6685) LIN_SNIFFER: 00 B2 0F FF | .... I (6692) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6698) LIN_SNIFFER: 00 00 | .. I (6704) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6710) LIN_SNIFFER: 40 02 | @. I (6717) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6723) LIN_SNIFFER: 00 00 | .. I (6729) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (6736) LIN_SNIFFER: 94 82 03 00 | .... I (6742) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6748) LIN_SNIFFER: 40 02 | @. I (6755) LIN_SNIFFER: Valid frame (Classic) - ID: 0x10, Data len: 2 I (6761) LIN_SNIFFER: 00 4A | .J I (6767) LIN_SNIFFER: Valid frame (Classic) - ID: 0x2B, Data len: 8 I (6773) LIN_SNIFFER: 02 41 47 39 4E 00 00 00 | .AG9N... I (6781) LIN_SNIFFER: Unanswered frame - ID: 0x2A I (6785) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6791) LIN_SNIFFER: 00 00 | .. I (6798) LIN_SNIFFER: Valid frame (Classic) - ID: 0x17, Data len: 4 I (6804) LIN_SNIFFER: B9 C7 E8 C3 | .... I (6810) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (6816) LIN_SNIFFER: 94 82 03 00 | .... I (6823) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6829) LIN_SNIFFER: 40 02 | @. I (6836) LIN_SNIFFER: Valid frame (Classic) - ID: 0x26, Data len: 4 I (6842) LIN_SNIFFER: 87 C3 6C C2 | ..l. I (6848) LIN_SNIFFER: Valid frame (Classic) - ID: 0x27, Data len: 4 I (6854) LIN_SNIFFER: FF FF FF FF | .... I (6861) LIN_SNIFFER: ----------------------------------------- I (6867) LIN_SNIFFER: UART_DATA event: load 47 of received 47 bytes I (6873) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 F5 02 42 56 36 54 00 00 | .U.....U..BV6T.. I (6881) LIN_SNIFFER: 00 DA 00 55 20 94 82 02 00 E6 00 55 85 40 02 BD | ...U ......U.@.. I (6889) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 20 94 82 02 00 E6 00 | .U.....U ...... I (6896) LIN_SNIFFER: ----------------------------------------- I (6902) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6908) LIN_SNIFFER: 00 00 | .. I (6914) LIN_SNIFFER: Valid frame (Classic) - ID: 0x35, Data len: 8 I (6920) LIN_SNIFFER: 02 42 56 36 54 00 00 00 | .BV6T... I (6927) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (6933) LIN_SNIFFER: 94 82 02 00 | .... I (6940) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (6946) LIN_SNIFFER: 40 02 | @. I (6953) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (6959) LIN_SNIFFER: 00 00 | .. I (6965) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (6971) LIN_SNIFFER: 94 82 02 00 | .... I (6978) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (6983) LIN_SNIFFER: ----------------------------------------- I (6989) LIN_SNIFFER: UART_DATA event: load 47 of received 47 bytes I (6995) LIN_SNIFFER: 55 85 40 02 BD 00 55 06 00 00 FF 00 55 99 00 55 | U.@...U.....U..U I (7003) LIN_SNIFFER: 61 00 55 20 84 80 00 00 FA 00 55 85 40 02 BD 00 | a.U ......U.@... I (7010) LIN_SNIFFER: 55 06 00 00 FF 00 55 20 84 80 00 00 FA 00 55 | U.....U ......U I (7018) LIN_SNIFFER: ----------------------------------------- I (7024) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7030) LIN_SNIFFER: 40 02 | @. I (7036) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7042) LIN_SNIFFER: 00 00 | .. I (7049) LIN_SNIFFER: Unanswered frame - ID: 0x19 I (7053) LIN_SNIFFER: Unanswered frame - ID: 0x21 I (7058) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7064) LIN_SNIFFER: 84 80 00 00 | .... I (7071) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7077) LIN_SNIFFER: 40 02 | @. I (7083) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7089) LIN_SNIFFER: 00 00 | .. I (7096) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7102) LIN_SNIFFER: 84 80 00 00 | .... I (7108) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (7157) LIN_SNIFFER: ----------------------------------------- I (7158) LIN_SNIFFER: UART_DATA event: load 120 of received 120 bytes I (7158) LIN_SNIFFER: 85 40 02 BD 00 55 50 00 2A D5 00 55 2B 03 31 30 | .@...UP.*..U+.10 I (7166) LIN_SNIFFER: 43 36 37 39 00 B1 00 55 6A FF FF FF FF FF FF 00 | C679...Uj....... I (7174) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 97 B9 C7 E8 C3 D1 00 55 | .U.....U.......U I (7182) LIN_SNIFFER: 20 84 80 00 00 FA 00 55 85 40 02 BD 00 55 A6 87 | ......U.@...U.. I (7190) LIN_SNIFFER: C3 6C C2 85 00 55 E7 FF FF FF FF 00 00 55 06 00 | .l...U.......U.. I (7197) LIN_SNIFFER: 00 FF 00 55 F5 03 31 37 44 35 34 37 00 AF 00 55 | ...U..17D547...U I (7205) LIN_SNIFFER: 20 84 80 00 00 FA 00 55 85 40 02 BD 00 55 06 00 | ......U.@...U.. I (7213) LIN_SNIFFER: 00 FF 00 55 20 84 80 00 | ...U ... I (7220) LIN_SNIFFER: ----------------------------------------- I (7226) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7232) LIN_SNIFFER: 40 02 | @. I (7238) LIN_SNIFFER: Valid frame (Classic) - ID: 0x10, Data len: 2 I (7244) LIN_SNIFFER: 00 2A | .* I (7251) LIN_SNIFFER: Valid frame (Classic) - ID: 0x2B, Data len: 8 I (7257) LIN_SNIFFER: 03 31 30 43 36 37 39 00 | .10C679. I (7264) LIN_SNIFFER: Unanswered frame - ID: 0x2A I (7268) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7274) LIN_SNIFFER: 00 00 | .. I (7281) LIN_SNIFFER: Valid frame (Classic) - ID: 0x17, Data len: 4 I (7287) LIN_SNIFFER: B9 C7 E8 C3 | .... I (7294) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7300) LIN_SNIFFER: 84 80 00 00 | .... I (7306) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7312) LIN_SNIFFER: 40 02 | @. I (7319) LIN_SNIFFER: Valid frame (Classic) - ID: 0x26, Data len: 4 I (7325) LIN_SNIFFER: 87 C3 6C C2 | ..l. I (7332) LIN_SNIFFER: Valid frame (Classic) - ID: 0x27, Data len: 4 I (7338) LIN_SNIFFER: FF FF FF FF | .... I (7345) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7351) LIN_SNIFFER: 00 00 | .. I (7357) LIN_SNIFFER: Valid frame (Classic) - ID: 0x35, Data len: 8 I (7363) LIN_SNIFFER: 03 31 37 44 35 34 37 00 | .17D547. I (7370) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7376) LIN_SNIFFER: 84 80 00 00 | .... I (7383) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7389) LIN_SNIFFER: 40 02 | @. I (7396) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7402) LIN_SNIFFER: 00 00 | .. I (7408) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (7413) LIN_SNIFFER: ----------------------------------------- I (7419) LIN_SNIFFER: UART_DATA event: load 47 of received 47 bytes I (7425) LIN_SNIFFER: 00 FA 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 | ...U.@...U.....U I (7433) LIN_SNIFFER: 99 00 55 61 00 55 20 84 80 00 00 FA 00 55 85 40 | ..Ua.U ......U.@ I (7440) LIN_SNIFFER: 02 BD 00 55 06 00 00 FF 00 55 20 84 80 00 00 | ...U.....U .... I (7448) LIN_SNIFFER: ----------------------------------------- I (7454) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7460) LIN_SNIFFER: 84 80 00 00 | .... I (7466) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7472) LIN_SNIFFER: 40 02 | @. I (7479) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7485) LIN_SNIFFER: 00 00 | .. I (7492) LIN_SNIFFER: Unanswered frame - ID: 0x19 I (7496) LIN_SNIFFER: Unanswered frame - ID: 0x21 I (7500) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7507) LIN_SNIFFER: 84 80 00 00 | .... I (7513) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7519) LIN_SNIFFER: 40 02 | @. I (7526) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7532) LIN_SNIFFER: 00 00 | .. I (7538) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (7543) LIN_SNIFFER: ----------------------------------------- I (7549) LIN_SNIFFER: UART_DATA event: load 3 of received 3 bytes I (7555) LIN_SNIFFER: FA 00 55 | ..U I (7562) LIN_SNIFFER: ----------------------------------------- I (7567) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7573) LIN_SNIFFER: 84 80 00 00 | .... I (7580) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (7585) LIN_SNIFFER: ----------------------------------------- I (7591) LIN_SNIFFER: UART_DATA event: load 120 of received 120 bytes I (7597) LIN_SNIFFER: 85 40 02 BD 00 55 50 00 2A D5 00 55 2B 04 44 45 | .@...UP.*..U+.DE I (7605) LIN_SNIFFER: 00 00 00 00 00 72 00 55 6A FF FF FF FF FF FF 00 | .....r.Uj....... I (7612) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 97 B9 C7 E8 C3 D1 00 55 | .U.....U.......U I (7620) LIN_SNIFFER: 20 84 80 00 00 FA 00 55 85 40 02 BD 00 55 A6 87 | ......U.@...U.. I (7628) LIN_SNIFFER: C3 6C C2 85 00 55 E7 FF FF FF FF 00 00 55 06 00 | .l...U.......U.. I (7636) LIN_SNIFFER: 00 FF 00 55 F5 04 41 44 00 00 00 00 00 76 00 55 | ...U..AD.....v.U I (7644) LIN_SNIFFER: 20 84 80 00 00 FA 00 55 85 40 02 BD 00 55 06 00 | ......U.@...U.. I (7651) LIN_SNIFFER: 00 FF 00 55 20 84 80 00 | ...U ... I (7658) LIN_SNIFFER: ----------------------------------------- I (7664) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7670) LIN_SNIFFER: 40 02 | @. I (7677) LIN_SNIFFER: Valid frame (Classic) - ID: 0x10, Data len: 2 I (7683) LIN_SNIFFER: 00 2A | .* I (7689) LIN_SNIFFER: Valid frame (Classic) - ID: 0x2B, Data len: 8 I (7695) LIN_SNIFFER: 04 44 45 00 00 00 00 00 | .DE..... I (7702) LIN_SNIFFER: Unanswered frame - ID: 0x2A I (7707) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7713) LIN_SNIFFER: 00 00 | .. I (7719) LIN_SNIFFER: Valid frame (Classic) - ID: 0x17, Data len: 4 I (7725) LIN_SNIFFER: B9 C7 E8 C3 | .... I (7732) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7738) LIN_SNIFFER: 84 80 00 00 | .... I (7745) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7751) LIN_SNIFFER: 40 02 | @. I (7758) LIN_SNIFFER: Valid frame (Classic) - ID: 0x26, Data len: 4 I (7764) LIN_SNIFFER: 87 C3 6C C2 | ..l. I (7770) LIN_SNIFFER: Valid frame (Classic) - ID: 0x27, Data len: 4 I (7776) LIN_SNIFFER: FF FF FF FF | .... I (7783) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7789) LIN_SNIFFER: 00 00 | .. I (7796) LIN_SNIFFER: Valid frame (Classic) - ID: 0x35, Data len: 8 I (7802) LIN_SNIFFER: 04 41 44 00 00 00 00 00 | .AD..... I (7809) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7815) LIN_SNIFFER: 84 80 00 00 | .... I (7821) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7827) LIN_SNIFFER: 40 02 | @. I (7834) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7840) LIN_SNIFFER: 00 00 | .. I (7847) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (7852) LIN_SNIFFER: ----------------------------------------- I (7857) LIN_SNIFFER: UART_DATA event: load 47 of received 47 bytes I (7863) LIN_SNIFFER: 00 FA 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 | ...U.@...U.....U I (7871) LIN_SNIFFER: 99 00 55 61 00 55 20 84 80 00 00 FA 00 55 85 40 | ..Ua.U ......U.@ I (7879) LIN_SNIFFER: 02 BD 00 55 06 00 00 FF 00 55 20 84 80 00 00 | ...U.....U .... I (7887) LIN_SNIFFER: ----------------------------------------- I (7892) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7898) LIN_SNIFFER: 84 80 00 00 | .... I (7905) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7911) LIN_SNIFFER: 40 02 | @. I (7918) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7924) LIN_SNIFFER: 00 00 | .. I (7930) LIN_SNIFFER: Unanswered frame - ID: 0x19 I (7934) LIN_SNIFFER: Unanswered frame - ID: 0x21 I (7939) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (7945) LIN_SNIFFER: 84 80 00 00 | .... I (7952) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (7958) LIN_SNIFFER: 40 02 | @. I (7964) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (7970) LIN_SNIFFER: 00 00 | .. I (7977) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (7982) LIN_SNIFFER: ----------------------------------------- I (7988) LIN_SNIFFER: UART_DATA event: load 3 of received 3 bytes I (7993) LIN_SNIFFER: FA 00 55 | ..U I (8000) LIN_SNIFFER: ----------------------------------------- I (8006) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (8012) LIN_SNIFFER: 84 80 00 00 | .... I (8018) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (8023) LIN_SNIFFER: ----------------------------------------- I (8029) LIN_SNIFFER: UART_DATA event: load 120 of received 120 bytes I (8035) LIN_SNIFFER: 85 40 02 BD 00 55 50 00 0A F5 00 55 2B 02 41 47 | .@...UP....U+.AG I (8043) LIN_SNIFFER: 39 4E 00 00 00 ED 00 55 6A FF FF FF FF FF FF 00 | 9N.....Uj....... I (8051) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 97 B9 C7 E8 C3 D1 00 55 | .U.....U.......U I (8059) LIN_SNIFFER: 20 84 80 00 00 FA 00 55 85 40 02 BD 00 55 A6 87 | ......U.@...U.. I (8067) LIN_SNIFFER: C3 6C C2 85 00 55 E7 FF FF FF FF 00 00 55 06 00 | .l...U.......U.. I (8074) LIN_SNIFFER: 00 FF 00 55 F5 02 42 56 36 54 00 00 00 DA 00 55 | ...U..BV6T.....U I (8082) LIN_SNIFFER: 20 84 80 00 00 FA 00 55 85 40 02 BD 00 55 06 00 | ......U.@...U.. I (8090) LIN_SNIFFER: 00 FF 00 55 20 84 80 00 | ...U ... I (8097) LIN_SNIFFER: ----------------------------------------- I (8103) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (8109) LIN_SNIFFER: 40 02 | @. I (8115) LIN_SNIFFER: Valid frame (Classic) - ID: 0x10, Data len: 2 I (8121) LIN_SNIFFER: 00 0A | .. I (8128) LIN_SNIFFER: Valid frame (Classic) - ID: 0x2B, Data len: 8 I (8134) LIN_SNIFFER: 02 41 47 39 4E 00 00 00 | .AG9N... I (8141) LIN_SNIFFER: Unanswered frame - ID: 0x2A I (8145) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (8151) LIN_SNIFFER: 00 00 | .. I (8158) LIN_SNIFFER: Valid frame (Classic) - ID: 0x17, Data len: 4 I (8164) LIN_SNIFFER: B9 C7 E8 C3 | .... I (8171) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (8177) LIN_SNIFFER: 84 80 00 00 | .... I (8183) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (8190) LIN_SNIFFER: 40 02 | @. I (8196) LIN_SNIFFER: Valid frame (Classic) - ID: 0x26, Data len: 4 I (8202) LIN_SNIFFER: 87 C3 6C C2 | ..l. I (8209) LIN_SNIFFER: Valid frame (Classic) - ID: 0x27, Data len: 4 I (8215) LIN_SNIFFER: FF FF FF FF | .... I (8222) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (8228) LIN_SNIFFER: 00 00 | .. I (8234) LIN_SNIFFER: Valid frame (Classic) - ID: 0x35, Data len: 8 I (8240) LIN_SNIFFER: 02 42 56 36 54 00 00 00 | .BV6T... I (8247) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (8253) LIN_SNIFFER: 84 80 00 00 | .... I (8260) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (8266) LIN_SNIFFER: 40 02 | @. I (8273) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (8279) LIN_SNIFFER: 00 00 | .. I (8285) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (8290) LIN_SNIFFER: ----------------------------------------- I (8296) LIN_SNIFFER: UART_DATA event: load 3 of received 3 bytes I (8302) LIN_SNIFFER: 00 FA 00 | ... I (8308) LIN_SNIFFER: ----------------------------------------- I (8314) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (8320) LIN_SNIFFER: 84 80 00 00 | .... I (8327) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (8332) LIN_SNIFFER: ----------------------------------------- I (8337) LIN_SNIFFER: UART_DATA event: load 14 of received 14 bytes I (8343) LIN_SNIFFER: 55 85 40 02 BD 00 55 06 00 00 FF 00 55 99 | U.@...U.....U. I (8351) LIN_SNIFFER: ----------------------------------------- I (8356) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (8363) LIN_SNIFFER: 40 02 | @. I (8369) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (8375) LIN_SNIFFER: 00 00 | .. I (8382) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (8466) LIN_SNIFFER: ----------------------------------------- I (8466) LIN_SNIFFER: UART_DATA event: load 120 of received 120 bytes I (8467) LIN_SNIFFER: 00 55 61 00 55 20 84 80 00 00 FA 00 55 85 40 02 | .Ua.U ......U.@. I (8475) LIN_SNIFFER: BD 00 55 06 00 00 FF 00 55 20 84 80 00 00 FA 00 | ..U.....U ...... I (8482) LIN_SNIFFER: 55 85 40 02 BD 00 55 50 00 0A F5 00 55 2B 03 31 | U.@...UP....U+.1 I (8490) LIN_SNIFFER: 30 43 36 37 39 00 B1 00 55 6A FF FF FF FF FF FF | 0C679...Uj...... I (8498) LIN_SNIFFER: 00 00 55 06 00 00 FF 00 55 97 B9 C7 E8 C3 D1 00 | ..U.....U....... I (8506) LIN_SNIFFER: 55 20 84 80 00 00 FA 00 55 85 40 02 BD 00 55 A6 | U ......U.@...U. I (8514) LIN_SNIFFER: 87 C3 6C C2 85 00 55 E7 FF FF FF FF 00 00 55 06 | ..l...U.......U. I (8521) LIN_SNIFFER: 00 00 FF 00 55 F5 03 31 | ....U..1 I (8528) LIN_SNIFFER: ----------------------------------------- I (8534) LIN_SNIFFER: Unanswered frame - ID: 0x19 I (8538) LIN_SNIFFER: Unanswered frame - ID: 0x21 I (8543) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (8549) LIN_SNIFFER: 84 80 00 00 | .... I (8556) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (8562) LIN_SNIFFER: 40 02 | @. I (8568) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (8574) LIN_SNIFFER: 00 00 | .. I (8581) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (8587) LIN_SNIFFER: 84 80 00 00 | .... I (8594) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (8600) LIN_SNIFFER: 40 02 | @. I (8606) LIN_SNIFFER: Valid frame (Classic) - ID: 0x10, Data len: 2 I (8612) LIN_SNIFFER: 00 0A | .. I (8619) LIN_SNIFFER: Valid frame (Classic) - ID: 0x2B, Data len: 8 I (8625) LIN_SNIFFER: 03 31 30 43 36 37 39 00 | .10C679. I (8632) LIN_SNIFFER: Unanswered frame - ID: 0x2A I (8636) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (8642) LIN_SNIFFER: 00 00 | .. I (8649) LIN_SNIFFER: Valid frame (Classic) - ID: 0x17, Data len: 4 I (8655) LIN_SNIFFER: B9 C7 E8 C3 | .... I (8662) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (8668) LIN_SNIFFER: 84 80 00 00 | .... I (8674) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (8681) LIN_SNIFFER: 40 02 | @. I (8687) LIN_SNIFFER: Valid frame (Classic) - ID: 0x26, Data len: 4 I (8693) LIN_SNIFFER: 87 C3 6C C2 | ..l. I (8700) LIN_SNIFFER: Valid frame (Classic) - ID: 0x27, Data len: 4 I (8706) LIN_SNIFFER: FF FF FF FF | .... I (8713) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (8719) LIN_SNIFFER: 00 00 | .. I (8725) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (8865) LIN_SNIFFER: ----------------------------------------- I (8865) LIN_SNIFFER: UART_DATA event: load 120 of received 120 bytes I (8866) LIN_SNIFFER: 37 44 35 34 37 00 AF 00 55 20 84 80 00 00 FA 00 | 7D547...U ...... I (8874) LIN_SNIFFER: 55 85 40 02 BD 00 55 06 00 00 FF 00 55 20 84 80 | U.@...U.....U .. I (8881) LIN_SNIFFER: 00 00 FA 00 55 85 40 02 BD 00 55 06 00 00 FF 00 | ....U.@...U..... I (8889) LIN_SNIFFER: 55 99 00 55 61 00 55 20 84 80 00 00 FA 00 55 85 | U..Ua.U ......U. I (8897) LIN_SNIFFER: 40 02 BD 00 55 06 00 00 FF 00 55 20 84 80 00 00 | @...U.....U .... I (8905) LIN_SNIFFER: FA 00 55 85 40 02 BD 00 55 50 00 0A F5 00 55 2B | ..U.@...UP....U+ I (8913) LIN_SNIFFER: 04 44 45 00 00 00 00 00 72 00 55 6A FF FF FF FF | .DE.....r.Uj.... I (8921) LIN_SNIFFER: FF FF 00 00 55 06 00 00 | ....U... I (8928) LIN_SNIFFER: ----------------------------------------- I (8933) LIN_SNIFFER: Valid frame (Classic) - ID: 0x35, Data len: 8 I (8939) LIN_SNIFFER: 03 31 37 44 35 34 37 00 | .17D547. I (8946) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (8952) LIN_SNIFFER: 84 80 00 00 | .... I (8959) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (8965) LIN_SNIFFER: 40 02 | @. I (8972) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (8978) LIN_SNIFFER: 00 00 | .. I (8984) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (8990) LIN_SNIFFER: 84 80 00 00 | .... I (8997) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9003) LIN_SNIFFER: 40 02 | @. I (9010) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9016) LIN_SNIFFER: 00 00 | .. I (9022) LIN_SNIFFER: Unanswered frame - ID: 0x19 I (9027) LIN_SNIFFER: Unanswered frame - ID: 0x21 I (9031) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (9037) LIN_SNIFFER: 84 80 00 00 | .... I (9044) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9050) LIN_SNIFFER: 40 02 | @. I (9056) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9062) LIN_SNIFFER: 00 00 | .. I (9069) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (9075) LIN_SNIFFER: 84 80 00 00 | .... I (9082) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9088) LIN_SNIFFER: 40 02 | @. I (9094) LIN_SNIFFER: Valid frame (Classic) - ID: 0x10, Data len: 2 I (9100) LIN_SNIFFER: 00 0A | .. I (9107) LIN_SNIFFER: Valid frame (Classic) - ID: 0x2B, Data len: 8 I (9113) LIN_SNIFFER: 04 44 45 00 00 00 00 00 | .DE..... I (9120) LIN_SNIFFER: Unanswered frame - ID: 0x2A I (9124) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (9280) LIN_SNIFFER: ----------------------------------------- I (9280) LIN_SNIFFER: UART_DATA event: load 120 of received 120 bytes I (9281) LIN_SNIFFER: FF 00 55 97 B9 C7 E8 C3 D1 00 55 20 84 80 00 00 | ..U.......U .... I (9289) LIN_SNIFFER: FA 00 55 85 40 02 BD 00 55 A6 87 C3 6C C2 85 00 | ..U.@...U...l... I (9297) LIN_SNIFFER: 55 E7 FF FF FF FF 00 00 55 06 00 00 FF 00 55 F5 | U.......U.....U. I (9305) LIN_SNIFFER: 04 41 44 00 00 00 00 00 76 00 55 20 84 80 00 00 | .AD.....v.U .... I (9312) LIN_SNIFFER: FA 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 20 | ..U.@...U.....U I (9320) LIN_SNIFFER: 84 80 00 00 FA 00 55 85 40 02 BD 00 55 06 00 00 | ......U.@...U... I (9328) LIN_SNIFFER: FF 00 55 99 00 55 61 00 55 20 84 80 00 00 FA 00 | ..U..Ua.U ...... I (9336) LIN_SNIFFER: 55 85 40 02 BD 00 55 06 | U.@...U. I (9343) LIN_SNIFFER: ----------------------------------------- I (9349) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9355) LIN_SNIFFER: 00 00 | .. I (9361) LIN_SNIFFER: Valid frame (Classic) - ID: 0x17, Data len: 4 I (9367) LIN_SNIFFER: B9 C7 E8 C3 | .... I (9374) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (9380) LIN_SNIFFER: 84 80 00 00 | .... I (9387) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9393) LIN_SNIFFER: 40 02 | @. I (9399) LIN_SNIFFER: Valid frame (Classic) - ID: 0x26, Data len: 4 I (9405) LIN_SNIFFER: 87 C3 6C C2 | ..l. I (9412) LIN_SNIFFER: Valid frame (Classic) - ID: 0x27, Data len: 4 I (9418) LIN_SNIFFER: FF FF FF FF | .... I (9425) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9431) LIN_SNIFFER: 00 00 | .. I (9437) LIN_SNIFFER: Valid frame (Classic) - ID: 0x35, Data len: 8 I (9443) LIN_SNIFFER: 04 41 44 00 00 00 00 00 | .AD..... I (9451) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (9457) LIN_SNIFFER: 84 80 00 00 | .... I (9463) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9469) LIN_SNIFFER: 40 02 | @. I (9476) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9482) LIN_SNIFFER: 00 00 | .. I (9488) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (9494) LIN_SNIFFER: 84 80 00 00 | .... I (9501) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9507) LIN_SNIFFER: 40 02 | @. I (9514) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9520) LIN_SNIFFER: 00 00 | .. I (9526) LIN_SNIFFER: Unanswered frame - ID: 0x19 I (9531) LIN_SNIFFER: Unanswered frame - ID: 0x21 I (9535) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (9541) LIN_SNIFFER: 84 80 00 00 | .... I (9548) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9554) LIN_SNIFFER: 40 02 | @. I (9561) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (9565) LIN_SNIFFER: ----------------------------------------- I (9571) LIN_SNIFFER: UART_DATA event: load 49 of received 49 bytes I (9577) LIN_SNIFFER: 00 00 FF 00 55 20 84 80 00 00 FA 00 55 06 00 00 | ....U ......U... I (9585) LIN_SNIFFER: FF 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 50 | ..U.@...U.....UP I (9593) LIN_SNIFFER: 00 0A F5 00 55 06 00 00 FF 00 55 85 40 02 BD 00 | ....U.....U.@... I (9601) LIN_SNIFFER: 55 | U I (9607) LIN_SNIFFER: ----------------------------------------- I (9613) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9619) LIN_SNIFFER: 00 00 | .. I (9625) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (9631) LIN_SNIFFER: 84 80 00 00 | .... I (9638) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9644) LIN_SNIFFER: 00 00 | .. I (9651) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9657) LIN_SNIFFER: 40 02 | @. I (9663) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9669) LIN_SNIFFER: 00 00 | .. I (9676) LIN_SNIFFER: Valid frame (Classic) - ID: 0x10, Data len: 2 I (9682) LIN_SNIFFER: 00 0A | .. I (9688) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9694) LIN_SNIFFER: 00 00 | .. I (9701) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9707) LIN_SNIFFER: 40 02 | @. I (9714) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (9718) LIN_SNIFFER: ----------------------------------------- I (9724) LIN_SNIFFER: UART_DATA event: load 120 of received 120 bytes I (9730) LIN_SNIFFER: 06 00 00 FF 00 55 20 84 80 00 00 FA 00 55 06 00 | .....U ......U.. I (9738) LIN_SNIFFER: 00 FF 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 | ...U.@...U.....U I (9746) LIN_SNIFFER: 0D 58 1F C0 1E A9 00 55 06 00 00 FF 00 55 85 40 | .X.....U.....U.@ I (9754) LIN_SNIFFER: 02 BD 00 55 06 00 00 FF 00 55 20 84 80 00 00 FA | ...U.....U ..... I (9762) LIN_SNIFFER: 00 55 06 00 00 FF 00 55 85 40 02 BD 00 55 06 00 | .U.....U.@...U.. I (9769) LIN_SNIFFER: 00 FF 00 55 8E 00 B2 0F FF 3E 00 55 06 00 00 FF | ...U.....>.U.... I (9777) LIN_SNIFFER: 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 20 84 | .U.@...U.....U . I (9785) LIN_SNIFFER: 80 00 00 FA 00 55 06 00 | .....U.. I (9792) LIN_SNIFFER: ----------------------------------------- I (9798) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9804) LIN_SNIFFER: 00 00 | .. I (9810) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (9816) LIN_SNIFFER: 84 80 00 00 | .... I (9823) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9829) LIN_SNIFFER: 00 00 | .. I (9836) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9842) LIN_SNIFFER: 40 02 | @. I (9848) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9854) LIN_SNIFFER: 00 00 | .. I (9861) LIN_SNIFFER: Valid frame (Classic) - ID: 0x0D, Data len: 4 I (9867) LIN_SNIFFER: 58 1F C0 1E | X... I (9874) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9880) LIN_SNIFFER: 00 00 | .. I (9886) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9892) LIN_SNIFFER: 40 02 | @. I (9899) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9905) LIN_SNIFFER: 00 00 | .. I (9911) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (9917) LIN_SNIFFER: 84 80 00 00 | .... I (9924) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9930) LIN_SNIFFER: 00 00 | .. I (9937) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9943) LIN_SNIFFER: 40 02 | @. I (9949) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9955) LIN_SNIFFER: 00 00 | .. I (9962) LIN_SNIFFER: Valid frame (Classic) - ID: 0x0E, Data len: 4 I (9968) LIN_SNIFFER: 00 B2 0F FF | .... I (9975) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (9981) LIN_SNIFFER: 00 00 | .. I (9987) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (9993) LIN_SNIFFER: 40 02 | @. I (10000) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (10006) LIN_SNIFFER: 00 00 | .. I (10013) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (10019) LIN_SNIFFER: 84 80 00 00 | .... I (10026) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (10097) LIN_SNIFFER: ----------------------------------------- I (10097) LIN_SNIFFER: UART_DATA event: load 49 of received 49 bytes I (10098) LIN_SNIFFER: 00 FF 00 55 85 40 02 BD 00 55 06 00 00 FF 00 55 | ...U.@...U.....U I (10106) LIN_SNIFFER: CF 9D 7C AE 00 37 00 55 06 00 00 FF 00 55 85 40 | ..|..7.U.....U.@ I (10114) LIN_SNIFFER: 02 BD 00 55 06 00 00 FF 00 55 20 84 80 00 00 FA | ...U.....U ..... I (10122) LIN_SNIFFER: 00 | . I (10128) LIN_SNIFFER: ----------------------------------------- I (10134) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (10140) LIN_SNIFFER: 00 00 | .. I (10147) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (10153) LIN_SNIFFER: 40 02 | @. I (10160) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (10166) LIN_SNIFFER: 00 00 | .. I (10172) LIN_SNIFFER: Valid frame (Classic) - ID: 0x0F, Data len: 4 I (10179) LIN_SNIFFER: 9D 7C AE 00 | .|.. I (10185) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (10191) LIN_SNIFFER: 00 00 | .. I (10198) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (10204) LIN_SNIFFER: 40 02 | @. I (10211) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (10217) LIN_SNIFFER: 00 00 | .. I (10224) LIN_SNIFFER: Valid frame (Classic) - ID: 0x20, Data len: 4 I (10230) LIN_SNIFFER: 84 80 00 00 | .... I (10237) LIN_SNIFFER: Time elapsed 0 ms (timeout 50 ms) I (10251) LIN_SNIFFER: ----------------------------------------- I (10251) LIN_SNIFFER: UART_DATA event: load 12 of received 12 bytes I (10253) LIN_SNIFFER: 55 06 00 00 FF 00 55 85 40 02 BD 00 | U.....U.@... I (10261) LIN_SNIFFER: ----------------------------------------- I (10267) LIN_SNIFFER: Valid frame (Classic) - ID: 0x06, Data len: 2 I (10273) LIN_SNIFFER: 00 00 | .. I (10279) LIN_SNIFFER: Valid frame (Classic) - ID: 0x05, Data len: 2 I (10286) LIN_SNIFFER: 40 02 | @. -
Ich habe auch mit nachgerüstetem und per CCC aktiviertem Batteriesensor keine weiteren PIDs mit im BCMii bei ForScan als ich ohne hatte.
Seit dem Wissen um diese Info hier, dass es mit dem Batteriesensor dieses Zusatz-Steuergerät gab, ist die Annahme wahrscheinlich falsch, die Batterie-Sensor-bezogenen Daten im BCM zu finden. Nun fragt sich, wie dieses zusätzliche Modul dann aber in ForScan heißt. Oder bei Vorhandensein des zusätzlichen Moduls erscheinen dann im BCM weitere Daten.
-
Die ID 0x2B scheint recht sicher dem Batteriesensor zuordenbar zu sein ("AG9N-10C679-DE"):
CodeI (6767) LIN_SNIFFER: Valid frame (Classic) - ID: 0x2B, Data len: 8 I (6773) LIN_SNIFFER: 02 41 47 39 4E 00 00 00 | .AG9N... ... I (7251) LIN_SNIFFER: Valid frame (Classic) - ID: 0x2B, Data len: 8 I (7257) LIN_SNIFFER: 03 31 30 43 36 37 39 00 | .10C679. ... I (7689) LIN_SNIFFER: Valid frame (Classic) - ID: 0x2B, Data len: 8 I (7695) LIN_SNIFFER: 04 44 45 00 00 00 00 00 | .DE.....Wobei die ID 0x35 ganz sicher dem Regensensor gehört ("BV6T-17D547-AD"):
CodeI (6914) LIN_SNIFFER: Valid frame (Classic) - ID: 0x35, Data len: 8 I (6920) LIN_SNIFFER: 02 42 56 36 54 00 00 00 | .BV6T... ... I (7357) LIN_SNIFFER: Valid frame (Classic) - ID: 0x35, Data len: 8 I (7363) LIN_SNIFFER: 03 31 37 44 35 34 37 00 | .17D547. ... I (7796) LIN_SNIFFER: Valid frame (Classic) - ID: 0x35, Data len: 8 I (7802) LIN_SNIFFER: 04 41 44 00 00 00 00 00 | .AD.....Die erste Ziffer gibt also den Index an, so wie bei CAN TP (Segmentierte Nachricht, eben eine die nicht in eine Payload passt, also größer als 8 Byte ist) mit "FF - First Frame" und "CF - Consecutive Frames". Wo aber ist wohl das First-Frame welches den Index 0x01 hat?
-
Mein Sniff war jetzt recht kurz (5 Sekunden) daher fehlen sicher IDs, aber hier schonmal was ich bislang finden konnte:
ID LEN DATA Freq./Period Multiframes SENDER MEANING 0x04 4 FF 89 3A B5
FF 90 3C BC4 BAT-SENS 0x05 2 40 02 5 Hz / alle 100 bzw. 200 ms 2 RAIN-SENS Status des Regensensors 0x06 2 00 00 2 0x08 - - - Unanswered 0x0D 4 98 1F C2 1E
0E 1E BF 1E
58 1F C0 1E
00 20 C9 524 BAT-SENS Vermutlich Stromfluss 0x0E 4 00 B2 0F FF
00 B2 19 FF4 BAT-SENS Vermutlich Spannung 0x0F 4 9D 7C AE 18
CD 8D B5 FF4 BAT-SENS 0x10 2 00 2A
00 4A
00 0A2 0x17 4 B9 C7 E8 C3
00 C0 00 C04 BAT-SENS 0x19 - - - Unanswered 0x20 84 80 00 00
84 80 01 00
94 80 01 00
94 82 03 00
94 82 02 004 0x21 - - - Unanswered 0x22 2 50 00 2 BAT-SENS 0x26 87 C3 6C C2
00 C0 00 C0
01 C0 00 C04 BAT-SENS 0x27 FF FF FF FF
00 F0 FF FF
01 F0 FF FF4 BAT-SENS 0x2A - FF FF FF FF FF FF 8 BAT-SENS Unanswered 0x2B <#> <CHAR..> 8 BAT-SENS Battery-Sensor, Ford-Part-Number (e.g. "AG9N-10C679-DE") 0x35 8 <#> <CHAR..> 8 RAIN-SENS Rain-Sensor, Ford-Part-Number (Original "6G9N-17D547-AD", bei Austausch ggf. auch "BV6T-17D547-AD") 0x3C 8 00 00 00 00 00 00 00 00 - 1 ALL SLAVES "GO-TO-SLEEP" - Wird vom Master gesendet um alle Slaves in den Schlafmodus zu versetzen. Laut Standart ist das erste Byte 0x00 und die restlichen 0xFF, es kommt aber nur auf das erste Byte an.
Wird vom BCM wenige Sekunden nach Zündung aus gesendet.SENDER gibt an, wer die Daten übermittelt, der Master oder der Slave.
Ich weiß ja welche Module auf diesem LIN-Bus sein können:
BCM LIN 2 IMS INTERIOR MOTION SENSOR - Innenraum-Bewegungsmelder der Alarmanlage BCM LIN 8 WMM SMART WIPER MOTOR MODULE MASTER - Scheibenwischermotor (nur S-Max/Galaxy) BCM LIN 8 RSM RAIN SENSOR MODULE - Regensensor BCM LIN 2 BBS SIREN CONTROL MODULE - Sirene der Alarmanlage BCM LIN 8 BMS BATTERY MONITOR SENSOR - Batteriesensor Wobei in meinem Fahrzeug keine Alarmanlage verbaut ist. Könnte aber gut sein das das BCM trotzdem danach "sucht" und die nicht beantworteten IDs die von den fehlenden Modulen sind. Die, die Antwort geben müssen also BMS, RSM und WMM sein.
Einige IDs scheinen ihre Werte ohne außen erkennbare Aktion zu ändern, das können typische Sensorwerte sein, von Batterie und Regensensor. Die statischen könnten zum WMM gehören, das werde ich vielleicht erkennen wenn ich den Wischermotor mal gezielt auf unterschiedlichen Stufen laufen lasse.
Ab hier muss ich dann meinen noch recht simplen Sniffer-Code mit einem Analyse-Tool paaren, ggf. kann ich einen Datenstrom für SavvyCAN erzeugen um dann einzelne IDs zu monitoren.
Multiframe PIDs besitzen eine interne Statemachine. Die Requests müssen innerhalb von ~400ms geschehen, damit es keinen Timeout gibt und wieder mit dem First-Frame begonnen wird.
-
Nun habe ich mein Sniffer-Tool verfeinert und es liefert mir über WiFi im CANDUMP Log-Format die LIN-Frames welche ich dann mit SavvyCAN laden und auswerten kann.
Generelles zum Reverse Engineering eines LIN-Busses
Auf dem LIN gibt es immer nur einen Master und bis zu 64 Slaves. Dabei kann nur der Master eine Kommunikation starten, die Slaves sind passiv und senden nur wenn die vom Master auf den Bus gelegte ID sie anspricht. Dementsprechend kann eine ID immer nur zu einem Slave gehören. Ein Slave kann aber mehrere IDs haben und sowohl Daten vom Master empfangen als auch welche an diesen übermitteln. Das "Wissen" darüber, welche IDs zu welchem Slave gehören, wie viele Bytes dieser auf einer ID erwartet oder sendet, steckt in einer LDF die aber von keinem Fahrzeughersteller öffentlich verfügbar gemacht wird.
Die LIN-Kommunikationsart bedingt aber das der Master Sensoren periodisch abfragen muss um eine Zustandsänderung zu erkennen, wohingegen Aktoren nur dann angesprochen werden wenn etwas getan werden soll. Zustandsangaben die die LIN-Slaves ggf. benötigen, sowas wie "Zündung an", "Motor läuft", etc. könnten auch wie Sensoren in einem sehr kurzen Takt ausgegeben werden.
Die Abfragefrequenz richtet sich dabei nach der zu erwartenden Wertänderung eines Sensors. Der Regensensor z.B. wird sicher recht oft abgefragt, da er blitzschnell auf auf die Scheibe auftreffendes Wasser reagieren muss. Wohingegen der Batteriesensor eher nicht so oft gefragt wird, weil sich die Parameter dort relativ langsam ändern (Strom, Spannung, Ladung, Temperatur, ...).
Man kann also bereits anhand der Frequenz einer ID einschätzen ob es sich dabei um einen Sensor oder Aktor handelt. Hier mal über ein paar Logs die Zuordnung von LIN ID zu dem Zeitlichen Abstand zwischen zwei auftreten in den Logs:
Gruppe LIN-ID Frequenz Bemerkung 1 0x06 ~43 Hz 2 0x05 ~21 Hz 3 0x20 ~11 Hz 4 0x0E 4 Hz 5 0x17, 0x19, 0x21, 0x26, 0x27, 0x2A, 0x2B ~3 Hz 6 0x08, 0x0D, 0x0F, 0x10 ~1 Hz Auch der Zeitpunkt des Auftretens einer ID lässt Rückschlüsse zu. Nehmen wir den Wischermotor. Der bekommt sicher nur dann einen Befehl wenn er sich in Bewegung setzen soll. D.H. wenn ich eine Aufzeichnung mache in der ich z.B. 3x bewusst den Wischer manuell aktiviere und dabei versuche ein gewisses Timing einzuhalten, dann müsste sich das widerspiegeln. z.B.: 3 Sekunden warten, einmal betätigen, wieder 3 Sekunden warten, wieder einmal betätigen, wieder warten, 3x hintereinander betätigen.
Bei anderen IDs sind es eher die Daten im Payload die eine Änderung anzeigen, d.h. die ID selbst liegt periodisch an, aber ihre Werteänderung nicht. Beispielsweise der Regensensor. Der wird vermutlich eine "Regenmenge" als Wertebereich (von leichtem Niesel bis Wasserfall reichen) und einen Boolean für Regen/Kein Regen haben. Soweit mir bekannt wird über den Regensensor auch die Lichtautomatik gesteuert, d.H. es wird evtl. noch einen Lichtmengenwert geben. Den Regenwert könnte man mit einer Sprühflasche ändern, den Lichtwert mit einer Taschenlampe.
Was man bei LIN wohl auch gern findet sind sog. "Rolling Counter" um verlorene Pakete zu erkennen. Dabei wird ein Byte bei jedem Frame um +1 erhöht und läuft bei erreichen von 255 -> 0 über und beginnt von vorn.
Batteriesensor-ID ermitteln
Der erste, einfachste Test war ein LIN-ID Vergleich mit und ohne angeschlossenen Batteriesensor (den kann ich ja einfach abziehen) durchzuführen. Das zeigte das die LIN ID 0x0D definitiv zum Batteriesensor gehört:
Code
Alles anzeigenIDs ohne angesteckten Batteriesensor: 0x05 0x06 0x10 0x20 0x35 0x3C Zusätzliche IDs mit angestecktem Sensor: 0x0D 0x0E 0x0F 0x17 0x26 0x2B # Log MIT Batteriesensor (35.367405) lin0 00D# # UNANSWERED <-- Wird vom BCM gepollt aber nie beantwortet = Sensor fehlt # Log OHNE Batteriesensor (178.207727) lin0 00D#B91FC42D # OK -
Ich habe meinen LIN-Sniffer nun um eine Sendefunktion erweitert. Jetzt wird es interessant. Besonders angenehm ist, das LIN nur dann sendet wenn der Master das tut und nach Zündung aus hält das BCM auf dem LIN-Bus die Füße still. Somit kann ich ungehemmt senden. Wenn natürlich das BCM einige Module vom Strom nimmt habe ich schlechte Karten...
Zumindest beim Batteriesensor ist das nicht möglich, denn der hängt ja direkt an der Batterie, ohne irgendwelche Kill-Switches dazwischen
Und von dem kann ich schonmal seine Teilenummer abfragen.CodeHEADER 2B HEADER sent for ID 0x2B - watch for RX response (1890.789612) lin0 02B#024147394E000000 # RX Classic HEADER 2B HEADER sent for ID 0x2B - watch for RX response (1891.210934) lin0 02B#0331304336373900 # RX Classic HEADER 2B HEADER sent for ID 0x2B - watch for RX response (1891.610417) lin0 02B#0444450000000000 # RX ClassicUnd nun "pinge" ich einfach mal alle IDs durch... mal schauen
-
Ich habe meinen Sniffer um eine SCAN-Funktion erweitert, dabei sendet er als LIN-Master die IDs 0x00 - 0x3F auf den Bus. Wenn sich ein Slave angesprochen fühlt sendet er seine Daten zurück. Da der Batteriesensor ja permanent am Strom ist (anders als z.B. der Regensensor oder das BCM) ist auch sein Bus immer aktiv. Also habe ich mal nur den an meinen Sniffer gehangen und somit ist nun klar welche IDs der belegt:
Code
Alles anzeigenHEADER 0x04 HEADER sent for ID 0x04 - watch for RX response (6540.949638) lin0 004#FF903CBC # RX Classic HEADER 0x0d HEADER sent for ID 0x0D - watch for RX response (6634.353832) lin0 00D#0020C952 # RX Classic HEADER 0x0e HEADER sent for ID 0x0E - watch for RX response (6638.638223) lin0 00E#00B219FF # RX Classic HEADER 0x0f HEADER sent for ID 0x0F - watch for RX response (6639.969796) lin0 00F#CD8DB5FF # RX Classic HEADER 0x17 HEADER sent for ID 0x17 - watch for RX response (6684.617584) lin0 017#00C000C0 # RX Classic (6684.617584) lin0 017#00C000C0 # RX Classic HEADER 0x22 HEADER sent for ID 0x22 - watch for RX response (6704.789716) lin0 022#5000 # RX Classic HEADER 0x26 HEADER sent for ID 0x26 - watch for RX response (6710.217668) lin0 026#01C000C0 # RX Classic HEADER 0x27 HEADER sent for ID 0x27 - watch for RX response (6711.959994) lin0 027#01F0FFFF # RX Classic HEADER 0x2a HEADER sent for ID 0x2A - watch for RX response (6720.255126) lin0 02A#FFFFFFFFFFFF # RX Classic HEADER 0x2b HEADER sent for ID 0x2B - watch for RX response (6722.715719) lin0 02B#024147394E000000 # RX Classic -
Es hat jetzt etwas gedauert, auch um div. Auswertungen zu machen, vor allem aber auch um mein Tool zu entwickeln, aber ich denke Spannung und Strom habe ich entschlüsselt.
Für den Test-Aufbau habe ich den LIN des Batteriesensors vom Fahrzeug getrennt und direkt mit meinem Sniffer-Tool verbunden. Im Tool habe ich eine Funktion "POLL" entwickelt die eine bestimmte ID als Master in einer wählbaren Periode auf den Bus legt. Damit habe ich die ID 0x0D, welche ich in Verdacht hatte Strom und Spannung zu enthalten über fast 2 Stunden mitlaufen lassen, während ich das Fahrzeug nur am Batterieladegerät (CTEK MX5) hatte. Die Spannung habe ich zwischendurch mit einem Fluke Multimeter überprüft und bis auf 0,02V passt sie präzise zur Formel und den Messwerten des Sensors.
LIN ID 0x0D
Mein Tool liefert z.B. diesen Frame:
Der erste Wert in Klammern ist die Zeit in Mikrosekunden seit dem Start des Sniffers. Die "00D#" zeigt die LIN ID (nicht PID!) an, danach folgend die Bytes in HEX-Paaren. Das "RX Classic" zeigt an das die Prüfsumme des LIN-Frames mit der Classic-Methode berechnet wurde (LIN Standard 1.3). Die Bytes liegen in der Reihenfolge vor wie sie auf den Bus geschickt wurden.
Strom (1.+2. Byte)
Der Strom berechnet sich aus dem 1. und 2. Byte im Little-Endian Format. Also muss man aus "2520" ein "2025" machen um einen 16-Bit Wert zu erhalten. Dabei ist der Ruhezustand ("0 A", also kein Stromfluß aus/in die Batterie) mit dem Zahlenwert 0x2000 (8192 dez.) versehen, diesen muss man abziehen um einen relativen Stromfluß zu erhalten. Werte über 0x2000 zeigen also eine Ladung (Strom fließ in die Batterie) und Werte unter 0x2000 eine Entladung (Strom wird aus der Batterie entnommen) an. Die kleinste Einheit sind 10 mA.
Die Formel lautet: I [mA] = ((b[1] << 8 | b[0]) − 0x2000) × 10
Damit ist ein Wertebereich von -82A (Entladung) und +573A (Ladung) darstellbar.
Spannung (3. Byte)
Die Spannung ergibt sich aus dem 3. Byte geteilt durch 16.
Die Formel lautet: V = b[2] / 16
Damit ist ein Wertebereich von 0,0 bis 16,9 Volt mit einer Nachkommastelle darstellbar.
Zähler (4. Byte)
Der Wert erhöht sich einfach alle 11 Minuten um eins und läuft nach 0xFF wieder auf 0x00 über. Das wird vom BCM u.U. dafür verwendet die Plausibilität der Sensorwerte zu überprüfen um sicherzugehen das der Sensor nicht abgestürzt ist/hängt.
-
Falls es jemand interessiert, hier ist mein Sourcecode des Sniffers zu haben https://github.com/igittigitt/esp32_lin_sniffer
-
Damit ist ein Wertebereich von -82A (Entladung) und +573A (Ladung) darstellbar.
Ist das nicht eher 82 A Ladung (Laden mit max. 1 C)und 573 A Entladung (Anlaßvorgang mit Vorglühen)?
-
Ist das nicht eher 82 A Ladung (Laden mit max. 1 C)und 573 A Entladung (Anlaßvorgang mit Vorglühen)?
Das hatte ich auch zunächst gedacht, aber wenn man das Vorzeichen wechselt, dann würde das Ladegerät Strom aus der Batterie ziehen und das ist ja eher unwahrscheinlich...
So sieht übrigens ein Motorstart aus:
-
Habe mir jetzt doch noch ein eigenes Analyzer-Tool geschrieben (liegt im Github Repo bei)
UPDATE: Ich habe daraus nun ein eigenes Projekt gemacht und die Funktionalität massiv erweitert. Mehr dazu in einem eigenen Thema =>
ThemaLIN/CAN Analysetool "CaLiGraph"
Moin zusammen, beflügelt von meinem LIN-Sniffer auf ESP32 Basis und der dafür angefangenen LIN-Analyzer Tool Software habe ich das Projekt erweitert und programmiere nun einen LIN-Bus/CAN-Bus Analyzer.
Funktionale Anforderungen:- Verarbeiten, analysieren und visualisieren von Dump-Daten im "CANDUMP" (und später auch mal in anderen) Datenformat
- Daten können aus Datei (Logdatei) gelesen, aber auch Live von einem Websocket geliefert werden (z.B. mein LIN-Sniffer Tool)
- Mehrere Betriebsmodus:
Go4IT22. Februar 2026 um 14:08 -
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!