于明ARM9嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)教程(Chapter 4)_第1頁
于明ARM9嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)教程(Chapter 4)_第2頁
于明ARM9嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)教程(Chapter 4)_第3頁
于明ARM9嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)教程(Chapter 4)_第4頁
于明ARM9嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)教程(Chapter 4)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第4章 應(yīng)用系統(tǒng)設(shè)計(jì)4.1 系統(tǒng)設(shè)計(jì)概述4.2 ARM920T簡介4.3 S3C2410X處理器詳解4.4 單元電路設(shè)計(jì)4.5 存儲(chǔ)器系統(tǒng)設(shè)計(jì)4.6 JTAG調(diào)試接口設(shè)計(jì)4.7 綜合訓(xùn)練之通過JTAG訪問外設(shè)4.1 系統(tǒng)設(shè)計(jì)概述4.2 ARM920T簡介ARM920T是ARM920TDMI系列中的一款通用性的微處理器,ARM920TDMI系列微處理器包含如下幾種類型的內(nèi)核。 ARM9TDMI:只有內(nèi)核。 ARM940T:由內(nèi)核、高速緩存和內(nèi)存保護(hù)單元組成。 ARM920T:由內(nèi)核、高速緩存和內(nèi)存管理單元(MMU)組成。4.2.1 ARM920T系統(tǒng)結(jié)構(gòu)分析4.2.2 ARM920T內(nèi)核編程模型

2、ARM920T系統(tǒng)結(jié)構(gòu)分析ARM9TDMI采用5級(jí)流水線,其結(jié)構(gòu)圖如圖所示,具有分開的指令和數(shù)據(jù)存儲(chǔ)器,5級(jí)流水線具體如下。(1)取指:從存儲(chǔ)器中取出指令,并將其放入指令流水線。(2)譯碼:對(duì)指令進(jìn)行譯碼。(3)執(zhí)行:把一個(gè)操作數(shù)移位,產(chǎn)生ALU的結(jié)果。(4)緩沖/數(shù)據(jù):如果需要,則訪問數(shù)據(jù)存儲(chǔ)器;否則ALU的結(jié)果只是簡單地緩沖1個(gè)時(shí)鐘周期,以便所有的指令具有同樣的流水線流程。(5)回寫:將指令產(chǎn)生的結(jié)果回寫到寄存器,包括任何從存儲(chǔ)器中讀取的數(shù)據(jù)。ARM9TDMI處理器一個(gè)顯著的特點(diǎn)是采用指令和數(shù)據(jù)分離訪問的方式,即采用了指令緩存(I-Cache)和數(shù)據(jù)緩存(D-Cache)。這樣可以把指令訪

3、問和數(shù)據(jù)訪問單獨(dú)安排1級(jí)流水線。ARM920T以ARM9TDMI為內(nèi)核,增加了高速緩存和內(nèi)存管理單元,系統(tǒng)結(jié)構(gòu)圖如圖所示。ARM920T內(nèi)核編程模型字(Word),在ARM體系結(jié)構(gòu)中,字的長度為32位,而在8位/16位處理器體系結(jié)構(gòu)中,字的長度一般為16位。半字(Half-Word),在ARM體系結(jié)構(gòu)中,半字的長度為16位,與8位/16位處理器體系結(jié)構(gòu)中字的長度一致。字節(jié)(Byte),在ARM體系結(jié)構(gòu)和8位/16位處理器體系結(jié)構(gòu)中,字節(jié)的長度均為8位。指令長度可以是32位(在ARM狀態(tài)下),也可以為16位(在Thumb狀態(tài)下)。ARM920T中支持字節(jié)(8位)、半字(16位)、字(32位)3種

4、數(shù)據(jù)類型,其中,字需要4字節(jié)對(duì)齊,半字需要2字節(jié)對(duì)齊。1ARM微處理器的工作狀態(tài)從編程的角度看,ARM920T微處理器的工作狀態(tài)一般有兩種: ARM狀態(tài),此時(shí)處理器執(zhí)行32位的、字對(duì)齊的ARM指令; Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,在程序的執(zhí)行過程中,微處理器可以隨時(shí)在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。但ARM微處理器在開始執(zhí)行代碼時(shí),應(yīng)該處于ARM狀態(tài)。當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時(shí),可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換

5、到Thumb狀態(tài)。當(dāng)操作數(shù)寄存器的狀態(tài)位為0時(shí),執(zhí)行BX指令可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。此外,在處理器進(jìn)行異常處理時(shí),將PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。 2ARM體系結(jié)構(gòu)的存儲(chǔ)器格式ARM920T體系結(jié)構(gòu)將存儲(chǔ)器看做是從零地址開始的字節(jié)的線性組合。從0字節(jié)到3字節(jié)放置第1個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),從第4個(gè)字節(jié)到第7個(gè)字節(jié)放置第2個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),依次排列。作為32位的微處理器,ARM920T體系結(jié)構(gòu)所支持的最大尋址空間為4GB(232字節(jié))。ARM920T體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),分別稱為大端格式和小端格式。大端格

