日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

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

DMA的基本介紹


1DMA的基本定義

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


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


2DMA的主要特征

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

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

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

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

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

  • 存儲器和存儲器間的傳輸、外設(shè)和存儲器、存儲器和外設(shè)之間的傳輸;

  • 閃存、SRAM、外設(shè)的SRAM、APB1、APB2和AHB外設(shè)均可作為訪問的源和目標(biāo);

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


3STM33F10x系列芯片DMA控制器

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


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



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




DMA的基本原理


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


0DMA的工作框圖


DMA模塊的框圖看起來比較復(fù)雜,接下來會一點一點地對它進(jìn)行分析。


1DMA處理

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


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

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

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

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


2仲裁器

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


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

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

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


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


3DMA通道

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


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

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


6指針增量

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


第一個傳輸?shù)牡刂肥谴娣旁贒MA_CPARx /DMA_CMARx寄存器中的值。在傳輸過程中,這些寄存器保持它們初始的數(shù)值,軟件不能改變和讀出當(dāng)前正在傳輸?shù)牡刂罚ㄋ趦?nèi)部的當(dāng)前外設(shè)/存儲器地址寄存器中)。


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


6循環(huán)模式

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


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


7存儲器到存儲器模式

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


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


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

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



9中斷

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



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



DMA相關(guān)配置寄存器


DMA配置參數(shù)包括:通道地址、優(yōu)先級、數(shù)據(jù)傳輸方向、存儲器/外設(shè)數(shù)據(jù)寬度、存儲器/外設(shè)地址是否增量、循環(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(jìn)行而減少,當(dāng)該寄存器的值為0的時候,就代表著此次傳輸已經(jīng)全部結(jié)束了。也就是說,當(dāng)DMA通道開啟傳輸了之后,該寄存器變成只讀,指示的是數(shù)據(jù)傳輸數(shù)量中剩余待傳輸?shù)淖止?jié)數(shù)目。


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


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

掃描二維碼,關(guān)注更多精彩內(nèi)容

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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