Difference between revisions of "Protocol:SHIPBridge"

From Serious Documentation
Jump to: navigation, search
(SHIPBridge Release Status)
(What is the {{Protocol|SHIPBridge|SHIPBridge Protocol}}?)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
== What is the {{Protocol|SHIPBridge|SHIPBridge Protocol}}? ==
 
== What is the {{Protocol|SHIPBridge|SHIPBridge Protocol}}? ==
SHIPBridge is a comprehensive proprietary communications protocol in SHIP Version 5 {{v5}}.
+
SHIPBridge is a comprehensive proprietary communications protocol available in SHIP Version 5 {{v5}}.
  
The SHIPBridge protocol enables over-the-wire file access to the SIM, including firmware and GUI updates, as well as data exchange between the SIM and Host(s). Currently SHIPBridge functions over UART and USB, but future TCP/IP support will enable firmware updates, status and monitoring, and data exchange from cloud-based and server-based entities to the SIM.
+
The SHIPBridge protocol enables over-the-wire access to files stored on the SIM/SCM, updates of firmware and GUI, as well as the exchange of typed data variables. SHIPBridge is intended to function over all available communication ports available on a module (i.e., USB, UART, SPI, TCP/IP, etc.), however USB and UART are currently the only validated interfaces on most modules. Future TCP/IP support will enable firmware updates, status and monitoring, and data exchange from cloud-based and server-based entities to the modules.
  
 
SHIPBridge has the following high-level capabilities:
 
SHIPBridge has the following high-level capabilities:
 
* Robust bi-directional command-response architecture
 
* Robust bi-directional command-response architecture
** Physical layer support including UART, USB Device, and, in the future, SPI, Ethernet, WiFi, and Bluetooth
+
** Arbitrary physical layer support including UART, USB Device (future: SPI, Ethernet, WiFi, and Bluetooth)
 
** Binary framed packet protocol with CRCs for message integrity
 
** Binary framed packet protocol with CRCs for message integrity
** Multi-session: multiple hosts (or virtual hosts) can simultaneously access a SIM
+
** Multi-session: multiple controllers can simultaneously access a SIM over the same or a different physical interface
 
* SIM system information and control
 
* SIM system information and control
** Reboots, status checks, and more
+
** Reboots, status checks, firmware validation, and more
* Complete and powerful data movement  
+
* Comprehensive and powerful data movement  
 
** Shared variable philosophy to exchange status and control data
 
** Shared variable philosophy to exchange status and control data
** All SHIP-supported data types ({{DataType|Boolean}}, {{DataType|Byte}}, {{DataType|Short}}, {{DataType|Integer}}, {{DataType|Float}}, {{DataType|String}})
+
** All simple data types ({{DataType|Boolean}}, {{DataType|Byte}}, {{DataType|Short}}, {{DataType|Integer}}, {{DataType|Long}}, {{DataType|Float}}, {{DataType|Double}}, {{DataType|String}}, {{DataType|Buffer}})
 
** Polled or Push data, on a per-variable basis
 
** Polled or Push data, on a per-variable basis
** Prioritized traffic for flexible bandwidth management
+
** Run-time prioritizable traffic for flexible bandwidth management
** Bidirectional (both SIM and Host can poll and push)
+
** Fully bidirectional communication
* Flexible over-the-wire file system access
+
* Complete upgradability
** Over-the-wire updates for all files, including firmware, boot loaders, GUI files, and more
+
** Over-the-wire updates for all firmware images (i.e., boot loaders, applications, GUI)
** Abstracted remote file system access to all file systems on the SIM from an attached device
+
* (Coming soon) Flexible over-the-wire file system access
** Access to removable and fixed media from the host (USB Thumb drives, SDCards, on-SIM flash file systems)
+
** Read/write access to all removable and fixed storage media (USB Thumb drives, SDCards, on-board file systems)
 +
