蓝牙core_v5.2协议-2

上一篇文章简单介绍了协议Vol 0的部分内容,本章继续Vol 1的相关内容。

本章节是描述蓝牙协议架构相关的文章,目前蓝牙不得不说的2种形式:

Basic Rate(BR) :经典蓝牙,可以继续细分为Enhanced Data Rate (EDR), Alternate Media Access Control (MAC)
and Physical (PHY) layer extensions。即BR/EDR, BR/AMP,可以从速度角度进行理解:BR模式的速率为721.2 kb/s,而EDR的速率为2.1 Mb/s,802.11 AMP的速率高达54 Mb/s.

Low Energy (LE):设计的目的是lower current consumption, lower complexity and lower cost than BR/EDR,提供1M/2M速率。它能够适应目前市场火爆的TWS,5.2协议支持了同步传输isochronous transports,在一些音频传输方面有重要作用。

根据HCI底层的支持架构,整体蓝牙可以有多种Host和controller的组合模式:

1.1 BR/EDR概述

 我们重点关注BLE相关知识,针对BR/EDR我们简单浏览下知识点。

Master和slave的官方知识点:One device provides the synchronization reference and is known as the master. All other devices synchronized to a master’s clock and frequency hopping pattern are known as slaves. 就目前来讲,项目中出现用到一个Master,多个slaver的情况,即蓝牙的多连接应用。

slots:The physical channel is sub-divided into time units known as slots。即将建立好的物理信道,传输时间分割,每个时间块就是一个slots。slots是蓝牙传输时序重要的基础知识,后续会经常用到这个词。

1.2 BLE概述

在蓝牙5.0之前,蓝牙4.2版本仅仅提供单一的通信速率LE 1M PHY。蓝牙5.0之后,蓝牙的物理层提供4种传输的速率:
LE 1M PHY,LE Coded PHY(S=2 500kb/s),LE Coded PHY(S=8 125 kb/s),LE 2M PHY. 

这些速率的改变是为了适应越来越多的蓝牙应用场景:在速率和通信距离要求一般模式下,我们使用LE 1M PHY;在长距离通信场合,我们可以选用coded phy;在高速通信场合,我们选用2M phy。

BLE蓝牙中提出了events的概念:The physical channel is sub-divided into time units known as events。即各种事件,BLE中存在以下几种事件:

   Advertising events(广播事件):ADV 

   Extended Advertising events(扩展广播):扩展广播,是5.0协议新提出的一种events,能够在原有的3个channel基础上,扩展到37个data channel进行广播,极大避免了蓝牙设备多导致的广播碰撞现象。

    Periodic Advertising events:周期广播,是5.0协议新提出的一种events

    Connection events:连接,用于数据的传输

    Isochronous events:实时传输events,用于BIS和CIS,主要用于实时数据流的传输。

这里需要指出,为了避免信道channel的碰撞,BLE使用跳频技术。图中的Ch()函数即是跳频算法函数。

我们重点关注下Isochronous events,这个event是5.2协议刚出来的events。和其配合使用的是Connected Isochronous Stream (CIS)和Broadcast IsochronousStream (BIS). CIS是以连接作为基本的载体,传输音频实时数据;而BIS是以广播作为载体,传输音频的基本控制信息。

随着TWS市场的火爆,CIS和BIS的应用也越来越多,很多厂商都是利用CIS和BIS的ISO_Interval来传输音频。

这里还需要指出,蓝牙5.2协议还指出了一种新的蓝牙定位方式,Angle of Arrival (AoA) or Angle of Departure (AoD)method. AoA和AoD这种定位方式,后续会详细讨论。

2.基本系统框架

 

上图显示了BLE基本的一个系统框架,最上层是GAP/SMP/ATT/GATT,中间层是L2CAP,最下层是LE controller部分。LE controller部分主要包括Link Manager、link controller、ISOAL部分,其对应的和L2CAP的接口是C/E、ACL、ISO接口。这里需要指出的是,作为BLE重要部分的L2CAP和HCI衔接口的C/E、ACL、ISO接口,之间的数据交互应该考虑分包/组包,即segment和fragment,协议规定这个function应该在L2CAP完成。

