
ページコンテンツ
相違点は大きく3つ
ここでは旧モデルZEAL-C01(以下、C01)と新モデルZEAL-C02(以下、C02)との相違点についてご説明致します。相違点は大きくわけて3つです。1から順を追ってご説明致します。
- セキュアシンプルペアリング(SSP)の導入
- BTコマンドの見直し(Lコマンドへの統合)
- パフォーマンスの向上
1. セキュアシンプルペアリング(SSP)の導入
C02ではBluetooth Ver2.1+EDR対応に伴い、セキュアシンプルペアリング(以下、SSP)に対応しました。SSPを一言で言えば、「Bluetooth Passkey(PINコード)認証が不要になった」ということになります。
従来のC01ではBTFコマンドによって「認証の有無」を設定することができましたが、C02ではBTFコマンドが廃止され、「認証は常時あり」に固定されました。また、「暗号化も常時あり」に変更されています。
Ver2.0以前のBluetooth機器では、認証時にPINコード入力が必要でした。
例えば、マスター側がUSBドングル(PC)、スレーブ側がC01の場合、マスターからペアリングを行うと、PC画面にPINコード入力を促すダイアログが表示され(下図)、C01内部に保存されているPINコードを入力すればペアリング完了となりました。
では、SSPの場合にはどうなるかと言いますと、以下のようなダイアログが表示されます。
PINコード入力の代わりに「接続確認のためのOK」を促されるようになります。ユーザーは両方の機器でOKボタンを押すだけでペアリングできるようになりました(※製品の仕様により、PINコード入力を要求される場合もあります)。これで若干ではありますが、ペアリングの手間が軽減されました。
さて、ここで困るのがZEALです。
ZEALは組込み用の電子部品であるため、OKを押すためのI/Fがありません。
全ての認証を「OKがない=NG」としては接続させることができませんので、OKであることを前提として全ての認証をパスさせることにしました。ただし、それではセキュリティに対する懸念も出てきますので、新たにBTLAコマンドを導入することにしました。
C02はSSPの仕様に準じ、OKであることを前提として全ての認証をパスさせますが、その代わり、BTLAコマンドの設定により、リンクキーを持たない機器(ペアリングしていない機器)からのアクセスを拒否できるようになりました。このことにより、特定の機器のみと接続させることができるようになりました(※リンクキー作成のため、事前に一度接続をさせておく必要があります。)
尚、C02ではリンクキーを8台分まで保持できるようになっています(C01では1台分のみ)。
対Ver2.0の場合
Ver2.1以降の機器とVer2.0以前の機器との接続では「従来の認証」が適用されます。
よってその場合は従来通りのPINコード入力が必要となります。
2. BTコマンドの見直し(Lコマンドへの統合)
今回、ZEAL-C02のファームウェアを開発するにあたり、BTコマンドの仕様を見直しています。
設定系のコマンドは全てBTLxコマンド(xはサブコマンド)にまとめられています。
- BTB(ボーレート変更) → BTLB
- BTBM(シリアル通信設定) → BTLU
- BTCN(相手機器名称取得) → BTN
- BTDM(切断メッセージ設定) → BTLM
- BTF(セキュリティ設定) → 「セキュリティあり」に固定
- BTG(ガードタイム変更) → BTLG
- BTJ(パフォーマンスレベル設定) → BTLJ
- BTOM(自動モード、IOモード設定) → BTLO
- BTP(Bluetooth Passkey変更) → BTLP
- BTT(接続先設定) → BTLT
- BTX(Bluetoothデバイス名設定) → BTLX
また、仕様の見直しや実装上の理由から、一部のコマンドや機能が廃止されています。
- BTCU(指定したUUIDのサービスへ接続開始)
- BTH(スタンバイ状態へ遷移)
- BTOC(デバイスクラスの設定)
- BTQ(パーク状態への遷移)
- BTQM(パーク状態遷移メッセージの設定)
- BTTT(接続先設定。電源OFFで無効。)
- BTV(各種パラメータ設定)
3. パフォーマンスの向上
Ver2.1対応や採用スタックの変更、そしてソースコードのリファクタリングにより、全体的なパフォーマンスが向上しています。
スループット
当社環境による計測テストでは、およそ100kbps程度のパフォーマンス向上が確認できました。
【C01】およそ120~130kbps
↓
【C02】およそ200~240kbps(※ボーレート設定:921kbps)
消費電力
BTLJコマンドによってパフォーマンスレベルを設定できるようになりました。現在、電池駆動でC02を動かし、省電力化の効果について計測していますが、かなりの効果が得られています。
【テスト条件】マンガン単三×2, スレーブ時, データ送信10秒おき
ZEAL | パフォーマンスレベル | 駆動時間 |
順位
|
---|---|---|---|
C02 | 低消費(BTLJ1) | 52時間15分08秒 |
①
|
標準(BTLJ0) | 18時間02分25秒 |
②
|
|
C01 | 低消費(BTJ3) | 17時間59分09秒 |
③
|
標準(BTJ6) | 11時間21分28秒 |
⑤
|
|
高速(BTJ9) | 4時間35分52秒 |
⑥
|
|
S01 | 標準(※BTJ非対応) | 14時間09分04秒 |
④
|
「低消費電力レベル」ではZEAL内部の動作速度を遅くすることでスループットやレイテンシなどのパフォーマンス低下と引き換えに、全体的な動作における省電力化を実現しています。
また、今回「低消費電力レベル」では新たにスニフモードを実装しています。スニフモードはBluetooth接続中のスリープのような省電力効果がありますが、 データ通信中は効果がないため、一定間隔を空けてデータ通信させるような使い方で効果を発揮します。上記テストにおいては「10秒おき」というのがポイントです。データを送り続けるような使い方ではスニフモードは有効ではありません。尚、スニフモードは自動で有効になるため、ユーザはスニフモードを意識せずデータ通信を行うことができますが、スリープから起きるまでに若干タイムラグが生じるため、レイテンシを優先したい場合にも注意が必要です。
エンジニアリングサンプル版と量産版の違いについて
今回リリースされる量産版ファームウェアはVer2.1.3.36です。
2011年1月にリリース済みのエンジニアリングサンプル版ファームウェアVer2.1.3.30からの変更点は以下の通りです。
- BTLJコマンドが追加されました。消費電力が向上しています。
- BTLRコマンドが追加されました。検索時(BTIコマンド)にRSSIを出力できるようになりました。
- BTLGの設定可能な最小値が0→4に変更されました(ガードタイム0→320msec)。
- BTLXの文字数制限が32→30に変更されました。
- BTLPの使用可能文字が「数字のみ」に変更されました。
- BTZの出力形式が変更されました。
- 今後拡張の可能性のある端子としてDSIピン(4番ピン)を追加しました。
- 不安定だったSTOピン(27番ピン)の挙動を改善しました。
尚、量産版での導入を予定しておりました
- 検索機能の強化
- リンクキー管理機能
につきましては、技術的な観点から量産版ファームウェアVer2.1.3.36での実装を見送っております。これら機能の導入につきましては次回以降のファームウェアリリース時(未定)に再検討致します。
エンジニアリングサンプル版から量産版へのバージョンアップについて
エンジニアリングサンプルに量産版FWを書き換えることが可能です。
ご希望の方は当社までお問い合わせください。