Protocols – Overview

Protocol describes the packetization and method for moving data back and forth across that physical layer. SHIP supports three protocols, though not all protocols are supported across all available physical layers on a SIM:

Raw Protocol

See the Raw protocol page for detailed information, and AN0504 – The Raw Communications Protocol for a video application note.

The Raw protocol was made available starting in SHIP v5.0.126, and enables simple movement of the following data types:

  • Boolean (as Byte 0x00 or !0x01)
  • Byte
  • Short (16-bit)
  • Integer (32-bit)
  • Float (single precision, 32-bit)
  • String (null terminated)

There is no packetization, framing, or checksums/CRC calculations performed on the data. The protocol, therefore, is very simple to interpret and generate on an attached device, however is susceptible to errors and misalignment over time and should only be used in some applications.

The Modbus Protocol

Visit the Modbus documentation page for more Modbus resources, technical information, and software.

In all SHIP Modbus protocols, the following data types are supported:

  • Boolean
  • Byte via the Daniel Extension
  • Short
  • Integer via the Daniel Extension
  • Float via the Daniel Extension
  • String via a custom Function

 Starting with SHIP v5.0.126

Note that all values are transported as big Endian, however all values within the SHIP Sail scripting and virtual machine environment are little Endian, regardless of the underlying MCU on the SIM.

The following four Modbus protocol sub-protocols are supported:

  • Master RTU
  • Master ASCII
  • Slave RTU
  • Slave ASCII

Bridge Protocol

See the Bridge Protocol documentation page for more resources, technical information, and software.