一種無(wú)線熱網(wǎng)監(jiān)測(cè)系統(tǒng)方案
單片機(jī)可以通過(guò)內(nèi)置SPI對(duì)Si4432的內(nèi)部寄存器進(jìn)行讀寫(xiě)操作,靈活配置各項(xiàng)參數(shù)。通過(guò)SPI接口完成對(duì)Si4432的初始化配置、讀寫(xiě)數(shù)據(jù)、訪問(wèn)FIFO等操作。使用4線SPI,即MOSI、MISO、SCK和nSEL.MOSI用于從單片機(jī)到Si4432的串行數(shù)據(jù)傳輸;MISO用于從Si4432到單片機(jī)的串行數(shù)據(jù)傳輸;SCK用于同步單片機(jī)和Si4432之間在MOSI和MISO線上的串行數(shù)據(jù)傳輸;nSEL作為片選信號(hào),只有片選信號(hào)為低電平時(shí),對(duì)Si44 32的操作才有效。
為了達(dá)到較好的通信效果,Si4432的接收低噪聲放大器匹配電路和發(fā)射功率放大器匹配電路的阻容參數(shù),應(yīng)嚴(yán)格按照數(shù)據(jù)手冊(cè)提供的參數(shù)選型。前端的分集式電路采用UPG2214TB,其VC1腳和VC2腳分別連接Si4432的GPIO1和GPIO2.通過(guò)這款交叉開(kāi)關(guān)實(shí)現(xiàn)分集式天線發(fā)送和接收通道的自動(dòng)切換。
3.2 系統(tǒng)軟件設(shè)計(jì)
軟件編程采用模塊化設(shè)計(jì)思想,系統(tǒng)中各主要功能模塊均編成獨(dú)立的函數(shù)由主程序調(diào)用,功能模塊包括:初始化程序(包括初始化C8051 F310、SPI、Si4432)、無(wú)線發(fā)送程序以及無(wú)線接收程序等。無(wú)線發(fā)送程序負(fù)責(zé)寫(xiě)入數(shù)據(jù)載荷,并根據(jù)通信協(xié)議為數(shù)據(jù)載荷加上前導(dǎo)碼、同步字、數(shù)據(jù)載荷長(zhǎng)度及CRC校驗(yàn)字節(jié),形成數(shù)據(jù)包將其發(fā)送出去;無(wú)線接收程序負(fù)責(zé)接收并檢驗(yàn)數(shù)據(jù)包中的CRC字節(jié),以確保接收到的數(shù)據(jù)的正確性。
3.2.1 初始化程序
初始化程序包括C8051F310的初始化、SPI的初始化,以及Si4432的關(guān)于無(wú)線收發(fā)頻率、工作模式、發(fā)射速率等內(nèi)部寄存器的初始化配置。
系統(tǒng)上電后,C8051F310處于默認(rèn)狀態(tài),根據(jù)系統(tǒng)功能需求重新進(jìn)行初始化配置。C8051F310的數(shù)字交叉開(kāi)關(guān)允許將內(nèi)部數(shù)字系統(tǒng)資源映射到端口I/O引腳,可通過(guò)設(shè)置交叉開(kāi)關(guān)控制寄存器,將片內(nèi)資源配置到具體的I/O引腳上。這一特性允許用戶根據(jù)自己的特定應(yīng)用選擇通用I/O端口和所需數(shù)字資源的組合,提高了應(yīng)用的靈活性。本系統(tǒng)中,主要配置了SPI通信的4線,液晶LCD的數(shù)據(jù)線接口、控制線接口等。
初始化SPI時(shí),可以通過(guò)塒SPI1CFG寄存器和SPI1CN寄存器的配置來(lái)選擇具體使用規(guī)則。這里,選擇主SPI,4線模式,時(shí)鐘極性為低電平,在時(shí)鐘上升沿時(shí)對(duì)數(shù)據(jù)采樣;通過(guò)配置SPI1CKR寄存器,可將同步時(shí)鐘頻率設(shè)為晶振頻率的1/4.
上電之初,Si4432也處于默認(rèn)狀態(tài),需要進(jìn)行配置才能工作。Si4432有70多個(gè)寄存器需要配置,它們決定了Si4432的丁作模式,具體配置可以參考Si4432的數(shù)據(jù)手冊(cè)。Si4432的初始化是一個(gè)重要的部分,配置的恰當(dāng)與否對(duì)系統(tǒng)最終的通信效果有很大的影響。主控制器C8051 F310通過(guò)SPI配置Si4432的1ch、1dh等寄存器,寫(xiě)入相應(yīng)的初始化RF控制字(主要是頻率、傳輸速度、傳輸方式等);通過(guò)配置33h、34h等寄存器來(lái)設(shè)置包的結(jié)構(gòu)、前導(dǎo)碼長(zhǎng)度、同步字內(nèi)容等。本系統(tǒng)采用同步傳輸模式,以0x2DD4作為同步模式的標(biāo)志碼,傳輸完同步字后才開(kāi)始傳輸數(shù)據(jù)載荷。
3.2.2 無(wú)線發(fā)送程序
無(wú)線發(fā)送程序流程如圖4所示。完成C8051F310、SPI和Si4432的初始化后,配置寄存器寫(xiě)入相應(yīng)的初始化RF控制字。接下來(lái),通過(guò)配置Si4432的寄存器3eh來(lái)設(shè)置包的長(zhǎng)度,通過(guò)SPI連續(xù)寫(xiě)寄存器7fh,往TX FIFO里寫(xiě)入需要發(fā)送的數(shù)據(jù)。然后打開(kāi)"發(fā)送完中斷允許"標(biāo)志,將其他中斷都禁止。當(dāng)有數(shù)據(jù)包發(fā)送完時(shí),引腳nIRQ會(huì)被拉低以產(chǎn)生一個(gè)低電平從而通知C8051F310數(shù)據(jù)包已發(fā)送完畢。完成中斷使能后,使能發(fā)送功能,數(shù)據(jù)開(kāi)始發(fā)送。等待nIRQ引腳因中斷產(chǎn)生而使電平拉低,當(dāng)nIRQ引腳變?yōu)榈蜁r(shí)讀取中斷狀態(tài)并拉高nIRQ,否則繼續(xù)等待。一次數(shù)據(jù)發(fā)送成功后,進(jìn)入下一次數(shù)據(jù)循環(huán)發(fā)送狀態(tài)。
評(píng)論