<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于B/S模式的嵌入式視頻監控系統的設計

基于B/S模式的嵌入式視頻監控系統的設計

作者: 時(shí)間:2012-02-17 來(lái)源:網(wǎng)絡(luò ) 收藏

將被監控現場(chǎng)的實(shí)時(shí)圖像和數據等信息準確、清晰、快速地傳送到監控中心服務(wù)器,監控中心將實(shí)時(shí)、直接地掌握各個(gè)被監控現場(chǎng)的當前情況(包括圖像、聲音及其他敏感數據),從而對敏感事件進(jìn)行快速反應[1]。監控正朝著(zhù)數字化、網(wǎng)絡(luò )化、集成化的監控方向蓬勃發(fā)展。相比傳統的視頻采集,視頻具有可靠性高、組網(wǎng)方便、可遠程監控等優(yōu)點(diǎn),因而更適用于工業(yè)控制、銀行、政府部門(mén)的安防系統中[2]。

本文引用地址:http://dyxdggzs.com/article/149648.htm

本文了一種具有用戶(hù)零維護、價(jià)格低廉、性能穩定等特點(diǎn)的視頻監控系統。該系統以ARM處理器S3C2440和嵌入式Linux操作系統為核心平臺,通過(guò)USB攝像頭采集視頻數據,TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò )傳輸,用戶(hù)通過(guò)瀏覽器即可監控遠程視頻,視頻可以保存,以便回放。

1 視頻監控系統方案

1.1 監控系統硬件平臺

監控系統硬件平臺是整個(gè)監控系統的基礎,在系統設計中占有至關(guān)重要的地位,硬件選擇的成功與否直接決定著(zhù)系統功能的優(yōu)劣。本設計中主要硬件有NAND Flash、嵌入式處理器S3C2440、SDRAM、網(wǎng)卡、USB接口攝像頭等。

在V4L標準中提供了多個(gè)數據結構和控制命令, 程序通過(guò)調用函數對設備進(jìn)行控制, 完成視頻采集的任務(wù)。ioctl()函數中主要的設備控制命令有:

  (1)VIDIOCGCAP:獲取采集設備基本信息,比如支持最大最小分辨率等;

  (2)VIDIOCSPICT、VIDIOCGPICT:分別為設置和獲取采集圖像的各種屬性;

  (3)VIDIOCGMBUF:獲取緩沖區信息,比如每幀大小、最多支持的幀數等;

  (4)VIDIOCMCAPTURE:捕捉圖像,獲取圖像信息;

  (5)VIDIOCSYNC:等待采集一幀圖像完畢。

應用程序獲取攝像頭采集的圖像數據有兩種方法,分別是read()(直接讀取的方法)和mmap()(內存映射的方法)。mmap()系統調用使得進(jìn)程之間通過(guò)映射同一個(gè)文件而實(shí)現內存共享,優(yōu)點(diǎn)是效率高,因為進(jìn)程可以直接讀寫(xiě)內存,而不需要任何數據的拷貝,加速了I/O訪(fǎng)問(wèn),本系統就采用此方法。

2.2 TCP/IP協(xié)議的視頻傳輸

TCP/IP協(xié)議指的是Internet上使用的兩種網(wǎng)絡(luò )協(xié)議,即傳輸控制協(xié)議和網(wǎng)際協(xié)議。TCP協(xié)議是一個(gè)可靠的點(diǎn)到點(diǎn)之間的協(xié)議,IP協(xié)議是一個(gè)傳輸層的協(xié)議。TCP/IP協(xié)議族可以將各種操作系統和網(wǎng)絡(luò )部件連接起來(lái),它提供了一種在各種系統間移動(dòng)數據的標準方法[5]。

本系統中,首先服務(wù)器通過(guò)socket函數創(chuàng )建套接字,并使用bind函數將套接字與某端口進(jìn)行綁定;然后調用listen函數,服務(wù)器將處于*狀態(tài),等待用戶(hù)監控端請求連接指定端口;當接收到用戶(hù)監控端的連接請求后,服務(wù)器調用accept函數來(lái)建立與用戶(hù)監控端間的通信;在成功建立通信后,就可以通過(guò)read函數或write函數進(jìn)行通信。

