- Simple Sensor Interface protocol
SSI (Simple Sensor Interface) protocol is a simple communications protocol designed for data transfer between computers or user terminals and smart sensors. SSI protocol is an
Application layer protocol as inOSI model .SSI protocol has been developed jointly by
Nokia ,Vaisala ,Suunto , Ionific, Mermit andUniversity of Oulu . Currently SSI is being developed within [http://www.mimosa-fp6.com/ Mimosa project] which is a part ofEuropean Union Framework Programmes on Research .SSI protocol is used in point-to-point communications over
UART and networkingnanoIP applications. SSI also provides polling sensors and streaming sensor data. ForRFID sensor tags SSI specifies memory map for sensor data.The criterion for SSI protocol development are:
* general purpose
* simple – minimal overhead
* small footprint on the server (sensor) sideSample implementation of SSI protocol for
MSP430 microcontrollers will be published asopen source during August 2006 by Nokia.SSI message structure
An SSI message is formed of a 2-byte header and n-byte payload. The header consists of one byte address (wildcard is '?', 0x3F in
ASCII ) and one byte message/command type. The different possible values for message/command type are presented in SSI v1.2 command base.SSI v1.2 command base
The group of commands
*Q – query
*A – query reply
*C – sensor discovery
*N – discovery reply
*Z – reset
*G – get sensor configuration
*S – set sensor configurationare used to find and configure sensor units utilizing SSI-protocol.
The group of commands
*R – request sensor data
*V – data response
*D – data response with status fieldare used to read sensor data infrequently.
For data streaming purposes are defined commands
*O – create sensor observer
*Y – observer created
*K – delete observer
*U – observer finished
*L – request sensor listener
*J – sensor listener created.
*V – data response
*M – data response with many data pointsPoint-to-point SSI
Point-to-point messaging with SSI can be done with SSI/UART. SSI UART message consists of a 3-byte UART header, SSI message as payload and an optional Cyclic redundancy check
checksum . The use of checksum is defined by SSI message/command type, with lower case commands indicating the use of CRC. The header consists of start byte (0xFE), 2-byte (total) length of message and 2-bytebitwise Negation of length bytes to help identifying the frame start.Networking SSI
SSI networking in a variable environment is done e.g. using
nanoIP . In a typical case for using SSI, an individual message is not important, and so nanoUDP (simplified UDP defined by nanoIP) is used as the message format. If individual messages are important, nanoTCP can be used, as it provides flow control and retransmission, with the cost of message size and increase in network traffic.A nanoUDP message consists of a 5-byte nanoUDP header, n-byte message payload and optional 2-byte CRC checksum. The header consists of one protocol byte, 2-byte message length (total length, including header and CRC), 1-byte source port and 1-byte destination port number. The destination port number should be 0x28 for SSI messages.
Version history
*0.1 March 14, 2003
*0.2 April 29, 2003
*0.3 May 20, 2003
*0.4 October 2, 2003
*0.5 December 5, 2003, not compatible with previous
*0.6 November 3, 2004
*0.7 December 22, 2004
*0.8 January 14, 2005
*1.0 April 11, 2005
*1.1 October 27, 2005
*1.2 May 27, 2006, not compatible with previousExternal links
* [http://ssi-protocol.net SSI protocol]
* [http://www.cwc.oulu.fi/nanoip/ nanoIP]
Wikimedia Foundation. 2010.