El protocolo de interfaz de sensor simple ( SSI ) es un protocolo de comunicaciones simple diseñado para la transferencia de datos entre computadoras o terminales de usuario y sensores inteligentes. El protocolo SSI es un protocolo de capa de aplicación como en el modelo OSI .
El protocolo SSI ha sido desarrollado conjuntamente por Nokia , Vaisala , Suunto , Ionific, Mermit y la Universidad de Oulu . Actualmente SSI se está desarrollando dentro del Proyecto Mimosa, que forma parte de los Programas Marco de Investigación y Desarrollo Tecnológico de la Unión Europea .
El protocolo SSI se utiliza en comunicaciones punto a punto a través de UART y aplicaciones nanoIP de red. SSI también proporciona sensores de sondeo y transmisión de datos de sensores. Para las etiquetas de sensor RFID , SSI especifica el mapa de memoria para los datos del sensor.
Los criterios para el desarrollo del protocolo SSI son:
- propósito general
- simple - gastos indirectos mínimos
- tamaño reducido en el lado del servidor (sensor)
La implementación de muestra del protocolo SSI para microcontroladores MSP430 será publicada como código abierto durante agosto de 2006 por Nokia.
Estructura de mensajes SSI
Un mensaje SSI consta de un encabezado de 2 bytes y una carga útil de n bytes. El encabezado consta de una dirección de un byte (el comodín es '?', 0x3F en ASCII ) y un tipo de mensaje / comando de un byte. Los diferentes valores posibles para el tipo de mensaje / comando se presentan en la base de comandos SSI v1.2.
Base de comando SSI v1.2
Byte de comando | Dirección | Descripción |
---|---|---|
Q, q (0x51, 0x71) | C-> | Consulta |
A, a (0x41, 0x61) | <-S | Respuesta a la consulta |
C, c (0x43, 0x63) | C-> | Descubrir sensores |
N, n (0x4E, 0x6E) | <-S | Respuesta de descubrimiento |
Z, z (0x5A, 0x7A) | C-> | Restablecer dispositivo sensor |
G, g (0x47, 0x67) | C-> | Obtenga datos de configuración para un sensor. |
X, x (0x58, 0x78) | <-S | Respuesta de datos de configuración |
S, s (0x53, 0x73) | C-> | Establecer datos de configuración para un sensor |
R, r (0x52, 0x72) | C-> | Solicitar datos del sensor |
V, v (0x56, 0x76) | <-S | Respuesta de datos del sensor |
D, d (0x44, 0x64) | <-S | Respuesta del sensor con un campo de estado de un byte |
M, m (0x4D, 0x6D) | <-S | Respuesta del sensor con muchos puntos de datos |
O, o (0x4F, 0x6F) | C-> | Crear observador de sensor |
Y, y (0x59, 0x79) | <-S | Observador creado |
K, k (0x4B, 0x6B) | <-> | Eliminar sensor observador / oyente |
U, u (0x55, 0x75) | <-> | Observador / oyente terminado |
L, l (0x4C, 0x6C) | <-S | Solicitar oyente de sensor |
J, j (0x4A, 0x6A) | C-> | Detector de sensor creado |
E, e (0x45, 0x65) | <-> | Error |
F, f (0x46, 0x66) | <-> | Datos gratuitos para fines personalizados |
El grupo de comandos:
- Q - consulta
- A - respuesta a la consulta
- C - descubrimiento del sensor
- N - respuesta de descubrimiento
- Z - reiniciar
- G - obtener la configuración del sensor
- S - configurar la configuración del sensor
se utilizan para encontrar y configurar las unidades de sensor que utilizan el protocolo SSI.
El grupo de comandos:
- R - solicitar datos del sensor
- V - respuesta de datos
- D - respuesta de datos con campo de estado
se utilizan para leer datos del sensor con poca frecuencia.
Para propósitos de transmisión de datos, los comandos definidos son:
- O - crear observador de sensor
- Y - observador creado
- K - eliminar observador
- U - observador terminado
- L - escucha del sensor de solicitud
- J: detector de sensor creado.
- V - respuesta de datos
- M: respuesta de datos con muchos puntos de datos
SSI punto a punto
La mensajería punto a punto con SSI se puede realizar con SSI / UART. Un mensaje SSI UART consta de un encabezado UART de 3 bytes, un mensaje SSI como carga útil y una suma de verificación de verificación de redundancia cíclica opcional . El uso de una suma de comprobación se define por el tipo de mensaje / comando SSI, con comandos en minúsculas que indican el uso de CRC. El encabezado consta de un byte de inicio (0xFE), una longitud de 2 bytes (total) del mensaje y una longitud de Negación bit a bit de 2 bytes para ayudar a identificar el inicio de la trama.
SSI en red
La red SSI en un entorno variable se realiza mediante nanoIP. En un caso típico con SSI, un mensaje individual no es importante, por lo que nanoUDP ( UDP simplificado definido por nanoIP) se usa como formato de mensaje. Si los mensajes individuales son importantes, se puede utilizar nanoTCP, ya que proporciona control de flujo y retransmisión a costa del tamaño del mensaje y el aumento del tráfico de la red.
Un mensaje nanoUDP consta de un encabezado nanoUDP de 5 bytes, una carga útil de mensaje de n bytes y una suma de comprobación CRC opcional de 2 bytes. El encabezado consta de un byte de protocolo, una longitud de mensaje de 2 bytes (longitud total, incluidos el encabezado y CRC), un puerto de origen de 1 byte y un número de puerto de destino de 1 byte. El número de puerto de destino debe ser 0x28 para los mensajes SSI.
Historial de versiones
- 0.1 14 de marzo de 2003
- 0.2 29 de abril de 2003
- 0.3 20 de mayo de 2003
- 0.4 2 de octubre de 2003
- 0.5 del 5 de diciembre de 2003, no compatible con versiones anteriores
- 0.6 3 de noviembre de 2004
- 0,7 22 de diciembre de 2004
- 0.8 14 de enero de 2005
- 1.0 11 de abril de 2005
- 1.1 27 de octubre de 2005
- 1.2 27 de mayo de 2006, no compatible con versiones anteriores