2.nRF52832开发之蓝牙知识简介

一、蓝牙技术起源

1.蓝牙的创始人是瑞典爱立信公司
2.爱立信早在1994年进行研发
3.1998年2月,5个跨国公司(爱立信、诺基亚、IBM、东芝、Intel)组成一个特殊兴趣小组(SIG),小组目标是建立全球范围内小范围无线通信技术,即现在的蓝牙
4.蓝牙技术命名源于10世纪的丹麦国王名字(英文姓名为Harold Bluetooth),这位国王统一四分五裂的局面与将各种设备无线连接起来的传输技术有相似之处,故取名蓝牙

二、蓝牙版本

1.蓝牙1.0
基本码率(Basic Rate,BR)
2.蓝牙2.0
增强码率(Enhanced Data Rate,EDR)
3.蓝牙3.0
引入全新的交替射频技术(AMP:Alternate MAC/PHY),使得蓝牙协议栈可以对任一任务动态地选择正确射频
4.蓝牙4.0
蓝牙4.0是第一个综合性规范,加入了全新的低功耗蓝牙技术,最突出的特点就是省电。蓝牙4.0包含3个规范,即传统蓝牙技术、高速蓝牙技术和新的低功耗蓝牙技术。最常见的两种蓝牙核心规格:BR/EDR和BLE
5.蓝牙4.2
蓝牙4.2提升了BLE传输速度,支持长包传输,单个数据包最大可传输255个字节,同时提升了隐私保护程度
6.蓝牙5.0
相对于蓝牙4.2,蓝牙5.0具有2倍的数据速率、4倍的覆盖范围和8倍的广播能力

三、蓝牙设备类型

低功耗蓝牙分为单模(Bluetooth Smart)和双模(Bluetooth Smart Ready)两种设备:
1.单模设备
只支持蓝牙低功耗(BLE),单模设备对功耗要求很高
2.双模设备
既支持传统蓝牙也支持蓝牙低功耗,这两种技术使用同一个射频前端和天线,双模设备一般有足够的供电能力,对低功耗要求不高。

兼容性:
1.单模设备间通过LE通信
1.双模设备间可通过LE通信,也可以通过传统蓝牙通信
2.双模和单模设备通过LE通信
3.双模和传统蓝牙通过传统蓝牙通信
4.单模和传统蓝牙不能通信

四、BLE的体系结构

1.概述
蓝牙低功耗主要分为三分部分:控制器、主机和应用程序
1)控制器
包括物理层(PHY)、链路层(LL)和主机控制接口(HCI)的下半部
2)主机
包括主机控制接口(HCI)的上半部、逻辑链路控制和适配协议(L2CAP)、属性协议(ATT)和安全管理(SMP)、通用属性配置文件(GATT)、通用访问配置文件(GAP)
3)应用程序

2.各部分详细介绍
1)物理层(Physical Layer)
1>调制方式:GFSK,高斯频移键控
2>工作在2.4GHz ISM频段。频率范围:2.4~2.4835GHz
3>ISM频段:全称为Industrial Scietific Medical Band,主要是开放给工业、科学和医用三个主要机构使用。ISM属于无许可频段,也是唯一一个在所有国家都无需授权的频段。我们所熟知的WLAN、蓝牙、ZigBee等无线网络都工作在这个频段
4>2.4GHz被分为40个RF信道(f=2402+k*2MHz,k = 0,…,39),信道间隔2MHz。其中3个广播信道,37个数据信道
5>无线速率:1Mbps、2Mbps

2)链路层(Link Layer)
1>链路层负责广播、扫描、建立和维护连接,以及确保数据包按照正确的方式组织、正确地校验值和加密序列等
2>链路层设备有五种状态:
就绪态(Standby):上电后,链路层进入并保持就绪态,知道接收到主机命令切换到其他状态,其他状态可以切回到就绪态
广播态(Advertising):发送广播报文和扫描响应
扫描态(Scanning):扫描其他广播设备
发起态(Initiating):发起连接
连接态(Connection):唯一一个用到数据信道的状态,两个设备间只有在连接态中才能互相传数据
3>链路层信道映射
广播信道:三个信道对应的中心频率为2402MHz、2426MHz和2480MHz,每次广播,都会在3个信道上将广播数据发送一次,这能有效避免干扰

3)主机控制器接口(HCI)
主机控制器接口在主机和控制器间提供一个标准化的接口,该层可以由应用程序接口API实现或者使用硬件接口UART、SPI和USB来控制。

4)逻辑链路控制和适配协议(L2CAP)
1>L2CAP层向上层提供数据封装服务,从而使逻辑上允许端到端的数据通信
2>L2CAP提供可复用,分割和重组的面向连接或无连接的数据服务

