• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ARM嵌入式的視頻監(jiān)控系統(tǒng)的設(shè)計(jì)

      2011-06-05 11:01:18龍世瑜盧碧燕
      電子設(shè)計(jì)工程 2011年17期
      關(guān)鍵詞:緩沖區(qū)內(nèi)核瀏覽器

      龍世瑜,魏 武,盧碧燕

      (湛江師范學(xué)院 信息科學(xué)與技術(shù)學(xué)院,廣東 湛江 524048)

      目前,嵌入式系統(tǒng)在視頻監(jiān)控中的應(yīng)用越來越廣泛。伴隨著網(wǎng)絡(luò)的強(qiáng)大功能,視頻監(jiān)控更側(cè)重網(wǎng)絡(luò)監(jiān)控方案,要求體積小、遠(yuǎn)程化、成本低、功耗小、操作界面人性化等。本系統(tǒng)基于嵌入式Linux平臺上利用USB攝像頭采集視頻圖像,通過視頻圖像壓縮及結(jié)合網(wǎng)絡(luò)進(jìn)行視頻圖像傳輸,使遠(yuǎn)程監(jiān)控成為可能。

      1 系統(tǒng)概述

      視頻圖像監(jiān)控系統(tǒng)由4部分組成,分別為視頻圖像采集、視頻圖像處理、視頻圖像傳輸、視頻圖像顯示。視頻圖像采集部分由數(shù)字?jǐn)z像頭、USB通道和嵌入式處理器構(gòu)成、視頻圖像處理主要是視頻圖像壓縮,由算法實(shí)現(xiàn)、視頻圖像傳輸主要利用視頻服務(wù)器來實(shí)現(xiàn)、視頻圖像顯示主要是在遠(yuǎn)程的主機(jī)上實(shí)現(xiàn)視頻圖像的瀏覽、保存和處理等,Linux主機(jī)上由應(yīng)用程序?qū)崿F(xiàn),Windows主機(jī)上通過瀏覽器上的JAVA程序?qū)崿F(xiàn)。系統(tǒng)原理框圖如圖1所示。

      圖1 系統(tǒng)框圖Fig.1 System block diagram

      2 系統(tǒng)硬件

      CPU處理器使用Samsung S3C2440A,主頻400 MHz,最高533 MHz;64 M SDRAM、32 bit數(shù)據(jù)總線、SDRAM 時(shí)鐘頻率 100 MHz;256 M/1 GB Nand Flash, 掉電非易失、2 M Nor Flash,掉電非易失;統(tǒng)寶3.5真彩LCD,屏集成4線電阻式觸摸屏,屏幕分辨率可以達(dá)到 1 024×768象素;100 M以太網(wǎng)RJ-45接口 (采用DM9000網(wǎng)絡(luò)芯片)、 串行口 、USB Host、USB Slave B型接口、SD卡存儲接口、路立體聲音頻輸出接口,麥克風(fēng)接口、JTAG接口、4 USER Leds、6 USER buttons(帶引出座)、I2C總線AT24C08芯片、20 pin攝像頭接口;攝像頭用良田,兼容SN9C20X系列芯片的驅(qū)動(dòng),本系統(tǒng)的內(nèi)核中集成了該驅(qū)動(dòng)。

      3 系統(tǒng)軟件

      3.1 Linux內(nèi)核的移植

      移植新內(nèi)核主要是為了給LCD以及攝像頭添加相應(yīng)的驅(qū)動(dòng)支持,在Fedora 9中打開內(nèi)核的目錄,使用缺省配置文件進(jìn)行配置:在內(nèi)核中添加V4L支持、添加萬能USB攝像頭驅(qū)動(dòng)GSPCA[1]。

      3.2 基于V4L2的圖像采集程序

      系統(tǒng)使用的交叉編譯工具為arm-linux-gcc-4.3.2。設(shè)計(jì)使用到的應(yīng)用程序都要通過該編譯器編譯后下載到開發(fā)板上運(yùn)行。將編好的應(yīng)用程序V4L2.c交叉編譯后下載到板。

      V4L(Video for Linux)是Linux下提供的一個(gè)音視頻接口規(guī)范,所有的音視頻驅(qū)動(dòng)編寫都要用到這些接口。

      V4L從2.4.1.x的內(nèi)核版本中開始出現(xiàn),設(shè)計(jì)使用的Video for Linux2(簡稱V4L2)是V4L的改進(jìn)版,修復(fù)了第一代中的部分BUG[2]。

      設(shè)計(jì)的圖像采集及處理程序主要基于V4L2架構(gòu),通過對一些ioctl函數(shù)的調(diào)用來實(shí)現(xiàn)視頻設(shè)備的打開,圖像的采集處理,圖像的顯示等。幾個(gè)主要的ioctl函數(shù)的簡介:

      1)ioctl(fd,VIDIOC_S_FMT, &fmt):用于設(shè)置圖像的格式。

      2)ioctl(fd, VIDIOC_REQBUFS, &req):向內(nèi)存申請緩沖區(qū),申請的buffer個(gè)數(shù)存在count中。

      3)ioctl(fd, VIDIOC_QUERYBUF, &buf):查詢已經(jīng)分配的V4L2的視頻緩沖區(qū)的相關(guān)信息,包括視頻緩沖區(qū)的使用狀態(tài)、在內(nèi)核空間的偏移地址、緩沖區(qū)長度等。

      4)ioctl(fd, VIDIOC_QBUF, &buf):放一個(gè)空的視頻緩沖區(qū)到視頻緩沖區(qū)輸入隊(duì)列中,函數(shù)執(zhí)行成功后,指令的視頻緩沖區(qū)進(jìn)入視頻輸入隊(duì)列,在啟動(dòng)視頻設(shè)備拍攝圖像時(shí),相應(yīng)的視頻數(shù)據(jù)被保存到視頻輸入隊(duì)列相應(yīng)的視頻緩沖區(qū)中。

      5)ioctl(fd, VIDIOC_STREAMON, &type):啟動(dòng)視頻采集命令,應(yīng)用程序調(diào)用VIDIOC_STREAMON啟動(dòng)視頻采集命令后,視頻設(shè)備驅(qū)動(dòng)程序開始采集視頻數(shù)據(jù),并把采集到的視頻數(shù)據(jù)保存到視頻驅(qū)動(dòng)的視頻緩沖區(qū)中。

      圖像采集處理流程圖如圖2所示。

      圖2 圖像采集處理流程圖Fig.2 Image sampling flow chart

      3.3 網(wǎng)絡(luò)服務(wù)器

      系統(tǒng)采用Boa服務(wù)器。Boa是一種非常小巧的Web服務(wù)器,其可執(zhí)行代碼只有大約60 kB左右。作為一種單任務(wù)Web服務(wù)器,Boa只能依次完成用戶的請求,Boa支持CGI,能夠?yàn)镃GI程序fork出一個(gè)進(jìn)程來執(zhí)行[3]。板上移植該服務(wù)器,Boa服務(wù)器默認(rèn)開機(jī)自動(dòng)運(yùn)行,配置conf文件。

      服務(wù)器端應(yīng)用程序使用servfox,servfox-R1_1_3解壓修改Makefile文件:CC=arm-linux-gcc,編譯后得到可執(zhí)行文件servfox,下載到板上,輸入命令chmod+x servfox為它添加可執(zhí)行屬性。

      客戶端程序使用spcawiew,該程序用于在Linux主機(jī)上對服務(wù)器進(jìn)行監(jiān)控,無需移植。在Linux上編譯spcaview.由于此軟件包依賴與libsdl,所以在安裝spcaview之前,需要安裝SDL-1.2.13.安裝spcaview軟件后,在源文件目錄上有3個(gè)可執(zhí)行文件,spcacat:簡單圖片的抓取工具,不能用于網(wǎng)絡(luò)監(jiān)視客戶端,Spcaserv:流媒體服務(wù)器,Spcaview:用來紀(jì)錄數(shù)據(jù)流,也能用來播放數(shù)據(jù),也能作為網(wǎng)絡(luò)監(jiān)視客戶端用。

      4 監(jiān)控過程

      4.1 在Linux操作系統(tǒng)上的監(jiān)控

      正常啟動(dòng)運(yùn)行開發(fā)板,運(yùn)行服務(wù)器端程序servfox:servfox-d/dev/video0-s 320x240-w 7070。

      在Linux上運(yùn)行:./spcaview-g-s 320x240-w 10.1.91.230:7070

      其中10.1.91.230是服務(wù)器的IP地址,這樣就可以在PC機(jī)上看見USB攝像頭采集進(jìn)來的數(shù)據(jù)了。

      系統(tǒng)是裝在虛擬機(jī)中的fedora 9 linux系統(tǒng),可以流暢地觀察到攝像頭監(jiān)控區(qū)域的情況。

      4.2 Windows操作系統(tǒng)上的監(jiān)控

      對于網(wǎng)絡(luò)監(jiān)控的客戶端,能夠跨平臺的工具目前只有瀏覽器,通過瀏覽器來監(jiān)控,無論是 Linux、Windows、MacOS或者其他的UNIX系統(tǒng),只要有圖形界面的瀏覽器,在桌面環(huán)境下都可以對遠(yuǎn)程的攝像頭所“控制”的范圍進(jìn)行監(jiān)控[5]。

      Mini2440上已經(jīng)有Boa服務(wù)器可供使用,Spcaview中的http-java-applet文件夾中已經(jīng)包含了一個(gè)可以監(jiān)控使用的web頁面,將該文件夾復(fù)制到Boa服務(wù)器的主文件夾/www下。

      由于http-java-applet文件夾內(nèi)含的WEB主頁面(Index.html)包含了JAVA控件,所以先在主機(jī)上安裝JAVA環(huán)境,讓瀏覽器支持JAVA插件[5]。

      安裝好JRE后,在瀏覽器的地址欄上輸入服務(wù)器地址,即可實(shí)現(xiàn)遠(yuǎn)程監(jiān)控[5]。

      4.3 遠(yuǎn)程抓拍

      通過web表單提交CGI來運(yùn)行應(yīng)用程序。

      通用網(wǎng)關(guān)接口(CGI)規(guī)范允許Web服務(wù)器執(zhí)行其他的程序并將它們的輸出儲存在發(fā)送給Web瀏覽器的文本、圖形和音頻中。服務(wù)器與CGI程序的結(jié)合能夠擴(kuò)充World Wide Web 的能力[6]。

      CGI程序可以由C、Perl或者UNIX Shell腳本等流行編程語言編寫。

      在本設(shè)計(jì)中,網(wǎng)頁上的按鈕shoot the picture提交了一個(gè)名為V4L的CGI文件v4l.cgi,該文件是用shell腳本編寫的,用于在板上運(yùn)行已編譯好的圖像采集程序并對抓拍的圖片返回到新打開的網(wǎng)頁中進(jìn)行查看。

      Shell腳本(v4l.cgi)內(nèi)容如下:

      5 結(jié)束語

      系統(tǒng)采用開源的Linux系統(tǒng),降低了開發(fā)成本,可以任意裁剪和制定內(nèi)核,方便移植。與傳統(tǒng)PC機(jī)的監(jiān)控系統(tǒng)相比,本系統(tǒng)具有體積小、成本低、可靠性強(qiáng)等優(yōu)勢。本系統(tǒng)還具有一定的擴(kuò)展性,可以增加適當(dāng)?shù)墓δ軘U(kuò)展來滿足用戶更高的要求,如在圖像采集端加入設(shè)置入侵檢測或者報(bào)警等控制功能。

      [1]韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.

      [2]科波特.LINUX設(shè)備驅(qū)動(dòng)程序[M].3版.北京:中國電力出版社,2006.

      [3]斯洛斯.ARM嵌入式系統(tǒng)開發(fā)[M].北京:北京航空航天大學(xué)出版社,2005.

      [4]劉淼.嵌入式系統(tǒng)接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序開發(fā) [M].北京:北京航空航天大學(xué)出版社,2006.

      [5]凌明.嵌入式系統(tǒng)高級C語言編程[M].北京:北京航空航天大學(xué)出版社,2011.

      [6]楊水清.ARM嵌入式Linux系統(tǒng)開發(fā)技術(shù)詳解(珍藏版)[M].北京:電子工業(yè)出版社,2009

      猜你喜歡
      緩沖區(qū)內(nèi)核瀏覽器
      嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計(jì)與實(shí)現(xiàn)
      萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      反瀏覽器指紋追蹤
      電子制作(2019年10期)2019-06-17 11:45:14
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      環(huán)球?yàn)g覽器
      再見,那些年我們嘲笑過的IE瀏覽器
      關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
      地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計(jì)與實(shí)現(xiàn)
      扶绥县| 卓资县| 双柏县| 平阳县| 安康市| 芮城县| 威宁| 博兴县| 象州县| 凤冈县| 安义县| 五台县| 上高县| 开封县| 漳州市| 建宁县| 大同县| 清河县| 铜鼓县| 彩票| 美姑县| 武冈市| 屏南县| 交城县| 莲花县| 和林格尔县| 枣强县| 英吉沙县| 吉水县| 昌邑市| 稻城县| 肇源县| 芒康县| 交城县| 金沙县| 阳原县| 綦江县| 台东市| 肃宁县| 东台市| 怀集县|