www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]介紹了Blackfin533中DMA的類型及特點(diǎn),描述了DMA在實(shí)時(shí)圖像處理領(lǐng)域數(shù)據(jù)傳輸中的重要應(yīng)用,給出了兩個(gè)具體的應(yīng)用實(shí)例,最后指出了使用Blackfin533的DMA時(shí)應(yīng)注意的事項(xiàng)。

   摘要:介紹了Blackfin533中DMA的類型及特點(diǎn),描述了DMA在實(shí)時(shí)圖像處理領(lǐng)域數(shù)據(jù)傳輸中的重要應(yīng)用,給出了兩個(gè)具體的應(yīng)用實(shí)例,最后指出了使用Blackfin533的DMA時(shí)應(yīng)注意的事項(xiàng)。

    關(guān)鍵詞:Blackfin533;DMA;實(shí)時(shí)圖像處理;數(shù)據(jù)傳輸

直接存儲(chǔ)器存?。ǎ模椋颍澹悖?Memory Access,簡(jiǎn)稱DMA?對(duì)計(jì)算機(jī)系統(tǒng)是非常重要的。它可以使CPU在運(yùn)行指令的同時(shí)從外部存儲(chǔ)器或設(shè)備中存取數(shù)據(jù),也可以在CPU不參與的情況下,由專用的DMA控制器存取數(shù)據(jù)。 

1 Blackfin533中的DMA

Blackfin系列DSP產(chǎn)品包括ADSP-BF535和ADSP-BF533/2/1兩類,都是AD公司最新的基于微信號(hào)體系結(jié)構(gòu)的DSP,這些器件含有兩個(gè)MAC,并集成了大量的外圍設(shè)備和存儲(chǔ)器接口,每秒運(yùn)算速度最高可達(dá)1200MMAC,因而比較適用于各種視頻、音頻、通信領(lǐng)域。

BF533處理器有多個(gè)獨(dú)立的DMA控制器,它能以最小的處理器內(nèi)核消耗支持?jǐn)?shù)據(jù)的自動(dòng)傳輸。DMA傳輸可以發(fā)生在BF533處理器的內(nèi)存與支持DMA的任一外設(shè)之間。此外,DMA還可以完成有DMA功能的外設(shè)與連接在外部存儲(chǔ)器接口上的外部設(shè)備(包括SDRAM控制器和異步存儲(chǔ)控制器)之間數(shù)據(jù)傳輸。BF533處理器可利用DMA在存儲(chǔ)器空間內(nèi)部,以及在一個(gè)存儲(chǔ)器空間和外圍設(shè)備之間傳輸數(shù)據(jù),并可以指定傳輸操作,以便完全集成化的DMA控制器獨(dú)立于處理器完成數(shù)據(jù)傳輸時(shí)返回到正常的處理。

BF533處理器的DMA控制器同時(shí)支持1D和2D DMA傳輸,其DMA傳輸初始化可以通過寄存器狀態(tài)描述符塊中的一組參數(shù)來實(shí)現(xiàn)。2D DMA行和列最大可支持64k×64k個(gè)元素任意數(shù)。而且列的步長(zhǎng)可小于行的步長(zhǎng),并可執(zhí)行交叉存取的數(shù)據(jù)流。這一個(gè)特點(diǎn)在某些視頻應(yīng)用場(chǎng)合特別有用。

    Blackfin533有12個(gè)通道DMA控制器。有DMA功能的外設(shè)包括SPORTs、SPI、UART和PPI。每個(gè)支持DMA的外設(shè)至少有一個(gè)專用的DMA通道。DMA控制器可以完成的幾種數(shù)據(jù)傳輸類型如下:

(1)存儲(chǔ)器和存儲(chǔ)器之間(MDMA);

(2)存儲(chǔ)器和串行外設(shè)接口(SPI)之間;

(3)存儲(chǔ)器和串行接口 (SPORT)之間;

(4)存儲(chǔ)器和通用異步收發(fā)器UART接口之間;

