劉海橋,劉 林,張志勇,張?bào)闼桑瑮?晨,丁 召
(貴州大學(xué) 電子信息學(xué)院,貴州 貴陽(yáng) 550025)
基于ARM11嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)的分析與設(shè)計(jì)
劉海橋,劉 林,張志勇,張?bào)闼?,?晨,丁 召
(貴州大學(xué) 電子信息學(xué)院,貴州 貴陽(yáng) 550025)
為了更好的降低監(jiān)控成本,提高系統(tǒng)布防的簡(jiǎn)易性;同時(shí)提高傳輸速度,達(dá)到更好的監(jiān)控效果。采用三星公司S3C6410開發(fā)板,及其自帶功能強(qiáng)大的ARM11處理器來(lái)設(shè)計(jì)監(jiān)控系統(tǒng),利用開源軟件mjpg_stream,GCC編譯工具,搭建windows和linux下的網(wǎng)絡(luò)監(jiān)控系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)采集圖像清晰,達(dá)到預(yù)期的設(shè)計(jì)目標(biāo)。
嵌入式系統(tǒng);ARM;網(wǎng)絡(luò)監(jiān)控;GCC
嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)簡(jiǎn)介及應(yīng)用前景:嵌入式遠(yuǎn)程監(jiān)控就是本地PC機(jī),通過(guò)訪問(wèn)http開頭的網(wǎng)絡(luò)地址,對(duì)遠(yuǎn)程終端監(jiān)控設(shè)備進(jìn)行控制,監(jiān)控人員不用親臨被監(jiān)控區(qū)域的一類視頻監(jiān)控系統(tǒng)設(shè)備[1]。嵌入式監(jiān)控設(shè)備避免了惡劣環(huán)境對(duì)人的影響和監(jiān)控的不利因素,同時(shí)也可以做到據(jù)點(diǎn)監(jiān)控,參數(shù)修改,達(dá)到各種災(zāi)害的提前控制??蓮V泛用于軍事監(jiān)控,道路監(jiān)控,學(xué)校宿舍監(jiān)控等。傳統(tǒng)的監(jiān)控設(shè)備有以下一些不足之處:1)普遍采用撥號(hào)方式進(jìn)行數(shù)據(jù)傳輸,占用大量網(wǎng)絡(luò)資源,使用成本較高,工作效率低,可靠性不高和傳輸速率低,不適合更廣泛的推廣[2]。2)硬件的要求較高,更新?lián)Q代周期較長(zhǎng),體積龐大,不適合長(zhǎng)久的發(fā)展線路[3]。3)系統(tǒng)的針對(duì)性也較強(qiáng),產(chǎn)品的各種技術(shù)手段,參數(shù)都處于半封閉或封閉狀態(tài),可移植性較差[4]。
嵌入式遠(yuǎn)程視頻監(jiān)控系統(tǒng)的優(yōu)點(diǎn):1)嵌入式視頻監(jiān)控系統(tǒng)易于移植,能夠在linux系統(tǒng)和windows下同時(shí)開發(fā);2)對(duì)監(jiān)控設(shè)備要求較低,只需要能夠聯(lián)網(wǎng),并且只需要安裝IE等瀏覽器;3)各種不同版本的監(jiān)控設(shè)備設(shè)備和軟件層出不窮,跟新較快,能夠?qū)崟r(shí)的滿足監(jiān)控要求;4)豐富的人機(jī)交換界面。除了以上幾點(diǎn)外,還有包括能夠克服惡劣環(huán)境,加上紅外模塊能夠?qū)崿F(xiàn)夜晚的監(jiān)控,監(jiān)控設(shè)備圖形界面的豐富,達(dá)到控制的多樣化等不同優(yōu)點(diǎn)。
任何系統(tǒng)設(shè)備,都是由硬件和軟件組成。本文審計(jì)使用的嵌入式系統(tǒng)是由ARM11開發(fā)板,攝像頭,開源軟件以及PC機(jī)所構(gòu)成。
1)S3C6420開發(fā)板:ARM是一款低功耗、高性價(jià)比的RSIC處理器,可廣泛應(yīng)用于移動(dòng)電話和通用處理等領(lǐng)域;S3C6410為2.5 G和3 G通信服務(wù)提供了優(yōu)化的硬件性能,內(nèi)置強(qiáng)大的硬件加速器:包括運(yùn)動(dòng)視頻處理、音頻處理、2D加速、顯示處理和縮放等;S3C6410集成了一個(gè)MFC(Multi-Format video Codec)支持MPEG4/H.263/H.264編解碼和VC1的解碼,能夠提供實(shí)時(shí)的視頻會(huì)議以及NTSC和PAL制式的CVBS輸出;S3C6410處理器內(nèi)置一個(gè)采用先進(jìn)技術(shù)的3D加速器,支持OpenGL ES 1.1/2.0和D3DM API,能實(shí)現(xiàn)4M triangles/s的3D加速;S3C6410包含了優(yōu)化的外部存儲(chǔ)器接口,該接口能滿足在高端通信服務(wù)中的數(shù)據(jù)帶寬要求。且具有性能優(yōu)越的處理器——ARM11,性能高,處理頻率快,具有強(qiáng)大的ARM指令集體系結(jié)構(gòu),對(duì)視頻監(jiān)控的速度和畫面質(zhì)量有著很大的提高。
2)PC機(jī):文中采用的是聯(lián)想G470筆記本電腦,安裝了IE瀏覽器。主要是作為顯示設(shè)備。
3)攝像頭:攝像頭的選取一定是要攝像頭支持UVC視頻格式的攝像頭,并非任何一種都可以的,否則將會(huì)出現(xiàn)錯(cuò)誤,本文后面就遇到過(guò),本文采用的是炫魔攝像頭。
如圖1所示,該監(jiān)控系統(tǒng)前端采用中星微電子芯片的攝像頭,給開發(fā)板加上紅外模塊可以采用專用的紅外攝像頭,采集得到紅外圖像;核心設(shè)備:采用較先進(jìn)的以ARM11為核心處理器的S3C6410開發(fā)板,ARM11微處理器具有處理數(shù)據(jù)頻率高,傳輸速度快——64位的數(shù)據(jù)通道,可選的浮點(diǎn)運(yùn)算,支持各種不同的計(jì)算機(jī)語(yǔ)言(C,C++等)等特點(diǎn)。
圖1 監(jiān)控系統(tǒng)的總體框圖Fig.1 Structure diagram of the monitoring system
保證開發(fā)板和PC機(jī)處于同一個(gè)網(wǎng)段,只有在同一個(gè)網(wǎng)段的情況下,雙方才能夠很好的數(shù)據(jù)互通,在這里我們采用開發(fā)板和PC在一個(gè)路由器下,運(yùn)用ping這個(gè)命令來(lái)實(shí)現(xiàn)(ping不僅僅是windows下的命令,在unix和linux下也有這個(gè)命令,它是一個(gè)通信協(xié)議,是ip協(xié)議的一部分,也是tcp協(xié)議的一部分,Ping在Windows下是自帶的一個(gè)可執(zhí)行命令。利用它可以檢查網(wǎng)絡(luò)是否能夠連通,用好它可以很好地幫助我們分析判定網(wǎng)絡(luò)故障。應(yīng)用格式:Ping+IP地址),最終ping通的結(jié)果如圖所示,如果沒(méi)有ping通的話,開發(fā)板和PC將不能夠?qū)崿F(xiàn)互通,圖2是ping通的圖像顯示。
圖2 開發(fā)板和PC機(jī)聯(lián)通Fig.2 Comunicate ARM and PC
GCC編譯器:即不同處理器之間的交叉編譯工具,Linux系統(tǒng)下的 GCC(GNU C Compiler)是GNU推出的功能強(qiáng)大、性能優(yōu)越的多平臺(tái)編譯器,是GNU的代表作品之一。GCC是可以在多種硬體平臺(tái)上編譯出可執(zhí)行程序的超級(jí)編譯器,其執(zhí)行效率與一般的編譯器相比平均效率要高20%~30%。GCC編譯器能將C、C++語(yǔ)言源程序、匯程式化序和目標(biāo)程序編譯、連接成可執(zhí)行文件,如果沒(méi)有給出可執(zhí)行文件的名字,GCC將生成一個(gè)名為a.out的文件。在Linux系統(tǒng)中,可執(zhí)行文件沒(méi)有統(tǒng)一的后綴,系統(tǒng)從文件的屬性來(lái)區(qū)分可執(zhí)行文件和不可執(zhí)行文件。而GCC則通過(guò)后綴來(lái)區(qū)別輸入文件的類別,一般情況下windows下編譯出來(lái)的后綴名為.c文件。
宿主機(jī)上安裝的fedora發(fā)行版的Linux內(nèi)核,這里使用的是ARM-linux-gcc 4.3.0.
根據(jù)mjpg_stream源代碼,默認(rèn)的網(wǎng)絡(luò)輸出端口:output[0]="output_http.so--port 8080";默認(rèn)的輸入端口:char*input="input_uvc.so--resolution 640x480--fps 5--device/dev/video0";而不是每一個(gè)開發(fā)板的活動(dòng)端口都是video0,因此我們需要重新進(jìn)行編譯。采用之前的編譯工具GCC編譯器,利用make和makefile(make和makefile定義了一系列的規(guī)則來(lái)指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作)命令進(jìn)行編譯,形成可執(zhí)行文件也就是如圖所示的mjpg_streamer文件格式,即是開發(fā)板當(dāng)中的可執(zhí)行文件。前面我們已經(jīng)提到,所采用的攝像頭一定要支持UVC格式的攝像頭,圖3就是不支持UVC和活動(dòng)端口不連接的時(shí)候的錯(cuò)誤提示,圖4就是正確的提示信息。
圖3 攝像頭啟動(dòng)失敗Fig.3 Camera boot failure
在mgpg—stream庫(kù)移植完成以后,在終端中輸入./mjpg_streamer-i"./input_uvc.so-d/dev/video2-y"-i"./input_uvc.so-d/dev/video2-y"-o "./output_http.so-w./www",并執(zhí)行,用以開啟攝像頭和網(wǎng)絡(luò)協(xié)議,同時(shí)執(zhí)行輸入輸出。此處必須指出,采集設(shè)備一定是在檢測(cè)之后,確定是哪一個(gè)設(shè)備的基礎(chǔ)上選擇修改的,執(zhí)行,開發(fā)板將進(jìn)入等待時(shí)間[5]。如圖4所示。
圖4 攝像頭正常開啟準(zhǔn)備采集圖像Fig.4 Cameras started to normal and ready to capture image
在確定攝像頭正常開啟,輸入輸出端口正常工作之后,看到開發(fā)板處于等待狀態(tài),在PC機(jī)輸入http:192.168.1.20:8080/?action=stream&,可以瀏覽到正常畫面,如圖5所示。
圖5 正常采集視頻圖像Fig.5 Normal to collect video image
Linux內(nèi)置了標(biāo)準(zhǔn)的視頻接口VideoForLinux(簡(jiǎn)稱V4L),V4L支持?jǐn)?shù)字?jǐn)z像頭的各種操作,應(yīng)用程序只要遵循這個(gè)接口標(biāo)準(zhǔn)就可以使視頻設(shè)備正常工作。本系統(tǒng)的軟件設(shè)計(jì)遵循了結(jié)構(gòu)化的編程思想,對(duì)重要的操作和數(shù)據(jù)進(jìn)行了編譯,形成可執(zhí)行文件。重要的數(shù)據(jù)結(jié)構(gòu)定義如下:
采集函數(shù)涵蓋了設(shè)備采集圖像的各種屬性以及實(shí)際的數(shù)據(jù)幀緩沖區(qū)。在嵌入式Linux中,USB數(shù)字?jǐn)z像頭設(shè)備映射為設(shè)備文件/dev/video,在對(duì)其進(jìn)行任何操作與對(duì)普通文件操作類似[6]。
要對(duì)設(shè)備進(jìn)行操作,首先要對(duì)攝像頭設(shè)備進(jìn)行開啟,"input_uvc.so--resolution640x480--fps5--device/dev/video2",然后就是對(duì)圖形的格式大小,分辨率,顏色等就行設(shè)置,最后通過(guò)映射,發(fā)送采集命令,采集圖像數(shù)據(jù),采集的圖像如上圖5。
采用ARM11高速微處理器為核心,S3C6410開發(fā)板進(jìn)行視頻監(jiān)控,移植mjpg-stream庫(kù)到linux系統(tǒng)開發(fā)板中[7],構(gòu)成了視頻監(jiān)控系統(tǒng),較傳統(tǒng)監(jiān)控設(shè)備無(wú)論是在數(shù)據(jù)傳輸還是數(shù)據(jù)采集方面都有了很大的提高。能工作于各種艱苦的環(huán)境,處理速度較快,畫面清晰,符合現(xiàn)代視頻監(jiān)控的要求,達(dá)到了實(shí)驗(yàn)?zāi)康?,在此基礎(chǔ)上做一些補(bǔ)充,將會(huì)具有廣闊的工業(yè)應(yīng)用空間。
[1]王建峰,劉紅旗,李杰.一種基于Internet的遠(yuǎn)程監(jiān)控系統(tǒng)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2002(3):7-9.
WANG Jian-feng,LIU Hong-qi,LI Jie.Internet-based remote monitoring system[J].Electromechanical Product Development and Innovation,2002(3):7-9.
[2]胡俊.工業(yè)以太網(wǎng)和基于Internet的遠(yuǎn)程視頻監(jiān)控[J].世界儀表與自動(dòng)化,2002,6(2):43-45.
HU Jun.Industrial Ethernet and Internet-based remote video monitoring[J].World Instrumentation&Automation,2002,6(2):43-45.
[3]黃英,肖旭,魏急波.基于嵌入式Linux的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)[J].電子工程師,2002,28(4):11-13.
HUANG Ying,XIAO Xu,WEI Ji-bo.Embedded Linux-based remote monitoring system design[J].Electronics Engineer,2002,28(4):11-13.
[4]孫文波,盧建軍.基于Web的遠(yuǎn)程監(jiān)控技術(shù)及比較[J].西安科技學(xué)院學(xué)報(bào),2002,22(2):205-207.
SUN Wen-bo,LU Jian-jun.Web-based remote monitoring technology and comparative[J].Xi’an Technology Institute,2002,22(2):205-207.
[5]周強(qiáng),閆大順,許世范.基于Web技術(shù)的分布式監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].儀器儀表學(xué)報(bào),2001,22(3):278-279.
ZHOU Qian,YAN Da-shun,XU Shi-fan.Web-based technologies for distributed monitoring system design and implementation[J].Journal of Scientific Instrument,2001,22(3):278-279.
[6]葉俊華.基于ARM11的嵌入式視頻處理終端設(shè)計(jì)[D].長(zhǎng)沙:中南大學(xué),2010.
[7]黃婷,黃偉.基于不同算法求解子問(wèn)題的Benders分解法在無(wú)功規(guī)劃中的應(yīng)用[J].陜西電力,2013(3):23-26.
HUANG Ting,HUANG Wei.Application ofBenders decomposition based on different method to solve subproblems in reactive power planning[J].Shaanxi Electric Power,2013(3):23-26.
Design and analyse for embedded monitoring system based on ARM11
LIU Hai-qiao, LIU Lin, ZHANG Zhi-yong, ZHANG Xiao-song,YANG Chen, DING Zhao
(College of Electronic Information Engineering,Guizhou University, Guiyang 550025, China)
In order to reduce monitoring costs, and improve the simplicity of the system protection, while improving the transmission speed and achieve better control effect.An embedded monitoring system is designed based on Samsung S3C6410 development board, comes with a powerful ARM11 processor, using open source software mjpg-stream, GCC compiler tools,the system is built under windows and linux network monitoring system.The experimental results show that the system can collect the clearer image,and achieve the expected design goal.
embedded system;ARM;Network monitoring;GCC
10.14022/j.cnki.dzsjgc.2014.16.053
TN919.85
A
1674-6236(2014)16-0181-03
2013-11-02 稿件編號(hào):201311015
貴州省科學(xué)技術(shù)基金(黔科合J字[2013]2129號(hào))
劉海橋(1989—),男,江西九江人,碩士研究生。研究方向:集成電路設(shè)計(jì),嵌入式軟件開發(fā)。