蓝牙基础知识总结

news/2024/11/26 6:22:46/

蓝牙基础知识总结

蓝牙版本概述

蓝牙各个版本发布时间

版本

规范发布时间

增强描述

0.7

1998-10-19

Baseband,LMP

0.8

1999-1-21

HCI,L2CAP,RFCOMM

0.9

1999-4-30

OBEX与IRDA的通用性

1.0Draft

1999-7-5

SDP,TCS

1.0A

1999-7-26

第一个正式版本

1.0B

2000-10-1

增强安全性和厂商设备之间连接兼容性

1.1

2001-2-22

IEEE.802.15.1

1.2

2003-11-5

快速连接,自适应跳频,错误检测和流程控制,同步能力

2.0+EDR

2004-11-9

EDR传输率提升至2-3Mbps

2.1+EDR

2007-7-26

扩展查询响应,简易安全配对,暂停与继续加密,sniff省电

3.0+HS

2009-4-21

交替射频技术,802.11.协议适配层,电源管理,取消了UMB的应用

4.0+BLE

2010-6-30

低功耗物理层和链路层,AES加密,ATT,GATT,SM

4.1

2013-12-6

通过IPV6(互联网协议)连接到网络

4.2

2014-12-4

数据传输速度提高了2.5倍,因为蓝牙智能(Bluetooth Smart)数据包的容量提高,其可容纳的数据量相当于此前的10倍左右

5.0

2016-12-6

传输速率增大到2Mbps,4倍与4.2的传输距离(300米),广播包增大到255字节,是之前的8倍

5.1

2019-1-21

天线阵(Antenna Array)的测向技术 – 到达角(AoA - Angle of Arrival)和发射角(AoD - Angle of Departure)。

5.2

2019-12-31

推出新一代蓝牙音频标准——低功耗音频LE Audio,v5.2版本给低功耗蓝牙(Bluetooth Low Energy)增加了三个新功能。分别是LE同步信道(LE Isochronous Channels),增强版ATT(Enhanced ATT)以及LE功率控制(LE Power Control)。

1.版本1.1:

传输率约在748~810kb/s,因是早期设计,容易受到同频率之间的类似通信产品干扰,影响通讯质量。这个初始版本支持Stereo立体声音效的传输要求,但只能够以(单工)方式工作,加上带宽频率响应等指标不理想,并未算是最好的Stereo传输工具。

2.版本1.2:

同样是只有748~810kb/s的传输率,但增加了(改善Software)抗干扰跳频功能。(太深入的技术理论不再详述!)。支持Stereo音效的传输要求,但只能够作(单工)方式工作,加上带宽频率响应还是不理想,也不能作为立体声(Stereo)传输工具。

3.版本2.0:

 2.0是1.2的改良提升版,传输率约在1.8M/s~2.1M/s,可以有(双工)的工作方式。即一边作语音通讯,同时亦可以传输档案/高质素图片,2.0版本当然也支持Stereo运作。随后蓝牙2.0版本的芯片,增加了Stereo译码芯片,则连A2Dp(Advanced Audio Distribution Profile)也可以不需要了。

4.版本2.1:

为了改善蓝牙技术存在的问题,蓝牙SIG组织(Special Interest Group)推出了Bluetooth 2.1+EDR版本的蓝牙技术。改善装置配对流程:以往在连接过程中,需要利用个人识别码来确保连接的安全性,而改进过后的连接方式则是会自动使用数字密码来进行配对与连接,举例来说,只要在手机选项中选择连接特定装置,在确定之后,手机会自动列出当前环境中可使用的设备,并且自动进行连结;而短距离的配对方面:也具备了在两个支持蓝牙的手机之间互相进行配对与通讯传输的NFC(Near Field CoMMunication)机制;更佳的省电效果:蓝牙2.1版加入了Sniff Subrating的功能,透过设定在2个装置之间互相确认讯号的发送间隔来达到节省功耗的目的。蓝牙2.1将装置之间相互确认的讯号发送时间间隔从旧版的0.1秒延长到0.5秒左右,如此可以让蓝牙芯片的工作负载大幅降低,也可让蓝牙可以有更多的时间可以彻底休眠。根据官方的报告,采用此技术之后,蓝牙装置在开启蓝牙联机之后的待机时间可以有效延长5倍以上,开始支持全双工通信模式。

5.版本3.0+HS:

