基于A(yíng)T91RM9200的嵌入式網(wǎng)絡(luò )攝像機設計
網(wǎng)絡(luò )模塊硬件設計原理如圖4 所示。
本文引用地址:http://dyxdggzs.com/article/264339.htm

AT91RM9200 的在片以太網(wǎng)卡端口和網(wǎng)絡(luò )物理層芯片DM9161E 的MII 接口通信。發(fā)送數據時(shí), 首先置發(fā)送使能信號ETXEN 有效。數據發(fā)送端ETX0~ETX1與DM9161 的ETXO~ETX1 引腳對應連接, 作為數據發(fā)送通道, 以DM9161E 的時(shí)鐘信號REF_CLK 發(fā)送數據。數據接收端ERX 0~ERX1 與DM9161E 的RXDO~RXD1 引腳對應連接, 作為數據接收通道。管理時(shí)鐘信號EMDC 和管理數據輸入輸出信號EMDIO 用來(lái)芯片控制參數的寫(xiě)入和讀取。DM9161E 的MDINTR 端用來(lái)產(chǎn)生中斷信號。
片內以太網(wǎng)卡通過(guò)DMA 通道進(jìn)行數據的發(fā)送,不影響AT91RM9200 的正常運行。首先正確設置傳送控制寄存器和傳送地址寄存器的傳送數據塊字節數、數據塊存儲首地址等參數, 隨后依次從指定數據存儲區地址讀取1024b 數據, 送入內部發(fā)送緩沖器中, 由MAC 對數據進(jìn)行封裝發(fā)送, 同時(shí)記錄已傳送字節數,直到數據塊發(fā)送完畢。當發(fā)送完一組數據后, 發(fā)出DMA中斷請求, 由AT91RM9200 進(jìn)行相應的處理。整個(gè)網(wǎng)絡(luò )子系統電路由AT91RM9200 控制和調度。
軟件設計
嵌入式Linux 系統主要由四個(gè)部分組成: 引導內核啟動(dòng)的文件( bootloader) 、Linux 內核文件( kernel) 、虛擬磁盤(pán)文件( ramdisk) 、用戶(hù)空間文件( user) 。它們分別被放在DataFlash 內的四個(gè)分區模塊中。根據不同模塊的具體功能采用不同的文件系統: bootloader、kernel、ramdisk, 移植完成后不需要動(dòng)態(tài)改變, 使用較節省空間的ROMFS 只讀文件系統user 模塊內放置一些可以動(dòng)態(tài)更新的配置文件等, 需要進(jìn)行較多的讀寫(xiě)操作, 所以使用支持動(dòng)態(tài)擦寫(xiě)保存的JFFS2 文件系統。
Linux 移植技術(shù)已經(jīng)成熟, 本文不作詳細的闡述。下文主要介紹MPEG- 4 壓縮編碼模塊和CGI 模塊的程序設計。
MPEG- 4 壓縮編碼模塊程序設計
該模塊主要完成MPG440 和TI5150 相關(guān)寄存器的配置, 并保證MPEG- 4 碼流的正常輸出。當嵌入式Linux系統啟動(dòng)后,首先配置MPG440 的相關(guān)寄存器, 其初始化完成后, 通過(guò)I2C總線(xiàn)對TVP5150 進(jìn)行初始化配置。當系統開(kāi)始壓縮編碼時(shí),MPEG- 4 碼流接收存儲程序由MPEG- 440 的數據流緩沖器標志信號控制。當1024b 緩沖器滿(mǎn)時(shí), RISC_INT0 置于低電平, 微控制器通過(guò)DMA通道從MPG440 的HPI 口將碼流送到PC 機端。MPEG-4 壓縮編碼模塊程序流程如圖4 所示。

CGI 程序模塊設計
CGI(Common Gateway Interface) 是外部擴展應用程序與WWW 服務(wù)器交互的一個(gè)標準接口。本系統CGI 的工作過(guò)程: 在PC 機端的IE 瀏覽器中輸入網(wǎng)絡(luò )攝像機IP 地址, 嵌入式網(wǎng)絡(luò )服務(wù)器根據請求, 將相應的控制頁(yè)面反饋給IE 瀏覽器, 用戶(hù)填寫(xiě)表單, 然后提交, CGI 程序提取表單的信息, 根據不同信息來(lái)分別處理相應的事件, 如調節M(mǎn)PEG- 4 相關(guān)屬性、相機的相關(guān)操作等。CGI 控制原理如圖5 所示。
CGI 模塊的設計主要包括三部分: 嵌入式web 服務(wù)器的配置、html 頁(yè)面的編寫(xiě)、CGI 程序的設計。

嵌入式web 服務(wù)器采用的是Apache, 其配置是以配置文件的形式提供, 放在Ramdisk 中/etc/httpd/conf/目錄下。其配置主要涉及以下三個(gè)方面:
?、倥渲酶募穆窂?“DocumentRoot /home/httpd/html”, html 頁(yè)面必須放到此目錄下。
?、谂渲肅GI 外部程序所放的路徑:“ScriptAlias /cgi- bin/ home/httpd/cgi- bin/”。
?、叟渲铆h(huán)境變量:“SetEenv D_LIBRARY_PATH=/lib:/usr/local/lib:/usr/lib”, 該變量將會(huì )被傳送到CGI 腳本和SSI 頁(yè)面, 以保證CGI 程序能正確找到所依賴(lài)的庫。
網(wǎng)頁(yè)編寫(xiě)采用html 與shtml 相結合的方式。html 的解析速度較快, shtml 可以在普通網(wǎng)頁(yè)中嵌入外部CGI程序, 通過(guò)這種方式將系統的默認配置反饋給客戶(hù)端。
CGI 程序采用的是C 語(yǔ)言和shell 腳本相結合的方式, 具體編寫(xiě)過(guò)程, 與通常的了Linux 下編程相同。限于篇幅, 不再贅述。
MPEG- 4 解碼程序
映佳科技已提供供二次開(kāi)發(fā)的MPEG- 4 解碼插件OCX, OCX 在PC 機端注冊后, OCX 函數可方便地被網(wǎng)頁(yè)調用, 從而實(shí)現在PC 機端觀(guān)看實(shí)時(shí)圖像。
總結
本文介紹了一種利用AT91RM9200、TVP5150,MPG440 和DM9161E 等芯片設計的嵌入式網(wǎng)絡(luò )攝像機。經(jīng)測試, 該系統穩定、可靠、實(shí)時(shí)性好、圖像質(zhì)量出色。該產(chǎn)品可廣泛應用于交通監控和工業(yè)監控以及家庭監控、視頻會(huì )議話(huà)等眾多領(lǐng)域。
評論