diff --git a/Funkprotokoll.md b/Funkprotokoll.md index ea78fbf..62ba743 100644 --- a/Funkprotokoll.md +++ b/Funkprotokoll.md @@ -1 +1,58 @@ -Willkommen im Wiki. \ No newline at end of file +# 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) \ No newline at end of file