--> ENGLISH
0755-23080616

RF125系列125KHz無線模塊解說(四):串行通信與配置協(xié)議

2025-09-26 11:22

分享到:

本章將詳細闡述如何通過串行接口(UART)對RF125-TX發(fā)射模塊進行配置和控制,為固件開發(fā)人員提供一份完整的操作指南。

 

UART接口規(guī)范

與RF125-TX模塊的通信遵循標準的異步串行協(xié)議。

  • 通信參數(shù):波特率為9600 bps,8位數(shù)據(jù)位,無奇偶校驗,1位停止位(即9600, 8, N, 1)。
  • 數(shù)據(jù)格式:所有指令和數(shù)據(jù)均使用十六進制(HEX)格式發(fā)送。
  • 指令結束符:每條完整的指令都必須以回車換行符 0x0D 0x0A (\r\n) 結尾。
  • 指令間隔:連續(xù)發(fā)送兩條設置指令的最小時間間隔為100ms。這個延時是必要的,以確保模塊有足夠的時間處理前一條指令并更新內部狀態(tài)。
  • 響應機制:模塊會對接收到的指令進行校驗。如果指令格式正確且參數(shù)有效,模塊將返回ASCII字符串 "OK\r\n"(十六進制為 0x4F 0x4B 0x0D 0x0A)。如果指令錯誤,則返回 "ERROR\r\n"(十六進制為 0x45 0x52 0x52 0x4F 0x52 0x0D 0x0A)。

 

配置指令集詳解

RF125-TX的指令集設計簡潔,圍繞著配置發(fā)射參數(shù)和控制發(fā)射狀態(tài)兩大核心功能。

(1) 設置發(fā)射數(shù)據(jù)內容 (CMD: 0x57)

  • 功能:設置模塊在啟動發(fā)射后需要周期性發(fā)送的數(shù)據(jù)負載(Payload)。
  • 格式:0x57 | Length (1 Byte) | Payload (Length Bytes) | 0x0D 0x0A
  • 參數(shù):
    • Length:1字節(jié),表示Payload的長度。其范圍是0到0x2D(十進制45)。這個長度值不包括命令字0x57、Length字節(jié)本身和結束符。
    • Payload:實際的數(shù)據(jù)內容,長度由Length字節(jié)決定。
  • 示例:設置發(fā)射數(shù)據(jù)為 0x01 0x02 0x03 0x04 0x05。
    • 發(fā)送:0x57 0x05 0x01 0x02 0x03 0x04 0x05 0x0D 0x0A
    • 成功返回:0x4F 0x4B 0x0D 0x0A

 

(2) 修改發(fā)射機ID (CMD: 0x58)

  • 功能:設置發(fā)射機的唯一標識符(ID)。接收機在配對模式下會根據(jù)此ID來過濾數(shù)據(jù)包。
  • 格式:0x58 | ID (1 Byte) | 0x0D 0x0A
  • 參數(shù):
    • ID:1字節(jié),但有效位為7位。其范圍是0x00到0x7F。任何大于0x7F的值都將被視為錯誤。
  • 示例:將發(fā)射機ID設置為0x01。
    • 發(fā)送:0x58 0x01 0x0D 0x0A
    • 成功返回:0x4F 0x4B 0x0D 0x0A

 

(3) 讀取發(fā)射機ID (CMD: 0x52)

  • 功能:查詢模塊當前配置的發(fā)射機ID。
  • 格式:0x52 | 0x0D 0x0A
  • 返回:ID (1 Byte) | 0x0D 0x0A
  • 示例:假設當前ID為0x01。
    • 發(fā)送:0x52 0x0D 0x0A
    • 返回:0x01 0x0D 0x0A

 

(4) 設置發(fā)射時間間隔 (CMD: 0x53)

  • 功能:設置自動發(fā)射數(shù)據(jù)包之間的時間間隔。
  • 格式:0x53 | TIME_H (1 Byte) | TIME_L (1 Byte) | 0x0D 0x0A
  • 參數(shù):
    • TIME_H 和 TIME_L:共同組成一個16位的時間值(大端模式),單位為毫秒(ms)。
    • 范圍:0x00FA到0xEA60,即250ms到60000ms(60秒)。如果設置的值低于250ms,模塊會自動將其更正為250ms。
  • 示例:設置發(fā)射間隔為1000ms(1000的十六進制為0x03E8)。
    • 發(fā)送:0x53 0x03 0xE8 0x0D 0x0A
    • 成功返回:0x4F 0x4B 0x0D 0x0A

 