6、式中字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中,如圖所示。 與大端存儲(chǔ)格式相反,在小端存儲(chǔ)格式中,低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)。如圖所示 3處理器模式ARM920T支持7種運(yùn)行模式,分別為: 用戶模式(usr),ARM處理器正常的程序執(zhí)行狀態(tài); 快速中斷模式(fiq),用于高速數(shù)據(jù)傳輸或通道處理; 外部中斷模式(irq),用于通用的中斷處理; 管理模式(svc),操作系統(tǒng)使用的保護(hù)模式; 數(shù)據(jù)訪問終止模式(abt),當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù); 系統(tǒng)模式(sys),運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù); 未定義指令中止模

7、式(und),當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。ARM微處理器的運(yùn)行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數(shù)的應(yīng)用程序運(yùn)行在用戶模式下,當(dāng)處理器運(yùn)行在用戶模式下時(shí),某些被保護(hù)的系統(tǒng)資源是不能被訪問的。除用戶模式以外,其余的6種模式稱為非用戶模式或特權(quán)模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及訪問受保護(hù)的系統(tǒng)資源等情況。4寄存器組織ARM920T共有37個(gè)32位寄存器,其中31個(gè)為通用寄存器,6個(gè)為狀態(tài)寄存器。但是這些寄存器不能被同時(shí)訪問,具體哪些寄存器是可編程訪問的,取決于微處理器的工作狀態(tài)及具體的

8、運(yùn)行模式。在ARM狀態(tài)下,任一時(shí)刻可以訪問16個(gè)通用寄存器和12個(gè)狀態(tài)寄存器。在非用戶模式(特權(quán)模式)下,則可訪問到特定模式分組寄存器,圖所示為在每一種運(yùn)行模式下,可以訪問的寄存器。在ARM狀態(tài)下有16個(gè)直接訪問寄存器R0R15,除R15寄存器外均為通用目的,可用來存儲(chǔ)數(shù)據(jù)或地址值。除此之外,還有第17個(gè)寄存器用來存儲(chǔ)狀態(tài)信息。R14也稱為子程序連接寄存器(Subroutine Link Register)或連接寄存器LR。當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí),R14中得到R15(程序計(jì)數(shù)器PC)的備份。在其他情況下,R14用做通用寄存器。與之類似,當(dāng)發(fā)生中斷或異常時(shí),對(duì)應(yīng)的分組寄存器R14_svc、R

9、14_irq、R14_fiq、R14_abt和R14_und用來保存R15的返回值。寄存器R15用做程序計(jì)數(shù)器(PC)。在ARM狀態(tài)下,位1:0為0,位31:2用于保存PC;在Thumb狀態(tài)下,位0為0,位31:1用于保存PC。寄存器R16用做當(dāng)前程序狀態(tài)寄存器(Current Program Status Register,CPSR),CPSR可在任何運(yùn)行模式下被訪問,它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。每一種非用戶模式下都有一個(gè)專用的物理狀態(tài)寄存器,稱為SPSR(Saved Program Status Register,備份的程序狀態(tài)寄存器

10、)。當(dāng)異常發(fā)生時(shí),SPSR用于保存CPSR的當(dāng)前值,從異常退出時(shí)則可由SPSR來恢復(fù)CPSR。fiq模式下有7個(gè)分組寄存器R8_fiqR14_fiq,在ARM狀態(tài)下,許多fiq處理都不用保存任何寄存器。usr、fiq、irq、svc、abt、und模式下有兩個(gè)分組寄存器R13和R14,而每種模式都有一個(gè)自己的堆棧指針和連接寄存器.。Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的一個(gè)子集,程序可以直接訪問8個(gè)通用寄存器(R7R0)、程序計(jì)數(shù)器(PC)、堆棧指針(SP)、連接寄存器(LR)和CPSR。同時(shí),在每一種特權(quán)模式下都有一組SP、LR和SPSR。圖所示表明Thumb狀態(tài)下的寄存器組織。

