国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于S5PV210的視頻監(jiān)控系統(tǒng)設(shè)計

2016-02-23 20:29:33魏卓照李昌立籍新成
物聯(lián)網(wǎng)技術(shù) 2016年2期
關(guān)鍵詞:開發(fā)板內(nèi)核嵌入式

魏卓照++李昌立++籍新成

摘 要:為了更好地實現(xiàn)視頻采集,文中設(shè)計了一種視頻監(jiān)控系統(tǒng)。該系統(tǒng)以S5PV210開發(fā)板為硬件平臺,Linux操作系統(tǒng)為軟件平臺。利用USB攝像頭,通過對系統(tǒng)內(nèi)核的配置和底層設(shè)備驅(qū)動程序的編寫以及上層應(yīng)用程序的設(shè)計,構(gòu)建了基于mjpg-streamer的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。根據(jù)內(nèi)核提供的Video4Linux2接口對視頻信息進行采集處理,搭建mjpg-streamer流媒體服務(wù)器完成視頻數(shù)據(jù)的采集、壓縮以及將網(wǎng)絡(luò)傳輸至客戶端。實驗結(jié)果表明,該系統(tǒng)圖像采集穩(wěn)定,經(jīng)過采集處理后的視頻效果和實時性都達到了監(jiān)控要求。

關(guān)鍵詞:視頻監(jiān)控;mjpg-streamer;攝像頭;Video4Linux2

中圖分類號:TP277 文獻標(biāo)識碼:A 文章編號:2095-1302(2016)02-00-03

0 引 言

視頻監(jiān)控系統(tǒng)被廣泛運用在道路安全監(jiān)控、樓宇監(jiān)控等日常生活中,給人們的生活帶來了便利,隨著人們安全意識的上升,普通居民住宅也大量采用了視頻監(jiān)控設(shè)備,使得視頻監(jiān)控設(shè)備的市場前景越來越被看好。所以,開發(fā)易于管理且功能強大的視頻監(jiān)控系統(tǒng)顯得尤為重要。而嵌入式開發(fā)作為日益成熟的開發(fā)平臺,其豐富的開發(fā)資源得到越來越普遍的應(yīng)用。近年來流行的以嵌入式設(shè)備為平臺的視頻監(jiān)控系統(tǒng)日益興起,相比于傳統(tǒng)視頻監(jiān)控系統(tǒng),它具有體積小、成本低、易于攜帶的特點。本文設(shè)計了一種基于S5PV210的視頻監(jiān)控系統(tǒng),該系統(tǒng)將嵌入式Linux技術(shù)、網(wǎng)絡(luò)數(shù)據(jù)傳輸技術(shù)、多線程通信技術(shù)等相結(jié)合,從而保證視頻監(jiān)控圖像的穩(wěn)定性和實時性。

1 系統(tǒng)總體架構(gòu)

本文設(shè)計的是以嵌入式技術(shù)為基礎(chǔ)的通用性強且高性能的嵌入式視頻監(jiān)控系統(tǒng)。該系統(tǒng)使用S5PV210處理器,采用ARM CortexTM-A8內(nèi)核處理器,主頻達到1 GHz,64/32位內(nèi)部總線結(jié)構(gòu),具有每秒運算2億條指令集的高性能運算能力?;贑ortexTM-A8內(nèi)核的處理器在進行人機交互設(shè)備管理、支持OS等方面擁有比較明顯的優(yōu)勢。本硬件平臺體系由256 MB的Nand Flash,64 MB的SDRAM,2 MB的Nor Flash,三個USB接口,一個DM9000網(wǎng)卡接口以及一個256真色彩的TFT(Thin Film Transistor)液晶屏組成。圖1所示為系統(tǒng)總體結(jié)構(gòu)框圖,它的工作原理是由Linux系統(tǒng)驅(qū)動攝像頭采集圖像信息,將采集的圖像信息通過USB傳送到硬件平臺S5PV210進行預(yù)處理,然后利用網(wǎng)絡(luò)通信形式將采集到的圖像傳到客戶端。

