3.1 系統硬件設計
系統硬件部分主要由中繼層與現場儀表層兩部分組成?,F場儀表層又分為控制器和遙控器。
中繼層主要由GPRS模塊和Si4432芯片組成。GPRS模塊選用Motorola公司的模塊G20.G20是該公司推出的內嵌TCP/IP協議的GSM/GPRS模塊,性能優越,體積小巧,而且解決了GSM/GPRS模塊無線通信和數據傳輸終端的協議瓶頸和成本問題。該模塊廣泛應用于短信中心、GPRS監控系統、無線POS機、無線抄表、車輛防盜等。G20通過UART與控制處理芯片進行通信,將數據信息與控制信號在控制器和上位機之間進行雙向傳遞。控制器中是由Si4432芯片通過SPI與單片機C8051F310通信,將數據信息與控制信號和控制層之間進行雙向的傳遞;同時通過另一路Si4432和遙控器之間進行數據交換。
無論集中器和控制器,還是控制器和遙控器的通信均是通過Si4432無線收發芯片來完成。所以為了將設計模塊化,減少工作量,針對Si4432設計了無線通信模塊。Si4432無線收發模塊如圖3所示。
?
Si4432的13~16腳是標準的SPI接口,17腳(nIRQ)是中斷狀態輸出引腳。當FIFO溢出、有效的數據包發送或接收、CRC錯誤、檢測到前導位和同步字、上電復位等情況發生,且相應的中斷被使能時,17腳都會產生一個低電平以通知單片機有中斷產生。20腳(SDN)決定了Si4432芯片的工作狀態。當SDN接地(SDN=0)時,芯片處于常規工作模式;接高電平(SDN=1)時,芯片處于掉電模式。掉電模式下寄存器中的內容會丟失,且不允許SPI訪問,但芯片的電流損耗只有10 nA,功耗很低,因此適合要求極低功耗的應用。在連接到電源后,在SDN的下降沿上電復位,根據指令轉換到其他工作模式。
單片機可以通過內置SPI對Si4432的內部寄存器進行讀寫操作,靈活配置各項參數。通過SPI接口完成對Si4432的初始化配置、讀寫數據、訪問FIFO等操作。使用4線SPI,即MOSI、MISO、SCK和nSEL.MOSI用于從單片機到Si4432的串行數據傳輸;MISO用于從Si4432到單片機的串行數據傳輸;SCK用于同步單片機和Si4432之間在MOSI和MISO線上的串行數據傳輸;nSEL作為片選信號,只有片選信號為低電平時,對Si44 32的操作才有效。
為了達到較好的通信效果,Si4432的接收低噪聲放大器匹配電路和發射功率放大器匹配電路的阻容參數,應嚴格按照數據手冊提供的參數選型。前端的分集式電路采用UPG2214TB,其VC1腳和VC2腳分別連接Si4432的GPIO1和GPIO2.通過這款交叉開關實現分集式天線發送和接收通道的自動切換。
3.2 系統軟件設計
軟件編程采用模塊化設計思想,系統中各主要功能模塊均編成獨立的函數由主程序調用,功能模塊包括:初始化程序(包括初始化C8051 F310、SPI、Si4432)、無線發送程序以及無線接收程序等。無線發送程序負責寫入數據載荷,并根據通信協議為數據載荷加上前導碼、同步字、數據載荷長度及CRC校驗字節,形成數據包將其發送出去;無線接收程序負責接收并檢驗數據包中的CRC字節,以確保接收到的數據的正確性。
3.2.1 初始化程序
初始化程序包括C8051F310的初始化、SPI的初始化,以及Si4432的關于無線收發頻率、工作模式、發射速率等內部寄存器的初始化配置。
系統上電后,C8051F310處于默認狀態,根據系統功能需求重新進行初始化配置。C8051F310的數字交叉開關允許將內部數字系統資源映射到端口I/O引腳,可通過設置交叉開關控制寄存器,將片內資源配置到具體的I/O引腳上。這一特性允許用戶根據自己的特定應用選擇通用I/O端口和所需數字資源的組合,提高了應用的靈活性。本系統中,主要配置了SPI通信的4線,液晶LCD的數據線接口、控制線接口等。
初始化SPI時,可以通過塒SPI1CFG寄存器和SPI1CN寄存器的配置來選擇具體使用規則。這里,選擇主SPI,4線模式,時鐘極性為低電平,在時鐘上升沿時對數據采樣;通過配置SPI1CKR寄存器,可將同步時鐘頻率設為晶振頻率的1/4.
上電之初,Si4432也處于默認狀態,需要進行配置才能工作。Si4432有70多個寄存器需要配置,它們決定了Si4432的丁作模式,具體配置可以參考Si4432的數據手冊。Si4432的初始化是一個重要的部分,配置的恰當與否對系統最終的通信效果有很大的影響。主控制器C8051 F310通過SPI配置Si4432的1ch、1dh等寄存器,寫入相應的初始化RF控制字(主要是頻率、傳輸速度、傳輸方式等);通過配置33h、34h等寄存器來設置包的結構、前導碼長度、同步字內容等。本系統采用同步傳輸模式,以0x2DD4作為同步模式的標志碼,傳輸完同步字后才開始傳輸數據載荷。
3.2.2 無線發送程序
無線發送程序流程如圖4所示。完成C8051F310、SPI和Si4432的初始化后,配置寄存器寫入相應的初始化RF控制字。接下來,通過配置Si4432的寄存器3eh來設置包的長度,通過SPI連續寫寄存器7fh,往TX FIFO里寫入需要發送的數據。然后打開"發送完中斷允許"標志,將其他中斷都禁止。當有數據包發送完時,引腳nIRQ會被拉低以產生一個低電平從而通知C8051F310數據包已發送完畢。完成中斷使能后,使能發送功能,數據開始發送。等待nIRQ引腳因中斷產生而使電平拉低,當nIRQ引腳變為低時讀取中斷狀態并拉高nIRQ,否則繼續等待。一次數據發送成功后,進入下一次數據循環發送狀態。
?
評論
查看更多