視頻采集中DMA控制的流橫式接口設(shè)計(jì)
(2)數(shù)據(jù)流的傳輸
用DMA來搬運(yùn)數(shù)據(jù)不僅速度非常快,而且整個(gè)操作不需要CPU的干預(yù),可把CPU從繁重的數(shù)據(jù)傳送中解放出來。DMA控制器將數(shù)據(jù)從源地址空間傳輸?shù)侥康牡刂房臻g,數(shù)據(jù)源或目的地可以是Avalon從外設(shè)(一個(gè)固定地址),也可以是存儲(chǔ)器的一段地址范圍。對(duì)DMA控制器的使用,需要Nios II處理器對(duì)源地址和目的地址進(jìn)行初始化配置,同時(shí)也要預(yù)先給定傳輸長度以及傳輸模式等。本系統(tǒng)使用了Altera公司提供的HAL DMA設(shè)備驅(qū)動(dòng)程序。該驅(qū)動(dòng)程序把DMA傳輸抽象成兩種數(shù)據(jù)通道:數(shù)據(jù)發(fā)送通道和數(shù)據(jù)接收通道,如圖6所示。
如此,便可通過Nios II用軟件控制DMA以流模式進(jìn)行數(shù)據(jù)傳輸,具體搬運(yùn)的數(shù)據(jù)路徑如圖7所示。其中緩沖區(qū)1是采集數(shù)據(jù)的源緩沖區(qū)。緩沖區(qū)2是傳輸后顯示緩沖區(qū),緩沖區(qū)3是處理緩沖區(qū)。對(duì)視頻的處理不是本文討論的范圍,故這里只將原圖像傳回。
(3)流模式接口的硬件設(shè)計(jì)
對(duì)流模式接口的硬件設(shè)計(jì)實(shí)際上就是把上述四口SDRAM控制器封裝成一個(gè)Avalon自定制組件,且這個(gè)組件的其中兩端口滿足流模式讀寫規(guī)范。根據(jù)Avalon總線流模式傳輸規(guī)范,該自定制外設(shè)需要設(shè)置dataavailable、readyfordata信號(hào)有效表示已經(jīng)準(zhǔn)備好流模式傳輸,同時(shí)接收主設(shè)備發(fā)出clk、read/write、chipse-lect等信號(hào),并根據(jù)這些信號(hào)對(duì)上述FIFO進(jìn)行數(shù)據(jù)的存取。以下給出了該接口的部分Verilog HDL代碼(u9、u10為FIFO的端口信號(hào)連接情況):
(4)數(shù)據(jù)路徑的軟件控制
作為自定義的組件,除了硬件接口以外,還需要編寫驅(qū)動(dòng)層軟件(固件)。SoPC Builder生成的外設(shè)信息都保存在system.h文件里,固件的編寫主要是基于這個(gè)文件信息。
評(píng)論