** Write firmware images to file system to allow background transfer of files and automatic upgrade on next boot
 +
* (Future) Persistent variable storage
 +
** Read/write access to persistent storage registry variable values
 +
* (Future) Extensive debugging capabilities
 +
** Breakpoint and step through GUI execution
 +
** Read/write access to GUI variables and node properties
  
The SHIPBridge protocol is currently used from [[SHIPTide]] over USB to update the firmware and GUI on your SIM, where the PC is acting as the Host.
+
The SHIPBridge protocol is currently used from [[SHIPTide]] over USB to update the firmware and GUI on your SIM.
  
 
== SHIPBridge Release Status ==
 
== SHIPBridge Release Status ==

Revision as of 11:26, 4 August 2016

What is the SHIPBridge Protocol?

SHIPBridge is a comprehensive proprietary communications protocol available in SHIP Version 5 Badge SHIPv5.gif.

The SHIPBridge protocol enables over-the-wire access to files stored on the SIM/SCM, updates of firmware and GUI, as well as the exchange of typed data variables. SHIPBridge is intended to function over all available communication ports available on a module (i.e., USB, UART, SPI, TCP/IP, etc.), however USB and UART are currently the only validated interfaces on most modules. Future TCP/IP support will enable firmware updates, status and monitoring, and data exchange from cloud-based and server-based entities to the modules.

SHIPBridge has the following high-level capabilities:

  • Robust bi-directional command-response architecture
    • Arbitrary physical layer support including UART, USB Device (future: SPI, Ethernet, WiFi, and Bluetooth)
    • Binary framed packet protocol with CRCs for message integrity
    • Multi-session: multiple controllers can simultaneously access a SIM over the same or a different physical interface
  • SIM system information and control
    • Reboots, status checks, firmware validation, and more
  • Comprehensive and powerful data movement
    • Shared variable philosophy to exchange status and control data
    • All simple data types (Boolean, Byte, Short, Integer, Long, Float, Double, String, Buffer)
    • Polled or Push data, on a per-variable basis
    • Run-time prioritizable traffic for flexible bandwidth management
    • Fully bidirectional communication
  • Complete upgradability
    • Over-the-wire updates for all firmware images (i.e., boot loaders, applications, GUI)
  • (Coming soon) Flexible over-the-wire file system access
    • Read/write access to all removable and fixed storage media (USB Thumb drives, SDCards, on-board file systems)
    • Write firmware images to file system to allow background transfer of files and automatic upgrade on next boot
  • (Future) Persistent variable storage
    • Read/write access to persistent storage registry variable values
  • (Future) Extensive debugging capabilities
    • Breakpoint and step through GUI execution
    • Read/write access to GUI variables and node properties

The SHIPBridge protocol is currently used from SHIPTide over USB to update the firmware and GUI on your SIM.

SHIPBridge Release Status

The SHIPBridge protocol is currently in the late stages of development, and is pending release with v5.0.

When you upgrade your SIM's firmware or GUI from SHIPTide v5.0.107 or later, you are watching SHIPBridge in action -- the SHIPBridge Device Class over USB supports reading, writing, deleting, and creating all these files over-the-wire.

SHIPBridge Host Reference Code

Reference code is in development, and will be supplied on mySerious.com for registered SIM owners to download and use in conjunction with Serious products. You will be able to use and port this code on your own microcontroller for communications and control with the SIM of your choice running SHIPBridge.

Reference code is currently planned for 2 initial development environments:

  1. a PC-based MS Visual Studio project for custom PC connectivity to SIMs over USB and UART
  2. a Renesas RX111 e2studio project using Serious "SHIPWare" base-level infrastructure on Micrium uC/OS-III and FreeRTOS, for use directly on the SCM117 and upcoming SCM118 and for simple porting to other MCU architectures

Serious is investigating providing C reference code for older "super loop" type host software implementations. Contact Serious for more information.

SHIPBridge Documentation and More Information