基于AT91RM9200的嵌入式網絡攝像機的設計與實現(xiàn)
本文引用地址:http://butianyuan.cn/article/152449.htm
圖3 壓縮編碼電路
TVP5150的AI模擬輸入口與模擬攝像頭輸出端連接,向視頻處理芯片傳送模擬視頻信號。模擬信號經過采樣處理之后通過YOUT0~YOUT7引腳送到MPG440,采樣數據在PCLK的上升沿有效,MPG440的VIDEO_CLK在收到PCLK的上升沿時獲得YOUT的信號。TVP5150分場同步脈沖和行同步脈沖,分別對應其輸出端VSYNC、HSYNC。MPG440正是根據與之相連的VSYNC和HSYNC信號線來實現(xiàn)圖像的場同步和行同步操作。MPG440的視頻輸入數據線DATA_TV0~DATA_TV7與TVP5150的YOUT0~YOUT7相連。MPG440在接收數據的同時,將其得到的數據流傳送給MPEG-4壓縮編碼單元,編碼后的MPEG-4數據流暫存到SDRAM(2)中。MPG440片內PDMA控制器根據配置寄存器的設置準確發(fā)起對SDRAM(2)訪問,同時將得到的數據流輸送往HPI(主機總線接口,Host Peripherial Interface),以等待AT91RM9200通過DMA通道將數據發(fā)送到網絡。
MPG440通過HPI與AT91RM9200通信,AT91RM9200將MPG440的寄存器、存儲空間等資源作為其本身內存尋址訪問。MPG440由AT91RM9200選通線NCS4來選通,其在AT91RM9200尋址空間中的地址段為0X50000000到0X5FFFFFFF。通過對MPG440一系列寄存器的設置,可以訪問MPG440系統(tǒng)存儲空間。MPG440中斷信號RSC_INT0從通用I/O引腳的PB29輸入,當緩沖器填滿時,RSC_INT0引腳置低提示AT91RM9200通過DMA通道提取MPEG-4數據流。編碼后視頻數據讀取過程和MPG440與主機通信過程由AT91RM9200讀信號CFRD和寫信號CFWE控制。
3.3網絡模塊
網絡模塊硬件設計原理如圖4所示。
圖4 網絡模塊電路
AT91RM9200的在片以太網卡端口和網絡物理層芯片DM9161E的MII接口通信。發(fā)送數據時,首先置發(fā)送使能信號ETXEN有效。數據發(fā)送端ETX0~ETX1與DM9161的ETXO~ETX1引腳對應連接,作為數據發(fā)送通道,以DM9161E的時鐘信號REF_CLK發(fā)送數據。數據接收端ERX 0~ERX1與DM9161E的RXDO~RXD1引腳對應連接,作為數據接收通道。管理時鐘信號EMDC和管理數據輸入輸出信號EMDIO用來芯片控制參數的寫入和讀取。DM9161E的MDINTR端用來產生中斷信號。
片內以太網卡通過DMA通道進行數據的發(fā)送,不影響AT91RM9200的正常運行。首先正確設置傳送控制寄存器和傳送地址寄存器的傳送數據塊字節(jié)數、數據塊存儲首地址等參數,隨后依次從指定數據存儲區(qū)地址讀取1024b數據,送入內部發(fā)送緩沖器中,由MAC對數據進行封裝發(fā)送,同時記錄已傳送字節(jié)數,直到數據塊發(fā)送完畢。當發(fā)送完一組數據后,發(fā)出DMA中斷請求,由AT91RM9200進行相應的處理。整個網絡子系統(tǒng)電路由AT91RM9200控制和調度。
4.軟件設計
嵌入式Linux系統(tǒng)主要由四個部分組成:引導內核啟動的文件(bootloader)、Linux內核文件(kernel)、虛擬磁盤文件(ramdisk)、用戶空間文件(user)。它們分別被放在DataFlash內的四個分區(qū)模塊中。根據不同模塊的具體功能采用不同的文件系統(tǒng):bootloader、kernel、ramdisk,移植完成后不需要動態(tài)改變,使用較節(jié)省空間的ROMFS只讀文件系統(tǒng);user模塊內放置一些可以動態(tài)更新的配置文件等,需要進行較多的讀寫操作,所以使用支持動態(tài)擦寫保存的JFFS2文件系統(tǒng)[1]。
Linux移植技術已經成熟,本文不作詳細的闡述。下文主要介紹MPEG-4壓縮編碼模塊和CGI模塊的程序設計。
評論