Simple Sensor Interface-protokol - Simple Sensor Interface protocol

Den Simple Sensor interface ( SSI ) protokol er en simpel kommunikationsprotokol designet til dataoverførsel mellem computere eller brugerterminaler og intelligente sensorer. SSI-protokollen er en applikationslagsprotokol som i OSI-modellen .

SSI-protokollen er udviklet i fællesskab af Nokia , Vaisala , Suunto , Ionific, Mermit og Uleåborg Universitet . I øjeblikket udvikles SSI inden for Mimosa-projektet, som er en del af EU's rammeprogrammer for forskning og teknologisk udvikling .

SSI-protokollen bruges i punkt-til-punkt-kommunikation over UART- og netværks-nanoIP-applikationer. SSI leverer også polling sensorer og streaming sensordata. For RFID- sensorkoder specificerer SSI hukommelseskort for sensordata.

Kriterierne for SSI-protokoludvikling er:

  • generelle formål
  • enkel - minimal overhead
  • lille fodaftryk på serversiden (sensor)

Eksempelimplementering af SSI-protokollen for MSP430- mikrokontrollere vil blive offentliggjort som open source i august 2006 af Nokia.

SSI-meddelelsesstruktur

En SSI-meddelelse består af en 2-byte header og en n -by nyttelast. Headeren består af en en byte-adresse (jokertegn er '?', 0x3F i ASCII ) og en en byte-meddelelse / kommandotype. De forskellige mulige værdier for meddelelsen / kommandotypen præsenteres i SSI v1.2 kommandobase.

SSI v1.2 kommandobase

Kommando byte Retning Beskrivelse
Q, q (0x51, 0x71) C-> Forespørgsel
A, a (0x41, 0x61) <-S Forespørgsel svar
C, c (0x43, 0x63) C-> Oplev sensorer
N, n (0x4E, 0x6E) <-S Opdagelses svar
Z, z (0x5A, 0x7A) C-> Nulstil sensorenheden
G, g (0x47, 0x67) C-> Hent konfigurationsdata for en sensor.
X, x (0x58, 0x78) <-S Konfigurationsdata svar
S, s (0x53, 0x73) C-> Indstil konfigurationsdata for en sensor
R, r (0x52, 0x72) C-> Anmod om sensordata
V, v (0x56, 0x76) <-S Sensordatasvar
D, d (0x44, 0x64) <-S Sensorrespons med et byte-statusfelt
M, m (0x4D, 0x6D) <-S Sensorrespons med mange datapunkter
O, o (0x4F, 0x6F) C-> Opret sensorobservatør
Y, y (0x59, 0x79) <-S Observatør oprettet
K, k (0x4B, 0x6B) <-> Slet sensorobservatør / lytter
U, u (0x55, 0x75) <-> Observatøren / lytteren er færdig
L, l (0x4C, 0x6C) <-S Anmod om sensorlytter
J, j (0x4A, 0x6A) C-> Sensorlytter oprettet
E, e (0x45, 0x65) <-> Fejl
F, f (0x46, 0x66) <-> Gratis data til brugerdefinerede formål

Gruppen af ​​kommandoer:

  • Q - forespørgsel
  • Svar fra forespørgsel
  • C - sensoropdagelse
  • N - opdagelses svar
  • Z - nulstilling
  • G - få sensorkonfiguration
  • S - indstil sensorkonfiguration

bruges til at finde og konfigurere sensorenheder ved hjælp af SSI-protokollen.

Gruppen af ​​kommandoer:

  • R - anmod om sensordata
  • V - datasvar
  • D - datasvar med statusfelt

bruges til at læse sensordata sjældent.

Til datastreaming er definerede kommandoer:

  • O - opret sensorobservatør
  • Y - observatør oprettet
  • K - slet observatøren
  • U - observatør færdig
  • L - anmodning om sensorlytter
  • J - sensorlytter oprettet.
  • V - datasvar
  • M - datarespons med mange datapunkter

Punkt-til-punkt SSI

Point-to-point-meddelelser med SSI kan udføres med SSI / UART. Et SSI UART meddelelsen består af en 3-byte UART header, et SSI meddelelse som nyttelasten og en valgfri Cyclic redundanskontrol checksum . Brugen af ​​et kontrolsum defineres af SSI-meddelelsen / kommandotypen, med små bogstaver, der angiver brugen af ​​CRC. Headeren består af en startbyte (0xFE), en 2-byte (total) længde af meddelelsen og en 2-byte bitvis negationslængde til at hjælpe med at identificere rammestart.

Netværks-SSI

SSI-netværk i et variabelt miljø udføres ved hjælp af nanoIP. I et typisk tilfælde ved anvendelse af SSI er en individuel meddelelse ikke vigtig, og derfor bruges nanoUDP (forenklet UDP defineret af nanoIP) som meddelelsesformat. Hvis individuelle meddelelser er vigtige, kan nanoTCP bruges, da det giver flowkontrol og videresendelse til en pris af meddelelsesstørrelse og stigning i netværkstrafik.

En nanoUDP-meddelelse består af en 5-byte nanoUDP-header, en n- byte meddelelses nyttelast og en valgfri 2-byte CRC-kontrolsum. Headeren består af en protokolbyte, en 2-bytes meddelelseslængde (total længde, inklusive header og CRC), en 1-byte kildeport og et 1-byte destinationsportnummer. Destinationsportnummeret skal være 0x28 for SSI-meddelelser.

Versionshistorik

  • 0,1 14. marts 2003
  • 0,2 29. april 2003
  • 0,3 20. maj 2003
  • 0,4 2. oktober 2003
  • 0.5 5. december 2003, ikke kompatibel med tidligere
  • 0,6 3. november 2004
  • 0,7 22. december 2004
  • 0,8 14. januar 2005
  • 1.0 11. april 2005
  • 1.1. 27. oktober 2005
  • 1.2 27. maj 2006, ikke kompatibel med tidligere

eksterne links