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