2009年4月21日,蓝牙技术联盟(BluetoothSIG)正式颁布了新一代标准规范"Bluetooth Core Specification Version3.0 HighSpeed"(蓝牙核心规范3.0版高速),蓝牙3.0的核心是"GenericAlternateMAC/PHY"(AMP),这是一种全新的交替射频技术,允许蓝牙协议栈针对任一任务动态地选择正确射频。最初被期望用于新规范的技术包括802.11以及UMB,但是新规范中取消了UMB的应用。作为新版规范,蓝牙3.0的传输速度自然会更高,而秘密就在802.11无线协议上。通过集成"802.11PAL"(协议适应层),蓝牙3.0的数据传输率提高到了大约24Mbps(即可在需要的时候调用802.11WI-FI用于实现高速数据传输)。,是蓝牙2.0的八倍,可以轻松用于录像机至高清电视、PC至PMP、UMPC至打印机之间的资料传输。功耗方面,通过蓝牙3.0高速传送大量数据自然会消耗更多能量,但由于引入了增强电源控制(EPC)机制,再辅以802.11,实际空闲功耗会明显降低,蓝牙设备的待机耗电问题有望得到初步解决。此外,新的规范还具备通用测试方法(GTM)和单向广播无连接数据(UCD)两项技术,并且包括了一组HCI指令以获取密钥长度。据称,配备了蓝牙2.1模块的PC理论上可以通过升级固件让蓝牙2.1设备也支持蓝牙3.0。联盟成员已经开始为设备制造商研发蓝牙3.0解决方案。

6.蓝牙4.0

6.1 简介:

蓝牙4.0为蓝牙3.0的升级标准,蓝牙4.0最重要的特性是省电,极低的运行和待机功耗可以使一粒纽扣电池连续工作数年之久。此外,低成本和跨厂商互操作性,3毫秒低延迟、AES-128加密等诸多特色,可以用于计步器、心律监视器、智能仪表、传感器物联网等众多领域,大大扩展蓝牙技术的应用范围。

6.2 主要特点:

蓝牙4.0是蓝牙3.0+HS规范的补充,专门面向对成本和功耗都有较高要求的无线方案,可广泛用于卫生保健、体育健身、家庭娱乐、安全保障等诸多领域。它支持两种部署方式:双模式和单模式。双模式中,低功耗蓝牙功能集成在现有的经典蓝牙控制器中,或再在现有经典蓝牙技术(2.1+EDR/3.0+HS)芯片上增加低功耗堆栈,整体架构基本不变,因此成本增加有限。Single mode只能与BT4.0互相传输无法向下兼容(与3.0/2.1/2.0无法相通);Dual mode可以向下兼容可与BT4.0传输也可以跟3.0/2.1/2.0传输。单模式面向高度集成、紧凑的设备,使用一个轻量级连接层(Link Layer)提供超低功耗的待机模式操作、简单设备恢复和可靠的点对多点数据传输,还能让联网传感器在蓝牙传输中安排好低功耗蓝牙流量的次序,同时还有高级节能和安全加密连接。

6.3 优点

蓝牙4.0将三种规格集一体,包括传统蓝牙技术、高速技术和低耗能技术,与3.0版本相比最大的不同就是低功耗。“4.0版本的功耗较老版本降低了90%,更省电, 随着蓝牙技术由手机、游戏、耳机、便携电脑和汽车等传统应用领域向物联网、医疗等新领域的扩展,对低功耗的要求会越来越高。4.0版本强化了蓝牙在数据传输上的低功耗性能。”

7.蓝牙4.1

7.1 简介

  如果说蓝牙 4.0主打的是省电特性的话,那么此次升级蓝牙4.1的关键词应当是IOT(全联网),也就是把所有设备都联网的意思。为了实现这一点,对通讯功能的改进是蓝牙 4.1最为重要的改进之一。

7.2 主要特点

1)批量数据的传输速度

   最亮眼的就是批量数据的传输速度,大家知道蓝牙的传输速率一直非常渣,与已经跨入千兆的WiFi相比毫无可比性。所以蓝牙4.1在已经被广泛使用的蓝牙4.0 BLE基础上进行了升级,使得批量数据可以以更高的速率传输。当然这并不意味着可以用蓝牙高速传输流媒体视频,这一改进的主要针对的还是刚刚兴起的可穿戴设备。例如已经比较常见的健康手环,其发送出的数据流并不大,通过蓝牙4.1能够更快速地将跑步、游泳、骑车过程中收集到的信息传输到手机等设备上,用户就能更好地实时监控运动的状况,这是很有用处的。在蓝牙4.0时代,所有采用了蓝牙4.0 BLE的设备都被贴上了“BluetoothSmart” 和“Bluetooth SmartReady”的标志。其中Bluetooth Smart Ready设备指的是PC、平板、手机这样的连接中心设备,而Bluetooth Smart设备指的是蓝牙耳机、键鼠等扩展设备。之前这些设备之间的角色是早就安排好了的,并不能进行角色互换,只能进行1对1连接。而在蓝牙4.1技术中,就允许设备同时充当“Bluetooth Smart” 和“Bluetooth Smart Ready”两个角色的功能,这就意味着能够让多款设备连接到一个蓝牙设备上。举个例子,一个智能手表既可以作为中心枢纽,接收从健康手环上收集的运动信息的同时,又能作为一个显示设备,显示来自智能手机上的邮件、短信。借助蓝牙4.1技术智能手表、智能眼镜等设备就能成为真正的中心枢纽。

