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: 2012/03/14 00:43 von 109.192.98.64