李鵬飛 發表於 2020-03-06 09:35:10
引言
隨著信息技術的飛速發展,短距離無線通信技術的應用已經越來越廣泛,硬體低成本,協議簡單的無線通信系統越來越受到歡迎。現有的一些通信技術包括WiFi和UWB,WiFi是一種無線網絡通信技術,可以改善基於IEEE802.11標準的無線網絡產品之間的互通性。UWB(Ultra Wideband)是一種無載波通信技術,它利用納秒至微微秒級的非正弦波窄脈衝傳輸數據。但採用這些方式其硬體成本較高,協議相對複雜。本文採用基於通信晶片SI4432設計的無線通信系統,不儀通信質量好,而且成本低和開發難度低,可應用於無線通信、智能控制等領域。
1 、系統網絡結構
本方案採用分布集散數據採集控制系統結構,如圖1所示,由一個控制工作站(主操作臺)、多個無線監控網關和多個無線控制節點組成。無線控制節點(即用戶所使用的設備和無線I/O模塊)通過無線監控網關與控制工作站通信。
2、 無線通信系統總體設計
該系統用LPC2103微控制器控制SI4432實現數據收發,系統軟體採用μC/OS-II嵌入式作業系統。μC/OS-II採用的是可剝奪型實時多任務內核,該通信系統將分解成若干任務,實現模塊化設計。串口接收任務將數據寫入發送緩衝區,發送任務從發送緩衝區取得數據並將數據傳輸給SI4432進行編碼處理,並以特定的格式經天線發送給接收模塊。接收任務負責接收來自SI4432的數據,並將數據寫入接收緩衝區,串口的接收任務將數據傳到PC機或其他設備。無線收發模塊的硬體結構如圖2所示。
3 、系統硬體設計
主控晶片採用飛利浦公司生產的LPC2103晶片,LPC2103是基於ARM7TDMI-S CPU的微控制器,由於內置了寬範圍的串行通信接口(範圍從多個UART、SPI和SSP到兩條I2C總線)和8 KB的片內SRAM,非常適合通信網關和協議轉換器應用,可以通過內置SPI控制器對SI4432的內部寄存器進行讀寫操作,根據實際情況配置各項參數。通過SPI接口完成對SI4432的各種配置和操作,如初始化配置、讀寫數據、訪問FIFO等。MOSI和MISO用於實現LPC2103到SI4432的雙工傳輸;SCK用於串行數據傳輸的同步;nSEL作為片選信號。SPI接口示意圖如圖3所示。
4、 系統軟體設計
採用μC/OS-II作為作業系統,該系統將分解成幾個任務:系統初始化任務、SI4432發射任務、SI4432接收任務、讀緩衝區任務、寫緩衝任務。軟體合理設定任務的優先級,μC/OS-II是基於優先級調度執行的。
4.1 系統初始化任務
系統初始化任務包括目標板初始化、SPI接口初始化、SI4432初始化。
4.1.1 目標板初始化
目標板初始化主要是定時器0初始化和註冊定時器0中斷服務程序。μC/OS-II要求提供時鐘中斷以實現延時與超時控制功能,多任務系統啟動以後,也就是涮用OSStart()之後第一件事就是初始化定時器,定時器0初始化:
4.1.2 SPI接口初始化
為了使LPC2103與SI4432能更高速地進行雙向數據傳輸,將前者配置為SPI主機模式後者為從機模式。由於SI4432的所有配置都是通過SPI接口進行的,配置的恰當與否對系統最終的通信效果有很大的影響。SPI初始化為主機,部分程序如下:
4.1.3 SI4432初始化
SI4432主要是自組織協議設計和一些寄存器配置。自組織協議格式如圖4所示。
其中,Pre表示前導碼,這些字符雜波不容易產生,通過測試和試驗發現,噪聲中不容易產生0x55和0xAA等非常有規律的信號,因此前導碼採用0x55AA;Sync(同步字)在前導碼之後,本系統設定的同步字為2B,同步字內容為0x2DD4,接收端在檢測到同步字後才開始接收數據;本系統不需要TX header(幀頭);Data表示有效數據;CRC表示檢驗位,說明採用何種校驗方式,可避免接收錯誤的數據包;SI4432內部集成有調製/解調、編碼/解碼等功能,Pre、Sync和CRC都是由SI4432自動填充,用戶只需設定數據包的組成結構和有效數據即可。
4.2 SI4432發射任務
發射任務在LPC2103、SPI和SI4432的初始化後。配置寄存器使其進入發射狀態,然後讀取發射緩衝區(緩衝區就是一個靜態隊列數據結構)數據到TXFIFO裡,當數據包發送完時,SI4432產生中斷,引腳nIRQ拉低從而通知LPC2103數據包發送完畢,LPC2103讀取該中斷信號從而釋放SI4432的nIRQ引腳,以便接收下一次中斷的產生。
無線監控網關會根據所要傳遞到特定網關而切換到特定的信道,下面的子網關則使用特定的信道。無線發射流程圖如圖5所示。
4.3 SI4432接收任務
當接收任務檢測到LPC2103的P0.16引腳被拉低時,首先關閉SI4432接收,然後讀取其狀態寄存器釋放nIRQ,判斷數據包接收中斷和檢測該包是否有效。如果CRC也正確,LPC2103讀取RXFIFO中的數據,將其寫入接收緩衝區(靜態隊列數據結構)。數據接收完畢後,清除RXFIFO打開接收使系統進入下一次數據通信,無線監控網關會監聽所有的信道,而下面的子網關則使用特定的信道。無線接收程序流程如圖6所示。
4.4 讀緩衝區任務和寫緩衝任務
讀緩衝任務主要是讀取SI4432寫到緩衝區的數據,傳送到串口,以便傳輸到PC或其他設備;寫緩衝區任務主要是把PC或其他設備準備發射的數據由串口寫入到發射緩衝區,由發射任務發射出去。
結語
本文設計了一種基於SI4432的無線通信平臺,此通信平臺採用μC/OS-II和LPC2103作為作業系統和微控制器,通信的直線距離可達600~800 m,在建築物內通信質量亦能得到保證,該通信平臺能夠應用於多種場合。
責任編輯:gt
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