低功耗蓝牙协议指南(The Bluetooth® Low Energy Primer)

目录

1.修订历史记录

2.关于此书

3.简介

4.低功耗蓝牙规范

5.低功耗蓝牙协议栈

6.物理层(PHY)

7.链接层(LL)

8.同步适配层(ISOAL)

9.主机控制器接口(HCI)

10.逻辑链路控制和适配协议(L2CAP)

11.属性协议(ATT)

12.通用属性配置文件(GATT)

13.通用访问配置文件(GAP)

14.安全管理协议(SMP)

15.低功耗蓝牙的安全性

16.其他资源

水平有限,仅供参考。

1.历史修订记录

2.关于此书

        《Bluetooth® Low Energy Primer》旨在帮助专业技术人员(如产品设计师和开发人员)在查阅正式的技术规范和深入研究该主题之前,快速了解蓝牙低功耗技术(BLE)。

        蓝牙技术联盟(Bluetooth SIG)提供了大量关于蓝牙LE的规范、论文和其他教育资源。本文的另一个目的是为了让读者了解这些资料的存在以及存在的目的,并帮助读者了解这些主题和支撑它们的资料。

        大多数低功耗蓝牙产品要么使用无连接通信(广播)和点对点连接的组合去交换数据,要么只通过广播数据包进行通信。本资源涵盖低功耗蓝牙协议栈,因为它用于此类产品。相反蓝牙Mesh不包含在这其中。蓝牙Mash是低功耗蓝牙专门的一个应用,有关它的信息应查询其他资源。

        本文的写作动机是新的低功耗蓝牙音频标准——LE Audio的出现。因为在此之前,所有蓝牙音频产品都使用了较旧的蓝牙技术,即蓝牙BR/EDR,也称为经典蓝牙。而LE Audio的出现意味着曾经那些对经典蓝牙以及在音频中使用有着丰富经验的专业人士现在可能需要快速学习低功耗蓝牙。所以这篇文章是为这些人所写,但又不仅仅为他们所写。如果你只是刚刚接触低功耗蓝牙并想学习,你会发现这篇文章对你来说同样很有用。当然,当你发现本文介绍的重心在LE Audio上有所倾斜时,也别太惊讶,现在你知道原因何在了。

        本文的目的不是复制或涵盖与正式规范相同的内容或是达到同样的深度。但是偶尔也会简要摘录正式规范的内容。你应该把本文看作是通过整体介绍和解释重要的低功耗蓝牙的相关概念,再由此去参考其他更细致的相关资源和规范,以期望学习曲线不再那么陡峭。

3.简介

        蓝牙技术自2000年就出现了。它最初是为了允许两台设备在不需要任何其他中间网络设备的情况下无线交换数据而创建的,并且很快就在无线鼠标和汽车免提套件等产品中发挥了作用。后者是一款音频产品,音频被证明是这一原始版本蓝牙技术的杀手级应用,并持续了很多年。

        用于第一批蓝牙产品的第一版蓝牙技术被更正式地称为蓝牙BR(Basic Rate,基础速率),它在物理层(the physical layer)提供了每秒一百万比特(1 mb/s)的原始数据速率。

        后来又定义了一种更快版本的蓝牙技术,它被称作蓝牙BR/EDR (Enhanced Data Rate,增强型数据速率)。虽然它提供了2 mb/s的原始数据速率,但是仍然被仅仅设计用于两个设备间交换数据的情况。

        低功耗蓝牙(Bluetooth Low Energy,BLE)第一次出现是在蓝牙核心规范4.0版本。这是一种新版本的蓝牙技术,它并没有取代其前身蓝牙BR/DR,而是作为一种替代方案与之并驾齐驱,它所提供的品质和能力使其成为新一代产品的完美选择,并能够满足新的、具有挑战性的技术和功能需求。

        低功耗蓝牙除了提供两台设备间点对点的拓扑结构外,还支持广播模式下一台设备向无限台其他接收设备发送数据。它也是允许创建数以万计的设备网,且每个设备都能与网络中任何一台其他设备通信的蓝牙Mesh技术的基石。

        两个设备之间的一对一通信由面向连接的通信和无连接通信支持,而一对多的通信是由无连接广播支持的。

        这种蓝牙技术的新变体最初的设计目标之一是高效的使用电源。在设想中,设备可以依靠硬币大小的电池运行数天或数周甚至更长时间,低功耗蓝牙的许多决定性特征印证了这种对能源效率的追求。特别是该设计为不同设备分配了不对称的功能和职责,试图确保使用如智能手机电池的设备可以比使用如硬币大小电池的设备承担更多、更繁重的任务。这个设计以及一些其他类似的设计使蓝牙LE作为低功耗无线通信技术在接下来几年里在多种类型的产品中被广泛使用。

4.低功耗蓝牙规范

        要深入透彻地理解低功耗蓝牙(Bluetooth LE),需要对适用的规范有深入的了解。蓝牙LE的架构、过程和协议由一个被称作蓝牙核心规范的关键性规范(specification)全面定义。产品如何使用蓝牙以实现互操作性,这在两种被称为配置文件(profiles)和服务(services)的特殊类型的规范集合中进行了介绍。图1说明了蓝牙LE规范类型及其关系。

4.1 蓝牙核心规范

蓝牙核心规范是低功耗蓝牙和经典蓝牙的主要规范。它定义了技术的架构和层次,并描述和定义了关键的功能,同时还定义了设备之间在协议栈不同层次间的通信协议以及通信的正式流程。这是一个必要的大规范。

蓝牙核心规范还定义了蓝牙技术的工作原理以及开发人员在实现蓝牙协议栈中一个或多个功能时的要求。

