プログラム書いたり、もの作ったり。あと育児とか。

プログラム書いたり、もの作ったりすることについて書いていく予定です。あと育児とかも書くかもしれません。

Bluetooth v5.0, Vol1, 1.2 Overview of Bluetooth Low Energy Operation

1.2 Overview of Bluetooth Low Energy Operation

  • BR/EDRと同様に2.4GHz帯を使用
  • 周波数ホッピングを採用している
  • 複雑さを避けるために2値周波数変調を採用
  • 必須(mandatory)シンボルレートは1Msym/s (LE 1M PHY)
    • 1sym=1bitでデータレートは1Mbit/s
      • オプションでエラー訂正
        • S=2; 2sym=1bit→500kbit/s
        • S=8; 8sym=1bit→125kbit/s
  • オプショナルシンボルレートは2Msym/s
    • 1sym=1bitでデータレートは2Mbit/s
      • エラー訂正オプションはない
  • Sec 3.2.2に詳細

多重化とチャネル

  • LEは2つの多元接続方式を採用
    • FDMA(Frequency Division Multiple Access; 周波数分割多元接続)
      • 2MHzで40の物理チャネルに分割
      • 3チャネルがprimary advertising channelsで残り37チャネルがsecondary advertising channelsでありData channels
    • TDMA(Time Division Multiple Access; 時間分割多元接続)
      • TDMAベースのポーリング
        • 送信側は予め決まったタイミングでパケットを送付し、受信側は予め決まったインターバルの後に返答する

イベント

  • 物理チャネルはイベントと呼ばれる時間単位に分割される
  • パケットはイベントに配置されて送信される
  • イベントは4種類
    1. Advertising
    2. Extended Advertising
    3. Periodic Advertising
    4. Connection Events

AdvertisersとScanners

  • Advertisers: advertising(以下、adv.)物理チャネルでadv.パケットを送信するデバイス
  • Scanners: adv.物理チャネルでadv.パケットを受信するデバイス
  • adv.物理チャネルにおける通信はadv.イベント内で行われる
    1. Advertiserはadv.イベントタイプに応じたadv.パケットを送る
    2. Scannerはadv.パケットタイプに応じて同じadv.物理チャネル上にリクエストを送付できる
    3. Advertiserはリクエストに続いて同チャネル上にレスポンスを返す
  • adv.物理チャネルは同じadv.イベント内でもAdvertiserが次のadv.パケットを送るときに変更される
  • Advertiserはイベント中いつでもadv.イベントを終了させることができる
  • 次のadv.イベントの始まりは最初に使用されたadv.物理チャネルが使用されます

f:id:shito6363:20190106160217p:plain
Advertising events (from Bluetooth Core v5.0)

Communication

  • LEデバイスはadvertising eventで2つ以上の機器間で単方向(unidirectional)通信もしくはブロードキャスト(broadcast)通信が可能
  • LEデバイスはadvertising eventを使用してペアを確立し、data channelを使用した双方向通信や、secondary advertising channelを使用して定期的にブロードキャストする事ができる

Connection event

  • Initiators: 他の機器と接続するためにconnectable advertising(以下、conn. adv.)パケットを監視(listen)している機器
  • 接続手順
    1. Advertiserがconn. adv.イベントを発信している場合、Initiatorはconnection requestを同物理チャネル上に送付できる
    2. Advertiserが接続を了承(accept)したら、adv.イベントは終了ののちconnectionイベントが開始される
  • 接続後はピコネット(piconet)内において、InitiatorはMasterデバイスに、AdvertiserデバイスはSlaveデバイスになる
  • Connection(以下、Conn.) eventはMaster-Slave間でデータパケットを送受信するために使用される
  • Connection eventについて
    • チャネルホッピングは各Conn. eventのはじめに行われる
    • Conn.イベント内では同じ物理チャネル内でMasterとSlaveは交互にデータパケットを送信し合う
    • MasterデバイスはConn. eventをいつでも開始できるし、いつでも終了させることができる

f:id:shito6363:20190106163606p:plain
Connection event (from Bluetooth Core v5.0)

Frequency Hopping

  • ピコネット内のデバイスは擬似ランダムパターンによって生成された特定の周波数ホッピングパターンを使用する
  • LEの場合は37の周波数帯をホッピングし、これによってISMバンド内におけるBluetoothの共存性能を向上させている

Link, Channel, Transport

  • 物理チャネルからL2CAPまでの構造(詳細はSec. 3.3 ~ 3.6)
L2CAP Channel
Logical Link
Logical Transport
Physical Link
Physical Channel
  • 同じ物理チャネル内で2つのデバイスがつながると物理リンクが形成される
  • アクティブな物理リンクはMaster-Slave間で双方向パケットトランスポートを提供する
  • LE物理チャネルは複数のSlaveデバイスを含むので、デバイスが物理リンクを形成するのには制限がある
  • SlaveはMasterデバイスへの物理リンクを1つ以上持つことができる
  • バイスはMasterとSlaveに同時になることができる
  • 同じpiconet内のSlave間で物理リンクを形成することはできない
  • 物理リンクは1つ以上の非同期通信論理リンクのトランスポートとして使用される
  • 論理リンク上の通信はリソースマネージャのスケジューリング機能によって物理リンク上に多重化される

  • 論理リンク上でLInk Layer(LL)プロトコルが実行される

  • ピコネット上でアクティブなデバイスはLLプロトコル信号を送るためにLE asynchronous connection logical transport (LE ACL)を持っている

  • BR/EDRのように、Link Layerの上にはL2CAPレイヤがチャンネルベースの抽象化をアプリケーションやサービスに提供している

  • L2CAPはアプリケーションデータを分解(fragmentation)/結合(de-fragmentation)を行い、また論理リンク上で複数チャネルの多重化(multiplexing)と非多重化(de-multiplexing)を行う
  • L2CAPはPrimary ACL論理トランスポート上で実行されるプロトコルコントロールチャネルをもつ

  • LEではL2CAPの上にさらに2つのプロトコルレイヤが存在する

    • Security Manager Protocol(SMP)
      • fixed L2CAP channelを用いてデバイス間のセキュリティ機能を受け持つ
    • Attribute Protocol (ATT)
      • fixed L2CAP channel上で小出しでコミュニケーションを取るメソッドを提供する

1.3 Overview of AMP Operation

こちらは省略…