最終更新:2025-07-14 (月) 14:38:51 (4d)  

Bluetooth Classic/手続き
Top / Bluetooth Classic / 手続き

基本

  • 2402~2481MHzまで1MHz幅の79個のチャンネル
  • 625us間隔=1600回毎秒でチャンネルを切り替え (FH?)

用語

仕様

スレーブの動作

ペアリングモード中

ペアリング済みの場合

流れ

Bluetooth Classic/Inquiry (問い合わせ/探索)

  • スキャンする側がInquiryのリクエストを送信
  • それ用の物理チャンネルで通信
  • どのピコネットにも所属していないデバイスの検出と初期通信
  • 32チャンネルを全スキャンするためには10.24secかかる
  • 相手のBD_ADDRを知るためのプロセス

Inquiry Request?

Inquiry Response?

  • HCI_Inquiry_Result?

デバイス名の取得 (Remote Name Request) (オプション)

  • スレーブがPage Scan中でなければ応答しない
  • 時間がかかる(最大5秒程度)
  • HCI_Remote_Name_Request

Bluetooth Classic/Paging? (接続要求)

Step 1: Create Connection

  • HCI_Create_Connection
    • ACLリンクを作成するためのHCIコマンド
    • リンクキーがない場合、このコマンドで接続を開始するとリンクのセキュリティが必要とされ、結果としてペアリングが開始される

Step 2: Features Exchange

  • LMP_FEATURES_REQ_EXT?

Step 3: Connection Request

Step 4: Optional Role Switch

  • HCI_Role_Change?

Step 5: Optional AFH

Step 6: Optional Security (Bluetooth Classic/ペアリング)

  • LMPのレイヤで行われる
  • HCI_Link_Key_Request? (LMが発動)

Step 7a: Optional Pairing

  • HCI_Link_Key_Request_Negative_Reply?
  • HCI_Link_Key_Notification?

Step 7b: Optional Authentication

  • HCI_Link_Key_Request_Reply?

Step 8: Optional Encryption

  • LMP_ENCRYPTION_MODE_REQ?

Step 9: Setup Complete

Optional Data Flow

Step 10: Disconnection

L2CAPの接続

Bluetooth Classic/SDP

メモ

状態

  • MasterSlaveやりとり
    InquiryInquiry ScanInquiry Message / Inquiry Response
    PagePage ResponsePage Request / Page Response
    Master Page Response / Slave Page Response
    ConnectionConnectionSDP

サブステート

  • デバイスディスカバリ
    • Inquiry Scan
    • Inquiry
    • Inquiry Response
  • 接続確立
    • Page Scan
    • Page
    • Page Response

仕様

Bluetooth Core Specification/Volume 2/Part F

  • BR/EDR Controller > Message Sequence Charts

2 Services without connection request

  • 2.2 One-time inquiry
  • 2.3 Periodic inquiry
    • HCI_Periodic_Inquiry?

3 ACL connection establishment and detachment

4 Optional activities after ACL connection establishment

  • HCI_Authentication_Requested?
  • HCI_IO_Capability_Request?
  • LMP_IO_CAPABILITY_REQ
  • HCI_IO_Capability_Response?
  • LMP_IO_CAPABILITY_RES?
  • HCI_IO_Capability_Response?
  • LMP_SIMPLE_PAIRING_CONFIRM?
  • LMP_SIMPLE_PAIRING_NUMBER?

関連

参考