日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于B/S模式的嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計(jì)

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

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

1 視頻監(jiān)控系統(tǒng)方案設(shè)計(jì)

1.1 監(jiān)控系統(tǒng)硬件平臺(tái)設(shè)計(jì)

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

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

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

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

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

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

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

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

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é)議族可以將各種操作系統(tǒng)和網(wǎng)絡(luò)部件連接起來(lái),它提供了一種在各種系統(tǒng)間移動(dòng)數(shù)據(jù)的標(biāo)準(zhǔn)方法[5]。

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

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

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

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

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

3.2 Boa在ARM上的移植與配置

(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”即可交叉編譯生成可執(zhí)行文件Boa,通過(guò)串口下載到根文件系統(tǒng)下的/ bin下就實(shí)現(xiàn)了移植。

(2)配置

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

4 基于B/S模式的用戶視頻監(jiān)控端實(shí)現(xiàn)

系統(tǒng)采用B/S模式,相比C/S模式,用戶不需要做任何維護(hù),這對(duì)用戶人力、物力、時(shí)間、費(fèi)用的節(jié)省是顯而易見的,并且可以跨平臺(tái)操作,真正方便了用戶。

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

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

  connection=new Socket(m_strServer,port);

  in=connection.getInputStream();

  ut=connection.getOutputStream();

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

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

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

  Public void mouse(MouseEvent evt) {…};

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

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

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

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

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

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

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

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

  ImageIcon ii=new ImageIcon(image);

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

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

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

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

1.2 監(jiān)控系統(tǒng)軟件方案設(shè)計(jì)

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

一套完整的視頻監(jiān)控系統(tǒng)應(yīng)該至少包含視頻數(shù)據(jù)的采集、處理、傳輸、存儲(chǔ)與控制等功能,為了很好地實(shí)現(xiàn)以上功能,本系統(tǒng)劃分為三大功能模塊:嵌入式流媒體服務(wù)器、嵌入式Web服務(wù)器和用戶視頻監(jiān)控端。嵌入式流媒體服務(wù)器模塊主要實(shí)現(xiàn)視頻數(shù)據(jù)的采集、存儲(chǔ)和傳輸?shù)裙δ埽磺度胧絎eb服務(wù)器模塊負(fù)責(zé)處理監(jiān)控端發(fā)來(lái)的請(qǐng)求并通過(guò)與瀏覽器的交互為用戶提供監(jiān)控平臺(tái);用戶視頻監(jiān)控端模塊實(shí)現(xiàn)對(duì)遠(yuǎn)程視頻的實(shí)時(shí)監(jiān)控,并且可以控制視頻的亮度和對(duì)比度等。

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

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

2.1 基于Video4Linux的視頻采集

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

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