2 系統(tǒng)硬件環(huán)境

2.1 USB攝像頭硬件設(shè)計

本系統(tǒng)所采用的ZC301攝像頭其形式為UVC(USB Video Class),攝像頭驅(qū)動采用V4L2(Video 4 Linux 2)驅(qū)動。USB電路如圖2所示,它不僅具有傳輸速度快、穩(wěn)定等優(yōu)勢,而且USB主控制器集成在微處理器中,可以便捷的與USB接口的攝像頭相接。該ZC301芯片可以支持ARM9/11,且具有快速壓縮引擎,2至8倍壓縮比,MMX技術(shù)軟解壓等功能。

2.2 V4L2視頻采集程序設(shè)計

V4L2是Linux下進行視頻采集的一套規(guī)范形式,V4L2 API接口函數(shù)通過ioctl來操作圖像數(shù)據(jù)的采集,它的編程模式如圖3所示。

通過open()函數(shù)打開攝像頭,采用非阻塞模式,一旦攝像頭未采集到數(shù)據(jù),那么驅(qū)動程序依舊會把緩存的數(shù)據(jù)發(fā)送給應(yīng)用程序。應(yīng)用程序通過以下兩種方法獲得攝像頭采集的圖像數(shù)據(jù):(1)通過read()直接讀??;(2)利用mmap()函數(shù)進行內(nèi)存映射,而本文采用內(nèi)存映射方式。因為映射方式將申請到的內(nèi)核緩沖區(qū)地址通過mmap()函數(shù)映射到用戶空間,直接對內(nèi)核緩沖區(qū)的數(shù)據(jù)進行處理,相對于只讀式在內(nèi)核空間和用戶空間進行數(shù)據(jù)交換,該方法節(jié)省內(nèi)存空間,提高了效率。

圖3 V4L2編程模式示意圖

V4L2對設(shè)備文件的操作方法比較簡單直觀,ioctl(input/output control)是設(shè)備驅(qū)動程序中對設(shè)備的I/O通道進行管理的函數(shù),它的形式為int ioctl(int fd , ind cmd , ...) 。其中,fd是打開設(shè)備時調(diào)用open()函數(shù)返回的文件標(biāo)識符,cmd是應(yīng)用程序?qū)υO(shè)備的控制命令,而省略號則表示一些補充參數(shù)。應(yīng)用程序中主要用到的控制命令如表1列。

3 軟件環(huán)境搭建

3.1 USB攝像頭驅(qū)動設(shè)計

嵌入式開發(fā)板進行軟件開發(fā)時一般采用交叉編譯的方式。本文采用arm-linux-gcc-4.3.2交叉編譯環(huán)境,Bootloader為u-boot-1.1.6,內(nèi)核為linux-3.0.8。通過構(gòu)建相應(yīng)的根文件系統(tǒng),以達到使用內(nèi)核與存取文件的目的,USB攝像頭驅(qū)動部分在內(nèi)核移植部分完成。對驅(qū)動程序的編譯采用編譯成模塊的方式在運行時動態(tài)加載。它使用insmod工具將編譯的模塊直接插入至模塊,若出現(xiàn)了故障,則可以使用rmmod對內(nèi)核中加載的模塊卸載,不用再重啟內(nèi)核。

本設(shè)計采用的內(nèi)核版本為linux-3.0.8,對Linux內(nèi)核進行簡單配置即可實現(xiàn)對USB攝像頭驅(qū)動的功能。配置如下所示:

Device Drivers --->

<*>Multimedia devices --->

*** Multimedia core support ***

<*> Video For Linux

[*] Video capture adapters --->

[*] V4L USB devices --->

<*>USB Video Class (UVC)

[*] UVC input events device supportendprint

<*> GSPCA based webcams --->

<*> ZC3XX USB Camera Driver

