空中包格式BLE链路层的前导码的空中格式
2023-10-10
1201浏览
空中包格式BLE链路层的前导码的空中格式空中包格式BLE链路层的空中包格式非常简单,它所有的空中包都遵循下图所示的格式:最低有效位最先被链路层发往空中,最高有效位最后发送。例如,一个设备跟多个设备都建立了链路层的连接,也就是说一个设备同时维护多个链接,当这个设备收到一个空中包的时候,它只需通过访问地址就可以知道该空中包是哪个连接的包了。PDU(链路层控制包),它可能的取值如下:

BLE链路层的空中数据包格式非常简单。 其所有的空包均遵循下图所示的格式:

从上图可以看出,BLE Air包由4部分组成。 他们是:

前导码占1字节,访问地址占4字节,PDU占2~257字节,CRC占3字节,完整的空包大小在10字节~265字节之间。

LSB(The Least Significant)表示最低有效位; MSB(The Most Significant)表示最高有效位。 最低有效位首先由链路层发送到空中,最高有效位最后发送。 也就是说,先发出前导码,然后是访问地址空包,然后是PDU,最后是CRC。

前言

前导码占用8位。 所有广播信道中,空中数据包的前导码为10101010b; 在数据通道中,空中数据包的前导码为10101010b或01010101。

从层次上看,前导实际上是一个高低变化的矩形波。 接收器可以使接收电路的频率与矩形波的频率同步。 这就是所谓的接收机频率同步机制。 通俗地说,接收器可以利用它来估计一个比特的起始位置和一个比特的宽度,从而可以准确地接收到后续的每个有效比特。

同时,前导码标记了有效空中数据包的起始位置,以避免空中无效数据的干扰。

访问地址

广播通道和数据通道的访问地址不同。 广播通道的访问地址固定为0x8E89BED6; 数据通道的访问地址由发起方确定。 所以简单的理解就是,从访问地址上,我们首先可以区分这个空中包是广播包还是连接数据包。

如上所述,数据信道的前导码为10101010b或01010101b。 其实就是看数据通道中访问地址的最低有效位是0还是1,如果是1,则前导码为01010101b,否则为10101010b

当发起者向广播者发起连接请求时,它会将访问地址的值放入连接请求的相应字段中。 当链路层连接成功建立后,双方都进入连接状态,双方都会收到后续的空中数据包。 使用此访问地址进行通信。

可见,访问地址也与特定的链路层连接绑定。 例如,一台设备与多台设备建立了链路层连接,这意味着一台设备同时维护着多条链路。 当设备收到空包时,只需访问地址即可获知该空包。 该包属于哪个连接?

协议数据单元

协议数据单元是空中数据包的有效负载部分。 不同类型的空中数据包有不同的PDU。 它们大致可以分为广播通道PDU和数据通道PDU。

BLE 使用跳频机制。 链路层共有40个通道,其中3个通道是广播通道,另外37个通道是数据通道。

当设备处于广播状态或发起状态时,设备发送或接收广播通道的PDU; 当设备与另一个设备建立链路层连接时,双方都进入连接状态,并发送或接收数据通道的PDU。

广播通道 PDU

广播通道PDU的结构由两部分组成空包,分别是Header和Payload,如下图所示:

从上图可以看出,Header大小为16位,也就是2个字节。 Payload 的长度由 Header 中的 Length 字段决定。 那么首先看一下Header字段的组成,如下图所示:

Header字段由以下6部分组成:

广播报文的类型如下表所示:

PDU 类型数据包名称

0000

可连接的非定向广播 (ADV_IND)

0001

可连接的定向广播 (ADV_DIRECT_IND)

0010

不可连接的广播 (ADV_NONCONN_IND)

0011

扫描请求(SCAN_REQ)

0100

扫描响应(SCAN_RSP)

0101

连接请求(CONNECT_REQ)

0110

可扫描指示 (ADV_SCAN_IND)

0111-1111

预订的

这里我不会介绍每个包的类型,但会在以后的博文中详细介绍。

数据通道PDU

数据通道 PDU 包含 16 位标头和可变长度有效负载,还可能包含

MIC(Message Itegrity Check:消息完整性检查),数据通道PDU格式如下图所示:

Header的结构如下图:

标头由 6 部分组成:

LLID:

2个字节,指示该包是LL Data PDU(链路层数据包)还是LL Control PDU(链路层控制包)。 其可能的取值如下:

内森:

下一个数据包的序列号

序列号:

空包装序列号

医学博士:

更多数据意味着,由于 BLE 是低功耗蓝牙,因此它本质上使用睡眠唤醒机制。 它在唤醒时发送和接收空中数据包。 如果MD字段设置为1,则意味着发送方将来会有更多的空中数据包。 发送该数据包,通知接收方不要进入休眠状态,继续数据传输; 如果该字段设置为0,则表示发送方没有更多数据要发送,可以进入休眠状态。

CRC

CRC是关于PDU部分的数据完整性校验

以上内容均来自网络搜集,如有侵权联系客服删除

图文阅读
最新文章
礼品配送平台如何选择?君合云仓、至君云仓等平台的比较与分析
2022-10-30 08:02:14
补单发空包的风险与注意事项,真实礼品代发才是安全又便宜的选择
2022-10-30 08:02:14
电商运营为何青睐礼品代发?提升客户满意度与品牌形象的秘诀
2022-10-30 08:02:14
代送礼物清单平台哪个好用?热门礼品有哪些?
2022-10-30 08:02:14
空包 玉米畸形穗成因及常见症状解析
2022-10-30 08:02:14
礼品代发、一件代发:一站式服务,让礼品寄送更轻松
2022-10-30 08:02:14
飞鱼礼品网:真实礼品代发,安全实惠,支持多平台一键发货
2022-10-30 08:02:14
好生讲下公管院淘宝发空包有技巧吗?(图)
2022-10-30 08:02:14
 
QQ在线咨询
客服热线
15370006169
客服微信号
stu006