《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 實時圖像處理系統中DMA控制器的設計和驗證

實時圖像處理系統中DMA控制器的設計和驗證

《電子技術應用》2007年第1期
2007-10-17
作者:謝 俊,趙 峰

摘 要: 在分析傳統DMA控制器結構的基礎上,針對實時圖象處理系統的數據傳輸要求,提出了多端口模塊設計、增加Round Robin通道優先級仲裁算法和優化數據傳輸通道等優化方法,以提高數據傳輸速度,并改進了地址產生模式來滿足圖像算法的要求。

關鍵詞: DMA 實時圖像處理? 多端口? Round-Robin策略? 地址產生模塊

?

數字圖像處理是嵌入式系統最為廣泛的應用之一。目前,數字圖像處理技術無論在科學研究、工業生產或管理部門中都得到越來越多的應用。而目標跟蹤、機器人導航、自動駕駛、交通監視等應用也極大地促進了實時圖像處理技術的發展。
數字圖像處理的特點是數據量大、運算復雜、實時性強。通常,數據量往往大于片內的存儲容量,對于片內存儲資源有限的處理系統來說,一般需要借用外部存儲空間。為了提高系統的實時處理能力,必須在片內高速存儲區和外部存儲空間之間使用直接存儲方式(DMA)進行數據交換,從而使處理器只專注于數據的計算。
1 傳統DMA控制器的設計和分析
1.1 DMA控制器的模塊結構

DMA控制器一般具有如下功能:在不同的存儲介質" title="存儲介質">存儲介質之間實現快速數據傳輸;獨立于處理器進行高速數據交換;提供多個DMA通道以提高數據傳輸的并行度;支持數據爆發傳輸模式;具有通道優先級可編程的仲裁機制。

?


圖1是DMA控制器的模塊框圖。從圖中可以看出,DMA控制器主要由以下幾個模塊組成:
(1)寄存器控制模塊" title="控制模塊">控制模塊:為軟件程序員提供可編程接口,以控制DMA的工作狀態;根據各配置位的不同設置,控制各DMA通道和各端口的工作狀態。
(2)通道控制模塊:DMA控制器中有6個可以獨立工作的DMA通道,根據相應控制寄存器" title="控制寄存器">控制寄存器的配置位提出DMA申請,通過端口模塊訪問存儲介質。
(3)端口控制模塊:它是DMA控制器與存儲介質之間的接口模塊,提供訪問存儲介質的地址、數據和控制信號線。
(4)FIFO控制模塊:DMA控制器中共有6個32字節的緩存隊列,分別為每個通道所占用,在爆發式的傳輸中,可以緩存慢速存儲設備中的數據,從而提高DMA控制器的傳輸速度。
(5)通道優先級仲裁模塊:當多個DMA通道同時提出DMA申請時,需要進行通道的優先級仲裁,在這里使用硬件優先級仲裁。
此外,還有中斷和事件響應模塊,用以保證DMA的實時傳輸。
1.2 傳統DMA在實時圖像處理應用中的局限
首先,在傳統的DMA設計[1-2]中,端口模塊只采用一組數據線、地址線和控制線,連接DMA需要連接的所有存儲介質;并且當多個通道需要同時占用數據線、地址線和控制線時,只采用硬件優先級仲裁的方式來處理。這樣,對于大量DMA應用的實時圖像處理系統" title="實時圖像處理系統">實時圖像處理系統,DMA的傳輸效率并不高,影響了整個系統的圖像處理效果。所以,需要對DMA的端口模塊和優先級仲裁模塊做一些改進,以便有效地改善DMA的數據傳輸速率。而且,DMA的數據傳輸路徑也可以改進。
其次,圖像數據本身的一些格式特點和所要求的圖像處理算法決定了一個實時圖像處理系統中的數據傳輸并不是一種簡單的數據傳輸,而是要求DMA的數據傳輸同時具有矩陣傳輸、翻轉傳輸等功能,來加快圖像處理的速度和滿足一些圖像處理算法的要求。而普通DMA的地址產生模塊并沒有這樣的設計。
2 DMA控制器的優化
2.1 端口模塊

