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