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