0755-23080616

RF125系列125KHz无线模块解说(四):串行通信与配置协议

2025-09-26 11:22

分享到:

本章将详细阐述如何通过串行接口(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物理层传输协议深度解析及总结