STM32WL33xx 系列支持 DSSS(直接序列扩频)调制方式,其灵敏度测试需遵循特定的数据生成规则、信号配置流程。本文基于 ST 官方 LAT1333 应用笔记,以 R&S SMBV100A 矢量信号发生器、STEVAL-S38681V1 开发板为例,详解 DSSS 模式灵敏度测试的完整流程,包括 PER-BER 转换、DSSS 数据生成、设备配置与结果统计,适配 STM32WL3 系列芯片的 Sub 1GHz 应用场景。
1. 测试环境搭建
1.1 核心工具清单
- 硬件:STEVAL-S38681V1 开发板、R&S SMBV100A 矢量信号发生器、RF 连接线 1 根、Type-C USB 线 1 根;
- 软件:STM32Cube_FW_WL3 GUI 工具(v0.1.0-OEM)、PC 端控制软件(用于信号发生器配置)。
1.2 测试环境框图
PC(控制软件)→ 矢量信号发生器(SMBV100A)→ RF Cable → STEVAL-S38681V1开发板 → Type-C USB → PC(GUI工具)
- 核心逻辑:信号发生器生成 DSSS 编码信号,开发板接收后通过 GUI 工具统计数据包错误率(PER),进而推导灵敏度。
2. 核心配置:DSSS 测试关键参数
2.1 PER-BER 转换规则
DSSS 模式下,PER(数据包错误率)与 BER(比特错误率)基于原始有效数据计算(扩频数据不参与),核心公式与参数如下:
- 转换公式:
PER = 1 - (1 - BER)^α,其中 α 为有效数据总比特数; - α 计算:α = 同步字(4 字节)+ 有效载荷(18 字节)+ CRC(1 字节)= 23 字节 = 184 比特;
- 典型对应关系:
- BER=1% → PER=84%;
- BER=0.1% → PER=16.8%。
2.2 DSSS 数据生成规则
DSSS 编码通过 “原始数据 bit 与编码序列异或” 实现,STM32WL3 支持的编码表如下:
| 编码(Code) | 二进制序列(Binary sequence) | 扩频因子(SF) | 扩频指数(Spread exponent) |
|---|---|---|---|
| 0x03 | 0011 | 4 | 2 |
| 0x8D | 10001101 | 8 | 3 |
| 0x6BC4 | 0110101111000100 | 16 | 4 |
| 0x0A60E457B | 10100110000011100100010101111011 | 32 | 5 |
| 0x540FBCEB0B8DA44D | 0101010000001111101111001110101100001011100011011010010001001101 | 64 | 6 |
- 编码逻辑:发送方从编码序列最低有效位(LSB)开始异或,接收方从最高有效位(MSB)解扩;
- 示例(SF=8,原始数据 0x55):
- 0→10110001(0xB1),1→01001110(0x4E);
- 扩频后数据:0xB1、0x4E、0xB1、0x4E、0xB1、0x4E、0xB1、0x4E。
2.3 应用场景参数(示例配置)
以 868MHz 频段测试为例,核心参数如下:
- 帧结构:前导码(0x55555555)、同步字(0x88888888)、有效载荷(“STMicroelectronics”)、CRC(0x98);
- RF 参数:频点 868MHz、调制方式 2-GFSK 0.5、空口速率 38.4ksps、频率偏差 20kHz、接收带宽 100kHz;
- DSSS 配置:SF=4,编码后数据长度 108 字节。
3. 矢量信号发生器配置(SMBV100A)
3.1 Data List 配置(生成 DSSS 数据包)
- 新建 Data List:填充内容为 “200ms 间隔符号(0x00 填充)+ 108 字节 DSSS 编码数据”;
- 符号数计算:38.4ksps 速率下,200ms 间隔对应 38.4×200=7680 符号,加上 108×8=864 符号,总符号数 = 7680+864=8544;
- 选择 Data List:在信号发生器 “Data Source” 中选中新建的 DSSS 数据列表。
3.2 发送参数配置
- 信号时长:设置为 854400 符号(对应 100 个数据包,8544×100);
- 调制参数:调制类型 2-FSK、频偏 20kHz、符号率 38.4ksps;
- 输出电平:从 - 112dBm 开始逐步调整,直至 PER 稳定在目标值(如 16.8% 对应 BER=0.1%)。
4. STM32WL3 GUI 工具配置
4.1 DSSS 核心参数配置
打开 GUI 工具,按以下参数配置寄存器(关键项):
- DSSS_CTRL:设置扩频指数(如 SF=4 对应扩频指数 4);
- SYNC 字:0x88888888(与信号发生器一致);
- ACO_THR(捕获阈值):按扩频指数计算:
- 扩频指数≤3:ACQ_THR=2^ 扩频指数 -1;
- 扩频指数 > 3:ACQ_THR=2^ 扩频指数 / 2;
- 接收带宽:100kHz(与信号发生器匹配)。
4.2 测试启动与结果统计
- 在 GUI 工具中选择 “RX Packet Test”,点击 “Start”;
- 信号发生器启动发送后,GUI 工具自动统计接收数据包数、错误数据包数;
- 灵敏度判定:当 PER 达到目标值(如 16.8%)时,信号发生器的输出电平即为该条件下的 DSSS 模式灵敏度。
5. 测试结果与小结
5.1 结果判定
- 核心指标:在 38.4ksps、SF=4、BER=0.1%(PER=16.8%)条件下,STM32WL3 DSSS 模式典型灵敏度约为 - 112dBm(具体值需按实际测试调整);
- 调整逻辑:若 PER 高于目标值,降低信号发生器输出电平;若 PER 低于目标值,升高输出电平,直至稳定。
5.2 关键注意事项
- 数据一致性:信号发生器与 GUI 工具的帧结构、DSSS 编码、RF 参数必须完全一致;
- 扩频因子适配:不同 SF 对应不同 ACQ_THR,需按公式准确配置,否则影响接收成功率;
- 通用性:其他品牌信号发生器(如 Keysight、Anritsu)可参考本文 DSSS 数据生成规则,自行编辑数据包。
STM32WL3 DSSS 模式灵敏度测试的核心是 “DSSS 数据正确生成 + PER 统计推导”。关键步骤包括:按编码规则生成测试数据、配置信号发生器与 GUI 工具参数、通过 PER-BER 对应关系判定灵敏度。该流程适用于所有支持 DSSS 的 STM32WL3xx 系列芯片,且可跨品牌信号发生器复用。
阅读全文
229