ZEAL-C01と後継モデルZEAL-C02の相違点について

相違点は大きく3つ

ここでは旧モデルZEAL-C01(以下、C01)と新モデルZEAL-C02(以下、C02)との相違点についてご説明致します。相違点は大きくわけて3つです。

  1. セキュアシンプルペアリング(SSP)の導入
  2. BTコマンドの見直し(Lコマンドへの統合)
  3. パフォーマンスの向上

1から順を追ってご説明致します。

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コードを入力すればペアリング完了となりました。
pincode.jpg

では、SSPの場合にはどうなるかと言いますと、以下のようなダイアログが表示されます。
ssp.jpg

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)

パフォーマンスレベル「標準レベル」におけるスループットが大幅に向上しているため、ZEAL-C02では「高速レベル」を廃止しています。

消費電力

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秒
【結果】
C02(低消費)>>C02(標準)=C01(低消費)

「低消費電力レベル」ではZEAL内部の動作速度を遅くすることでスループットやレイテンシなどのパフォーマンス低下と引き換えに、全体的な動作における省電力化を実現しています。

また、今回「低消費電力レベル」では新たにスニフモードを実装しています。スニフモードはBluetooth接続中のスリープのような省電力効果がありますが、 データ通信中は効果がないため、一定間隔を空けてデータ通信させるような使い方で効果を発揮します。上記テストにおいては「10秒おき」というのがポイントです。データを送り続けるような使い方ではスニフモードは有効ではありません。尚、スニフモードは自動で有効になるため、ユーザはスニフモードを意識せずデータ通信を行うことができますが、スリープから起きるまでに若干タイムラグが生じるため、レイテンシを優先したい場合にも注意が必要です。
ZEALシリーズのバッテリ・電池駆動について

エンジニアリングサンプル版と量産版の違いについて

今回リリースされる量産版ファームウェアは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を書き換えることが可能です。
ご希望の方は当社までお問い合わせください。

まとめ

詳しい相違点については下記資料をご参照ください。
ZEAL-C02とZEAL-C01の相違点のまとめ