基于ZigBee的大壩監(jiān)測(cè)系統(tǒng)接收終端研究
4.2 設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)
在Linux操作系統(tǒng)下有兩類主要的設(shè)備文件類型,一類是字符設(shè)備,另一類是塊設(shè)備。字符設(shè)備和塊設(shè)備的主要區(qū)別是:在對(duì)字符設(shè)備發(fā)出讀/寫請(qǐng)求時(shí),實(shí)際的硬件I/O一般就緊接著發(fā)生了,塊設(shè)備則是利用一塊系統(tǒng)內(nèi)存作緩沖區(qū),當(dāng)用戶進(jìn)程對(duì)設(shè)備請(qǐng)求能滿足用戶的要求,就返回請(qǐng)求的數(shù)據(jù),如果不能,就調(diào)用請(qǐng)求函數(shù)來(lái)進(jìn)行實(shí)際的I/O操作。塊設(shè)備是主要針對(duì)磁盤等慢速設(shè)備設(shè)計(jì)的,以免耗費(fèi)過(guò)多的CPU時(shí)間來(lái)等待。
本系統(tǒng)主要是對(duì)ZigBee模塊的串口驅(qū)動(dòng),屬于字符設(shè)備驅(qū)動(dòng)程序。主要包括open,close,read,write,ioctl等函數(shù),把它們統(tǒng)一定義在結(jié)構(gòu)體file operations中。
4.3 應(yīng)用程序設(shè)計(jì)
接收終端的應(yīng)用程序開(kāi)發(fā)根據(jù)系統(tǒng)功能的需求采用模塊化的設(shè)計(jì)方案,具體有如下幾個(gè)主要功能模塊:數(shù)據(jù)收發(fā)模塊、數(shù)據(jù)存儲(chǔ)模塊、數(shù)據(jù)查詢模塊、系統(tǒng)界面模塊。本文引用地址:http://www.ex-cimer.com/article/153650.htm
手持接收終端軟件采用多線程實(shí)現(xiàn)模塊化,主要包括主程序、數(shù)據(jù)收發(fā)線程、數(shù)據(jù)顯示線程。系統(tǒng)上電后,主程序首先執(zhí)行,完成系統(tǒng)硬件初始化,配置ZigBee模塊參數(shù),然后創(chuàng)建收發(fā)線程、顯示線程兩個(gè)線程,如圖4所示。線程任務(wù)都結(jié)束后,如無(wú)系統(tǒng)命令,則ZigBee模塊進(jìn)入節(jié)電模式,主程序退出。收發(fā)線程先要調(diào)用CreateFile函數(shù)打開(kāi)串口,設(shè)置串口參數(shù),通過(guò)ZigBee模塊發(fā)送控制指令與采集前端建立無(wú)線通信,然后調(diào)用writeFile函數(shù)接收并存儲(chǔ)數(shù)據(jù),數(shù)據(jù)讀寫完畢后關(guān)閉串口退出線程。顯示線程負(fù)責(zé)將接收到的數(shù)據(jù)經(jīng)過(guò)處理器二次處理后,通過(guò)人機(jī)交互界面顯示到LCD上。
5 結(jié)論
基于ZigBee的大壩監(jiān)測(cè)接收終端,利用低功耗的ZigBee技術(shù)將前端采集模塊獲得的大壩結(jié)構(gòu)應(yīng)力應(yīng)變、裂縫、滲流滲壓等重要狀態(tài)參數(shù),接收并存儲(chǔ)。分析人員可及時(shí)由接收終端獲取大壩的參數(shù)信息,為大壩的安全評(píng)判提供了一種方便可靠的方法。
該技術(shù)比傳統(tǒng)方法維護(hù)簡(jiǎn)單,監(jiān)測(cè)靈活,具有很強(qiáng)的實(shí)踐價(jià)值。接收終端基于ARM9硬件平臺(tái),嵌入式Linux操作系統(tǒng)軟件平臺(tái)和ZigBee無(wú)線通信技術(shù),通過(guò)無(wú)線方式發(fā)送接收各種參數(shù),并對(duì)數(shù)據(jù)進(jìn)行分析、存儲(chǔ)、查詢等操作。工作人員通過(guò)人機(jī)交互界面可以直觀獲取當(dāng)前大壩狀態(tài)參數(shù)信息,并通過(guò)歷史數(shù)據(jù)的分析對(duì)比,得出大壩狀態(tài)參數(shù)的變化趨勢(shì),從而滿足對(duì)大壩進(jìn)行長(zhǎng)期實(shí)時(shí)監(jiān)測(cè)的要求。
評(píng)論