The RapidHA serial protocol has a frame-based architecture. All communication between the Host and Module is facilitated by the exchange of data frames.
Serial Interface Parameters
The serial UART interface uses the following parameters:
Table 1: RapidHA Serial Parameters
Parameter | Value |
---|---|
Baud Rate | 115200 |
Parity | None |
Stop Bits | 1 |
Data Bits | 8 |
Frame Structure
Every RapidHA frame has the structure illustrated below:
Header
The frame header is a fixed 5 bytes in length. Each byte is described in Table 2.
Table 2: Frame Header Description
Byte | Field Name | Description |
---|---|---|
0 | Start of Frame | Fixed value of 0xF1; will be referred to as START_OF_FRAME throughout this document. |
1 | Primary Header | Defines the primary frame type. These are listed in /wiki/spaces/SPRHA17/pages/37093546. |
2 | Secondary Header | Identifies the command subset of the given primary frame type. These are listed in /wiki/spaces/SPRHA17/pages/37093546. |
3 | Frame Sequence Number | 0 – 127: Host initiated transactions 128 – 255: Module initiated transactions
The Frame Sequence Number enumerates a serial message exchanged between the Host and the Module, and vice versa. Use of a Frame Sequence Number for each such message is recommended. For best practice, we also recommend the Frame Sequence Number be incremented by 1 for each newly initiated message. The response to a message must use the same Frame Sequence Number as the message that is being responded to. Any transaction, whether initiated by the Host or the Module, may be acknowledged (i.e., ACK'ed) by the recipient with a response using the same Frame Sequence Number. The Frame Sequence Number is used for tracking purposes but is not a mandatory feature. If its use is not desired, it should be assigned a value of 0x00. |
4 | Payload Length | Defines the length of the payload of a received or transmitted frame as 0-n bytes; at the time of this writing, the maximum acceptable values for n are:
Received by Module – 0x7A or 122 bytes |
Payload
Unlike the header, the payload is of variable size, ranging from 0 to n bytes; the size is based on the Payload Length field in the header. All fields contained in the payload are ordered with the least significant byte first.
The payload contains the command’s parameters. Command parameters are detailed in Frame Payload Definitions.
Checksum
The Checksum is a fixed two bytes in length, with the MSB indicating the End of Frame (EOF). It is calculated by summing the values of byes starting from the Primary Header to the end of the Payload. Any overflow above two bytes is discarded.
The checksum calculation (CS) is given here: