• CUWB v5.0
Ciholas Serial Protocol

Overview

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.

Data Format

Endianness

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.

CSP Packet Structure

A CSP Packet is made up of a CSP Header followed by a CSP Protocol Header followed by the data.

CSP Packet Header

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.

Known Data Items vs Unknown Data 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.

Commonly Used Data Types

0x0001 - ASCII

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.

0x0002 - Keep Alive

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.

0x0101 - UDP CDP Header

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.

Ciholas Serial Protocol Change Log

Version Date Change Description
5.0.0 2025-09-15 Initial Preliminary Release, Compatible with 300 series devices