系統軟件設計 - 無(wú)線(xiàn)熱網(wǎng)監測系統設計方案的實(shí)現
軟件編程采用模塊化設計思想,系統中各主要功能模塊均編成獨立的函數由主程序調用,功能模塊包括:初始化程序(包括初始化C8051 F310、SPI、Si4432)、無(wú)線(xiàn)發(fā)送程序以及無(wú)線(xiàn)接收程序等。無(wú)線(xiàn)發(fā)送程序負責寫(xiě)入數據載荷,并根據通信協(xié)議為數據載荷加上前導碼、同步字、數據載荷長(cháng)度及CRC校驗字節,形成數據包將其發(fā)送出去;無(wú)線(xiàn)接收程序負責接收并檢驗數據包中的CRC字節,以確保接收到的數據的正確性。
3.2.1 初始化程序
初始化程序包括C8051F310的初始化、SPI的初始化,以及Si4432的關(guān)于無(wú)線(xiàn)收發(fā)頻率、工作模式、發(fā)射速率等內部寄存器的初始化配置。
系統上電后,C8051F310處于默認狀態(tài),根據系統功能需求重新進(jìn)行初始化配置。C8051F310的數字交叉開(kāi)關(guān)允許將內部數字系統資源映射到端口I/O引腳,可通過(guò)設置交叉開(kāi)關(guān)控制寄存器,將片內資源配置到具體的I/O引腳上。這一特性允許用戶(hù)根據自己的特定應用選擇通用I/O端口和所需數字資源的組合,提高了應用的靈活性。本系統中,主要配置了SPI通信的4線(xiàn),液晶LCD的數據線(xiàn)接口、控制線(xiàn)接口等。
初始化SPI時(shí),可以通過(guò)塒SPI1CFG寄存器和SPI1CN寄存器的配置來(lái)選擇具體使用規則。這里,選擇主SPI,4線(xiàn)模式,時(shí)鐘極性為低電平,在時(shí)鐘上升沿時(shí)對數據采樣;通過(guò)配置SPI1CKR寄存器,可將同步時(shí)鐘頻率設為晶振頻率的1/4.
上電之初,Si4432也處于默認狀態(tài),需要進(jìn)行配置才能工作。Si4432有70多個(gè)寄存器需要配置,它們決定了Si4432的丁作模式,具體配置可以參考Si4432的數據手冊。Si4432的初始化是一個(gè)重要的部分,配置的恰當與否對系統最終的通信效果有很大的影響。主控制器C8051 F310通過(guò)SPI配置Si4432的1ch、1dh等寄存器,寫(xiě)入相應的初始化RF控制字(主要是頻率、傳輸速度、傳輸方式等);通過(guò)配置33h、34h等寄存器來(lái)設置包的結構、前導碼長(cháng)度、同步字內容等。本系統采用同步傳輸模式,以0x2DD4作為同步模式的標志碼,傳輸完同步字后才開(kāi)始傳輸數據載荷。
3.2.2 無(wú)線(xiàn)發(fā)送程序
無(wú)線(xiàn)發(fā)送程序流程如圖4所示。完成C8051F310、SPI和Si4432的初始化后,配置寄存器寫(xiě)入相應的初始化RF控制字。接下來(lái),通過(guò)配置Si4432的寄存器3eh來(lái)設置包的長(cháng)度,通過(guò)SPI連續寫(xiě)寄存器7fh,往TX FIFO里寫(xiě)入需要發(fā)送的數據。然后打開(kāi)“發(fā)送完中斷允許”標志,將其他中斷都禁止。當有數據包發(fā)送完時(shí),引腳nIRQ會(huì )被拉低以產(chǎn)生一個(gè)低電平從而通知C8051F310數據包已發(fā)送完畢。完成中斷使能后,使能發(fā)送功能,數據開(kāi)始發(fā)送。等待nIRQ引腳因中斷產(chǎn)生而使電平拉低,當nIRQ引腳變?yōu)榈蜁r(shí)讀取中斷狀態(tài)并拉高nIRQ,否則繼續等待。一次數據發(fā)送成功后,進(jìn)入下一次數據循環(huán)發(fā)送狀態(tài)。
3.2.3 無(wú)線(xiàn)接收程序
程序完成C8051F310、SPI接口和Si4432的初始化后,配置寄存器寫(xiě)入相應的初始化RF控制字。通過(guò)訪(fǎng)問(wèn)寄存器7fh從RX FIFO中讀取接收到的數據。相應的控制字設置好之后,若引腳nIRQ變成低電平,則表示Si4432準備好接收數據。完成這些初始化配置后,通過(guò)寄存器4bh讀取包長(cháng)度信息。然后,打開(kāi)“有效包中斷”和“同步字檢測中斷”,將其他中斷都禁止。引腳nIRQ用來(lái)檢測是否有有效包被檢測到,若引腳nIRQ變?yōu)榈碗娖?,則表示有效的數據包被檢測到。本系統用0x2DD4作為同步模式的標志碼,接收模塊通過(guò)檢測這個(gè)同步字來(lái)同步接收數據。最后,使能接收功能,數據開(kāi)始接收。等待nIRQ引腳因產(chǎn)生中斷而使電平拉低,讀取中斷標志位復位nIRQ引腳,使nIRQ恢復至初始的高電平狀態(tài)以準備下一次中斷觸發(fā)的檢測。通過(guò)SPI讀取RX FIFO中的數據,之后進(jìn)入下一次數據接收狀態(tài)。無(wú)線(xiàn)接收程序流程如圖5所示。
4 系統測試與分析
為驗證本無(wú)線(xiàn)射頻收發(fā)系統設計的可靠性,進(jìn)行了7組“發(fā)射模塊-接收模塊”通信實(shí)驗。在空曠地通信距離約為1 600 m時(shí),7組“發(fā)射模塊-接收模塊”分別工作在430.50 MHz、431.50 MHz、432.50 MHz等7個(gè)中心頻率上,帶寬均取112.8 kHz,頻率偏移取±25 kHz,發(fā)送4 000個(gè)數據包,實(shí)驗結果如表1所列。
從表1中可以看出,在傳輸速率較低時(shí),誤碼率為0;在傳輸速率為100 kbps(或以上)時(shí),有一定的誤碼,但誤碼率不高于0.050%.因此,該無(wú)線(xiàn)射頻收發(fā)系統具有傳輸距離遠、穿透能力強、通信誤碼率低的特點(diǎn)。
結語(yǔ)
采用Si4432這種短距離無(wú)線(xiàn)通信芯片,完全可以擴充為一個(gè)網(wǎng)絡(luò )系統,形成一個(gè)無(wú)線(xiàn)網(wǎng)絡(luò ),使本系統在熱網(wǎng)監控系統的解決方案中不需要重新布線(xiàn)就可以有效地進(jìn)行溫度采集和控制;本文所設計的無(wú)線(xiàn)射頻收發(fā)系統工作可靠、穩定,具有很好的通用性和適用性,所以基于Si4432芯片的無(wú)線(xiàn)通信技術(shù)可以給熱網(wǎng)監控系統的數據采集增加一種新的解決方案,但也需要對熱閥進(jìn)行數字化升級。隨著(zhù)無(wú)線(xiàn)通信的發(fā)展,Si4432芯片的短距離無(wú)線(xiàn)通信技術(shù)和GPRS移動(dòng)通信技術(shù)將在工控系統中有廣闊的發(fā)展空間。
pos機相關(guān)文章:pos機原理
評論