黃向宇



摘要:隨著信息技術的發展,數據采集正以嵌入式技術為核心向著無線化、網絡化、遠程化的方向不斷發展。本文以ARM9處理器S3C2440和嵌入式實時操作系統μC/OS-II為基礎,設計了一種無線數據采集系統,可以實現多點分布式數據的無線遠程采集,將現場數據通過無線方式實時地傳輸到數據網關,由網關匯集數據后傳輸到上位機存儲并顯示出來,具有較高的可靠性和實時性。
關鍵詞:實時操作系統;無線數據采集;分布式數據;網關
中圖分類號:TP391 ? ? 文獻標識碼:A
文章編號:1009-3044(2020)24-0217-02
1 引言
數據采集是信息技術的重要組成之一,是計算機獲取信息的基本手段,在工業控制和科學研究等諸多領域具有廣泛的應用。數據采集系統可對物理量進行采集、存儲、處理和顯示,實現對物理量的監視或控制。一般情況下,數據采集模塊通常需要采集大量的現場數據,然后傳輸給主機進行處理。目前數據傳輸通常使用的是RS485或者是CAN等網絡,這些網絡均基于有線傳輸,它們在使用中不僅要考慮成本因素,還要考慮數據傳輸中的干擾因素。而無線傳輸相對具有一定的優勢,成本相對較低,并且傳輸中的干擾也較少,這也在一定程度上提高了傳輸的可靠性。
2 系統總體架構
本文以ARM9處理器S3C2440和嵌入式實時操作系統μC/OS-II為基礎,結合51單片機與無線數據傳輸模塊作為終端節點,設計了一種無線數據采集系統。該系統可以實現分布式數據的無線采集,將現場數據通過無線方式實時地傳輸到以ARM處理器為核心的數據網關,并通過串口傳輸給PC上位機顯示出來。
在硬件設計部分,本系統選用了友善之臂的mini2440開發板作為數據網關硬件平臺。其核心處理器采用三星的S3C2440A ARM9,內存是64M SDRAM,擁有2MB Nor Flash和256MBNand Flash,操作系統支持Linux和WinCE。
本系統的無線數據采集終端節點是一個基于單片機的智能化前端模塊,它由數字溫度傳感器DS18B20、無線模塊RF1100SE以及51單片機三個部分構成。
DS18B20是美國DALLAS公司生產的數字溫度傳感器,它采用獨特的單線接口方式,在與微處理器連接時僅需要一條連接線即可實現雙向通訊。它的測溫范圍為-55~+125℃,固有測溫分辨率達到0.5℃。
RF1100SE無線模塊是使用TI-Chipcon公司的CC1101芯片開發而成,由一個完全集成的頻率調制器、一個帶解調器的接收器、一個功率放大器、一個晶體振蕩器和一個調節器組成;在433MHz免費ISM頻段免許可證使用,其最高工作速率500kbps,支持2-FSK、GFSK和MSK等調制方式。
本文設計了多個無線數據采集節點構成一個分布式的無線數據采集網絡,采集多點的數據信息(本文目前設計了三個溫度采集節點),并按照專有的通信協議,采用無線傳輸的方式將采集到的數據傳輸給數據采集網關,在網關中對數據進行一定的處理后,再將其傳輸給PC上位機顯示出來。與此類似,也可以通過PC上位機或者數據采集網關發送數據或指令到終端節點以做出相應的控制動作。
系統共設計了三個無線溫度采集節點,三個節點在規定的間隔時間向數據網關發送一次數據,網關則在規定的時間內啟動數據采集任務,來獲取三個節點的溫度數據。網關通過啟動數據采集任務判斷節點的Channel值來決定接收哪一個節點的溫度數據。節點主動發送數據,網關被動接收數據,當發送和接收的Channel地址匹配時接收數據,否則丟棄數據。
在軟件設計部分,本課題主要完成了μC/OS-II實時操作系統在S3C2440上的移植及多任務設計、數據采集和數據傳輸功能的實現以及PC上位機用戶界面設計三個部分的工作。本課題設計的無線數據采集系統經測試能很好地完成分布式數據的無線采集,具有較高的可靠性和實時性,達到了設計的預期目標。
3 數據采集網關軟件設計
μC/OS-II操作系統對系統資源進行管理,主要包括任務調度、內存管理、消息機制、異常處理等。其所有的系統服務均由內核提供,內核將應用系統和底層硬件平臺結合成一個完整的實時系統。
本文充分利用了μC/OS-II操作系統的多任務調度機制來實現數據采集的實時性,系統依據功能需求共設計了七個工作任務,包括一個系統任務和六個用戶任務。系統任務即空閑任務,其余六個用戶任務分別是主任務、液晶顯示任務、觸摸屏驅動任務、數據采集任務、上位機通信任務及程序測試任務。
液晶顯示任務LcdTask()的作用是實現數據網關的本地顯示,由于沒有使用復雜的GUI庫,所以只是繪制了一個簡單的主機界面,可以對采集到的節點溫度進行實時地顯示,還可以通過點擊“詳細”按鈕,觀測到相應節點的溫度數據歷史變化曲線。
觸摸屏驅動任務TouchTask()主要工作是響應外部的觸控操作,本系統中用于切換顯示界面。當點觸主界面上的“詳細”按鈕時,觸摸屏任務就會響應該操作,并將主顯示界面切換到相應的溫度曲線顯示界面。
數據采集任務GetDataTask()實現了對三個終端節點的數據進行主動地接收,本課題假設三個節點的重要性相同,而μC/OS-II操作系統中不允許不同任務具有相同的優先級,所以就將對三個節點的數據接收過程放在同一個任務中。任務的流程圖如圖3所示。
4 PC上位機軟件設計
PC機界面采用比較常用的MFC框架來實現,通過串口的方式與下位機進行通信。由于在傳輸過程中可能會產生數據丟失,為此對串口通信協議做了一點格式變化,我們定義在第一個有效數據前加一個‘#字符,而在最后的的一個數據的后面加上‘*字符,最后形成#xxxxxx*這樣的一個數據包,這樣即可確保數據傳輸的準確性。串口驅動程序調用到的API函數如下表:
考慮到工程中要對數據進行分析和統計,上位機對傳輸過來的數據進行了實時保存。考慮到Office的Excel對數據的分析統計最為方便流行,因此本文直接調用微軟的Excel應用程序,將Excel嵌入到的上位機應用程序中,采集到的溫度數據都存儲在Excel表格中,方便用戶的讀取。調用Excel表格所需要用到的類如下表:
參考文獻:
[1]鄭志雄,張長勝,趙振剛,等.基于無線通信的溫室環境信息監測系統[J].數據通信,2020(3):43-45.
[2]王亞楠,朱妍雯.μC/OS-Ⅱ環境下的IoT數據采集系統通信設計[J].信息與電腦(理論版),2019(16):176-178.
[3]馬經權,蔡明,康國旗.基于無線傳輸的數據采集系統硬件設計[J].西部皮革,2019,41(10):4-5.
[4]劉永琦,曲鳴飛.基于μC/OS和51單片機的溫度檢測系統設計[J].通信電源技術,2018,35(12):94-95.
【通聯編輯:梁書】