劉彥文清華大學(xué)出版社嵌入式系統(tǒng)原理及接口技術(shù)_第1頁
劉彥文清華大學(xué)出版社嵌入式系統(tǒng)原理及接口技術(shù)_第2頁
劉彥文清華大學(xué)出版社嵌入式系統(tǒng)原理及接口技術(shù)_第3頁
劉彥文清華大學(xué)出版社嵌入式系統(tǒng)原理及接口技術(shù)_第4頁
劉彥文清華大學(xué)出版社嵌入式系統(tǒng)原理及接口技術(shù)_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第6章 時(shí)鐘與電源管理、 DMA與總線優(yōu)先權(quán)本章重點(diǎn)本章重點(diǎn): S3C2410A時(shí)鐘與電源管理概述;時(shí)鐘發(fā)生器;電源管理;時(shí)鐘與電源管理特殊功能寄存器。其中包含了時(shí)鐘與電源管理用到的引腳信號(hào)、電源用到的引腳。 S3C2410A DMA概述,包括存儲(chǔ)器到外設(shè)DMA傳輸舉例等;DMA操作,包括選擇硬件DMA請(qǐng)求或軟件DMA請(qǐng)求,硬件DMA請(qǐng)求源的選擇、有限狀態(tài)機(jī)、外部DMA請(qǐng)求/響應(yīng)協(xié)議和DMA傳輸舉例等;DMA特殊功能寄存器;總線優(yōu)先權(quán)。6.1 時(shí)鐘與電源管理概述 6.1.1 時(shí)鐘與電源管理概述nS3C2410A片內(nèi)集成了時(shí)鐘與電源管理模塊,該模塊由三部分組成:時(shí)鐘控制、USB控制和電源控制。n

2、時(shí)鐘與電源管理有以下特點(diǎn)。 時(shí)鐘與電源管理模塊內(nèi)有兩個(gè)鎖相環(huán)(Phase Locked Loop,PLL),一個(gè)稱為主鎖相環(huán)MPLL,產(chǎn)生三種時(shí)鐘信號(hào),F(xiàn)CLK用于ARM920T;HCLK用于AHB總線設(shè)備和ARM920T;PCLK用于APB總線設(shè)備。另一個(gè)稱為USB鎖相環(huán)UPLL,產(chǎn)生的時(shí)鐘信號(hào)UCLK(48MHz)用于USB。 FCLK在S3C2410A內(nèi)核供電電源為2.0V時(shí),最高頻率為266MHz;內(nèi)核供電電源為1.8V時(shí),最高頻率為200MHz。n電源管理有4種模式,分別是NORMAL、SLOW、IDLE和Power_OFF。lNORMAL模式:在這種模式下,只允許用戶通過軟件控制片

3、內(nèi)外設(shè)的時(shí)鐘信號(hào)接通或切斷。例如,UART2如果不使用,可以通過軟件切斷它的時(shí)鐘信號(hào),以減少功耗。lSLOW模式:SLOW模式不使用主鎖相環(huán),SLOW模式使用外部頻率較低的時(shí)鐘(XTIpll或EXTCLK)經(jīng)過分頻后直接作為FCLK。在這種模式下,功耗僅僅取決于外部時(shí)鐘的頻率。lIDLE模式:在這種模式下,只切斷了到ARM920T的時(shí)鐘FCLK,到所有片內(nèi)外設(shè)或控制器的時(shí)鐘信號(hào)仍然接通。計(jì)算功耗時(shí)應(yīng)減去ARM920T的功耗。任何到CPU的中斷請(qǐng)求,能夠?qū)PU從IDLE模式中喚醒。lPower_OFF模式:在這種模式下,除了喚醒邏輯外,S3C2410A片內(nèi)電源被切斷。為了能夠激活Power_O

4、FF模式,S3C2410A要求有兩個(gè)單獨(dú)的電源供電,一個(gè)給喚醒邏輯,另一個(gè)給包含CPU在內(nèi)的內(nèi)部邏輯供電,并且這1路電源應(yīng)該能夠被控制,使得它的電源能夠被接通或切斷。從Power_OFF模式中被喚醒,使用外部中斷請(qǐng)求EINT15:0或RTC報(bào)警中斷。6.1.2 功耗管理概述n基于CMOS電路芯片的功耗,由靜態(tài)功耗與動(dòng)態(tài)功耗組成。靜態(tài)功耗非常小,可以忽略不計(jì)。門電路電容充放電的動(dòng)態(tài)功耗是電路功耗的主要部分。動(dòng)態(tài)功耗通常與加在芯片上的電源電壓的平方成正比;與加在芯片上的時(shí)鐘信號(hào)的頻率成正比。n動(dòng)態(tài)頻率調(diào)節(jié)(Dynamic Frequency Scaling)是指,由頻率調(diào)度程序負(fù)責(zé)在運(yùn)行過程中針對(duì)