(5)存儲(chǔ)器和并行外設(shè)接口(PPI)之間;

BF533處理器上的DMA傳輸可以基于描述符,也可以基于寄存器?;诿枋龇模模停羵鬏斝枰么娣旁诖鎯?chǔ)器內(nèi)的一組參數(shù)來初始化一個(gè)DMA序列。這種傳輸允許多個(gè)DMA序列鏈接在一起。在基于描述符的DMA操作中,一個(gè)DMA通道可以通過編程自動(dòng)建立起來,并可在當(dāng)前序列完成后開始另一個(gè)DMA傳輸。基于寄存器的DMA允許處理器直接對(duì)控制寄存器編程來啟動(dòng)一個(gè)DMA傳輸。傳輸完成后,為了連續(xù)傳輸數(shù)據(jù),也可以用它們?cè)瓉碓O(shè)置的值自動(dòng)更新控制寄存器。

2?。模停猎跀?shù)字圖像處理中的應(yīng)用

DMA是數(shù)字信號(hào)處理器(DSP)中用于快速數(shù)據(jù)交換的重要技術(shù),它具有獨(dú)立于CPU的后臺(tái)批量數(shù)據(jù)傳輸能力,能夠滿足實(shí)時(shí)圖像處理中的高速數(shù)據(jù)傳輸要求。由于圖像處理的原始數(shù)據(jù)量很大,同時(shí)圖像處理中也會(huì)產(chǎn)生等量的中間數(shù)據(jù),對(duì)于片內(nèi)存儲(chǔ)資源有限的高速DSP芯片來說,一般需要借用外部存儲(chǔ)空間。為了提高系統(tǒng)的實(shí)時(shí)處理能力,可以將數(shù)據(jù)在不同存儲(chǔ)空間的轉(zhuǎn)移任務(wù)交給DMA來完成,從而使CPU只專注于數(shù)據(jù)的計(jì)算。同時(shí)DMA對(duì)數(shù)據(jù)的重排功能可以優(yōu)化圖像數(shù)據(jù)在內(nèi)存中的存儲(chǔ),這不僅可以提高內(nèi)部存儲(chǔ)空間的利用效率,也可以提高數(shù)據(jù)的傳輸效率。雖然圖像數(shù)據(jù)的傳輸也可由軟件實(shí)現(xiàn),但會(huì)消耗大量的CPU時(shí)鐘周期,從而使DSP的高速性能難以發(fā)揮。而由DMA來進(jìn)行同樣的工作卻不占用CPU的時(shí)鐘周期。

BF533內(nèi)部專門為適應(yīng)視頻數(shù)據(jù)處理而增加的二維DMA及相關(guān)寄存器有以下幾種:

(1)配置寄存器(DMAx CONFIG/MDMA yy CONFIG)主要用來設(shè)置二維DMA方式使能和中斷產(chǎn)生方式,其中中斷可以在一行結(jié)束時(shí)產(chǎn)生,也可以在整個(gè)DMA結(jié)束時(shí)產(chǎn)生。

(2)內(nèi)層循環(huán)計(jì)數(shù)寄存器(DMAx X COUNT/MDMA yy X COUNT)用于在二維DMA?xí)r保存內(nèi)層循環(huán)的數(shù)目(或稱行數(shù)),該數(shù)目必須大于等于2。

(3)內(nèi)層循環(huán)地址增量寄存器(DMAx X MODI-FY/MDMA yy X MODIFY)用于在二維DMA?xí)r保存每一次內(nèi)層循環(huán)計(jì)數(shù)器加1之后(也就是在內(nèi)層每傳輸完一個(gè)元素,但不包括每個(gè)內(nèi)層的最后一個(gè)元素),DMA操作(讀或?qū)懀┑刂吩趦?nèi)存中的增量,此增量應(yīng)該是二維DMA操作的數(shù)據(jù)單元長(zhǎng)度的整數(shù)倍,如二維DMA進(jìn)行16位讀寫時(shí),此增量必須是2N?N≠0?倍。