同时针对BLE的系统框架,协议还提供了基本的测试手段,例如Direct Test Mode (DTM), Generic Test Methodology (GTM), Test Control Interface(TCI), and test commands and events over HCI which are only required for conformance testing. 一般我们采用DTM的测试方式来测试RF的性能,利用test commands and events over HCI来测试协议栈的HCI以下部分的设计正确性。

3.数据传输框架

 这里解释下logical channel和physical channel的区别,举个例子:学校门口新修的双向6通道马路,我们把这条马路叫做为physical channel,马路上我们规定最边上的走人,其次走自行车,再其次走机动车,这几条规定的我们称作logical channel。logical channel是人为抽象出来的,physical channel是实际存在的。

BLE的数据传输,协议中不考虑数据的压缩,认为传输的数据都是最终的数据。至于数据的压缩和解压,不在协议的考虑范围之类。

BLE数据传输的reliability可靠性,协议中指出,通过加入CRC和ACK的机制,data channel即连接后的数据传输是可靠的,但是广播信道的数据传输是不可靠的。

4. 数据传输基本格式

上图说明了LE的基本数据速率和格式,包括access header和payload。同时针对coded和uncoded,数据包也会存在不同:

 

上述章节已经说明什么时候使用coded和非coded数据包,根据数据包的格式和传输速率。协议指出:The LE Coded PHY with S=8 coding (125 kb/s) represents the worst case, when considering radio-on time and duty cycle, where each packet sent over the air will be approximately 8 times larger than LE 1M. 即在使用低速率传输时候,要十分注意功耗问题,因为速率越低,传输时间越长,即功耗越大。

上述两种packet中的组成部分有很多相似的部分:

Access Address:接入地址。在不同格式的包中,这个地址会不一样,4.0格式的广播ADV该地址为固定值,但是5.0的周期广播以及connect部分,改地址为一个随机值,这个随机值用来定位physical channel(因为BLE使用了跳频技术)。

PDU header:PDU的头,包含PDU的格式信息,主要是用来标识payload的信息。

MIC:There is an optional Message Integrity Check (MIC) value that is used to authenticate the data PDU.

CRC:校验码。

Constant Tone Extension:CTE定位使用。which can be used for determining the relative direction of a received radio signal.

5. 传输使用的physical channel

存在4种physical channels:LE piconet channels 、Advertising physical channels、Periodic physical channel和LE Isochronous physical channel。4种physical channels各有自己的用途:

5.1. LE piconet channels用于connect状态下的数据通信,主要有以下几点注意:

  The first is the channel map that indicates the set of PHY channels used in the piconet.

  The second is a pseudo random number used as an index into the complete set of PHY channels.

  The third is the timing of the first data packet sent by the master after the connection request.

  三点需要注意的地方:channel map, 初始的随机值, 第一个数据发起时机。channel map和初始的随机值决定了数据通信使  用的channel跳频规则和跳频起始值。而第一个数据发起时机统领了后续数据通信的所有时序(anchor point),这是一个十分重要的时序概念。

5.2 Advertising physical channels:the primary advertising physical channel and the secondary advertising physical channel.

The primary advertising physical channel:37/38/39信道, 可以在LE 1M or LE Coded PHY上使用,广播的数据长度一次只能是37个字节以内。

The secondary advertising physical channel:0~36信道,主要用于extend adv特性。用于数据扩展,第二广播信道能够将广播的数据长度扩张到255字节。

本章节的内容比较多,上述文章主要是针对BLE的框架以及数据格式和channel部分做了介绍。留下部分在下一篇文章中写。。。。

猜你喜欢

转载自blog.csdn.net/szj_ble/article/details/108233325