蓝牙协议是蓝牙设备间交换信息所应该遵照的规则。与开放系统互联(OSI)模型同样,蓝牙技术的协议体系也采用了分层结构,从底层到高层造成了蓝牙协议栈,各层协议定义了所完成的功能和使用数据分组格式,以保证蓝牙产品间的互操做性。
1、射频协议
射频位置如上图红色部分。
一、工做频率
蓝牙工做在2.4GHz ISM频段上,蓝牙采用跳频扩谱技术主动的避免工做频段受干扰(微波炉的工做频率也是2.4GHz)。缓存
我国的蓝牙频率在2.402GHz~2.483GHz,蓝牙每一个频道的宽度为1MHz,为了减小带外辐射的干扰,保留上、下保护为3.5MHz和2MHz,79个跳频点中至少75个伪随机码跳动,30S内任何一个频点使用时长不能超过0.4S。
二、跳频技术、发射功率、时隙
(1)、发射功率:蓝牙发射功率分三级:一级功率100mW(20dBm);二级功率2.5mW(4dBm);三级功率1mW(0dBm);
(2)、物理信道:蓝牙物理信道有伪随机序列控制的79个跳频点构成,不一样跳频序列表明不一样的信道。安全
(3)、时隙:蓝牙跳频速率为1600次/s,每一个时间为625uS(1S/1600)称为一个时隙;网络
2、基带与链路控制协议less
蓝牙发送数据时,基带部分未来自高层的数据进行信道编码,向下发给射频进行发送;接收数据时,将解调恢复空中数据并上传给基带,基带进行信道编码传送给上层。异步
做用:跳频选择、蓝牙编址、链路类型、信道编码、收发规则、信道控制、音频规范、安全设置。ui
一、蓝牙分组编码为小端模式;编码
二、蓝牙地址3d
BD_ADDR:BluetoothDevice Address;blog
LAP:LowerAddress Part 低地址部分;同步
UAP: UpperAddress Part 高地址部分;
NAP: Non-significantAddress Part 无效地址部分。
三、蓝牙时钟
每一个蓝牙设备都有一个独立运行的内部系统时钟,称为本地时钟(Local Clock),决定定时器的收发跳频。为了与其余设备同步,本地时钟要加一个偏移量(offset),提供给其余设备同步。
蓝牙基带四个关键周期:312.5uS、625uS、1.25mS、1.28S。
CLKN:本地时钟:
CLKE:预计时钟,扫描寻呼过程当中用到;
CLK:设备实际运行的时钟频率。
CLKE、CLK由CLKN加上一个偏移量获得的。
四、蓝牙物理链路:
通讯设备间物理层的数据链接通道就是物理链路。
ACL(Asynchronous Connectionless)异步无链接链路;对时间要求不敏感的数据通讯,如文件数据、控制信令等。
SCO(Synochronous Connection Oriented)同步面向链接链路;对时间比较敏感的通讯,如:语音;最多只支持3条SCO链路,不支持重传。
ACL用于数据传输;
五、蓝牙基带分组:
基带分组至少包括:接入码、分组头、有效载荷;
(1)、接入码用于同步、直流、载频泄漏偏置补偿标识;
(2)、分组头包含链路信息,确保纠正较多的错误。
分组类型以下:
ACL分组形式为:D(M|H)(1|3|5),D表明数据分组,M表明用2/3比例的FEC的中等速率分组;H表明不使用纠错码的高速率分组;一、三、5分别表明分组所占用的时隙数目;
DM一、DM三、DM五、DH一、DH三、DH5
SCO分组形式为:HV(1|2|3)。HV表明高质量语言分组,一、二、3有效载荷所采用的纠错码方法。1为1/3比例FEC,设备2个时隙发送一个单时隙分组;2为2/3比例FEC,设备4个时隙发送一个单时隙分组;3为不使用纠错码,设备6个时隙发送一个单时隙分组
HV一、HV二、HV3
ALC 分组:
SCO分组:
注释:D 只对数据段有用,DV分组包含数据段,也包含语言段。
(3)、有效载荷
分语言有效载荷、数据有效载荷。
六、蓝牙的逻辑信道
链路控制信道:LinkControl LC
链路管理信道:Link Manage LM
用户异步数据信道:User AsynchronizationUA
用户同步数据信道:UserSynchronization US
用户等时数据信道:UserIsochronous UI UI
七、蓝牙的收发规则
上图为RX缓存。
上图为TX缓存。
新分组到达时,ACL链路的RX缓存器要流量控制,SCO数据不须要流量控制;
八、蓝牙基带信道和网络控制
1)、链路控制器状态:
待机、链接
寻呼page、寻呼扫描pagescan、查询inquiry、查询扫描inquiry scan、主设备相应Master Response、从设备相应Slave Response、查询相应inquiry response
2) 、链接状态
激活模式active、呼吸模式sniff、保持模式hold、休眠模式park。
3)、待机状态
待机状态是蓝牙设备缺省低功耗状态,此状态下本地时钟以低精度运行。蓝牙从待机转入寻呼扫描状态,对其余寻呼进行响应成为从设备;也能够从待机状态进入查询扫描状态,完成一个完整的寻呼,成为主设备。
九、接入过程
注释:
IAC Inquiry AccessCode 查询接入码;
GIAC:通用查询接入码 DIAC:专用查询接入码;
DAC:DeviceAccess Code 设备接入码;
LAP:
创建链接,必须使用查询、寻呼;查询过程使用IAC,发现覆盖区域内的设备、设备的地址及其时钟;链接过程使用DAC,创建链接的设备处理寻呼过程,成为主设备。、(1)、查询过程
蓝牙设备经过查询来发现通讯范围内的其余蓝牙设备。查询信息分为GIAC、DIAC两种。查询发起设备收集全部相应设备的地址、时钟信息。
一设备进入查询状态去发现其余设备,查询状态下接二连三的在不一样频点发送查询消息。查询的跳频序列有GIAC的LAP导出。
一设备想被其余设备发现,就要周期性进入 查询扫描状态,以便相应查询消息。如:咱们选择设备多长时间可见,其实就是 进入查询扫描状态。
A、查询扫描
查询扫描状态下,接收设备扫描接入码的时间长度,足以完成对16个频率的扫描。扫描区间长度Twindow inquiry scan。扫描在同一个频率上进行,查询过程用32跳专用查询跳频序列,此序列有通用查询的地址决定,相位有本地时钟决定,每隔1.28S变化一次。
B、查询
与寻呼相似,TX用查询跳频序列、RX用查询相应跳频序列。
C、查询相应
从设备响应查询操做。每一个设备都有本身的时钟,使用查询序列相位相同的概率比较小。为了不多个设备在同一查询跳频信道同时激活,从设备查询响应规定:从设备收到查询消息,产生0-1023只以为额一个随机数,锁定当时相位输入值进行跳频选择,从设备此后的RAND时隙中返回到链接或者待机状态。
(2)、寻呼扫描
DAC:DeviceAccess Code 设备接入码
寻呼扫描状态下的设备扫描窗口Twindowpage scan内监听本身的DAC。监听只在一个跳频点进行。Twindow page scan足够覆盖16个寻呼扫描频点。
寻呼扫描状态,扫描在同一个频率上进行,持续1.28S,在选择另外一个不一样频率。
(3)、寻呼
主设备使用寻呼发起一个主—从设备链接,经过在不一样的跳频点上重复发送从设备DAC来扑捉从设备,从设备在寻呼扫描状态被唤醒,接收寻呼。
(4)、寻呼相应过程
3、链路管理器
如上图红色部分,负责完成设备:功率管理、链路质量管理、链路控制管理、数据分组管理、链路安全管理。 一、链路管理协议数据单元 蓝牙链路管理器接收到高层的控制信息后,不是向自身的基带部分分发控制信息,就是与另外一台设备的链路管理器进行协商管理。这些控制信息封装在链路管理协议数据单元LMP_PDU中,由ACL分组的有效载荷携带。 二、链路管理器协议规范 (1)、设备功率管理 RSSI保持模式、呼吸模式、休眠模式。 (2)、链路质量管理 QoSQuality of Service A、ACL链路。 B、SCO链路。 (3)、链路控制管理 设备寻呼模式、设备角色转换、时钟计时设置、信息交换:版本信息、支持特性、设备名称;创建链接、链路释放。 (4)、数据分组管理 ---------------------