最終更新:2026-01-27 (火) 09:53:53 (174d)
BLE/パケット
Bluetooth Core Specification/Volume 6/Part B 2.1 AIR INTERFACE PACKETS
概要
1種類のパケットフォーマット
- Bluetooth Core Specification/Volume 6/Part B 2.1
- LE Uncoded PHYの場合 (LE Coded PHYの場合は異なるフォーマットになる)
バイト 1~2 プリアンブル LE 1M PHYの場合は1バイト、LE 2M PHYの場合は2バイト 4 アクセスアドレス 物理チャンネルアクセスコード 2~258 PDU BLE/PDU (BLE/アドバタイジング物理チャンネルPDU or BLE/データ物理チャンネルPDU) 3 CRC
2種類のパケット (BLE/PDU)
- PDU: Protocol Data Unit
- パケットのペイロード部分のデータ
BLE/アドバタイジング物理チャンネルPDU
- Bluetooth Core Specification/Volume 6/Part B 2.3
- アドバタイズ時のPDU
BLE/データ物理チャンネルPDU
BLE/PDU
バージョン
Bluetooth 4.0/Bluetooth 4.1
- PDUのサイズは2~39
Bluetooth 5 DLE
- PDUのサイズは2~258
種類
- 1種類のパケットフォーマットと2種類のパケットしか存在しない
BLE/アドバタイジング物理チャンネルPDU (BLE/アドバタイズパケット)
- LE Uncoded PHYのアドバタイズパケットの場合
バイト 1~2 プリアンブル LE 1M PHYの場合は1バイト、LE 2M PHYの場合は2バイト 4 アクセスアドレス 物理チャンネルアクセスコード 2~258 PDU BLE/アドバタイジング物理チャンネルPDU 3 CRC
BLE/アドバタイジング物理チャンネルPDU
- ペイロードはADV_INDなどのPDUタイプによる
フィールド バイト 中身 BLE/アドバタイジング物理チャンネルPDUヘッダ 2 ペイロード PDUによる アドバタイザのアドレス(6バイト)+α
BLE/アドバタイジング物理チャンネルPDUヘッダ
- 2バイト
PDUタイプ
0b0000 ADV_IND 0b0001 ADV_DIRECT_IND? 0b0010 ADV_NONCONN_IND 0b0011 SCAN_REQ AUX_SCAN_REQ? 0b0100 SCAN_RSP 0b0101 CONNECT_IND AUX_CONNECT_REQ? 0b0110 ADV_SCAN_IND? ...
アドバタイズのPDUの種類
ADV_IND
フィールド バイト 中身 アドバタイズヘッダ 2 ペイロード 6+0~31 アドバタイザのアドレス(6バイト)
アドバタイジングデータ(0~31バイト)
ADV_DIRECT_IND?
フィールド バイト 中身 アドバタイズヘッダ 2 ペイロード 6+6 アドバタイザのアドレス(6バイト)
ターゲットアドレス(6バイト)
ADV_NONCONN_IND
ADV_SCAN_IND?
ADV_EXT_IND
AUX_ADV_IND?
AUX_SYNC_IND?
AUX_CHAIN_IND?
送信
- 20ミリ秒~10.24ミリ秒間隔
BLE/データ物理チャンネルPDU (BLE/データパケット)
構造
ヘッダ ペイロード MIC 16/24bit 可変サイズ 32bit
ペイロード
- 27バイトあるが上位のプロトコルによって20バイトに制限される事が多い
メモ
- BLE/L2CAPのヘッダが4バイト専有するので上位で使えるのは27-4で23になる
メモ
- コネクション間隔ごとに送れるパケット数はチップ依存
- 1パケット中のユーザーデータは20バイトまで

