王嘉軍,唐鴻儒,苗飛躍
(揚州大學 能源與動力工程學院,江蘇 揚州 225007)
水下機器人具有重大需求和巨大的市場價值,如:用于泵站流道和葉輪葉片、壩體、橋墩、排沙口、攔污柵、病險水庫等的水下檢查和評估。用于市政飲用水系統(tǒng)中水管、水庫檢查;用于城市排污/排澇管道、下水道檢查;用于科學研究、教學目的的水環(huán)境、水下生物的觀測、研究和教學;用于海洋考察、冰下觀察;還有,隨著當前全球化的安全局勢的惡化,水下機器人可以廣泛應用于安全部門,如:檢查大壩、橋墩上是否安裝爆炸物,船側(cè)、船底是否有炸彈等。這些功能得實現(xiàn)都是基于水下機器人對于周圍環(huán)境的監(jiān)測,所以采用一種高效、實時、簡單的系統(tǒng)來完成環(huán)境監(jiān)測的功能是十分必要的[1]。在做了多種系統(tǒng)的比較后,提出并設計了基于PC104與C8051F120的水下機器人環(huán)境監(jiān)測系統(tǒng)設計方案,該系統(tǒng)能夠完成對環(huán)境的監(jiān)測功能。
圖1是系統(tǒng)總體結構圖,岸上由微型計算機組成,實時顯示視頻圖像和各傳感器數(shù)據(jù);水下由PC104、C8051F120、視頻采集卡、模擬攝像頭、溫濕度傳感器、姿態(tài)傳感器、下潛深度傳感器組成[2]。PC104通過視頻采集卡采集模擬攝像頭的信號,C8051F120采集各傳感器的數(shù)據(jù),通過串口傳輸給PC104,PC104通過臍纜把視頻信號和各傳感器數(shù)據(jù)送給岸上的微型計算機,微型計算機進行實時地顯示。
圖1 系統(tǒng)總體結構圖Fig.1 Structure diagram of the power unit
C8051F120是完全集成的混合信號片上系統(tǒng)型 MCU芯片,全速、非侵入式的在系統(tǒng)調(diào)試接口,高速、流水線結構的8051兼容的 CIP-51內(nèi)核,真正 8位 500 ksps的 ADC,兩個 12位 DAC,具有可編程數(shù)據(jù)更新方式,帶 PGA和 8通道模擬多路開關,2周期的 16 x 16乘法和累加引擎,128KK或64KB可在系統(tǒng)編程的 FLASH存儲器,8448(8K+256)字節(jié)的片內(nèi) RAM,可尋址64KB地址空間的外部數(shù)據(jù)存儲器接口,硬件實現(xiàn)的 SPI、SMBus/I2C和兩個 UART串行接口,5個通用的16位定時器,具有6個捕捉/比較模塊的可編程計數(shù)器/定時器陣列,片內(nèi)看門狗定時器、VDD監(jiān)視器和溫度傳感器[3]。
在本設計中PC104采用的是Em104P-i2909,溫濕度傳感器采用的是DHT11單總線傳感器,姿態(tài)傳感器采用的是SCA100T-D01。下潛深度傳感器采用GB-2100A投入式壓力傳感器。電路使用了芯片內(nèi)部自帶的12位AD轉(zhuǎn)換器、多路模擬選擇開關和基準電壓電路,使電路變得更簡潔實用,并外接22.118 4 MHz晶振,經(jīng)過 9/4倍頻得到 50 MHz。由于溫濕度傳感器和姿態(tài)傳感器都只需接在I/O口,下潛深度傳感器接在模擬量輸入口,故之介紹電路板的電源電路和串口電路。圖2是電源電路原理圖,圖3是串口電路原理圖。
圖2 電源電路原理圖Fig.2 Schematic the power circuit
圖3 串口電路原理圖Fig.3 Schematic serial port circuit
單片機程序軟件采用的是Keil uVision4,并使用C語言編寫程序。程序采用模塊化的設計,分為AD轉(zhuǎn)換程序、定時器中斷程序、串口程序等。系統(tǒng)先對各個模塊進行初始化,等到初始化完成后,系統(tǒng)進入主程序,等待中斷,完成各個模塊的程序[4]。圖4是主程序流程圖。
圖4 主程序流成圖Fig.4 Flow chart the main program
艙內(nèi)主要測量溫度、濕度和水下機器人的姿態(tài)。對于溫濕度傳感器通過單片機的I/O口模擬時鐘信號來進行讀取數(shù)據(jù),對于姿態(tài)傳感器通過單片機的I/O口模擬SPI信號來進行讀取數(shù)據(jù)。艙外主要測量水下機器人下潛的深度。通過C8051F120自帶的12位ADC轉(zhuǎn)換器,并選擇模擬通道1進行下潛深度傳感器的采集,把采集到的模擬量信號轉(zhuǎn)換成數(shù)字量。AD轉(zhuǎn)換器有4種轉(zhuǎn)換啟動方式,由ADC0CN中的ADC0啟動轉(zhuǎn)換方式位(AD0CM1,AD0CM0)的狀態(tài)決定。轉(zhuǎn)換觸發(fā)源有:
1)向 ADC0CN的AD0BUSY 位寫1;
2)定時器3溢出(即定時的連續(xù)轉(zhuǎn)換);
3)外部ADC轉(zhuǎn)換啟動信號的上升沿,CNVSTR0;
4)定時器2溢出(即定時的連續(xù)轉(zhuǎn)換)。
本程序采用向ADC0CN的AD0BUSY位寫1作為啟動方式。當通過向 AD0BUSY寫 ‘1’啟動數(shù)據(jù)轉(zhuǎn)換時,查詢AD0INT位以確定轉(zhuǎn)換是否結束,當轉(zhuǎn)換結束后讀出轉(zhuǎn)換后的數(shù)據(jù)并處理。串口初始化和轉(zhuǎn)換程序如下。
為了使系統(tǒng)達到低功耗的要求,采用定時器中斷來使能各傳感器,并對各傳感器數(shù)據(jù)進行采集和處理[5]。當100 ms定時器中斷到來時,首先對賦予數(shù)據(jù)包的起始位,然后使能ADC,進行下潛深度傳感器數(shù)據(jù)的采集;接著使能姿態(tài)傳感器,讀取姿態(tài)傳感器數(shù)據(jù),并對姿態(tài)傳感器的X軸,Y軸數(shù)據(jù)進行正負的判別;最后使能溫濕度傳感器,進行溫濕度傳感器數(shù)據(jù)的采集并賦予數(shù)據(jù)包結束符。圖5是定時器中斷流程圖。
圖5 定時器中斷流程圖Fig.5 Flow chart the timer interrupt
定時器中斷程序如下。
串口通信模塊主要是負責和工控機進行通信,當PC104需要傳感器數(shù)據(jù)的時候,單片機就通過串口把數(shù)據(jù)發(fā)給PC104,PC104在把信息發(fā)送給岸上的微型計算機,供用戶進行顯示。圖6是串口中斷程序流程圖。
圖6 串口中斷流程圖Fig.6 Flow chart the Serial port interrupt
串口中斷程序如下。
H264采用“回歸基本”的簡潔設計,不用眾多的選項,獲得比MPEG-4好得多的壓縮性能;H.264加強了對各種信道的適應能力,采用“網(wǎng)絡友好”的結構和語法,有利于對誤傳和丟包的處理;H.264應用目標范圍較寬,可以滿足不同速率、不同解析度以及不同傳輸(存儲)場合的需求。
RTP是一種網(wǎng)絡傳輸協(xié)議,RTP協(xié)議不要求底層網(wǎng)絡提供可靠的數(shù)據(jù)傳輸服務,它自身也不對報文丟失、重復和次序顛倒等差錯進行處理。應用程序可以通過檢測RTP報文固定頭中的次序號發(fā)現(xiàn)傳輸過程中的差錯。RTP具有較好的實時性,對于低帶寬實時性要求高的場合很實用[6]。
圖7是視頻結構圖。PC104和微型計算機之間采用的是C/S模式。模擬攝像頭的信號通過視頻采集卡送入到PC104中,PC104通過H264壓縮后,然后通過RTP傳輸給微型計算機,微型計算機接受到視頻數(shù)據(jù)后進行解壓顯示。
圖7 視頻結構圖Fig.7 Structure diagram of the viedo
該系統(tǒng)用于水下機器人周圍環(huán)境的測試。在進行測試時[7],通過按操作員控制器上面的相應按鈕來實現(xiàn)相應的功能。當點擊視頻采集按鈕時,視頻圖像數(shù)據(jù)會顯示;當點擊傳感器數(shù)據(jù)采集按鈕時,傳感器數(shù)據(jù)會顯示。測試界面如圖8所示,圖中的視頻圖像是水下橋墩的墻壁。當發(fā)現(xiàn)數(shù)據(jù)不對時,需要修改相應的電路或者程序。通過實際應用發(fā)現(xiàn),該測試系統(tǒng)測試結果準確并且穩(wěn)定可靠。
圖8 測試界面圖Fig.8 Interface chart of the test system
經(jīng)過試驗測試得知,對于水下機器人艙體和艙內(nèi)的基本環(huán)境監(jiān)測問題,如水下機器人的姿態(tài)、艙內(nèi)的溫濕度、下潛深度和水下景象,傳感器數(shù)據(jù)和視頻數(shù)據(jù)都能夠?qū)崟r地采集,PC104與微型計算機之間的通信能夠準確無誤地傳輸,對于水下機器人周圍環(huán)境的監(jiān)測起到了實時監(jiān)控的效果,為將來水下機器人的自主導航提供了有利的條件。
[1]徐玉如,李彭超.水下機器人發(fā)展趨勢[J].自然雜志,2011(3):125-132.
XU Yu-ru,LI Peng-chao.The development trend of underwater robot[J].Chinese Journal of Nature,2011(3):125-132.
[2]Kim T W,Yuh J.Development of a real-time control architecture for a semiautonomous underwater vehicle for intervention missions[J].Control Engineering Practice,2004(12):1521-1530.
[3]張培仁,孫力.基于C語言系列微控制器原理與應用(C8051F)[M].北京:清華大學出版社,2007.
[4]徐慧民,安德寧,丁玉珍.單片微型計算機原理、接口及應用[M].北京:北京郵電大學出版社,2007.
[5]郭天祥.新概念51單片機C語言教程[M].北京:電子工業(yè)出版社,2009.
[6]丁貴廣,計文平,郭寶龍,等.Visual C++6.0數(shù)字圖像編碼[M].北京:機械工業(yè)出版社,2004.
[7]李軍浩,胡泉偉,吳磊,等.極化/去極化電流測試技術的仿真研究[J].陜西電力,2011(4):1-5.
LI Jun-hao,HU Quan-wei,WU Lei,et al.Simulation study of polarization and depolarization current measurements technology[J].Shaanxi Electric Power,2011(4):1-5.