何海波
(江蘇自動化研究所,江蘇 連云港 222061)
?
基于i.MX35的挖掘機視頻監控系統設計
何海波
(江蘇自動化研究所,江蘇 連云港 222061)
挖掘機等工程機械需要對施工現場的視覺盲區進行視頻監控,確保作業安全。為了滿足安全需求,研制了基于i.MX35的挖掘機視頻監控系統,使用i.MX35作為視頻主處理器、ADV7180作為NTSC/PAL攝像頭輸出視頻的解碼芯片、eMMC或PATA接口固態硬盤作為視頻存儲介質,實現對挖掘機等工程機械作業現場的視頻監控、記錄與回放等功能,能夠顯著提高生產效率、保證作業安全,可以廣泛應用于挖掘機等工程機械的控制系統中。
i.MX35;視頻采集;ADV7180;V4L2
隨著計算機技術和集成電路技術的不斷進步,視頻采集與處理技術取得了長足的發展。現在各行各業對安全生產日益重視,視頻監控技術已經被廣泛應用于各種安全監控場合。挖掘機是功能典型、結構復雜的工程機械,被廣泛應用于交通基礎設施、工程建筑等行業,并向著大型化、復雜化的方向不斷發展。為了減少因視角盲區、視線頻繁轉換等原因造成操作失誤而導致的人員傷亡和財產損失,對作業現場進行實時視頻監控已經成為新一代挖掘機的迫切需求[1-2]。
針對挖掘機等工程機械需要對作業現場進行視頻監控的需求,設計了一種以Freescale公司高性能多媒體應用處理器i.MX35為核心的視頻監控系統,通過視頻解碼芯片ADV7180對NTSC/PAL制式攝像頭輸出的模擬視頻信號進行解碼,并將解碼后的數字信號通過i.MX35的CSI(Camera Sensing Interface)接口讀入CPU,完成視頻信號的實時顯示、記錄與存儲,從而實現對作業現場的實時視頻監控,提高生產效率、保證作業安全。
挖掘機視頻監控系統主要由主處理器模塊、電源管理模塊、存儲器模塊、視頻采集模塊、顯示模塊和通信接口模塊等功能模塊組成,其系統總體原理框圖如圖1所示。
主處理模塊由i.MX35主處理器和晶振、啟動配置、上電復位等外圍電路構成,負責采集ADV7180輸出的YUV信號,轉換后顯示在LCD顯示屏上,并進行編碼和壓縮后,記錄在板載eMMC或PATA接口的SSD/CF等存儲介質中。電源管理模塊將車載蓄電池輸出的12/24 V電壓轉換為+5 V,+3.3 V,+1.8 V等系統所需的各種內部電壓。存儲器模塊通過i.MX35的EMI接口外擴DDR2 SDRAM和NAND Flash存儲器,前者用作系統RAM,后者用作程序存儲器。視頻采集模塊由ADV7180將攝像頭輸出的NTSC/PAL制式的模擬信號轉換為YUV信號,視頻監控系統包含2路視頻輸入,通過I2C總線選擇其中一路作為當前輸入信號。顯示模塊將i.MX35輸出的TTL電平的視頻信號轉換為LVDS信號后,顯示在LVDS液晶顯示屏上,PWM用于控制顯示亮度,GPIO用于控制背光的開/關。通信接口模塊主要包括RS-232和以太網接口,用于應用程序的開發與調試。

