1 引言
蓝牙大家都知道吧,就是无线设备的一种呗。无线设备就是将数据通过电磁波来传输。但是双方的蓝牙设备是怎么识别这些数据的意义的呢,当然是通过人为预先定义好的规则来传输这些数据,这些规则就称为蓝牙协议。
2 背景
2.1 开端
一天下午,哪吒收到了太乙真人送的一副宝贝,名叫“风火轮”,哪吒捣鼓了一下午,都没明白这玩意怎么用。太乙真人不知道手里拿了个什么东西,只见他按下手里的东西,“风火轮”就跑了起来,哪吒呆在原地瞪大双眼看着“风火轮”在跳起了舞,问起了太乙真人:好家伙,这是什么法术,快传授给我。太乙真人笑眯眯得说了句:这是蓝牙遥控技术…
2.2 历史
- 1998年的5月的一天,在一家屋子里聚集了5个“大佬”,成立了一个小组叫“特别兴趣小组”(英文缩写:SIG)秘密召开了一场会议,说要搞一个无线的通讯技术,这种技术要求通讯距离短、成本低。大家一致认为这是一项创新性技术,于是就使用了丹麦国王的名字(这位国王喜欢吃蓝莓,导致牙齿变蓝了)。
- 1999年:0.8、0.9、1.0版本,完成了SDP协定和TCS协定。
- 2001年:1.1版本,此时传输速率为0.7Mbps。
- 2003年:1.2版本,增加了五大功能
1.为了增加安全性,增加了能屏蔽设备硬件地址的功能
2.为了减少射频信号的干扰,增加了适应性跳频功能(AFH)
3.为了提供QoS的音频的传输,增加了延伸同步连结导向信道功能(eSCO)
4.为了更快地连接蓝牙,增加了快速连接功能
5.增加了支持Stereo音效的传输功能,但只能单向
- 2004年:2.0版本,使用了EDR(Enhanced Data Rate)技术,提高了蓝牙传输的率(3Mbps),并且使得功耗降低了,还支持了双工模式。
- 2007年推出了2.1版本,进一步降低了蓝牙功耗(Sniff Subrating省电功能),增加了SSP配对模式,还支持了NFC近场通讯,用NFC可以快速配对两个蓝牙设备。
- 2009年:3.0版本,增加了四大功能
1.增加了**Hight Speed**,蓝牙使用wifi实现高速传输,24Mbps
2.增加 AMP技术
3.增加了EPG增强电源控制技术,降低空闲功耗
4.增加了单向广播无连接数据技术
- 2010年:4.0版本,该版本增加了低功耗功能,提出了三种蓝牙模式:经典蓝牙、低功耗蓝牙和高速蓝牙。4.0之前的版本都为经典蓝牙,4.0之后的蓝牙芯片分为了“单模”和“双模”两种类型,“单模”的蓝牙芯片只有低功耗蓝牙,而“双模”的蓝牙芯片是低功耗蓝牙+经典蓝牙,使用“单模”蓝牙芯片无法兼容4.0以下版本。除此之外,通讯距离还提高到了100米。
- 2013年:4.1版本,软件上大幅修改,为蓝牙组网提供了基础。支持了云同步功能,增加了IPv6通道。支持角色互换,也就是说蓝牙手表可以直接和蓝牙体重秤连接并自主收发数据,而不需要手机作为数据枢纽。
- 2014年:4.2版本
1.提高了传输速度。
2.开始支持6LoWPAN,这种技术允许多个蓝牙设备通过一个终端连入到网络,为物联网提供了更多可能。
3.增加了LE链接的安全性
4.增加了隐私保护
- 2016年:5.0版本
1.增加低功耗模式下传输距离(300米)
2.增加低功耗模式下传输速率(2Mbps)
3.支持室内定位
4.增加Mesh组网功能
- 2017年:增加蓝牙Mesh组网技术,适用于4.0之后的芯片
- 2019年:5.1版本,提高了室内定位的精度(厘米级)
- 2019年:5.2版本,增加 BLE audio,LC3 的编解码方式
- 2021年:5.3版本,降低低功耗蓝牙功耗,增加了经典蓝牙的安全性
3 蓝牙方案
蓝牙技术是包含了硬件芯片、软件程序的,软件程序的指导思想就是协议栈。所以一个设备要实现蓝牙通讯,其一要有支持无线射频功能的硬件电路,其二要有能跑蓝牙协议栈的软件程序。这两部分可以集合到一个芯片里面,也可以分成两个芯片处理。
3.1 SOC蓝牙
也就是MCU蓝牙,一个芯片集合了两个部分,芯片集合了MCU和蓝牙芯片,厂家也把蓝牙协议栈和应用程序已经烧录到蓝牙芯片里了。有这些:CSR BC4/5,CSR8670,CSR8675,TI CC2540,NRF51xxx,NRF52xxx,乐鑫 ESP32 等等。
架构如下:
3.2 SOC蓝牙+MCU
这种是在单SOC蓝牙方案上增加一个或者多个MCU运行应用程序。一般在单芯片方案性能达不到的情况下使用这种方案。架构如下:
3.3 蓝牙host+controller分开
这种方案是将蓝牙硬件部分和协议栈程序部分分开两个芯片运行。这种方案最复杂,主要是协议栈程序复杂,能满足所有蓝牙产品的开发需求。