蓝牙低功耗基础知识

发布人是

经典蓝牙的设计是为了取代电缆,并覆盖多种协议,而每个新版本都带来速度的提升。

对于这项技术而言,功耗并不是主要的问题,也不适合只需发送几个字节信息的使用电池供电的无线电路板。

另一方面,

蓝牙低功耗 (BLE) 尽管也打着“蓝牙”的旗号,却应该被视为一项新技术,因为它采取了背道而驰的方式。一切都是为了让每个操作的电流降至最低。一些例子:

 • 其发现流程是基于三个频率的,目的是在稳固性和低功耗之间取得平衡
• 链路层的小型数据包是为了最小化无线电的内存需求
• 非对称设计让设备少耗能源少做事
• 一切都有状态,从而降低代码量以及固件复杂性
• 连接是瞬时而短暂的
• 只有一个协议:属性协议

理解属性协议(图 1 红色高亮)是认识蓝牙低功耗的基础。 

0316 BLE Basics Figure 1
图 1:蓝牙低功耗架构

属性协议为在端设备上访问数据设定了一套规则。数据被存储在一个由三项元素组成的属性中,如图 2 所示。

• 一个句柄,好比数据库中的行号(见图 3)
• 披露的数据类型:譬如,哪种传感器。这个值是个 UUID(通用唯一标识符),为 128 位。
• 数据本身的值

0316 BLE Basics Figure 2
图 2:属性值

然后,一系列的句柄创建了一个数据库。

0316 BLE Basics Figure 3
图 3:BLE 数据库示例

通用属性配置文件 (GATT) 定义了属性的类型以及如何使用。它介绍了服务的概念、特征和描述符。 一个服务相当于一个具有不可变接口的对象。一个 0x2800 UUID 意味着一个主要服务声明。 得益于其描述符,一个特征包括了数据的值和行为。让我们以图 4 为例一起读一下这个矩阵。

一个服务包括一个或多个特性。在数据库中,所有两个 0x2800 UUID 之间的数据都属于此服务。 

0316 BLE Basics Figure 4
图 4

• 句柄 0x000C, UUID 为 0x2800,意味着一个主要服务以 0xCAB5 的值进行声明。蓝牙特别兴趣小组定义了许多配置文件和保留 UUID。 例如,一个 0x180F 意味着披露了一个电池余量。保留 UUID 无法通过自定义配置文件使用。0xCAB5 是一个 Cypress 的 UUID,指触摸传感器。
• 句柄 0x000D 和带值的 UUID 0x2803。0x2803 意味着它是一个特征12:0E:00:A2:CA 意味着值为句柄 0x000E 和 UUID 0xCAA2。0x12 意味着该特征可以读取和通知。
• 句柄 0x000E 和 UUID 0xCAA2。基于特征声明,我们知道了特征的值有危险且等于 32。
• 句柄 0x000F 和 UUID 0x2902。0x2902 意味着它是一个由客户编程的配置。1 意味着启用了通知。

数据的组织逻辑而严密,因此很容易找到以优化功耗。

通用访问配置文件 (GAP) 定义了设备如何发现、连接和提供有用的信息给用户。 有四个可用的 GAP 角色:广播者(只发送播发数据),观察者(搜索广播者),外围设备(通过播发被连接,一旦连接后成为从属)和中央设备(发起连接外围,因此连接后成为主控)。 GAP 还定义了一些过滤政策、执行时间、播发数据包中的信息和扫描响应。

标准蓝牙签名可通过主机、控制器、L2AP 和 HCI 的概念辨认,这些概念对于基础 BLE 应用来说无需学习。BLUE 解决方案供应商将所有层集成在一个芯片上,并有特定的 API 能够轻松地编写属性和 GAP 层。由于也包含了链路层的管理,几行代码就足以设计一个蓝牙低功耗应用。


相关新闻文章

最新消息

Sorry, your filter selection returned no results.

请仔细阅读我们近期更改的隐私政策。当按下确认键时,您已了解并同意艾睿电子的隐私政策和用户协议。

本网站需使用cookies以改善用户您的体验并进一步改进我们的网站。此处阅读了解关于网站cookies的使用以及如何禁用cookies。网页cookies和追踪功能或許用于市场分析。当您按下同意按钮,您已经了解并同意在您的设备上接受cookies,并给予网站追踪权限。更多关于如何取消网站cookies及追踪的信息,请点击下方“阅读更多”。尽管同意启用cookies追踪与否取决用户意愿,取消网页cookies及追踪可能导致网站运作或显示异常,亦或导致相关推荐广告减少。

我们尊重您的隐私。请在此阅读我们的隐私政策。