Files
stc32g128k/Docs/50_module-breakdown/mod-rf.md

40 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 模块拆分 - 自适应 RF 解码与发射 (Docs/50_module-breakdown/mod-rf.md)
本模块描述 LR690L 433MHz 射频物理收发的控制、自适应宽限时间比值解码机制以及对码/呼救编码包的发射。
## 1. 模块职责说明
* **职责范围**
1. 配置射频芯片接收 GPIO 与发射 GPIO 的电平方向。
2. **自适应比值解调算法**
EV1527 协议数据速率变化范围较宽。本模块采用自适应宽度比值解调机制:
* 捕获到一个低电平维持时间介于 1500us~60000us 之间的脉冲,判定为同步前导头。
* 抓取该帧的标准时钟周期基准 `T = low_time / 31`(前导低电平占 31 个时钟周期 T允许 T 的宽度随环境在宽限范围内自适应计算)。
* 连续捕获 24 位宽数据:每个 bit 的电平变化依据其高低电平的宽幅比例1:3 对应 03:1 对应 1反解出对应的数据位。
3. 解析出 24 位载波包:前 20 位为无线探测器的出厂唯一地址码Address Code后 4 位为状态数据码Data Code
4. **数据包主动发送**
将手环 Factory ID 编码为一帧 EV1527 数据,通过物理发射引脚输出同步头及 24 位调制波形,连发多遍以确保 IPC 接收质量。
---
## 2. 业务状态射频数据编码定义
* **对码绑定发送 (LIAISON IPC)**
* 数据码固定为 **`0x01`** (0001),源地址为手环 20-bit 出厂 Factory ID周期性连续发射。
* **本地主动 SOS 呼救 (SOS EMIS)**
* 数据码固定为 **`0x08`** (1000),源地址为手环 20-bit 出厂 Factory ID以 2 秒为周期循环向外发射。
* **传感器自动识别对码**
* 手环被动接收 433MHz 对码信号。若捕获成功,状态机直接**依据后 4 位数据码的数据值自动判断识别传感器的设备类型**(如门磁为 `0x01`,红外为 `0x02`),直接跳转到对码微调序号页,类型与大图标只读高亮。
---
## 3. 接口与函数说明
* `void RF_Init(void)`:初始化射频物理端口,使能 INT2 (接收脚的沿中断)。
* `bit EV1527_Decode(u32 *out_addr, u8 *out_type)`
主循环轮询调用。如果捕获到合法同步头且成功解调出 24 位数据流,则输出 `out_addr``out_type` 并返回 1否则返回 0。
* `void EV1527_Transmit(u32 addr, u8 data_code)`
主动发射数据。连发至少 5 遍,每遍间歇 20ms产生满足 T 基准的同步码头、`1` 码时序(高 3T 低 1T`0` 码时序(高 1T 低 3T
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes V2 -->