11、Thumb狀態(tài)下的寄存器組織與ARM狀態(tài)下的寄存器組織存在如下關(guān)系: Thumb狀態(tài)下和ARM狀態(tài)下的R0R7是相同的; Thumb狀態(tài)下和ARM狀態(tài)下的CPSR和所有的SPSR是相同的; Thumb狀態(tài)下的SP對(duì)應(yīng)于ARM狀態(tài)下的R13; Thumb狀態(tài)下的LR對(duì)應(yīng)于ARM狀態(tài)下的R14; Thumb狀態(tài)下的程序計(jì)數(shù)器對(duì)應(yīng)于ARM狀態(tài)下的R15。以上的對(duì)應(yīng)關(guān)系如圖所示。在Thumb狀態(tài)下,高位寄存器R8R15并不是標(biāo)準(zhǔn)寄存器集的一部分,但可使用匯編語言程序受限制地訪問這些寄存器,將其用做快速的暫存器。使用帶特殊變量的MOV指令,數(shù)據(jù)可以在低位寄存器和高位寄存器之間進(jìn)行傳送;高位寄存器的值可以

12、使用CMP和ADD指令進(jìn)行比較或加上低位寄存器中的值。5程序狀態(tài)寄存器ARM920T體系結(jié)構(gòu)中包含一個(gè)當(dāng)前程序狀態(tài)寄存器(CPSR)和5個(gè)備份的程序狀態(tài)寄存器(SPSR)。備份的程序狀態(tài)寄存器用來進(jìn)行異常處理,其功能包括: 保存ALU中的當(dāng)前操作信息; 控制允許和禁止中斷; 設(shè)置處理器的運(yùn)行模式。程序狀態(tài)寄存器每一位的安排如圖所示。 6條件碼標(biāo)志(Condition Code Flags)N、Z、C、V均為條件碼標(biāo)志位。它們的內(nèi)容可被算術(shù)或邏輯運(yùn)算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行。條件碼標(biāo)志各位的具體含義如表所示。 7控制位CPSR的低8位(包括I、F、T和M4:0)稱為控制位,當(dāng)

13、發(fā)生異常時(shí)這些位可以被改變。如果處理器運(yùn)行特權(quán)模式,這些位也可以由程序修改。 中斷禁止位I、F:置1時(shí),禁止IRQ中斷和FIQ中斷。 T標(biāo)志位:該位反映處理器的運(yùn)行狀態(tài)。當(dāng)該位為1時(shí),程序運(yùn)行于Thumb狀態(tài),否則運(yùn)行于ARM狀態(tài)。該信號(hào)反映在外部引腳TBIT上。在程序中不得修改CPSR中的TBIT位,否則處理器工作狀態(tài)不能確定。 運(yùn)行模式位M4:0:M0、M1、M2、M3、M4是模式位。這些位決定了處理器的運(yùn)行模式。具體含義如表所示。 保留位:CPSR中的其余位為保留位,當(dāng)改變CPSR中的條件碼標(biāo)志位或者控制位時(shí),保留位不要被改變,在程序中也不要使用保留位來存儲(chǔ)數(shù)據(jù)。保留位將用于ARM版本的

14、擴(kuò)展。8異常(Exceptions)當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣,當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個(gè)異常同時(shí)發(fā)生,處理器會(huì)按固定的優(yōu)先級(jí)對(duì)多個(gè)異常進(jìn)行處理。ARM920T對(duì)異常的處理按以下步驟操作:(1)將下一條指令的地址存入相應(yīng)連接寄存器LR。若異常是從ARM狀態(tài)進(jìn)入,LR寄存器中保存的是下一條指令的地址(當(dāng)前PC4或PC8,與異常的類型有關(guān));若異常是從Thumb狀態(tài)進(jìn)入,則在LR寄存器中保存當(dāng)前PC的偏移量。這樣,異常處理程序就不需要確定異常是從何種狀態(tài)進(jìn)入的,程序在處理異常返回時(shí)能從正確的位置重新

15、開始執(zhí)行。例如:在軟件中斷異常SWI中,指令 MOV PC,R14_svc總是返回到下一條指令,而不管SWI是在ARM狀態(tài)執(zhí)行,還是在Thumb狀態(tài)執(zhí)行。(2)將CPSR復(fù)制到相應(yīng)的SPSR中。(3)根據(jù)異常類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。(4)強(qiáng)制PC從相應(yīng)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。進(jìn)入異常處理前可以設(shè)置中斷禁止位,以禁止異常處理時(shí)對(duì)中斷的響應(yīng)。如果異常發(fā)生時(shí),處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時(shí),處理器自動(dòng)切換到ARM狀態(tài)。異常處理完畢之后,執(zhí)行以下操作從異常返回:(1)將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。(2)將S

