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

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

評論