5、不同的運(yùn)算需求,動(dòng)態(tài)調(diào)節(jié)系統(tǒng)時(shí)鐘的頻率,以達(dá)到降低功耗的目的。n動(dòng)態(tài)頻率調(diào)節(jié)需要有相應(yīng)的調(diào)度程序,負(fù)責(zé)收集系統(tǒng)當(dāng)前運(yùn)行速度、負(fù)荷,預(yù)測(cè)系統(tǒng)未來的需求,以及計(jì)算調(diào)度花費(fèi)的功耗與調(diào)度后節(jié)省的功耗。nS3C2410A時(shí)鐘與電源管理模塊中的MPLL,在外接時(shí)鐘源頻率已經(jīng)固定的情況下(如12MHz),通過軟件設(shè)置特殊功能寄存器MPLLCON中主、預(yù)、后分頻控制為不同的值,可以使鎖相環(huán)在程序運(yùn)行過程中,輸出的時(shí)鐘頻率發(fā)生改變。比如從266MHz變成150MHz,或從150MHz變成200MHz,實(shí)現(xiàn)動(dòng)態(tài)頻率調(diào)節(jié)。n用于USB的時(shí)鐘頻率,即UPLL的輸出,通常使用48MHz,不改變。n雖然S3C2410A在

6、內(nèi)核電源為2.0V時(shí),MPLL產(chǎn)生的時(shí)鐘頻率最高為266MHz,但是對(duì)于某些應(yīng)用場(chǎng)合,如果事先能夠確定它的工作頻率,比如100MHz已經(jīng)滿足系統(tǒng)要求,那么在初始化階段,通過設(shè)定鎖相環(huán)對(duì)應(yīng)的參數(shù),可以使其啟動(dòng)后就工作在較低的頻率。 nS3C2410A為了支持軟件對(duì)功耗的管理,在NORMAL模式,還可以通過對(duì)時(shí)鐘控制寄存器CLKCON設(shè)置不同的值,把不使用的外設(shè)或控制器所連接的時(shí)鐘信號(hào)切斷,以節(jié)省功耗。n在IDLE模式,S3C2410A可以停止到ARM920T的時(shí)鐘。在Power_OFF模式,可以切斷除喚醒邏輯外的ARM920T和全部片內(nèi)外設(shè)的電源,降低系統(tǒng)的功耗。nS3C2410A中,F(xiàn)CLK是

7、主時(shí)鐘,可以由軟件調(diào)節(jié)時(shí)鐘分頻比,產(chǎn)生不同頻率的HCLK和PCLK,以適應(yīng)不同的應(yīng)用方案,減少功耗。6.1.3 時(shí)鐘與電源管理用到的S3C2410A引腳信號(hào)n表6-1列出了部分S3C2410A的引腳信號(hào)及它們的含義,它們是時(shí)鐘與電源管理所用到的。另外,將Reset相關(guān)引腳信號(hào)也一并放在這里介紹。6.2 時(shí)鐘發(fā)生器6.2.1 時(shí)鐘與電源管理結(jié)構(gòu)框圖 時(shí)鐘與電源管理結(jié)構(gòu)框圖見圖6.1。6.2.2 時(shí)鐘源的選擇n系統(tǒng)啟動(dòng)時(shí),在nRESET上升沿,連接到S3C2410A模式控制引腳OM3:2的狀態(tài),被自動(dòng)鎖存到機(jī)器內(nèi)部。由OM3:2的狀態(tài),決定S3C2410A使用的時(shí)鐘源,詳見表6-2。n圖6.2給出

8、了OM3:2=00和11時(shí),S3C2410A片外時(shí)鐘源的連接方法。圖中,晶振頻率范圍為1020MHz,常用12MHz的;電容可用1522pF的。n參見圖6.1,雖然在啟動(dòng)后MPLL就接通(ON狀態(tài)),但是MPLL的輸出Mpll,在軟件寫一個(gè)合法的設(shè)置值到MPLL控制寄存器MPLLCON以前,不會(huì)作為系統(tǒng)時(shí)鐘。在合法的值設(shè)置以前,從外部晶振或EXTCLK來的時(shí)鐘源將被直接地用作系統(tǒng)的時(shí)鐘。即使用戶不需要改變MPLLCON寄存器中的缺省值,用戶也應(yīng)該寫相同的值到MPLLCON寄存器。n另外,當(dāng)OM1:0=11時(shí),OM3:2被用作確定測(cè)試模式。6.2.3 鎖相環(huán)n圖6.1中有2個(gè)鎖相環(huán),MPLL和U

