LPC1766與Si4432的無線數據傳輸系統設計
摘要:本文設計了一種基于微功率無線收發芯片Si4432的遠程數據傳輸系統。該系統采用ARM Cortex—M3核芯片LPC1766,通過SSP控制器操作射頻收發芯片,詳細論述了芯片基于時序的編程方法。該方案的運用可以實現無線數據的可靠收發,具有良好通信效果。
關鍵詞:微功率;無線數據傳輸;遠程控制
引言
隨著社會的發展,空調系統廣泛應用于現代辦公大樓及高層建筑中,空調在改善和提高建筑物內部環境質量的同時,也帶來了巨大的能源消耗。在現代樓宇建筑中,每年的夏冬兩季建筑物的大部分能耗被空調所占據,因此如何通過科學的方法降低空調能耗,是一個亟待解決的問題。
積極地開發與合理地運用節能控制技術,將分散的空調進行集中統一的管理是降低空調能耗的有效途徑。隨著傳感器技術、網絡技術、計算機技術的發展,各種信息數據的檢測、傳送、分析處理都具備了實現的條件和手段,促進了物聯網核心技術的迅猛發展,使分體空調控制的集中化、網絡化成為可能。
通過研究物聯網的構成及實際應用模式,探索將其引入到分體空調集中控制系統中來,構建一套基于物聯網的分體空調節能控制系統。由于各個感知節點分布較廣,傳統單一的有線傳輸方式在某些應用中存在傳輸不穩定、人機交互性不夠好、控制實時性不強、網絡不夠融合、布線不方便等缺點。因此,信息傳輸網絡應建成基于物聯網技術的有線和無線相結合的混雜網絡架構,將數據匯聚至集中器統一管理,實現分體空調系統運行狀態、能耗以及環境狀況等數據準確、穩定的傳輸。其系統結構如圖1所示。
3.3 無線數據發送和接收
3.3.1 射頻芯片初始化及參數設置
Si4432有兩個只讀類型的寄存器:Reg00(內部地址為00h的寄存器)表示設備類型碼,Reg01表示版本代碼,其值在芯片出廠時已固定,后期不可更改。在此,可以在初始化時通過讀取Reg00和Reg01的值,來判斷Si4432是否已正常啟動。
首先初始化LPC1766,啟動SSP1控制器。讀取Si4432的Reg03和Reg04,將自動清除中斷標志,并釋放nIRQ引腳。向Reg07寫入0x80,即最高位置1,將復位所有的內部寄存器為默認狀態,延時10 ms等待Si4432正常工作后,統計啟動次數。在Reg00和Reg01的值均滿足條件之后,再往相應的寄存器中填入通信參數,隨后立即進入接收狀態。其流程如圖5所示。
3.3.2 無線發送程序
在發送數據之前,先將芯片設置為掛起(IDLE)狀態。指定待發送數據包的長度,再向發送FIFO中填入相應字節數的數據。配置中斷返回類型為“數據包發送完畢中斷”,即在Si4432將數據成功發送出去之后,通過中斷通知LPC1766。隨后使能發送,Si4432將自動在數據幀中添加同步字等參數。其流程如圖6所示。
3.3.3 無線接收程序
當Si4432接收到數據時,將通過中斷觸發的方式,通知LPC1766來處理。首先獲取中斷狀態,判斷中斷的類型。如果是“數據包發送完畢中斷”,則將射頻切換到接收狀態;如果是“有效數據包接收中斷”,則讀取數據包的長度值,然后在FIFO中取出指定長度值的數據。重新配置“有效數據包接收中斷”,復位接收FIFO,設置模塊處于接收狀態。當中斷處理函數結束之后,重新返回到中斷前處理的程序。其流程如圖7所示。
結語
本文介紹了一種基于LPC1766和Si4432的無線通信系統。對具體的硬件電路連接和軟件系統的設計進行了詳細的介紹,著重論述了通過SSP控制器與Si4432交互的時序編程方法。經過大量的實驗證明,該系統通信可靠、穩定性強,具有良好的工程應用效果。
評論