16、PSR復(fù)制回CPSR中。(3)若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除。 表總結(jié)了進(jìn)入異常處理時(shí)保存在相應(yīng)R14中的PC值,及在退出異常處理時(shí)推薦使用的指令。應(yīng)用程序中的異常處理:當(dāng)系統(tǒng)運(yùn)行時(shí),異??赡軙?huì)隨時(shí)發(fā)生。為保證在ARM處理器發(fā)生異常時(shí)不至于處于未知狀態(tài),在應(yīng)用程序的設(shè)計(jì)中,首先要進(jìn)行異常處理。采用的方式是在異常向量表中的特定位置放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處理程序。當(dāng)ARM處理器發(fā)生異常時(shí),程序計(jì)數(shù)器PC會(huì)被強(qiáng)制設(shè)置為對(duì)應(yīng)的異常向量,從而跳轉(zhuǎn)到異常處理程序。當(dāng)異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。各異常向量地址如表所示。當(dāng)多個(gè)異常同時(shí)發(fā)生時(shí),系統(tǒng)根據(jù)固定的優(yōu)先級(jí)決定異常的處理

17、順序。異常優(yōu)先級(jí)由高到低的排列次序?yàn)椋簭?fù)位、數(shù)據(jù)中止、FIQ、IRQ、預(yù)取指令中止、未定義指令、SWI。 4.3 S3C2410X處理器詳解S3C2410X在包含ARM920T核的同時(shí),增加了豐富的外圍資源,如圖所示。主要片內(nèi)外圍模塊包括: 1個(gè)LCD控制器,支持STN和TFT液晶顯示屏; 外部存儲(chǔ)器管理(SDRAM控制器和芯片選擇邏輯); 3個(gè)通道的UART; 4個(gè)通道的DMA,支持存儲(chǔ)器和I/O口之間的傳輸,以猝發(fā)模式提高傳輸率; 4個(gè)具有PWM功能的16位定時(shí)/計(jì)數(shù)器和1個(gè)16位內(nèi)部定時(shí)器,支持外部時(shí)鐘源; 8通道的10位ADC,最高速率可達(dá)500kB/s,10位分辨率; 觸摸屏接口;

18、IIS總線接口; 2個(gè)USB主機(jī)接口,1個(gè)USB設(shè)備接口; 2個(gè)SPI接口; SD卡接口和MMC卡接口; 16位看門狗定時(shí)器; 117位通用I/O口和24位外部中斷源; 8通道10位AD控制器; 電源管理。 S3C2410X及片內(nèi)外圍簡介S3C2410X支持大、小端模式,將存儲(chǔ)空間分成8組(Bank),每組大小是128MB,共計(jì)1GB。特殊功能寄存器 1內(nèi)存控制器(Memory Controller)內(nèi)存控制器為訪問外部存儲(chǔ)空間提供存儲(chǔ)器控制信號(hào),共有13個(gè)寄存器。 2Nand Flash 控制器S3C2410X支持Nand Flash啟動(dòng),啟動(dòng)代碼存儲(chǔ)在Nand Flash上。啟動(dòng)時(shí),Nan

19、d Flash的前4KB將被裝載到內(nèi)部的固定地址中,利用硬件糾錯(cuò)碼ECC對(duì)數(shù)據(jù)的正確性檢驗(yàn),然后開始執(zhí)行其中的啟動(dòng)代碼。一般情況下,該啟動(dòng)代碼會(huì)把Nand Flash中的內(nèi)容拷貝到SDRAM中去,拷貝完后,主程序?qū)⒃赟DRAM中執(zhí)行。操作流程如圖所示。 自動(dòng)引導(dǎo)模式流程: 復(fù)位; 如果自動(dòng)引導(dǎo)模式使能,Nand Flash中的前4KB代碼拷貝到內(nèi)部的小石頭區(qū)域; 小石頭映射到nGCS0; CPU開始執(zhí)行小石頭區(qū)域中的代碼。Nand Flash模式: 通過NFCONF寄存器設(shè)置Nand Flash配置; 把Nand Flash命令寫入NFCMD寄存器; 把Nand Flash地址寫入NFADDR

20、寄存器; 讀/寫數(shù)據(jù)同時(shí)通過NFSTAT寄存器檢測(cè)Nand Flash狀態(tài)。讀操作前或者程序執(zhí)行后檢查R/nB信號(hào)。 3時(shí)鐘和電源管理S3C2410X的主時(shí)鐘由外部晶振或者外部時(shí)鐘提供,選擇后可以生成3種時(shí)鐘信號(hào),分別是CPU使用的FCLK,AHB總線使用的HCLK和APB總線使用的PCLK。時(shí)鐘管理模塊同時(shí)擁有兩個(gè)鎖相環(huán),一個(gè)稱為MPLL,用于FCLK、HCLK和PCLK;另一個(gè)稱為UPLL,用于USB設(shè)備。對(duì)時(shí)鐘的選擇是通過OM3:2實(shí)現(xiàn)的。 OM3:2=00B時(shí),晶體為MPLL CLK和UPLL CLK提供時(shí)鐘源; OM3:2=01B時(shí),晶體為MPLL CLK提供時(shí)鐘源,EXTCLK為U

