Mein Testaufbau sieht so aus: Beim Breakboard ist oben CAN High und unten CAN.Low und an beiden Enden ein Widerstand von 120 Ohm zwischen CAN High und CAN.Low.
Hier sieht man die CAN-Signale auf meinem Oziloskop, oben CAN-High und unten CAN-Low
Die erste Hürde war den Adapter zum laufen zu bekommen. Der USBtin unterstützt verschiedene Betriebssysteme und Programme.
Da ich unter Linux arbeite habe ich es erst einmal mit einem Terminal Programm versucht. Der CAN-Adapter richtet eine Serielle Schnittstelle unter dem Port /dev/ttyAMC0 ein, so sehen die Einstellungen unter CuteCom aus: Dann musste ich die Datenübertragungsrate von dem Crossfire CAN-Bus raus bekommen... Nach einigen Test hatte ich es geschafft, diese ist 500 kBaud oder S6 in den meisten Programmen.
Als nächstes habe ich erst mal die Grundlegende Software installiert:
Code: Alles auswählen
$ git clone https://github.com/linux-can/can-utils.git
$ cd can-utils
$ make
Code: Alles auswählen
$ sudo ./slcan_attach -f -s6 -o /dev/ttyACM0
$ sudo ./slcand ttyACM0 slcan0
$ sudo ifconfig slcan0 up
Code: Alles auswählen
$ candump slcan0
Das Skreem Modul sendet von sich aus keine Daten, es wartet auf folgenden Befehl vom Motorsteuergerät:
Code: Alles auswählen
101#4144000000000000
Code: Alles auswählen
111#03A0CFB400000000
111#4A3000729B7BC8D6
Code: Alles auswählen
slcan0 111 [8] 4A 30 00 CF F7 7E F9 D8
slcan0 111 [8] 03 05 09 88 00 00 00 00
slcan0 111 [8] 4A 30 00 EF B5 0A 2D CF
slcan0 111 [8] 03 F9 CD D7 00 00 00 00
slcan0 111 [8] 4A 30 00 8B 52 1A DA 79
slcan0 111 [8] 03 FD 9F 0B 00 00 00 00
slcan0 111 [8] 4A 30 00 40 CB AA BA EA
slcan0 111 [8] 03 D6 BC 4C 00 00 00 00
slcan0 111 [8] 4A 30 00 C8 13 DA 9F 78
slcan0 111 [8] 03 8A D2 8F 00 00 00 00
slcan0 111 [8] 4A 30 00 49 5E 8A AA 8F
slcan0 111 [8] 03 AC A7 2B 00 00 00 00
slcan0 111 [8] 4A 30 00 0E D5 BD 49 03
slcan0 111 [8] 03 B6 F1 7D 00 00 00 00
slcan0 111 [8] 4A 30 00 9D C7 29 5E 3B
slcan0 111 [8] 03 95 20 77 00 00 00 00
slcan0 111 [8] 4A 30 00 15 1B DB AD 09
slcan0 111 [8] 03 04 3B 0B 00 00 00 00
slcan0 111 [8] 4A 30 00 08 FA 88 4C 0D
slcan0 111 [8] 03 A2 E7 0B 00 00 00 00
slcan0 111 [8] 4A 30 00 98 9A 06 AA 12
slcan0 111 [8] 03 D6 A8 CF 00 00 00 00
slcan0 111 [8] 4A 30 00 7C F0 A6 05 CE
slcan0 111 [8] 03 DA 4A C2 00 00 00 00
slcan0 111 [8] 4A 30 00 2F A9 60 61 AE
slcan0 111 [8] 03 E3 ED 58 00 00 00 00
slcan0 111 [8] 4A 30 00 8C F7 F8 15 49
slcan0 111 [8] 03 5C 73 3E 00 00 00 00
slcan0 111 [8] 4A 30 00 C8 01 25 6D CE
slcan0 111 [8] 03 6D A7 F9 00 00 00 00
slcan0 111 [8] 4A 30 00 E8 15 0C 2F E3
slcan0 111 [8] 03 EC 62 CC 00 00 00 00
slcan0 111 [8] 4A 30 00 48 62 B1 ED 9C
slcan0 111 [8] 03 6A 59 9D 00 00 00 00
Bis jetzt konnte ich noch nicht verstehen wie das Sreem die beiden Werte bildet.
Mit folgenden Befehl kann man eine Antwort vom Skreem Modul trigeern:
Code: Alles auswählen
cansend slcan0 101#4144000000000000
Ich habe dann mal einfach im Auto folgende Befehle gesendet als ich das Skreem abgeklemmt hatte:
Code: Alles auswählen
cansend slcan0 111#4A3000729B7BC8D6
cansend slcan0 111#03A0CFB400000000
Jetzt gilt es zu entschlüsseln wie das Skreem auf die beiden Antworten kommt.