圖1 視頻監控系統原理框圖
2.1 i.MX35多媒體應用處理器
i.MX35是Freescale公司基于ARM1136JF-S內核的高性能多媒體應用處理器[3],主頻高達532 MHz,擁有16 kbyte的一級指令緩存、16 kbyte的一級數據緩存和128 kbyte的二級緩存,集成了高性價比的DDR2控制器、矢量圖形硬件加速器(GPU)、獨立圖像處理單元(IPU)、矢量浮點運算協處理器(VFP)以及基于RISC的DMA控制器(SDMA)等,可以提供先進的圖像和視頻處理功能。i.MX35擁有豐富的外設資源,包括外部存儲器接口(EMI)、數字攝像頭接口(CSI)、高分辨率LCD控制器、eSDHC接口、并行ATA接口、10/100 Mbit/s自適應以太網控制器(FEC)、異步串行接口(UART)、I2C接口和GPIO等,極大地簡化了視頻監控系統的開發。
i.MX35的CSI接口可以從攝像頭或TV解碼器捕獲數據,由IPU和GPU進行預處理,將YUV信號轉換為RGB格式,輸出到LCD顯示屏上。i.MX35的LCD控制器經過優化并支持24位WVGA顯示屏,可以為視頻監控系統提供高分辨率的視頻顯示。IPU和GPU提供了強大的圖像處理能力,包括色彩空間轉換、2D圖像加速、MPEG-4硬件編解碼、混合圖形層和視屏層等,可以最大限度降低CPU負荷,提高顯示性能。視頻監控系統對采集的視頻圖像進行壓縮,以MPEG-4編碼記錄在板載eMMC或PATA接口的SSD/CF中,從而節省存儲空間。
2.2 電源管理模塊
電源管理模塊比較復雜,需要將主機蓄電池的輸出電壓轉換為i.MX35內部所需的多種供電電壓,同時還要為LCD顯示屏提供+12 V背光電源。根據挖掘機等工程機械的實際電源電路需求,視頻監控系統的電源方案原理圖如圖2所示。