2)通过IPV6(互联网协议)连接到网络

   除此之外,可穿戴设备上网不易的问题,也可以通过蓝牙4.1进行解决。新标准加入了专用通道允许设备通过 IPv6 联机使用。举例来说,如果有蓝牙设备无法上网,那么通过蓝牙4.1连接到可以上网的设备之后,该设备就可以直接利用IPv6连接到网络,实现与WiFi相同的功能。尽管受传输速率的限制,该设备的上网应用有限,不过同步资料、收发邮件之类的操作还是完全可以实现的。这个改进的好处在于传感器、嵌入式设备只需蓝牙便可实现连接手机、连接互联网,相对而言WiFi多用于连接互联网,在连接设备方面效果一般,无法做到蓝牙的功能。未来随着物联网逐渐走进我们的生活,无线传输在日常生活中的地位也会越来越高,蓝牙作为普及最广泛的传输方式,将在“物联网”中起到不可忽视的作用。不过,蓝牙完全适应IPv6则需要更长的时间,所以就要看芯片厂商如何帮助蓝牙设备增加IPv6的兼容性了

3)简化设备连接

在各大手机厂商以及PC厂商的推动下,几乎所有的移动设备和笔记本电脑中都装有蓝牙的模块,用户对于蓝牙的使用也比较多。不过仍有大量用户觉得蓝牙使用起来很麻烦,归根结底还是蓝牙设备较为复杂的配对、连接造成的。试想一下,如果与手机连接的智能手表,每次断开连接后,都得在设置界面中手动选择一次才能重新连接,这就非常麻烦了。之前解决这一问题的方法是厂商在两个蓝牙设备中都加入NFC芯片,通过NFC近场通讯的方式来简化重新配对的步骤,这本是个不错的思路。只是搭载NFC芯片的产品不仅数量少,而且价格偏高,非常小众。

蓝牙4.1针对这点进行了改进,对于设备之间的连接和重新连接进行了很大幅度的修改,可以为厂商在设计时提供更多的设计权限,包括设定频段创建或保持蓝牙连接,这以改变使得蓝牙设备连接的灵活性有了非常明显的提升。两款带有蓝牙4.1的设备之前已经成功配对,重新连接时只要将这两款设备靠近,即可实现重新连接,完全不需要任何手动操作。举个例子,以后使用蓝牙4.1的耳机时,只要打开电源开关就行了,不需要在手机上进行操作,非常的简单。

4)与4G和平共处

在移动通信领域,近期最火的话题莫过于4G了,已经成为全球无线通信网络一个不可逆转的发展趋势。而蓝牙4.1也专门针对4G进行了优化,确保可以与4G信号和平共处,这个改进被蓝牙技术联盟称为“共存性”。可能大家会觉得疑惑,手机网络信号和蓝牙不是早就共存了么,为什么蓝牙4.1还要特别针对这点改进呢?这是因为在实际的应用中,如果这两者同时传输数据,那么蓝牙通信就可能受到手机网络信号的干扰,导致传输速率的下降。因此在全新的蓝牙4.1标准中,一旦遇到蓝牙4.1和4G网络同时在传输数据的情况,那么蓝牙4.1就会自动协调两者的传输信息,从而减少其它信号对蓝牙4.1的干扰,用户也就不用担心传输速率下降的问题了。

5)蓝牙4.1提供的增强功能包括:  

 AES加密技术提供更安全的连接。该功能使无线耳机更加适用于政府、医疗及银行等安全至上的应用领域。可通过专属Bluetooth Smart远程遥控器操控耳机、扬声器及条形音箱,并支持同步播放源于另一个完全不同设备的音频流。

8.蓝牙4.2 

2014年12月4日,蓝牙4.2标准颁布,改善了数据传输速度和隐私保护程度,可直接通过IPv6和6LoWPAN接入互联网。在新的标准下蓝牙信号想要连接或者追踪用户设备必须经过用户许可,否则蓝牙信号将无法连接和追踪用户设备。速度方面变得更加快速,两部蓝牙设备之间的数据传输速度提高了2.5倍,因为蓝牙智能(Bluetooth Smart)数据包的容量提高,其可容纳的数据量相当于此前的10倍左右。

蓝牙的单包发送数据最长增加到255个字节,其中有效数据为251个字节,连接安全性进行了优化,上面的255个字节是协议增加到了255个字节,而芯片当前只能做到247个字节,有效数据244个。

