Das folgende wurde nur geplant, war nie Produktiv und ist hier archiviert

rs485bus

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 Adresse1 Byte Paketlänge in Byte0-250 Byte Daten2 Byte CRC16
  • Der Slave muss darauf mit dem wie folgt aufgebautem Paket antworten:
1 Statusbyte1 Byte Paketlänge in Byte0-251 Byte Daten2 Byte CRC16
  • Nach dem Antwort des Slaves ist der Bus frei und kann wieder vom Master benutzt werden.

Aufbau Statusbyte:

ReservedReservedReservedReservedBUFFERCRC_ERRRX_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:

  • Aufzeichnungen sämtlicher über die Leitung gehender Pakete.
  • Überwachung des Stromverbrauchs der Stromversorgungsleitungen. Sofortige Abschaltung bei verdacht auf Kurzschluss.
  • Galvanische Trennung.

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%
project/rs485bus.txt · Zuletzt geändert: 2015/05/11 21:50 von 84.161.111.245