9、PLL。它們的輸入信號(hào),見表6-2,可以選擇晶振或EXTCLK,頻率常為12MHz。MPLL輸出信號(hào)Mpll的頻率是可以改變的,方法是通過在寄存器MPLLCON中設(shè)置MDIV、PDIV和SDIV為不同的值而實(shí)現(xiàn)的。在內(nèi)核電源電壓為2.0V時(shí),MPLL輸出信號(hào)Mpll的頻率最高為266MHz。UPLL輸出信號(hào)Upll的頻率也可以調(diào)整,方法是通過在UPLL控制寄存器UPLLCON中設(shè)置MDIV、PDIV和SDIV為不同的值而實(shí)現(xiàn)的。nMPLLCON、UPLLCON寄存器的值,在程序運(yùn)行中可以隨時(shí)修改,用于實(shí)現(xiàn)動(dòng)態(tài)調(diào)整時(shí)鐘頻率的目的。通常UPLL輸出時(shí)鐘頻率要求為48MHz,一般不改變。n圖6.1中

10、MPLL和UPLL旁邊的P5:0、M7:0和S1:0與PDIV(預(yù)分頻控制)、MDIV(主分頻控制)和SDIV(后分頻控制)分別對(duì)應(yīng)。n如果已知主鎖相環(huán)MPLL輸入Fin的頻率以及MDIV、PDIV和SDIV的值,輸出Mpll的頻率計(jì)算見式6-1。 Mpll=(mFin) / (p2S) (式6-1) 式中m=MDIV+8,p=PDIV+2,s=SDIV。nUpll頻率的計(jì)算方法與Mpll相同?!纠?.1】對(duì)MPLL,已知Fin=12MHz,MDIV=161,PDIV=3,SDIV=1,計(jì)算Mpll頻率;對(duì)UPLL,已知Fin=12MHz,MDIV=120,PDIV=2,SDIV=3,計(jì)算Up

11、ll頻率。 Mpll = (161+8)12) / (521) = 202.80 (MHz) Upll = (120+8)12) / (423) = 48.00 (MHz)n對(duì)于特殊功能寄存器MPLLCON和UPLLCON中的MDIV、PDIV和SDIV,三星公司給出了一組推薦值,使得輸出頻率可以選擇45.00MHz,50.70MHz,56.25MHz,202.80MHz、266.00MHz,以至最高達(dá)270.00MHz。表6-3是從這組推薦值中選出的幾個(gè)數(shù)據(jù),供參考。 n在實(shí)際對(duì)MPLL設(shè)置MDIV、PDIV和SDIV參數(shù)時(shí),還要求滿足以下關(guān)系: FCLK頻率 = 3倍晶振頻率或3倍EXTC

12、LK頻率6.2.4 時(shí)鐘控制邏輯 時(shí)鐘控制邏輯的功能n時(shí)鐘控制邏輯確定被使用的時(shí)鐘源。例如,是使用MPLL的時(shí)鐘Mpll呢,還是直接使用外部時(shí)鐘XTIpll或EXTCLK。另外,當(dāng)MPLL被設(shè)置一個(gè)新的頻率值時(shí),時(shí)鐘控制邏輯依據(jù)鎖定時(shí)間計(jì)數(shù)寄存器LOCKTIME中設(shè)定的鎖定時(shí)間參數(shù),自動(dòng)插入鎖定時(shí)間。在鎖定時(shí)間,F(xiàn)CLK不輸出時(shí)鐘脈沖,維持低電平,直到鎖定時(shí)間結(jié)束,以新的頻率輸出的信號(hào)穩(wěn)定后,才輸出FCLK。n在NORMAL模式,通過改變MPLLCON寄存器中的MDIV、PDIV和SDIV(簡(jiǎn)稱PMS)參數(shù)值,使時(shí)鐘FCLK變慢,依據(jù)LOCKTIME寄存器中M_LTIME鎖定時(shí)間參數(shù),自動(dòng)插入

13、鎖定時(shí)間的圖例見圖6.3(P198)。n在加電Reset和從Power_OFF模式中喚醒時(shí),時(shí)鐘控制邏輯也使用鎖定時(shí)間參數(shù),自動(dòng)插入鎖定時(shí)間。 加電Resetn參見圖6.1,加電Reset后,由于MPLL、UPLL還不穩(wěn)定,在軟件將一個(gè)新的設(shè)置值寫到MPLLCON寄存器以前,F(xiàn)in被送到時(shí)鐘控制邏輯,代替Mpll,直接作為FCLK。因此即使用戶在加電Reset后,不需要改變保留在MPLLCON、UPLLCON寄存器中的缺省值,也應(yīng)該通過軟件寫相同的值到MPLLCON、UPLLCON寄存器,之后經(jīng)過自動(dòng)插入鎖定時(shí)間,MPLL的輸出Mpll(而不是Fin)經(jīng)過時(shí)鐘控制邏輯輸出作為FCLK。FCLK

14、的頻率與加電Reset后通過軟件寫到MPLLCON寄存器的設(shè)置值相對(duì)應(yīng)。同樣,UPLL的輸出頻率也與加電Reset后通過軟件寫到UPLLCON寄存器的設(shè)置值相對(duì)應(yīng)。 在NORMAL模式改變MPLLCON、UPLLCON中的設(shè)置值nS3C2410A允許在NORMAL模式,由運(yùn)行的程序,改變MPLLCON、UPLLCON寄存器中MDIV、PDIV和SDIV的設(shè)置值。改變之后,經(jīng)過鎖定時(shí)間,輸出時(shí)鐘的頻率被改變。新的頻率值與新寫入MPLLCON、UPLLCON中的MDIV、PDIV和SDIV參數(shù)值對(duì)應(yīng),見圖6.3。 USB時(shí)鐘控制nUSB主接口和設(shè)備接口需要48MHz的時(shí)鐘。S3C2410A中UPL

