摘要:本文介紹了一種能夠?qū)︿摻罨炷翙z測(cè)儀進(jìn)行遠(yuǎn)程監(jiān)控并且回傳數(shù)據(jù)的裝置。目前世界上絕大部分大型橋梁都是鋼筋混凝土結(jié)構(gòu),對(duì)建成時(shí)間久或者新建成、受臺(tái)風(fēng)地震等災(zāi)害影響的橋梁,為了檢查其安全性能是否符合標(biāo)準(zhǔn),有專用的鋼筋混凝土檢測(cè)儀對(duì)其進(jìn)行檢測(cè)。為了解決大橋底部檢測(cè)難以實(shí)時(shí)監(jiān)控的問題,開發(fā)了該傳輸與控制系統(tǒng),可在檢測(cè)橋梁底部時(shí)實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,并且能夠?qū)崟r(shí)傳回?cái)?shù)據(jù)進(jìn)行分析。本文網(wǎng)絡(luò)版地址:http://www.eepw.com.cn/article/248892.htm
關(guān)鍵字:嵌入式系統(tǒng);遠(yuǎn)程控制;文件傳輸;視頻監(jiān)控
DOI: 10.3969/j.issn.1005-5517.2014.6.007
引言
隨著時(shí)代的發(fā)展,越來越多的特大特高橋梁和高層建筑出現(xiàn)在了我們的生活之中,給人們的生活帶來了巨大的便利。但近幾年頻頻發(fā)生的大橋垮塌事故讓我們對(duì)這些建筑的安全性產(chǎn)生了懷疑。事實(shí)上,只要定期對(duì)建筑進(jìn)行檢測(cè)和維護(hù),這些事故是完全可以避免的。但是由于大橋高度高、跨度大,對(duì)橋底面的檢測(cè)十分困難。于是相關(guān)機(jī)構(gòu)研制出了可貼于大橋底面行走的機(jī)器人,裝載上鋼筋混凝土檢測(cè)儀,可以對(duì)大橋底部進(jìn)行檢測(cè)。但是目前的檢測(cè)儀都只能手持控制,所以只能每次行走完成之后取下設(shè)備,然后讀取數(shù)據(jù)進(jìn)行分析,這樣設(shè)備在橋下運(yùn)行時(shí)就有很大的不確定性,不知道設(shè)備在橋下的運(yùn)行情況,難以及時(shí)發(fā)現(xiàn)、處理意外情況。本裝置的研制就是為了解決這個(gè)問題,當(dāng)檢測(cè)人員攜帶開啟無線熱點(diǎn)功能的PC在橋面行走時(shí),橋下的改造后檢測(cè)儀通過連接到PC熱點(diǎn),檢測(cè)人員就能對(duì)設(shè)備在橋下的情況實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè),遠(yuǎn)程控制并實(shí)時(shí)獲取檢測(cè)數(shù)據(jù)。
系統(tǒng)示意圖如圖1。
本文采用友善之臂公司出品的tiny6410開發(fā)板,該開發(fā)板使用三星S3C6410處理器,搭載嵌入式Linux操作系統(tǒng),以北京智博聯(lián)科技有限公司生產(chǎn)的型號(hào)為ZBL—R800的多功能混凝土鋼筋檢測(cè)儀(以下簡(jiǎn)稱“檢測(cè)儀”)為改造對(duì)象,在完全不影響其功能的前提下,通過對(duì)其進(jìn)行簡(jiǎn)單的改造,實(shí)現(xiàn)對(duì)檢測(cè)儀的遠(yuǎn)程操作、監(jiān)控和數(shù)據(jù)回傳。該檢測(cè)儀主要由兩部分組成,主機(jī)和傳感器。在主機(jī)側(cè)面有連接傳感器的數(shù)據(jù)接口,電源接口和一個(gè)USB接口,其中USB接口插上U盤后可以將檢測(cè)數(shù)據(jù)存儲(chǔ)在U盤中。
通常狀態(tài)下,開關(guān)斷開,輸出端輸出高電平,當(dāng)按鍵按下時(shí),開關(guān)閉合,輸出端輸出一個(gè)低電平。為了實(shí)現(xiàn)遠(yuǎn)程控制的功能,我們需要使用開發(fā)板接管鍵盤,及開發(fā)板接收到命令之后,通過ioctl()函數(shù)使開發(fā)板上的GPIO口輸出對(duì)應(yīng)的高低電平,直接送給鍵盤,實(shí)現(xiàn)按鍵這個(gè)過程。如圖5所示。
控制命令的發(fā)送利用Socket通信實(shí)現(xiàn),Socket作為支持TCP/IP的網(wǎng)絡(luò)通信的基本操作單元,能夠以很簡(jiǎn)單的方式實(shí)現(xiàn)網(wǎng)絡(luò)上不同主機(jī)之間的通信。Windows操作系統(tǒng)的Socket支持流套接字和數(shù)據(jù)報(bào)套接字,應(yīng)用程序調(diào)用Windows Sockets的API實(shí)現(xiàn)相互通信。Windows Sockets又利用下層的網(wǎng)絡(luò)通信協(xié)議功能和操作系統(tǒng)調(diào)用實(shí)現(xiàn)實(shí)際的通信過程。
圖6是一個(gè)Socket通信的基本過程,所有平臺(tái)的Socket通信大體上都是按照這個(gè)模式,或者稍加改進(jìn)來實(shí)現(xiàn)的。
實(shí)現(xiàn)Socket通信,通常采用C/S模式,即大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu),至少需要一組Socket程序。在本系統(tǒng)中,將Socket服務(wù)器設(shè)置在開發(fā)板上,可以自定義接受來自哪些客戶端的連接請(qǐng)求,以實(shí)現(xiàn)更靈活的使用。而且將其設(shè)置為開機(jī)自動(dòng)啟動(dòng),以隨時(shí)待命,接受連接請(qǐng)求,不需要手工啟動(dòng)。Socket客戶機(jī)設(shè)置在PC客戶端上,可以從PC上發(fā)送指令,實(shí)現(xiàn)遠(yuǎn)程控制。四鍵模擬鍵盤如圖7。
每一個(gè)按鈕對(duì)應(yīng)一條指令,每按下一個(gè)按鈕,相應(yīng)的指令被發(fā)送給開發(fā)板上的客戶機(jī)程序,客戶機(jī)接收到指令后再由處理程序進(jìn)行相應(yīng)的處理,然后通過開發(fā)板的接口把指令輸出到檢測(cè)儀的鍵盤接口,實(shí)現(xiàn)相應(yīng)的操作。經(jīng)過測(cè)試,點(diǎn)擊按鈕之后,開發(fā)板能夠立即接收到指令,并做出相應(yīng)的反應(yīng),基本做到零延遲,能夠滿足遠(yuǎn)程實(shí)時(shí)控制對(duì)低時(shí)延的要求。
2 視頻監(jiān)控
視頻監(jiān)控有很多種實(shí)現(xiàn)方式,但是考慮到實(shí)現(xiàn)難度和PC客戶端的開發(fā)難度,在MJPG-streamer開源項(xiàng)目的基礎(chǔ)上進(jìn)行進(jìn)一步開發(fā)來實(shí)現(xiàn)是一個(gè)簡(jiǎn)單易行的方法。MJPGstreamer是一個(gè)輕量級(jí)的視頻服務(wù)器軟件,使用C語言開發(fā),運(yùn)行于Linux操作系統(tǒng)上,可以從攝像頭獲取jpeg圖像,然后從PC上通過網(wǎng)絡(luò)瀏覽器實(shí)時(shí)查看攝像頭內(nèi)容。
通過修改MJPG-streamer的源代碼,進(jìn)行交叉編譯后,其可以運(yùn)行在嵌入式Linux開發(fā)板上。運(yùn)行后便可以通過PC的網(wǎng)絡(luò)瀏覽器瀏覽攝像頭的內(nèi)容。并且對(duì)攝像頭進(jìn)行一些簡(jiǎn)單的控制(需要攝像頭支持)。
在PC客戶端開發(fā)中,通過使用WebBrowser控件調(diào)用開發(fā)板上的包含視頻的網(wǎng)頁來顯示監(jiān)控畫面。顯示效果如圖8。
可以看到監(jiān)控畫面的質(zhì)量較好,經(jīng)過測(cè)試,在局域網(wǎng)環(huán)境下,VGA(640×480)分辨率時(shí),畫面平均時(shí)延50ms左右,平局幀率18幀左右,畫面流暢清晰,完全能夠滿足需求。
3 數(shù)據(jù)回傳
需要實(shí)時(shí)地將檢測(cè)儀獲取的數(shù)據(jù)傳回到橋面上的計(jì)算機(jī)中進(jìn)行分析,所以需要設(shè)計(jì)一個(gè)文件傳輸系統(tǒng)。在本系統(tǒng)中,以FTP協(xié)議為基礎(chǔ),編寫一個(gè)FTP系統(tǒng)。該FTP系統(tǒng)采用被動(dòng)式FTP,在這種方式的FTP系統(tǒng)中,命令連接和數(shù)據(jù)連接都由客戶端發(fā)起。系統(tǒng)中服務(wù)器設(shè)置在嵌入式開發(fā)板上,客戶端集成在PC客戶端中。
開發(fā)板已安裝FTP服務(wù)器,開機(jī)后一直處于偵聽狀態(tài),等待客戶端的連接。當(dāng)PC客戶端中的FTP啟動(dòng)時(shí),會(huì)向服務(wù)器發(fā)送連接請(qǐng)求,服務(wù)器首先驗(yàn)證用戶名和密碼,驗(yàn)證成功后則建立連接,然后客戶端發(fā)起傳輸數(shù)據(jù)請(qǐng)求,服務(wù)器響應(yīng)請(qǐng)求,從而完成數(shù)據(jù)傳輸。
一個(gè)實(shí)際可用的FTP系統(tǒng)至少應(yīng)該具有文件目錄顯示、文件下載、文件上傳和文件刪除這四個(gè)基本功能,如圖9所示。
PC客戶端基于微軟公司的.Net平臺(tái),使用C#語言開發(fā)。微軟公司出品的.NET Framework提供了十分豐富的網(wǎng)絡(luò)編程接口和封裝好的類庫,使開發(fā)過程變得簡(jiǎn)單。首先利用FtpWebRequest類的Create方法創(chuàng)建FTP連接,驗(yàn)證用戶名密碼后連接創(chuàng)建成功,同時(shí)利用GetResponse方法獲取服務(wù)器的反饋信息。當(dāng)需要上傳、下載和刪除文件時(shí),還是利用FtpWebRequest,只是將其Method屬性設(shè)置為WebRequestMethods.Ftp. UploadFile,WebRequestMethods.Ftp. DownloadFile和WebRequestMethods. Ftp.DeleteFile,然后向服務(wù)器發(fā)起請(qǐng)求,服務(wù)器便會(huì)響應(yīng)相應(yīng)的請(qǐng)求。服務(wù)器每次響應(yīng)請(qǐng)求之后,都返回當(dāng)前的目錄下的文件列表,供PC客戶端顯示。
“返回上級(jí)目錄”功能比較特殊,當(dāng)用戶雙擊“返回上級(jí)目錄”后,將保存當(dāng)前路徑的變量中當(dāng)前路徑的最后一級(jí)刪除,生成新的當(dāng)前路徑,然后用新的當(dāng)前路徑向服務(wù)器發(fā)送顯示文件列表請(qǐng)求,達(dá)到顯示上一級(jí)目錄的目的。
經(jīng)測(cè)試,使用PC客戶端能夠順利選擇文件夾和文件,并下載、上傳和刪除文件,具備一個(gè)實(shí)用的FTP系統(tǒng)的基本功能,能夠滿足該系統(tǒng)的需求。FTP下載文件界面如圖10所示。
4 總結(jié)
利用本文中的裝置,可以以很小的代價(jià)為普通的鋼筋混凝土檢測(cè)儀添加遠(yuǎn)程視頻監(jiān)控和數(shù)據(jù)回傳功能,能夠?qū)z測(cè)儀在橋下的運(yùn)行狀態(tài)進(jìn)行監(jiān)控,并實(shí)時(shí)獲取檢測(cè)儀的檢測(cè)數(shù)據(jù),能夠大大地拓展普通鋼筋混凝土檢測(cè)儀的使用環(huán)境。而且可以根據(jù)需要,進(jìn)行功能的添加和刪除,二次開發(fā)簡(jiǎn)單方便??傮w說來,該系統(tǒng)簡(jiǎn)單可靠,成本低廉,使用方便,具有一定的實(shí)用價(jià)值,值得推廣。
參考文獻(xiàn):
[1]王海軍.嵌入式Linux設(shè)計(jì)與應(yīng)用教程[M].上海:上海交通大學(xué)出版社,2012
[2]蔡安妮.多媒體通信技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2012
[3] 梁斌玉.叩響C#之門[M].北京:電子工業(yè)出版社,2009
[4]鄧博文,鐘志.基于MJPG-streamer的遠(yuǎn)程視頻監(jiān)控系統(tǒng)的實(shí)現(xiàn)[R/OL].[2013-03-07] http://www.paper.edu.cn/releasepaper/ content/201303-239
[5]黃孝建.多媒體技術(shù)[M].北京:北京郵電大學(xué)出版社,2010