本章将详细阐述如何通过串行接口(UART)对RF125-TX发射模块进行配置和控制,为固件开发人员提供一份完整的操作指南。
UART接口规范
与RF125-TX模块的通信遵循标准的异步串行协议。
- 通信参数:波特率为9600 bps,8位数据位,无奇偶校验,1位停止位(即9600, 8, N, 1)。
- 数据格式:所有指令和数据均使用十六进制(HEX)格式发送。
- 指令结束符:每条完整的指令都必须以回车换行符 0x0D 0x0A (\r\n) 结尾。
- 指令间隔:连续发送两条设置指令的最小时间间隔为100ms。这个延时是必要的,以确保模块有足够的时间处理前一条指令并更新内部状态。
- 响应机制:模块会对接收到的指令进行校验。如果指令格式正确且参数有效,模块将返回ASCII字符串 "OK\r\n"(十六进制为 0x4F 0x4B 0x0D 0x0A)。如果指令错误,则返回 "ERROR\r\n"(十六进制为 0x45 0x52 0x52 0x4F 0x52 0x0D 0x0A)。
配置指令集详解
RF125-TX的指令集设计简洁,围绕着配置发射参数和控制发射状态两大核心功能。
(1) 设置发射数据内容 (CMD: 0x57)
- 功能:设置模块在启动发射后需要周期性发送的数据负载(Payload)。
- 格式:0x57 | Length (1 Byte) | Payload (Length Bytes) | 0x0D 0x0A
- 参数:
- Length:1字节,表示Payload的长度。其范围是0到0x2D(十进制45)。这个长度值不包括命令字0x57、Length字节本身和结束符。
- Payload:实际的数据内容,长度由Length字节决定。
- 示例:设置发射数据为 0x01 0x02 0x03 0x04 0x05。
- 发送:0x57 0x05 0x01 0x02 0x03 0x04 0x05 0x0D 0x0A
- 成功返回:0x4F 0x4B 0x0D 0x0A
(2) 修改发射机ID (CMD: 0x58)
- 功能:设置发射机的唯一标识符(ID)。接收机在配对模式下会根据此ID来过滤数据包。
- 格式:0x58 | ID (1 Byte) | 0x0D 0x0A
- 参数:
- ID:1字节,但有效位为7位。其范围是0x00到0x7F。任何大于0x7F的值都将被视为错误。
- 示例:将发射机ID设置为0x01。
- 发送:0x58 0x01 0x0D 0x0A
- 成功返回:0x4F 0x4B 0x0D 0x0A
(3) 读取发射机ID (CMD: 0x52)
- 功能:查询模块当前配置的发射机ID。
- 格式:0x52 | 0x0D 0x0A
- 返回:ID (1 Byte) | 0x0D 0x0A
- 示例:假设当前ID为0x01。
- 发送:0x52 0x0D 0x0A
- 返回:0x01 0x0D 0x0A
(4) 设置发射时间间隔 (CMD: 0x53)
- 功能:设置自动发射数据包之间的时间间隔。
- 格式:0x53 | TIME_H (1 Byte) | TIME_L (1 Byte) | 0x0D 0x0A
- 参数:
- TIME_H 和 TIME_L:共同组成一个16位的时间值(大端模式),单位为毫秒(ms)。
- 范围:0x00FA到0xEA60,即250ms到60000ms(60秒)。如果设置的值低于250ms,模块会自动将其更正为250ms。
- 示例:设置发射间隔为1000ms(1000的十六进制为0x03E8)。
- 发送:0x53 0x03 0xE8 0x0D 0x0A
- 成功返回:0x4F 0x4B 0x0D 0x0A
(5) 设置发射机的发射状态
- 开启发射 (CMD: "start")
- 格式:0x73 0x74 0x61 0x72 0x74 | 0x0D 0x0A
- 描述:发送此命令后,RF125-TX会根据预先设置好的数据内容、ID和时间间隔,自动、连续地发射数据包。
- 成功返回:0x4F 0x4B 0x0D 0x0A
- 关闭发射 (CMD: "stop")
- 格式:0x73 0x74 0x6F 0x70 | 0x0D 0x0A
- 描述:发送此命令后,RF125-TX将立即停止发射。
- 成功返回:0x4F 0x4B 0x0D 0x0A
表2:RF125-TX UART指令集快速参考
功能 |
命令字 (HEX) |
参数 |
描述 |
示例 (HEX) |
设置数据 |
0x57 |
"Length (1B), Payload (nB)" |
设置要发送的数据内容,最大45字节。 |
57 05 01 02 03 04 05 0D 0A |
设置ID |
0x58 |
"ID (1B, 7-bit)" |
设置发射机ID,范围0x00-0x7F。 |
58 01 0D 0A |
读取ID |
0x52 |
无 |
读取当前配置的ID。 |
52 0D 0A |
设置间隔 |
0x53 |
"TIME_H (1B), TIME_L (1B)" |
设置发射间隔,单位ms,范围250-60000。 |
53 03 E8 0D 0A (1000ms) |
开启发射 |
73 74 61 0x72 0x74 |
无 |
启动自动连续发射。 |
73 74 61 72 74 0D 0A |
关闭发射 |
73 74 6F 0x70 |
无 |
停止发射。 |
73 74 6F 70 0D 0A |
4.3 协议设计与系统行为分析
RF125-TX的UART协议设计体现了一种“状态机”或“配置-执行”分离的模式。与一些每次发送数据都需要将数据包完整传给射频模块的“透传”模式不同,RF125-TX的工作流程是先由主控MCU通过一系列指令(如0x57, 0x58, 0x53)对模块的内部状态(数据缓冲区、ID寄存器、定时器周期)进行配置,然后再通过一个独立的指令(start)来触发模块进入一个自主运行的状态。
这种设计模式具有显著的工程优势。它将对时间精度要求很高的周期性发射任务,从主控MCU完全卸载到了RF125-TX模块自身。一旦配置完成并启动,主控MCU就不再需要维护一个精确的定时器来决定何时发送下一包数据。MCU可以转而去处理其他任务,甚至进入低功耗睡眠模式,从而大大简化了主控端的固件逻辑,降低了其实时性要求。RF125-TX在此架构下扮演了一个智能协处理器的角色,而不仅仅是一个简单的UART转RF的“调制解调器”。这种架构对于资源有限的MCU系统,或者需要MCU执行复杂主业务逻辑的应用来说,尤其有价值。
RF125系列125KHz无线模块解说系列:
RF125系列125KHz无线模块解说(一):RF125系列技术概述
RF125系列125KHz无线模块解说(二):技术参数与规格
RF125系列125KHz无线模块解说(三):硬件集成与电路设计指南
RF125系列125KHz无线模块解说(四):串行通信与配置协议
RF125系列125KHz无线模块解说(五):功能与操作模式
RF125系列125KHz无线模块解说(六):RF物理层传输协议深度解析及总结