M1DST Blog

TSIP Packet Structure

TSIP stands for Trimble Standard Interface Protocol, and it is used in products from Trimble such as the Thunderbolt and differs from NMEA which is a lot simpler and only contains status data.

The TSIP protocol is based on the transmission of packets of information between the user equipment and the GPS receiver. Each packet includes an identification code that identifies the meaning and format of the data that follows. Each packet begins and ends with control characters.

TSIP packet structure is the same for both commands and reports. The packet format is:

<DLE> <id> <data string bytes> <DLE> <ETX>

Where:

The bytes in the data string can have any value. To prevent confusion with the frame sequences <DLE> <id> and <DLE> <ETX>, every <DLE> byte in the data string is preceded by an extra <DLE> byte (‘stuffing’). These extra <DLE> bytes must be added (‘stuffed’) before sending a packet and removed after receiving the packet. Notice that a simple <DLE> <ETX> sequence does not necessarily signify the end of the packet, as these can be bytes in the middle of a data string. The end of a packet is <ETX> preceded by an odd number of <DLE> bytes.

Multiple-byte numbers (integer, float, and double) follow the ANSI / IEEE Std. 754 IEEE Standard for binary Floating-Point Arithmetic. They are sent most-significant byte first. Note that switching the byte order will be required in Intel-based machines. The data types used in the ThunderBolt TSIP are defined below.

An example packet:

0x10, 
0x8F, 0xAB, 
0x00, 0x03, 0xE5, 0x1F, 0x06, 0x88, 0x00, 0x00, 
0x0C, 0x17, 0x36, 0x16, 0x18, 0x01, 0x07, 0xDC,
0x10, 0x03

Your challenge is to decode this (hint: it is a timing packet).  I will post more about the breakdown of this kind of packet in the next post.

 

Exit mobile version