基于AT91RM9200的嵌入式網(wǎng)絡(luò)攝像機(jī)的設(shè)計(jì)與實(shí)現(xiàn)
本文引用地址:http://m.butianyuan.cn/article/152449.htm
圖3 壓縮編碼電路
TVP5150的AI模擬輸入口與模擬攝像頭輸出端連接,向視頻處理芯片傳送模擬視頻信號(hào)。模擬信號(hào)經(jīng)過(guò)采樣處理之后通過(guò)YOUT0~YOUT7引腳送到MPG440,采樣數(shù)據(jù)在PCLK的上升沿有效,MPG440的VIDEO_CLK在收到PCLK的上升沿時(shí)獲得YOUT的信號(hào)。TVP5150分場(chǎng)同步脈沖和行同步脈沖,分別對(duì)應(yīng)其輸出端VSYNC、HSYNC。MPG440正是根據(jù)與之相連的VSYNC和HSYNC信號(hào)線來(lái)實(shí)現(xiàn)圖像的場(chǎng)同步和行同步操作。MPG440的視頻輸入數(shù)據(jù)線DATA_TV0~DATA_TV7與TVP5150的YOUT0~YOUT7相連。MPG440在接收數(shù)據(jù)的同時(shí),將其得到的數(shù)據(jù)流傳送給MPEG-4壓縮編碼單元,編碼后的MPEG-4數(shù)據(jù)流暫存到SDRAM(2)中。MPG440片內(nèi)PDMA控制器根據(jù)配置寄存器的設(shè)置準(zhǔn)確發(fā)起對(duì)SDRAM(2)訪問(wèn),同時(shí)將得到的數(shù)據(jù)流輸送往HPI(主機(jī)總線接口,Host Peripherial Interface),以等待AT91RM9200通過(guò)DMA通道將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)。
MPG440通過(guò)HPI與AT91RM9200通信,AT91RM9200將MPG440的寄存器、存儲(chǔ)空間等資源作為其本身內(nèi)存尋址訪問(wèn)。MPG440由AT91RM9200選通線NCS4來(lái)選通,其在AT91RM9200尋址空間中的地址段為0X50000000到0X5FFFFFFF。通過(guò)對(duì)MPG440一系列寄存器的設(shè)置,可以訪問(wèn)MPG440系統(tǒng)存儲(chǔ)空間。MPG440中斷信號(hào)RSC_INT0從通用I/O引腳的PB29輸入,當(dāng)緩沖器填滿時(shí),RSC_INT0引腳置低提示AT91RM9200通過(guò)DMA通道提取MPEG-4數(shù)據(jù)流。編碼后視頻數(shù)據(jù)讀取過(guò)程和MPG440與主機(jī)通信過(guò)程由AT91RM9200讀信號(hào)CFRD和寫信號(hào)CFWE控制。
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)[1]。
Linux移植技術(shù)已經(jīng)成熟,本文不作詳細(xì)的闡述。下文主要介紹MPEG-4壓縮編碼模塊和CGI模塊的程序設(shè)計(jì)。
評(píng)論