本文實現的DMA控制器中,DMA控制器支持多端口模式,可以在各個存儲介質之間進行數據的并行傳輸。通過增加一些硬件復雜度,大大提高了系統數據傳輸的并行度。
圖2為DMA控制器的端口模塊連接圖。DMA控制器通過4個端口連接內部存儲器、外部存儲器和外部設備。通道和端口相互獨立,每個通道可以獨立申請占用端口資源。端口將各個通道產生的控制、地址和數據信號通過多路選擇連接到端口對應的存儲介質。當多個通道同時收到DMA請求時,如果所訪問的端口不沖突,則每個通道可以各自獨立地通過所訪問的端口資源進行DMA傳輸,從而提高DMA數據傳輸的效率。


2.2 通道優先級仲裁模塊
如果考慮通道對端口的訪問可能產生沖突,則需要引入通道優先級仲裁的設計。在實際的系統應用中,每個DMA通道的請求對實時性要求是不同的。因此,通常的DMA控制器中都集成有通道硬件優先級的設計[1,2],有效地為各DMA通道的資源請求服務。對實時性要求較高的DMA通道請求,將通道優先級設為最高,而對數據量大且實時性無特殊要求的DMA通道請求,將通道優先級設為最低。優先級高的通道優先占用端口資源。但是這樣簡單的設計,只是讓各個通道去排隊占用端口資源,在通道優先級相同的情況下,需要等到一個通道的所有數據傳輸結束后,下一個通道才能占用端口資源,這使整個系統的處理效率降低。
引入相同優先級的通道,能夠分時共享端口資源,本文采用Round-Robin策略實現這種分時共享機制[4]。端口對于相同優先級的通道請求,根據Round-Robin仲裁算法,輪流響應各個DMA通道的傳輸請求,讓相同優先級的通道可以分時工作,避免某個通道占用端口資源時間過長,以提高系統的傳輸效率。
圖3為DMA通道優先級的仲裁策略。每個通道的優先級由控制寄存器的相應位設定。通道的請求信號為chanx_req,根據通道的優先級產生高優先級請求信號cx_req_h和低優先級請求信號cx_req_l。


優先級仲裁模塊的通道輪詢機制使用狀態機實現。狀態機共有6個狀態,分別為選中通道0~5的狀態。每個狀態都包含一個通道優先級的排序隊列。各個通道根據高優先級請求信號cx_req_h和低優先級請求信號cx_req_l進入通道優先級排序隊列的相應位置,從高到低排序。沒有請求的通道不參加排序。例如通道0、2、4有cx_req_h,通道1、3有cx_req_l,通道5沒有請求信號。若當前狀態為選中通道0,排序的結果為2-4-0-1-3;若當前狀態為選中通道2,排序的結果為4-0-2-3-1。
狀態機在當前正在進行的數據傳輸結束后,根據當前通道的優先級排序隊列進行優先級仲裁,跳轉到通道優先級排序隊列中排隊最靠前的通道所對應的狀態,從而產生選中通道的選中信號。
從圖3中可以看出,不同狀態的通道優先級排序隊列可以保證狀態機的跳轉按一個硬件優先級加輪詢的方式進行。
通過這樣的方式,就可以讓多個需要訪問同一端口的通道分時共享端口資源,從而提高整個系統數據傳輸的并行度。
2.3 通道數據傳輸路徑
DMA通道的數據傳輸分為單個傳輸和爆發傳輸兩種類型。
在通常的DMA控制器設計中,每個通道通過一個FIFO緩存讀入數據。在讀訪問階段,數據從源端口傳輸到通道的FIFO中;在寫訪問階段,數據從通道的FIFO傳輸到目的端口。這樣,當端口連接的存儲介質為慢速設備時,可以大大提高DMA通道的傳輸速度。但是當通道的傳輸類型為單個傳輸時,如果傳輸的數據還要經過FIFO緩存,則每個數據單元的傳輸至少浪費1個時鐘周期,因此對數據通路要進行適當的優化。
DMA數據傳輸的路徑如圖4所示。當傳輸類型為單個傳輸時,增加一個數據單元的前向反饋路徑,數據不必經過FIFO緩存,從源端口讀到后,直接寫入目的端口中,可以減少1個時鐘周期的傳輸延遲。


