BLE 技术(三)--- 链路层七种状态与空口报文设计(Core_v5.2)

LE 链路层定义了两个设备如何利用无线电传输信息,包括报文、广播信道、数据信道等的详细定义,也规定了发现其它设备的流程、广播通信、连接的建立与管理、连接通信等。

一、LE Link Layer States

广播通信中发出广播报文的一方称为Advertiser,接收广播报文的一方称为Scanner,连接通信中发起连接的一方称为Mater,接受连接的一方称为Slave,这些设备角色并不是固定的,一个蓝牙设备可以根据需要在多个角色之间切换,也可以同时身兼多个角色。为了方便管理蓝牙设备的角色,在链路层使用状态机来标识蓝牙设备当前的状态,蓝牙设备角色的切换也就相当于状态机中状态的迁移,Bluetooth 5.2 链路层状态机如下:
LE Link layer state machine

  • Standby State:上电后,链路层进入并保持待机态,即不收发数据的非活动状态。根据上层的命令可由其它任何一种状态进入,也可以切换到除Connection状态外的任意一种状态;
  • Advertising State:可以通过广播通道发送数据的状态,由Standby状态进入。想向一定区域内其它设备广播数据的设备、可被发现或可被连接的设备需要处于Advertising状态,它广播的数据可以由处于Scanning或者Initiating状态的实体接收,也可以回应Scanning状态的实体发来的扫描请求。广播态的设备可以回到Standby状态,连接成功后也可切换为Connection状态;
  • Scanning State:可以通过广播通道接收数据的状态,由Standby状态进入。Scanning状态可用于侦听一定区域内的广播数据,有被动扫描和主动扫描两个子状态,被动扫描仅接收广播报文,主动扫描则发送扫描请求给广播态设备,并获取附加的扫描响应数据。Scanning状态的设备只能进入Standby状态,状态迁移条件是停止扫描;
  • Initiating State:为了发起连接,链路层需要处于Initiating状态,侦听自己试图连接的设备,如果收到了来自该设备的connectable广播报文,链路层会向其发送连接请求并进入Connection状态,当连接成功后对端的广播设备也会进入Connection状态。Initiating状态由Standby状态进入,如果不再发起连接或连接失败则返回Standby状态,如果连接成功则建立连接的双方都进入Connection状态;
  • Connection State:和某个实体建立了单独通道的状态,在通道建立之后,由Initiating或者Advertising自动切换而来(由Initiating状态进入Connection状态的设备称为Master / Center,由Advertising状态进入Connection状态的设备称为Slave / Peripheral),通道断开后会重新回到Standby状态;
  • Isochronous Broadcasting State:可以通过广播通道发送BIS(Broadcast Isochronous Stream) 数据报文,由Standby状态进入。想向一定区域内其它设备广播同步数据流(比如音频数据流)的设备需要处于Isochronous Broadcasting状态,处于该状态的设备称为Isochronous Broadcaster。处于Isochronous Broadcasting状态的链路层状态机应发送由一个或多个BIS 组成的BIG(Broadcast Isochronous Group),每个BIG最多包含31个BIS,每个BIS承载一个单独的同步数据流。传输第一个BIS 数据报文后链路层应通知主机,若停止同步广播则回到Standby状态;
  • Synchronization State:可以通过广播通道接收BIS同步数据流,由Standby状态进入。Synchronization状态可用于侦听一定区域内的BIS广播同步数据流(比如音频数据流),处于Synchronization状态并且正在接收同步数据包的设备称为Synchronized Receiver,只能单向接收BIG,如果在主机指定时间内未侦听到任何有效BIG,处于该状态的设备将回到Standby状态并通知主机。

BLE 链路层各种通信模式拓扑结构
从BLE 链路层支持的状态功能及其状态迁移过程可以看出,链路层通信主要有三个模式:

  • Advertiser/Broadcaster — Scanner/Observer:广播者与扫描者之间通过广播信道传输数据,广播通信是一种一对多的通信方式,只要广播者发送的是可被发现报文,扫描者在信号接收范围内就可以接收到广播报文,扫描者的数量不受限制。广播通信只能进行单方向通信,由于不支持数据包分割重组而无法传输较大的数据包,广播者并不知道有谁接收了数据因此通信并不可靠;
  • Isochronous Broadcaster — Synchronized Receiver:等时广播者与同步接收者之间通过广播信道传输同步数据流BIS(比如音频数据流),等时同步广播通信也是一种一对多的通信方式,是在Bluetooth 5.2 中新增的,同样只能进行单方向通信,比如可以让听讲座的众多观众借助支持该通信模式的蓝牙耳机同步听到一个演讲者等时广播的音频数据流;
  • Master/Central — Slave/Peripheral:主从设备通过数据信道传输数据,连接通信是一种一对一的通信方式(一个主设备可以与多个从设备建立连接,每对儿主从设备构成一个独立的piconet),LE 的连接通信一般用于传输异步数据,在Bluetooth 5.2 中新增了传输CIS(Connected Isochronous Stream)等时同步数据流的能力,每个CIS 承载一个单独的等时同步数据流,一个或多个CIS 可组成CIG(Connected Isochronous Group),每个CIG 最多包含31个CIS。

上面介绍的每种通信模式都可以在链路层找到对应的Logical Link,下面给出承载每种通信模式的Logical Link、Physical Link、Physical Channels 架构层级图:
LE 物理层与链路层架构

二、Link Layer Packet format

如果了解TCP/IP 协议栈,不难发现网络协议每层都有自己的数据报文结构,上层的报文相当于下一层的数据,每一层都会添加便于本层处理数据的报文字段。数据报文或者数据帧在分层协议中应用非常普遍,BLE 的链路层状态管理、状态迁移、链路数据传输都靠数据报文来实现。

BLE 链路层的报文可以看作是带标签的数据,由一个设备发送、一个或多个设备接收,标签指明了数据由谁发出,以及应该由哪些设备接收。Bluetooth 5.2 中的LE 链路层定义了两种基本的数据报文(对应LE Physical Layer 中介绍的四种调制方式):

  • LE Uncoded PHYs:未使用纠错码可以有比较高的通信速率(可以支持比如音频数据流这种高速率近距离的应用),从Bluetooth 5.x 开始提供两种调制码率也即LE 1M PHY 和LE 2M PHY,后者的通信速率是前者的两倍;
  • LE Coded PHY
  • 14
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流云IoT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值