Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
BluetoothLE
今日はBluetoothLE 
● BluetoothLEとは 
– Bluetooth 4.0で定義された、Bluetoothの通信方式 
– 低電力 
– 今までのBluetoothと互換は無い。但し両対応のデバ 
イスは存在する。
BluetoothLE 
● デバイス 
– センサなどが多い 
● 手元には万歩計と接近認証カードがある
BluetoothLE 
● デバイスとホストが完全に分かれている。 
● 認識時、デバイス側はホストに放送して存在 
を伝える 
● ホスト側はスキャンしてそのデバイスを認識 
する 
● 
● 今日はここまでしか出来てない。
BluetoothLE 
● パケット長は小さい 
● HCI, ACLの概念はある 
– HCI ホストコントローラコマンドインターフェイ 
ス 
– ACL 非同期コネクションレスリンク
L2CAP 
● リンク層でのプロトコル 
● BluetoothLEではこの上にATT更にGATTという 
プロトコルが乗る 
● これらで、デバイスのプロパティを問い合わ 
せるという形を取る。
コマンド体系 
● 既存のコマンド体系とは違う 
– グループごとちがう。 
– イベントも別物 
–
ホスト側でやること 
● スキャンパラメータを設定 
● イベントマスクの設定 
● スキャン開始 
● デバイスのリストを得る。
USB HCI 
● クラスが定義されている。 
● Bulk In/out, ISOC In/out Intr In を持つ 
● Bulk In/outはACLデータが流れる 
● ISOC In/outはSCOデータが流れる 
● コント...
FreeBSDの対応 
● ほぼ無し 
● とりあえず、HCIコマンドを叩けばデバイスに 
発行 
● そこから、カーネル内でデバイスのコネク 
ションを管理し、L2CAPインターフェイスに 
データを流す必要がある
FreeBSDのBTスタック 
● netgraph上で作られている 
● Netgraphとはモジュールを組み合わせてプロト 
コルスタックを構成する枠組 
● 一つ一つのモジュールがグラフ理論でいう 
ノードそこから出るエッジを通してノード...
モジュール 
● Ubt USBインターフェイス 
● Hci ホストコントローラインターフェイス 
● L2cap Link Layer Contorol Access Protocol 
● Socket ユーザーランドのソケットインターフ...
手元のコード 
● とりあえず、ユーザーランドからHCIにアクセ 
スしてBluetoothLEコマンド発行を許可 
● ホストコントローラをスキャンモードにする 
● アドレスに属性を追加 
● スキャンした結果をBR/EDRのInquiry...
デモ
Upcoming SlideShare
Loading in …5
×

Bluetooth le for FreeBSD

878 views

Published on

FreeBSDをBluetooth LEに対応させようとしている話
なんかフォントがあれなことになってるのは気にしない

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Bluetooth le for FreeBSD

  1. 1. BluetoothLE
  2. 2. 今日はBluetoothLE ● BluetoothLEとは – Bluetooth 4.0で定義された、Bluetoothの通信方式 – 低電力 – 今までのBluetoothと互換は無い。但し両対応のデバ イスは存在する。
  3. 3. BluetoothLE ● デバイス – センサなどが多い ● 手元には万歩計と接近認証カードがある
  4. 4. BluetoothLE ● デバイスとホストが完全に分かれている。 ● 認識時、デバイス側はホストに放送して存在 を伝える ● ホスト側はスキャンしてそのデバイスを認識 する ● ● 今日はここまでしか出来てない。
  5. 5. BluetoothLE ● パケット長は小さい ● HCI, ACLの概念はある – HCI ホストコントローラコマンドインターフェイ ス – ACL 非同期コネクションレスリンク
  6. 6. L2CAP ● リンク層でのプロトコル ● BluetoothLEではこの上にATT更にGATTという プロトコルが乗る ● これらで、デバイスのプロパティを問い合わ せるという形を取る。
  7. 7. コマンド体系 ● 既存のコマンド体系とは違う – グループごとちがう。 – イベントも別物 –
  8. 8. ホスト側でやること ● スキャンパラメータを設定 ● イベントマスクの設定 ● スキャン開始 ● デバイスのリストを得る。
  9. 9. USB HCI ● クラスが定義されている。 ● Bulk In/out, ISOC In/out Intr In を持つ ● Bulk In/outはACLデータが流れる ● ISOC In/outはSCOデータが流れる ● コントロールエンドポイントでホストコマンド を発行 ● Intrエンドポイントでコントローライベントを取 得
  10. 10. FreeBSDの対応 ● ほぼ無し ● とりあえず、HCIコマンドを叩けばデバイスに 発行 ● そこから、カーネル内でデバイスのコネク ションを管理し、L2CAPインターフェイスに データを流す必要がある
  11. 11. FreeBSDのBTスタック ● netgraph上で作られている ● Netgraphとはモジュールを組み合わせてプロト コルスタックを構成する枠組 ● 一つ一つのモジュールがグラフ理論でいう ノードそこから出るエッジを通してノードど うしが通信を行う
  12. 12. モジュール ● Ubt USBインターフェイス ● Hci ホストコントローラインターフェイス ● L2cap Link Layer Contorol Access Protocol ● Socket ユーザーランドのソケットインターフェ イス
  13. 13. 手元のコード ● とりあえず、ユーザーランドからHCIにアクセ スしてBluetoothLEコマンド発行を許可 ● ホストコントローラをスキャンモードにする ● アドレスに属性を追加 ● スキャンした結果をBR/EDRのInquiryと同様に neighbor cacheに入れる ● L2cap, socketインターフェイスを整備しかけてい る
  14. 14. デモ

×