視頻采集中DMA控制的流橫式接口設(shè)計(jì)
2 SoPC系統(tǒng)結(jié)構(gòu)
如圖3所示,SoPC系統(tǒng)以32位Nios II處理器為核心,將所有的接口模塊集成到一塊FPGA內(nèi)。其中,多口SDRAM控制器作為一個(gè)自定制外設(shè)與其他通用外設(shè)(DMA控制器、SRAM控制器、Flash接口等)一同掛在Avalon總線上,并與圖像采集模塊、VGA顯示控制模塊以及12C通信模塊等一起構(gòu)成SoPC視頻采集系統(tǒng)。本設(shè)計(jì)中,片外SDRAM容量較大,作為視頻數(shù)據(jù)源緩沖區(qū)以及顯示緩沖區(qū);片外SRAM速度快但資源有限,可用于視頻處理緩沖區(qū)。從SDRAM(數(shù)據(jù)源)到SRAM(處理緩沖區(qū))以及從SRAM(處理緩沖區(qū))到SDRAM(顯示緩沖區(qū))的傳輸,則由DMAC采用流模式的方法來(lái)實(shí)現(xiàn)數(shù)據(jù)的搬運(yùn)。
3 流模式接口的設(shè)計(jì)
(1)四口SDRAM控制器
本系統(tǒng)采用片外SDRAM作為幀緩沖區(qū),而對(duì)SDRAM使用的關(guān)鍵在于其控制接口的設(shè)計(jì)。在SoPCBuilder集成開發(fā)軟件中,可直接使用系統(tǒng)元件庫(kù)提供的單口SDRAM控制器,但是該控制器IP核無(wú)法滿足采集、傳輸和顯示同時(shí)進(jìn)行的要求。因此,自定制了一個(gè)四口SDRAM控制器。如圖4所示,該四口SDRAM控制器中的2個(gè)端口用于流模式的讀和寫,另外2個(gè)端口一個(gè)作為圖像數(shù)據(jù)源輸入,還有一個(gè)作為VGA顯示輸出。
由于數(shù)據(jù)采集、VGA監(jiān)控、流模式傳輸數(shù)據(jù)流速度與SDRAM控制器存取不匹配,因此,對(duì)于這四口中的任何一個(gè)口,都用FIFO來(lái)對(duì)數(shù)據(jù)進(jìn)行緩沖,以協(xié)調(diào)數(shù)據(jù)的同步而不至于錯(cuò)位。而每個(gè)FIFO都有個(gè)水位檢測(cè)器,當(dāng)水位到半滿時(shí)根據(jù)仲裁電路判斷的優(yōu)先級(jí)啟用SDRAM讀寫命令,以100 MHz(系統(tǒng)時(shí)鐘頻率50 MHz)的頻率根據(jù)用戶給定的地址信號(hào)進(jìn)行批量數(shù)據(jù)的存取,從而滿足了四口并用的要求。該SDRAM控制器的內(nèi)部結(jié)構(gòu)如圖5所示。
評(píng)論