Bittiming : http://www.bittiming.can-wiki.info/
SDO Protokoll: http://atlas.web.cern.ch/Atlas/GROUPS/DAQTRIG/DCS/LMB/PROFILE/cano-sdo.htm
Jeder Befehl endet mit einem '\r' / 0x13. USB2CAN antwortet mit
Beispiel:
| OUT | IN | Kommentar |
|---|---|---|
| S8\r | \r | Baudrate auf 1Mbps setzen, ACK |
| O\r | \r | CAN Kanal öffnen, ACK |
| X\r | \a | Unbekannter Befehl, NACK |
| V\r | V0115\r | Hardwareversion abfragen, Version 01.15, ACK |
| t700255aa\r | \r | Nachricht mit 2 Bytes (0x55, 0xAA) an ID 0x700 senden, ACK |
| t7002aa55\r | Nachricht mit 2 Bytes (0xAA, 0x55) von ID 0x700 empfangen | |
| C\r | \r | CAN Kanal schließen, ACK |
tcccldd…Normale CAN Nachricht empfangen
ccc = CAN ID (HEX) l = Anzahl Datenbytes (1 <= l <= 8) dd.. = Datenbytes (HEX) (Anzahl = l)
Tccccccccldd…Extended ID CAN Nachricht empfangen
cccccccc = CAN ID (HEX) l = Anzahl Datenbytes (1 <= l <= 8) dd.. = Datenbytes (HEX) (Anzahl = l)
rccclRTR CAN Nachricht empfangen
ccc = CAN ID (HEX) l = Anzahl angeforderter Datenbytes (1 <= l <= 8)
RcccccccclExtended ID RTR CAN Nachricht empfangen
cccccccc = CAN ID (HEX) l = Anzahl angeforderter Datenbytes (1 <= l <= 8)
SxBaudrate wählen (Muss vor dem Öffnen einer Verbindung geschehen)
x = 0 : 10kbps (momentan nicht unterstüzt, wie x = 3) x = 1 : 20kbps (momentan nicht unterstüzt, wie x = 3) x = 2 : 50kpbs (momentan nicht unterstüzt, wie x = 3) x = 3 : 100kbps x = 4 : 125kbps x = 5 : 250kbps x = 6 : 500kbps x = 7 : 800kbps (momentan nicht unterstüzt, wie x = 6) x = 8 : 1000kbps
BxxxxxxxBaudrate setzen
xxxxxxx = Baudrate in bps, mit 0 auf 7 Stellen gepadded. z.B. B0125000 = 125kbps z.B. B1000000 = 1000kbps
OCAN Kanal öffnen
LPassiven CAN Kanal öffnen
Nur Empfang von Nachrichten, keinerlei Busbeeinflussung
CCAN Kanal schließen
tcccldd…CAN Nachricht senden
ccc = CAN ID (HEX) l = Anzahl Datenbytes (1 <= l <= 8) dd.. = Datenbytes (HEX) (Anzahl = l)
tccccccccldd…CAN Nachricht senden
cccccccc = CAN Extended ID (HEX) l = Anzahl Datenbytes (1 <= l <= 8) dd.. = Datenbytes (HEX) (Anzahl = l)
rccclCAN RTR Nachricht senden
ccc = CAN ID (HEX) l = Anzahl der angeforderten Datenbytes (1 <= l <= 8)
RcccccccclCAN RTR Nachricht senden
cccccccc = CAN Extended ID (HEX) l = Anzahl der angeforderten Datenbytes (1 <= l <= 8)
MxxxxxxxxFilter Maske festlegen
xxxxxxxx = Filter Maske (HEX)
mxxxxxxxxFilterwert festlegen
xxxxxxxx = Filterwert (HEX)
ECAN Fehler abfragen (Fehler werden bis zur Abfrage geodert, Abfrage setzt Fehler zurück)
Antwort: "Exx\r" xx = Fehlerregister (HEX)
VHardwareversion abfragen
Antwort: "VMMmm\r" MM = Major Version mm = Minor Version
vFirmwareversion abfragen
Antwort: "vMMmm\r" MM = Major Version mm = Minor Version
NSeriennummer abfragen
Antwort: "Nssss\r" ssss = Seriennummer