蓝牙核心系统结构(CORESYSTEM ARCHITECTURE):
核心传输承载( CORE TRAFFIC BEARERS):
蓝牙核心系统为服务协议和应用数据的传输提供了很多的传输载体,如上图所示:
蓝牙传输实体结构(TRANSPORT ARCHITECTURE ENTITIES)如下图所示:
PhysicalChannel:
蓝牙系统结构的最底层。每个通道由以下几方面组成,一是伪随机序列频率,二是特定的传输时隙,三是访问代码(accesscode)和编码包头。ER/EDR系统总共定义了如下种物理通道分别是:
1. basic piconetchannel:
2. adapted piconetchannel:
1和2 这两种channel是两个已经连接设备之间通信使用的,是和特定的微微网联系在一起的。
3. inquiry scan channel:搜索周边的设备通道
4. the page scanchannel:连接蓝牙设备通道
5. synchronizationscan physical channel:获取或者恢复微微网时间和时钟信息通道。
Physical links:
物理链接代表了蓝牙设备的基带链接。每个物理链接总是和一个物理通道绑定,但是一个物理通道可以支持多个物理链接。在蓝牙系统里,物理链接是一个虚拟的概念,没有一种传输结构直接和其对应。
经典蓝牙(BR/EDR)数据包access code域,以及时钟和host蓝牙地址确定蓝牙的物理通道。在低功耗蓝牙(LE) 数据包access code域,hop index, andchannel map确定蓝牙物理通道。
在经典蓝牙和低功耗蓝牙模式数据包中,没有用来确定物理链接的部分。但是物理链接能否被逻辑传输层确定,一种逻辑传输必然对应且只对应一种逻辑链接!
LOGICALTRANSPORTS:
在蓝牙主从设备之间,可能需要建立不同的逻辑传输。系统中总共定义了多种不同的逻辑传输:
• Synchronous Connection-Oriented (SCO) logical transport
• Extended Synchronous Connection-Oriented (eSCO) logicaltransport
在微微网中,SCO 和eSCO 是主设备对从设备的点对点的逻辑传输。同步逻辑传输用在对时间要求比较严格的场景中,比如音频和同步数据的传输。主设备通过保留的时隙维护逻辑传输中的同步。在eSCO逻辑传输中会利用保留的时隙构成一个重传窗口,eSCO有重传机制!
• Asynchronous Connection-Oriented (ACL) logical transport
ACL也主设备与从设备的点对点逻辑传输。主机没有保留同步时隙,主机能够在每个时隙上跟从设备建立ACL逻辑传输,包括已经建立同步传输的从设备。
• Active Slave Broadcast (ASB) logical transport
主设备和激活从设备的传输通道
• Parked Slave Broadcast (PSB) logical transport
主设备和休眠从设备的传输通道
• Connectionless Slave Broadcast (CSB) logical transport
主设备传输特性广播(profile broadcast)数据通道
LOGICALLINKS:
系统共定义了多种种逻辑链接分别是:
• Link Control (LC)
用来链路控制
• ACL Control (ACL-C)
用来链路管理
• User Asynchronous/Isochronous (ACL-U)
异步传输用户数据(asynchronous orisochronous user information)
• User Synchronous (SCO-S)
• User Extended Synchronous (eSCO-S)
同步传输用户数据
• Profile Broadcast Data (PBD)
传输特性广播数据(carry profile broadcastdata)
总体来说分C域和U域,C域用来发送命令,配置,和传输事件。U域用来传输用户数据。
逻辑链接和逻辑传输(Logical Links and Logical Transports):
为了支持不同的应用数据传输,所以才定义了各种逻辑链接!每一种逻辑链接都会有对应的逻辑传输。逻辑传输具有流控制,确认/重传机制,编号序列和调度特性。
蓝牙数据包格式:
1.经典蓝牙数据包格式(BR/EDR Generic Packet Structure):
2.低功耗蓝牙包格式(LE Generic Packet Structure):
逻辑通路内部的传输机制:
对于data和voice混合的packet,因为切换机制的不同,则有可能会出现voice已经更新了,而data还在重传的现象。这一点要注意。
对于RX而言,机制是比较类似的。他的切换示意图见下图:
SCO中对master而言,同时存在的链路最大数目为3条。而对slave而言,对同样的master可以有最多3条链路存在,对不同的master则最多只有2条链路存在。
对异步的ACL而言,重传一般是在packet层次。master和slave之间只能有一条链路存在。