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