前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ble4.2空口包详解(air interface packets)

ble4.2空口包详解(air interface packets)

作者头像
ManInRoad
发布2021-08-20 10:57:04
1K0
发布2021-08-20 10:57:04
举报
文章被收录于专栏:物联网思考物联网思考

前言:蓝牙协议基于蓝牙核心规范展开,BLE属于蓝牙的一部分,虽然蓝牙协议很复杂,但是归根结底还是各种数据交互,从本文开始将开始一个系列,总结蓝牙的各种数据包;本文聊聊BLE4.2空口包的结构。

本文依照蓝牙核心规范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存在)的长度。

——————END——————

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 物联网思考 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:蓝牙协议基于蓝牙核心规范展开,BLE属于蓝牙的一部分,虽然蓝牙协议很复杂,但是归根结底还是各种数据交互,从本文开始将开始一个系列,总结蓝牙的各种数据包;本文聊聊BLE4.2空口包的结构。
    • 1、 链路层包格式
      • 2、广播通道PDU
        • 2.1、广播通道PDU格式:
        • Payload:数据。
        • 2.2、广播通道PDU Header字段格式:
        • 2.3、广播通道PDU Header中的PDU Type字段格式:
        • 由上图可以看出,广播通道PDU共分7种,3大类;
      • 3、数据通道PDU
        • 数据通道PDU格式:
        • 数据通道PDU Header字段格式:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档