>
在思考,通过怎么样的角度能够深入浅出的弄清楚LE audio spec相关的内容。
不断总结,不断完善自己的知识结构体系
按照自己的理解,整理一下ble audio 相关的知识点# 系列文章目录
LE Audio 蓝牙协议规范(1)--ble状态
前言
状态是从宏观角度了解ble,spec将状态分为划分为7种状态,这些状态又可以分属于非连接状态和连接状态 。
不同状态下,链路层都会有对应的PDU格式定义,不同的PDU对应不同的物理信道,这些知识点可以继续衍生
首先了解这些状态之间的切换,对于后面深入分析整个LE audio 流程十分必要
一、ble audio中需要关注哪些状态?
ble audio分为两种方式,一个是通过GATT连接(UMS和UMR),一个是通过ble 广播包(BMS和BMR)。
需要建立连接的GATT需要关注initiating 和 connection state
非连接广播包需要关注 Advertising,Scanning,Isochronous Broadcasting state,Synchronization state
基本上所有状态都会涉及到ble audio的应用场景。
二、状态详解
1.Standby state
ble 默认状态,当controller power on之后,自动进入到standby状态,并且所有其他状态退出之后,都会回到该状态
2.Advertising state
在广播态的时候Link Layer 会发送advertising PDU。
在这个状态下有两种事件:
- advertising event 广播事件
- periodic advertising events 周期广播事件
两种event 都是由一个或多个advertising PDU组成
-
advertising event 可以根据connectable 和scannable,direct 等等差异分为七种不同的类型,每种类型都有不同的应用场景, 不在此赘述
-
Periodic advertising 简称 PA, 同样使用advertising PDU在 广播信道发送数据,并不是完全等价于普通ble adv,是core spec5.2 引入的新内容,作为ble audio的重要知识点,会有其他章节详细介绍,在此处做个简单了解
3.Scanning state
与广播态对应的是scanning 状态,LL会在ble 广播信道监听周围设备或指定设备发送的广播包。
Host可以配置一些过滤条件,controller会根据这些配置,过滤掉不需要的广播包,将感兴趣的广播包上报。
分为两种scan状态类型:
- Passive scanning
在这种状态下,controller只监听,不发送任何其他包,并且将监听到的广播包直接上报给host - Active scanning
controller除了监听,可能还会回复scan request给 advertiser,要求获得更多的信息,并且host会在收到adv report 和scan rsp之后,打包一起往上层app送,普遍采用此种类型
4.Initiating state
在这个状态,LL 同样会在ble 广播信道监听设备,并且在发现感兴趣设备之后,会发送connection request,从而切换到连接状态
5.Synchronization state
在同步状态,LL需要监听有规律的广播,而这种广播分为两种类型:
- periodic advertising trains 周期广播队列
- broadcast isochronous streams (BIS)
这个状态的重点是去监听,然后使自己能够同步到这些固定间隔的广播序列中,从而能够获取到完整的信息
6.Isochronous Broadcasting state
在等时广播状态,LL 需要能够发送BIS PDUs,
多个BISes可以组成一个BIG,一个BIG最多包含31个BISes。
每个BIS都是携带数据的子单元。
Host 产生的数据SDU可以被拆分,重新组包成多个BIS PDU,spec都有做一些详细的规定。
这个状态的重点是发送BIS ,相对于上一个状态中的对立面
7.CONNECTION STATE
从发起状态切换而来。
这个状态下,LL 会在数据信道(Data Physical Channel)进行一些数据的交互。
定义了master和salve两种角色,与ble audio 相关的CIS ,CIG等等。
这个状态也是core spec 最开始引入的几个基本概念,不做过多解读
总结
虽说LE audio在七种状态都有涉及,但是我们需要特别关注advertising,Synchronization state,Isochronous Broadcasting state这几种状态,在core5.2 中,对support LE audio 都有很多新增内容,后续将继续展开