21、PLL CLK提供時(shí)鐘源; OM3:2=10B時(shí),EXTCLK為MPLL CLK提供時(shí)鐘源,晶體為UPLL CLK提供時(shí)鐘源; OM3:2=11B時(shí),EXTCLK為MPLL CLK和UPLL CLK提供時(shí)鐘。(1)鎖相環(huán)PLL。鎖相環(huán)最基本的結(jié)構(gòu)由3個(gè)基本的部件組成:鑒相器(PFD)、環(huán)路濾波器(Loop Filter)和壓控振蕩器(VCO),如圖所示。鑒相器是個(gè)相位比較裝置,它把輸入信號(hào)Fref與壓控振蕩器輸出分頻后的信號(hào)Fvco的相位進(jìn)行比較,產(chǎn)生對(duì)應(yīng)于兩個(gè)信號(hào)相位差的誤差電壓。環(huán)路濾波器的作用是濾除誤差電壓中的高頻成分和噪聲,以保證環(huán)路所要求的性能,增加系統(tǒng)的穩(wěn)定性。壓控振蕩器受控制電壓

22、的控制,使壓控振蕩器的頻率向輸入信號(hào)的頻率靠攏,直至消除頻差而鎖定。由此可見,鎖相環(huán)是個(gè)相位誤差控制系統(tǒng)。它比較輸入信號(hào)和壓控振蕩器輸出信號(hào)之間的相位差,從而產(chǎn)生誤差控制電壓來調(diào)整壓控振蕩器的頻率,以達(dá)到與輸入信號(hào)同頻。 S3C2410X增加了1個(gè)轉(zhuǎn)換泵和3個(gè)除法器來增加控制。轉(zhuǎn)換泵首先對(duì)PFD的輸出信號(hào)按一定比例轉(zhuǎn)換,然后傳遞給外部濾波器,最后由外部濾波器驅(qū)動(dòng)壓控振蕩VCO。除法器P對(duì)輸入信號(hào)Fin分頻產(chǎn)生信號(hào)Fref,除法器M對(duì)壓控振蕩器輸出信號(hào)分頻產(chǎn)生信號(hào)Fvco,分頻器S對(duì)壓控振蕩器輸出信號(hào)分頻后生成了MPLL。在環(huán)路開始工作時(shí),如果Fref與Fvco頻率不同,則是由于兩信號(hào)之間存在固

23、有的頻率差,因此它們之間的相位差一直在變化,使得鑒相器PFD輸出的誤差電壓就在一定范圍內(nèi)變化。在這種誤差電壓的控制下,壓控振蕩器的頻率也在變化。若Fvco的頻率能夠變化到與Fref相等,那么在滿足穩(wěn)定性條件下就在這個(gè)頻率上穩(wěn)定下來。達(dá)到穩(wěn)定后,F(xiàn)ref與Fvco之間的頻差為零,相差不再隨時(shí)間變化,誤差電壓為一固定值,此時(shí)環(huán)路進(jìn)入“鎖定”狀態(tài)。這就是鎖相環(huán)工作的大致過程。系統(tǒng)穩(wěn)定后Fref與Fvco相等,可得輸出頻率MPLL與輸入時(shí)鐘頻率Fin的關(guān)系式:(8)(2)2sMFinMPLLP(2)時(shí)鐘控制邏輯。時(shí)鐘控制邏輯決定了所使用的時(shí)鐘源,是采用MPLL作為FCLK,還是采用外部時(shí)鐘。復(fù)位后,F(xiàn)

24、in直接傳遞給FCLK,即使不想改變默認(rèn)的PLLCON值,也需要重新寫一遍。FCLK由ARM920T核使用,HCLK提供給AHB總線,PCLK提供給了APB總線。S3C2410X支持HCLK、FCLK和PCLK的分頻選擇,其比率是通過CLKDIV寄存器中的HDIVN和PDIVN控制的,如表所示。 (3)電源管理。S3C2410X電源管理模塊通過4種模式有效地控制功耗: Normal模式:為CPU和所有的外設(shè)提供時(shí)鐘,所有的外設(shè)開啟時(shí),該模式下的功耗最大。這種模式允許用戶通過軟件控制外設(shè),可以斷開提供給外設(shè)的時(shí)鐘以降低功耗。 Slow模式:采用外部時(shí)鐘生成FCLK的方式,此時(shí)電源的功耗取決于外部

