4. BLE模组选型与硬件接口
好,咱们进入第四章。前面几章我们把UWB和BLE的协同架构理清了,现在该落地了——选什么样的BLE模组?怎么跟UWB模组连起来?天线怎么处理?
说实话,BLE模组选型这块,我见过不少项目栽跟头。有人图便宜选了不熟悉的方案,结果调试时发现UART驱动死活对不上;有人天线匹配没做好,通信距离直接砍半。嗯,咱们今天就把这些坑一个个填上。
4.1 主流BLE模组选型对比
目前市面上主流的BLE模组,我个人用得最多的是两个系列:Nordic nRF52系列和TI CC26xx系列。不是说别的不好,而是这两家在UWB+BLE协同场景下生态最成熟。
| 对比项 | Nordic nRF52840 | TI CC2640R2F | TI CC2652R7 |
|---|---|---|---|
| 内核 | ARM Cortex-M4F | ARM Cortex-M3 | ARM Cortex-M4F |
| 主频 | 64 MHz | 48 MHz | 48 MHz |
| Flash / RAM | 1 MB / 256 KB | 128 KB / 20 KB | 352 KB / 80 KB |
| BLE版本 | 5.3 | 4.2 / 5.0 | 5.2 |
| UART接口数 | 2个(可映射) | 1个 | 2个 |
| 典型功耗(TX 0dBm) | 4.8 mA | 6.1 mA | 5.3 mA |
| 生态成熟度 | ★★★★★ | ★★★★ | ★★★★☆ |
我个人习惯是:如果项目对功耗和算力要求都高,优先选nRF52840。它自带的256KB RAM,跑UWB数据透传和简单算法完全够用,不用额外挂MCU。TI CC26xx系列的优势在于射频性能稳定,尤其是CC2652R7,支持BLE 5.2的AoA/AoD,跟UWB的测向能力可以互补。
4.2 模组引脚定义与UWB对接
选好模组,接下来就是连线。这里我重点讲UART和I2C两种接口,因为这是UWB和BLE之间最常用的通信方式。
4.2.1 UART接口
UART是UWB模组和BLE模组之间的主力通信接口。我一般这么接:
UWB模组 (如DWM1001C) BLE模组 (如nRF52840)
TXD ——————————————> RXD (P0.06)
RXD <—————————————— TXD (P0.08)
RTS ——————————————> CTS (P0.07)
CTS <—————————————— RTS (P0.05)
GND ———————————————— GND
注意,这里我用了硬件流控(RTS/CTS)。为什么?
我在项目中遇到过一个问题:UWB模组测距数据爆发式输出时,BLE模组如果正在处理蓝牙广播,UART接收缓冲区会溢出。没有流控,数据就丢了。加上RTS/CTS后,UWB模组发送前会先检查BLE是否准备好,稳得很。
4.2.2 I2C接口
I2C一般用于配置类通信,比如BLE模组读取UWB模组的传感器数据(温度、电压等)。接线简单:
UWB模组 (如DW3210) BLE模组 (如CC2652R7)
SCL ——————————————> SCL (P1.00)
SDA <—————————————— SDA (P1.01)
GND ———————————————— GND
I2C的速率我建议设到400 kHz(快速模式)。100 kHz太慢,会影响UWB配置的响应时间。但别超过400 kHz,否则信号完整性会出问题,尤其是线长超过10 cm的时候。
4.2.3 GPIO中断与唤醒
这个很多人会忽略。UWB模组测到特定事件(比如标签进入某个区域),需要立刻唤醒BLE模组发送通知。这时候GPIO中断就派上用场了。
我一般这样分配:
- UWB_IRQ → BLE的GPIO中断引脚(上升沿触发)
- BLE_WAKE → UWB的GPIO输入(高电平唤醒)
- UWB_RST → BLE的GPIO输出(复位UWB模组)
嗯,这里有个细节:UWB_IRQ的中断优先级要设成最高。因为UWB测距数据是实时性的,如果被BLE的蓝牙协议栈延迟处理,测距精度会受影响。
4.3 天线匹配与调试
天线这块,说真的,是很多工程师的软肋。我见过有人把陶瓷天线直接焊在开发板上,结果通信距离不到5米。不是天线不行,是匹配没做好。
4.3.1 天线类型选择
| 天线类型 | 增益 | 尺寸 | 适用场景 |
|---|---|---|---|
| PCB板载天线(倒F型) | 0~2 dBi | 约15×6 mm | 成本敏感、量产产品 |
| 陶瓷贴片天线 | 1~3 dBi | 约7×3 mm | 空间受限、便携设备 |
| 外置鞭状天线 | 2~5 dBi | 约50 mm | 基站、网关设备 |
我个人习惯:原型验证阶段用外置天线,因为调试方便。量产时再换成PCB天线或陶瓷天线,成本能降下来。
4.3.2 π型匹配网络
BLE模组的射频输出端,一般都会预留一个π型匹配网络。说白了就是三个焊盘:一个串联电容/电阻,两个并联电容到地。
BLE模组 RF输出 ——[C1]—— 天线
│
[C2]
│
GND
为什么要做匹配?因为模组输出阻抗是50Ω,但天线阻抗不一定正好是50Ω。不匹配的话,信号会反射回来,能量就浪费了。
调试步骤:
- 先用网络分析仪测天线的实际阻抗(S11参数)
- 根据阻抗值计算C1和C2的容值
- 焊接后再次测量S11,确保在2.4 GHz频段S11 < -10 dB
- 做辐射测试,验证通信距离
4.3.3 天线布局注意事项
嗯,这里有几个硬规则,违反了基本没救:
- 天线下方不要铺铜——至少留出天线本体两倍大小的净空区
- 天线远离金属外壳——金属会吸收辐射能量,距离至少5 mm
- 馈线阻抗控制——从模组到天线的走线,宽度按50Ω阻抗计算(一般1.6 mm板厚、0.5 oz铜厚时,线宽约0.3 mm)
- 不要直角走线——45度或圆弧过渡,减少阻抗突变
我曾经在一个项目里,把陶瓷天线放在了电池旁边。结果通信距离从30米掉到了8米。后来把天线移到PCB边缘,净空区留足,距离才恢复正常。你想想看,天线被电池挡住,信号怎么出得去?
4.4 本章知识体系
下面这张图,把BLE模组选型、硬件接口和天线匹配的核心逻辑串起来了。你可以把它当作一个检查清单:
这张图从选型开始,到硬件接口,再到天线匹配,层层递进。你实际做项目时,可以按这个顺序一步步检查,基本不会漏掉关键点。