嵌入式視頻監(jiān)控系統(tǒng)視頻服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)
2.4 其他輔助功能模塊
該模塊包括Fiafh、SDRAM、以太網(wǎng)接口、串口和USB接口。用來實(shí)現(xiàn)操作系統(tǒng)內(nèi)核和應(yīng)用程序的存儲(chǔ),網(wǎng)絡(luò)傳輸,本地存儲(chǔ)和遠(yuǎn)程控制。
3 系統(tǒng)軟件部分
嵌入式Linux實(shí)時(shí)操作系統(tǒng),穩(wěn)定、高效、易定制、易剪裁、開源代碼,因此本系統(tǒng)采用Linux操作系統(tǒng)。軟件部分分為Bootloader文件,Linux內(nèi)核文件Linux驅(qū)動(dòng)和應(yīng)用程序,用戶應(yīng)用程序。這里主要介紹MPEG-4和CGI技術(shù)的程序設(shè)計(jì)。
3.1 MPEG-4壓縮編碼程序設(shè)計(jì)
本系統(tǒng)采用MPEG-4標(biāo)準(zhǔn)對(duì)視頻圖像進(jìn)行壓縮編碼。在實(shí)現(xiàn)MPEG-4編碼的方式上,有硬件壓縮和軟件壓縮兩種。硬件壓縮就是利用專門的壓縮芯片對(duì)視頻信號(hào)進(jìn)行MPEG-4編碼,軟件壓縮就是使用壓縮軟件對(duì)視頻信號(hào)進(jìn)行編碼。AT2042支持MPEG-4壓縮標(biāo)準(zhǔn)。實(shí)現(xiàn)方法方面就是對(duì)其相關(guān)寄存器的配置,包括編碼模式、編碼像素點(diǎn)、編碼幀率和設(shè)置編碼流格式等方面。具體過程:系統(tǒng)上電啟動(dòng)后,先配置AT2042的相關(guān)寄存器,完成初始化工作后,通過I2C總線對(duì)A/D轉(zhuǎn)換芯片TVP5150進(jìn)行初始化配置。所有的寄存器配置工作完成之后,開始編碼過程。其中MPEG-4數(shù)據(jù)流接收存儲(chǔ)程序有AT2042的數(shù)據(jù)流緩沖器標(biāo)志信號(hào)來控制。緩沖器接收數(shù)據(jù)滿之后置低RISC_INT0,AT91RM9200主控制器通過DMA通道把AT2042發(fā)送過來的碼流通過網(wǎng)絡(luò)通道傳輸?shù)秸?qǐng)求監(jiān)控視頻圖像的監(jiān)控端。壓縮編碼的流程圖如圖4所示。本文引用地址:http://m.butianyuan.cn/article/149455.htm
3.2 CGI程序設(shè)計(jì)
在嵌入式Linux環(huán)境下,主要有3種Web服務(wù)器,分別是httpd、thttpd和Boa。Httpd功能最弱,不支持CGI、SSL和認(rèn)證。本系統(tǒng)需要交互操作,必須使用動(dòng)態(tài)Web技術(shù),采用Boa。Boa功能強(qiáng)大,支持CGI,支持SSL,支持認(rèn)證。使用時(shí)只需交叉編譯,修改一下配置文件即可。CGI即通用網(wǎng)關(guān)接口,是外部擴(kuò)展應(yīng)用程序與Web服務(wù)器交互的標(biāo)準(zhǔn)??蛻舳耸褂脼g覽器向服務(wù)器發(fā)送HTFP請(qǐng)求,服務(wù)器響應(yīng)客戶端的請(qǐng)求后,引導(dǎo)腳本程序,對(duì)命令解析,將信息提交給后臺(tái)——CGI處理。具體到本系統(tǒng),就是PC機(jī)端通過瀏覽器輸入服務(wù)器的IP地址,Web服務(wù)器根據(jù)請(qǐng)求進(jìn)行分析,如果沒有傳來參數(shù),則調(diào)用get-status()函數(shù)取得設(shè)備當(dāng)前狀態(tài)顯示給瀏覽器。用戶根據(jù)操作界面提示完成相應(yīng)的操作,填寫好表單設(shè)置設(shè)備參數(shù)并提交。CGI解析信息后通過get-status()函數(shù)設(shè)置新狀態(tài),實(shí)現(xiàn)交互功能。例如調(diào)節(jié)編碼屬性,對(duì)相機(jī)控制等。
CGI的輸入輸出基本語(yǔ)法:
FORM M ETHOD=get/post ACTOD=URL>/FORM>
M ETHOD屬性指定將數(shù)據(jù)傳送到Web服務(wù)器的方法,輸入方法有兩種。
1)GET方法。 此方法,表單數(shù)據(jù)會(huì)附加在所指向CGI腳本的URL后一起發(fā)送給Web服務(wù)器,Web服務(wù)器將接收到的表單數(shù)據(jù)賦予環(huán)境變量QU ERY-STR NG。
2)POST方法。POST方法通過使用標(biāo)準(zhǔn)輸入(STDN)將表單數(shù)據(jù)傳送給Web服務(wù)器,Web服務(wù)器啟動(dòng)指定的腳本,并將用戶提供的數(shù)據(jù)傳入該腳本。
ACTON屬性定義要對(duì)表單數(shù)據(jù)進(jìn)行處理的CGI腳本URL。
CGI輸出:CGI輸出方式是將執(zhí)行結(jié)果送給標(biāo)準(zhǔn)輸出(STDOUT)進(jìn)行輸出,執(zhí)行結(jié)果必須是瀏覽器能夠顯示的HTML標(biāo)準(zhǔn)格式。流程圖如圖5所示。
CGI可以用shell腳本語(yǔ)言、Fottran、C語(yǔ)言等多種語(yǔ)言編寫。本系統(tǒng)中采用C語(yǔ)言實(shí)現(xiàn)CGI的編寫,執(zhí)行速度快,安全性高。
4 結(jié)論
筆者介紹了基于AT91RM9200微處理器的嵌入式監(jiān)控系統(tǒng)的視頻服務(wù)器設(shè)計(jì),采用A/D轉(zhuǎn)換芯片TVP5150對(duì)模擬視頻數(shù)據(jù)進(jìn)行數(shù)字化處理,生成符合壓縮編碼芯片AT2042接口標(biāo)準(zhǔn)的視頻數(shù)據(jù)流。在AT91RM9100的控制和調(diào)度下,將視頻數(shù)據(jù)發(fā)送到PC端。系統(tǒng)采用低編碼率的MPEG-4編碼標(biāo)準(zhǔn),CGI技術(shù),實(shí)現(xiàn)可靠的圖像質(zhì)量的交互功能。
評(píng)論