ble4.2空口包详解(air interface packets)
本文依照藍牙核心規范Core_v4.2和核心規范補充Css_v10展開。
1、 鏈路層包格式
鏈路層包格式如下圖,用于廣播通道和數據通道。
Preamble:前導碼,一般情況下,協議棧會自動處理這個字段;
Access Address:接入地址,廣播通道的時候使用0x8E89BED6這個固定值,數據通道的時候使用隨機值;
PDU:協議數據單元,又分為廣播通道PDU和數據通道PDU,其中前2個字節是數據頭字段;
CRC:檢驗,一般情況下,協議棧會自動處理這個字段。
2、廣播通道PDU
2.1、廣播通道PDU格式:
Header:包頭;
Payload:數據。
2.2、廣播通道PDU Header字段格式:
PDU Type:用于指示包的類型;
RFU:保留;
TxAdd:發送地址;
RxAdd:接收地址;
Length:Paylaod的數據長度,范圍在6到37之間;
RFU:保留。
2.3、廣播通道PDU Header中的PDU Type字段格式:
由上圖可以看出,廣播通道PDU共分7種,3大類;
(1)廣播PDU:
ADV_IND:可連接的非定向廣播(最常用的就是這個);
ADV_DIRECT_IND: 可連接的定向廣播;
ADV_NONCONN_IND:無連接非定向的廣播(iBeacon就是這個);
ADV_SCAN_IND:可掃描非定向廣播。這種廣播不能用于發起連接,但允許其他設備掃描該廣播設備。
(2)掃描PDU:
SCAN_REQ:掃描請求;
SCAN_RSP:掃描回復。
(3)初始化PDU:
CONNECT_REQ:連接請求。
3、數據通道PDU
數據通道PDU格式:
Header:包頭;
Payload:數據;
MIC:數據一致性校驗。
數據通道PDU Header字段格式:
各個字段說明如下:
LLID:指示了包是LL 數據PDU還是LL控制PDU;
MESN:下一個期待的序列號;
SN:序列號;
MD:更多數據;
RFU:保留;
Length:長度,Payload和MIC(如果MIC存在)的長度。
總結
以上是生活随笔為你收集整理的ble4.2空口包详解(air interface packets)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos 7.9系统安装网卡驱动
- 下一篇: 浅谈建筑能耗在线监测系统在天目西路街道1