2.4 地址生成模塊
在很多實時圖像處理系統的應用中(如子圖抽取和圖像翻轉等應用),DMA通道的數據傳輸并不是簡單的地址遞增、遞減或不變傳輸,而是要求DMA通道以一些特殊的地址增長模式進行傳輸,如圖5(a)所示的矩陣傳輸和圖5(b)所示的翻轉傳輸。
當DMA數據傳輸只是連續地址(memory)或是不變地址(外設的FIFO)的數據傳輸時,只需要有一種地址調整方式,即基本調整方式。基本調整方式是指地址根據數據字長和通道控制寄存器的相應位來選擇連續遞增、連續遞減或不變的方式[2]。而這種方式不支持傳輸數據源地址和目的地址不連續或不變的情況(如圖5所示)。用軟件編程實現這些功能,會浪費大量的CPU時間。


本文設計的DMA控制器引入了二維數據傳輸的思想[3,4]。為了支持矩陣傳輸和翻轉傳輸功能,需要增加另外一種地址調整方式——索引調整方式。另外需增加四個寄存器:幀計數寄存器、單元計數寄存器、單元索引寄存器和幀索引寄存器。并在通道的控制寄存器中增加指示地址模式的mode位(包括遞增、遞減、不變和索引)。
?索引調整方式的計算過程如圖6所示。將傳輸的數據分成二維,一次傳輸的總數據塊由若干個幀組成,而每個傳輸幀又由多個數據單元構成,每個數據單元根據控制寄存器中的數據字長可以是字節、字或是長字。相應的傳輸計數寄存器也有兩個,即幀計數寄存器和單元計數寄存器。與基本調整方式不同,索引調整方式可以根據傳輸的數據單元是否是當前幀的最后一個數據單元進行不同的地址調整。單元索引寄存器中存放普通調整值,幀索引寄存器中存放幀尾調整值。每一幀除了最后一次數據傳輸以外,其余的傳輸都由單元索引決定地址寄存器的增量。如果讀寫的是該幀的最后一個數據單元,則用幀索引做地址調整。當幀計數寄存器和單元計數寄存器都為0時,DMA傳輸結束。


雖然這樣的改進不會提高DMA數據的傳輸速率,但是可以節省整個系統的時間。如果通過軟件的方式完成矩陣傳輸和翻轉傳輸等功能要求,需要執行額外的CPU運算時間。現通過設置通道寄存器,可以在DMA傳輸的同時,完成矩陣地址計算和翻轉地址計算等功能要求,并且不占用額外的CPU時間,提高了整個系統的效率。
3 DMA設計的驗證
為了驗證DMA的設計是否能滿足實時圖像系統的高速實時要求,是否能在數據傳輸的同時完成子圖抽取功能,搭建了一個運動小目標檢測" title="小目標檢測">小目標檢測系統,系統的框架見圖7。在此系統中,對DMA設計的有效性進行測試。


