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

當前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導讀]DMA的基本介紹1DMA的基本定義DMA,全稱DirectMemoryAccess,即直接存儲器訪問。DMA傳輸將數(shù)據(jù)從一個地址空間復制到另一個地址空間,提供在外設和存儲器之間或者存儲器和存儲器之間的高速數(shù)據(jù)傳輸。當CPU初始化這個傳輸動作,傳輸動作本身是由DMA控制器來實現(xiàn)和完...

DMA的基本介紹


1DMA的基本定義

DMA,全稱Direct Memory Access,即直接存儲器訪問。


DMA傳輸將數(shù)據(jù)從一個地址空間復制到另一個地址空間,提供在外設和存儲器之間或者存儲器和存儲器之間的高速數(shù)據(jù)傳輸。當CPU初始化這個傳輸動作,傳輸動作本身是由DMA控制器來實現(xiàn)和完成的。DMA傳輸方式無需CPU直接控制傳輸,也沒有中斷處理方式那樣保留現(xiàn)場和恢復現(xiàn)場過程,通過硬件為RAM和IO設備開辟一條直接傳輸數(shù)據(jù)的通道,使得CPU的效率大大提高。


2DMA的主要特征

  • 每個通道都直接連接專用的硬件DMA請求,每個通道都同樣支持軟件觸發(fā)。這些功能通過軟件來配置;

  • 在同一個DMA模塊上,多個請求間的優(yōu)先權可以通過軟件編程設置(共有四級:很高、高、中等和低),優(yōu)先權設置相等時由硬件決定(請求0優(yōu)先于請求1,依此類推);

  • 獨立數(shù)據(jù)源和目標數(shù)據(jù)區(qū)的傳輸寬度(字節(jié)、半字、全字),模擬打包和拆包的過程。源和目標地址必須按數(shù)據(jù)傳輸寬度對齊;

  • 支持循環(huán)的緩沖器管理;

  • 每個通道都有3個事件標志(DMA半傳輸、DMA傳輸完成和DMA傳輸出錯),這3個事件標志邏輯或成為一個單獨的中斷請求;

  • 存儲器和存儲器間的傳輸、外設和存儲器、存儲器和外設之間的傳輸;

  • 閃存、SRAM、外設的SRAM、APB1、APB2和AHB外設均可作為訪問的源和目標;

  • 可編程的數(shù)據(jù)傳輸數(shù)目:最大為65535。


3STM33F10x系列芯片DMA控制器

STM32F10x系列芯片最多有2個DMA控制器(DMA2僅存在大容量產品中),DMA1有7個通道。DMA2有5個通道。每個通道專門用來管理來自于一個或多個外設對存儲器訪問的請求。還有一個仲裁起來協(xié)調各個DMA請求的優(yōu)先權。


從外設(TIMx[x=1、2、3、4]、ADC1、SPI1、SPI/I2S2、I2Cx[x=1、2]和USARTx[x=1、2、3])產生的7個請求,通過邏輯或輸入到DMA1控制器,這意味著同時只能有一個請求有效。各個通道的DMA1請求一覽見下圖:



從外設(TIMx[5、6、7、8]、ADC3、SPI/I2S3、UART4、DAC通道1、2和SDIO)產生的5個請求,經邏輯或輸入到DMA2控制器,這意味著同時只能有一個請求有效。各個通道的DMA2請求一覽見下圖:




DMA的基本原理


DMA控制器和Cortex?-M3核心共享系統(tǒng)數(shù)據(jù)總線,執(zhí)行直接存儲器數(shù)據(jù)傳輸。當CPU和DMA同時訪問相同的目標(RAM或外設)時,DMA請求會暫停CPU訪問系統(tǒng)總線達若干個周期,總線仲裁器執(zhí)行循環(huán)調度,以保證CPU至少可以得到一半的系統(tǒng)總線(存儲器或外設)帶寬。


0DMA的工作框圖


DMA模塊的框圖看起來比較復雜,接下來會一點一點地對它進行分析。


1DMA處理

在發(fā)生一個事件后,外設向DMA控制器發(fā)送一個請求信號。DMA控制器根據(jù)通道的優(yōu)先權處理請求。當DMA控制器開始訪問發(fā)出請求的外設時,DMA控制器立即發(fā)送給它一個應答信號。當從DMA控制器得到應答信號時,外設立即釋放它的請求。一旦外設釋放了這個請求,DMA控制器同時撤銷應答信號。如果有更多的請求時,外設可以啟動下一個周期。


總之,每次DMA傳送由3個操作組成:

  • 從外設數(shù)據(jù)寄存器或者從當前外設/存儲器地址寄存器指示的存儲器地址取數(shù)據(jù),第一次傳輸時的開始地址是DMA_CPARx或DMA_CMARx寄存器指定的外設基地址或存儲器單元;

  • 存數(shù)據(jù)到外設數(shù)據(jù)寄存器或者當前外設/存儲器地址寄存器指示的存儲器地址,第一次傳輸時的開始地址是DMA_CPARx或DMA_CMARx寄存器指定的外設基地址或存儲器單元;

  • 執(zhí)行一次DMA_CNDTRx寄存器的遞減操作,該寄存器包含未完成的操作數(shù)目。


2仲裁器

仲裁器根據(jù)通道請求的優(yōu)先級來啟動外設/存儲器的訪問。