9.蓝牙5.0 

美国时间2016年6月16日在伦敦正式发布,为现阶段最高级的蓝牙协议标准,相较于4.2版本,总结为248法则,传输速率增加到2M,传输距离扩大到了4倍,广播包增长了8倍。传输速率协议支持到2M,但是实际应用中还是 1Mbps,另外增加mesh组网。

1、更快的传输速度
蓝牙5.0的开发人员称,新版本的蓝牙传输速度上限为2Mbps,是之前4.2LE版本的两倍。当然,你在实际生活中是不太可能达到这个极限速度的,但是仍然可以体验到显著的速度提升。

2、更远的有效距离

蓝牙5.0的另外一个重要改进是,它的有效距离是上一版本的4倍,因此在理论上,当你拿着手机站在距离蓝牙音箱300米的地方,它还是会继续放着你爱的歌。也就是说,理论上,蓝牙发射和接收设备之间的有效工作距离可达300米。当然,实际的有效距离还取决于你使用的电子设备。

3、导航功能

此外,蓝牙5.0将添加更多的导航功能,因此该技术可以作为室内导航信标或类似定位设备使用,结合wifi可以实现精度小于1米的室内定位。举个例子,如果你是路痴,你仍可以使用蓝牙技术,在诺大的商业中心找到路。

4、物联网功能

物联网还在持续火爆,因此,蓝牙5.0针对物联网进行了很多底层优化,力求以更低的功耗和更高的性能为智能家居服务,推出mesh组网。

5、升级硬件

此前的一些蓝牙版本更新只要求升级软件,但蓝牙5.0很可能要求升级到新的芯片。不过,旧的硬件仍可以兼容蓝牙5.0,你就无法享用其新的性能了。搭载蓝牙5.0芯片的旗舰级手机将于2017年问世,相信中低端手机也将陆陆续续内置蓝牙5芯片。苹果将为成为第一批使用该项技术的厂商之一。

6、更多的传输功能

全新的蓝牙5.0能够增加更多的数据传输功能,硬件厂商可以通过蓝牙5.0创建更复杂的连接系统,比如Beacon或位置服务。因此通过蓝牙设备发送的广告数据可以发送少量信息到目标设备中,甚至无需配对。

7、更低的功耗

众所周知,蓝牙是智能手机的必备功能,随着智能设备和移动支付等越来越多需要打开蓝牙才能享受便利功能逐渐融入人们的生活之中,蓝牙的功耗成为了智能手机待机时间的一大杀手。为此蓝牙5.0将大大降低了蓝牙的功耗,使人们在使用蓝牙的过程中再也不必担心待机时间短的问题。

8、真正支持无损传输

支持24bit/192KHz的无损音源传输,对现有的WIFI高保真无损音频传输形成有效威胁。

10.蓝牙5.1

蓝牙5.1使用两种是基于天线阵(Antenna Array)的测向技术 – 到达角(AoA - Angle of Arrival)和发射角(AoD - Angle of Departure)。AoA技术中需要有2 根以上的接收天线,AoD技术中需要有2根以上的发射天线。支持测向功能的设备发送/接收包含Constant Tone Extension (CTE)的数据包,CTE中的各个分量在发送/接收时在不同的天线上进行切换,接收机通过IQ采样计算无线电波的相位差,再基于相位差、波长及天线间距计算发射/入射角度。

             

11.蓝牙5.2

1月7日,在拉斯维加斯举办的CES 2020大会上,SIG正式向公众推出了蓝牙v5.2版本,同时还发布了基于该版本的新一代蓝牙音频技术标准——低功耗音频LE Audio。为推出新一代蓝牙音频标准——低功耗音频LE Audio,v5.2版本给低功耗蓝牙(Bluetooth Low Energy)增加了三个新功能。分别是LE同步信道(LE Isochronous Channels),增强版ATT(Enhanced ATT)以及LE功率控制(LE Power Control)。LE同步信道是支持新一代蓝牙音频技术标准(低功耗音频LE Audio)的核心技术,旧版本的低功耗蓝牙仅支持面向连接的异步通信链路(ACL)及非连接模式的广播链路。简单的说,目前的蓝牙发射设备只能连接单个接收设备,而在LE Audio标准下,通过“多重串流音频”和“广播音频”技术,发射端可以直接同时连接多个接收设备,大大降低延迟、提高稳定性。

为了实现这一功能,v5.2版本定义了LE同步信道(LE Isochronous Channels), 包括连接模式下的同步音频流(Connected Isochronous Stream)传输信道和广播模式下的同步音频流(Broadcast Isochronous Stream)传输信道。这一技术的出现,为将来多重串流音频(Multi-Stream Audio)和基于广播音频流的共享音频(Audio Sharing)的应用打下了基础。而根据v5.2版本的定义,一个同步组最多可以包括31个不同的同步音频流,在广播同步模式下可以实现通讯范围内无限多个音频接收端同时收听分享的音频流。

 

