本章將詳細(xì)闡述如何通過串行接口(UART)對(duì)RF125-TX發(fā)射模塊進(jìn)行配置和控制,為固件開發(fā)人員提供一份完整的操作指南。
UART接口規(guī)范
與RF125-TX模塊的通信遵循標(biāo)準(zhǔn)的異步串行協(xié)議。
- 通信參數(shù):波特率為9600 bps,8位數(shù)據(jù)位,無奇偶校驗(yàn),1位停止位(即9600, 8, N, 1)。
- 數(shù)據(jù)格式:所有指令和數(shù)據(jù)均使用十六進(jìn)制(HEX)格式發(fā)送。
- 指令結(jié)束符:每條完整的指令都必須以回車換行符 0x0D 0x0A (\r\n) 結(jié)尾。
- 指令間隔:連續(xù)發(fā)送兩條設(shè)置指令的最小時(shí)間間隔為100ms。這個(gè)延時(shí)是必要的,以確保模塊有足夠的時(shí)間處理前一條指令并更新內(nèi)部狀態(tài)。
- 響應(yīng)機(jī)制:模塊會(huì)對(duì)接收到的指令進(jìn)行校驗(yàn)。如果指令格式正確且參數(shù)有效,模塊將返回ASCII字符串 "OK\r\n"(十六進(jìn)制為 0x4F 0x4B 0x0D 0x0A)。如果指令錯(cuò)誤,則返回 "ERROR\r\n"(十六進(jìn)制為 0x45 0x52 0x52 0x4F 0x52 0x0D 0x0A)。
配置指令集詳解
RF125-TX的指令集設(shè)計(jì)簡(jiǎn)潔,圍繞著配置發(fā)射參數(shù)和控制發(fā)射狀態(tài)兩大核心功能。
(1) 設(shè)置發(fā)射數(shù)據(jù)內(nèi)容 (CMD: 0x57)
- 功能:設(shè)置模塊在啟動(dòng)發(fā)射后需要周期性發(fā)送的數(shù)據(jù)負(fù)載(Payload)。
- 格式:0x57 | Length (1 Byte) | Payload (Length Bytes) | 0x0D 0x0A
- 參數(shù):
- Length:1字節(jié),表示Payload的長(zhǎng)度。其范圍是0到0x2D(十進(jìn)制45)。這個(gè)長(zhǎng)度值不包括命令字0x57、Length字節(jié)本身和結(jié)束符。
- Payload:實(shí)際的數(shù)據(jù)內(nèi)容,長(zhǎng)度由Length字節(jié)決定。
- 示例:設(shè)置發(fā)射數(shù)據(jù)為 0x01 0x02 0x03 0x04 0x05。
- 發(fā)送:0x57 0x05 0x01 0x02 0x03 0x04 0x05 0x0D 0x0A
- 成功返回:0x4F 0x4B 0x0D 0x0A
(2) 修改發(fā)射機(jī)ID (CMD: 0x58)
- 功能:設(shè)置發(fā)射機(jī)的唯一標(biāo)識(shí)符(ID)。接收機(jī)在配對(duì)模式下會(huì)根據(jù)此ID來過濾數(shù)據(jù)包。
- 格式:0x58 | ID (1 Byte) | 0x0D 0x0A
- 參數(shù):
- ID:1字節(jié),但有效位為7位。其范圍是0x00到0x7F。任何大于0x7F的值都將被視為錯(cuò)誤。
- 示例:將發(fā)射機(jī)ID設(shè)置為0x01。
- 發(fā)送:0x58 0x01 0x0D 0x0A
- 成功返回:0x4F 0x4B 0x0D 0x0A
(3) 讀取發(fā)射機(jī)ID (CMD: 0x52)
- 功能:查詢模塊當(dāng)前配置的發(fā)射機(jī)ID。
- 格式:0x52 | 0x0D 0x0A
- 返回:ID (1 Byte) | 0x0D 0x0A
- 示例:假設(shè)當(dāng)前ID為0x01。
- 發(fā)送:0x52 0x0D 0x0A
- 返回:0x01 0x0D 0x0A
(4) 設(shè)置發(fā)射時(shí)間間隔 (CMD: 0x53)
- 功能:設(shè)置自動(dòng)發(fā)射數(shù)據(jù)包之間的時(shí)間間隔。
- 格式:0x53 | TIME_H (1 Byte) | TIME_L (1 Byte) | 0x0D 0x0A
- 參數(shù):
- TIME_H 和 TIME_L:共同組成一個(gè)16位的時(shí)間值(大端模式),單位為毫秒(ms)。
- 范圍:0x00FA到0xEA60,即250ms到60000ms(60秒)。如果設(shè)置的值低于250ms,模塊會(huì)自動(dòng)將其更正為250ms。
- 示例:設(shè)置發(fā)射間隔為1000ms(1000的十六進(jìn)制為0x03E8)。
- 發(fā)送:0x53 0x03 0xE8 0x0D 0x0A
- 成功返回:0x4F 0x4B 0x0D 0x0A
(5) 設(shè)置發(fā)射機(jī)的發(fā)射狀態(tài)
- 開啟發(fā)射 (CMD: "start")
- 格式:0x73 0x74 0x61 0x72 0x74 | 0x0D 0x0A
- 描述:發(fā)送此命令后,RF125-TX會(huì)根據(jù)預(yù)先設(shè)置好的數(shù)據(jù)內(nèi)容、ID和時(shí)間間隔,自動(dòng)、連續(xù)地發(fā)射數(shù)據(jù)包。
- 成功返回:0x4F 0x4B 0x0D 0x0A
- 關(guān)閉發(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è)置數(shù)據(jù) |
0x57 |
"Length (1B), Payload (nB)" |
設(shè)置要發(fā)送的數(shù)據(jù)內(nèi)容,最大45字節(jié)。 |
57 05 01 02 03 04 05 0D 0A |
|
設(shè)置ID |
0x58 |
"ID (1B, 7-bit)" |
設(shè)置發(fā)射機(jī)ID,范圍0x00-0x7F。 |
58 01 0D 0A |
|
讀取ID |
0x52 |
無 |
讀取當(dāng)前配置的ID。 |
52 0D 0A |
|
設(shè)置間隔 |
0x53 |
"TIME_H (1B), TIME_L (1B)" |
設(shè)置發(fā)射間隔,單位ms,范圍250-60000。 |
53 03 E8 0D 0A (1000ms) |
|
開啟發(fā)射 |
73 74 61 0x72 0x74 |
無 |
啟動(dòng)自動(dòng)連續(xù)發(fā)射。 |
73 74 61 72 74 0D 0A |
|
關(guān)閉發(fā)射 |
73 74 6F 0x70 |
無 |
停止發(fā)射。 |
73 74 6F 70 0D 0A |
4.3 協(xié)議設(shè)計(jì)與系統(tǒng)行為分析
RF125-TX的UART協(xié)議設(shè)計(jì)體現(xiàn)了一種“狀態(tài)機(jī)”或“配置-執(zhí)行”分離的模式。與一些每次發(fā)送數(shù)據(jù)都需要將數(shù)據(jù)包完整傳給射頻模塊的“透?jìng)?rdquo;模式不同,RF125-TX的工作流程是先由主控MCU通過一系列指令(如0x57, 0x58, 0x53)對(duì)模塊的內(nèi)部狀態(tài)(數(shù)據(jù)緩沖區(qū)、ID寄存器、定時(shí)器周期)進(jìn)行配置,然后再通過一個(gè)獨(dú)立的指令(start)來觸發(fā)模塊進(jìn)入一個(gè)自主運(yùn)行的狀態(tài)。
這種設(shè)計(jì)模式具有顯著的工程優(yōu)勢(shì)。它將對(duì)時(shí)間精度要求很高的周期性發(fā)射任務(wù),從主控MCU完全卸載到了RF125-TX模塊自身。一旦配置完成并啟動(dòng),主控MCU就不再需要維護(hù)一個(gè)精確的定時(shí)器來決定何時(shí)發(fā)送下一包數(shù)據(jù)。MCU可以轉(zhuǎn)而去處理其他任務(wù),甚至進(jìn)入低功耗睡眠模式,從而大大簡(jiǎn)化了主控端的固件邏輯,降低了其實(shí)時(shí)性要求。RF125-TX在此架構(gòu)下扮演了一個(gè)智能協(xié)處理器的角色,而不僅僅是一個(gè)簡(jiǎn)單的UART轉(zhuǎn)RF的“調(diào)制解調(diào)器”。這種架構(gòu)對(duì)于資源有限的MCU系統(tǒng),或者需要MCU執(zhí)行復(fù)雜主業(yè)務(wù)邏輯的應(yīng)用來說,尤其有價(jià)值。
RF125系列125KHz無線模塊解說系列:
RF125系列125KHz無線模塊解說(一):RF125系列技術(shù)概述
RF125系列125KHz無線模塊解說(二):技術(shù)參數(shù)與規(guī)格
RF125系列125KHz無線模塊解說(三):硬件集成與電路設(shè)計(jì)指南
RF125系列125KHz無線模塊解說(四):串行通信與配置協(xié)議
RF125系列125KHz無線模塊解說(五):功能與操作模式
RF125系列125KHz無線模塊解說(六):RF物理層傳輸協(xié)議深度解析及總結(jié)