-
Notifications
You must be signed in to change notification settings - Fork 5
CZII Serial Protocol
NOTE: CZII data struction is somewhat similar to the Carrier Infinity protocol, see: https://github.com/nebulous/infinitude/wiki/Infinity-serial-protocol. The Infinity protocol seems to be an evolution of the CZII protocol. Much of the info below is
Frames are variable length, as defined in the packet header. Frames are terminated with a CRC16 checksum, using the header and data for the checksum calculation.
Frame | ||||||
---|---|---|---|---|---|---|
Header | Data | Checksum | ||||
2 bytes | 2 bytes | 1 byte | 2 bytes | 1 byte | ||
Destination Address | Source Address | Length | Reserved | Function | 0-255 bytes | 2 bytes |
Note: It is possible that the source and destination addresses are only 1 byte, as it appears the second byte is always 0x00. Also, the reserved bytes are unknown as to their function. They are almost always 0x00.
Destination: Destination Device address (Zone#) of the packet
Source: Source Device address (Zone#) of the packet (where the response will be sent)
Length: Length in bytes of the data to follow
Function: Function of the packet – read/write/etc.
Checksum: CRC16 checksum on entire frame
Typical Function Codes:
6 (0x06) Response
1 Byte Length, Data=0x00 – Seems to be an ACK to a write
Variable Length > 3 bytes – a response to a read request
11 (0x0B) Read Request
3 byte Length, Data=Table and row of data to get
12 (0x0C) Write Request
Variable Length > 3 bytes
First 3 bytes of data are table and row to write to
Following bytes are data to write
21 (0x15) Error
1 Byte Length, Data=0x00
Data values in Decimal. For a more detailed explanation of the data go to Interpreting Data.
Request from Zone 1 Master to the CZII Controller for the data in Table 9 Row 1.
9 0 1 0 3 0 0 11 0 9 1 213 184
Destination = 9 (CZII Controller)
Source = 1 (Zone 1 Master)
Data Length = 3
Function = 11 (Read Request)
Data = 0 9 1 (Table 9, Row 1)
Checksum = 213 184
Response from CZII Controller to the Zone 1 Master with the data from Table 9 Row 1.
1 0 9 0 11 0 0 6 0 9 1 255 255 255 255 255 255 255 255 52 154
Destination = 1 (Zone 1 Master)
Source = 9 (CZII Controller)
Data Length = 11
Function = 6 (Response)
Data = 0 9 1 (Table 9, Row 1) 255 255 255 255 255 255 255 255
Checksum = 52 154