v5.2版本在低功耗蓝牙的控制器(Controller)中定义了一个新的通讯协议层 – 同步适配层 (ISOAL),用于实现LE同步信道功能。该协议层主要用于实现同步数据(如数字音频流)的服务数据单元(SDU)与链路层(Link Layer)的协议数据单元(PDU)进行相互转换。其基本原理是由于SDU的长度远大于PDU的长度因而在发送同步数据时需要将一个SDU分割并转换成多个PDU并调制射频信号进行传输,反过来在接收时需要将多个PDU重新组装转换成SDU并向上层传输。

2增强版ATT

v5.2版本对ATT协议(Enhanced Attribute Protocol)进行了完善,用于快速读取属性值。这将大大提高基于ATT协议的信息沟通效率,实现快速服务发现(Fast Service Discovery)等功能。可以预见的是,增强后的ATT协议将在下一代蓝牙音频技术中得到应用,让音频设备间交换相关服务信息更加迅速。

蓝牙v5.2版本定义了低功耗蓝牙的双向功率控制协议(LE Power Control),可用于实现多种应用场景,有助于在保持连接的情况下进一步降低功耗并提高设备连接的稳定性和可靠性。

 

蓝牙的工作频段

我国的蓝牙频率:2.402GHz~2.483.5GHz, ISM((Industrial Scientific Medical

其中经典蓝牙(蓝牙3.0)每个频道的宽度为1MHz,为了减少带外辐射的干扰,保留上、下保护为3.5MHz和2MHz,79个跳频点中至少75个伪随机码跳动,30S内任何一个频点使用时长不能超过0.4S。

BLE(蓝牙4.0以上)是2MHz一个信道,增加信道带宽从而来降低对信噪比的要求,所以这也是蓝牙4.0低功耗的原因之一。因为这样对发射功率的要求降低了。

地理位置

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.4GHz(=2400MHz)频带的信道划分。实际一共有14个信道(下面的图中画出了第14信道),但第14信道一般不用。

 

每个信道的有效宽度是 20MHz,另外还有2MHz的强制隔离频带(类似于公路上的隔离带)。即,对于中心频率为 2412 MHz 的1信道,其频率范围为 2401~2423MHz, 除 1、6、11 三个一组互不干扰的信道外,还有 2、7、12;3、8、13;4、9、14 三组互不干扰的信道

 

其中广播通道为37/38/39,对应的中心频率分别为2402MHz、2426MHz、2480MHz。BLE在广播的时候会轮流使用这3个通道进行广播。

从图中可以看出BLE的3个广播通道并不是连在一起的,从上图可以看出wifi使用的也是2.4G的频段,如果在有wifi信号的情况会对BLE的广播造成干扰从而导致不能有效的进行广播。所以BLE的设计者将三个广播通道设计成这样。

虽然广播通道的频段是不连续的,但是编号却是连续的。这样设计的目的是为了保证数据通道编号的连续性,跳频算法方便计算。

蓝牙的广播包与数据包长度

 

蓝牙传输速率

一般BLE数据吞吐量公式中重要因数就是以下三个重要元素:

1.连接间隔 - 设备通话的频率。

2.每个连接间隔的数据包数量 - 当他们说话时交换了多少个数据包。

3.数据包长度 - BLE数据包中应用数据的长度。

 

前阵子看到各大测试机构转发蓝牙认证最新通告,通告表明,随着蓝牙新标准的颁布和实施,老的标准会逐步淘汰。

 

Bluetooth SIG为了鼓励会员逐步弃用蓝牙核心规格旧版本蓝牙标准并转而使用新的蓝牙核心规格版本蓝牙标准以提高互操作性及品质,Bluetooth SIG 董事会正式批准了蓝牙核心规格版本标准弃用及撤销计划。

1. 2017 年12 月19 日起执行弃用蓝牙核心标准版本2.0/2.0+EDR;

 

2. 2018 年7 月1 日起执行撤销蓝牙核心标准版本2.0/2.0+EDR;

 

3. 2018 年7 月1 日起执行弃用蓝牙核心标准版4.0/3.0/2.1/2.1+EDR;

 

4. 2020 年1 月1 日起执行撤销蓝牙核心标准版4.0/3.0/2.1/2.1+EDR;

 

5. 2019 年1 月1 日起执行弃用蓝牙核心标准版本4.1;

 

6. 2020 年7 月1 日起执行撤销蓝牙核心标准版本4.1。

之前SIG发布的认证通告已经无法在官网找到,想必是SIG另有考虑,已经撤销了公布,没这么快废除之前老的标准,所以以上信息,大家了解一下即可,等SIG的公告。

https://www.bluetooth.com/specifications/bluetooth-core-specification/deprecated-specifications

蓝牙认证通告让我想起了安迪比尔定律的套路,What Andy gives, Bill takes away。半导体在发展,有了强大的处理器芯片,自然就有了更多硬件资源可以用于跑更为复杂的蓝牙协议和软件,SIG每年颁布了新的标准,增加新的功能,需要更多的硬件资源来跑更为复杂的算法和协议,自然老的硬件支持不了新的软件就被淘汰掉。

蓝牙4.1 vs 蓝牙4,0    

1.提升数据传输率

相比蓝牙4.0,蓝牙4.1单包数据传输最大值从20字节上调到23字节,提升了15%的数据传输率。根据该规则,大家可以尝试修改单包数据payload的值,如果该芯片只支持BT4.0,那么修改传输23字节要么会编译报错,要么传输过程中会丢包。

2.主从共存

链路层Link layer拓扑结构做了更新,允许单设备主从同时共存(时间片轮转方式),以及一主对多从设备的连接拓扑。

3.支持32-Bit UUID

32-Bit UUID指的是广播包携带的UUID,并不是指我们所说的针对属性列表的16 bit and 128 bit UUID。可以通过广播的32-Bit UUID映射得到完整的128 Bit UUID从而使得广播包内有效广播数据长度更多。

蓝牙4.2 vs 蓝牙4.1

1.LE连接安全

从Spec定义上蓝牙4.0和4.1的配对加密环节都是基于AES-CCM加密,但是由于蓝牙4.1双方共享同一密钥,所以存在被破解风险和漏洞。蓝牙4.2的pairing环节,采用Diffie-Hellman Key Exchange密钥交换算法进行加密,每一个设备有一对密钥对,公钥和私钥,私钥自己保存,公钥公开给对方,数据交互时,一方通过自己的私钥和对方的公钥进行加密文件,接收方通过自己私钥和传输方的公钥进行解密,从而有效的防止中间人破解密钥的事件发生。

2.隐私保护

蓝牙在广播过程中会携带自己的BD address (bluetooth device address)即为蓝牙唯一的MAC地址,在某些应用,比如物流追踪应用当中是非常有帮助的,可以根据BD address固定物流设备。

但是在某些应用不希望自己的BD address暴露在主端设备的监控下,蓝牙4.2给出了灵活的选择,蓝牙4.2规定,从机设备可以选择在广播模式下发送随机BD address,这样主端设备除了接该到设备之后才能获取其真实BD address,除此该设备广播模式的BD address为随机序列。

3.大数据传输

蓝牙4.1最大支持23字节单包数据传输,蓝牙4.2最大支持255字节单包数据传输,极大提升了数据传输率。详细可以参考我写的另外一篇文章《提升蓝牙4.2数据传输率的办法 - ATT_MTU》。

蓝牙5.0 vs 蓝牙4.2

1.远距离

得益于前向错误编码和模式映射,使得蓝牙数据在传输过程中,RX端对整个payload数据包解码纠错能力有不同提升(简单说即为提高RX端接收灵敏度),蓝牙5的传输距离才有显著的提升

2.长广播包

蓝牙4.x协议规定蓝牙广播数据包每包数据最大只支持31字节数据传输,广播信道限制在37,38,39三个信道。在原有的用于传输广播数据的PDU(ADV_IND、ADV_DIRECT_IND、ADV_NONCONN_IND以及ADV_SCAN_IND,称作legacy PDUs)的基础上,蓝牙5增加了扩展的PDU(ADV_EXT_IND、AUX_ADV_IND、AUX_SYNC_IND以及AUX_CHAIN_IND,称作extended advertising PDUs),同时也允许蓝牙在除开37,38,39三个通道之外的其他37个信道上发送长度介于0-255字节的数据

3.大数据传输

与蓝牙4.2相比,蓝牙5支持两种PHY,1M PHY和2MPHY,2M PHY的数据传输率是蓝牙5.0新增功能,在蓝牙4.2之前,只支持1Mbps PHY的速率。和蓝牙4.2一样,蓝牙5也支持单包255字节的数据传输,所以蓝牙的速率比起4.2提升了一倍。

小结:

目前市场上依然有大量蓝牙4.0/3.0/2.1/2.1+EDR产品存在,从自拍器,遥控器到各种智能设备,因其功能够用,价格低廉,受到快消类产品客户的亲昵,而工业类,汽车类应用,BT4.0的产品依然当道,究其原因,稳定,够用,供货好,当然价格不贵。但如果说蓝牙5之前蓝牙解决的是单点连接的可穿戴式设备与手机互联的问题,那么蓝牙5就是解决多点互联IoT物联网的问题。

什么是UUID

UUID 可以简单理解为编号,唯一的编号,用于区分不同的个体。服务和特性都有各自的UUID。比如经典的9527。UUID 就跟身份证一样,不管是你是局长还是科长,人人都有身份证。

这里的 Read, Notify,Write_Without_Response为该Characteristic

UUID所具有的属性

服务(Service) UUID

服务(Service)可以理解为组长,一个组里面至少有一个或多个特性(Characteristic),特性(Characteristic)可以理解为组员。不同的服务(Service)应该有不同的编号(UUID),用以区分不同的服务(Service)。

我是重案组总督察黄启发, 这里已经被包围了, 限你三分钟之内投降,这里的黄Sir就是组长,组长一般是不干活的,真正干活的是组员(特性),比如谈判专家、拆弹专家和飞虎队。

 

特性(Characteristic)UUID

 特性(Characteristic)是依附于某个服务(Service)的,可以理解为组员,每个组员至少要有一个编号(UUID)以及一个或多个属性(Property)每个特性(Characteristic)可以同时有一个或多个属性。

就比如 119 不光可以救火,像忘带钥匙打不开门,工头不发工资站到楼顶上想不开等等119都可以帮忙,这就是混合属性, 当然了,“Fire inthe hole”人家119 不管。

属性(Property)

 属性的概念非常好理解,在此不多阐述,只是简单描述一下,借用古诗一首:文能提笔安天下,武能上马定乾坤,上炕认识媳妇,下炕认识鞋。

常用的属性有如下几个,我们以手机和蓝牙模块进行通讯来举栗说明:

Read: 读属性,具有该属性的UUID 是可读的,也就是说这个属性允许手机来读取一些信息。手机可以发送这个指令来读取某个具有读属性UUID的信息,华茂的模块在读取的时候,会返回模块的蓝牙地址。

Notify: 通知属性, 具有该属性的 UUID是可以发送通知的,也就是说具有这个属性的特性(Characteristic)可以主动发送信息给手机。举个栗子,华茂蓝牙模块发送数据给手机,就是通过这个属性。

Write: 写属性, 具体该属性的 UUID 是可以接收写入数据的。通常手机发送数据给蓝模块就是通过这个属性完成的。这个属性在Write 完成后,会发送写入完成结果给手机,然后手机再可以写入下一包,这个属性在写入一包数据后,需要等待应用层返回写入结果,速度比较慢。

WriteWithout Response:写属性,从字面意思上看,只是写,不需要返回写的结果,这个属性的特点是不需要应用层返回,完全依靠协议层完成,速度快,但是写入速度超过协议处理速度的时候,会丢包。华茂的蓝牙模块,Read(读)和Notify(通知)是固定的属性,不能移除和修改,您可以根据需要配置Write(写)的属性。

 看到这里,相信在这篇文章开始处列出的华茂模块的UUID 信息就一目了然了,扛把子(服务)是0xFFE0, 小弟只有一个(特性)是0xFFE1,小弟(特性)0xFFE1同时具有读、通知、不需要返回结果的写属性。顺道辟个谣,有些人认为用一个UUID 来读写会造成冲突,其实并不是这样,多个属性集合到一体是可以的,蓝牙协议是允许这么做的。

 

蓝牙广播中对服务 UUID 格式定义都有三种 16 bit UUID、32 bit UUID、128 bit UUID。

但是熟悉安卓开发的小伙伴都知道接口都 UUID 格式,fromString 时候 16bit 的 UUID 该咋办呢?

16bit 和 32bit 的 UUID 与 128bit 的值之间转换关系:

128_bit_UUID = 16_bit_UUID * 2^96 + Bluetooth_Base_UUID

128_bit_UUID = 32_bit_UUID * 2^96 + Bluetooth_Base_UUID

其中 Bluetooth_Base_UUID 定义为 00000000-0000-1000-8000-00805F9B34FB

如果你想说这是啥呀,那我这样说你应该可以明白点:

若 16 bit UUID为xxxx,那么 128 bit UUID 为 0000xxxx-0000-1000-8000-00805F9B34FB

若 32 bit UUID为xxxxxxxx,那么 128 bit UUID 为 xxxxxxxx-0000-1000-8000-00805F9B34FB

蓝牙的MAC地址

了解过蓝牙基本知识的人,都知道Bluetooth Address是制造商分配给每个蓝牙设备的唯一48位标识符(和电脑的MAC地址一样)。它是用来唯一识别一个物理设备的标识,正常情况下,该地址需要向IEEE申请(其实是购买,呵呵!)。企业交钱,IEEE保证地址的唯一性,皆大欢喜。

蓝牙地址通常显示为6个字节,以十六进制表示,用冒号分隔(示例- 00:11:22:33:FF:EE)。

其中,蓝牙地址的upper part(即most-significant 24 bits)被称为Organizationally Unique Identifier (OUI)。它可以用来确定设备的制造商。OUI是由电气和电子工程师协会(IEEE) Assigned。

另外,蓝牙设备地址还被用来在蓝牙设备之间的无线通信中确定跳频模式。

Bluetooth Address Structure

Bluetooth Address有三部分组成: NAP, UAP, LAP

举例来说,如下图所示:

 

从图中可以看到,OUI包含NAP和UAP两部分。其中NAP(Non-significant Address Part)部分2字节,为OUI的前16位;NAP值,用于跳频同步帧。另外,UAP(Upper Address Part)1字节,包含剩余的8位OUI;UAP值,被用作为各种蓝牙规范算法中的种子。

除了OUI之外,剩余的3字节,为LAP(Lower Address Part), 这部分蓝牙地址由设备供应商自己分配。LAP值,作为每一个transmitted Frame中Access Code的一部分,来唯一地标识蓝牙设备。LAP和UAP构成蓝牙地址的重要地址部分(SAP)。

解决的问题

1) 从Bluetooth Address的构成来看,属于设备商自己定义的部分,只有LAP part,即最多只能定义2^24 = 16777216个设备地址?这似乎对于某些大厂,比如Aplle,HUAWEI来讲,不够用?怎么办?

目前看来,最主要的解决方式是,每家公司多申请一些OUI,比如Apple就申请了几十个之多,当然大厂不差钱。(因为每申请一个,就要花费一份钱向IEEE购买)。

2) 怎样通过地址,查询到厂商的信息呢?

