Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
projekte:hausautomatisierung:protokoll [2014/05/31 14:34] – ralf | projekte:hausautomatisierung:protokoll [2018/02/01 12:56] (aktuell) – 2001:638:a01:8061:aefd:ceff:fef3:ba65 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Protokollidee für den RS485-Hausbus ====== | + | ====== Protokollidee für den RS485-Hausbus |
- | Speed: | + | Speed: |
-> Bit pro Zeichen: 10\\ | -> Bit pro Zeichen: 10\\ | ||
- | -> Dauer für ein Byte: 260µs/Byte\\ | + | -> Dauer für ein Byte: 86.806µs/Byte\\ |
- | -> Datenrate: | + | -> Datenrate: |
Default-Modus aller Geräte: Empfangen | Default-Modus aller Geräte: Empfangen | ||
Zeile 13: | Zeile 13: | ||
^ Byte# ^ Data ^ Description ^ | ^ Byte# ^ Data ^ Description ^ | ||
| 0 | 0x40 | Präambel, leitet das senden ein | | | 0 | 0x40 | Präambel, leitet das senden ein | | ||
- | | 1 | 0x00-0xff | Device ID, addressiert das angesprochene Gerät | + | | 1 | 0x00-0xff | Source |
- | | 2 | 0x00-0x40 | Payload Length (max. 64 Byte) | | + | | 2 | 0x00-0xff | Destination Device ID | |
+ | | 3 | 0x00-0x40 | Payload Length (max. 64 Byte) | | ||
| 3-(max. 67) | | Payload, das jeweilige Gerät muss wissen was es mit den Daten anfängt | | | 3-(max. 67) | | Payload, das jeweilige Gerät muss wissen was es mit den Daten anfängt | | ||
- | | letztes Byte | | Checksumme (Bytesweises XOR über alle vorhergehenden Bytes, inkl. Präambel) | + | | letztes Byte | | CRC8 Prüfsumme |
- | Die Zeit zwischen einzelnen Bytes eines kompletten Frames, darf 1ms nicht überschreiten. | + | Die Zeit zwischen einzelnen Bytes eines kompletten Frames, darf 100µs |
Wird die Zeit überschritten, | Wird die Zeit überschritten, | ||
- | Ein Frame maximaler Größe belegt so den Bus maximal 68ms. | + | Bei fehlerhafter Prüfsumme wird das Paket verworfen. |
- | Ein Frame minimaler Größe belegt den Bus maximal 4ms. | + | |
+ | Bei Kollissionserkennung wird random time gewartet, dann erneutes Senden versucht. |