本系統可以人機交互,用戶(hù)通過(guò)網(wǎng)頁(yè)可以向視頻服務(wù)器傳遞控制信息,比如調節幀速、亮度等。當建立連接后,首先用戶(hù)監控端發(fā)送一個(gè)包含控制信息的client_t結構體數據給視頻服務(wù)器;然后視頻服務(wù)器根據控制信息采集一幀視頻數據,并生成一個(gè)包含這一幀視頻信息的frame_t結構體數據,把它們發(fā)送給用戶(hù)監控端。這就完成了一次人機交互,這樣不斷地循環(huán),就實(shí)現了數據傳輸。

3 嵌入式Web服務(wù)器的實(shí)現

3.1 嵌入式Web服務(wù)器的選擇

Linux下嵌入式Web服務(wù)器主要有3個(gè),分別是httpd、thttpd和Boa。httpd是最簡(jiǎn)單的一個(gè)Web服務(wù)器,它的功能最弱,不支持認證,不支持CGI。thttpd和Boa都支持認證和CGI等,功能都比較全。本系統采用Boa Web服務(wù)器,它通過(guò)建立HTTP請求列表來(lái)處理多路HTTP連接請求,節省了系統資源,這對嵌入式系統來(lái)說(shuō)至關(guān)重要。同時(shí)它還具有自動(dòng)生成目錄、自動(dòng)解壓文件等功能。Boa具有很高的HTTP請求處理速度和效率,在嵌入式系統中具有很高的應用價(jià)值。

3.2 Boa在A(yíng)RM上的移植與配置

(1)移植過(guò)程

http://www.boa.org/下載Boa源碼,選擇boa-0.94.13.tar.gz,輸入解壓命令“tar xzvf boa-0.94.13.tar.gz”;進(jìn)入解壓生成的源碼目錄下的src子目錄,輸入命令“./cONfigure”,生成Makefile文件;修改Makefile文件,將CC和CPP的值改成交叉編譯器安裝的路徑;輸入命令“make”即可交叉編譯生成可執行文件Boa,通過(guò)串口下載到根文件系統下的/ bin下就實(shí)現了移植。

(2)配置

在/etc目錄下新建一個(gè)Boa目錄,里面存放Boa的主要配置文件boa.conf,在Boa源碼目錄下已有一個(gè)示例boa.conf,可以在其基礎上進(jìn)行修改;修改Group nogroup為Group root,修改User nobody為User root,這里的root是開(kāi)發(fā)板存在的組和用戶(hù);修改#ServerName www.your.org.here為ServerName cs2440;修改DocumentRoot /var/www為DocumentRoot /www,設置HTML文檔的主目錄/www,其他采用默認設置即可。此外,還需要將mime.types文件復制到/etc目錄下,通??梢詮腖inux主機的/etc目錄下直接復制即可。

4 的用戶(hù)視頻監控端實(shí)現

系統采用,相比C/S,用戶(hù)不需要做任何維護,這對用戶(hù)人力、物力、時(shí)間、費用的節省是顯而易見(jiàn)的,并且可以跨平臺操作,真正方便了用戶(hù)。

系統通過(guò)開(kāi)發(fā)Java Applet應用程序,并嵌入網(wǎng)頁(yè)中,網(wǎng)頁(yè)名稱(chēng)設為Boa Web服務(wù)器默認主頁(yè)名,把它們保存在/www中,用戶(hù)在瀏覽器地址欄中輸入視頻服務(wù)器的IP地址,就能在網(wǎng)頁(yè)里顯示攝像頭的監控圖像。通過(guò)Java Applet與視頻服務(wù)器進(jìn)行交互,實(shí)現對視頻數據的控制、傳輸和播放。Java Applet程序中主要功能步驟和主要函數可描述為:

  (1)創(chuàng )建套接字、輸入流和輸出流。

  connection=new Socket(m_strServer,port);

  in=connection.getInputStream();

  ut=connection.getOutputStream();

  IP地址及端口都是由嵌入在HTML中applet>…/applet>部分的參數傳入的,并創(chuàng )建此Socket對象的輸入流和輸出流。

  (2)分配接收緩沖區:byte[]buffer=new byte[512*1024];

  (3)發(fā)送一個(gè)用戶(hù)控制信息。它由用戶(hù)用鼠標點(diǎn)擊圖標而生成。當用戶(hù)點(diǎn)擊瀏覽器中的視頻窗口時(shí),在上方會(huì )顯示亮度等圖標,通過(guò)點(diǎn)擊圖標兩側的“+”和“-”而寫(xiě)入控制信息;當點(diǎn)擊圖標以外的地方,圖標就會(huì )消失,實(shí)現全窗口的視頻,便于監控,操作簡(jiǎn)單。

  Public void mouse(MouseEvent evt) {…};

  out.write(b);//b是包含控制信息的字符數組名

  (4)讀取一幀圖像頭信息,確認圖像數據的正確性和獲取圖像數據的大小。

  n=in.read(buffer,0,HDRLEN);//HDRLEN為圖像信息頭長(cháng)度,設置為50 B

  對頭信息中包含的約定字符進(jìn)行判斷,若正確就可以繼續接收圖像數據,不正確則返回(3)。

  (5)讀取圖像數據,把頭信息后的圖像數據寫(xiě)入緩沖區,以供播放顯示。

  r=in.read(buffer,HDRLEN,buffer.length-HDRLEN);

  (6)實(shí)現圖像顯示。由于緩沖區中包含圖像頭信息,為單獨使用圖像數據,需把圖像數據拷貝到另一緩沖區buffer2中。

  BufferedImage image= ImageIO.read(new ByteArrayInputStream(buffer2));

  ImageIcon ii=new ImageIcon(image);

  m_label.setIcon(ii);//顯示圖像