(4)外層循環(huán)計(jì)數(shù)寄存器(DMAx Y COUNT/MDMA yy Y COUNT):該寄存器僅在二維DMA中使用,任務(wù)是保存外層循環(huán)的數(shù)目(或稱位列數(shù))。

(5)外層循環(huán)地址增量寄存器(DMAx Y MODI-FY/MDMA yy Y MODIFY):該寄存器也僅在二維DMA中使用,任務(wù)是保存每次外層循環(huán)計(jì)數(shù)器加1后,DMA操作地址在內(nèi)存中的增量,該值可以為負(fù),且應(yīng)為二維DMA操作數(shù)據(jù)單元長(zhǎng)度的整數(shù)倍。3 應(yīng)用舉例

存儲(chǔ)器的有效利用對(duì)系統(tǒng)設(shè)計(jì)者來說是需要著重考慮的問題。外部存儲(chǔ)器比較昂貴,而且其存取時(shí)具有較長(zhǎng)的延遲。為了克服上述問題,Blackfin處理器片上集成有SDRAM控制器,可支持片外存儲(chǔ)器。因?yàn)橐曨l數(shù)據(jù)率要求非??量?,幀緩沖區(qū)必須設(shè)立在外部存儲(chǔ)器上。這樣,當(dāng)處理器操作一個(gè)緩存時(shí),另一個(gè)緩存便可以存儲(chǔ)通過PPI并用DMA傳輸?shù)臄?shù)據(jù),見圖1。

下例可將BF533的PPI接口上從圖像采集芯片ADV7183傳送過來的視頻流中的一場(chǎng)視頻圖像(720×288像素)存儲(chǔ)到外部存儲(chǔ)器SDRAM中。

具體程序代碼如下:

Init_DMA() ?

{

*pDMA0 START ADDR = 0x0; //把圖像存放在SDRAM中的起始地址//0x00000000處;

*pDMA0 X COUNT = 720; //圖像的行數(shù);

*pDMA0 X MODIFY = 0x4; //在內(nèi)層每次傳完一個(gè)元素后地址的增量,因?yàn)槊看蝹鬏敚常参唬允牵埃?

*pDMA0 Y COUNT =72; //外層循環(huán)的數(shù)目,因?yàn)榭偟木彺鏋椋罚玻?#215;288字節(jié),所以288/4=72?

*pDMA0 Y MODIFY = 0x4; //傳完一行數(shù)據(jù)后DMA的地址增量,因?yàn)槭谴鎯?chǔ)空間是連續(xù)的,所以是0x4?

*pDMA0 PERIPHERAL MAP = 0x0?

//外設(shè)PPI的DMA開啟;

*pDMA0 CONFIG = DMAEN |DI EN|WNR|WDSIZE 32|RESTART|DMA2D|DI EN;

//使能DMA,整個(gè)DMA結(jié)束產(chǎn)生中斷,存儲(chǔ)器寫。32位傳輸,重新開始前丟失FIFO中的數(shù)據(jù)。

}

當(dāng)一個(gè)完整的圖像幀存放在SDRAM后,數(shù)據(jù)將傳輸?shù)絻?nèi)部L1數(shù)據(jù)存儲(chǔ)器中,這樣,處理器內(nèi)核用一個(gè)時(shí)鐘周期的延遲就可以訪問到數(shù)據(jù)。為此,DMA控制器可以用二維傳輸獲得像素塊。圖2所示是一個(gè)16×16“宏塊”的傳輸示意圖。

