Es gibt einen Master und bis zu 31 Slaves auf dem Bus (mehr Geräte mit Repeatern möglich)
Kommunikation:
Pakete dürfen maximal 255 Bytes groß sein.
Das Frameformat ist 9N1 - das neunte bit ist nur bei Master → Slave Kommunikation und nur während die Adressbytes übertragen werden gesetzt.
Bei falscher CRC oder bei Paketen größer als der Empfangspuffer müssen die Slaves ein leeres Paket mit entsprechend gesetzten Bits im Statusbyte senden.
Der Master kann Broadcastpakete verschicken indem er alle Bits des Addressbytes setzt. Slaves dürfen auf dieses Paket nicht antworten.
Kommunikation wird vom Master mit einem wie folgt aufgebautem Paket initiiert:
2 Byte Adresse | 1 Byte Paketlänge in Byte | 0-250 Byte Daten | 2 Byte CRC16 |
1 Statusbyte | 1 Byte Paketlänge in Byte | 0-251 Byte Daten | 2 Byte CRC16 |
Aufbau Statusbyte:
Reserved | Reserved | Reserved | Reserved | BUFFER | CRC_ERR | RX_ERR |
BUFFER: Die angegebene Paketlänge war Größer als der Empfangspuffer des Slaves.
RX_ERR: Bei mindestens einem der Bytes ist ein Frame Error oder Data Overrun aufgetreten.
CRC_ERR: Die berechnete CRC16 Checksumme war falsch.
Bitrate: 250000 Baud
Physikalischer Aufbau:
Die Daten werden über eine Twisted Pair Leitung übertragen (Cat5 Kabel oder ähnliche). 1 Leitungspaar ist für Signale vorgesehen, restliche 3 Leitungspaare führen Massepotenzial und Stromversorgung (24V).
Anforderungen an den Master:
TODO/Ideen:
Timeouts: 10 Bytezeiten? (800 Mikrosekunden) Sehr großzügig bemessen, eventuell weniger?
Status:
Obsolet, da canbus langfristig besser skaliert.
Mastersoftware: Done
Slavesoftware: 70%