李超雄,杭亦文,萬(wàn) 立
(1.武漢理工大學(xué)自動(dòng)化學(xué)院,湖北武漢 430070;武漢大學(xué)電氣工程學(xué)院,湖北武漢 430070)
隨著嵌入式技術(shù)和網(wǎng)絡(luò)技術(shù)的日益成熟,視頻監(jiān)控正朝高清化、智能化和便捷化的方向發(fā)展,在整個(gè)視頻監(jiān)控系統(tǒng)中所需處理的數(shù)據(jù)量也大大增加,這對(duì)傳統(tǒng)視頻監(jiān)控系統(tǒng)中的視頻處理和傳輸模式提出了新的要求和挑戰(zhàn)。
目前電力載波(power line communication,PLC)技術(shù)已經(jīng)發(fā)展成熟,多家國(guó)際芯片廠商已經(jīng)推出14 Mb/s、85 Mb/s和200 Mb/s速率的PLC芯片,該技術(shù)逐步從以前單一的遠(yuǎn)程抄表走向多媒體應(yīng)用等更多的方面。采用電力載波通信技術(shù),以電力線(xiàn)作為視頻監(jiān)控系統(tǒng)的接入和傳輸介質(zhì),具有成本低、不用額外布線(xiàn)和安裝方便等優(yōu)點(diǎn)[1]。
根據(jù)傳統(tǒng)視頻監(jiān)控和網(wǎng)絡(luò)分布的不足,以及電力載波技術(shù)特有的優(yōu)勢(shì),筆者提出了基于OMAP5912雙核處理器和電力載波的視頻監(jiān)控系統(tǒng)。設(shè)計(jì)中利用雙核處理器的ARM端進(jìn)行系統(tǒng)的調(diào)度與控制,DSP端進(jìn)行視頻數(shù)據(jù)的處理,并采用電力載波模塊對(duì)采集到的視頻數(shù)據(jù)進(jìn)行實(shí)時(shí)傳輸。
圖1 系統(tǒng)整體方案框圖
系統(tǒng)整體方案框圖如圖1所示。該系統(tǒng)主要包括3大部分:OSK(OMAP starter kit)控制系統(tǒng)、PLC數(shù)據(jù)傳輸模塊和上位機(jī)監(jiān)控。OSK控制系統(tǒng)主要負(fù)責(zé)嵌入式操作系統(tǒng)的運(yùn)行、視頻信號(hào)的采集處理、雙核之間的數(shù)據(jù)交換以及與電力載波模塊的數(shù)據(jù)通信等,是整個(gè)系統(tǒng)的重要組成部分;電力載波模塊主要負(fù)責(zé)將OSK系統(tǒng)采集的視頻數(shù)據(jù)在電力線(xiàn)上傳輸,電力載波模塊能否實(shí)時(shí)傳輸采集到的視頻數(shù)據(jù)將直接影響整個(gè)系統(tǒng)的整體性能;上位機(jī)監(jiān)控系統(tǒng)主要負(fù)責(zé)將電力載波模塊傳輸來(lái)的實(shí)時(shí)數(shù)據(jù)進(jìn)行顯示及存儲(chǔ)等工作。整個(gè)系統(tǒng)設(shè)計(jì)有如下幾個(gè)關(guān)鍵點(diǎn):
(1)USB攝像頭的驅(qū)動(dòng)及視頻信息的采集;
(2)系統(tǒng)雙核通信和視頻的壓縮;
(3)電力載波的實(shí)時(shí)視頻數(shù)據(jù)傳輸。
電力載波視頻監(jiān)控系統(tǒng)的控制板不僅要負(fù)責(zé)系統(tǒng)任務(wù)的調(diào)度、視頻數(shù)據(jù)的采集處理,還需要與PLC模塊進(jìn)行實(shí)時(shí)通信。該系統(tǒng)采用Montavista Linux操作系統(tǒng),為了保存操作系統(tǒng)運(yùn)行所需的各種數(shù)據(jù),如U-Boot、系統(tǒng)參數(shù)、Linux內(nèi)核、DSP/BIOS和文件系統(tǒng)等,系統(tǒng)需要有外擴(kuò)Flash的支持,另外為了提高系統(tǒng)運(yùn)行的速度,系統(tǒng)外擴(kuò)的緩沖也是必需的。因此筆者采用了TI公司的OSK控制板作為系統(tǒng)的控制板,以O(shè)MAP5912雙核控制器作為主控芯片,它是一個(gè)高度集成的軟硬件的處理器,由一個(gè)實(shí)現(xiàn)控制功能的ARM92處理器和高性能低功耗的TMS320C55xDSP組成,相對(duì)于單核系統(tǒng)OMAP5912的一個(gè)顯著優(yōu)勢(shì)是能夠大大提高操作系統(tǒng)的效率[2-3]。OSK控制板不僅有串口、JTAG口、USB口以及網(wǎng)絡(luò)接口等常用的外擴(kuò)接口,還外擴(kuò)了32 M的Flash和32 M的DDR型SDRAM。另外系統(tǒng)中的各種外擴(kuò)芯片采用的電壓各不相同,如主控芯片OMAP5912采用1.6 V低功耗的電壓、USB和串口電壓為5 V、Flash及以太網(wǎng)口電壓為3.3 V,因此一個(gè)穩(wěn)定可靠的電源是整個(gè)系統(tǒng)穩(wěn)定運(yùn)行的關(guān)鍵。系統(tǒng)采用了TPS65010低壓線(xiàn)性穩(wěn)壓器來(lái)管理系統(tǒng)的電源,它不僅能滿(mǎn)足多種不同電壓的輸出,同時(shí)在靜態(tài)工作時(shí)有最小3.2 μA的靜態(tài)電流,這符合嵌入式系統(tǒng)低功耗的需求并且能在較寬的溫度范圍內(nèi)穩(wěn)定工作。系統(tǒng)的電源管理電路如圖2所示。
圖2 TPS65010電源管理電路
系統(tǒng)采用電力載波為傳輸介質(zhì)是由于其具有不需布線(xiàn)、網(wǎng)絡(luò)覆蓋范圍廣、連接方便、投資少和見(jiàn)效快等優(yōu)點(diǎn)。系統(tǒng)下位機(jī)中電力載波模塊主要與主控制板進(jìn)行數(shù)據(jù)通信,并將接收到的視頻數(shù)據(jù)封裝成電力載波幀在電力線(xiàn)上進(jìn)行傳輸;上位機(jī)中電力載波模塊主要是接收電力線(xiàn)上傳播的電力載波幀,并將其還原成壓縮的視頻數(shù)據(jù)傳輸給上位機(jī)的監(jiān)控系統(tǒng)。為保證視頻監(jiān)控系統(tǒng)的實(shí)時(shí)監(jiān)控能力,系統(tǒng)選擇了基于HomePlug1.0協(xié)議INT5500芯片的電力載波模塊,該模塊的最高傳輸速度可達(dá)到85 Mb/s,具備多點(diǎn)廣播的功能[4]。理論上模塊最遠(yuǎn)傳輸距離為300 m并支持最大128路的擴(kuò)展,但實(shí)際測(cè)試中因?yàn)槭褂铆h(huán)境中的各種干擾源等問(wèn)題,模塊間的傳輸距離在100 m以?xún)?nèi)能保證理想的速度,當(dāng)距離超過(guò)100 m時(shí),模塊的傳輸速率會(huì)隨距離的增大而減少。該模塊直接通過(guò)網(wǎng)絡(luò)接口與控制板進(jìn)行連接,其基本連接如圖3所示。
圖3 電力載波模塊連接圖
系統(tǒng)軟件設(shè)計(jì)主要包括開(kāi)發(fā)環(huán)境的建立、USB攝像頭驅(qū)動(dòng)開(kāi)發(fā)、雙核之間的通信、視頻數(shù)據(jù)的壓縮以及通信模塊驅(qū)動(dòng)等。該系統(tǒng)采用用途廣泛的開(kāi)源Linux系統(tǒng)為操作系統(tǒng),通過(guò)USB采集視頻數(shù)據(jù),利用網(wǎng)絡(luò)模塊與電力載波模塊進(jìn)行通信。雙核通信采用TI的DSP/BIOS軟件開(kāi)發(fā)包。其主程序流程圖如圖4所示。
圖4 系統(tǒng)主程序流程圖
3.2.1 USB攝像頭驅(qū)動(dòng)
為了使該系統(tǒng)能支持不同的USB攝像頭,筆者采用了一個(gè)開(kāi)源的USB攝像頭驅(qū)動(dòng)包SPCA5XX。它包括了現(xiàn)在市場(chǎng)上多數(shù)攝像頭的驅(qū)動(dòng)程序,其源碼包由4個(gè)部分組成:設(shè)備模塊的初始化模塊、卸載模塊、上層軟件接口模塊和數(shù)據(jù)傳輸模塊[5]。整個(gè)代碼從設(shè)備模塊初始化模塊module_init(usb_spca5xx_init)開(kāi)始執(zhí)行,以設(shè)備模塊的卸載模塊module_exit(usb_spca5xx_exit)結(jié)束。移植SPCA5XX到OSK5912控制平臺(tái)還需對(duì)內(nèi)核中的Kconfig、Makefile等文件進(jìn)行修改,并將USB Multimedia devices下的SPCA5XX編譯進(jìn)內(nèi)核。另外,USB攝像頭驅(qū)動(dòng)要正常工作,需要將Multimedia devices->Video For Linux和USB support->Support for Host-side USB->USB Host Controller Drivers- >OHCI HCD support編譯進(jìn)內(nèi)核。
3.2.2 視頻圖像采集
視頻設(shè)備在Linux中屬于設(shè)備文件,在完成USB攝像頭驅(qū)動(dòng)后,在Linux中就可以找到與攝像頭相對(duì)應(yīng)的設(shè)備文件:/dev/video0,然后就可以像訪問(wèn)普通文件一樣對(duì)其進(jìn)行讀寫(xiě)操作[6-7]。視頻圖像采集測(cè)試代碼如下:
3.2.3 雙核數(shù)據(jù)處理
系統(tǒng)雙核通信軟件采用了TI公司專(zhuān)門(mén)為雙核處理器開(kāi)發(fā)的DSP實(shí)時(shí)操作系統(tǒng)DSP/BIOS II,它能通過(guò)DSP/BIOS Link特有的API函數(shù)實(shí)現(xiàn)與ARM 端的GPP鏈接[8]。通過(guò)對(duì)API函數(shù)的操作即可實(shí)現(xiàn)對(duì)DSP信號(hào)的初始化處理、任務(wù)交換、數(shù)據(jù)流信息交換、管理DSP的任務(wù)以及資源狀況的查詢(xún)。配置完DSP/BIOS Link后對(duì)GPP的編譯步驟如下:
當(dāng)編譯成功后在內(nèi)核模塊和用戶(hù)函數(shù)庫(kù)中將創(chuàng)建以下路徑的函數(shù):
完成以上步驟即可實(shí)現(xiàn)雙核之間的數(shù)據(jù)通信,雙核間數(shù)據(jù)處理流程圖如圖5所示。
圖5 雙核通信流程圖
為保證視頻監(jiān)控的實(shí)時(shí)性和可靠性,在通信模塊中采用了實(shí)時(shí)的傳輸協(xié)議RTP/RTCP,該協(xié)議建立在傳統(tǒng)的TCP/IP協(xié)議之上,能夠支持高效的數(shù)據(jù)傳輸[9]。考慮到網(wǎng)絡(luò)拓展和維護(hù)等各方面的性能,設(shè)計(jì)中將采用C/S(cilent/server客戶(hù)機(jī)/服務(wù)器)的網(wǎng)絡(luò)傳輸模型[10],在控制模塊與電力傳輸模塊之間以及電力傳輸模塊與上位機(jī)之間將通過(guò)網(wǎng)絡(luò)建立相應(yīng)的TCP/IP鏈接,依據(jù)實(shí)時(shí)的數(shù)據(jù)傳輸協(xié)議進(jìn)行數(shù)據(jù)通信和系統(tǒng)控制。服務(wù)器通過(guò)SendPacket()發(fā)送RTP數(shù)據(jù),通過(guò)Poll()函數(shù)處理接收到的RTCP SR包。客戶(hù)端與服務(wù)器的鏈接通過(guò)Scoket建立,檢測(cè)客戶(hù)端訪問(wèn)的服務(wù)器地址和端口正確后,客戶(hù)端便向服務(wù)器發(fā)送請(qǐng)求數(shù)據(jù),服務(wù)器接收到請(qǐng)求后將接收數(shù)據(jù),同時(shí)解壓圖像數(shù)據(jù)并在屏幕上顯示。
系統(tǒng)實(shí)現(xiàn)了以電力載波為傳輸方式的視頻監(jiān)控的設(shè)計(jì),并且較好地將OMAP5912雙核技術(shù)與電力載波技術(shù)結(jié)合,為視頻監(jiān)控提供了新的傳輸方式。電力網(wǎng)的廣泛覆蓋和電力載波視頻監(jiān)控即插即用的便捷方式,使得該系統(tǒng)具有廣泛的應(yīng)用前景。目前的載波芯片的傳輸距離和擴(kuò)展能力還有局限,特別是無(wú)法穿越不同變壓器的電力網(wǎng)絡(luò),如何在提高電力載波芯片的傳輸速率和傳輸距離的同時(shí)提高雙核系統(tǒng)的利用率將是系統(tǒng)設(shè)計(jì)下一步需要解決的問(wèn)題。
[1]王國(guó)棟.基于電力線(xiàn)通信平臺(tái)的下一代互聯(lián)網(wǎng)技術(shù)架構(gòu):PLC、IPv6和 QoS系統(tǒng)集成[J].電力系統(tǒng)通信,2005(10):9-13.
[2]彭啟琮,楊錬,潘曄.開(kāi)放式多媒體應(yīng)用平臺(tái):OMAP處理器的原理及應(yīng)用[M].北京:電子工業(yè)出版社,2005:54-87.
[3]李利飛,李娟,朱善安.基于OMAP5912雙核架構(gòu)的嵌入式系統(tǒng)及其應(yīng)用[J].電工技術(shù),2006(6):11-13.
[4]柴守亮,侯思祖,程雪.基于INT5500的寬帶電力線(xiàn)通信 Modem的設(shè)計(jì)和實(shí)現(xiàn)[J].低壓電器,2007(3):41-44.
[5]王滔,季驍勇.在嵌入式Linux平臺(tái)上使用 USB攝像頭[J].微計(jì)算機(jī)應(yīng)用,2006(1):52-54.
[6]佚名.基于 Video4Linux的攝像頭驅(qū)動(dòng)設(shè)計(jì)[EB/OL].[2011-08-17].http://www.dzsc.com/data/html/2009-9-15/78721.html.
[7]戴小鼠,戴麗.基于Video4Linux的USB攝像頭圖像采集實(shí)現(xiàn)[EB/OL].[2011-08-17].http://www.hhcn.org/maindoc/USB_Camera_base_on_Video4Linux.pdf.
[8]Texas Instruments.TI DSP/BIOS real-time operating system v6.x user's guide[EB/OL].[2011-08-17].http://focus.ti.com.cn/cn/dsp/docs/litabsmultiplefilelist.tsp?sectionId=3&tabId=409&literature Number=spruex3d&docCategoryId=6&familyId=477.
[9]操龍敏,蔣建國(guó),齊美彬.RTP協(xié)議在嵌入式網(wǎng)絡(luò)攝像機(jī)中的設(shè)計(jì)及實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008(18):214-216.
[10]LI J,HAO W D.Research and design of embedded net work video monitoring system based on linux[J].Computer Science and Software Engineering,2008(9):1310-1313.