15、L能夠產(chǎn)生48MHz的時(shí)鐘。在UPLLCON寄存器中相應(yīng)的參數(shù)被設(shè)置后,UPLL產(chǎn)生的48MHz的時(shí)鐘作為UCLK,具體見表6-4。 分頻比nFCLK也稱為主時(shí)鐘,通過在時(shí)鐘分頻控制寄存器CLKDIVN中對(duì)HDIVN1、HDIVN和PDIVN設(shè)置不同的值,可以改變FCLK、HCLK、PCLK之間頻率的比值,具體見表6-5。6.3 電源管理6.3.1 電源管理模式的轉(zhuǎn)換nS3C2410A有4種電源管理模式,分別是NORMAL、SLOW、IDLE和Power_OFF。不允許在這4種模式中自由轉(zhuǎn)換,合法的轉(zhuǎn)換見圖6.4。圖6.4n對(duì)于4種電源管理模式中的每一種,連接S3C2410A中各模塊的時(shí)鐘或電

16、源的狀態(tài),見表6-6(P200)。 6.3.2 4種電源管理模式 NORMAL模式n在NORMAL模式,全部片內(nèi)外設(shè),以及包含電源管理模塊在內(nèi)的基本模塊,如ARM920T、總線控制器、存儲(chǔ)器控制器、中斷控制器、DMA和外部總線控制器等,全部可以操作,這時(shí)功耗最大。這種模式允許用戶通過軟件,控制連接每一個(gè)片內(nèi)外設(shè)的時(shí)鐘接通或切斷,以減少功耗。在時(shí)鐘控制寄存器CLKCON中可以設(shè)置不同的值,能夠切斷或接通某一個(gè)或某幾個(gè)片內(nèi)外設(shè)的時(shí)鐘。 IDLE模式n如果將時(shí)鐘控制寄存器CLKCON2設(shè)置為1,S3C2410A經(jīng)過一定的延時(shí),進(jìn)入IDLE模式。n在IDLE模式,到ARM920T的時(shí)鐘FCLK被停止。

17、但是到總線控制器、存儲(chǔ)器控制器、中斷控制器和電源管理模塊的時(shí)鐘仍接通;到片內(nèi)外設(shè)的時(shí)鐘仍接通。在IDLE模式,計(jì)算功耗時(shí)應(yīng)減去ARM920T的功耗。當(dāng)EINT23:0或RTC報(bào)警中斷或其他中斷激活時(shí),退出IDLE模式。 SLOW模式nSLOW模式是一種非鎖相環(huán)模式。n在SLOW模式,由于使用了比較慢的時(shí)鐘,能夠減少S3C2410A的功耗。在SLOW模式,MPLL應(yīng)該被切斷,計(jì)算功耗時(shí)應(yīng)減去MPLL的功耗。雖然UPLL也可以被切斷,但是USB使用的UCLK要求為48MHz的時(shí)鐘,通常并不切斷UPLL。只有在SLOW模式,才允許切斷或接通MPLL或UPLL。 Power_OFF模式 Power_O

18、FF模式 Power_OFF模式S3C2410A部分引腳狀態(tài)n在Power_OFF模式,S3C2410A的GPIO、功能輸出和功能輸入引腳狀態(tài)見表6-8。 Power_OFF模式對(duì)電源的控制n在Power_OFF模式,僅僅VDDi和VDDiarm電源能被切斷,切斷是由S3C2410A輸出引腳PWREN控制的。如果PWREN信號(hào)為高電平,由外部電壓調(diào)節(jié)器提供VDDi和VDDiarm;如果PWREN信號(hào)為低電平,切斷VDDi和VDDiarm,見圖6.6。 用于喚醒的EINT15:0 電池失效信號(hào)(nBATT_FLT) ADC Power Down6.3.3 S3C2410A電源引腳nS3C2410

19、A電源引腳連接的電源電壓和電源的用途見表6-9(P204)。6.4 時(shí)鐘與電源管理特殊功能寄存器 6個(gè)特殊功能寄存器的名稱、地址及Reset值 6個(gè)特殊功能寄存器的名稱、地址及Reset值,見表6-10。 鎖定時(shí)間計(jì)數(shù)寄存器 鎖定時(shí)間計(jì)數(shù)寄存器LOCKTIME,分別保存用于UPLL和用于MPLL的鎖定時(shí)間計(jì)數(shù)值,具體含義見表6-11。 MPLL及UPLL控制寄存器 MPLL及UPLL控制寄存器,即MPLLCON/UPLLCON,具體含義見表6-12。 時(shí)鐘控制寄存器 時(shí)鐘控制寄存器根據(jù)設(shè)置的不同值,允許/禁止PCLK或HCLK時(shí)鐘信號(hào)連接到某一確定的模塊;控制進(jìn)入Power_OFF或IDLE模