然后,保存配置并退出。執(zhí)行指令make zImage,將內(nèi)核重新編譯,并在內(nèi)核目錄/arm/arch/boot/中生成zImage.bin內(nèi)核文件,通過SD燒寫方式、TFTP網(wǎng)絡(luò)傳輸方式或者是USB下載方式等,將內(nèi)核文件zImage.bin重新燒寫到開發(fā)板中。這樣當(dāng)重新插入USB攝像頭時,開發(fā)板便可以立即識別出該設(shè)備。

3.2 mjpg-streamer流媒體服務(wù)器的應(yīng)用

目前,幾種主流的視頻編碼技術(shù)主要是MPEG、MPEG-1/2、MPEG-4、H.264/AVC等。其中,H.264因為良好的壓縮性能和網(wǎng)絡(luò)親和性,它被廣泛應(yīng)用在視頻會議、視頻監(jiān)控等領(lǐng)域,其能夠在較低帶寬情況下提供高質(zhì)量的圖像傳輸,相比其它的編碼標(biāo)準(zhǔn)節(jié)約了很多傳輸碼流。但是,為了傳輸更加高質(zhì)量的圖像就對其編碼能力提出了更高的挑戰(zhàn)。而mjpg-streamer是一個輕量級的開源視頻服務(wù)器軟件,它主要應(yīng)用在TCP/IP協(xié)議的網(wǎng)絡(luò)中,通過mjpg-streamer流媒體服務(wù)器將攝像頭采集到的圖像以JPG格式傳輸?shù)介_發(fā)板上。它使用方便,解碼后生成的視頻圖像是RGB格式,避免了使用H.264編解碼技術(shù)所帶來的第三方瀏覽器不能打開視頻信息的情況。圖4所示為mjpg-streamer的工作流程框圖。

其中,Input_init用來完成攝像頭的初始化工作,它需要調(diào)用Init_videoIn函數(shù)和init_v4l2函數(shù)。Input_run通過調(diào)用Pthread_creat函數(shù)和Pthread_detach函數(shù)來創(chuàng)建不同的線程,再將創(chuàng)建的線程設(shè)置為分離狀態(tài)。Output_run主要使用Socket套接字,通過bind、listen、accept以及read/write等函數(shù)來完成網(wǎng)絡(luò)編程并實現(xiàn)圖像數(shù)據(jù)的網(wǎng)絡(luò)傳輸。

4 系統(tǒng)測試

4.1 jpeg庫的移植

jpeg庫的移植程序如下所示:

#tar xvf jpegsrc.v8b.tar.gz

#cd jpeg-8b

# ./configure --prefix=/opt/EmbedSky/jpeg --host=arm-linux

#make

#make install

最后,拷貝libjpeg.s0.8庫到開發(fā)板文件系統(tǒng)lib目錄下。

4.2 mjpg-streamer服務(wù)器的移植

mjpg-streamer服務(wù)器移植的步驟如下:

(1)首先下載mjpg-streamer源碼包,下載地址為http://sourceforge.net/p/mjpg-streamer/code/HEAD/tree/

(2)在Ubuntu中將下載的mjpg-streamer.tar.gz文件解壓縮:#tar zxvf mjpg-streamer.tar.gz -C /opt/EmbedSky/

(3)進入源碼目錄,并指定交叉編譯工具鏈:#cd /opt/EmbedSky/mjpg-streamer,修改Makefile文件的第16行CC=gcc為CC= /opt/EmbedSky/4.4.6/bin/arm-linux-gcc

(4)執(zhí)行#make編譯,并得到mjpg-streamer和一些input*.so或者output*.so組件。

(5)將得到的input*.so以及output*.so等文件燒寫到開發(fā)板的“/lib/webcam”目錄下,并將mjpg-streamer文件燒寫到開發(fā)板的“/bin”目錄下,接下來便可以對IP camera進行測試。在開發(fā)板的串口控制臺輸入指令:

#mjpg-streamer -i "/mjpeg/input_uvc.so -d /dev/video0" -o "/mjpeg/output_http.so"