当然有很多途径,这里分享一个比较好用的网址,如下:

https://macaddresschanger.com/bluetooth-mac-lookup/CA%3A9E%3A21

 

 

这一套不适合BLE的Random Address?

是的。因为Random Address的设备地址不是固定分配的,而是在设备启动后随机生成的,而且会根据一定的周期发生变化。它的出现正是为了规避Public address申请/维护成本高、复杂等问题的,当然主要是可以保证地址可变,更安全。所以,它并不遵从OUI这一套。

 


http://www.ppmy.cn/news/173797.html

相关文章

寻路大数据:海量数据与大规模分析

寻路大数据:海量数据与大规模分析(Google大数据专家力作超豪华译者|作序者真正梳理趋势与生态|方案与工具选型|应用场景与价值挖掘的独家内参) 【美】Michael Manoochehri(迈克尔.马诺切里)著 戴志伟等 译 ISBN …

转载GitHub28.7k星的更好地提问ChatGPT方法

转自:GitHub - f/awesome-chatgpt-prompts:此存储库包括 ChatGPT 提示策展,以便更好地使用 ChatGPT。 充当 Linux 终端 贡献者: f 参考: Building A Virtual Machine inside ChatGPT 我希望你充当Linux终端。我将键入…

科技牛人:“别人家的孩子”牛在哪里!

