蓝牙协议入门(二)传输层协议
蓝牙协议入门(二)传输层协议
1.传输层协议
传输层位于蓝牙系统的底层,负责蓝牙设备间,互相确认对方的位置,以及建立和管理蓝牙设备间的物理链路。其又分为射频层、基带层和链路管理层三部分。
2.射频层协议
2.1.工作频率
蓝牙工作在 2.4 GHz ISM 频段上,蓝牙采用跳频扩谱技术主动的避免工作频段受干扰。我国的蓝牙频率在 2.402 GHz~2.483 GHz,蓝牙每个频道的宽度为1 MHz,为了减少带外辐射的干扰,保留上、下保护为3.5 MHz 和 2 MHz,79 个跳频点中至少 75 个伪随机码跳动,30 s 内任何一个频点使用时长不能超过 0.4 s。
地理位置 | ISM频段范围 | 射频信道频率 |
---|---|---|
中国、美国、欧洲 | 2400.0~2483.5MHz | F=(2402+k)MHz,k在0、1、……78中随机取值 |
法国 | 2446.5~2483.5MHz | F=(2454+k)MHz,k在0、1、……22中随机取值 |
日本 | 2471.0~2497.0MHz | F=(2473+k)MHz,k在0、1、……22中随机取值 |
西班牙 | 2445.0~2475.0MHz | F=(2449+k)MHz,k在0、1、……22中随机取值 |
2.2.跳频技术、发射功率、时隙
- 发射功率:蓝牙发射功率分三级:一级功率100 mW( 20 dBm);二级功率 2.5 mW( 4 dBm);三级功率1 mW( 0 dBm);
- 物理信道:蓝牙物理信道有伪随机序列控制的 79 个跳频点构成,不同跳频序列代表不同的信道。
- 时隙:蓝牙跳频速率为1600 次/s,每个时间为 625 us (1 s/1600) 称为一个时隙;
3.基带层协议
蓝牙发送数据时,基带部分将来自高层的数据进行信道编码,向下发给射频进行发送;接收数据时,将解调恢复空中数据并上传给基带,基带进行信道编码传送给上层。
3.1.蓝牙地址
蓝牙设备编码采取小端模式,即高位在后面。它的前 24 位是制造商分配的产品编号(LAP,低地址部分),中间8 位是 SIG 给制造商分配的编号(UAP,高地址部分),最后 16 位保留无效(NAP,无效地址部分)。
3.2.蓝牙时钟
每个蓝牙设备都有一个独立运行的内部系统时钟,称为本地时钟(Local Clock),决定定时器的收发跳频。为了与其他设备同步,本地时钟要加一个偏移量(offset),提供给其他设备同步。 具体说来,蓝牙系统中的时钟分为以下几种:
- CLKN:本地时钟:
- CLKE:预计时钟,扫描寻呼过程中用到;
- CLK:设备实际运行的时钟。
这三者之间存在着相关关系,具体说来 CLKE、CLK 由 CLKN 加上一个偏移量得到的。
- 主设备:CLK = CLKN
- 从设备:CLK = CLKN + offset
3.3.蓝牙物理链路
通信设备间物理层的数据连接通道就是物理链路。
- ACL(Asynchronous Connectionless)异步无连接链路;对时间要求不敏感的数据通信,如文件数据、控制信令等。
- SCO(Synochronous Connection Oriented)同步面向连接链路;对时间比较敏感的通信,如:语音;最多只支持3条 SCO 链路,不支持重传。
3.4.蓝牙基带分组
基带分组至少包括:接入码、分组头、有效载荷;
- 接入码用于同步、直流、载频泄漏偏置补偿标识;
- 分组头包含链路信息,确保纠正较多的错误。
详细分组类型如下:
分组类别 | Type (b3b2b1b0) | 时隙 | SCO | ACL |
---|---|---|---|---|
链路控制分组 | 0000 | 1 | NULL | NULL |
0001 | POLL | POLL | ||
0010 | FHS | FHS | ||
0011 | DM1 | DM1 | ||
单时隙分组 | 0100 | 1 | 未定义 | NULL |
0101 | HV1 | |||
0110 | HV2 | |||
0111 | HV3 | |||
1000 | DV | |||
1001 | NULL | AUX1 | ||
三时隙分组 | 1010 | 3 | 未定义 | DM3 |
1011 | ||||
1100 | 未定义 | |||
1101 | ||||
五时隙分组 | 1110 | 5 | 未定义 | DM5 |
1111 |
- ACL分组形式为:D(M|H)(1|3|5),D代表数据分组,M代表用2/3比例的 FEC 的中等速率分组;H 代表不使用纠错码的高速率分组;1、3、5分别代表分组所占用的时隙数目;
DM1、DM3、DM5、DH1、DH3、DH5 * SCO分组形式为:HV(1|2|3)。HV代表高质量语言分组,1、2、3 有效载荷所采用的纠错码方法。1为1/3比例 FEC,设备2个时隙发送一个单时隙分组;2 为 2/3 比例 FEC ,设备4个时隙发送一个单时隙分组;3为不使用纠错码,设备6个时隙发送一个单时隙分组。
HV1、HV2、HV3
3.4.1.ACL分组
类型 | 有效载荷头/字节 | 用户有效载荷/字节 | FEC | CRC | 对称最大速率/kbps | 非对称速率/kbps | |
---|---|---|---|---|---|---|---|
前向 | 后向 | ||||||
DM1 | 1 | 0~17 | 2/3 | 有 | 108.8 | 108.8 | 108.8 |
DH1 | 1 | 0~27 | 无 | 有 | 172.8 | 172.8 | 172.8 |
DM3 | 2 | 0~121 | 2/3 | 有 | 258.1 | 387.2 | 54.4 |
DH3 | 2 | 0~183 | 无 | 有 | 390.4 | 585.6 | 86.4 |
DM5 | 2 | 0~224 | 2/3 | 有 | 286.7 | 477.8 | 36.3 |
MH5 | 2 | 0~339 | 无 | 有 | 433.9 | 723.2 | 57.6 |
AUX1 | 1 | 0~29 | 无 | 无 | 185.6 | 185.6 | 185.6 |
3.4.2.SCO分组
类型 | 有效载荷头/字节 | 用户有效载荷/字节 | FEC | CRC | 有效载荷长度 | 同步速率/kbps | 占用Tsco数目/语言长度 |
---|---|---|---|---|---|---|---|
HV1 | 无 | 10 | 1/3 | 240位 | 64 | 2/1.25ms | |
HV2 | 20 | 2/3 | 4/2.5ms | ||||
HV3 | 30 | 无 | 6/3.75ms | ||||
6/3.75ms | 1D | 10+(0-9)D | 2/3D | 有D | 64+57.6D |
注释:D 表示只对数据段有用,DV 表示分组包含数据段,也包含语言段。
X.参考链接
蓝牙核心技术概述(三): 蓝牙协议规范(射频、基带链路控制、链路管理)
原文链接: https://jacksmiththu.github.io/2017/06/25/蓝牙协议入门(二)传输层协议/