一、 概述
蓝牙回连是指双方在配对的过程中将长期密钥(LTK)存储起来,在设备再次重连时,可以跳过配对流程,直接使用 LTK 对蓝牙进行加密连接,这种方式称之为绑定。配对和绑定是蓝牙中一种安全的机制,具体可以查看蓝牙 SM 规范,本文将介绍 QN9080 如何修改代码实现蓝牙回连功能
二、 环境搭建
2.1 SDK 下载
本文基于 NXP QN9080 IC,SDK 可在NXP 官网 https://mcuxpresso.nxp.com 下载
2.2 硬件
本文基于 QN9080 DK 板进行开发,DK 板如图 2.2 所示
图 2.2
2.3 开发软件
SDK 支持 IAR、Keil、MCUXpreeso IDE 三种开发软件、本文以 IAR 为开发环境作为介绍
三、 工程移植
在SDK_2.2.0_QN908XCDK\boards\qn908xcdk\wireless_examples\bluetooth\hid_device目录下的工程已经实现蓝牙鼠标的功能,我们可参考此工程实现蓝牙鼠标回连功能
3.1 开启配对宏
在 app_preinclude.h 文件中将 gAppUsePairing_d 的宏修改为 1 ,开启蓝牙配对的功能
图 3.1
3.2 开启绑定宏
在 app_preinclude.h 文件中将 gAppUseBonding_d 的宏修改为 1 ,开启蓝牙绑定的功能
图 3.2
3.3 开启 NVM 宏
在 app_preinclude.h 文件中将 gAppUseNvm_d 的宏修改为 1 ,开启蓝牙绑定数据 NVM 存储的功能
图 3.3
3.4 修改蓝牙为上电广播
修改为上电广播,DK 重新上电后就可以看到蓝牙自动回连,在 hid_device.c 文件中 BleApp_Start 为广播函数,在蓝牙初始化完后会执行 BleApp_Config 函数,所以将 BleApp_Start 函数放在 BleApp_Config 函数中调用即可实现上电广播
图 3.4
3.5 测试结果
上电与电脑连接后输入密钥 999999,连接成功后就可看到在电脑上看到已连接的设备,如图 3.5 所示,将设备断电,直到设备显示已配对时,重新上电 DK 板,可看到设备重新变为已连接,回连成功
图 3.5
四、总结
本文在蓝牙鼠标工程上实现了蓝牙回连的功能,通过开启配对,绑定,NVM的宏来实现,更多资料可关注大联大-大大通博文专区
五、 参考文献
【1】《 Bluetooth Core Specification 》
【2】《 BLE Application Developer’s Guide 》
评论