基于 NXP QN9080 蓝牙回连功能实现

一、 概述

       蓝牙回连是指双方在配对的过程中将长期密钥(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 》

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论