淺談AT91RM9200的嵌入式網(wǎng)絡(luò)攝像機(jī)的設(shè)計(jì)與實(shí)現(xiàn)
3.3網(wǎng)絡(luò)模塊
網(wǎng)絡(luò)模塊硬件設(shè)計(jì)原理如圖4所示。
圖4 網(wǎng)絡(luò)模塊電路
AT91RM9200的在片以太網(wǎng)卡端口和網(wǎng)絡(luò)物理層芯片DM9161E的MII接口通信。發(fā)送數(shù)據(jù)時(shí),首先置發(fā)送使能信號(hào)ETXEN有效。數(shù)據(jù)發(fā)送端ETX0~ETX1與DM9161的ETXO~ETX1引腳對(duì)應(yīng)連接,作為數(shù)據(jù)發(fā)送通道,以DM9161E的時(shí)鐘信號(hào)REF_CLK發(fā)送數(shù)據(jù)。數(shù)據(jù)接收端ERX 0~ERX1與DM9161E的RXDO~RXD1引腳對(duì)應(yīng)連接,作為數(shù)據(jù)接收通道。管理時(shí)鐘信號(hào)EMDC和管理數(shù)據(jù)輸入輸出信號(hào)EMDIO用來(lái)芯片控制參數(shù)的寫入和讀取。DM9161E的MDINTR端用來(lái)產(chǎn)生中斷信號(hào)。
片內(nèi)以太網(wǎng)卡通過(guò)DMA通道進(jìn)行數(shù)據(jù)的發(fā)送,不影響AT91RM9200的正常運(yùn)行。首先正確設(shè)置傳送控制寄存器和傳送地址寄存器的傳送數(shù)據(jù)塊字節(jié)數(shù)、數(shù)據(jù)塊存儲(chǔ)首地址等參數(shù),隨后依次從指定數(shù)據(jù)存儲(chǔ)區(qū)地址讀取1024b數(shù)據(jù),送入內(nèi)部發(fā)送緩沖器中,由MAC對(duì)數(shù)據(jù)進(jìn)行封裝發(fā)送,同時(shí)記錄已傳送字節(jié)數(shù),直到數(shù)據(jù)塊發(fā)送完畢。當(dāng)發(fā)送完一組數(shù)據(jù)后,發(fā)出DMA中斷請(qǐng)求,由AT91RM9200進(jìn)行相應(yīng)的處理。整個(gè)網(wǎng)絡(luò)子系統(tǒng)電路由AT91RM9200控制和調(diào)度。
4.軟件設(shè)計(jì)
嵌入式Linux系統(tǒng)主要由四個(gè)部分組成引導(dǎo)內(nèi)核啟動(dòng)的文件(bootloader)、Linux內(nèi)核文件(kernel)、虛擬磁盤文件(ramdisk)、用戶空間文件(user)。它們分別被放在DataFlash內(nèi)的四個(gè)分區(qū)模塊中。根據(jù)不同模塊的具體功能采用不同的文件系統(tǒng):bootloader、kernel、ramdisk,移植完成后不需要?jiǎng)討B(tài)改變,使用較節(jié)省空間的ROMFS只讀文件系統(tǒng);user模塊內(nèi)放置一些可以動(dòng)態(tài)更新的配置文件等,需要進(jìn)行較多的讀寫操作,所以使用支持動(dòng)態(tài)擦寫保存的JFFS2文件系統(tǒng)。inux做嵌入式的優(yōu)勢(shì),首先,Linux是開(kāi)放源代碼的,不存在黑箱技術(shù),遍布全球的眾多Linux愛(ài)好者又是Linux開(kāi)發(fā)者的強(qiáng)大技術(shù)支持;其次,Linux的內(nèi)核小、效率高,內(nèi)核的更新速度很快,linux是可以定制的,其系統(tǒng)內(nèi)核最小只有約134KB.第三,Linux是免費(fèi)的OS,在價(jià)格上極具競(jìng)爭(zhēng)力。 Linux還有著嵌入式操作系統(tǒng)所需要的很多特色,突出的就是Linux適應(yīng)于多種CPU和多種硬件平臺(tái),是一個(gè)跨平臺(tái)的系統(tǒng)。到目前為止,它可以支持二三十種CPU.而且性能穩(wěn)定,裁剪性很好,開(kāi)發(fā)和使用都很容易。
Linux移植技術(shù)已經(jīng)成熟,本文不作詳細(xì)的闡述。下文主要介紹MPEG-4壓縮編碼模塊和CGI模塊的程序設(shè)計(jì)。
4.1 MPEG-4壓縮編碼模塊程序設(shè)計(jì)
該模塊主要完成MPG440和TI5150相關(guān)寄存器的配置,并保證MPEG-4碼流的正常輸出。當(dāng)嵌入式Linux系統(tǒng)啟動(dòng)后,首先配置MPG440的相關(guān)寄存器,其初始化完成后,通過(guò)I2C總線對(duì)TVP5150進(jìn)行初始化配置。當(dāng)系統(tǒng)開(kāi)始?jí)嚎s編碼時(shí),MPEG-4碼流接收存儲(chǔ)程序由MPEG-440的數(shù)據(jù)流緩沖器標(biāo)志信號(hào)控制。
MPEG-4壓縮編碼模塊程序流程如圖4所示。
圖5 MPEG-4壓縮編碼模塊程序流程圖
4.2 CGI程序模塊設(shè)計(jì)
CGI(Common Gateway Interface)是外部擴(kuò)展應(yīng)用程序與WWW服務(wù)器交互的一個(gè)標(biāo)準(zhǔn)接口。本系統(tǒng)CGI的工作過(guò)程:在PC機(jī)端的IE瀏覽器中輸入網(wǎng)絡(luò)攝像機(jī)IP地址,嵌入式網(wǎng)絡(luò)服務(wù)器根據(jù)請(qǐng)求,將相應(yīng)的控制頁(yè)面反饋給IE瀏覽器,用戶填寫表單,然后提交,CGI程序提取表單的信息,根據(jù)不同信息來(lái)分別處理相應(yīng)的事件,如調(diào)節(jié)MPEG-4相關(guān)屬性、相機(jī)的相關(guān)操作等。CGI控制原理如圖5所示。
圖6 CGI控制原理圖
CGI模塊的設(shè)計(jì)主要包括三部分:嵌入式web服務(wù)器的配置、html頁(yè)面的編寫、CGI程序的設(shè)計(jì)。
嵌入式web服務(wù)器采用的是Apache,其配置是以配置文件的形式提供,放在Ramdisk中/etc/httpd/conf/目錄下。其配置主要涉及以下三個(gè)方面:
1配置根文件的路徑:"DocumentRoot /home/httpd/html",html頁(yè)面必須放到此目錄下。
2配置CGI外部程序所放的路徑:"ScriptAlias /cgi-bin/ home/httpd/cgi-bin/".
3配置環(huán)境變量:"SetEenv D_LIBRARY_PATH=/lib:/usr/local/lib:/usr/lib",該變量將會(huì)被傳送到 CGI 腳本和SSI頁(yè)面,以保證CGI程序能正確找到所依賴的庫(kù)。
網(wǎng)頁(yè)編寫采用html與shtml相結(jié)合的方式。html的解析速度較快,shtml可以在普通網(wǎng)頁(yè)中嵌入外部CGI程序,通過(guò)這種方式將系統(tǒng)的默認(rèn)配置反饋給客戶端。
CGI程序采用的是C語(yǔ)言和shell腳本相結(jié)合的方式,C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開(kāi)發(fā)上,而且各類科研都需要用到C語(yǔ)言,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開(kāi)發(fā)。 具體編寫過(guò)程,與通常的了Linux下編程相同。
4.3 MPEG-4解碼程序
MPEG4于1998 年11 月公布,原預(yù)計(jì)1999 年1月投入使用的國(guó)際標(biāo)準(zhǔn)MPEG4不僅是針對(duì)一定比特率下的視頻、音頻編碼,更加注重多媒體系統(tǒng)的交互性和靈活性。MPEG專家組的專家們正在為MPEG-4的制定努力工作。MPEG-4標(biāo)準(zhǔn)主要應(yīng)用于視像電話(Video Phone),視像電子郵件(Video Email)和電子新聞(Electronic News)等,其傳輸速率要求較低,在4800-64000bits/sec之間,分辨率為176X144.MPEG-4利用很窄的帶寬,通過(guò)幀重建技術(shù),壓縮和傳輸數(shù)據(jù),以求以最少的數(shù)據(jù)獲得最佳的圖像質(zhì)量。與MPEG-1和MPEG-2相比,MPEG-4的特點(diǎn)是其更適于交互AV服務(wù)以及遠(yuǎn)程監(jiān)控。MPEG-4是第一個(gè)使你由被動(dòng)變?yōu)橹鲃?dòng)(不再只是觀看,允許你加入其中,即有交互性)的動(dòng)態(tài)圖像標(biāo)準(zhǔn),它的另一個(gè)特點(diǎn)是其綜合性。從根源上說(shuō),MPEG-4試圖將自然物體與人造物體相溶合(視覺(jué)效果意義上的)。MPEG-4的設(shè)計(jì)目標(biāo)還有更廣的適應(yīng)性和更靈活的可擴(kuò)展性。映佳科技已提供供二次開(kāi)發(fā)的MPEG-4解碼插件OCX,OCX在PC機(jī)端注冊(cè)后,OCX函數(shù)可方便地被網(wǎng)頁(yè)調(diào)用,從而實(shí)現(xiàn)在PC機(jī)端觀看實(shí)時(shí)圖像。
5 總結(jié)
本文介紹了一種利用AT91RM9200、TVP5150,MPG440和DM9161E等芯片設(shè)計(jì)的嵌入式網(wǎng)絡(luò)攝像機(jī)。經(jīng)測(cè)試,該系統(tǒng)穩(wěn)定、可靠、實(shí)時(shí)性好、圖像質(zhì)量出色。該產(chǎn)品可廣泛應(yīng)用于交通監(jiān)控和工業(yè)監(jiān)控以及家庭監(jiān)控、視頻會(huì)議話等眾多領(lǐng)域。
評(píng)論