【N32WB03x】蓝牙连接测试 原创 精华

程皖Orz
发布于 2023-2-23 09:28
浏览
1收藏

一、芯片介绍

N32WBO3x系列蓝牙芯片是国民技术新一代高性能、超低功耗的蓝牙5.1芯片,采用32位ARMCorntexR-MO内核,最高工作主频64MHz,片上集成48KB SRAM,256/512KB Flash。
集成先进的BLE5.1射频收发器,符合蓝牙BLE5.1规范,可配置为标准的1Mbps BLE模式,2Mbps增强BLE模式,125kbps BLE远程模式(S8),500kbps BLE远程模式(S2)。在BLE 1M或2M模式下,支持AOA(到达角)和AOD(离去角),支持RSSI(接收器信号强度指示),支持多个角色,同时支持主从角色,支持多连接,支持数据包长度扩展,支持KEYSCAN,IRC,10位1.33Msps ADC(可配置为16位16Ksps),支持模拟MIC输入,PGA放大,支持基本、通用、高级TIMER,RTC,wWDG,WDG,LPUART,USART,SPI,I2C等外设。

二、BLE5.1介绍

蓝牙低功耗 5.1(以下简称BLE 5.1)是2019年由蓝牙技术协会SIG发布,工作在ISM频段:2.4GHz~2.48Ghz,有40(编号0~39)个可用信道,其中37、38、39为广播信道,其余信道为数据信道,信道带宽为2MHz。
【N32WB03x】蓝牙连接测试-鸿蒙开发者社区
广播信道分布在相距较远的信道目的是为了减少互相之间的干扰,同时,WiFi的2.4GHz的频段在1、6、11信道出的频率分别是:2402MHz~2422MHz, 2427MHz~2447MHz, 2452MHz~2472MHz,BLE的广播信道正好规避了WiFi的常用信道,减小相互之间的干扰。 低功耗蓝牙和经典蓝牙之间的对比如下图(来源于维基百科)所示:
【N32WB03x】蓝牙连接测试-鸿蒙开发者社区
数据包格式

【N32WB03x】蓝牙连接测试-鸿蒙开发者社区
在BLE5.1中增加了CTE字段(虚线框),此字段由一段连续的二进制符号1组成,由于BLE是使用GFSK调制,发送数据时的频率不是稳定的,在接受端并不能对这些调频信号进行采样,所以不能获得信号的精确相位信息,这也就是为什么在5.1版本之前,BLE不能支持计算波达角。在BLE 5.1中进行了改进,发送端会以一个稳定的频率发送CTE(因为内部为一连串的字符1),所以在接受端可以对这段稳定的频率进行采样,获取稳定频率的IQ数据,从而使得计算波达角。
蓝牙在发送数据包时,会先发送前导码部分,以此接入地址,数据单元,CRC检测部分,CTE。

三、芯片蓝牙SDK

因为没有单纯的BLE的SDK,我们在蓝牙BLE数传服务(rdts)工程上进行修改,
【N32WB03x】蓝牙连接测试-鸿蒙开发者社区

(1)修改蓝牙名称

【N32WB03x】蓝牙连接测试-鸿蒙开发者社区
我们在config文件中可以找到当前的蓝牙名称
【N32WB03x】蓝牙连接测试-鸿蒙开发者社区
我们进行修改为LAL_HAN,此时烧录程序进行上电,可以发现该设备
【N32WB03x】蓝牙连接测试-鸿蒙开发者社区

(2)寻找上下发接口

【N32WB03x】蓝牙连接测试-鸿蒙开发者社区
连接到BLE设备后,选择BLE调试工具打开,发现上报接口
【N32WB03x】蓝牙连接测试-鸿蒙开发者社区
在这个界面可以读到上报的数据,并实现双向传输

(3)修改定义数据

【N32WB03x】蓝牙连接测试-鸿蒙开发者社区
首先定位到BLE_APP代码中
【N32WB03x】蓝牙连接测试-鸿蒙开发者社区
在APP_USART中287行,寻找到发送数据的接口,在这里我们修改为无论串口接收到什么数据都发送LALHAN,烧录程序

rdtss_16bit_send_notify("LALHAN", 6);

(4)验证修改

【N32WB03x】蓝牙连接测试-鸿蒙开发者社区
测试通过,即实现了基本BLE蓝牙的收发

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
标签
2
收藏 1
回复
举报
1条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

过程的思路很清晰


回复
2023-2-23 10:41:57
回复
    相关推荐