4.2配置文件规范

当两个低功耗蓝牙设备通过连接进行通信时,通常它们之间会形成客户端/服务端的关系。服务端通常包含状态数据,而客户端通过某种方式使用这些数据。比如此时有一个蓝牙遥控钥匙,它用来在你把钥匙丢在某个角落时可以快速找到它。智能手表可以充当客户端,蓝牙遥控钥匙充当服务端,当你按下智能手表显示屏上的某个按钮时,可能会使蓝牙遥控钥匙的状态发生变化,从而让遥控钥匙发出响亮的噪音以回应此变化,这样你就可以再次找到你的钥匙。

配置文件规范定义了相关设备(如智能手表和钥匙扣)所承担的角色,特别是定义了客户端设备的行为和与它连接的服务器上的数据。

在钥匙查找器的例子中,智能手表或者其他一些承担相同角色的设备的行为被定义在Find Me Profile specification中。

4.3服务规范

状态数据保存在被称为特征(characteristics)和描述符(descriptors)的数据项中。而特征和描述符又被分组到被称作服务(services)的结构体中。每个服务提供了一个上下文,在该上下文中,将含义和行为分配给它们所包含的特征和描述符。

服务规范定义了一个单一的服务,以及它所包含的特征和描述符。服务规范中定义了托管该服务的设备在响应各种条件和状态数值时要表现出的行为。

一个服务规范可以被看做定义了服务器设备某个方面的行为。在智能手表和遥控钥匙示例中,遥控钥匙充当服务器并实现Immediate Alert Service

4.4编号分配

低功耗蓝牙的各个方面都使用了唯一标识符。例如,所有的服务、特征和描述符都有一个通用的唯一标识符(UUID),它可以识别与之相关的服务、特征或描述符的类型,而不是某个特定设备上的特定实例。一个公司可以通过一个特定的公司标识符来识别,这也是某些配置文件所要求的。

蓝牙技术联盟分配的标识符被称为 assigned numbers,完整的标识符列表在Assigned Numbers里可以看到。

5.蓝牙协议栈

5.1高层架构

低功耗蓝牙协议栈由许多层和功能模块组成,其中一些是强制性的,一些是可选的。协议栈的这些部分分布在主机和控制器的两个主要架构块上,标准逻辑接口定义了这两个组件可以通信的方式。

主机通常是类似于操作系统的东西,而控制器通常是一个片上系统。但是,情况也并不一定真的如此,蓝牙规范并没有规定具体的实现细节。重要的是,在架构中作为独立逻辑容器的主机和控制器可以通过某种方式在物理上独立的组件中实现,并为它们之间的通信定义一个标准接口。这允许一个蓝牙系统由来自不同制造商的主机和控制器组件组成。

图2是低功耗蓝牙协议栈整体、协议栈分层和不同层次在主机和控制器间的分布。

主机控制器接口(HCI)表示它们之间的逻辑接口,但不是一个具体的物理组件。 在底层物理传输方面,HCI可以用许多不同的方式实现,但逻辑或功能接口总是相同的。

LC3是低复杂度通信编解码器,是低功耗蓝牙音频使用的默认音频编解码器。它不是标准低功耗蓝牙协议栈的一部分,但总是在LE Audio产品中出现,如图所示,LC3组件在主机或控制器中实现。

图3是通信系统的标准OSI参考模型。应该注意的是,低功耗蓝牙协议栈跨越了OSI参考模型的所有层,而其他许多无线系统只跨越了OSI层的一个子集,如物理层和数据链路层。蓝牙技术作为全堆栈通信系统的一个优势是,没有对其他标准机构的外部依赖。这种依赖性会限制技术的发展。

Bluetooth mesh使用具有链路层和物理层的低功耗蓝牙控制器,而主机部分包含实现Bluetooth mesh协议和过程的替代层集合。本文不再涵盖Bluetooth mesh,查找该主题学习资源的人应参考第16节。

5.2分层概览

如图2所示,蓝牙LE堆栈各层的主要职责和功能总结如下:

主要功能
物理层

定义了蓝牙技术中无线电(RF)使用相关的所有方面,包括调制方案、频带、信道使用、发射器和接收器特性。

定义了若干不同的、受支持的物理层参数组合,称为PHYs。

链路层定义了空中接口数据包格式、比特流处理流程,如错误检查、状态机以及空中通信和链路控制的协议。
定义了使用底层无线电进行无连接、面向连接和同步通信等几种不同的逻辑传输方式。
同步适配层允许使用同步通信的设备使用不同的帧持续时间。
对有帧的PDU进行分段和重新组合,或对无帧的PDU进行分段和重新组合。
主机控制器接口

为主机和控制器组件之间的命令和数据双向通信提供定义良好的功能接口。

实现几种物理接口的任意一种即可。

逻辑链路控制和适配协议在主机内充当协议复用器,确保协议由适当的主机组件提供服务。
为L2CAP的上下层的PDUs/SDUs提供分割和重新组装服务。
安全管理协议在执行安全过程(如配对)期间使用的协议。
属性协议ATT客户端和ATT服务器使用的协议,允许发现和使用服务器属性表中的数据。
通用属性配置文件

定义高层数据类型例如服务、特征和描述符作为属性表中的基础属性。

定义高层如何通过ATT使用属性表。

通用访问配置文件

定义了在非连接状态下可使用的操作模式和流程,例如如何使用广播进行无连接通信以及如何执行设备发现。

定义安全级别和模式。

它定义了一些用户界面标准。

偶然看到有其他人翻译了,自己翻译的就不放上来了。

Bluetooth LE Primer Paper

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值