<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 深入研究嵌入式web服務(wù)器視頻監(jiān)控的應(yīng)用

          深入研究嵌入式web服務(wù)器視頻監(jiān)控的應(yīng)用

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

          1.引言

          本文引用地址:http://www.ex-cimer.com/article/148238.htm

          后PC機(jī)時(shí)代的到來(lái)引發(fā)了信息產(chǎn)品的產(chǎn)生,而Internet與信息產(chǎn)品的結(jié)合是當(dāng)今發(fā)展的一個(gè)趨勢(shì),Internet技術(shù)的產(chǎn)生正好迎合了這個(gè)趨勢(shì)。據(jù)分析,Internet系統(tǒng)在Internet電話、游戲裝置和手持式通信裝置的推動(dòng)下將會(huì)有突飛猛進(jìn)的發(fā)展。由于Internet技術(shù)的滲透,系統(tǒng)正變得越來(lái)越智能化并具有越來(lái)越多的網(wǎng)絡(luò)友好特性;又由于Web技術(shù)的飛速發(fā)展,給嵌入式系統(tǒng)帶入Internet提供了絕佳的途徑。

          嵌入式技術(shù)是系統(tǒng)設(shè)計(jì)最廣泛的技術(shù)之一。本文根據(jù)監(jiān)控系統(tǒng)對(duì)敖據(jù)吞吐量和安全可靠性等各方面的實(shí)際要求,結(jié)合相關(guān)的新進(jìn)展,討論了在監(jiān)控系統(tǒng)設(shè)計(jì)中的技巧,并詳細(xì)做了實(shí)現(xiàn)上的闡述。對(duì)所有基于嵌入式技術(shù)的監(jiān)控系統(tǒng)的設(shè)計(jì)具有非常實(shí)際的指導(dǎo)作用。

          把圖像采集、視頻壓縮和WEB功能集中到一個(gè)體積很小的設(shè)備內(nèi),可以直接連入局域網(wǎng)和Internet,達(dá)到即插即用,省掉多種復(fù)雜的電纜,安裝方便,用戶也無(wú)須安裝任何硬件設(shè)備即可觀看,這使得由嵌入式網(wǎng)絡(luò)組成的監(jiān)控網(wǎng)絡(luò)組網(wǎng)和擴(kuò)展都極為靈活方便。

          2.WEB所在系統(tǒng)工作原理

          如圖1所示,系統(tǒng)有兩種網(wǎng)絡(luò)接入方式:通過PPPOE自動(dòng)撥號(hào),動(dòng)態(tài)獲取IP聯(lián)入Internet;自定義靜態(tài)IP連入局域網(wǎng)。

          之后,系統(tǒng)的整個(gè)工作流程包括兩條主線:

          1.通過HTTP/TCP/IP方式,解析來(lái)自監(jiān)控端的網(wǎng)頁(yè)請(qǐng)求,包括:攝像機(jī)控制(云臺(tái)上下左右、鏡頭光圈、縮放等等),數(shù)據(jù)庫(kù)讀寫(視頻參數(shù)如分辨率、亮色度、碼流,畫質(zhì)),視頻調(diào)度與傳輸(多個(gè)用戶之間視頻數(shù)據(jù)的發(fā)送停止及其相互協(xié)調(diào),系統(tǒng)參數(shù)也放在這里)。

          2.通過RTP/UDP/IP方式,為監(jiān)控端提供所需的實(shí)時(shí)視頻信息。RTP/UDP/IP的方式兼顧了視頻傳輸?shù)膶?shí)時(shí)性與QoS保證。

          3.WEB服務(wù)器的選擇

          根據(jù)工作原理的描述,WEB服務(wù)器處于整個(gè)系統(tǒng)核心的位置,需要解決的幾個(gè)難點(diǎn)包括:

          1.安全性。只有授權(quán)登陸用戶才能進(jìn)行系統(tǒng)配置(網(wǎng)絡(luò)參數(shù)、視頻特性等等)。普通用戶只能簡(jiǎn)單監(jiān)控。

          2.流量控制。視頻數(shù)據(jù)連續(xù)且大量,服務(wù)器應(yīng)該具備一定的協(xié)調(diào)各路監(jiān)控?cái)?shù)據(jù)的能力。

          3.實(shí)時(shí)性。對(duì)于監(jiān)控端的web請(qǐng)求指令響應(yīng)速度,特別是在高負(fù)荷的情況下。

          4.性能。在多路監(jiān)控請(qǐng)求同時(shí)存在的情況下,系統(tǒng)的響應(yīng)速度。

          5.支持串口命令。云臺(tái)控制指令需要串口支持。

          6.數(shù)據(jù)庫(kù)交互。包括用戶數(shù)據(jù)庫(kù),系統(tǒng)配置參數(shù)等等,都需要實(shí)現(xiàn)脫機(jī)保存。

          綜上所述,Thttpd在安全性、性能、流量控制等方面有效的滿足系統(tǒng)需要,當(dāng)然,實(shí)時(shí)性也得到很好的保證。下面,結(jié)合源碼,首先實(shí)現(xiàn)Thttpd的基本功能,然后將視頻數(shù)據(jù)轉(zhuǎn)發(fā)、安全性、支持串口命令、數(shù)據(jù)庫(kù)交互的實(shí)現(xiàn)完善起來(lái)。

          4.Thttpd基本功能的實(shí)現(xiàn)

          首先,確保在編譯uCLinux內(nèi)核的makemenuconfig這一步,選中busybox中的Thttpd。

          然后,根據(jù)需要,修改源碼/user/thttpd下的config.h:

          #defineDEFAULT_PORT80

          //服務(wù)器監(jiān)聽端口

          #defineDEFAULT_DIR/home/httpd

          //設(shè)定服務(wù)器根目錄

          #defineINDEX_NAMEindex.html

          //設(shè)定訪問服務(wù)器時(shí)的默認(rèn)主頁(yè)

          #defineAUTH_FILEpasswd

          //授權(quán)用戶數(shù)據(jù)庫(kù)文件

          #defineCGI_PATTERN/cgi-bin/*.cgi

          //CGI的文件名格式

          #defineCGI_PATH/home/httpd/cgi-bin

          //CGI的所在目錄

          接下來(lái),建立服務(wù)器根目錄和文件目錄:

          由于uCLinux的根文件系統(tǒng)為ROMFS,只讀,因此要在生成文件系統(tǒng)映像之前建立好其中的目錄和文件。首先是Web服務(wù)器根目錄,再是根目錄下的子目錄:文件根目錄和CGI程序目錄。修改/vendor/Samsung/4510B/makefile文件,在ROMFS_DIRS列出的目錄中增加home/httpd(服務(wù)器根目錄和文件根目錄),home/httpd/cgi-bin(CGI程序目錄)。

          最后,將監(jiān)控系統(tǒng)相關(guān)的網(wǎng)頁(yè)和CGI程序分別放在/vendor/Generic/httpd和/vendor/Generic/httpd/cgi-bin中,就可以隨內(nèi)核編譯過程時(shí)自動(dòng)復(fù)制到image的相關(guān)目錄下。在/vendor/Samsung/4510B/rc中添加thttpd實(shí)現(xiàn)上電自動(dòng)執(zhí)行。

          5.HTTP基本驗(yàn)證(RFC2617)的實(shí)現(xiàn)

          首先必須生成存放用戶及其密碼的數(shù)據(jù)庫(kù)文件:

          由于Thttpd在http驗(yàn)證的實(shí)現(xiàn)上基于b64_decode_table解密,因此需要提供相對(duì)應(yīng)b64加密而成的數(shù)據(jù)庫(kù)文件。然后,編譯/user/htpasswd.c,切換到相應(yīng)目錄下,

          執(zhí)行。/htpasswd-cpasswdroot

          Addingpasswordforroot.

          Newpassword:

          Re-typenewpassword:

          其中,-c表示創(chuàng)建一個(gè)名字為passwd的新的用戶數(shù)據(jù)加密文件,同時(shí)第一個(gè)用戶名為root。

          之后,將passwd文件復(fù)制到/vendor/Generic/httpd下面,并且注意在thttpd/config.h中define的AUTH_FILE與passwd同名。至此,thttpd的http驗(yàn)證功能就順利添加完成。

          6.視頻調(diào)度與傳輸

          在本系統(tǒng)中,模擬視頻數(shù)據(jù)經(jīng)過AD,采樣等預(yù)處理進(jìn)入支持MPEG4編碼的ASIC芯片壓縮后,打包發(fā)送的任務(wù)由Thttpd完成。

          在多個(gè)監(jiān)控端請(qǐng)求同時(shí)存在的情況下,指令響應(yīng)本身Thttpd已經(jīng)完成,所以我們只需要實(shí)現(xiàn)數(shù)據(jù)傳輸。

          在main函數(shù)里Mainloop開始之前依次執(zhí)行g(shù)et_device,driver_init,device_init和alloc_resource,interrupt_enable,device_start,視頻流的編碼壓縮就開始了。添加定時(shí)器響應(yīng)函數(shù),(void)tmr_create((structtimeval*)0,transfer_bitstream,(ClientData)mpeg4_fd,0,1);

          其中mpeg4_fd,是編碼芯片的設(shè)備描述符,transfer_bitstream為響應(yīng)函數(shù)(內(nèi)容略)。

          然后,根據(jù)Thttpd連接請(qǐng)求的變化,在handle_read與handle_send中添加簡(jiǎn)單相應(yīng)連接有效性判斷的代碼即可完成數(shù)據(jù)調(diào)度與傳輸?shù)墓δ堋?/p>

          7.串口命令支持

          云臺(tái)控制指令的發(fā)送需要RS485的支持。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();