====== Das folgende wurde nur geplant, war nie Produktiv und ist hier archiviert ====== ====== rs485bus ====== {{tag>project hardware electronics infrastructure old}} 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| * Der Slave muss darauf mit dem wie folgt aufgebautem Paket antworten: |1 Statusbyte|1 Byte Paketlänge in Byte|0-251 Byte Daten|2 Byte CRC16| * Nach dem Antwort des Slaves ist der Bus frei und kann wieder vom Master benutzt werden. 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:** * 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 [[friedhof:canbus]] langfristig besser skaliert. * Mastersoftware: Done * Slavesoftware: 70%