小目標檢測系統是一個雙核系統。ARM922T是主處理器,負責整個系統的控制及與外界的數據交互。DSP CORE是協處理器,負責運動小目標檢測算法的運算。整個系統的工作流程:PC機將采集到的352×288的運動小目標灰度圖數據通過100M網線傳送到以太網接口模塊,ARM922T將輸入的數據存放到片外的存儲器SRAM,并通知DSP進行數據處理和傳輸。DSP數據處理時采用片內雙緩存機制,一塊緩存數據的運算可以部分或全部與另一塊緩存的數據在DMA傳輸過程中并行,并由DMA的事件觸發功能和中斷反饋功能保證數據運算和數據傳輸過程的并行。最后小目標檢測算法檢測出來的小目標的坐標值(行和列)反饋到PC機,在PC機上演示源圖像和結果圖像。
目前,各模塊的RTL設計和基于雙核系統的前端驗證均已完成,并且已經將此雙核系統成功地移植到FPGA平臺上。此平臺的核心單元由Xilinx的virtexⅡ 6000(X2V6000)、spartanⅢ 5000(X3S5000)和Altera的EPXA1(內含ARM922T硬核)構成。多FPGA互聯帶來的龐大的可編程邏輯及EPXA1內置的ARM Core能真實地模擬雙核系統環境。
在PC機顯示界面上的實時顯示速度為25幀/秒,圖像的視覺效果比較理想。在一幀352×288的灰度圖像的處理過程中,從算法運算的時鐘周期數和DMA數據傳輸所耗費的時鐘周期數對比來看(見表1),DMA的數據傳輸和DSP CORE的算法運算幾乎可以完全并行,充分發揮了DSP的核心運算功能。由于此次應用的小目標檢測算法并不是一個運算非常復雜的算法,因此可以說明DMA的傳輸速率達到了實時系統的要求。同時,DSP中運行的小目標檢測算法是基于背景比對的灰度圖算法,每次處理的圖像范圍是7×7的一個子圖,在DMA傳輸的同時進行子圖的抽取功能也得到了驗證。實踐證明:本文提出的DMA設計結構在實際的圖像處理系統中完全可以達到高速實時要求,并且可以在傳輸的同時滿足子圖抽取等圖像算法的要求。


本文基于實時圖像處理系統對DMA的需求分析,提出了適用于實時圖像處理系統中的DMA接口模塊和數據傳輸路徑的設計與優化,并針對子圖抽取等圖像算法需求改進了地址產生模塊的設計結構。從FPGA上的驗證結果來看,此DMA設計具有高速實時性能,同時也能滿足圖像算法的子圖抽取等需求,完全適用于實時圖像處理系統的應用。
參考文獻
[1] 史昕蕾,楊軍,陸生禮.嵌入式SoC中的DMA控制器的設計與優化.電子工程師,2004,(1).
[2] 唐威,劉佑寶,劉軍華.DMA控制器件的設計和仿真.微電子學和計算機,2002,(12).
[3] 劉書明.Tiger SHARC DSP應用系統設計.北京:電子工業出版社,2004.
[4] TMS320VC5501/5502 DSP Direct memory access(DMA) controller reference guide.TI,2003.
[5] OPAP5912 Multimedia processor direct memory access(DMA) support reference guide.TI,2003.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 国内主播福利视频在线观看 | 国产精品高清全国免费观看 | 亚洲成人在线视频 | 午夜性福利 | 成人网18免费软件 | 国产精品午夜国产小视频 | 香蕉久久一区二区不卡无毒影院 | 欧美一区二区在线观看视频 | 草草视频免费在线观看 | 特别福利视频在线观看 | 六月丁香婷婷色狠狠久久 | 九九亚洲精品自拍 | 18成人网| 日本一级在线播放线观看视频 | 男人的天堂欧美精品色偷偷 | 日本三级在线观看中文字 | 97视频在线观看免费播放 | 精品欧美一区二区三区免费观看 | 国产做a爰片久久毛片 | 免费成年网站 | 欧美一级毛片黄 | 五月激激激综合网色播免费 | 美女很黄很黄是免费的·无遮挡网站 | 在线视频久久 | 色爽爽爽爽爽爽爽爽 | 在线国产日韩 | 欧美一级鲁丝片 | 天堂男人2021av | 亚洲午夜大片 | 欧美日韩国产亚洲一区二区 | 91b站| 日韩无砖专区体验区 | 久久欧美成人精品丝袜 | 黄色在线视屏 | 精品中文字幕在线观看 | 美女黄页网站免费进入 | 久久国产欧美另类久久久 | 欧美一区二区三区久久综 | 手机在线毛片免费播放 | 91精品国产高清久久久久久io | 黄色不卡视频 |