25、時(shí)鐘。 Idle模式:斷開FCLK與CPU核的連接,外設(shè)保持正常,該模式下的任何中斷都可喚醒CPU。 Power-off模式:斷開內(nèi)部電源,只給內(nèi)部的喚醒邏輯供電。一般模式下需要兩個(gè)電源,一個(gè)提供給喚醒邏輯,另外一個(gè)提供給CPU和內(nèi)部邏輯,在Power-off模式下,后一個(gè)電源關(guān)閉。該模式可以通過EINT15:0和RTC喚醒。 (4)時(shí)鐘和電源管理寄存器。S3C2410X通過控制寄存器實(shí)現(xiàn)對(duì)時(shí)鐘和電源的管理,相關(guān)寄存器如表所示。4.4 單元電路設(shè)計(jì)盡管硬件選型與單元電路設(shè)計(jì)部分的內(nèi)容是基于S3C2410X的系統(tǒng),但由于ARM體系結(jié)構(gòu)的一致性和常見外圍電路的通用性,只要讀者能真正理解本部分的設(shè)計(jì)

26、方法,那么由此設(shè)計(jì)出基于其他ARM微處理器的系統(tǒng),應(yīng)該也是比較容易的。 4.4.1 電源電路設(shè)計(jì)4.4.2 晶振電路設(shè)計(jì)4.4.3 復(fù)位電路設(shè)計(jì)4.4.4 串行接口電路設(shè)計(jì) 電源電路設(shè)計(jì) 晶振電路設(shè)計(jì) S3C2410X微處理器的主時(shí)鐘可以由外部時(shí)鐘源提供,也可以由外部振蕩器提供,如圖所示,采用哪種方式通過引腳OM3:2來進(jìn)行選擇。 OM3:2=00時(shí),MPLL和UPLL的時(shí)鐘均選擇外部振蕩器; OM3:2=01時(shí),MPLL的時(shí)鐘選擇外部振蕩器;UPLL選擇外部時(shí)鐘源; OM3:2=10時(shí),MPLL的時(shí)鐘選擇外部時(shí)鐘源;UPLL選擇外部振蕩器; OM3:2=11時(shí),MPLL和UPLL的時(shí)鐘均選擇

27、外部時(shí)鐘源。該系統(tǒng)中選擇OM3:2均接地的方式,即采用外部振蕩器提供系統(tǒng)時(shí)鐘。外部振蕩器由12MHz晶振和2個(gè)15pF的微調(diào)電容組成。 復(fù)位電路設(shè)計(jì) 串行接口電路設(shè)計(jì)4.5 存儲(chǔ)器系統(tǒng)設(shè)計(jì) 在該系統(tǒng)中,設(shè)計(jì)了3種存儲(chǔ)器接口電路,Nor Flash接口、Nand Flash接口和SDRAM接口電路。引導(dǎo)程序既可存儲(chǔ)在Nor Flash中,也可存儲(chǔ)在Nand Flash中。而SDRAM中存儲(chǔ)的是執(zhí)行中的程序和產(chǎn)生的數(shù)據(jù)。存儲(chǔ)在Nor Flash中的程序可直接執(zhí)行,與在SDRAM執(zhí)行相比速度較慢。存儲(chǔ)在Nand Flash中的程序,需要拷貝到RAM中去執(zhí)行。 4.5.1 8位存儲(chǔ)器接口設(shè)計(jì)4.5.2

28、 Flash接口電路設(shè)計(jì)4.5.3 SDRAM接口電路設(shè)計(jì) 8位存儲(chǔ)器接口設(shè)計(jì) 由于ARM微處理器的體系結(jié)構(gòu)支持8位/16位/32位的存儲(chǔ)器系統(tǒng),相應(yīng)地可以構(gòu)建8位的存儲(chǔ)器系統(tǒng)、16位的存儲(chǔ)器系統(tǒng)或32位的存儲(chǔ)器系統(tǒng)。32位的存儲(chǔ)器系統(tǒng)具有較高的性能,而16位的存儲(chǔ)器系統(tǒng)則在成本及功耗方面占有優(yōu)勢(shì),而8位的存儲(chǔ)器系統(tǒng)現(xiàn)在已經(jīng)很少使用。Flash接口電路設(shè)計(jì)1Nor和Nand Flash的區(qū)別Nor的特點(diǎn)是XIP(eXecute In Place,芯片內(nèi)執(zhí)行)特性,這樣,應(yīng)用程序可以直接在Flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。Nor的傳輸效率很高,在14MB的小容量時(shí)具有很高的成本