圖2 電源電路原理框圖
外部輸入的9~32 V蓄電池電壓首先通過LCT3789轉換成+12 V電壓,然后利用LTC3633的第一通道轉換成+5 V電壓,再由5 V電壓分壓得到+1.35 V和1.8 V電壓;利用1.8 V電壓使能LTC3633的第二通道的Enable引腳,從而延遲得到3.3 V電壓,再由3.3 V電壓使能RT9179輸出,得到1.5 V電壓。其中,LTC3789為Linear公司的buck-boost型開關電源芯片,輸入電壓范圍為4~38 V,轉換效率最高可達98%,可穩定輸出12 V/5 A。LTC3633A-2是Linear公司的雙通道開關電源,每個通道可以輸出3 A的電流,可以用來輸出+5 V和+3.3 V電壓。RT8010是RICHTEK公司的產品,輸入范圍從2.5~5.5 V,最大可輸出1 A的電流,分別用來輸出1.8 V和1.35 V電壓。RT9179輸入電壓范圍3~5.5 V,輸出電流500 mA,用來為i.MX35處理器的PVDD和MVDD供電。
2.3 ADV7180視頻轉換電路
工程機械中通常使用NTSL/PAL制式的模擬攝像頭,其輸出的模擬信號必須經過模數轉換后才能輸入至i.MX35的IPU進行后續處理。ADV7180是Analog Devices公司推出一款10位、4倍過采樣的高性能視頻圖像解碼器[4-7],最多支持6路復合視頻信號復用輸入,可以自動檢測輸入信號的編碼格式,將NTSC/PAL制式的模擬視頻信號轉換成i.MX35的CSI接口支持的與ITU-R BT.656標準兼容的16位分量視頻圖像數字信號(YCbCr4∶2∶2)。ADV7180視頻轉換電路的電原理圖如圖3所示。
ADV7180的視頻像素輸出引腳P[15:0]連接到i.MX35的CSI接口的CSI_D[15:0],LLC、VS/FIELD和HS引腳分別連接到CSI_PIXCLK、CSI_VSYNC和CSI_HSYNC。本設計只使用了2個輸入通道,未使用的通道由0.1 μF電容接地。i.MX35通過I2C訪問ADV7180的控制和狀態寄存器,ALSB引腳選擇ADV7180在I2C總線上的設備地址,設計中ALSB下拉到GND,選擇的I2C設備地址為0x20。i.MX35通過GPIO控制ADV7180的復位引腳(RESET#)和掉電引腳(PWRDWN#)。i.MX35的CSI不需要ADV7180的中斷輸出,因而中斷輸出引腳(INTRQ#)直接上拉到3.3 V電源。ADV7180的輸入ADC將1.0 V模擬輸入量化為10位數字量,量化結果可進行增益校正。設計中在ADV7180的輸入引腳前添加電阻分壓網絡,以將輸入視頻信號限制在ADC的有效范圍內。

圖3 ADV7180視頻轉換電路原理圖
ADV7180對PCB布線有特殊的要求[4],模擬輸入信號的長度應盡可能短,并盡量保持75 Ω的走線阻抗以減少信號反射;需要在每個電源引腳和電源層之間放置0.1 μF和10 nF的去耦電容,并放置在和ADV7180同一層,走線長度盡可能短(不應超過0.5 cm);放置一個外部PLL環路濾波器到ELPF引腳,并保持與ADV7180同一層,且走線盡可能短;為了將每個數字輸出信號的驅動限制在15 pF以內,走線應盡可能短并減少過孔,可以在數字輸出信號上靠近ADV7180處添加30~50 Ω的串聯電阻以抑制反射、減少EMI并減少芯片內的電流尖峰;VREFN與VREFP之間的電路以及晶振電路的走線也應該足夠短,且與ADV7180在同一層。
2.4 視頻存儲電路
視頻存儲電路由板載eMMC和通過PATA接口外擴的SSD/CF等組成,其電原理圖如圖4所示。挖掘機等工程機械工況較為惡劣,視頻存儲電路需要綜合考慮抗干擾、抗振動和溫度等級等要求。設計中首選Micron公司的32 Gbyte大容量工業級eMMC芯片MTFC32GJDDQ作為主要存儲介質,并使用經過加固處理的PATA接口外擴SSD/CF作為輔助存儲介質,用于存儲經過MPEG-4編碼壓縮的視頻數據。eMMC通過i.MX35的eSDHC接口擴展,使用8位數據線,時鐘頻率為52 MHz,提供高達416 Mbit/s的數據傳輸率。視頻數據僅在特殊工況時才需要進行記錄,配合MPEG-4編碼壓縮算法,32 Gbyte容量能夠基本滿足視頻監控系統數據存儲的需求,在需要更大容量的情形則可以使用外擴的SSD/CF等存儲介質。
3.1 軟件總體架構
視頻監控系統的軟件基于Linux的V4L2架構開發,由設備驅動層、操作系統接口層和應用層等部分構成,其總體架構如圖5所示。V4L2(Video for Linux 2,V4L第二版)是Linux下廣泛使用的一套視頻驅動開發框架[8-10],定義了Linux下視頻驅動的標準編程接口(API),使得應用程序可以使用統一的API訪問不同的視頻設備,從而簡化驅動程序和應用程序的開發。V4L2規范可以支持多種視頻設備,提供了視頻采集、視頻輸出、視頻覆蓋/預覽、視頻輸出覆蓋、編解碼等接口。視頻監控系統需要處理視頻的采集、輸出覆蓋和編解碼等,基于V4L2進行軟件開發可以降低開發難度,節約開發時間,并提高了系統的穩定性。
設備層驅動程序的開發較為復雜,需要在i.MX35的官方Linux BSP開發包的基礎上,根據視頻監控系統的硬件情況進行移植與適配。視頻監控應用程序的開發相對簡單,通過Linux虛擬文件系統接口對攝像頭、幀緩沖區和存儲設備進行訪問,即可完成視頻的采集、存儲與回放。

圖4 視頻存儲電路原理圖

圖5 視頻監控系統的軟件框架圖
3.2 IPU驅動程序設計
IPU用于完成視頻和圖像的處理,并實現與視頻輸入設備和顯示輸出設備的接口。IPU驅動程序由設備驅動和底層公共例程庫兩部分組成,設備驅動包括幀緩沖區設備驅動、V4L2捕獲設備驅動和V4L2輸出設備驅動,底層公共例程庫為設備驅動提供IPU硬件寄存器的訪問接口。IPU的幀緩沖區設備驅動通過IDMA從幀緩沖區內存讀取像素數據并發送給LCD顯示器。幀緩沖區設備對圖形硬件的顯存進行抽象,允許應用程序通過“/dev/fb*”訪問硬件顯存,而不需要知道底層硬件寄存器細節。視頻監控系統通過i.MX35的SDC控制同步LCD顯示屏,IPU幀緩沖區驅動實現了前景和背景兩個幀緩沖區設備,其中背景用于一般圖形顯示,前景用于攝像頭的視頻顯示。V4L2捕獲設備驅動包括兩個接口,捕獲接口使用IPU的預處理ENC通道來記錄YCrCb視頻流,覆蓋接口使用后處理VF通道直接將預覽視頻顯示在SDC的前景上而無需CPU干預。V4L2輸出設備驅動使用IPU后處理例程來處理視頻輸出,驅動實現了標準V4L2輸出設備API。i.MX35的官方Linux BSP已經包含了完善的IPU驅動,設計中需要在板級文件中添加相應的平臺設備,配置LCD時序參數,并在內核配置中添加相應的IPU驅動程序。
3.3 ADV7180驅動程序設計
ADV7180作為圖像傳感器(Camera Sensor)設備掛接到V4L2子系統,V4L2通過ioctl回調例程對其進行訪問。視頻監控系統包含2路視頻輸入,分別連接到AIN1和AIN4,由ADV7180的輸入控制寄存器(地址為0x00)的INSEL[3:0]選擇輸入通道和視頻格式。INSEL[3:0]配置為0000b和0011b時分別選擇復合視頻信號(CVBS)AIN1和AIN4,配置為0110b時AIN1和AIN4共同組成S-Video輸入。ADV7180內部集成了模擬多路器,以允許同時連接多個視頻信號到解碼器,驅動需要根據所選擇的視頻輸入配置ADC切換寄存器1和2(地址分別為0xC3、0xC4)。視頻監控系統使用了16位CSI接口,驅動程序需要通過ADV7180的輸出控制寄存器(地址為0x03)將OF_SEL[3:0]配置為0010b。另外,ADV7180的其他寄存器也需要配置為合適的值[4,6]。
驅動程序通過I2C訪問ADV7180的控制和狀態寄存器,并通過GPIO控制ADV7180的復位引腳和掉電引腳。在板級文件中需要添加ADV7180的平臺設備,相應的代碼片斷如下:
static void adv7180_pwrdn(int pwrdn){
黨的十八屆三中全會把推進國家治理體系和治理能力現代化作為全面深化改革的總目標提出來,表明我們黨對社會主義現代化的認識提升到了一個新的高度,這必將極大地推動我國的治理體系向著制度化、規范化、程序化、科學化邁進。從“管理”到“治理”,是一次政府、市場、社會從配置的結構性變化引發現實的功能性變化再到民主參與的主體性變化的制度型塑,無論是從思想理念、方式方法,還是從技術手段上都對社會治理創新提出了全新的挑戰與要求,需要我們從更寬廣宏大的視野加以審視把握。
…
}
static void adv7180_reset(void){
…
}
static struct mxc_tvin_platform_data adv7180_data={
…
.pwdn=adv7180_pwrdn, //ADV7180的掉電控制
};
static struct i2c_board_info jrcd570_camera={
.type="adv7180",
.addr=0x20, //對應的l2C讀,寫地址分別為0x41和0x40
.platform_data=(void*)&adv7180_data,//平臺設備私有數據
};
static viod_init jrcd570_board_init(void){
…
i2c_register_board_info(1,&jrcd570_camera,1);//注冊平臺設備
…
}
3.4 應用程序設計
Linux中所有外設都被視作特殊的“設備文件”,視頻監控系統的應用程序可以像訪問普通文件一樣通過open、ioctl、read和write等Linux系統調用對視頻設備“/dev/video*”和顯示設備“/dev/fb*”進行操作,實現視頻的采集、顯示、記錄與回放。
視頻采集與顯示程序的流程如圖6所示。應用程序首先打開用于顯示視頻的幀緩沖區設備,獲取配置信息后,調整相關參數,設置顯示窗口的大小、ALPHA混合值和色鍵(Color Key)等信息。然后打開視頻設備,查詢設備能力,選擇視頻輸入,設置視頻數據格式、視頻標準、視頻裁減窗口大小以及視頻的亮度、飽和度、色平衡等參數。視頻設備配置完成后,應用程序就可以根據需要使用名為VIDIOC_OVERLAY的ioctl啟動或停止視頻的采集。視頻監控系統的IPU驅動使用覆蓋(Overlay)方式直接在SDC的前景幀緩沖區設備上顯示視頻圖像,顯示操作完全在內核驅動中完成,無須像其他V4L2應用程序那樣先讀取采集結果、進行格式轉換、然后再輸出到幀緩沖區設備,因而CPU占用率更低、視頻顯示更流暢、編程效率也更高。

圖6 視頻采集與顯示程序的流程圖
視頻的記錄與回放比較簡單,視頻監控系統的IPU驅動實現了特殊的接口,用于簡化應用程序編程。當需要進行視頻記錄時,應用程序通過ioctl系統調用設置用于接收視頻數據的緩沖區隊列,然后通過名為VIDIOC_CAPTURE的ioctl啟動虛擬捕獲。IPU驅動在采集與顯示視頻的同時,將顯示內容通過硬件編碼后由IDMA拷貝到接收緩沖區,完成緩沖區填充時再通知應用程序將其存儲到文件中。回放視頻時,應用程序將視頻從文件中讀入數據緩沖區,再由IPU驅動進行解碼并直接以覆蓋方式顯示在SDC的前景幀緩沖區設備上。
本設計實現了一種基于i.MX35的挖掘機視頻監控系統,詳細介紹了系統的軟硬件設計過程。在硬件方面,設計了適合于工程機械的i.MX35電源供電方案,并給出了詳細的ADV7180硬件設計方法。在軟件方面,基于Linux V4L2框架,充分利用i.MX35先進的圖像和視頻處理功能,將視頻采集與顯示完美的結合起來,使用IPU直接覆蓋方式實現高效的視頻顯示;并利用硬件加速功能進行視頻編解碼和數據壓縮,配合大容量高速存儲器介質,實現了視頻圖像的實時記錄與回放。設計的視頻監控系統具有啟動速度快、分辨率高、存儲容量大、圖像清晰、性能穩定可靠等優點,能夠滿足挖掘機等工程機械對作業現場進行視頻安全監控的需求,顯著提高生產效率、保證作業安全,可以廣泛應用于挖掘機等工程機械的控制系統中。
[1]羅文星,郭剛.基于WLAN的挖掘機作業情況視頻監控系統的設計與實現[J].機械制造與自動化,2012,41(3):110-112.
[2]徐殿魁.工程車輛視頻處理與圖形終端硬件平臺的設計與實現[D].南京:南京理工大學,2010.
[3]Freescale Semiconductor.i.MX35 reference manual Rev.3[EB/OL].[2014-09-30].www.freescale.com.
[4]Analog Devices, Inc.ADV7180 datasheet,Rev.I[EB/OL].[2014-08-30].www.analog.com.
[5]藺志強,孟令軍,彭晴晴.基于ADV7180的視頻圖像實時采集系統的設計[J].電視技術,2011,35(17):36-38.
[6]吳君欽,宋健,劉昊.基于S3C6410和ADV7180的嵌入式視頻采集系統設計與實現[J].計算機工程與科學,2012,34(12): 115-119.
[7]廖諍,張攀,顏悅.ADV7180在圖像采集嵌入式系統中的應用[J].電視技術,2012,36(S2):231-233.
[8]Freescale Semiconductor.i.MX35 PDK Linux reference manual [EB/OL].[2014-08-30].www.freescale.com.
[9]黃俊偉,巴義.基于V4I2移動視頻監控系統的研究與設計[J].電視技術,2012,36(17):159-162.
[10]徐家,陳奇.基于V4L2的視頻設備驅動開發[J].計算機工程與設計, 2010,31(16):3569-3572.
Design of Video Surveillance System for Excavators Based on i.MX35
HE Haibo
(JiangsuAutomationResearchInstitute,JiangsuLianyungang222061,China)
Excavators and other construction machineries need field video monitoring to eliminate blind spots and ensure safe operation while they are working.To meet the security needs of excavators, the design of a video surveillance system based on i.MX35 is introduced, which uses i.MX35 as the main processor, ADV7180 as the decoder for video output of NTSC/PAL cameras, and eMMC or SSD with PATA interface as the video storage medium.The designed system has the capabilities of video monitoring, recording and playing back.It can be widely used in the control systems of excavators to significantly improve productivity and ensure safety.
i.MX35; video capture; ADV7180; V4L2
國家自然科學基金項目(61303045);江蘇省自然科學基金項目(BK2012237)
TP23
A
10.16280/j.videoe.2015.07.010
2014-09-30
【本文獻信息】何海波.基于i.MX35的挖掘機視頻監控系統設計[J].電視技術,2015,39(7).
何海波(1981— ),碩士,工程師,主要從事工程機械控制器與顯示終端的研究與開發工作。
責任編輯:閆雯雯