RS-X is based on RS485 and cover easyIPC layer 1 and 2. The objective of the protocol is to make optional use of RS485 to create system streams.
Layer 2 consist of a very simple 9 byte message header as illustrated above:
- Start Byte (0xAA). The value 0xAA is used to tag the start of a message since it is a seldom used value and will give few fakes.
- DID (Device ID) is a 1 byte unsigned value identifying the device on this network. 0 is Network Master while 1-31 are devices. 32 – 63 are function groups to allow multi-drop messages. The remaining are reserved for future use.
- SID (Stream ID) is a 2 byte unsigned number representing a 2-way data stream. SID=0 is always to Managing Entity on the device, all others are selected resources on the device.
- MID (Message ID) is a 1 byte unsigned number identifying the message itself. The content is only known by sender & receiver.
- SEQ (Sequence Number) is a number that start on 0 count up for every message with this DID. After 255 comes 0 allowing a continuous stream to detect if messages are missing.
- DL (Data Length) indicate number of bytes in the payload.
- CRC is a “standard” 16 bit checksum. The algorithm for calculating this will be aligned with hardware capabilities on STM32.