29、效益,但是很低的寫入和擦除速度大大影響了它的性能。Nand結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲(chǔ)密度,并且寫入和擦除的速度也很快。(1)性能比較。Flash閃存是非易失存儲(chǔ)器,可以對(duì)稱為塊的存儲(chǔ)器單元塊進(jìn)行擦寫和再編程。Nand器件執(zhí)行擦除操作是十分簡單的,而Nor則要求在進(jìn)行寫入前先要將目標(biāo)塊內(nèi)所有的位都寫為0。 Nor的讀速度比Nand稍快一些。 Nand的寫入速度比Nor快很多。Nand的4ms擦除速度遠(yuǎn)比Nor的5s快。 Nand的擦除單元更小,相應(yīng)的擦除電路更少。(2)容量和成本。Nand Flash的單元尺寸幾乎是Nor器件的一半,由于生產(chǎn)過程更為簡單,Nand結(jié)構(gòu)可以在給定的模

30、具尺寸內(nèi)提供更高的容量,也就相應(yīng)地降低了價(jià)格。在Nand閃存中每個(gè)塊的最大擦寫次數(shù)是一百萬次,而Nor的擦寫次數(shù)是十萬次。(3)接口差別。Nor Flash帶有SRAM接口,Nand器件使用復(fù)雜的I/O口來串行存取數(shù)據(jù)。2Nor Flash接口設(shè)計(jì)3Nand Flash接口電路設(shè)計(jì) SDRAM接口電路設(shè)計(jì) 4.6 JTAG調(diào)試接口設(shè)計(jì)JTAG是Joint Test Action Group(聯(lián)合測(cè)試行動(dòng)小組)的簡稱,由于標(biāo)準(zhǔn)是由JTAG這個(gè)組織最初提出的,最終由IEEE批準(zhǔn)并且標(biāo)準(zhǔn)化的。所以這個(gè)標(biāo)準(zhǔn)一般也俗稱JTAG調(diào)試標(biāo)準(zhǔn)。4.6.1 JTAG綜述4.6.2 TAP狀態(tài)機(jī)4.6.3 接口電路

31、設(shè)計(jì) JTAG綜述 JTAG標(biāo)準(zhǔn)主要用于芯片內(nèi)部測(cè)試及對(duì)系統(tǒng)進(jìn)行仿真、調(diào)試。JTAG技術(shù)是一種嵌入式調(diào)試技術(shù),它在芯片內(nèi)部封裝了專門的測(cè)試電路TAP(Test Access Port,測(cè)試訪問口),通過專用的JTAG測(cè)試工具對(duì)內(nèi)部節(jié)點(diǎn)進(jìn)行測(cè)試。目前大多數(shù)比較復(fù)雜的器件都支持JTAG協(xié)議,如ARM、DSP、FPGA器件等。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為測(cè)試模式選擇、測(cè)試時(shí)鐘、測(cè)試數(shù)據(jù)輸入和測(cè)試數(shù)據(jù)輸出。JTAG測(cè)試允許多個(gè)器件通過JTAG接口串聯(lián)在一起,形成一個(gè)JTAG鏈,能實(shí)現(xiàn)對(duì)多個(gè)器件分別測(cè)試。JTAG接口還常用于實(shí)現(xiàn)ISP(In-System Progra

32、mmable,在系統(tǒng)可編程)功能,如對(duì)FLASH器件進(jìn)行編程等。1邊界掃描在JTAG調(diào)試中,邊界掃描(Boundary-Scan)是一個(gè)很重要的概念。邊界掃描技術(shù)的基本思想是在靠近芯片的輸入輸出管腳上增加一個(gè)移位寄存器單元。因?yàn)檫@些移位寄存器單元都分布在芯片的邊界上,所以被稱為邊界掃描寄存器(Boundary-Scan Register Cell)。芯片處于調(diào)試狀態(tài)的時(shí)候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開來。通過這些邊界掃描寄存器單元,可以實(shí)現(xiàn)對(duì)芯片輸入輸出信號(hào)的觀察和控制。如果需要捕獲芯片某個(gè)管腳上的輸出,首先需要把該管腳上的輸出裝載到邊界掃描鏈的寄存器單元中去,然后通過T

33、DO輸出,這樣,我們就可以從TDO上得到相應(yīng)管腳上的輸出信號(hào)。如果要在芯片的某個(gè)管腳上加載一個(gè)特定的信號(hào),則首先需要通過TDI把期望的信號(hào)移位到與相應(yīng)管腳相連的邊界掃描鏈的寄存器單元里去,然后將該寄存器單元的值加載到相應(yīng)的芯片管腳。2TAP接口利用邊界掃描鏈可以實(shí)現(xiàn)對(duì)芯片的輸入輸出進(jìn)行觀察和控制,對(duì)邊界掃描鏈的控制主要是通過TAP控制器來完成的。在標(biāo)準(zhǔn)中,寄存器被分為兩大類:數(shù)據(jù)寄存器(Data Register,簡稱DR)和指令寄存器(Instruction Register,簡稱IR)。邊界掃描鏈屬于數(shù)據(jù)寄存器中很重要的一種。邊界掃描鏈用來實(shí)現(xiàn)對(duì)芯片的輸入輸出的觀察和控制,而指令寄存器用來