20、式與否。 時(shí)鐘控制寄存器CLKCON含義見表6-13。 SLOW時(shí)鐘控制寄存器 SLOW時(shí)鐘控制寄存器CLKSLOW,具體含義見表6-14。 時(shí)鐘分頻控制寄存器 時(shí)鐘分頻控制寄存器CLKDIVN,具體含義見表6-15。6.5 DMA概述6.5.1 DMA概述 參見第2章圖2.1 S3C2410A組成框圖,S3C2410A支持一個(gè)4通道的DMA控制器,DMA控制器位于AHB與APB之間。每個(gè)通道能夠處理如下4種情況: 傳輸數(shù)據(jù)的源和目的設(shè)備都連接在AHB; 傳輸數(shù)據(jù)的源設(shè)備連接在AHB,而目的設(shè)備連接在APB; 傳輸數(shù)據(jù)的源設(shè)備連接在APB,而目的設(shè)備連接在AHB; 傳輸數(shù)據(jù)的源和目的設(shè)備都連接

21、在APB。n本章將連接在AHB、APB上的控制器,簡(jiǎn)稱為設(shè)備。n連接在AHB上和APB上的設(shè)備見圖2.1。n圖2.1中并不是所有連接在AHB和APB上的設(shè)備都可以使用DMA方式,具體哪些可用或不可用,在后續(xù)各設(shè)備對(duì)應(yīng)章節(jié)中會(huì)講到。nDMA主要優(yōu)點(diǎn)是傳輸數(shù)據(jù)不需要CPU介入。nDMA操作能夠以3種方式啟動(dòng):軟件、片內(nèi)外設(shè)請(qǐng)求或S3C2410A片外DMA請(qǐng)求引腳信號(hào)。6.5.2 存儲(chǔ)器到外設(shè)DMA傳輸舉例 DMA傳輸舉例 例如存儲(chǔ)器(內(nèi)存)某緩沖區(qū)的數(shù)據(jù),要讀出傳輸?shù)侥惩庠O(shè)(接口),與DMA傳輸相關(guān)事項(xiàng)有: DMA傳輸前要確定使用的DMA通道、初始參數(shù)設(shè)置,如果DMA傳輸結(jié)束需要進(jìn)入中斷處理,則需

22、要考慮中斷處理程序在存儲(chǔ)器的定位; 確定由外設(shè)提出DMA請(qǐng)求,還是由軟件提出DMA請(qǐng)求(本例中由外設(shè)提出); CPU運(yùn)行其他程序,外設(shè)隨機(jī)提出DMA請(qǐng)求,DMA控制器控制讀存儲(chǔ)器數(shù)據(jù),送外設(shè)(接口); 全部數(shù)據(jù)傳輸完成,DMA發(fā)中斷請(qǐng)求,中斷服務(wù)程序進(jìn)行處理(例如用新數(shù)據(jù)填寫內(nèi)存緩沖區(qū)、設(shè)置新的DMA初始參數(shù)以及清除相應(yīng)的中斷登記位等);也可以通過查詢DMA狀態(tài),確定數(shù)據(jù)傳輸是否完成。 DMA初始參數(shù)設(shè)置與狀態(tài)寄存器 假定使用DMA通道0,那么以下所有參數(shù)都要送到通道0的特殊功能寄存器。可以讀出通道0的狀態(tài)寄存器,判斷通道0處于就緒/忙狀態(tài)、判斷傳輸計(jì)數(shù)當(dāng)前值。 源地址 由于是從存儲(chǔ)器某緩沖區(qū)

23、讀出數(shù)據(jù),送某外設(shè)(接口),所以存儲(chǔ)器緩沖區(qū)的起始地址作為源地址,要送到DMA通道0的初始源(地址)寄存器DISRC0。DMA自動(dòng)將DISRC0的值送到通道0的當(dāng)前源(地址)寄存器DCSRC0,參見表6-17。 目的地址 本例中,目的地址指的是某外設(shè)(接口)的端口地址,是從內(nèi)存讀出數(shù)據(jù)送往的目的地址,是目的區(qū)的一個(gè)起始地址,這個(gè)地址要送到DMA通道0的初始目的(地址)寄存器DIDST0。DMA自動(dòng)將DIDST0的值送到通道0的當(dāng)前目的(地址)寄存器DCDST0,參見表6-19。 傳輸計(jì)數(shù) 由存儲(chǔ)器緩沖區(qū)數(shù)據(jù)個(gè)數(shù)(字節(jié)數(shù)),通過計(jì)算得到一個(gè)傳輸計(jì)數(shù)值,這個(gè)值也稱傳輸節(jié)拍數(shù),送到通道0的控制寄存器

