基于RF收發器SX1231的無線射頻收發系統設計
表2 本文系統定義的數據包格式
其中,Preamble(前導碼)是一連串的10101010(0XAA)或01010101(0X55),其數量為0~655635字節,具體幾個字節可以根據應用的需要來設定。前導碼主要用來進行幀同步,接收機主要依靠前導碼來進行有用信號識別,完成頻率控制,以及自動增益控制、信號強度判斷等動作以確保用最佳的狀態接收正確的數據。SyncWord(同步字)在前導碼之后,通過設定好的同步字來作為同步模式的標志碼,也可以作為一個網絡的ID,相同網絡的設備用相同的同步碼。而接下來的地址碼(Address)可以作為網絡內每個設備的ID,如果數據包中的地址于本設備的地址相同,則接收數據,否則不予處理。有效載荷(Message)是真正需要傳輸的數據。最后是CRC校驗碼,由芯片自動完成。
初始化程序
初始化程序包括STM8L151K2的初始化以及SX1231的收發頻率、工作模式、調制方式、數據速率以及數據包處理等寄存器的初始化配置。
系統上電后,STM8L151K2處于默認狀態,根據系統功能需求重新進行初始化配置。SX1231也處于默認狀態,需要進行配置才能工作。SX1231的初始化是一個重要的部分,正確的配置對系統最終的通信性能有很大的影響。
數據發送程序
無線發送程序流程如圖3所示。完成STM8L151K2、SX1231的初始化后,配置寄存器寫入相應的初始化RF控制字;然后通過SPI連續寫寄存器向TX FIFO內寫入需要發送的數據;再切換到發射模式。當數據發送完后,PacketSent寄存器置1,同時映射的DIO PIN會變成高電平通知MCU數據包發送完成。然后寫數據到FIFO,發送,如此循環。直到所有數據發送完成,進入Sleep模式。

圖3 數據收發流程圖
數據接收程序
程序完成STM8L151K2、SX1231的初始化后,配置寄存器寫入相應的初始化RF控制字,把SX1231配置為接收狀態。檢測PayloadReady為高電平時,表明已經收到數據,然后MCU從FIFO中讀取數據,并進行處理。如此循環直至完成接收。
系統測試結果
系統測試條件及設置
該部分為本系統測試時的設置,根據不同的應用需求,部分設置可用作相應的變動。










評論