BlubbFish 2020-09-17 11:41:08 +02:00
parent 271d5e78aa
commit 8df7f30ed7

@ -1 +1,58 @@
Willkommen im Wiki.
# Funkprotokoll für die Zeitschaltung
## Specs
* Scakeabke Node Address Protocol
* http://www.hth.com/snap/
* http://www.hth.com/filelibrary/pdffiles/snap.pdf
## Aufbau
* CRC-8
* 3 Data-Bytes (1 Command-Byte, 2 Daten-Bytes)
* All Byte Descriptions are in LSB
2.0 Protocol description.
```
SYNC Synchronization byte
HDB2 Header Definition Byte 2
HDB1 Header Definition Byte 1
DAB1 Destination Address Byte
SAB1 Source Address Byte
DB3 Data Byte 3
DB2 Data Byte 2
DB1 Data Byte 1
CRC1 High byte of CRC-8
```
### SYNC
2.1 Synchronization byte - SYNC. `0b01010100`
### HDB
2.2 Overview of header definition bytes (HDB2 and HDB1).
* HDB2 `0b01010000`
* DAB = Number of Destination Address Bytes (8,7 Bit) [1 Byte destination address]
* SAB = Number of Source Address Bytes (6,5 Bit) [1 Byte source address]
* PFB = Number of Protocol specific Flag Bytes (4,3 Bit) [0 Byte flags]
* ACK = ACK/NAK bits (2,1 Bit) [No ACK request (Tx)]
* HDB1 `0b10110011`
* CMD = CoMmanD mode bit (8 Bit) [indicates that the data in DB1 contains a command]
* EDM = Error Detection Method (7,6,5 Bit) [8-bit CRC]
* NDB = Number of Data Bytes (4,3,2,1 Bit) [3 Bytes]
### DAB
Address 0 is reserved as a broadcast address and should not be used for anything else. Otherwise that is the destination address of the node.
### SAB
Source Address of that Node. If a Node hasn't a address it should use ´0xFF´
### DB
* DB1 (`0x02`-`0x7F` Query, `0x82`-`0xFF` Responses)
* DB2 (1 Data-Byte, if not needed = 0)
* DB3 (2 Data-Byte, if not needed = 0)
### CRC
* http://code.google.com/p/avr-code/source/browse/trunk/thermo/crc8.c
## Addresses
* Brodcast-Address: `0x00`
* No Address Definded: `0xFF`
* Controllers: `0xD0`-`0xE0`
* Actors: `0x10`-`0xAF`
All others are reserved for future use!
## Querys
* `0x02`: Status Request (Data: none)
* `0x03`: Request Set Address (Data: none) [the only vaild command that can send with SAB `0xFF`]
* `0x04`: Request Set Capabilitys (Data: none)
## Responses
* `0x82`: Status Response (Data: 1 Byte; `0x01` Ready, `0x02` Armed, `0x03` Ilde)
* `0x83`: Set Adress (Data 1 Byte; Address)
* `0x84`: Set Capability (Data 1 Byte, `Bit 1`: Servo, `Bit 2`: Motor, `Bit 3`: Quickstart-Button, `Bit 4-8`: Reserved)