版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1第7章 中斷、DMA和時間管理l本章主要介紹以下內容:l嵌入式中斷控制器l嵌入式DMA控制器l嵌入式時鐘電源管理器l嵌入式實時時鐘l嵌入式脈寬調制定時器27.2 嵌入式系統(tǒng)嵌入式系統(tǒng)DMA控制控制l在嵌入式系統(tǒng)I/O操作中,中斷方式(包括查詢方式)是廣泛使用的操作方式。其特點是需要通過CPU執(zhí)行ISR來控制整個數(shù)據(jù)的傳送,輸入輸出都要以CPU的寄存器為中轉站。以中斷方式數(shù)據(jù)傳輸為例,每一次響應中斷,CPU都要保護主程序斷點的工作現(xiàn)場,而后執(zhí)行ISR。數(shù)據(jù)傳輸操作完畢后,還要恢復斷點處的工作現(xiàn)場。因此在某些高頻度I/O操作的嵌入式應用場合,執(zhí)行中斷方式的輸入輸出會導致系統(tǒng)頻繁切換工作現(xiàn)場,CP
2、U運行效率不高。 3DMA方式特點方式特點lDMA方式是高速I/O接口方式,其特點有兩個:一是它可以不通過CPU直接完成輸入輸出設備與存儲器間的數(shù)據(jù)交換,在數(shù)據(jù)傳送期間不會影響CPU的其它工作;二是CPU帶寬可以與總線帶寬一樣,延時僅依賴于硬件,能提高系統(tǒng)中數(shù)據(jù)的傳輸速率。顯然利用這種方式不但數(shù)據(jù)傳送速度快,而且CPU具有了同時進行多種實時操作的能力,增強了系統(tǒng)的實時性。 4DMAC控制控制DMA傳輸傳輸l在DMA傳輸方式下,外設通過DMA控制器(DMAC)向CPU提出接管總線控制權的總線使用請求。CPU在當前總線周期結束后,響應DMA請求,把總線控制權交給DMA控制器。于是在DMAC的控制下
3、,外設和存儲器挪用CPU的一個總線周期,直接進行數(shù)據(jù)交換,而無需CPU進行數(shù)據(jù)傳輸控制干預。DMA傳輸結束后,再將總線使用權交換給CPU。532位嵌入式處理器都具有位嵌入式處理器都具有DMA功能功能l在高速大數(shù)據(jù)量傳輸場合,DMA方式由于系統(tǒng)開銷少,傳輸效率,比中斷方式優(yōu)越。因此,現(xiàn)代通用計算機都具備DMA傳輸功能。例如,PC機的芯片組中包含有8237A芯片,它是DMA控制器,可以控制4個DMA通道。l然而,嵌入式系統(tǒng)并非都擁有DMA功能。8位嵌入式處理器一般不具備DMA數(shù)據(jù)傳輸功能。16位和32位嵌入式處理器一般都具有DMA功能。例如:ARM、68K、PowerPC和MIPS處理器。 6幾款
4、主流嵌入式處理器的幾款主流嵌入式處理器的DMA控制器簡表控制器簡表 DMA控制器屬性80186S3C44B0XS3C2410XPXA255PXA270BF533MPC850DMA通道數(shù)44416321216數(shù)據(jù)線寬88/16/328/16/328/16/328/16/32161/8/16/32控制寄存器/每通道5/通道7/通道9/通道4/通道4/通道7嵌入式嵌入式DMA控制器內建在芯片內部控制器內建在芯片內部lDMA控制包括DMA通道初始化、DMA數(shù)據(jù)傳輸、DMA結束時的中斷服務例程處理。對于通用計算機而言,DMA控制邏輯由CPU和DMA控制接口邏輯芯片共同組成。嵌入式系統(tǒng)的DMA控制器內建在
5、處理器芯片內部。l將DMA方式應用于嵌入式系統(tǒng)要考慮到與一般微機系統(tǒng)不同的應用特點,它對可靠性、成本、體積、功耗等有更嚴格的要求。因此,在進行含有高速數(shù)據(jù)處理的嵌入式開發(fā)時,需要精心地選擇處理器。8l現(xiàn)在學習S3C44B0X處理器的DMA控制器。l S3C44B0X的DMA控制器(簡稱DMAC)擁有4個通道,其中有兩個通道稱為ZDMA,另外兩個通道稱為BDMA。 7.2.1 S3C44B0X的的DMA控制器控制器 9lZDMA通道稱為通用DMA l三星公司的數(shù)據(jù)手冊上用這個稱呼l實際上是通用DMA,General DMA,它被連到SSB(三星系統(tǒng)總線,Samsung System Bus)總線
6、上。lBDMA通道稱為橋DMAlBridge DMA,是SSB和SPB(三星外設總線,Samsung Peripheral Bus)之間的接口層,相當于一個橋。lZDMA和BDMA都可以由指令啟動,也可以有內部外設和外部請求引腳來請求啟動。 S3C44B0X的的DMA通道通道 10lZDMA通道用于在存儲器到存儲器、存儲器到I/O存儲器(固定目的存儲位置)、I/O裝置到存儲器之間傳輸數(shù)據(jù)。BDMA通道只能在連到SPB(三星外設總線)上的I/O外設(如UART,IIS和SIO)與存儲器之間傳輸數(shù)據(jù)。 ZDMA通道的特點通道的特點 11S3C44B0X的的ZDMA控制器框圖控制器框圖 12lS3C
7、44B0X的ZDMA通道有一個4字的FIFO緩沖來支持4字突發(fā)DMA傳輸,而BDMA不支持突發(fā)DMA傳輸。BDMA不支持4字突發(fā)DMA傳輸?shù)脑蚴撬鼪]有臨時緩存,而且連接在SPB上的外設速度較慢。因此存儲器之間的傳輸數(shù)據(jù)最好使用ZDMA通道。 ZDMA通道的用途通道的用途13S3C44B0X的的BDMA控制器框圖控制器框圖 14l有四類外部DMA請求/應答模式。它們是握手模式、單步模式、連續(xù)模式和手動模式。這些模式都定義了DMA請求和應答信號是怎樣和這些模式相互關聯(lián)的。雖然ZDMA和BDMA都可以支持外部的觸發(fā)操作,但是這些模式只適用于ZDMA,不適用于BDMA。我們介紹其中的握手模式和單步模
8、式。 外部DMA請求/應答模式 15l在握手模式下,DMA控制器對一個單獨的DMA請求產生一個單獨的DMA應答信息。圖7-5示出了DMA操作的握手模式。在這樣的DMA操作期間,讀寫周期不可分割。因此,總線控制器不向其他的總線擁有者分配總線的使用權。 l由nXDREQ(外部DMA請求引腳)產生的DMA請求表示需要傳輸一個字節(jié)、半個字或一個字。而握手模式需要DMA為每一個數(shù)據(jù)傳輸發(fā)送請求。在激活nXDACK后,nXDREQ信號就可以被釋放了,在此之后nXDACK失活后還可以再次發(fā)送請求。 握手模式16S3C44B0X處理器DMA請求應答時序圖17l單步模式是指有兩個DMA應答周期分別指示DMA的讀
9、周期和寫周期。因為總線的使用權可以在讀寫期間轉交給其它的總線擁有者,單步模式通常用在測試和調試的應用中。單步模式單步模式18l當DMA請求信號變?yōu)榈碗娖胶?,如果不存在其它更高?yōu)先級的總線請求,總線控制器以降低總線應答信號電平的方式,指示為DMA操作分配總線。在第一個DMA應答信號的低電壓期間應該是一個DMA讀操作周期。在讀操作周期之后,DMA應答信號電平將重新升高,指示讀操作周期的結束。同時,如果此時請求信號仍然是低電壓狀態(tài)的話,就會在DMA應答信號上升沿觸發(fā)下一個DMA寫周期。如果當應答信號升高后,請求信號也在高電平狀態(tài),則下一個寫周期就會被延遲,直到一個新的DMA請求信號被激活。 單步模式
10、(續(xù))單步模式(續(xù))19lS3C44B0X的DMA傳輸模式有三種:單元傳輸模式、塊傳輸模式和飛速(On-The-Fly)模式?,F(xiàn)在分別說明。l單元傳輸模式l對每一個DMA請求響應一對DMA讀/寫周期。DMA傳輸模式 20l塊傳輸模式的工作原理如下:l在連續(xù)地執(zhí)行4字節(jié)的DMA讀周期之后再連續(xù)地進行4字節(jié)的DMA寫周期。如果使用塊傳輸模式,則傳輸?shù)臄?shù)據(jù)大小應該是16字節(jié)的倍數(shù)。換句話說,最小的傳輸尺寸是16個字節(jié),也就是4個字。因為DMA計數(shù)器定義了以字節(jié)作為基本單元計數(shù),按照計數(shù)定義16個字節(jié)DMA傳輸就是4個字節(jié)傳輸。如果傳輸?shù)臄?shù)據(jù)大小或DMA計數(shù)不是16的倍數(shù)(比如16、32、48、64等
11、等),DMA就不能夠傳輸完整的數(shù)據(jù)。假設要傳輸100字節(jié)(DMA計數(shù)是100),616=96字節(jié)可以被傳輸,剩下的4字節(jié)不能被傳輸。因為DMA操作將在96個字節(jié)傳輸完成之后停止。當程序員選用塊傳輸DMA模式時應當意識到這個特點。 塊傳輸模式21l飛速模式的工作原理如下:飛速模式的工作原理如下: lZDMA具有飛速(On-the-fly)讀寫模式。該模式的最大特性是讀寫周期并行(不可分割),其具體含義是當DMA讀/寫數(shù)據(jù)時,一個固定地址外部設備會根據(jù)DMA的應答信號(nXDACK0/1)寫/讀數(shù)據(jù)。然而在非飛速模式下,DMA通道在寫數(shù)據(jù)之前要讀數(shù)據(jù)。l如果外部設備能夠支持飛速模式,則數(shù)據(jù)傳輸速率
12、將會提高一倍。外部設備能夠支持飛速模式的標志是能夠根據(jù)DMA應答信號讀寫數(shù)據(jù)。飛速模式22飛速模式的特點lZDMA獨有l(wèi)ZDMA與傳統(tǒng)DMA的最大不同點。l借助飛速模式ZDMA可以減少在外部存儲器和外部可尋址的外設之間DMA操作的周期數(shù)。23lS3C44B0X一共有4個DMA通道,所以有4個通道屬性寄存器。其中ZDCON0和ZDCON1是ZDMA通道的兩個屬性控制器,BDCON0和BDCON1是BDMA的兩個屬性控制器。 7.2.2 S3C44B0X的的DMAC相關控制寄存器相關控制寄存器 24S3C44B0X處理器DMA通道屬性控制寄存器一覽表 類別類別寄存器寄存器標識符標識符地址地址讀寫讀
13、寫屬性屬性描述描述初值初值ZDMAZDCON00 x01E80000R/WZDMA0通道屬性寄存器0 x00ZDCON10 x01E80020R/WZDMA1通道屬性寄存器0 x00BDMABDCON00 x01F80000R/WBDMA0通道屬性寄存器0 x00BDCON10 x01F80020R/WBDMA1通道屬性寄存器0 x0025ZDMA通道屬性寄存器的控制位定義ZDCONn位描述初始值INT7:6保留00STE5:4DMA通道的狀態(tài)(只讀)00:就緒 01:未中止計數(shù)10:中止計數(shù) 11:不可用在DMA的傳輸計數(shù)開始之前,STE處于準備好狀態(tài)00QDS3:2忽略允許外部DMA請求(
14、nXDREQ)00:允許 Other:禁止00CMD1:0軟件命令00:沒有命令。在寫01,10,11后,CMD位被自動清除,nXDREQ允許01:由軟件啟動DMA操作,軟件啟動功能可以用在連續(xù)模式下。10:停止DMA操作,但nXDREQ仍允許11:取消DMA操作0026l不論是ZDMA通道還是BDMA通道,每個通道都有6個傳輸控制寄存器。每個通道的6個傳輸控制寄存器分別是:初始源地址寄存器,初始目標地址寄存器,初始傳輸控制和傳輸字節(jié)/半字/字計數(shù)控制器,當前源地址寄存器,當前目標地址寄存器,當前傳輸控制和傳輸字節(jié)/半字/字計數(shù)控制器。DMA通道具有6個傳輸控制寄存器27DMA傳輸控制寄存器的
15、初值與屬性l24個DMA傳輸控制寄存器的初值全部為0 x0。l其中的12個初始控制寄存器的讀寫屬性是可讀可寫,另外12個當前控制寄存器是只讀屬性。28l現(xiàn)在給出一個在S3C44B0X處理器開發(fā)板上實現(xiàn)的DMA傳輸范例程序。lCOS-II操作系統(tǒng)支持下運行l(wèi)采用中斷結束方式。7.2.3 DMA應用程序舉例應用程序舉例 29Cache無效地址l當S3C44B0X處理器處于DMA傳輸時,內存讀寫不受CPU控制,此時CPU無法維護Cache的一致性,所以需要將目的地址空間設為Cache無效地址。l在S3C44B0X中最小的Cache無效地址為4KB(稱為塊),所以不需要低12位地址,為此執(zhí)行目標地址右
16、移12位。Cache無效目的地址空間確定之后,該存儲區(qū)的數(shù)據(jù)不被Cache映射,從而滿足了Cache數(shù)據(jù)的一致性。30兩個Cache無效區(qū)lS3C44B0X的Cache無效區(qū)可以有兩個,分別是Cache無效區(qū)0和Cache無效區(qū)1。這兩個無效區(qū)的起始地址和結束地址分別由NCACHBE0和NCACHBE1寄存器加以控制。l本范例程序使用NCACHBE0寄存器控制目標數(shù)據(jù)塊的Cache無效區(qū)起始地址和結束地址。l主體函數(shù)dma_copy的最前面幾行完成該Cache無效區(qū)的設定。31l參看程序清單7-8,教材第239頁l注意:l在ARM300-S實驗平臺有兩種DMA實驗代碼 ,它們的功能一樣,都是完
17、成內存數(shù)據(jù)塊的拷貝傳送。但是DMA結束方式不同:一種是中斷結束方式,另外一種是查詢結束方式。DMA應用程序的范例代碼詳解32S3C44B0處理器處理器DMA程序注釋程序注釋-1lMain函數(shù)清單33S3C44B0處理器處理器DMA程序注釋程序注釋-2ldma_copy函數(shù)清單34S3C44B0處理器處理器DMA程序注釋程序注釋-3/中斷處理函數(shù)void handler(void)char d21;int i;LCD_printf(n);for(i=0; i=strlen(des); i+=20)strcpy(d, des+i, 20);d20=0;LCD_printf(%s n,d);free
18、(des);35S3C44B0處理器處理器DMA程序注釋程序注釋-4lCache無效訪問區(qū)控制寄存器36S3C44B0處理器處理器DMA程序注釋程序注釋-5lZDISRC0控制寄存器功能與位定義37S3C44B0處理器處理器DMA程序注釋程序注釋-6lZDIDES0控制寄存器功能與位定義38S3C44B0處理器處理器DMA程序注釋程序注釋-7l填入ZDICNT0的數(shù)值:1010 0101 1100 20個0l填入ZDICNT0bit20的數(shù)值=1 ;enable DMA39S3C44B0處理器處理器DMA程序注釋程序注釋-8l將0 x05=0b00000101寫入ZDCON040課堂演示課堂演示l使用ARM300-S實驗平臺演示DMA實驗程序l用DMA完成內存數(shù)據(jù)塊(96個字符)的拷貝傳送l閱讀源代碼l觀看實驗效果l1,查詢結束方式l2,中斷結束方式41第第14講重點講重點l嵌
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 長沙衛(wèi)生職業(yè)學院《管理溝通(英語)》2023-2024學年第一學期期末試卷
- 云南農業(yè)大學《建筑工業(yè)化與裝配式結構》2023-2024學年第一學期期末試卷
- 孩子里程碑的教育模板
- 保險業(yè)基礎講解模板
- 述職報告創(chuàng)新實踐
- 職業(yè)導論-房地產經紀人《職業(yè)導論》點睛提分卷3
- 年終工作總結格式要求
- 二零二五版LNG液化天然氣裝運合同3篇
- 二零二五年度汽車后市場擔保合作協(xié)議合同范本集錦:維修保養(yǎng)服務2篇
- 二零二五版國際金融公司勞務派遣與風險管理協(xié)議3篇
- 小學語文生本課堂教學設計
- 上海某建筑基礎及上部結構加固工程施工方案磚木結構 磚混結構
- 精神病醫(yī)院財務后勤總務管理制度
- 停車場施工施工組織設計方案
- GB/T 37238-2018篡改(污損)文件鑒定技術規(guī)范
- 普通高中地理課程標準簡介(湘教版)
- 河道治理工程監(jiān)理通知單、回復單范本
- 超分子化學簡介課件
- 高二下學期英語閱讀提升練習(一)
- 易制爆化學品合法用途說明
- 【PPT】壓力性損傷預防敷料選擇和剪裁技巧
評論
0/150
提交評論