24、DCON0的TC域,稱為初始傳輸計(jì)數(shù)值。DMA自動(dòng)將TC域的值送到通道0的狀態(tài)寄存器DSTAT0的CURR_TC域,稱為傳輸計(jì)數(shù)當(dāng)前值,參見表6-21、表6-22。 初始源、初始目的控制寄存器 初始源控制寄存器,通過設(shè)置不同的參數(shù)值,控制源(設(shè)備)連接到AHB還是APB。本例中存儲(chǔ)器控制器連接在AHB,應(yīng)該將DISRCC01設(shè)置為0。 在初始源控制寄存器中還可以選擇當(dāng)前源地址是增量還是固定不變。 DMA控制寄存器 每個(gè)通道有1個(gè)DMA控制寄存器,通道0的為DCON0。通過程序可以分別選擇:請(qǐng)求/握手(Demand/Handshake)模式;使用AHB/APB時(shí)鐘同步;傳輸計(jì)數(shù)當(dāng)前值CURR_T

25、C為0時(shí)產(chǎn)生中斷與否;Unit/Burst模式;Single/Whole服務(wù)模式;DMA請(qǐng)求源對(duì)應(yīng)的設(shè)備;軟/硬件DMA請(qǐng)求;自動(dòng)重裝與否;數(shù)據(jù)尺寸(data size),并可設(shè)置初始傳輸計(jì)數(shù)TC值。 屏蔽觸發(fā)寄存器 每個(gè)通道有1個(gè)屏蔽觸發(fā)寄存器,通道0的是DMASKTRIG0,可以用于停止DMA操作、設(shè)置通道0 ON/OFF、觸發(fā)軟件DMA請(qǐng)求。 狀態(tài)寄存器 每個(gè)通道有1個(gè)狀態(tài)寄存器,通道0的是DSTAT0,保存就緒/忙(Ready/Busy)狀態(tài),保存?zhèn)鬏斢?jì)數(shù)當(dāng)前值CURR_TC。CURR_TC在每個(gè)原子操作結(jié)束時(shí)減1。6.5.3 DMA用到的S3C2410A引腳信號(hào) S3C2410A芯片

26、引腳信號(hào)nXDREQ1:0為輸入信號(hào),可以分別外接2路DMA請(qǐng)求信號(hào);芯片引腳信號(hào)nXDACK1:0為輸出信號(hào),輸出對(duì)nXDREQ1:0產(chǎn)生的DMA響應(yīng)信號(hào)。6.6 DMA操作6.6.1 硬件DMA請(qǐng)求與軟件DMA請(qǐng)求 S3C2410A可以使用片外DMA請(qǐng)求引腳信號(hào)nXDREQ1:0、片內(nèi)外設(shè)和軟件方式啟動(dòng)DMA操作,前2種稱為硬件DMA請(qǐng)求,后1種稱為軟件DMA請(qǐng)求。 選擇硬件DMA請(qǐng)求或軟件DMA請(qǐng)求 DMA控制寄存器DCONn中的SWHW_SEL域控制選擇硬件DMA請(qǐng)求還是軟件DMA請(qǐng)求。當(dāng)DCONn23=0時(shí)為軟件請(qǐng)求模式,通過設(shè)置DMA屏蔽觸發(fā)寄存器DMASKTRIGn的SW_TRI

27、G位,能夠觸發(fā)DMA請(qǐng)求;當(dāng)DCONn23=1時(shí)為硬件請(qǐng)求模式,需要通過DCONn26:24選擇DMA請(qǐng)求源,由這個(gè)請(qǐng)求源提出DMA請(qǐng)求。 硬件DMA請(qǐng)求源的選擇 DMA控制器的每個(gè)通道,如果在DMA控制寄存器中選擇了使用硬件請(qǐng)求模式(DCONn23=1),那么可以從5個(gè)請(qǐng)求源中選出1個(gè)作為請(qǐng)求源,具體見表6-16。 如果選擇了軟件請(qǐng)求模式,表6-16中的硬件請(qǐng)求源沒有意義。6.6.2 用于DMA操作的有限狀態(tài)機(jī) DMA使用3個(gè)狀態(tài)的有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM)實(shí)現(xiàn)它的操作,3個(gè)狀態(tài)分別描述如下:nState-1:作為初始狀態(tài),DMA等待DMA請(qǐng)求。如果出現(xiàn)D

28、MA請(qǐng)求,進(jìn)入State-2。在State-1中,DMA ACK和INT REQ為0(無效)。nState-2:在這個(gè)狀態(tài),DMA ACK變?yōu)?(有效),并且把DMA控制寄存器的DCONn19:0的初始傳輸計(jì)數(shù)值裝入到DMA狀態(tài)寄存器DSTATn的傳輸計(jì)數(shù)當(dāng)前值CURR_TC域。DMA ACK保持1(有效),直到它被清除為止。nState-3:在這個(gè)狀態(tài),處理DMA原子操作(最基本的操作、不可分開的操作)的子有限狀態(tài)機(jī)(sub-FSM)被啟動(dòng)。子有限狀態(tài)機(jī)從源地址讀數(shù)據(jù),然后寫數(shù)據(jù)到目的地址。在這個(gè)操作中,數(shù)據(jù)尺寸(size)和傳輸個(gè)數(shù)(Unit/Burst)被考慮。這個(gè)操作一直重復(fù),在全部服