记得小时候,爸妈为了不让我们玩耍,经常说:你看看别人家的孩子学习成绩那么好都没出去玩,再看看你自己!貌似“别人家的孩子”永远比自己强。不过要是真的较真起来,“别人家的孩子”还真有了不起的地方。 下面…

操作系统笔记-----第一章 基本概述

第1章 操作系统概述 第1章 操作系统概述操作系统的基本概念操作系统的主要功能操作系统的发展历史操作系统设计目标 操作系统的基本概念 你知道哪些操作系统? 操作系统“无处不在”,非常重要 个人电脑:台式机、笔记本、手机、Pad等&#x…

便利的无线信号传输解决方案

通过使用不须经过许可的60 GHz射频毫米波段,可实现前所未有的多千兆数据速率,为短距离非接触式连接开辟了新的机会。这种板对板非接触式连接技术,可以去除电子设备中的柔性电缆,并避免工业电子系统中因为转弯和弯曲而承受机械应力…

对象数组练习案例

定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同。 * 学生的属性:学号、姓名、年龄 * 要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断 * 要求2&am…

计算机简史

1、计算机始祖 从1980年8月到1981年8月,在整整一年的时间里,埃斯特奇领导着“国际象棋”工程计划13人小组奋力攻关。“当时很少有人体会到,这一小组人即将改写全世界的历史。”(英特尔华裔副总裁虞有澄语)据说&#xf…

代码是如何控制硬件的?

简单来说,就是软件指令通过操作寄存器,控制与、或、非门搭建的芯片电路,产生、保存高低电平信号,实现相应的逻辑,最终通过IO、串口等输出。 要想更清楚的了解软件控制硬件的原理,就要明白cpu的框架及工作原…