The Ciholas Serial Protocol (CSP) provides a method of communication between devices over serial link. Devices such as the CUWB USB Driver devices can take an Ethernet packet and convert to a Serial CDP packet or vice-versa. These packets will include IP information such as IP address and port in order to allow the devices to know where the data needs to be sent.
All CSP numerical fields of length 2, 4, and 8 bytes are transmitted using little-endian format. NOTE: CSP does not utilize network byte order. The CSP format utilizes little-endian format in order to reduce overhead and complexity when transmitting or receiving packets. The overall effect is decreased processor usage as well as increasing confidence for developers through eliminating the need to byte swap data before usage.
CDP fields containing ASCII strings are not byte-swapped.
A CSP Packet is made up of a CSP Header followed by a CSP Protocol Header followed by the data.
Field Name | Byte Length | Type | Description |
---|---|---|---|
MARK | 4 | uInt32 | The 4 byte magic word (0x30505343 in little endian). |
TYPE | 2 | uInt16 | Type of Data |
LENGTH | 2 | uInt16 | The length of the data portion of the packet. |
DATA CHECKSUM | 4 | uInt32 | The DCS calculation of the Protocol Header and Data. |
HEADER CHECKSUM | 4 | uInt32 | The DCS calculation of the above header items. |
CSP Streams may contain data items not documented here. These data items should be skipped over in case there are known data items appearing later in the same CSP packet.
This data type is for an ASCII string to send.
Field Name | Byte Length | Type | Description |
---|---|---|---|
ASCII String | X | str | The ASCII string to send. Must end with a newline or carriage return character. |
This data type is a keep alive that uses the CSP version as the payload.
Field Name | Byte Length | Type | Description |
---|---|---|---|
CSP Version | 1 | uInt8 | The CSP version being used to send this packet. |
This datatype is the header for the CDP Data being wrapped in CSP.
Field Name | Byte Length | Type | Description |
---|---|---|---|
IP | 4 | uInt32 | The UDP IP Address. This can either be a source address if leaving a CUWB USB device or a destination address if coming in from a CUWB USB device. |
PORT | 2 | uInt16 | The UDP port number. This can either be a source port if leaving a CUWB USB device or a destination port if coming in from a CUWB USB device. |
DATA | X | struct | The CDP packet, including CDP headers and data items. See CDP for more details. |
Version | Date | Change Description |
---|---|---|
5.0.0 | 2025-09-15 | Initial Preliminary Release, Compatible with 300 series devices |