通過(guò)以上(3)到(6)的不斷循環(huán)運行,用戶(hù)從監控網(wǎng)頁(yè)上可以看到連續動(dòng)態(tài)的圖像,效果很好,畫(huà)面流暢,不存在明顯的延時(shí),實(shí)現了視頻監控。

本文提出的這種基于的嵌入式視頻監控系統相比傳統C/S模式,真正實(shí)現了用戶(hù)零維護,可以跨平臺監控,方便用戶(hù)。采用嵌入式處理器和Linux操作系統相結合,很好地體現了本監控系統具有集成化、網(wǎng)絡(luò )化、功耗低等優(yōu)點(diǎn),可廣泛擴展應用在工業(yè)控制、可視電話(huà)、交通管理等諸多領(lǐng)域。

視頻監控系統的硬件結構方案如圖1所示。系統以S3C2440處理器為核心,外擴其他外圍設備。S3C2440處理器是Samsung公司基于A(yíng)RM公司的ARM920T處理器核,它是一款高度集成的芯片,主頻為400 MHz,提供了一套較完整的通用外圍設備接口,支持性?xún)r(jià)比非常高的NAND Flash啟動(dòng),可支持Linux等多種操作系統的移植[3]。

1.2 監控系統軟件方案設計

本系統選擇Linux操作系統作為軟件開(kāi)發(fā)平臺,編譯環(huán)境采用交叉編譯調試的方式,嵌入式Linux的內核選用2.6.13,根文件系統采用yaffs。

一套完整的視頻監控系統應該至少包含視頻數據的采集、處理、傳輸、存儲與控制等功能,為了很好地實(shí)現以上功能,本系統劃分為三大功能模塊:嵌入式流媒體服務(wù)器、嵌入式Web服務(wù)器和用戶(hù)視頻監控端。嵌入式流媒體服務(wù)器模塊主要實(shí)現視頻數據的采集、存儲和傳輸等功能;嵌入式Web服務(wù)器模塊負責處理監控端發(fā)來(lái)的請求并通過(guò)與瀏覽器的交互為用戶(hù)提供監控平臺;用戶(hù)視頻監控端模塊實(shí)現對遠程視頻的實(shí)時(shí)監控,并且可以控制視頻的亮度和對比度等。

2 嵌入式流媒體服務(wù)器的實(shí)現

流媒體服務(wù)器模塊的主要功能有視頻采集、視頻壓縮、視頻存儲和視頻傳輸。本系統采用中星微公司生產(chǎn)的ZC0301芯片的USB攝像頭,ZC0301主要由五大功能模塊組成,即系統控制、圖像信號處理、次取樣和水平掃描模塊、JPEG編碼器和USB設備控制[4]。采用該芯片的攝像頭應用最廣泛,方便購買(mǎi)和維護,經(jīng)過(guò)此芯片處理后得到的是JPEG編碼的位流,實(shí)現了視頻的壓縮。

2.1 基于Video4Linux的視頻采集

Video4Linux(簡(jiǎn)稱(chēng)“V4L”)是Linux中關(guān)于視頻設備的內核驅動(dòng),它是針對視頻設備的應用程序編程提供的一系統接口函數。視頻采集的基本流程如圖2所示。利用V4L對USB攝像頭的編程需要用到Linux下2個(gè)系統調用,分別是ioctl()調用和mmap()調用。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

tcp/ip相關(guān)文章:tcp/ip是什么


攝像頭相關(guān)文章:攝像頭原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>