29、務(wù)(Whole Service)模式,直到CURR_TC計(jì)數(shù)器變?yōu)?;在單個(gè)服務(wù)(Single Service)模式,只執(zhí)行一次。當(dāng)子有限狀態(tài)機(jī)結(jié)束每個(gè)原子操作時(shí),主有限狀態(tài)機(jī)(即有限狀態(tài)機(jī))的CURR_TC進(jìn)行減法計(jì)數(shù)。當(dāng)CURR_TC變?yōu)?并且寄存器DCONn29中斷設(shè)置位被設(shè)置成1時(shí),主有限狀態(tài)機(jī)發(fā)出INT REQ(有效)信號(hào)。如果遇到以下條件中的一個(gè),DMA ACK被清除(無效): 在全部服務(wù)模式,CURR_TC變成0; 在單個(gè)服務(wù)模式,原子操作結(jié)束。 在單個(gè)服務(wù)模式,主有限狀態(tài)機(jī)的這3個(gè)狀態(tài)被執(zhí)行,然后停止,等待下一個(gè)DMA請(qǐng)求。如果出現(xiàn)DMA請(qǐng)求,重復(fù)上述3個(gè)狀態(tài)。因此,對(duì)每個(gè)原子

30、操作,DMA ACK先有效,然后無效。在全部服務(wù)模式,主有限狀態(tài)機(jī)在State-3等待,直到CURR_TC變?yōu)?。因此,DMA ACK在全部傳輸期間有效,而當(dāng)CURR_TC=0時(shí)無效。 然而,僅僅在CURR_TC變?yōu)?時(shí)INT REQ有效,與當(dāng)前服務(wù)是單個(gè)服務(wù)模式或全部服務(wù)模式無關(guān)。6.6.3 外部DMA請(qǐng)求/響應(yīng)協(xié)議有3種外部DMA請(qǐng)求/響應(yīng)協(xié)議類型,分別是: 單個(gè)服務(wù)請(qǐng)求(Single Service Demand)模式; 單個(gè)服務(wù)握手(Single Service Handshake)模式; 全部服務(wù)握手(Whole Service Handshake)模式。 基本DMA定時(shí) DMA服務(wù)

31、意味著在DMA操作中,執(zhí)行一對(duì)讀和寫周期,并且讀和寫周期被看作1個(gè)不可分開的DMA操作。圖6.7表示S3C2410A在DMA操作中的基本定時(shí)關(guān)系。 請(qǐng)求(Demand)/握手(Handshake)模式 請(qǐng)求和握手模式與XnXDREQ和XnXDACK之間的協(xié)議有關(guān)。 請(qǐng)求模式 在請(qǐng)求模式,當(dāng)XnXDREQ有效時(shí),經(jīng)過2個(gè)同步時(shí)鐘,XnXDACK有效。從XnXDACK有效開始,最少經(jīng)過3個(gè)時(shí)鐘,傳輸一次數(shù)據(jù)(如果處于Unit傳輸模式,則讀一次、寫一次)。 請(qǐng)求模式只要XnXDREQ有效,能夠傳輸多次。請(qǐng)求模式信號(hào)關(guān)系見圖6.8。 握手模式 在握手模式,一次數(shù)據(jù)傳輸后,DMA控制器只有在XnXDRE

32、Q撤消(高電平)后,經(jīng)過2個(gè)時(shí)鐘,XnXDACK才無效(高電平)。僅僅在XnXDREQ再次有效(低電平),才開始下一次傳輸。傳輸后如果XnXDREQ一直有效,則XnXDACK一直為低電平,直到XnXDREQ撤消。 握手模式信號(hào)關(guān)系見圖6.9。 單個(gè)服務(wù)(Single Service)/全部服務(wù)(Whole Service)模式n在單個(gè)服務(wù)模式,每次原子傳輸(Unit模式傳輸1次,Burst模式4個(gè)突發(fā)讀,之后4個(gè)突發(fā)寫)后,DMA停止,等待下一個(gè)DMA請(qǐng)求。n在全部服務(wù)模式,1個(gè)DMA請(qǐng)求出現(xiàn),進(jìn)行原子傳輸,重復(fù)原子傳輸,直到當(dāng)前傳輸計(jì)數(shù)值CURR_TC達(dá)到0為止。在這種模式下,只要有1個(gè)DM