圖2

    為了有效地從原圖像中傳輸一個(gè)圖像塊,一般需要控制四個(gè)參數(shù):X Count、Y Count、X Modify和Y Modify。其中X Count和Y Count分別表示水平和垂直方向上讀入/讀出的元素?cái)?shù)。在此應(yīng)用中“水平”和“垂直”是抽象的概念,因?yàn)閳D像數(shù)據(jù)在外存中實(shí)際上是線性存儲(chǔ)的。另外兩個(gè)參數(shù)X Modify和Y Modify是在傳輸了必需的X Count和Y Count后跨越的數(shù)據(jù)量。從性能上看,任何時(shí)候最多四個(gè)唯一的SDRAM內(nèi)部子組(bank)都是活動(dòng)的。這意味著在視頻結(jié)構(gòu)中,PPI填充一個(gè)子組(bank)時(shí),2D到1D DMA只是把數(shù)據(jù)從一個(gè)子組(bank)拖進(jìn)來,而沒有額外的子組(bank)激活延遲。下面是一個(gè)2D到1D的DMA傳輸代碼:

2Dto1D_DMA()

{

unsigned char *p;

p=0x0;

*pMDMA_D0_START_ADDR=p+L1buffer;

//L1buffer是L1緩沖區(qū)的地址

*pMDMA_D0_X_COUNT=64;

//16×16/4=64;

*pMDMA_D0_X_MODIFY=4;

pMDMA_S0_START_ADDR =p+Sourcebuffer; //Sourcebuffer是16×16圖像塊在SDRAM中的地址

*pMDMA_S0_X_COUNT=4;

*pMDMA_S0_X_MODIFY=4;

*pMDMA_S0_Y_COUNT=16;

*pMDMA_S0_Y_MODIFY=708;

// 720-16+4=708

*pMDMA_S0_CONFIG=WDSIZE32|DMAEN|DMA2D;

*pMDMA_D0_CONFIG=DI EN|WDSIZE32|WNR|DMAEN;

*pMDMA_D0_IRQ STATUS=0x1;

//消除中斷;

4 BF533中DMA的使用注意事項(xiàng)

下面兩種情況會(huì)導(dǎo)致DMA總線錯(cuò)誤:

(1)數(shù)據(jù)沒有對(duì)齊

當(dāng)要傳送的數(shù)據(jù)與當(dāng)前地址不相符時(shí),可能發(fā)生數(shù)據(jù)沒有對(duì)齊的錯(cuò)誤。數(shù)據(jù)不對(duì)齊包括有情況:第一是當(dāng)DMA CONFIG 寄存器的WDSIZE為1(16bit)時(shí),地址的最低位不等于0;第二是當(dāng)WD-SIZE為2(32bit)時(shí),最低兩位地址不等于00。如果出現(xiàn)上述錯(cuò)誤,IRQ寄存器中的位2應(yīng)被置位。

(2)非法存儲(chǔ)器訪問

發(fā)生非法存儲(chǔ)器訪問時(shí)(如訪問MMR空間),處理器將得到一個(gè)錯(cuò)誤響應(yīng)并導(dǎo)致以下結(jié)果:第一是DMA通道會(huì)結(jié)束當(dāng)前的單個(gè)或突發(fā)式傳送;第二是DMA信道的使能位(配置字的bit0)將被清零;第三是產(chǎn)生一個(gè)總線錯(cuò)誤中斷并使IRQ 狀態(tài)寄存器中的位2被置位。

還有一點(diǎn)就是要保證對(duì)MDMA中MDMA_S0_CONFIG(MDMA S1 CONFIG?位的寫入一定要在寫入MDMA_D0_CONFIG(MDMA_D1_CONFIG)之前。

5 總結(jié)

一般情況下,圖像處理系統(tǒng)的最大特點(diǎn)是運(yùn)算數(shù)據(jù)量大,數(shù)據(jù)量往往大于片內(nèi)存儲(chǔ)器容量,所以必須借助DMA在片內(nèi)高速存儲(chǔ)區(qū)與片外低速存儲(chǔ)區(qū)之間進(jìn)行數(shù)據(jù)交換,以提高數(shù)據(jù)處理速度。多數(shù)情形下,數(shù)據(jù)傳輸所花的時(shí)間往往超過數(shù)據(jù)處理的時(shí)間。因此,合理使用DMA來提高數(shù)據(jù)傳輸率,可起到很好的作用。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