基于Linux的嵌入式网络视频监控系统研究与设计
生活随笔
收集整理的這篇文章主要介紹了
基于Linux的嵌入式网络视频监控系统研究与设计
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
http://www.nesr.lingd.net/article-4364839-1.html
摘 要:網(wǎng)絡(luò)視頻監(jiān)控已經(jīng)在嵌入式領(lǐng)域得到了發(fā)展,但目前視頻監(jiān)控硬件設(shè)施比較昂貴,不能普遍使用。本文提出了一種以ARM9處理器為開發(fā)硬件平臺和嵌入式Linux系統(tǒng)為軟件開發(fā)環(huán)境的新方法,采用中星微ZC301攝像頭作為視頻前端采集,利用TCP/IP協(xié)議技術(shù)實現(xiàn)網(wǎng)絡(luò)通信。系統(tǒng)內(nèi)部嵌入移植的Web服務(wù)器,用戶可以通過瀏覽器進行遠(yuǎn)端訪問。該系統(tǒng)實現(xiàn)了局域網(wǎng)的環(huán)境監(jiān)控,開發(fā)成本低,使用方便而且性能高。 關(guān)鍵詞:嵌入式 視頻采集 Web服務(wù)器 視頻監(jiān)控 瀏覽器 1 引言 隨著嵌入式處理器和開源Linux系統(tǒng)的廣泛應(yīng)用,網(wǎng)絡(luò)視頻監(jiān)控向著嵌入式方向發(fā)展已經(jīng)成為一種趨勢。目前已經(jīng)在該領(lǐng)域得到了初步發(fā)展,但是由于前端監(jiān)控系統(tǒng)的硬件設(shè)施昂貴,成本較高,不能普便使用。低廉的設(shè)備又不能滿足用戶的動態(tài)可視化以及穩(wěn)定性和可靠性的要求。針對用戶的需求,本論文設(shè)計了低成本高效能的方案,運用當(dāng)前的網(wǎng)絡(luò)技術(shù)、視頻壓縮技術(shù)和嵌入式技術(shù)等設(shè)計基于嵌入式Linux系統(tǒng)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)。該系統(tǒng)以嵌入式Linux系統(tǒng)和嵌入式控制器S3C2410為核心平臺,在這個平臺上建立web服務(wù)器和視頻服務(wù)器。利用TCP/IP協(xié)議技術(shù)實現(xiàn)網(wǎng)絡(luò)通信,把USB數(shù)字?jǐn)z像頭采集到的圖像進行JPEG壓縮, 然后通過網(wǎng)絡(luò)程傳輸?shù)竭h(yuǎn)計算機客戶端。客戶端方采用Java Applet技術(shù)實現(xiàn)圖像的接收并完成顯示功能。客戶端的用戶可以通過具有java插件的瀏覽器實現(xiàn)監(jiān)控。實驗證明該系統(tǒng)的穩(wěn)定性、可靠性較高。 2 系統(tǒng)整體模塊設(shè)計 本系統(tǒng)主要由嵌入式系統(tǒng)和網(wǎng)絡(luò)通信兩大系統(tǒng)組成。嵌入式系統(tǒng)由嵌入式處理器S3C2410和linux系統(tǒng)組成,網(wǎng)絡(luò)系統(tǒng)由web服務(wù)器和客戶端以及實現(xiàn)通信的通道組成。系統(tǒng)的設(shè)計采用模塊化設(shè)計,本系統(tǒng)由嵌入式系統(tǒng)模塊、視頻采集模塊、網(wǎng)絡(luò)通信模塊和客戶端組成。各個模塊之間的關(guān)系如圖1所示。 嵌入式處理器S3C2410是一款基于ARM920T內(nèi)核的16/32位RISC微處理器。內(nèi)部帶有全性能的MMU(內(nèi)存處理單元),它適用于設(shè)計移動手持設(shè)備類產(chǎn)品,具有高性能、低功耗、接口豐富和體積小等優(yōu)良特性。該處理器集成了64M SDRAM、64M NAND FLASH 、1M BOOT FLASH、RJ - 45網(wǎng)卡、音頻輸入與輸出、USB HOST、USB SLAVE、標(biāo)準(zhǔn)串口、SD卡插座等。用戶可以將代碼存放在NAND FLASH中,并從NAND FLASH啟動。內(nèi)置的NAND FLASH將訪問控制端口,并將引導(dǎo)代碼(vivi)自動加載到內(nèi)部SRAM運行,之后SRAM中的引導(dǎo)代碼將操作系統(tǒng)內(nèi)核映像(zlmage)以及根文件系統(tǒng)加載到SRAM并運行。 3 系統(tǒng)軟件的設(shè)計實現(xiàn) 3.1 視頻采集模塊實現(xiàn) Linux內(nèi)核驅(qū)動里面已經(jīng)支持了諸如ov511芯片的攝像頭,但是這些攝像頭采集的效果不好。本系統(tǒng)采用中星微zc0301芯片的攝像頭,該攝像頭采用cmos傳感器,價格低廉,性能高,usb接口協(xié)議靈活,同時具有同步和異步數(shù)據(jù)傳輸,兼容性好,而且提供了良好的圖像處理及對外接口功能。目前l(fā)inux驅(qū)動里面不支持該類芯片的驅(qū)動。為了使攝像頭能夠在系統(tǒng)中工作,需要加載該驅(qū)動。驅(qū)動的下載地址http://mx-haard.free.fr/spaca50x/embedded/KernelPatch/。系統(tǒng)linux內(nèi)核版本使用的是linux 2.6.11,需要下載2.6版本的內(nèi)核補丁。然后對內(nèi)核進行打補丁,這樣內(nèi)核就支持該芯片的驅(qū)動。 在USB攝像頭被驅(qū)動后,只需要再編寫視頻采集的應(yīng)用程序就可以了,視頻圖像的采集是通過Vide04linux實現(xiàn)的。視頻采集程序的流程如圖2所示。 Video4linux是linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動,它為針對視頻設(shè)備的應(yīng)用程序編程提供一系列接口函數(shù)。在視頻采集中,應(yīng)用程序首先通過open()函數(shù)打開視頻采集設(shè)備并返回一個文件描述符號,這個文件描述符就代表了捕獲的設(shè)備硬件。成功開啟設(shè)備檔后,調(diào)用 ioctl()取的設(shè)備文件的相關(guān)信息,并且將取的信息放到video capability結(jié)構(gòu)中,同樣調(diào)用 ioctl()將視頻窗口信息放到video picture結(jié)構(gòu)中。視頻設(shè)備的關(guān)閉通過close()函數(shù)實現(xiàn)的。通過這些函數(shù),可容易打開、讀寫、關(guān)閉等基本操作。 3.2 網(wǎng)絡(luò)通信模塊實現(xiàn) 網(wǎng)絡(luò)通信模塊負(fù)責(zé)將攝像頭采集的視頻圖像數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)端計算機。監(jiān)控系統(tǒng)在實現(xiàn)方式上采用了“瀏覽器—服務(wù)器”結(jié)構(gòu),即在視頻采集端建立嵌入式Web服務(wù)器,在客戶端的Web瀏覽器上輸入IP地址就能接收到從服務(wù)器端傳過來的視頻信息,它包括嵌入式Web服務(wù)器設(shè)計和視頻應(yīng)用程序的開發(fā)。 3.2.1嵌入式Web服務(wù)器設(shè)計 Web服務(wù)器和客戶端的瀏覽器是通過超文本傳送協(xié)議HTTP進行通信的。其工作原理大致可分為三個步驟,第一步,Web瀏覽器向一個特定的服務(wù)器發(fā)出Web頁面請求;第二步,Web服務(wù)器接收到Web頁面請求后,尋找所請求的Web頁面,并將所請求的Web頁面?zhèn)魉徒oWeb瀏覽器;第三步,Web服務(wù)器接收到所請求的Web頁面,并將它顯示出來。Web服務(wù)器工作原理如圖3所示。 嵌入式Web服務(wù)器是移植Web服務(wù)器到嵌入式領(lǐng)域的一種服務(wù)器。它仍然是以TCP/IP為底層的通信協(xié)議。嵌入式Web服務(wù)器簡化了系統(tǒng)結(jié)構(gòu),將信息采集和信息發(fā)布都繼承到嵌入式設(shè)備中,具有標(biāo)準(zhǔn)的接口形式和通信協(xié)議,內(nèi)嵌的Web服務(wù)器同樣可以基于瀏覽器方式的操作和控制界面。 目前嵌入式領(lǐng)域中最典型的Web服務(wù)器有boa和thttpd。boa是一個非常小巧的Web服務(wù)器,可執(zhí)行代碼只有約60kb,占用系統(tǒng)的資源少,而且速度快和安全性能好。本系統(tǒng)采用的就是boa服務(wù)器,就是把boa服務(wù)器的移植到本系統(tǒng)中。首先從www.boa.org下載boa源代碼, 目前最新版本boa-0.94.13。解壓到linux系統(tǒng)目錄下,修改makefile。只需要把CC=gcc改成CC=arm-linux-gcc和CPP=gcc-E改成CPP=arm-linux-gcc-E就可以了。然后進行編譯,把生成的Web應(yīng)用程序下載到開發(fā)板上linux系統(tǒng)中的/bin目錄下, 讓boa在系統(tǒng)啟動時候自動運行,這樣在開發(fā)板上就移植了boa服務(wù)器。 3.2.2網(wǎng)絡(luò)視頻應(yīng)用開發(fā) 視頻信息通過攝像頭采集到的圖像需要通過網(wǎng)絡(luò)傳送另一端通過瀏覽器顯示出來,因而網(wǎng)絡(luò)視頻應(yīng)用的開發(fā)包含視頻服務(wù)器端程序設(shè)計和客戶端程序設(shè)計。 (1)視頻服務(wù)器端程序設(shè)計視頻服務(wù)器端工作主要是與客戶端建立連接,并根據(jù)客戶端用戶的指令,調(diào)用相應(yīng)的函數(shù)處理客戶端的控制要求。服務(wù)器端程序由C語言開發(fā)。主程序的設(shè)計首先初始化監(jiān)控設(shè)備的數(shù)據(jù)結(jié)構(gòu),包括采集模式、顯示模式和端口初始化設(shè)置等,初始化并分配內(nèi)存并以可讀寫的方式打開視頻設(shè)備。然后系統(tǒng)創(chuàng)建了一個grab線程,grab函數(shù)通過調(diào)用v4lGrab()采集圖像并傳輸?shù)骄彌_區(qū)。然后創(chuàng)建一個Socket對象并監(jiān)聽,然后用Accept方法監(jiān)聽是否有客戶端的連接請求。如果沒有客戶端連接則進程阻塞,繼續(xù)監(jiān)聽,當(dāng)有客戶端連接請求則創(chuàng)建一個新的socket對象,然后啟動視頻服務(wù)線程service來與客戶端通信。視頻服務(wù)器工作流程如圖4所示。 (2)客戶端程序設(shè)計 在本系統(tǒng)中,遠(yuǎn)程的web用戶查看視頻采集的圖像信息是通過applet與視頻服務(wù)器進行交互的。applet是能夠在web網(wǎng)頁中運行的應(yīng)用程序,它具有安全,功能強和跨平臺等特性。 applet主要完成視頻播放的功能。applet的程序代碼是保存在web服務(wù)器上的,當(dāng)web用戶通過瀏覽器請求視頻監(jiān)控要求時,該程序下載到web用戶瀏覽器上運行。用戶通過該程序進行現(xiàn)場動態(tài)監(jiān)控。applet程序是由java語言實現(xiàn)的。applet運行時首先調(diào)用init()函數(shù)進行一些初始化工作,然后自動調(diào)用start()與視頻服務(wù)器建立連接,將視頻圖像顯示在web 用戶的瀏覽器上。 3.3 web網(wǎng)頁設(shè)計 web網(wǎng)頁設(shè)計是用HTML語言設(shè)計的。HTML語言是一種超文本標(biāo)記語言,它包含了文檔數(shù)據(jù)和顯示格式兩個部分,其中文檔數(shù)據(jù)是顯示在瀏覽器中數(shù)據(jù)內(nèi)容,顯示格式則規(guī)定了這些內(nèi)容在瀏覽器中以格式呈現(xiàn)給用戶的。HTML能夠用來表示超文本消息、郵件、文檔、超媒體和數(shù)據(jù)庫查詢等,以及有內(nèi)嵌圖形的簡單結(jié)構(gòu)文檔,還有已存在的信息的超文本視圖。當(dāng)用戶請求web網(wǎng)頁時,瀏覽器就把HTML的數(shù)據(jù)顯示給用戶。 本系統(tǒng)網(wǎng)頁的設(shè)計主要是通過<applet>標(biāo)記的方式將applet引入到html文檔中。在<applet>和</applet>之間標(biāo)記一些參數(shù)屬性。這個標(biāo)記之間的程序代碼設(shè)計如下。 其中codebase和code屬性配合給出applet類的完整路徑,code給出文件的名字,codebase指出包含文件的路徑。width和height是applet窗口的大小。align是applet窗口顯示的位置。上述的這些代碼完成了視頻顯示的主體工作。 4 實驗測試 系統(tǒng)測試是在實驗室內(nèi)局域網(wǎng)進行的。客戶端使用radhat enterprise linux AS4操作系統(tǒng),瀏覽器使用的是firefox瀏覽器,由于服務(wù)器端的web網(wǎng)頁包含java控件, 默認(rèn)安裝的firefox瀏覽器不支持java插件,需要安裝java環(huán)境,讓瀏覽器支持java插件。硬件平臺使用的是友善之臂S3C2410板。把本系統(tǒng)制作出來的內(nèi)核映象和文件系統(tǒng)映像下載到開發(fā)板。把攝像頭插入到USB接口以及通過網(wǎng)線把開發(fā)板接入到本地局域網(wǎng)。重啟開發(fā)板,通過終端把開發(fā)板IP設(shè)置為本地網(wǎng)址202.193.74.220。運行web服務(wù)器和視頻服務(wù)器。客戶端通過安裝java環(huán)境的firefox瀏覽器輸入http://202.193.74.220/webcam/webcam.html即可實現(xiàn)現(xiàn)場動態(tài)的監(jiān)控。如圖5所示實現(xiàn)監(jiān)控本地實驗室的情況。 5 結(jié)論 本系統(tǒng)的設(shè)計是在以數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展的前提下,運用當(dāng)前的嵌入式技術(shù)和ARM技術(shù)設(shè)計網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng),具有一定的創(chuàng)新性。該系統(tǒng)由于采用了高性能的ARM9處理器和嵌入式linux操作系統(tǒng)組合,具有一定的可擴展性,可以通過適當(dāng)?shù)墓δ軘U展來滿足用戶更高的要求。此外,可以針對不同的實際應(yīng)用和硬件平臺對linux內(nèi)核進行定制,以滿足不同嵌入式平臺用戶的需要。本系統(tǒng)具有功能強,可靠性高,穩(wěn)定性好和具有一定的擴展性特點,對嵌入式開發(fā)有一定的借鑒意義。總結(jié)
以上是生活随笔為你收集整理的基于Linux的嵌入式网络视频监控系统研究与设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: es管理器免root_ES浏览器专业版-
- 下一篇: linux 自动打卡脚本,Linux使用