33、A請(qǐng)求,就可以傳輸全部數(shù)據(jù)。n在全部服務(wù)模式,當(dāng)每次原子傳輸后,DMA將釋放總線,然后自動(dòng)重新獲得總線,從而避免了獨(dú)占總線使其他總線主設(shè)備無法獲得總線帶來的問題。重新獲得總線并不要求重新激活DMA請(qǐng)求。6.6.4 Unit/Burst傳輸、數(shù)據(jù)尺寸與自動(dòng)重裝 Unit/Burst傳輸nUnit傳輸?shù)暮x是1次傳輸由1個(gè)讀周期和1個(gè)寫周期組成。nBurst傳輸?shù)暮x是1次傳輸由4個(gè)連續(xù)的讀周期和4個(gè)連續(xù)的寫周期組成。n在Unit或Burst傳輸期間,DMA穩(wěn)固地保持總線,其他總線主設(shè)備不能得到總線。S3C2410A DMA Burst傳輸信號(hào)關(guān)系見圖6.10。 數(shù)據(jù)尺寸(data size) 數(shù)

34、據(jù)尺寸的含義是每個(gè)讀(寫)周期,DMA傳輸?shù)臄?shù)據(jù)寬度。只能選擇使用字節(jié)/半字/字3種寬度中的一種。通過對(duì)DMA控制寄存器DCONn21:20位進(jìn)行不同的設(shè)置,可以指定不同的數(shù)據(jù)尺寸。 自動(dòng)重裝nDMA控制寄存器DCONn22為自動(dòng)重裝選擇位,當(dāng)這1位設(shè)置為0時(shí),允許自動(dòng)重裝。n當(dāng)傳輸全部結(jié)束,在DMA狀態(tài)寄存器中的傳輸計(jì)數(shù)當(dāng)前值CURR_TC變?yōu)?時(shí),如果允許自動(dòng)重裝,則在下一個(gè)DMA請(qǐng)求出現(xiàn)時(shí),進(jìn)行自動(dòng)重裝,將初始源(地址)寄存器的值、初始目的(地址)寄存器的值和初始傳輸計(jì)數(shù)TC的值,分別送到DMA當(dāng)前源(地址)寄存器、當(dāng)前目的(地址)寄存器和傳輸計(jì)數(shù)當(dāng)前值CURR_TC域中。6.6.5 外

35、部DMA請(qǐng)求/響應(yīng)協(xié)議傳輸舉例 單個(gè)服務(wù)、請(qǐng)求模式、Unit傳輸 在單個(gè)服務(wù)模式,每次Unit傳輸,需要檢查XnXDREQ是有效的。在請(qǐng)求模式,只要XnXDREQ有效,操作將繼續(xù),讀和寫操作被看作不可分開的一對(duì)操作被執(zhí)行,具體見圖6.11。 單個(gè)服務(wù)、握手模式、Unit傳輸 單個(gè)服務(wù)、握手模式、Unit傳輸見圖6.12。 全部服務(wù)、握手模式、Unit傳輸 全部服務(wù)、握手模式、Unit傳輸見圖6.13。6.7 DMA特殊功能寄存器 DMA控制器共有36個(gè)特殊功能寄存器,每個(gè)DMA通道有9個(gè)寄存器。其中6個(gè)控制DMA傳輸,另外3個(gè)監(jiān)控DMA控制器的狀態(tài)。 DMA初始源(地址)寄存器 4個(gè)通道的DM

36、A初始源(地址)寄存器的名稱分別為DISRC0、DISRC1、DISRC2和DISRC3;對(duì)應(yīng)地址分別為0 x4B000000、0 x4B000040、0 x4B000080和0 x4B0000C0;可讀寫;Reset后初值全部為0;分別存放各通道要傳輸?shù)脑磾?shù)據(jù)的基本地址(起始地址),具體見表6-17。 DMA初始源控制寄存器 4個(gè)通道的DMA初始源控制寄存器的名稱分別為DISRCC0、DISRCC1、DISRCC2和DISRCC3;對(duì)應(yīng)地址分別為0 x4B000004、0 x4B000044、0 x4B000084和0 x4B0000C4;可讀寫;Reset后初值全部為0;分別存放各通道源(

37、設(shè)備)連接的總線、傳輸后地址增加與否等信息,具體見表6-18。 DMA初始目的(地址)寄存器 4個(gè)通道的DMA初始目的(地址)寄存器的名稱分別為DIDST0、DIDST1、DIDST2和DIDST3;對(duì)應(yīng)地址分別為0 x4B000008、0 x4B000048、0 x4B000088和0 x4B0000C8;可讀寫;Reset后初值全部為0;分別存放各通道要傳輸?shù)哪康幕镜刂罚ㄆ鹗嫉刂罚?,具體見表6-19。 DMA初始目的控制寄存器 4個(gè)通道的DMA初始目的控制寄存器的名稱分別為DIDSTC0、DIDSTC1、DIDSTC2和DIDSTC3;對(duì)應(yīng)地址分別為0 x4B00000C、0 x4B00004C、0 x4B00008C和0 x4B0000CC;可讀寫;Reset后初值全部為0;分別存放各通道目的(設(shè)備)連接的總線、傳輸后地

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論