シンプルセンサー インターフェイス( SSI )プロトコルは、コンピューターまたはユーザー端末とスマート センサー間のデータ転送用に設計されたシンプルな通信プロトコルです。
SSI プロトコルは、 Nokia、Vaisala、Suunto、Ionific、Mermit、オウル大学によって共同で開発され、2003 年 3 月に最初のバージョンがリリースされました。現在、SSI は、欧州連合研究技術開発枠組みプログラムの一部である Mimosa プロジェクト内で開発されています。
SSIプロトコルは、 UARTおよびネットワークnanoIPアプリケーションを介したポイントツーポイント通信で使用されます。SSIは、センサーのポーリングやセンサーデータのストリーミングも提供します。RFIDセンサータグの場合、SSIはセンサーデータのメモリマップを指定します。
SSI プロトコル開発の基準は次のとおりです。
- 汎用
- シンプル – 最小限のオーバーヘッド
- サーバー(センサー)側のフットプリントが小さい
MSP430マイクロコントローラ用の SSI プロトコルのサンプル実装は、2006 年 8 月に Nokia によって オープン ソースとして公開される予定です。
SSIメッセージ構造
SSIメッセージは、2バイトのヘッダーとnバイトのペイロードで構成されます。ヘッダーは、1バイトのアドレス(ワイルドカードは「?」、ASCIIコードでは0x3F )と1バイトのメッセージ/コマンドタイプで構成されます。メッセージ/コマンドタイプに取り得る値は、SSI v1.2コマンドベースに記載されています。
SSI v1.2 コマンドベース
| コマンドバイト | 方向 | 説明 |
|---|---|---|
| Q,q (0x51, 0x71) | C-> | クエリ |
| A,a (0x41, 0x61) | <-S | クエリ応答 |
| C,c (0x43, 0x63) | C-> | センサーを発見する |
| N,n (0x4E, 0x6E) | <-S | 発見の返信 |
| Z,z (0x5A, 0x7A) | C-> | センサーデバイスをリセットする |
| G,g (0x47, 0x67) | C-> | センサーの構成データを取得します。 |
| X,x (0x58, 0x78) | <-S | 構成データ応答 |
| S,s (0x53, 0x73) | C-> | センサーの設定データを設定する |
| R,r (0x52, 0x72) | C-> | センサーデータを要求する |
| V,v (0x56, 0x76) | <-S | センサーデータ応答 |
| D,d (0x44, 0x64) | <-S | 1バイトのステータスフィールドを持つセンサー応答 |
| M,m (0x4D, 0x6D) | <-S | 多くのデータポイントを持つセンサー応答 |
| O,o (0x4F, 0x6F) | C-> | センサーオブザーバーを作成する |
| Y,y (0x59, 0x79) | <-S | オブザーバーを作成しました |
| K,k (0x4B, 0x6B) | <-> | センサーオブザーバー/リスナーを削除する |
| u,u (0x55, 0x75) | <-> | 観察者/聴取者終了 |
| L,l (0x4C, 0x6C) | <-S | リクエストセンサーリスナー |
| J,j (0x4A, 0x6A) | C-> | センサーリスナーを作成しました |
| E,e (0x45, 0x65) | <-> | エラー |
| F,f (0x46, 0x66) | <-> | カスタム目的の無料データ |
コマンドのグループ:
- Q – クエリ
- A – クエリ応答
- C – センサー検出
- N – 発見返信
- Z – リセット
- G – センサー設定を取得
- S – センサー設定の設定
SSI プロトコルを利用してセンサー ユニットを検索および構成するために使用されます。
コマンドのグループ:
- R – センサーデータを要求する
- V – データ応答
- D – ステータスフィールドを含むデータ応答
センサーデータをまれに読み取るために使用されます。
データ ストリーミングの目的で定義されたコマンドは次のとおりです。
- O – センサーオブザーバーを作成
- Y – オブザーバー作成
- K – オブザーバーを削除
- U – オブザーバー終了
- L – リクエストセンサーリスナー
- J – センサーリスナーが作成されました。
- V – データ応答
- M – 多くのデータポイントを持つデータ応答
ポイントツーポイントSSI
SSIを使用したポイントツーポイントメッセージングは、SSI/UARTで行うことができます。SSI UARTメッセージは、3バイトのUARTヘッダー、ペイロードとしてのSSIメッセージ、およびオプションの巡回冗長検査チェックサムで構成されます。チェックサムの使用はSSIメッセージ/コマンドの種類によって定義され、小文字のコマンドはCRCの使用を示します。ヘッダーは、開始バイト(0xFE)、2バイト(合計)のメッセージ長、およびフレーム開始を識別するための 2バイトのビット単位の否定長で構成されます。
ネットワークSSI
可変環境におけるSSIネットワークはnanoIPを用いて実現されます。SSIを使用する典型的なケースでは、個々のメッセージは重要ではないため、メッセージフォーマットとしてnanoUDP(nanoIPで定義された簡易UDP )が使用されます。個々のメッセージが重要な場合は、フロー制御と再送信機能を備えたnanoTCPを使用できます。ただし、メッセージサイズとネットワークトラフィックの増加を犠牲にします。
nanoUDPメッセージは、5バイトのnanoUDPヘッダー、nバイトのメッセージペイロード、およびオプションの2バイトのCRCチェックサムで構成されます。ヘッダーは、1バイトのプロトコルバイト、2バイトのメッセージ長(ヘッダーとCRCを含む全体の長さ)、1バイトの送信元ポート、および1バイトの宛先ポート番号で構成されます。SSIメッセージの場合、宛先ポート番号は0x28である必要があります。
バージョン履歴
- 0.1 2003年3月14日
- 0.2 2003年4月29日
- 0.3 2003年5月20日
- 0.4 2003年10月2日
- 0.5 2003年12月5日、以前のバージョンとは互換性がありません
- 0.6 2004年11月3日
- 0.7 2004年12月22日
- 0.8 2005年1月14日
- 1.0 2005年4月11日
- 1.1 2005年10月27日
- 1.2 2006年5月27日、以前のバージョンと互換性がありません