李文峰,白俊濤
(西安科技大學(xué) 通信與信息工程學(xué)院,陜西 西安 710054)
礦用搜救機(jī)器人主要用于礦難發(fā)生后,先行進(jìn)入井下事故現(xiàn)場進(jìn)行災(zāi)害情況探測和現(xiàn)場數(shù)據(jù)采集,保障救援隊(duì)員生命安全并為制定救援計(jì)劃提供依據(jù)。國內(nèi)外主要集中于救援機(jī)器人移動(dòng)平臺(tái)、控制系統(tǒng)及通信方面的研究,在氣體參數(shù)采集、音視頻感知方面研究較少。音視頻感知大多采用以紅外LED 陣列充當(dāng)補(bǔ)光光源的監(jiān)控?cái)z像頭外部添加笨重隔爆外殼來滿足低照度視頻采集和防爆要求。該方案操作起來簡單,但采用眾多LED 組成的陣列補(bǔ)光以及隔爆形式防爆使得音視頻系統(tǒng)整體功耗上升、體積增大、質(zhì)量增加(3~20 kg)、費(fèi)用高[1],直接導(dǎo)致搜救機(jī)器人行走困難,同等電池容量下工作時(shí)長變短,而且難以進(jìn)行二次開發(fā)。考慮到使用2 個(gè)紅外光源功率較小以及本質(zhì)安全設(shè)備具有安全性好、不用隔爆外殼及其他復(fù)雜結(jié)構(gòu)、質(zhì)量輕、尺寸小、成本低等優(yōu)點(diǎn),采用模塊化思想,利用本質(zhì)安全與嵌入式相關(guān)技術(shù),以Cortex-A8 微處理器S5PV210 為核心設(shè)計(jì)了一款搭載于搜救機(jī)器人本體之上的本安型低照度音視頻系統(tǒng),用于井下高清音視頻數(shù)據(jù)的采集、壓縮、存儲(chǔ)、播放以及傳輸。
以重慶多朋科技有限公司的ZRK 礦用機(jī)器人為載體進(jìn)行了音視頻系統(tǒng)的開發(fā),系統(tǒng)主要包括主處理器模塊、低照度視頻采集模塊、音頻采集模塊、存儲(chǔ)顯示模塊以及通信接口模塊。
系統(tǒng)工作流程:USB 攝像頭和拾音器產(chǎn)生模擬視音頻信號(hào),分別經(jīng)過TVP5150 和WM8960 視音頻編解碼芯片生成符合ITU-BT656 標(biāo)準(zhǔn)的數(shù)字視頻信號(hào)和I2S 準(zhǔn)的數(shù)字音頻信號(hào),再經(jīng)過S5PV210 處理器進(jìn)行壓縮編碼后獲得 H.264 視頻數(shù)據(jù)流和WAV 音頻數(shù)據(jù)流,壓縮后的音視頻數(shù)據(jù)用于本地存儲(chǔ)以及通過網(wǎng)口發(fā)送至機(jī)器人,經(jīng)由機(jī)器人更為強(qiáng)大的通信模塊傳送至遠(yuǎn)端。
礦用搜救機(jī)器人視音頻系統(tǒng)包含主控模塊和外圍模塊。主控模塊是S5PV210 ARM 控制平臺(tái)[2];外圍模塊包括視頻模塊、音頻模塊、存儲(chǔ)與顯示模塊、通信接口模塊和本安電源適配模塊。其中本安電源適配模塊為各芯片提供相應(yīng)電壓;視頻模塊用于低照度環(huán)境視頻的采集、解碼、壓縮與傳輸;音頻模塊用于聲音的采集、編碼、播放與傳輸;存儲(chǔ)模塊用于存儲(chǔ)音視頻數(shù)據(jù);通信接口模塊實(shí)現(xiàn)與機(jī)器人本體之間的數(shù)據(jù)傳輸以及系統(tǒng)調(diào)試。
系統(tǒng)采用機(jī)器人本體提供的6~8.4 V 電源供電,由于該系統(tǒng)內(nèi)部資源主要用到5、3.3 V 電壓,因此需要通過電壓轉(zhuǎn)換電路實(shí)現(xiàn)降壓。本安電源適配模塊采用DC/DC 變換器的方案設(shè)計(jì),利用TPS62143、TPS621422 種 芯 片 實(shí) 現(xiàn) DC-DC 5 V 和3.3 V 電源轉(zhuǎn)換。
基于TPS62143 設(shè)計(jì)的電壓轉(zhuǎn)換電路如圖1,輸入電壓 VDDBAT 的范圍為 6~8.4 V,C43為輸入濾波電容,C45連接至SS/TR 引腳是實(shí)現(xiàn)芯片的軟啟動(dòng)功能,通過調(diào)節(jié)C45的容值大小來改變軟啟動(dòng)時(shí)間;通過FSW 引腳進(jìn)行工作頻率選擇。由于Buck 變換器的工作頻率降低,效率得到提高,但電感值增加,對(duì)本質(zhì)安全設(shè)計(jì)不利,因此將FSW 引腳拉低[3-4],芯片工作在2.5 MHz 的頻率,輸出濾波電容C44為22 μF,電感大小為 2.2 μH,滿足本質(zhì)安全要求。
視頻模塊由 1/2.7 inch CMOS USB 攝像頭、2 個(gè)850 nm 紅外LED 輔助光源以及BH1750 光強(qiáng)傳感器組成。BH1750 光照度采集電路與處理器相連,通過I2C 總線將采集到的光照強(qiáng)度數(shù)據(jù)傳送給處理器。考慮到電壓驅(qū)動(dòng)型電路電壓微弱變化會(huì)引起電流的巨變,嚴(yán)重影響半導(dǎo)體二極管使用壽命,所以采用。PT4115 恒流源驅(qū)動(dòng)電路[5]用于驅(qū)動(dòng)補(bǔ)光光源,
處理器根據(jù)獲取的光照強(qiáng)度數(shù)據(jù)來改變自身輸出PWM 波的占空比來改變恒流源驅(qū)動(dòng)電路的輸出電流值,從而改變補(bǔ)光光源功率。照度采集和補(bǔ)光電路原理圖如圖2。
圖1 TPS62143 電壓轉(zhuǎn)換原理Fig.1 TPS62143 voltage conversion principle
圖2 照度采集和補(bǔ)光電路原理圖Fig.2 Schematic diagram of illumination acquisition and lighting circuit
攝像頭產(chǎn)生PAL 格式的模擬視頻信號(hào),經(jīng)過TVP5150 視音頻編解碼芯片生成符合ITU-BT656 標(biāo)準(zhǔn) 的 8 位 4:2:2 YUV 數(shù) 字 視 頻 信 號(hào) , 再 經(jīng) 過S5PV210 處理器內(nèi)部的MFC 硬件編解碼器進(jìn)行壓縮編碼后獲得H.264 視頻數(shù)據(jù)流,壓縮后的音視頻數(shù)據(jù)用于本地存儲(chǔ)以及傳送至遠(yuǎn)端,通過I2C 總線對(duì)視頻解碼芯片進(jìn)行配置,完成對(duì)輸出數(shù)據(jù)格式、對(duì)比度、飽和度等參數(shù)選擇。視頻采集方案如圖3。
音頻模塊采用“MIC+音頻編解碼器+揚(yáng)聲器”的方法實(shí)現(xiàn)音頻的采集和播放。以WM8960 音頻編解碼芯片為核心設(shè)計(jì)音頻電路,I2S 總線用于編碼后數(shù)據(jù)傳輸,I2 C 總線用于音頻控制。WM8960 音頻編解碼芯片內(nèi)置24 bit 的A/D 和D/A 轉(zhuǎn)換器實(shí)現(xiàn)高精度數(shù)模和模數(shù)轉(zhuǎn)換,且WM8960 內(nèi)置的D 類功率放大器,比一般的A、B 類功放效率提高40%[6],具有體積小、信噪比高的優(yōu)點(diǎn)。設(shè)計(jì)采用靈敏度為-52 dB 的電容式駐極體作為聲電轉(zhuǎn)換器件和8 Ω、1 W的喇叭電聲轉(zhuǎn)換器件,實(shí)現(xiàn)聲電和電聲的轉(zhuǎn)換。210_Xi2sCDCLK0、210_Xi2sSCLK0、210_Xi2LRCK0、210_Xi2sSDO0_0 和 210_Xi2sSDI0 構(gòu)成 I2S 接口,用于音頻信號(hào)的傳輸,210_I2C_SDA0 和210_I2C_SCL0構(gòu)成I2C 總線接口用于控制信號(hào)的傳輸,通過I2C總線配置內(nèi)部的相關(guān)寄存器進(jìn)而控制音頻音量、關(guān)閉內(nèi)部未使用的模塊電源等操作。
圖3 視頻采集方案Fig.3 Video capture solution
通信接口模塊負(fù)責(zé)音視頻及其他數(shù)據(jù)的傳輸,系統(tǒng)采用有線/無線的方式實(shí)現(xiàn)通信。有線通信中S5PV210 處理器通過快速以太網(wǎng) MAC 控制器DM9000 將數(shù)據(jù)發(fā)送給網(wǎng)絡(luò)變壓器,再通過RJ45 將數(shù)據(jù)轉(zhuǎn)發(fā)出去;無線通信中直接通過LBWA18HEPZ無線模塊進(jìn)行數(shù)據(jù)的收發(fā)。
DM9000 網(wǎng)絡(luò)控制器,CMD 引腳與 S5PV210 的ADDR2 連接,決定傳輸?shù)氖菙?shù)據(jù)還是指令(為低時(shí)數(shù)據(jù)總線上傳輸?shù)刂沸盘?hào),為高時(shí)傳輸數(shù)據(jù)信號(hào))。CS 是片選信號(hào),與 S5PV210 的 CSn1 連接,CSn1 的基地址為:0x88000000,而DM9000 的IO 基地址為0x300,結(jié)合CMD 引腳的連接情況,因此DM9000 的數(shù)據(jù)地址接口為0x88000304,命令接口地址為0x88000300,S5PV210 通過數(shù)據(jù)口和地址口,并結(jié)合讀寫信號(hào)線可以對(duì)DM9000 進(jìn)行讀寫操作。HR911105 是自帶網(wǎng)絡(luò)變壓器的RJ45 接口,其主要作用是信號(hào)傳輸、阻抗匹配、波形修復(fù)、信號(hào)雜波抑制和電壓隔離等。
存儲(chǔ)模塊采用閃迪公司生產(chǎn)的存儲(chǔ)密度較高的32G TF 卡,系統(tǒng)圖像傳感器采集的640×480 分辨率的彩色畫面,其每幀圖像大小為4 KB,按每秒25 幀計(jì)算,2 路視頻則每小時(shí)需要720 MB 的空間,連續(xù)工作4 h,需要3 GB 的空間,所選內(nèi)存足夠存儲(chǔ)機(jī)器人連續(xù)工作4 h 所產(chǎn)生的數(shù)據(jù)。
顯示器件是功率消耗較大的器件,選擇低功耗的顯示器件可以降低整體功耗。TFT 顯示屏由于其低功耗、體積小、可觸摸操控等優(yōu)點(diǎn)成為可移動(dòng)設(shè)備的首選方案,系統(tǒng)顯示模塊采用統(tǒng)寶光電設(shè)計(jì)生產(chǎn)的TD035STEE1 LTPS TFT-LCD 顯示屏,屏幕尺寸大小為3.5 英寸、分辨率為640×480,采用 6S1P WLED 作為背光源,功耗僅為430 mW。
1)嵌入式操作系統(tǒng)。系統(tǒng)采用內(nèi)核為Linux3.0.8的Linux 操作系統(tǒng)。Linux 因具開源、免費(fèi)、內(nèi)核可裁剪、資源占用少、可移植、穩(wěn)定性高、安全性強(qiáng)等特點(diǎn)而被廣泛應(yīng)用于嵌入式設(shè)計(jì)開發(fā)當(dāng)中[7-8]。
2)硬件驅(qū)動(dòng)程序。選用的Linux 的內(nèi)核中帶有CMOS 傳感器的 USB 控制器 OV511 和 Framebuffer設(shè)備的驅(qū)動(dòng)程序,可以縮短開發(fā)周期。在Linux 內(nèi)核基礎(chǔ)上進(jìn)行BH1750、WM8960、無線網(wǎng)卡、顯示屏等外為設(shè)備的驅(qū)動(dòng)移植與修改,并進(jìn)行內(nèi)核裁剪。
1)視頻采集。系統(tǒng)視頻采集應(yīng)用層程序的開發(fā)主要利用Video4linux2(V4L2)驅(qū)動(dòng)框架為上層應(yīng)用提供的一套通用的API 接口函數(shù)來訪問底層視頻設(shè)備[9]。V4L2 對(duì)上層應(yīng)用屏蔽了底層硬件的差異,用戶空間對(duì)視頻設(shè)備的操作只需要通過ioctl()、open()等函數(shù)就可以實(shí)現(xiàn)。利用V4L2 完成USB 攝像頭圖像采集應(yīng)用程序,打開設(shè)備,獲取視頻設(shè)備能力并設(shè)置參數(shù),申請(qǐng)幀緩沖,申請(qǐng)物理內(nèi)存,開始采集,結(jié)束并關(guān)閉設(shè)備。視頻采集流程圖如圖4。
2)視頻播放。視頻顯示模塊應(yīng)用層程序利用Framebuffer(幀緩沖)接口來實(shí)現(xiàn)視頻顯示。Framebuffer 是Linux 系統(tǒng)為顯示設(shè)備提供的1 個(gè)接口[10],用于從包含完整的幀數(shù)據(jù)的1 個(gè)內(nèi)存緩沖區(qū)中來驅(qū)動(dòng)1 個(gè)視頻顯示設(shè)備,它將顯示緩沖區(qū)抽象,屏蔽圖像硬件的底層差異,供用戶態(tài)進(jìn)程實(shí)現(xiàn)直接寫屏的抽象對(duì)象,可以被看做是顯存的1 個(gè)映像,用戶只需要通過應(yīng)用程序直接讀寫Framebuffer 內(nèi)容就可以完成對(duì)屏幕的顯示控制。視頻播放流程圖如圖5。
圖4 視頻采集流程圖Fig.4 Video capture flow chart
圖5 視頻播放流程圖Fig.5 Video playback flow chart
3)音頻采集與編碼。音頻采集利用ALSA 聲卡體系所提供的API 函數(shù)實(shí)現(xiàn),它是高級(jí)的Linux 音頻系統(tǒng)接口,其擁有的alsa-lib 開發(fā)庫為應(yīng)用層程序的設(shè)計(jì)提供了方便。利用接口采集來的是模擬音頻信號(hào),經(jīng)過WM8960 芯片轉(zhuǎn)化后,成為需要的數(shù)字音頻原始信息,清晰度較高。音頻采集流程分4 步:打開1 個(gè)錄音接口,設(shè)置音頻流的硬件參數(shù),從麥克風(fēng)讀取數(shù)據(jù),關(guān)閉錄音接口。從接口讀出來的RAW格式數(shù)據(jù)由于數(shù)據(jù)量較大,所以采用G711 算法進(jìn)行壓縮。
4)TCP 數(shù)據(jù)通信??紤]到獲取連續(xù)、穩(wěn)定、可靠的音視頻數(shù)據(jù)對(duì)井下救援工作的重要性,系統(tǒng)選用TCP 協(xié)議來傳輸經(jīng)過壓縮的音視頻數(shù)據(jù)。TCP 是一種提供面向連接的、可靠的字節(jié)流服務(wù)的傳輸控制協(xié)議[11-12],收發(fā)雙方需要經(jīng)過3 次“握手”成功建立1個(gè)TCP 連接后,才能進(jìn)行數(shù)據(jù)流的傳輸。系統(tǒng)與機(jī)器人本體路由器之間使用工業(yè)以太網(wǎng)作為主連接,WiFi 做為備用連接,設(shè)置系統(tǒng)與機(jī)器人路由器在同一網(wǎng)段的IP 地址,進(jìn)行音視頻的實(shí)時(shí)傳輸,使數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性得到了保障。
設(shè)計(jì)了一款基于嵌入式Linux 的礦用搜救機(jī)器人音視頻系統(tǒng),系統(tǒng)通過紅外LED 補(bǔ)光實(shí)現(xiàn)了井下低照度環(huán)境下高清音視頻的采集,并經(jīng)過壓縮編碼進(jìn)行本地存儲(chǔ)和傳送。介紹了系統(tǒng)工作流程和軟硬件設(shè)計(jì),系統(tǒng)采用了成熟的嵌入式平臺(tái)和較少的補(bǔ)光光源,利用了linux 可裁剪性,具有成本低、構(gòu)造簡單、方便維護(hù)、通用性強(qiáng)、可二次開發(fā)等特點(diǎn)。