版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
5.11DMA
DMA是directmemoryaccess的縮寫,即“直接內(nèi)存存取”。這是一種高速的數(shù)據(jù)傳輸模式,ADC/UART/RF收發(fā)器等外設(shè)單元和存儲器之間可以直接在“DMA控制器”的控制下交換數(shù)據(jù)而幾乎不需要CPU的干預(yù)。除了在數(shù)據(jù)傳輸開始和結(jié)束時做一點處理外,在傳輸過程中CPU可以進行其他的工作。這樣,在大部分時間里,CPU和這些數(shù)據(jù)交互處于并行工作狀態(tài)。因此,系統(tǒng)的整體效率可以得到很大的提高。DMA控制器有5個通道,即DMA通道0到通道4。每個DMA通道能夠從DMA存儲器空間的一個位置傳送數(shù)據(jù)到另一個位置,比如XDATA位置之間。當(dāng)DMA通道配置完畢后,在允許任何傳輸發(fā)起之前,必須進入工作狀態(tài)。DMA通道通過將DMA通道工作狀態(tài)寄存器DMAARM中指定位置1,就可以進入工作狀態(tài)。一旦DMA通道進入工作狀態(tài),當(dāng)配置的DMA觸發(fā)事件發(fā)生時,DMA傳送就開始了??赡艿腄MA觸發(fā)事件有32個,例如UART傳輸、定時器溢出等。DMA通道要使用的觸發(fā)事件由DMA通道配置設(shè)置,因此直到配置被讀取之后,才能知道。DMA操作(1)源地址DMA通道開始讀數(shù)據(jù)的地址,在XDATA存儲器中。這可以是任何XDATA地址——在RAM中,在映射的閃存區(qū)(cfMEMCTR.XBANK)中,XREG或XDATA尋址的。(2) 目標(biāo)地址DMA通道從源地址讀出的要寫數(shù)據(jù)的首地址。用戶必須確認該目標(biāo)地址可寫。這可以是任何XDATA地址——在RAM、XREG或XDATA尋址的SFR中。(3) 傳送數(shù)量DMA傳輸完成之前必須傳送的字節(jié)/字的個數(shù)。當(dāng)達到傳送數(shù)量,DMA通道重新進入工作狀態(tài)或者解除工作狀態(tài),并警告CPU即將有中斷請求到來。傳送數(shù)量可以在配置中定義,或可以采用可變長度。(4)VLEN設(shè)置DMA配置參數(shù)(5)DMA通道可以利用源數(shù)據(jù)中的第一個字節(jié)或字(對于字,使用位12:0)作為傳送長度。這允許可變長度的傳輸。當(dāng)使用可變長度傳送時,要給出關(guān)于如何計算要傳輸?shù)淖止?jié)數(shù)的各種選項。在任何情況下,都是設(shè)置傳送長度(LEN)為傳送的最大長度。如果首字節(jié)或字指明的傳輸長度大于LEN,那么LEN個字節(jié)/字將被傳輸。當(dāng)使用可變長度傳輸,那么LEN應(yīng)設(shè)置位允許傳輸?shù)淖畲箝L度加一。注意,僅在選擇字節(jié)長度傳送數(shù)據(jù)時才可以使用M8 位(見8.2.11節(jié))。可以同VLEN一起設(shè)置的選項如下:1)傳輸首字節(jié)/字規(guī)定的個數(shù)+1字節(jié)/字(先傳輸字節(jié)/字的長度,然后按照字節(jié)/字長度指定的傳輸盡可能多的字節(jié)/字)2)傳輸首字節(jié)/字規(guī)定的字節(jié)/字3)傳輸首字節(jié)/字規(guī)定的個數(shù)+2字節(jié)/字(先傳輸字節(jié)/字的長度,然后按照字節(jié)/字長度指定+1傳輸盡可能多的字節(jié)/字)4)傳輸首字節(jié)/字規(guī)定的個數(shù)+3字節(jié)/字(先傳輸字節(jié)/字的長度,然后按照字節(jié)/字長度指定+2傳輸盡可能多的字節(jié)/字)
DMA配置參數(shù)(6)源和目標(biāo)增量當(dāng)DMA通道進入工作狀態(tài)或者重新進入工作狀態(tài)時,源地址和目標(biāo)地址傳送到內(nèi)部地址指針。其地址增量可能有下列4種:增量為0。每次傳送之后,地址指針將保持不變。增量為l。每次傳送之后,地址指針將加上1個數(shù)。增量為2。每次傳送之后,地址指針將加上2個數(shù)。 減量為 1。每次傳送之后,地址指針將減去1個數(shù)。其中一個數(shù)在字節(jié)模式下等于1個字節(jié),在字模式下等于2個字節(jié)。 減量為 1。每次傳送之后,地址指針將減去1個數(shù)。其中一個數(shù)在字節(jié)模式下等于1個字節(jié),在字模式下等于2個字節(jié)。(7)DMA傳輸模式傳輸模式確定當(dāng)DMA通道開始傳輸數(shù)據(jù)時是如何工作的。以下描述了四種傳輸模式:單一模式:每當(dāng)觸發(fā)時,發(fā)生一個DMA 傳送,DMA通道等待下一個觸發(fā)。完成指定的傳送長度后,傳送結(jié)束,通報CPU,解除DMA通道的工作狀態(tài)。塊模式:每當(dāng)觸發(fā)時,按照傳送長度指定的若干DMA傳送被盡快傳送,此后,通報CPU,解除DMA通道的工作狀態(tài)。重復(fù)的單一模式:每當(dāng)觸發(fā)時,發(fā)生一個DMA傳送,DMA通道等待下一個觸發(fā)。完成指定的傳送長度后,傳送結(jié)束,通報CPU,且DMA通道重新進入工作狀態(tài)。重復(fù)的塊模式:每當(dāng)觸發(fā)時,按照傳送長度指定的若干DMA傳送被盡快傳送,此后通報CPU,DMA通道重新進入工作狀態(tài)。DMA配置參數(shù)(8)DMA優(yōu)先級DMA優(yōu)先級別對每個DMA通道是可以配置的。DMA優(yōu)先級別用于判定同時發(fā)生的多個內(nèi)部存儲器請求中的哪一個優(yōu)先級最高,以及DMA存儲器存取的優(yōu)先級別是否超過同時發(fā)生的CPU存儲器存取的優(yōu)先級別。在同屬內(nèi)部關(guān)系的情況下,采用輪轉(zhuǎn)調(diào)度方案應(yīng)對,確保所有的存取請求。有三種級別的DMA優(yōu)先級:高級:最高內(nèi)部優(yōu)先級別。DMA存取總是優(yōu)先于CPU存取。一般級:中等內(nèi)部優(yōu)先級別。保證DMA存取至少在每秒一次的嘗試中優(yōu)先于CPU存取。低級:最低內(nèi)部優(yōu)先級別。DMA存取總是劣于CPU存取。(9)字節(jié)或字傳輸判定已經(jīng)完成的傳送究竟是8 位(字節(jié))還是16位(字)。(10)中斷屏蔽在完成DMA傳送的基礎(chǔ)上,該DMA通道能夠產(chǎn)生一個中斷到處理器。這個位可以屏蔽該中斷。(11)模式8設(shè)置這個域的值,決定是采用7位還是8位長的字節(jié)來傳送數(shù)據(jù)。此模式僅僅適用于字節(jié)傳送。DMA配置參數(shù)停止DMA傳輸使用DMAARM寄存器來解除DMA通道工作狀態(tài),停止正在運行的DMA傳送或進入工作狀態(tài)的DMA。將1寫入DMAARM.ABORT寄存器位,就會停止一個或多個進入工作狀態(tài)的DMA通道,同時通過設(shè)置相應(yīng)的DMAARM.DMAARMx為1選擇停止哪個DMA通道。當(dāng)設(shè)置DMAARM.ABORT為1,非停止通道的DMAARM.DMAARMx位必須寫入0。DMA中斷每個DMA通道可以配置為一旦完成DMA傳送,就產(chǎn)生中斷到CPU。該功能由IRQMASK位在通道配置時實現(xiàn)。當(dāng)中斷產(chǎn)生時,寄存器DMAIRQ中所對應(yīng)的中斷標(biāo)志位置1。當(dāng)然要處理DMA中斷需要設(shè)置DMAIE=1和EA=1;一旦DMA通道完成傳送,不管在通道配置中IRQMASK位是何值,中斷標(biāo)志都會置1。這樣,當(dāng)通道重新進入工作狀態(tài)且IRQMASK的設(shè)置改變時,軟件必須總是清除這個寄存器相應(yīng)位。DMA配置安裝實驗現(xiàn)象:程序運行后,在LCD上顯示提示信息,按S1鍵,DMA傳輸開始,如果傳輸成功顯示提示信息。實驗1:DMA傳輸1)對于DMA傳輸來說,DMA配置參數(shù)非常重要,在dma.h文件中定義了以下結(jié)構(gòu)體#pragmabitfields=reversedtypedefstruct{charSRCADDRH;charSRCADDRL;charDESTADDRH;
charDESTADDRL;charVLEN:3;charLENH:5;
charLENL:8;charWORDSIZE:1;charTMODE:2;charTRIG:5;charSRCINC:2;charDESTINC:2;charIRQMASK:1;charM8:1;charPRIORITY:2;}DMA_DESC;在定義此結(jié)構(gòu)體時,用到了很多冒號(:),后面還跟著一個數(shù)字,這種語法叫“位域”:位域是指信息在存儲時,并不需要占用一個完整的字節(jié),而只需占幾個或一個二進制位。例如在存放一個開關(guān)量時,只有0和1兩種狀態(tài),用一位二進位即可。為了節(jié)省存儲空間,并使處理簡便,C語言提供了一種數(shù)據(jù)結(jié)構(gòu),稱為“位域”或“位段”。所謂“位域”是把一個字節(jié)中的二進位劃分為幾個不同的區(qū)域,并說明每個區(qū)域的位數(shù)。每個域有一個域名,允許在程序中按域名進行操作。這樣就可以把幾個不同的對象用一個字節(jié)的二進制位域來表示。配置DMA:首先必須配置DMA,但DMA的配置比較特殊:不是直接對某些SFR賦值,而是在外部定義一個結(jié)構(gòu)體,對其賦值,然后再將此結(jié)構(gòu)體的首地址的高8位賦給
DMA0CFGH,將其低8位賦給
DMA0CFGL。程序分析:2)定義一個結(jié)構(gòu)體,對其賦值//設(shè)置DMA通道.SET_WORD(dmaChannel.SRCADDRH,dmaChannel.SRCADDRL,&sourceString);//設(shè)置源數(shù)據(jù)的地址
SET_WORD(dmaChannel.DESTADDRH,dmaChannel.DESTADDRL,&destString);//設(shè)置源目的地址.SET_WORD(dmaChannel.LENH,dmaChannel.LENL,sizeof(sourceString));//設(shè)置傳輸?shù)拈L度.dmaChannel.VLEN=0;//設(shè)置傳輸?shù)膭討B(tài)長度.dmaChannel.PRIORITY=0x02;//設(shè)置優(yōu)先級.dmaChannel.M8=0;//字節(jié)傳輸時是8位.dmaChannel.IRQMASK=0;//DMA中斷屏蔽
dmaChannel.DESTINC=0x01;//設(shè)置目的地址增量
dmaChannel.SRCINC=0x01;//設(shè)置源地址增量.dmaChannel.TRIG=0;//設(shè)置觸發(fā)方式為手動觸發(fā).dmaChannel.TMODE=0x01;//每一次DMA觸發(fā),傳送長度為LEN的塊
dmaChannel.WORDSIZE=0x00;//一次DMA傳送一個字節(jié)程序分析:3)將結(jié)構(gòu)體的首地址的高8位賦給
DMA0CFG
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鐵路擋土墻課程設(shè)計
- 船舶原理課程設(shè)計總結(jié)
- 軸套工藝學(xué)課程設(shè)計
- 組件裝配課程設(shè)計圖
- 心理健康教育的綜合課程設(shè)計與實踐
- GB/T 45110.1-2024OPC統(tǒng)一架構(gòu)與5G集成技術(shù)規(guī)范第1部分:通用要求
- 2024版工業(yè)產(chǎn)品買賣合同書
- 2024年鏟車操作人員安全培訓(xùn)合同
- 2024消防通風(fēng)工程設(shè)計與施工一體化總承包合同3篇
- 2024版甲方與聯(lián)合體合同范本
- 高二物理競賽霍爾效應(yīng) 課件
- 金融數(shù)學(xué)-(南京大學(xué))
- 基于核心素養(yǎng)下的英語寫作能力的培養(yǎng)策略
- 現(xiàn)場安全文明施工考核評分表
- 亞什蘭版膠衣操作指南
- 四年級上冊數(shù)學(xué)教案 6.1口算除法 人教版
- DB32-T 3129-2016適合機械化作業(yè)的單體鋼架塑料大棚 技術(shù)規(guī)范-(高清現(xiàn)行)
- 6.農(nóng)業(yè)產(chǎn)值與增加值核算統(tǒng)計報表制度(2020年)
- 人工挖孔樁施工監(jiān)測監(jiān)控措施
- 供應(yīng)商物料質(zhì)量問題賠償協(xié)議(終端)
- 物理人教版(2019)必修第二冊5.2運動的合成與分解(共19張ppt)
評論
0/150
提交評論