S110を理解するのに、アプリケーションノートnAN-36がよさそうだと思った。
読むところは30ページくらいなので、ちょろっと眺めてみよう。
今はv1.1だ。
書いていくのは、翻訳ではなく意訳。
それに、興味があるところとか、うまく読めたところしか書かない・・・書けない・・・。
1.4 nRF51822 and the S110 SoftDevice
S110 SoftDeviceはBLE Peripheralプロトコルスタックソリューションである。
プリコンパイルされたHEXファイルで提供され、自作のプログラムを動かす前に焼かれてないといかん。
SoftDeviceのFLASHとRAMは、自作アプリから保護されている。
1.5 Application overview
LED Buttonアプリというサンプルを作ることで、どうやってnRF51822のBLEを使うかを学ぼう。
このサンプルは、BLEでそうほうこうの通信を行うアプリだ。アプリはCentralからLEDを制御されるし、nRF51822に接続したボタンを押すと通知を受信することができる(receiveって書いてあるけど、ボタン押下でnotification送信するのでは?)。
アプリは、1サービス、2キャラクタリスティック(LED制御とボタン押下通知)を実装する。
2. Introduction to Bluetooth low energy
ここは、BLE自体の説明をしている章。
2.1 Generic Access Profile (GAP)
2.1.1 Roles
今回のサンプル、LED ButtonアプリではPeripheralの役割ですよ、ということ。
2.2 Generic Attribute profile (GATT)
2.2.1 Roles
LED Buttonアプリでは、PeripheralがServerで、CentralがClientですよ、ということ。
2.2.2.2 Characteristic
LED Buttonサービスでは、LEDとボタンには関連がないので、それぞれ好きに変更できる。
なのでキャラクタリスティックは、ボタンの状態とLEDの状態で分離させておく。
2.2.2.4 Service
LED Buttonアプリでは、LEDキャラクタリスティックとボタンキャラクタリスティックの再利用などは考えず、両方とも1つのサービスとしてまとめておく。
2.2.2.5 Profile
LED Buttonアプリでは、profileは正式ではない(not formally described)。
2.2.3 Standard versus custom services and characteristics
標準とカスタマイズのどちらがよい?という話。
Bluetooth SIGはprofile, service, characteristic, attributeなどをたくさん用意しているが、BLEのserviceはスタックじゃなくてアプリに実装していくものだ。
アプリがprofileとserviceをサポートするので、アプリがカスタムserviceを用意した方がよい。
(ここ、非常に不安な訳だ)
LED Buttonアプリでは、Bluetooth SIGのserviceを使っていない。
2.2.4 UUIDs
2.2.4.2 Vendor specific UUIDs
このアプリでは、0x0000xxxx-1212-EFDE-1523-785FEABCD123がベース。
serviceは0x1523、LED characteristicは0x1524、ボタンcharacteristicは0x1525。
2.2.5 On-air operations and properties
2.2.5.3 Notify and Indicate
アプリでは、LED制御とボタン状態のキャラクタリスティックがLED Buttonサービスで使われる。
LED characteristicでは、Centralが「値の設定ができるか」と、「読み出しができるか」を求める。
アプリの了解は必要ないので、Write without responseとReadプロパティが使用できる。
ボタン状態characteristicでは、Clientが「ボタン状態の変化を通知されるか」を求める。アプリの了解は必要ない。
Notify propertyが必要とする。
ここで今日は終わり。
読みながら「ああ、BLEの知識が私にはないんだな」と思った。
まだ、GATTとかCharacteristicなどが体になじんでこない。
いつか・・・いつかBLEが身になじむことを信じて!
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。