基于低功耗蓝牙5.0协议的智能标签设计与实现

(整期优先)网络出版时间:2021-12-17
/ 2

基于低功耗蓝牙 5.0协议的智能标签设计与实现

李静

西安欧亚学院 陕西 西安 710065

摘要:蓝牙标签利用低功耗蓝牙5.0技术的广播协议确定物体位置。蓝牙标签可部署在城市场所、工业环境、机场、校园等多种场景中,并与智能手机、平板电脑等主流移动终端设备无缝对接,具有广阔的应用前景。本文以Apollo 3超低功耗蓝牙5.0芯片为核心器件,设计并实现了蓝牙的基本协议,并以Immediate Alert Service为实例实现了Find Me Profile,可以声、光信号形式提示标签位置。实验表明,智能手机与蓝牙标签可以实现快速连接配对及其信号读写与通知的接收。

关键词: 低功耗,蓝牙5.0,智能标签

目前电子标签主要采用的通信技术主要有射频技术(RFID)和Zigbee 短距离无线技术技术等,其中使用 RFID 无线技术时存在成本高,功耗大等缺点,而 Zigbee 无线技术易具有功耗高,并且组网复杂等问题。因此,本文通过对蓝牙无线通信技术的研究,通过整合无线通信技术、低功耗MCU及系统级软件设计技术,实现一种低功耗、低成本和高实用性的智能标签系统。基于低功耗蓝牙技术的智能标签改善了物联网,并赋予智能城市,智能工业和智能家庭等领域更多功能。本文剔除的解决方案具有超低功耗特征,实现了智能标签与用户手机的互联互通,区别于传统电子货架标签。同时该技术可广泛用于智能零售管理、智能仓储管理以及智慧家庭等领域,能够进一步降低这些领域的能量消耗,在全球市场具有非常大的发展空间。

1.蓝牙标签系统的架构和工作原理

基于低功耗蓝牙5.0技术的智能标签系统架构如图所示,主要由智能手机APP,蓝牙标签和远程服务器组成。61bc296366013_html_aa9df4aca555ca0d.png

蓝牙标签基于低功耗蓝牙5.0技术,利用Find Me Profile中的Immediate Alert Service(IAS)服务与智能手机中的APP进行通信。手机使用专业蓝牙APP扫描并发现蓝牙标签,经加密配对后,可以利用IAS向蓝牙标签发送不同级别的提示信息。蓝牙标签具有完整的嵌入式实时操作系统功能,可实现蓝牙广播,配对功能,并对手机端发送的提示信息作出相应的反应。手机端还可开发与云端服务器通信用的应用,把蓝牙标签的状态上报,并接受服务器的指令。从而实现蓝牙标签的智能化云端化管理和应用。

2. 蓝牙标签硬件系统设计

蓝牙标签的硬件设计基于Ambiq Micro的Apollo3 Blue Wireless SoC。该SoC采用ARM Cortex M4F内核,运行频率高达96 MHz,集成了蓝牙低功耗(BLE5),运行功耗降至6μA/ MHz以下。Ambiq的次阈值功率优化技术(Subthreshold Power Optimized Technology,简称SPOT)使用泄漏在数字和模拟域中的“off”晶体管进行计算。通过仅使用泄漏电流来处理大多数计算,可以轻松实现约纳瓦级的系统总功耗,完全能够满足低功耗的需求。

图所示的为智能标签系统的硬件设计方案。其中, RFIOP管脚需要外接蓝牙天线。此外,利用GPIO36,44,46,47管脚外接LED,可更直观的显示提示信息的状态。

61bc296366013_html_f85dbda2c462573a.png



3. 蓝牙标签协议的软件设计与实现

标签的软件系统需要运行和维护蓝牙协议栈,串口通信,LED指示等多个任务,数据传输具有突发性,因此软件方案采用了freeRTOS操作系统实现多任务运行,并管理硬件系统的资源。FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。

3.1 标签蓝牙通信协议的软件设计

