第19章
DMAC/DTC——直接存儲器訪問與數(shù)據(jù)傳輸
19.1
DMAC和DTC模塊簡介
DMAC(Direct Memory Access Controller)為直接存儲器訪問控制器或者直接內(nèi)存訪問控制器,可以在不占用CPU的情況下將數(shù)據(jù)從一個內(nèi)存位置傳輸?shù)搅硪粋€內(nèi)存位置。
DTC(Data Transfer Controller)為數(shù)據(jù)傳輸控制器,用于在被中斷請求激活時傳輸數(shù)據(jù)。DTC也可以在不占用CPU的情況下將數(shù)據(jù)傳輸,它的功能與DMAC的功能其實是相似的。
DMAC和DTC它們的主要功能都是用來搬數(shù)據(jù),但是卻不需要占用CPU,即在傳輸數(shù)據(jù)的時候,不需要CPU去讀取數(shù)據(jù),在此期間CPU完全可以干其他的事情,類似于多線程一樣。數(shù)據(jù)傳輸支持從外設(shè)到存儲器或者存儲器到存儲器,這里的存儲器可以是SRAM或者FLASH。實際上,我們前面有講過,外設(shè)寄存器也是一種存儲器。
DMAC和DTC實際上還是會有區(qū)別的,正因為有所區(qū)別,在不同的情況下需要考慮是使用DMAC還是DTC更加合適。下面就讓我們來了解一下DMAC和DTC這兩個模塊的一些特性。
19.1.1
DMAC特性
RA6M5包括一個8通道的直接內(nèi)存訪問控制器(DMAC),可以在不需要CPU干預(yù)的情況下傳輸數(shù)據(jù)。當(dāng)產(chǎn)生DMA傳輸請求時,DMAC將存儲在傳輸源地址的數(shù)據(jù)傳輸?shù)絺鬏斈繕?biāo)地址。
DMAC外設(shè)模塊特性如下:
1通道數(shù):8個通道(Channel 0通道的優(yōu)先級最高)
2傳輸可尋址空間:4GB(0x00000000~0xFFFFFFFF,不包含保留區(qū)域)
3最大傳輸量:64M數(shù)據(jù)(塊傳輸模式下的最大傳輸數(shù):1024×65536個塊)
4DMAC激活源(每個通道單獨可選):
軟件觸發(fā)
來自外設(shè)模塊或者外部中斷輸入引腳的中斷請求
5傳輸數(shù)據(jù):
單個數(shù)據(jù)單元:1字節(jié)(8 bits),2字節(jié)(16 bits),4字節(jié)(32 bits)
單個塊的大小(Block size):1~1024個數(shù)據(jù)單元
6傳輸模式:
正常傳輸模式(Normal Transfer Mode)
觸發(fā)一次DMA傳輸請求時傳輸1個數(shù)據(jù)單元
可選的自由運行功能(Free-running function)
重復(fù)傳輸模式(Repeat Transfer Mode)
觸發(fā)一次DMA傳輸請求時傳輸1個數(shù)據(jù)單元
當(dāng)指定重復(fù)大小的數(shù)據(jù)傳輸完成后,程序重置傳輸起始地址從而實現(xiàn)重復(fù)傳輸。
最大可設(shè)置重復(fù)大?。?024個數(shù)據(jù)單元(同塊大小)
可選的自由運行功能(Free-running function)
塊傳輸模式(Block Transfer Mode)
觸發(fā)一次DMA傳輸請求時傳輸1個塊數(shù)據(jù)
最大可設(shè)置塊大小:1024個數(shù)據(jù)單元
可選的自由運行功能(Free-running function)
重復(fù)-塊傳輸模式(Repeat-block Transfer Mode)
觸發(fā)一次DMA傳輸請求時傳輸1個塊數(shù)據(jù)
最大可設(shè)置塊大?。?024個數(shù)據(jù)單元
塊傳輸可以重復(fù)
最大可設(shè)置重復(fù)大?。?5536個塊
可選的自由運行功能(Free-running function)
7擴(kuò)展重復(fù)區(qū)域功能(可選功能):
可以通過重復(fù)指定范圍內(nèi)的地址值來傳輸數(shù)據(jù)的功能,其中傳輸?shù)刂芳拇嫫髦械母呶恢凳枪潭ǖ?/p>
2字節(jié)至128M字節(jié)的區(qū)域可單獨設(shè)置為傳輸源和目標(biāo)的擴(kuò)展重復(fù)區(qū)域
8中斷(中斷頻率):
全部傳輸完成后中斷(傳輸結(jié)束中斷):
傳輸計數(shù)器指定的傳輸數(shù)據(jù)量完成時產(chǎn)生
每次傳輸完成都產(chǎn)生中斷(傳輸轉(zhuǎn)義結(jié)束中斷):
當(dāng)重復(fù)大小的數(shù)據(jù)傳輸完成時產(chǎn)生
當(dāng)源地址擴(kuò)展重復(fù)區(qū)域溢出時產(chǎn)生
當(dāng)目標(biāo)地址擴(kuò)展重復(fù)區(qū)域溢出時產(chǎn)生
錯誤響應(yīng)檢測中斷:
DMAC傳輸發(fā)生錯誤時產(chǎn)生
9事件鏈接激活:
每次數(shù)據(jù)傳輸后都會生成一個事件鏈接請求(對于塊傳輸,在每個塊傳輸后)
19.1.2
DTC特性
數(shù)據(jù)傳輸控制器(DTC)模塊用于在被中斷請求激活時傳輸數(shù)據(jù)。
DTC外設(shè)模塊特性如下:
1傳輸模式:
正常傳輸模式(Normal Transfer Mode)
單次激活時觸發(fā)單個數(shù)據(jù)單元的傳輸
重復(fù)傳輸模式(Repeat Transfer Mode)
單次激活時觸發(fā)單個數(shù)據(jù)單元的傳輸
數(shù)據(jù)傳輸次數(shù)達(dá)到指定的重復(fù)大小后,傳輸?shù)刂分刂没仄鹗嫉刂?/p>
最大重復(fù)傳輸次數(shù)為256,最大數(shù)據(jù)傳輸大小為256×32位(1024字節(jié))
塊傳輸模式(Block Transfer Mode)
單次激活時觸發(fā)單個塊的傳輸
最大的塊大小為256×32位(1024字節(jié))
2傳輸通道:
傳輸通道與中斷源相關(guān)聯(lián)(通過來自ICU的DTC激活請求傳輸)
可以在單個激活源上傳輸多個數(shù)據(jù)單元(鏈?zhǔn)絺鬏?
鏈傳輸可以選擇在計數(shù)器為0時執(zhí)行,也可以選擇始終執(zhí)行
3傳輸可尋址空間:
4GB(0x00000000~0xFFFFFFFF,不包含保留區(qū)域)
4傳輸數(shù)據(jù):
單個數(shù)據(jù)單元:1字節(jié)(8 bits),1 半字(16 bits),1字(32 bits)
單個塊的大小(Block size):1~256個數(shù)據(jù)單元
5CPU中斷源:
可以在觸發(fā)DTC激活的中斷向CPU生成中斷請求
可以在單次數(shù)據(jù)傳輸之后向CPU生成中斷請求
可以在指定量的數(shù)據(jù)傳輸之后向CPU生成中斷請求
6錯誤響應(yīng)檢測中斷:
發(fā)生DTC傳輸錯誤時生成
7事件鏈接激活:
每次數(shù)據(jù)傳輸后都會生成一個事件鏈接請求(對于塊傳輸,在每個塊傳輸后)
![]()
-
控制器
+關(guān)注
關(guān)注
114文章
17621瀏覽量
190048 -
存儲器
+關(guān)注
關(guān)注
39文章
7713瀏覽量
170778 -
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
2070瀏覽量
67158
原文標(biāo)題:DMAC/DTC:直接存儲器訪問與數(shù)據(jù)傳輸——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(51)
文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
瑞薩RA系列MCU中的DMAC模塊框圖分析
瑞薩RA系列MCU中的DTC模塊框圖分析
瑞薩RA6M4系列DMAC和ADC的詳細(xì)介紹(1)
瑞薩電子RA系列MCU解決智能物聯(lián)網(wǎng)系統(tǒng)開發(fā)痛點

瑞薩RA系列MCU中的DMAC和DTC模塊簡介
評論