(5) 設置發(fā)射機的發(fā)射狀態(tài)

  • 開啟發(fā)射 (CMD: "start")
    • 格式:0x73 0x74 0x61 0x72 0x74 | 0x0D 0x0A
    • 描述:發(fā)送此命令后,RF125-TX會根據(jù)預先設置好的數(shù)據(jù)內容、ID和時間間隔,自動、連續(xù)地發(fā)射數(shù)據(jù)包。
    • 成功返回:0x4F 0x4B 0x0D 0x0A
  • 關閉發(fā)射 (CMD: "stop")
    • 格式:0x73 0x74 0x6F 0x70 | 0x0D 0x0A
    • 描述:發(fā)送此命令后,RF125-TX將立即停止發(fā)射。
    • 成功返回:0x4F 0x4B 0x0D 0x0A

 

表2:RF125-TX UART指令集快速參考

功能

命令字 (HEX)

參數(shù)

描述

示例 (HEX)

設置數(shù)據(jù)

0x57

"Length (1B), Payload (nB)"

設置要發(fā)送的數(shù)據(jù)內容,最大45字節(jié)。

57 05 01 02 03 04 05 0D 0A

設置ID

0x58

"ID (1B, 7-bit)"

設置發(fā)射機ID,范圍0x00-0x7F。

58 01 0D 0A

讀取ID

0x52

讀取當前配置的ID。

52 0D 0A

設置間隔

0x53

"TIME_H (1B), TIME_L (1B)"

設置發(fā)射間隔,單位ms,范圍250-60000。

53 03 E8 0D 0A (1000ms)

開啟發(fā)射

73 74 61 0x72 0x74

啟動自動連續(xù)發(fā)射。

73 74 61 72 74 0D 0A

關閉發(fā)射

73 74 6F 0x70

停止發(fā)射。

73 74 6F 70 0D 0A

4.3 協(xié)議設計與系統(tǒng)行為分析

RF125-TX的UART協(xié)議設計體現(xiàn)了一種“狀態(tài)機”或“配置-執(zhí)行”分離的模式。與一些每次發(fā)送數(shù)據(jù)都需要將數(shù)據(jù)包完整傳給射頻模塊的“透傳”模式不同,RF125-TX的工作流程是先由主控MCU通過一系列指令(如0x57, 0x58, 0x53)對模塊的內部狀態(tài)(數(shù)據(jù)緩沖區(qū)、ID寄存器、定時器周期)進行配置,然后再通過一個獨立的指令(start)來觸發(fā)模塊進入一個自主運行的狀態(tài)。

 

這種設計模式具有顯著的工程優(yōu)勢。它將對時間精度要求很高的周期性發(fā)射任務,從主控MCU完全卸載到了RF125-TX模塊自身。一旦配置完成并啟動,主控MCU就不再需要維護一個精確的定時器來決定何時發(fā)送下一包數(shù)據(jù)。MCU可以轉而去處理其他任務,甚至進入低功耗睡眠模式,從而大大簡化了主控端的固件邏輯,降低了其實時性要求。RF125-TX在此架構下扮演了一個智能協(xié)處理器的角色,而不僅僅是一個簡單的UART轉RF的“調制解調器”。這種架構對于資源有限的MCU系統(tǒng),或者需要MCU執(zhí)行復雜主業(yè)務邏輯的應用來說,尤其有價值。

 

 

RF125系列125KHz無線模塊解說系列:

RF125系列125KHz無線模塊解說(一):RF125系列技術概述

RF125系列125KHz無線模塊解說(二):技術參數(shù)與規(guī)格

RF125系列125KHz無線模塊解說(三):硬件集成與電路設計指南

RF125系列125KHz無線模塊解說(四):串行通信與配置協(xié)議

RF125系列125KHz無線模塊解說(五):功能與操作模式

RF125系列125KHz無線模塊解說(六):RF物理層傳輸協(xié)議深度解析及總結