BLE(Bluetooth Low Energy)短距透传方案的本质是将BLE芯片及配套射频链路作为无线数据传输的核心载体,系统只负责数据的转发与接收,而不对数据进行解析或重构。
这种模式开发简单、适配性强,能够快速实现设备之间的无线数据互通,因而被广泛应用于工业物联网、智能家居及消费电子等领域。
在实际应用中,BLE短距透传方案并非简单地“把BLE芯片通过串口接入上位机”即可完成。
BLE是一种基于事件驱动、采用分时调度的低功耗无线通信协议;而串口通信更接近面向字节的连续数据流传输模型,当这两种通信方式结合在一起,如果缺乏合理的数据缓存、调度与发送策略,就容易影响到系统的吞吐和稳定性。
而通过合理优化交互方式、串口数据处理策略以及MCU资源调度方式,往往能在不改变带宽与环境的条件下,显著改善BLE短距透传方案的通信性能。
例如,在BLE SoC CMT4531的官方SDK中就提供了一套数据传输例程——无论是新手开发者想要快速入门BLE透传,还是资深工程师需要缩短项目周期,其都能提供一套高效、可直接落地的解决方案。
在将BLE SoC CMT4531视作数据传输从机与手机进行通信时,我们需要先将标准J-Link工具通过SWD接口连接到CMT4531 dongle开发板;
然后将dongle通过USB连接至电脑,此时电脑将自动识别dongle板上的USB转串口设备并将其枚举为标准串口;而后再插上TXD/RXD跳线帽和VDD跳线帽以连接串口并进行供电。
J-Link工具和CMT4531 dongle开发板
在完成上述准备工作后,我们需要在电脑端通过串口工具(如Tera Term)连接到dongle板的串口(参数为115200 8N1),而后打开官方SDK中的ble_rdts_peripheral.uvprojx项目,并将其编译生成的固件烧录至dongle板。
此时,电脑端的串口工具上会收到如上打印信息,我们需在手机端使用App扫描BLE设备,连接设备“HP_RDTS_P”(如果无法扫描到设备,请复位dongle板或重新上电)。
连接成功后在App上使能特征值0x02002EC78a0E-7390-E111-C208-60270000的通知权限。

至此,BLE的短距通信链路已搭建完毕。如下图所示,我们在电脑端的串口工具上输入任意字符或字符串,手机端的App将会显示所接收到的数据。
反之,在手机端的App上向特征值0x01002EC78a0E-7390-E111-C208-60270000写入数据,相应的数据也会在电脑端的串口工具上显示。
在将BLE SoC CMT4531视作数据传输从机与手机进行通信时,手机(数据传输主机)会执行Write without response操作向从设备写数据,而从设备则会通过Notification操作向主设备上报数据——这种交互模式可为BLE短距透传方案带来更高效的通信体验。
同时,BLE SoC CMT4531还支持使用硬件DMA来进行数据操作,通过“DMA + FIFO”的数据缓存机制,可有效提高BLE短距透传方案中数据传输的效率,并能减小CPU的工作量。
此外,无论是从设备接收手机(数据传输主机)数据将其存入USART TX FIFO发往上位机时,还是从设备接收上位机数据将其存入USART RX FIFO发往手机(数据传输主机)时,系统都不会急于在每一次数据到来时立刻触发传输,而是通过一个短暂的时间窗口来判断数据是否已经传输完成——这种传输策略可显著减少小包碎片,提升系统效率。(注:更多开发服务及其功能细节可前往华普微官网查阅)