5)安全管理层(SM)
SM层提供配对和秘钥的分发

6)属性协议(ATT)
属性协议规定了怎么去访问对端设备的数据,数据存储在属性服务器的"属性"里,供属性客户端进行读写操作

7)通用属性配置文件(GATT)
通用属性配置文件建立在ATT协议的基础上,GATT通过使用ATT协议层定义了如何发现与使用服务、特征和描述符的标准方法
1>GATT定义了两个角色:服务器和客户端
2>服务器提供数据服务,就是数据中心
3>客户端从服务器读写应用数据,是数据访问者
4>主机、从机,针对链路层
5>外围设备、中心设备,GAP定义的角色

8)通用访问配置文件(GAP)
GAP层负责处理设备的接入方式和过程,包括设备发现、链路建立、链路终止已经实现绑定

9)应用层
应用层定义了三种类型:特征(characteristic)、服务(service)和配置文件(profile)
1>特征:采用已知格式、以通用唯一识别码(UUID)作为表示的一个小块数据,由于特征可以重复使用,因而设计时没有设计行为
2>服务:服务是一组人类可读的特征及其相关的行为规范,只定义了服务器上的相关特征和行为,而不定义客户端的行为。
3>配置文件:是用例或应用的最终体现。配置文件是描述一个或多个设备的说明,每一个设备提供了一个或多个服务,配置文件描述了如何发现和连接设备。

五、BLE广播、扫描和连接事件

1.广播事件
1>通用广播,最常用的广播方式,可以被扫描,接收到连接请求时可以作为从设备进入一个连接
2>定向广播,针对于快速建立连接的需求,定向广播会占满整个广播信道,数据净荷只包含广播者和发起者地址,发起者收到发给自己的定向广播后,会立即发送连接请求
3>不可连接广播,广播数据,而不进入连接状态
4>可发现广播,不可连接,但可以响应扫描
BLE广播间隔:是指两次广播事件之间的最小时间间隔,一般取值在20ms10.24s之间,链路层会在每次广播期间产生一个随机广播延时时间(010ms)

2.扫描事件
每次扫描,设备都会打开接收器去监听广播设备,这称为一个扫描事件,扫描事件有两个时间参数设置:
1>扫描窗口,一次扫描进行的时间宽度
2>扫描间隔,两个连续的扫描窗口的起始时间之间的时间差,包括扫描窗口时间和扫描休息时间

3.连接事件
1>主从设备之间互相发送数据包的过程称为连接事件
2>所有的数据交换都是通过连接事件进行的
3>每个事件发生在某个数据信道中(0~36)
4>设备连接后,无论有无数据交换,连接事件都在按照连接参数周而复始的进行着,知道一方停止响应
5>主机与从机可以在单次连接事件中进行多次数据传输

连接参数:
1>连接间隔,必须是1.25ms的倍数,范围是从6(7.5ms)到3200(4s)。间隔参数包括两个16位的值,第一个为最小连接间隔,第二个为最大连接间隔。
2>从机延迟,这个参数描述了从机跳过连接事件的次数
3>监督超时,这是两个成功的连接事件之间间隔的最大值。如果超过这个时间还未连接成功,那么设备将考虑失去连接,这个时间设置范围是100(10ms)到3200(32.0s)

连接参数和功耗、传输速度的关系
1>短连接间隔,高功耗,高数据吞吐量,发送等待时间短
2>长连接间隔,低功耗,低数据吞吐量,发送等待时间长
3>低或者0潜伏值,从机在没有数据发送的情况下高功耗,从机可以快速的收到主机的数据
4>高潜伏值,从机在没有数据发送的情况下低功耗,从机无法及时收到主机的数据,但主机能及时收到从机的数据

六、Profile、Service、Characteristic和UUID

1.Profile是Service的集合,它是预定义的,并不是实际存在于设备中,所以在外围设备的代码中,我们看不到Profile的实现代码。Profile分为标准的和自定义的,标准的Profile有SIG定义和发布,自定义的由开发者自行定义。
2.Service是一组特征和它们公开的行为的集合,一个服务可以包括一个或多个特征。Service也分为标准的和自定义的,标准的Service有SIG定义和发布,自定义的由开发者自行定义。
3.Characteristic是具有特定意义的数值,如心率,温度,电量等。BLE主从机实际传输的数据就是特征值
4.UUID(Universally Unique Identifier)是1个128位的数字,用来标志属性的类型。服务和特征也是一种属性,需要用UUID标识。实际上128位的UUID太长,为了提高传输效率,SIG定义了一个UUID基数,设备间只需要发送方发送16位的UUID,然后接收方收到后补上UUID基数即可

猜你喜欢

转载自blog.csdn.net/qq_33575901/article/details/89714461