Files
stc32g128k/Docs/50_module-breakdown/mod-rf.md
2026-07-15 15:57:37 +08:00

30 lines
2.0 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. **事件产生者 (Event Producer)**:当物理引脚 `P2.1` (RF_RX_DATA) 沿中断触发,射频解调成功后,模块产生 `RF_EVENT_PAIR` (对码) 或 `RF_EVENT_ALARM` (报警) 并投递至系统事件总线。
2. **自适应解调算法**
* 捕获 1500us~60000us 的同步低电平,动态计算时钟基准 `T = low_time / 31`
* 连续解调 24 位宽数据1:3 对应 0 码3:1 对应 1 码,计算出 20 位地址码与 4 位状态数据码。
3. **屏蔽接收 0x08 SOS 码**:手环被动接收到数据码为 `0x08` 的载波信号时,强制过滤忽略,不产生任何事件。仅保留主动向外界发射 `0x08` 求救码的能力。
4. **主动发送驱动**:在应用层请求下,使能 `P2.0` (RF_TX) 和数据线 `P3.6` (RF_TX_DAT),连续发射多遍调制数据(如对码绑定 `0x01` 或求救包 `0x08`)。
---
## 2. 接口与函数说明
* `void RF_Init(void)`:配置 Pin 19, 20, 21, 22 物理引脚。使能接收控制 `RF_RX` (P3.7) = 1。使能引脚电平变化中断用于休眠唤醒。
* `bit EV1527_Decode(u32 *out_addr, u8 *out_type)`
被主循环 `main.c` 轮询轮空调用。
* 通过状态标志检测引脚跳变沿。
* 若解调出合法 24 位数据,填入 `out_addr``out_type`,返回 1否则返回 0。
* `void EV1527_Transmit(u32 addr, u8 data_code)`
由主动发送 App 调度。产生前导头及 24 位电平时序。连续发送 5 遍,以确保 IPC 摄像头可靠捕获。
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes V3 -->
<!-- Touched to refresh dirty check baseline -->