34、實(shí)現(xiàn)對(duì)數(shù)據(jù)寄存器的控制。TAP(Test Access Port)是一個(gè)通用的端口,通過TAP可以訪問芯片提供的所有數(shù)據(jù)寄存器(DR)和指令寄存器(IR)。對(duì)整個(gè)TAP的控制是通過TAP Controller來完成的。TAP總共包括5個(gè)信號(hào)接口TCK、TMS、TDI、TDO和TRST,其中前4個(gè)是輸入信號(hào)接口,最后1個(gè)是輸出信號(hào)接口。 TCK:測(cè)試時(shí)鐘(Test Clock Input),為TAP的操作提供了一個(gè)獨(dú)立的、基本的時(shí)鐘信號(hào),TAP的所有操作都是通過這個(gè)時(shí)鐘信號(hào)來驅(qū)動(dòng)的。TCK在標(biāo)準(zhǔn)中是強(qiáng)制要求的。 TMS:測(cè)試模式選擇(Test Mode Selection Input),用來控制

35、TAP狀態(tài)機(jī)的轉(zhuǎn)換。通過TMS信號(hào),可以控制TAP在不同的狀態(tài)間相互轉(zhuǎn)換。TMS信號(hào)在TCK的上升沿有效。TMS在標(biāo)準(zhǔn)中是強(qiáng)制要求的。 TDI:數(shù)據(jù)輸入(Test Data Input),所有要輸入到特定寄存器的數(shù)據(jù)都是通過TDI接口一位一位串行輸入的。TDI在標(biāo)準(zhǔn)中是強(qiáng)制要求的。 TDO:數(shù)據(jù)輸出(Test Data Output),所有要從特定的寄存器中輸出的數(shù)據(jù)都是通過TDO接口一位一位串行輸出的。TDO在標(biāo)準(zhǔn)中是強(qiáng)制要求的。 TRST:JTAG復(fù)位信號(hào)(Test Reset Input),可以用來對(duì)TAP Controller進(jìn)行復(fù)位(初始化)。因?yàn)橥ㄟ^TMS也可以對(duì)TAP Contr

36、oller進(jìn)行復(fù)位(初始化),所以該信號(hào)接口在標(biāo)準(zhǔn)中是可選的,并不是強(qiáng)制要求的。 TAP狀態(tài)機(jī) TAP的狀態(tài)機(jī)如圖所示,總共有16個(gè)狀態(tài)。在這些對(duì)應(yīng)的狀態(tài)中,標(biāo)識(shí)有DR的狀態(tài)是用來訪問數(shù)據(jù)寄存器的,而標(biāo)識(shí)有IR的狀態(tài)是用來訪問指令寄存器的。 2訪問步驟TAP狀態(tài)的轉(zhuǎn)換就是在TCK的驅(qū)動(dòng)下,依靠TMS來控制完成對(duì)指令寄存器和數(shù)據(jù)寄存器的訪問。對(duì)指令寄存器的訪問先于對(duì)數(shù)據(jù)寄存器的訪問,系統(tǒng)上電后,TAP Controller首先進(jìn)入Test-Logic Reset狀態(tài),在TMS的控制下然后依次進(jìn)入Run-Test/Idle、Select-DR-Scan、Select-IR-Scan、Capture-IR、Shift-IR、Exit1-IR、Update-IR,最后回到Run-Test/Idle狀態(tài)。在Capture-IR狀態(tài)中,一個(gè)特定的邏輯序列被加載到指令寄存器中;然后進(jìn)入到Shift-IR狀態(tài)。在Shift-IR狀態(tài)下,通過TCK的驅(qū)動(dòng),可以將一條特定的指令送到指令寄存器中去。每條指令都將確定一條相關(guān)的數(shù)據(jù)寄存器。然后依次進(jìn)入Shift-IR、Exit1-IR、Update-IR狀態(tài)。在Update-IR狀態(tài),剛才輸入到指令寄存器中的指令將用來更新指令寄存器。最后,進(jìn)入到Run-Test/Idle狀態(tài),指令生效,完成對(duì)指令寄存器的訪問。當(dāng)前可以

溫馨提示

  • 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)論