DMA在實時圖像處理中的應(yīng)用
發(fā)布時間:2007/8/15 0:00:00 訪問次數(shù):474
來源:單片機與嵌入式系統(tǒng)應(yīng)用 作者:第二炮兵工程學(xué)院 王文進 劉代志 高科技研究所 王 超 王永明
摘要:以TMS320C6701為例,說明在實時圖像處理系統(tǒng)中使用DMA的必要性,同時給出DMA在實時圖像處理中幾種典型的應(yīng)用例子。
關(guān)鍵詞:DMA 實時圖像處理 DSP
引言
實時圖像處理系統(tǒng)要求系統(tǒng)必須在有限的時間內(nèi)完成大量數(shù)據(jù)的運算。DSP以其獨特的哈佛總線結(jié)構(gòu)和并行的存儲塊結(jié)構(gòu),將乘法操作與加法操作統(tǒng)一考慮,可以在一個指令周期完成般處理器的多次運算;并且指令系統(tǒng)采用多級流水線操作方式,保證了系統(tǒng)對實時性的要求,因此得以在實時圖像處理系統(tǒng)廣泛應(yīng)用。圖像處理系統(tǒng)的最大特點就是運算數(shù)據(jù)量大。大多數(shù)情況下,數(shù)據(jù)量遠遠大于片內(nèi)存儲器容量,計算過程中必須進行數(shù)據(jù)的交換。合理使用DMA可以提高數(shù)據(jù)傳輸效率,取得事半功倍的效果。本文以TMS320C6701(簡稱C6701)為例,介紹DMA在圖像處理中的幾種典型應(yīng)用。1 圖像處理系統(tǒng)特點與使用DMA的必要性
前面已經(jīng)提到,圖像處理系統(tǒng)的最大特點是就是運算數(shù)據(jù)量大,數(shù)據(jù)量往往大于片內(nèi)存儲器容量。不僅如此,圖像處理系統(tǒng)之中,運算過程產(chǎn)生的中間數(shù)據(jù)往往與源數(shù)據(jù)大小相當(dāng),這也限制了片內(nèi)高速存儲區(qū)的使用。然而為了提高處理的速度,計算源數(shù)據(jù)、中間數(shù)據(jù)必須盡可能多地在片內(nèi)高速存儲區(qū)進行,因此,必須使用DMA在片內(nèi)高速存儲區(qū)與片外低速存儲區(qū)之間進行數(shù)據(jù)交換,以提高數(shù)據(jù)處理速度。另外,數(shù)據(jù)的排列往往不符合程序的要求;必須對數(shù)據(jù)進行重排達到程序要求;使用DMA對數(shù)據(jù)重排,可以滿足程序要求。與數(shù)據(jù)重排如出一轍,圖像處理中許多操作的基礎(chǔ)都是對多重數(shù)組的操作,也就是矩陣運算。諸如求逆、取子圖等圖像處理中經(jīng)常用到的運算,也可以通過DMA完成。這些運算當(dāng)然可用C語言編程實現(xiàn),但是,如果程序?qū)崿F(xiàn)是一個多重循環(huán),不利于軟件流水,而且隨著數(shù)據(jù)量的增加,消耗的時鐘周期也會成比例增加;即使使用并行匯編在時鐘消耗上可以有所減少,這都是不符合系統(tǒng)實時性要求的。如果通過DMA數(shù)據(jù)重排,可以輕而易舉地實現(xiàn),而且這個過程CPU只占有一個時鐘周期,通過巧妙程序安排,安全可以使數(shù)據(jù)的傳輸過程在CPU的后臺進行,根本感覺不到DMA的存在。
2 C6x系列DMA簡介
TMS320C6701S是TMS320C6000系列的高速浮點數(shù)字信號處理信號,是TI公司20世紀(jì)90年代后期的最新一代DSP產(chǎn)品。C6701有4個通道自加載的DMA通道,用于數(shù)據(jù)的DMA傳輸;另外,1個輔助DMA通道,負責(zé)與主機通信。DMA通道可以在沒有CPU參與下完成映射空間的數(shù)據(jù)傳輸。數(shù)據(jù)的傳輸可以是片內(nèi)存存儲器、片內(nèi)外圍部件或外部器件之間的傳輸。2.1 DMA控制寄存器
對于C6x系列的DMA,在使用任何一個DMA通道進行數(shù)據(jù)傳輸前,都必須設(shè)置以下幾組寄存器。各寄存器及其功能如下:
*主控寄存器(primary control register)——用于控制DMA狀態(tài)及傳輸類型;
*副控寄存器(secondary control register)——用于使能CPU中斷,監(jiān)視DMA通道狀態(tài);
*傳輸計數(shù)寄存器(transfer control register)——用于記錄傳輸?shù)膯挝粩?shù)目;
*源地址寄存器(source control register)——傳輸?shù)钠鹗嫉刂?BR> *目標(biāo)地址寄存器(destination control register)——傳輸?shù)哪康牡刂罚?BR> 此外,DMA通道可以使用以下全局DMA寄存器,以完成比較復(fù)雜的傳輸過程:
*全局地址寄存器組(global address register A、B、C和D);
*全局索引寄存器組(global index register A和register A和B)。
全局地址寄存器組共有4個32位寄存器,其作為分裂地址或地址重載值。全局索引寄存器2個32位寄存器。每個寄存器含2個控制域,其中高16位為幀索引域(FRAME INDEX),其值為幀間的地址偏移量,也就是傳輸完1幀后,地址的調(diào)整量;低16位為數(shù)據(jù)單元索引域(ELEMENT INDEX),其值為幀內(nèi)地址偏移量,也就是每傳輸完1個數(shù)據(jù)單元的地址調(diào)整量。全局計數(shù)重載計數(shù)器與全局索引寄存器結(jié)構(gòu)一樣,用于重載DMA通道的傳輸計數(shù)寄存器。全局DMA寄存器可以為任意DMA通道使用,而且同一寄存器可以同時被一個以上的DMA通道使用。
2.2 DMA工作過程簡介
DMA是十分復(fù)雜的系統(tǒng),限于篇幅,這里只簡要介紹DMA的工作過程。
在C6000系列DMA中,把所傳輸?shù)囊欢〝?shù)量的數(shù)據(jù)單元(ELEMENT)稱為幀(FRAME),幀的
來源:單片機與嵌入式系統(tǒng)應(yīng)用 作者:第二炮兵工程學(xué)院 王文進 劉代志 高科技研究所 王 超 王永明
摘要:以TMS320C6701為例,說明在實時圖像處理系統(tǒng)中使用DMA的必要性,同時給出DMA在實時圖像處理中幾種典型的應(yīng)用例子。
關(guān)鍵詞:DMA 實時圖像處理 DSP
引言
實時圖像處理系統(tǒng)要求系統(tǒng)必須在有限的時間內(nèi)完成大量數(shù)據(jù)的運算。DSP以其獨特的哈佛總線結(jié)構(gòu)和并行的存儲塊結(jié)構(gòu),將乘法操作與加法操作統(tǒng)一考慮,可以在一個指令周期完成般處理器的多次運算;并且指令系統(tǒng)采用多級流水線操作方式,保證了系統(tǒng)對實時性的要求,因此得以在實時圖像處理系統(tǒng)廣泛應(yīng)用。圖像處理系統(tǒng)的最大特點就是運算數(shù)據(jù)量大。大多數(shù)情況下,數(shù)據(jù)量遠遠大于片內(nèi)存儲器容量,計算過程中必須進行數(shù)據(jù)的交換。合理使用DMA可以提高數(shù)據(jù)傳輸效率,取得事半功倍的效果。本文以TMS320C6701(簡稱C6701)為例,介紹DMA在圖像處理中的幾種典型應(yīng)用。1 圖像處理系統(tǒng)特點與使用DMA的必要性
前面已經(jīng)提到,圖像處理系統(tǒng)的最大特點是就是運算數(shù)據(jù)量大,數(shù)據(jù)量往往大于片內(nèi)存儲器容量。不僅如此,圖像處理系統(tǒng)之中,運算過程產(chǎn)生的中間數(shù)據(jù)往往與源數(shù)據(jù)大小相當(dāng),這也限制了片內(nèi)高速存儲區(qū)的使用。然而為了提高處理的速度,計算源數(shù)據(jù)、中間數(shù)據(jù)必須盡可能多地在片內(nèi)高速存儲區(qū)進行,因此,必須使用DMA在片內(nèi)高速存儲區(qū)與片外低速存儲區(qū)之間進行數(shù)據(jù)交換,以提高數(shù)據(jù)處理速度。另外,數(shù)據(jù)的排列往往不符合程序的要求;必須對數(shù)據(jù)進行重排達到程序要求;使用DMA對數(shù)據(jù)重排,可以滿足程序要求。與數(shù)據(jù)重排如出一轍,圖像處理中許多操作的基礎(chǔ)都是對多重數(shù)組的操作,也就是矩陣運算。諸如求逆、取子圖等圖像處理中經(jīng)常用到的運算,也可以通過DMA完成。這些運算當(dāng)然可用C語言編程實現(xiàn),但是,如果程序?qū)崿F(xiàn)是一個多重循環(huán),不利于軟件流水,而且隨著數(shù)據(jù)量的增加,消耗的時鐘周期也會成比例增加;即使使用并行匯編在時鐘消耗上可以有所減少,這都是不符合系統(tǒng)實時性要求的。如果通過DMA數(shù)據(jù)重排,可以輕而易舉地實現(xiàn),而且這個過程CPU只占有一個時鐘周期,通過巧妙程序安排,安全可以使數(shù)據(jù)的傳輸過程在CPU的后臺進行,根本感覺不到DMA的存在。
2 C6x系列DMA簡介
TMS320C6701S是TMS320C6000系列的高速浮點數(shù)字信號處理信號,是TI公司20世紀(jì)90年代后期的最新一代DSP產(chǎn)品。C6701有4個通道自加載的DMA通道,用于數(shù)據(jù)的DMA傳輸;另外,1個輔助DMA通道,負責(zé)與主機通信。DMA通道可以在沒有CPU參與下完成映射空間的數(shù)據(jù)傳輸。數(shù)據(jù)的傳輸可以是片內(nèi)存存儲器、片內(nèi)外圍部件或外部器件之間的傳輸。2.1 DMA控制寄存器
對于C6x系列的DMA,在使用任何一個DMA通道進行數(shù)據(jù)傳輸前,都必須設(shè)置以下幾組寄存器。各寄存器及其功能如下:
*主控寄存器(primary control register)——用于控制DMA狀態(tài)及傳輸類型;
*副控寄存器(secondary control register)——用于使能CPU中斷,監(jiān)視DMA通道狀態(tài);
*傳輸計數(shù)寄存器(transfer control register)——用于記錄傳輸?shù)膯挝粩?shù)目;
*源地址寄存器(source control register)——傳輸?shù)钠鹗嫉刂?BR> *目標(biāo)地址寄存器(destination control register)——傳輸?shù)哪康牡刂罚?BR> 此外,DMA通道可以使用以下全局DMA寄存器,以完成比較復(fù)雜的傳輸過程:
*全局地址寄存器組(global address register A、B、C和D);
*全局索引寄存器組(global index register A和register A和B)。
全局地址寄存器組共有4個32位寄存器,其作為分裂地址或地址重載值。全局索引寄存器2個32位寄存器。每個寄存器含2個控制域,其中高16位為幀索引域(FRAME INDEX),其值為幀間的地址偏移量,也就是傳輸完1幀后,地址的調(diào)整量;低16位為數(shù)據(jù)單元索引域(ELEMENT INDEX),其值為幀內(nèi)地址偏移量,也就是每傳輸完1個數(shù)據(jù)單元的地址調(diào)整量。全局計數(shù)重載計數(shù)器與全局索引寄存器結(jié)構(gòu)一樣,用于重載DMA通道的傳輸計數(shù)寄存器。全局DMA寄存器可以為任意DMA通道使用,而且同一寄存器可以同時被一個以上的DMA通道使用。
2.2 DMA工作過程簡介
DMA是十分復(fù)雜的系統(tǒng),限于篇幅,這里只簡要介紹DMA的工作過程。
在C6000系列DMA中,把所傳輸?shù)囊欢〝?shù)量的數(shù)據(jù)單元(ELEMENT)稱為幀(FRAME),幀的
熱門點擊
- DSD/A數(shù)模變換器DSD-1700
- 14位10MHz CCD/CIS信號處理器
- 車載數(shù)據(jù)記錄壓縮算法的研究
- 新的浮點處理器能直接進行對數(shù)運算
- 用低速A/D變換器取樣高速圖像的技術(shù)
- 用DSP實現(xiàn)CPLD多方案現(xiàn)場可編程配置
- 組合著色Petri網(wǎng)空間復(fù)合事件檢測機制
- 針對DSP處理器的應(yīng)用設(shè)計的系統(tǒng)存儲器
- 基于OMAP的MPEG—4實時解碼器的實現(xiàn)
- 基于DSP芯片的分級分布式管理系統(tǒng)設(shè)計
推薦技術(shù)資料
- 業(yè)余條件下PCM2702
- PGM2702采用SSOP28封裝,引腳小而密,EP3... [詳細]
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究