实现一个BLE应用,需要一个支持BLE射频的芯片,然后基于一个与芯片配套的协议栈,开发蓝牙应用。协议栈的作用就是软件和硬件之间的桥梁,对应用数据进行封包然后生成可以通过射频发送的空中数据包及其逆向过程。蓝牙协议栈软件系统架构如下图。系统软件分为协议栈,提示信息指示和状态机三个部分。其中协议栈部分的软件主要实现了上述蓝牙协议栈,提供API供系统调用,以实现蓝牙通信协议的基础功能。显示部分的软件较为简单,根据提示信息的级别显示,不同的LED亮灭。状态机部分的软件主要实现3个功能:广播及配对认证、数据收发和工作模式的切换和维护。同时,为适应不同使用场景的差异,蓝牙标签的主程序还实现了灵活的动态工作及睡眠模式,可根据用户的使用习惯和时间调整睡眠机制,以便蓝牙标签可以在正确的状态保持和手机间的通信,同时维持低功率消耗。

系统启动时进行基本的硬件初始化( 接口初始化、I/O 口初始化)和系统运行基本条件初始化。之后初始化串口,以便调试时可以输出相关的运行日志。然后,开始蓝牙协议栈初始化,最后就是启动蓝牙状态机任务和LED显示控制任务。

其中蓝牙协议初始化部分最为复杂,包括广播参数、连接参数、配对认证方式的配置等,初始化完成后进入广播状态, 当有连接请求时主动发起配对认证请求,并采用AES-128 加密链路层,防止第三方而已接入。连接建立后, 有数据接收时,由协议栈底层发送系统Event事件,在处理函数中对接收的数据包进行解析,然后启动提示信息处理,并触发LED显示任务。有断开连接请求时, 蓝牙状态机回到初始状态,并开始检测有无新的连接请求,并实现动态可调的睡眠机制。

3.2 Find Me Profile提示技术

Immediate Alert Service属性数据库用以实现Find Me Profile。手机APP 与蓝牙标签 建立连接后, 首先需要知道标签 能提供哪些服务,然后再根据应用规范去使用这些服务。手机发现标签公开服务的过程主要有四个:Primary Service Discovery(可以发现所有主要服务或者某一特定主要服务)、Relationship Discovery(该服务引用的其它服务)、Characteristic Discovery(可以发现所有特性或者某一特定特性)、Characteristic Descriptor Discovery。 手机先发现标签带公开的IAS服务,接着发现IAS服务包含的Alert Level Characteristic。需要注意的是,正常情况还需发现Characteristic 包含的CCCD(Client Characteristic Configuration Descriptor),但本服务没有Descriptor。每一行四个字段Handle、UUID、Permissions、Value 共同构成一个属性,Characteristic 与Descriptor 都是由一个或多个属性构成的。手机完成发现服务过程后,可通过APP向标签发起写Alert Level characteristic指令,标签回复手机响应,并根据指令级别带控制提示信息的显示(本文采用LED来展示)。



3.3 实现测试结果

手机端利用nRF Connect应用,扫描蓝牙标签,获得所有可用服务,可以看到Alert Level特性,并可向该特性发送写命令。通过手机端系统日志可以看出,写命令发送成功。



在蓝牙标签侧,利用串口打印测试日志,可以看出蓝牙标签成功接收到手机发送的指令,并在硬件上以LED做出了相应的显示。

61bc296366013_html_7c5a3959c01131af.png

4.结束语

本 文 在 低 功 耗 蓝 牙5.0 技 术的 基 础 上 , 从 低 功 耗 和 实 用 性 设 计 策 略 出 发 , 实 现 了 蓝牙标 签 的 设 计 , 满 足 了 位置信息提示、多应用场景使用等需 求 。 测 试 结 果 证 明 ,蓝牙标 签 工 作 稳 定 ,安 全 可 靠 ,具 有 功 耗 低 、节 约 成 本和 使 用 方 便 等 优 点 ,具 有 很 大 的 市 场 推 广 前 景 。



参考文献

[1] [美] 卡尔·T. 乌利齐 著,杨青 杨娜 译, 产品设计与开发(原书第6版), 机械工业出版社, (2018-05-01). ISBN:9787111595502

[2] 万青王娜 著, 低功耗蓝牙5.0开发与应用, 北京航空航天大学出版社,(2021-03-01). ISBN:9787512434578

[3] Bluetooth SIG Proprietary, BLUETOOTH CORE SPECIFICATION Version 5.3,( 2021-07-13)

[4] Bluetooth SIG Proprietary, Supplement to the Bluetooth Core Specification Version 10

,( 2021-07-13)

[5] 钱志鸿,杨帆,周求湛 著, 蓝牙技术原理开发与应用, 北京航空航天大学出版社,(2006-03-01). ISBN:9787810775076