然后在PC端打開客戶端程序viewer.exe,并輸入IP和端口號,點擊”connect”,即可看到攝像頭采集的圖像。圖5所示為視頻監(jiān)控系統(tǒng)的硬件連接圖。圖6所示為通過應(yīng)用程序查看視頻信息,其中,172.16.72.150是開發(fā)板的IP地址,8080是打開的端口號。

當(dāng)然,除了使用客戶端以外,也可以使用firefox瀏覽器查看視頻信息。要求開發(fā)板與主機同在一個網(wǎng)段內(nèi),并且可以相互ping通,然后在火狐瀏覽器中輸入IP地址172.16.72.150,便可以瀏覽攝像頭采集到的視頻圖像。圖7所示為視頻監(jiān)控系統(tǒng)在firefox上顯示。

5 結(jié) 語

本文設(shè)計了一種基于S5PV210的視頻監(jiān)控系統(tǒng),編寫了USB攝像頭驅(qū)動程序和流媒體服務(wù)器mjpg-streamer移植程序。通過測試,發(fā)現(xiàn)該系統(tǒng)使用便捷,圖像清晰,傳輸信號穩(wěn)定,并且系統(tǒng)開發(fā)過程結(jié)構(gòu)清晰,性能穩(wěn)定。

參考文獻

[1]盧靈,周賢軍.基于WiFi的嵌入式視頻監(jiān)控系統(tǒng)設(shè)計[J].電視技術(shù),2013,37(1):157-160.

[2]曹名如,羅浩,徐小勇,等.基于ARM9的視頻監(jiān)控系統(tǒng)設(shè)計[J].計算機工程與設(shè)計,2015,36(4):925-929.

[3]王巖.視頻信號采集與網(wǎng)絡(luò)傳輸系統(tǒng)的研究與實現(xiàn)[D].大連:大連海事大學(xué),2011.

[4]劉良,賴萬昌,黎明.基于ARM9的GPRS圖像傳輸系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2010,31(7):1477-1480.

[5]彭浩,龔杰,秦建敏.基于S3C2440的嵌入式Linux根文件系統(tǒng)構(gòu)建[J].電子設(shè)計工程,2010(6):20-22.

[6] Soyak E,Tsaftaris S A,Katsaggelos A K. Low-complexity tracking-aware H.264 video compression for transportation sur-veillancd [J].IEEE Transactions on Circuits and Systems for Video Technology,2011,21(10):1378-1389.

[7]陳恒鑫,林威,張欽宇.基于Mjpg-streamer的移動視頻監(jiān)控系統(tǒng)的設(shè)計[J].計算機測量與技術(shù),2014,22(11):3597-3599.

[8]華春夢,劉沖.基于S3C2440嵌入式平臺的USB攝像頭視頻監(jiān)控[J].電腦開發(fā)與應(yīng)用,2015(1):46-49.endprint

猜你喜歡
開發(fā)板內(nèi)核嵌入式
強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
Linux內(nèi)核mmap保護機制研究
搭建基于Qt的嵌入式開發(fā)平臺
Microchip最新推出兩款PIC32 Curiosity開發(fā)板
淺析單片機開發(fā)板的設(shè)計與制作
電子制作(2017年22期)2017-02-02 07:10:14
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
微生物內(nèi)核 生態(tài)型農(nóng)資
Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
三亚市| 长葛市| 泽普县| 淮安市| 万荣县| 汕头市| 永春县| 兰坪| 延津县| 鹤庆县| 乌兰浩特市| 绥化市| 酒泉市| 郧西县| 江达县| 南汇区| 浦江县| 永吉县| 沭阳县| 福鼎市| 龙井市| 蒙城县| 玉环县| 白山市| 大城县| 丽江市| 连平县| 饶河县| 革吉县| 丹阳市| 米泉市| 龙山县| 彭水| 济南市| 绥中县| 隆安县| 舒城县| 崇阳县| 彭山县| 房产| 克拉玛依市|