【一文带你了解bluetooth】

1、概念

蓝牙,是一种支持设备短距离通信(一般 10m 内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。

2、发展历程

  • 蓝牙 1.0 (1999年)早期的蓝牙版本,有数据泄露风险,并没有被广泛应用;
  • 蓝牙 1.2 蓝牙技术一直在迭代,发布于 2003 年的蓝牙 1.2 是蓝牙真正走向安全可用的标志;
  • 蓝牙 2.0(2004 年)则着重提高多任务处理能力,同时支持双工模式,可以一边语音通讯,一边传输文件;
  • 蓝牙 3.0(2009 年)引入高速传输,加大带宽,客观上挤占 WiFi 的位置,增加了功耗和成本;
  • 蓝牙 4.0(2010 年)重新找准定位,引入 BLE 概念,即 Bluetooth Low Energy 低功耗蓝牙;
  • 蓝牙 5.0(2016 年)让蓝牙在低功耗下具备更强大的传输能力,提高了安全性和可达性,逐渐成为目前主流。
  • 蓝牙 5.2(2020 年)聚焦LE Audio,发布多个LE音频规范和全新的LC3高品质低延迟编码器,增强蓝牙音频体验。

所以蓝牙技术已经发展了很多个年头,蓝牙技术联盟分为经典蓝牙和低功耗蓝牙,为了区分所谓的低功耗蓝牙和经典蓝牙,蓝牙4.0发布之初,SIG还特意将Bluetooth low engery对外宣传为Bluetooth smart,而“Bluetooth”继续用来指代经典蓝牙,Bluetooth smart ready则用来表示双模蓝牙(即同时支持经典蓝牙和低功耗蓝牙)

3、蓝牙典型方案应用场景

蓝牙技术联盟(SIG)后续发布的蓝牙4.1/4.2/5.0/5.1/5.2,都是同时包含低功耗蓝牙和经典蓝牙的。所以大家开发蓝牙应用的时候,一定要搞清楚自己是要开发低功耗蓝牙应用还是经典蓝牙应用,两者的应用场景是不同的。一般而言,经典蓝牙因为蓝牙是为传输声音而设计的,是短距离音频传输的最佳选择,所以数据传输量会大一点。应用在蓝牙电话接听,蓝牙耳机,蓝牙音箱等场合,直线距离在10米左右。低功耗蓝牙简称BLE,指的是蓝牙4.0及以上版本的蓝牙模块,相较于经典蓝牙,低功耗使用跳频技术,所以数据传输量会小一点,但功耗低,传输距离远50米左右,具体应用在共享单车锁、蓝牙智能锁,可穿戴设备,IoT智能设备,健身设备,蓝牙鼠标键盘等电池供电场合。当然,经典蓝牙也可以用电池供电,但LE对电池的要求更低,一节电池或者是一颗纽扣电池都能使用数月甚至一年。

下图对经典蓝牙和低功耗蓝牙的典型应用场景进行了总结。

v2-b3f0f4dddac9cc2fcedb683f1fa35fb8_1440w.webp

蓝牙场景分类

需要引起大家注意的是,经典蓝牙和低功耗蓝牙两者物理层调制解调方式是不一样的也就是他们链路控制以及基带都不一样的,所以**低功耗蓝牙设备和经典蓝牙设备两者之间是不能相互通信的,**选型的时候千万不要搞混,如果主设备是低功耗蓝牙设备,从设备也必须是低功耗蓝牙设备;同样,经典蓝牙的从设备也只能和经典蓝牙的主设备进行通信。不过市场上还有一种双模蓝牙设备,即同时支持低功耗蓝牙和经典蓝牙,比如我们天天用到的手机,手机可以和经典蓝牙设备通信,也可以和低功耗蓝牙设备通信,如前所述,这不代表低功耗蓝牙设备可以和经典蓝牙设备通信,其实手机使用了分时机制来达到同时和低功耗蓝牙设备以及经典蓝牙设备通信的目的,即手机让双模蓝牙芯片不断地在低功耗蓝牙模式和经典蓝牙模式之间进行切换,以同时支持低功耗蓝牙设备和经典蓝牙设备。

4、bluetooth协议栈框架

v2-92312fca769941bb042ae1890d3c2d7c_1440w.webp

bluetooth协议栈框图

如上图所示,蓝牙协议栈主要分为两个部分:Host和Controller。Host主要包含链路层之上的整个蓝牙协议栈,包含传输层L2CAP以及在它之上的多种应用层协议(A2DP,A2RCP,HFP等),这些是蓝牙协议栈的核心部分。Controller就是HCI,LMP(链路管理协议)和基带组成,HCI里面主要是主要与硬件驱动打交道,偏底层。L2CAP是介于上层和底层(例如HCI)之间的一种数据交互的媒介。L2CAP以上部分协议通过使用SDU包进行数据交互,L2CAP以下就是和HCI部分通过PDU包进行数据交互。大多数蓝牙从业者,一般都是在Host层或者应用层,controller一般是Linux kernel写好了用的比较少。

5、蓝牙音频规范

组成蓝牙协议的基石是一个个规范(Profile),蓝牙标准里目前有二十多个规范,一个规范其实就是一种通讯的类型或者协议,不同规范覆盖不同的应用。

其中有三个规范聚焦于音频数据的传输。传统的A2DP和HFP以及最新LE Audio

5.1. HFP规范

其中HFP 基于SCO(Synchronous Connection Oriented)链路用于双向传输通话语音。SCO链路具有同步传输特性。

具体可以看下面这篇文章:

蓝牙电话HFP协议 - 知乎 (zhihu.com)

5.2 A2DP规范

A2DP(Advanced Audio Distribution Profile),蓝牙立体声音频传输规范。A2DP协议的音频数据在ACL Link上传输,这与SCO上传输的语音数据有本质区别。A2DP不包括远程控制的功能,远程控制的功能则依赖AVRCP协议规范。A2DP是建立在AVDTP协议之上的高层协议,AVDTP定义了蓝牙设备之间数据流句柄的参数协商,建立和传输过程以及相互交换的信令实体形式,该协议是A2DP框架的基础协议。蓝牙A2DP数据包基于AVDTP协议进行传输。

具体可以看下面这篇文章:

蓝牙音乐之A2DP协议 - 知乎 (zhihu.com)

5.3 BLE Audio

LE Audio 核心框架如下

v2-ea04473ee9058240ce95247d92484efd_1440w.webp

LE Audio是新一代蓝牙音频传输协议,基于低功耗蓝牙BLE无线通信,其主要特点有:

1、超低功耗,LE本身即为低功耗蓝牙,LE Audio更是首创每只耳机独立传输单通道数据,大幅缩减每只耳机的数据传输量,将传输和解码功耗降低。

2、全新高音质、低功耗音频解码器LC3(Low Complexity Communications Codec)

3、LE同步通道(ISOC:Low Energy Isochronous Channels)

4、支持多重串流音频(Multi-Stream Audio)

5、支持广播音频技术(Broadcast Audio)

LE Audio正是为了解决前文传统蓝牙音频的缺点:音质、延迟,以及双耳无线耳机和多连接问题而提出的下一代蓝牙音频方案。

6、硬件传输协议

蓝牙模组和CPU之间一般是通过UART或者USB接口进行收发数据 在kernel里l支持的UART接口通常是H4,H5,BCSP,支持USB接口通常走的是的H2等

总结

1、蓝牙协议栈由host和controller区分的,我们主要学习host

2、蓝牙模组的接口通常是USB或者UART实现数据的收发

3、BR/EDR和BLE的区别

3.1 按照协议版本划分

经典蓝牙(v1.1/1.2/2.0/2.1/3.0),低功耗蓝牙(v4.0/4.1/4.2/5.0/5.2)

经典蓝牙跟低功耗蓝牙是不能互通的!因此在硬件模组上又有单模蓝牙和双模蓝牙的区别

3.2、按模组化分为单模和双模

单模蓝牙:运行一种蓝牙协议栈的模块,只兼容经典蓝牙或低功耗蓝牙其中的一种

双模蓝牙:内置两个蓝牙版本,运行两套协议栈的蓝牙模块,是既可以兼容经典蓝牙又兼容低功耗蓝牙。手机蓝牙

EDR(经典蓝牙模式)特征:近距离、高功耗、传输数据量大 BLE(低功耗蓝牙模式)特征:远距离、低功耗、传输数据量小 双模运行的好处:

提供兼容性:为BLE与EDR不同模式之间的传输,提供兼容支持 降低项目成本:一款双模蓝牙包含BLE和EDR模式,降低项目成本

3.3、 按照工作模式可分为 主角色模式、从角色模式、主从一体模式、广播模式

beacon广播模式时,一般会被设置成了不可连接的状态,Beacon 会每隔一定的时间广播一个数据包到周围,作为独立的蓝牙主机在执行扫描动作时,会间隔地接收到 Beacon 广播出来的数据包,常见应用室内定位、商店咨询推送。

从机模式的低功耗蓝牙模块也处于广播状态,等待被扫描。和广播模式不同的是,从机模式的蓝牙模块是可以被连接的

主机模式时,无广播,可扫描周围广播设备

LVS(Linux Virtual Server)是一种基于 Linux 系统的负载均衡集群技术,它主要用于将网络流量分发到多个服务器上,以提高系统的可靠性、可扩展性和性能。 LVS 集群一般包括四个组件:调度器(LVS 调度器)、前端服务器(负载均衡器)、后端服务器(真实服务器)和存储服务器(用于共享数据)。首先,调度器接收来自客户端的请求,然后根据配置的调度算法(如轮询、加权轮询、最小连接数等)将请求分发到多个前端服务器。前端服务器接收到请求后,通过相应的负载均衡算法将请求转发到后端的真实服务器上进行处理。在整个过程中,存储服务器用于存放共享的数据,以确保所有的真实服务器都能获取到相同的数据,并提供一致的服务。 LVS 集群的优点是能够提高网站的稳定性和可靠性,当某一台服务器出现故障时,调度器会自动将请求分发到其他可用的服务器上,从而保证服务的连续性。同时,LVS 集群还能够通过增加前端服务器和后端服务器的数量来提高系统的性能和吞吐量,以满足不断增长的用户需求。 在实际应用中,LVS 集群需要合理配置,包括选择合适的调度算法、调整每台服务器的权重、选择适当的硬件设备等。此外,还需要及时监控集群的运行状态,及时发现和解决故障,以确保整个系统的正常运行。 总的来说,LVS 负载均衡集群是一种强大而高效的集群技术,能够帮助企业提高系统的可靠性和性能,是现代互联网应用中不可或缺的重要组成部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值