優(yōu)先權管理分2個階段:

  • 軟件:每個通道的優(yōu)先權可以在DMA_CCRx寄存器中設置,有4個等級:最高優(yōu)先級、高優(yōu)先級、中等優(yōu)先級、低優(yōu)先級;

  • 硬件:如果2個請求有相同的軟件優(yōu)先級,則較低編號的通道比較高編號的通道有較高的優(yōu)先權。比如:如果軟件優(yōu)先級相同,通道2優(yōu)先于通道4。?


注意:在大容量產品和互聯(lián)型產品中,DMA1控制器擁有高于DMA2控制器的優(yōu)先級。


3DMA通道

每個通道都可以在有固定地址的外設寄存器和存儲器地址之間執(zhí)行DMA傳輸。DMA傳輸?shù)臄?shù)據(jù)量是可編程的,最大達到65535。包含要傳輸?shù)臄?shù)據(jù)項數(shù)量的寄存器,在每次傳輸后遞減。


4可編程的數(shù)據(jù)量

外設和存儲器的傳輸數(shù)據(jù)量可以通過DMA_CCRx寄存器中的PSIZE和MSIZE位編程。


6指針增量

通過設置DMA_CCRx寄存器中的PINC和MINC標志位,外設和存儲器的指針在每次傳輸后可以有選擇地完成自動增量。當設置為增量模式時,下一個要傳輸?shù)牡刂穼⑹乔耙粋€地址加上增量值,增量值取決于所選的數(shù)據(jù)寬度為1、2或4。


第一個傳輸?shù)牡刂肥谴娣旁贒MA_CPARx /DMA_CMARx寄存器中的值。在傳輸過程中,這些寄存器保持它們初始的數(shù)值,軟件不能改變和讀出當前正在傳輸?shù)牡刂罚ㄋ趦炔康漠斍巴庠O/存儲器地址寄存器中)。


當通道配置為非循環(huán)模式時,傳輸結束后(即傳輸計數(shù)變?yōu)?)將不再產生DMA操作。要開始新的DMA傳輸,需要在關閉DMA通道的情況下,在DMA_CNDTRx寄存器中重新寫入傳輸數(shù)目。在循環(huán)模式下,最后一次傳輸結束時,DMA_CNDTRx寄存器的內容會自動地被重新加載為其初始數(shù)值,內部的當前外設/存儲器地址寄存器也被重新加載為DMA_CPARx/DMA_CMARx寄存器設定的初始基地址。


6循環(huán)模式

循環(huán)模式用于處理循環(huán)緩沖區(qū)和連續(xù)的數(shù)據(jù)傳輸(如ADC的掃描模式)。


在DMA_CCRx寄存器中的CIRC位用于開啟這一功能。當啟動了循環(huán)模式,數(shù)據(jù)傳輸?shù)臄?shù)目變?yōu)?時,將會自動地被恢復成配置通道時設置的初值,DMA操作將會繼續(xù)進行。


7存儲器到存儲器模式

DMA通道的操作可以在沒有外設請求的情況下進行,這種操作就是存儲器到存儲器模式。


當設置了DMA_CCRx寄存器中的MEM2MEM位之后,在軟件設置了DMA_CCRx寄存器中的EN位啟動DMA通道時,DMA傳輸將馬上開始。當DMA_CNDTRx寄存器變?yōu)?時,DMA傳輸結束。存儲器到存儲器模式不能與循環(huán)模式同時使用。


8可編程的數(shù)據(jù)傳輸寬度、對齊方式和數(shù)據(jù)大小端

當PSIZE和MSIZE不相同時,DMA模塊按照下圖進行數(shù)據(jù)對齊。



9中斷

每個DMA通道都可以在DMA傳輸過半、傳輸完成和傳輸錯誤時產生中斷。為應用的靈活性考慮,通過設置寄存器的不同位來打開這些中斷。



注意:在大容量產品中,DMA2通道4和DMA2通道5的中斷被映射在同一個中斷向量上。在互聯(lián)型產品中,DMA2通道4和DMA2通道5的中斷分別有獨立的中斷向量。所有其他的DMA通道都有自己的中斷向量。



DMA相關配置寄存器


DMA配置參數(shù)包括:通道地址、優(yōu)先級、數(shù)據(jù)傳輸方向、存儲器/外設數(shù)據(jù)寬度、存儲器/外設地址是否增量、循環(huán)模式、數(shù)據(jù)傳輸量。


1DMA通道x配置寄存器(DMA_CCRx)


作用:配置DMA通道模式、優(yōu)先級、數(shù)據(jù)寬度、是否增量、傳輸方向、是否增量參數(shù)。


2DMA通道x傳輸數(shù)量寄存器(DMA_CNDTRx)


作用:配置DMA通道的數(shù)據(jù)傳輸數(shù)量,范圍為0-65535。


主要注意:該寄存器的值會隨著傳輸?shù)倪M行而減少,當該寄存器的值為0的時候,就代表著此次傳輸已經全部結束了。也就是說,當DMA通道開啟傳輸了之后,該寄存器變成只讀,指示的是數(shù)據(jù)傳輸數(shù)量中剩余待傳輸?shù)淖止?jié)數(shù)目。


3DMA通道x外設地址寄存器(DMA_CPARx)


作用:配置DMA通道的外設地址。比如使用串口1的數(shù)據(jù)引腳,則該寄存器必須寫上0x40013804(其實就是串口數(shù)據(jù)寄存器的地址,
嵌入式ARM

掃描二維碼,關注更多精彩內容

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