版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第五章基于第五章基于S3C2410的的系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì) (上)(上)2第五章第五章 基于基于S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì) l5.2 最小系統(tǒng)設(shè)計(jì)l5.3 中斷系統(tǒng)設(shè)計(jì)l5.4 DMA設(shè)計(jì)l5.5 I/O接口擴(kuò)展l5.6 AD、DA接口設(shè)計(jì)l5.7 PWM定時(shí)器l5.8 人機(jī)接口設(shè)計(jì)l5.9 通信接口設(shè)計(jì)3 5.1 S3C2410 5.1 S3C2410簡(jiǎn)介簡(jiǎn)介 S3C2410 S3C2410是是SamsungSamsung公司公司推出的推出的16/3216/32位位RISCRISC處理器,主要處理器,主要面向手持設(shè)備以及高性價(jià)比、低功耗的應(yīng)用。面向手持設(shè)備以及高性價(jià)比、
2、低功耗的應(yīng)用。 CPUCPU內(nèi)核采用內(nèi)核采用的是的是ARMARM公司設(shè)計(jì)的公司設(shè)計(jì)的16/3216/32位位ARM920T RISCARM920T RISC處理器處理器。 S3C2410AS3C2410A提供一組完整的系統(tǒng)外圍設(shè)備:提供一組完整的系統(tǒng)外圍設(shè)備:2 2個(gè)個(gè)USBUSB主設(shè)備接口,主設(shè)備接口,1 1個(gè)個(gè)USBUSB從設(shè)備接從設(shè)備接口;口;4 4通道通道PWMPWM定時(shí)器和定時(shí)器和1 1通道內(nèi)部定時(shí)器;通道內(nèi)部定時(shí)器;看門狗定時(shí)器;看門狗定時(shí)器;117117位通用位通用I/OI/O口和口和2424通道外部中斷源;通道外部中斷源;電源控制模式包括:正常、慢速、空閑電源控制模式包括:正常
3、、慢速、空閑和掉電四種模式;和掉電四種模式; 8 8通道通道1010位位ADCADC和觸摸屏接口;和觸摸屏接口;具有日歷功能的具有日歷功能的RTCRTC;使用使用PLLPLL的片上時(shí)鐘發(fā)生器。的片上時(shí)鐘發(fā)生器。 1.8V/2.0V1.8V/2.0V內(nèi)核供電,內(nèi)核供電,3.3V3.3V存儲(chǔ)器供電,存儲(chǔ)器供電,3.3V3.3V外部外部I/OI/O供電;供電;具有具有16KB16KB的的ICacheICache和和16KB16KB的的DCacheDCache以以及及MMUMMU;外部存儲(chǔ)器控制器;外部存儲(chǔ)器控制器;LCDLCD控制器提供控制器提供1 1通道通道LCDLCD專用專用DMADMA;4 4
4、通道通道DMADMA并有外部請(qǐng)求引腳;并有外部請(qǐng)求引腳;3 3通道通道UARTUART和和2 2通道通道SPISPI;1 1通道多主機(jī)通道多主機(jī)IICIIC總線和總線和1 1通道通道IISIIS總線控總線控制器;制器;SDSD主接口版本主接口版本1.01.0和和MMCMMC卡協(xié)議卡協(xié)議2.112.11兼兼容版;容版;4S3C2410S3C2410結(jié)構(gòu)框圖結(jié)構(gòu)框圖 5 S3C2410X Pin Assignments (272-FBGA) S3C2410X Pin Assignments (272-FBGA)6789101112131415第五章第五章 基于基于S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)
5、硬件設(shè)計(jì) l5.1 S3C2410 簡(jiǎn)介l5.3 中斷系統(tǒng)設(shè)計(jì)l5.4 DMA設(shè)計(jì)l5.5 I/O接口擴(kuò)展l5.6 AD、DA接口設(shè)計(jì)l5.7 PWM定時(shí)器l5.8 人機(jī)接口設(shè)計(jì)l5.9 通信接口設(shè)計(jì)16 5.2 .2 什么是最小系統(tǒng)什么是最小系統(tǒng) 嵌入式微處理器芯片自己是不能獨(dú)立工作的,需要嵌入式微處理器芯片自己是不能獨(dú)立工作的,需要一些必要的外圍元器件給它提供基本的工作條件。一些必要的外圍元器件給它提供基本的工作條件。一個(gè)一個(gè) ARM 最小系統(tǒng)一般包括:最小系統(tǒng)一般包括:(1) ARM 微處理器芯片微處理器芯片(2) 電源電路、復(fù)位電路,晶振電路,電源電路、復(fù)位電路,晶振電路, (3) 存
6、儲(chǔ)器(存儲(chǔ)器( FLASH 和和 SDRAM ),), (4) UART(RS232及以太網(wǎng))接口電路。及以太網(wǎng))接口電路。 (5) JTAG 調(diào)試接口。調(diào)試接口。17最小系統(tǒng)結(jié)構(gòu)框圖最小系統(tǒng)結(jié)構(gòu)框圖最小系統(tǒng)例板最小系統(tǒng)例板S3C2410晶振系統(tǒng)擴(kuò)展接口電源復(fù)位電路串行接口JTAG接口Flash存儲(chǔ)器SDRAM18 微處理器:S3C2410是系統(tǒng)工作和控制中心; 電源電路:為S3C2410核心部分提供所需的1.80V工作電壓,為部分外圍芯片提供3.0V的工作電壓; 晶振電路:為微處理器及其他電路提供工作時(shí)鐘,及系統(tǒng)中S3C2410芯片使用32KHz或32.768KHz無(wú)源晶振;Flash存儲(chǔ)器
7、:存放嵌入式操作系統(tǒng)、用戶應(yīng)用程序或者其他在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等;S3C2410晶振系統(tǒng)擴(kuò)展接口電源復(fù)位電路串行接口JTAG接口Flash存儲(chǔ)器SDRAM最小系統(tǒng)結(jié)構(gòu)框圖最小系統(tǒng)結(jié)構(gòu)框圖19SDRAM:作為系統(tǒng)運(yùn)行時(shí)的主要區(qū)域,系統(tǒng)及用戶數(shù)據(jù)、堆棧均位于該存儲(chǔ)器中;串行接口:用于系統(tǒng)與其他應(yīng)用系統(tǒng)的短距離雙向串行通信和構(gòu)建交叉編譯環(huán)境; JTAG接口:對(duì)芯片內(nèi)部所有部件進(jìn)行訪問(wèn),通過(guò)該接口對(duì)系統(tǒng)進(jìn)行調(diào)試、編程等;系統(tǒng)總線擴(kuò)展:引出地址總線、數(shù)據(jù)總線和必須的控制總線,便于用戶根據(jù)自身的特定需求,擴(kuò)展外圍電路。S3C2410晶振系統(tǒng)擴(kuò)展接口電源復(fù)位電路串行接口JTAG接口Flash存儲(chǔ)器
8、SDRAM最小系統(tǒng)結(jié)構(gòu)框圖最小系統(tǒng)結(jié)構(gòu)框圖20 在嵌入式系統(tǒng)中,最小系統(tǒng)雖然簡(jiǎn)單,但是在嵌入式系統(tǒng)中,最小系統(tǒng)雖然簡(jiǎn)單,但是作為整個(gè)系統(tǒng)正常運(yùn)行的基本條件,因此其穩(wěn)作為整個(gè)系統(tǒng)正常運(yùn)行的基本條件,因此其穩(wěn)定可靠的運(yùn)行是至關(guān)重要的。因此,在嵌入式定可靠的運(yùn)行是至關(guān)重要的。因此,在嵌入式系統(tǒng)中,往往將最小系統(tǒng)制成一個(gè)核心板,其系統(tǒng)中,往往將最小系統(tǒng)制成一個(gè)核心板,其他的各種接口和外圍擴(kuò)展設(shè)備都制成一個(gè)接口他的各種接口和外圍擴(kuò)展設(shè)備都制成一個(gè)接口板來(lái)組成一個(gè)系統(tǒng)。板來(lái)組成一個(gè)系統(tǒng)。2122 5.2.1 .2.1 時(shí)鐘和功率管理時(shí)鐘和功率管理 S3C2410A的時(shí)鐘控制邏輯能夠產(chǎn)生系統(tǒng)所需要的時(shí)鐘,的
9、時(shí)鐘控制邏輯能夠產(chǎn)生系統(tǒng)所需要的時(shí)鐘,包括包括 CPU的的FCLK,AHB總線接口的總線接口的HCLK,和,和 APB總線接總線接口的口的PCLK。 S3C2410A有兩個(gè)有兩個(gè)PLL(MPLL和和UPLL) ,一個(gè),一個(gè)MPLL用用于于FCLK,HCLK,PCLK,另一個(gè),另一個(gè)UPLL用于用于USB模塊模塊(48MHZ)。時(shí)鐘控制邏輯能夠由軟件控制不將)。時(shí)鐘控制邏輯能夠由軟件控制不將 PLL連接到連接到各接口模塊以降低處理器時(shí)鐘頻率,從而降低功耗。各接口模塊以降低處理器時(shí)鐘頻率,從而降低功耗。23 FCLK用于 ARM920T; HCLK用于 AHB總線(包括 ARM920T,存儲(chǔ)控制器
10、,中斷控制器,LCD控制器,DMA和 USB主機(jī)); PCLK 用于APB總線 (包括外設(shè)如WDT,IIS,I2C,PWM, PWM,TIMER, MMC, ADC, UART, GPIO, RTC, SPI)。 24 時(shí)鐘架構(gòu)的方塊圖如下圖所示:主時(shí)鐘源由一個(gè)外部時(shí)鐘架構(gòu)的方塊圖如下圖所示:主時(shí)鐘源由一個(gè)外部晶振或者外部時(shí)鐘產(chǎn)生。時(shí)鐘發(fā)生器包括連接到一個(gè)外部晶振或者外部時(shí)鐘產(chǎn)生。時(shí)鐘發(fā)生器包括連接到一個(gè)外部晶振的振蕩器和兩個(gè)晶振的振蕩器和兩個(gè) PLL(MPLL和和UPLL)用于產(chǎn)生系)用于產(chǎn)生系統(tǒng)所需的高頻時(shí)鐘。統(tǒng)所需的高頻時(shí)鐘。 時(shí)鐘源選擇時(shí)鐘源選擇 下表 描述了模式控制引腳(OM3和OM
11、2)和選擇時(shí)鐘源之間的對(duì)應(yīng)關(guān)系。OM3:2的狀態(tài)由OM3和 OM2引腳的狀態(tài)在 nRESET的上升沿鎖存得到。25262、鎖相環(huán)、鎖相環(huán) PLL 位于時(shí)鐘信號(hào)發(fā)生器的內(nèi)部 MPLL 用于將輸出信號(hào)和相關(guān)輸入信號(hào)在相位和頻率上同步起來(lái)。它包括如下圖所示的一些基本模塊:2728PLL的工作原理:的工作原理:29PLL控制寄存器控制寄存器(MPLLCON/UPLLCON) USB時(shí)鐘控制時(shí)鐘控制 USB 主機(jī)接口和 USB 設(shè)備接口需要 48MHz 的時(shí)鐘。在 S3C2410 中,是通過(guò)UPLL來(lái)產(chǎn)生這一時(shí)鐘的,UCLK只有在 UPLL配置好后才會(huì)生效。 0 x5C=920 x28=4030PLL選
12、擇表選擇表31注:注: 1、默認(rèn)值下、默認(rèn)值下MPLL為為Fin的的10倍頻,倍頻,UPLL為為Fin的的4倍頻倍頻 1、盡管可以根據(jù)公式設(shè)置、盡管可以根據(jù)公式設(shè)置 PLL,但是推薦僅使用,但是推薦僅使用 推薦推薦表里面的值。表里面的值。 2、如果要同時(shí)設(shè)置、如果要同時(shí)設(shè)置 UPLL 和和 MPLL,請(qǐng)先設(shè)置,請(qǐng)先設(shè)置 UPLL,然后設(shè)置然后設(shè)置 MPLL,且至少要間隔,且至少要間隔7個(gè)時(shí)鐘周期。個(gè)時(shí)鐘周期。 32上電復(fù)位(上電復(fù)位(XTIpll)時(shí)鐘鎖定過(guò)程)時(shí)鐘鎖定過(guò)程 下圖顯示了上電復(fù)位時(shí)的時(shí)鐘行為。 晶振在幾毫秒內(nèi)開(kāi)始振蕩。當(dāng) OSC 時(shí)鐘穩(wěn)定后,PLL 根據(jù)默認(rèn) PLL 設(shè)置開(kāi)始生效
13、,但是通常這個(gè)時(shí)候是不穩(wěn)定的,因此。FCLK在軟件配置好 PLLCON之后鎖定一段時(shí)間后連接到Mpll。33正常情況下改變正常情況下改變 MPLL設(shè)置設(shè)置 正常模式下,用戶可以通過(guò)寫(xiě) P/M/S的值來(lái)改變 FCLK的頻率,此時(shí)將會(huì)自動(dòng)插入一段時(shí)間延遲,在這段延遲內(nèi) FCLK將停止,其時(shí)序如下圖所示:34FCLK,HCLK,PCLK頻率確定頻率確定 S3C2410支持三者之間的比率可選,這個(gè)比率是由CLKDIVN寄存器的 HDIVN和 PDIVN決定的。 設(shè)置好 PMS 的值后,需要設(shè)置 CLKDIVN 寄存器。CLKDIVN 寄存器的值將在PLL鎖定時(shí)間之后生效,在復(fù)位和改變功率模式后也是有效
14、的。3536 S3C2410A有各種針對(duì)不同任務(wù)提供的最佳功率管理策略,功率管理模塊能夠使系統(tǒng)工作在如下 4種模式:正常模式正常模式,低速模式低速模式,空閑模式空閑模式和掉電模式掉電模式。 在 S3C2410 中,功率管理模塊通過(guò)軟件控制系統(tǒng)功率管理模塊通過(guò)軟件控制系統(tǒng)時(shí)鐘來(lái)達(dá)到降低功耗的目的時(shí)鐘來(lái)達(dá)到降低功耗的目的。這些策略牽涉到 PLL,時(shí)鐘控制邏輯和喚醒信號(hào)。圖顯示了 S3C2410的時(shí)鐘分配。3738 正常模式下,所有的外設(shè)和基本的功能模塊,包括功率管理模塊,CPU 核心,總線控制器,存儲(chǔ)控制器,中斷控制器,DMA 和外部控制器都可以完全操作。但是除了基本的模塊之外,其他模塊都可以通過(guò)
15、關(guān)閉其時(shí)鐘的方法來(lái)降低功耗。 空閑模式下,除了總線控制器、存儲(chǔ)控制器、中斷控制器、功率管理模塊以外的 CPU 時(shí)鐘都被停止。EINT23:0、RTC 中斷或者其他中斷都可以將 CPU從空閑模式下喚醒。39 低速模式通過(guò)降低低速模式通過(guò)降低 FCLK和關(guān)閉和關(guān)閉 PLL來(lái)實(shí)現(xiàn)降低功來(lái)實(shí)現(xiàn)降低功耗。耗。此時(shí) FCLK是外部時(shí)鐘(XTIpll or EXTCLK)的 n 分頻。分頻數(shù)由 CLKSLOW 寄存器的 SLOW_VAL 和CLKDIVN寄存器決定。 在低速模式下,PLL 是關(guān)閉的。當(dāng)用戶需要從低速模式切換到正常模式時(shí),PLL 需要一個(gè)時(shí)鐘穩(wěn)定時(shí)間(PLL 鎖定時(shí)間)。PLL 穩(wěn)定時(shí)間是由內(nèi)
16、部邏輯自動(dòng)插入的,大概需要150us,在這段時(shí)間內(nèi),F(xiàn)CLK還是使用低速模式下的時(shí)鐘。 40低速時(shí)鐘控制寄存器低速時(shí)鐘控制寄存器(CLKSLOW) 41時(shí)鐘控制寄存器時(shí)鐘控制寄存器 CLKCON 42 功率管理模塊斷開(kāi)內(nèi)部電源功率管理模塊斷開(kāi)內(nèi)部電源。因此除CPU和喚醒邏輯單元以外的外設(shè)都不會(huì)產(chǎn)生功耗。要執(zhí)行掉電模式需要有兩個(gè)獨(dú)立的電源,其中一個(gè)給喚醒邏輯單元供電,另一個(gè)給包括 CPU在內(nèi)的其他模塊供電。在掉電模式下,第二個(gè)電源將被關(guān)掉。掉電模式可以由外部中斷 EINT15:0或 RTC中斷喚醒。43電源電路設(shè)計(jì)電源電路設(shè)計(jì)DC-DC轉(zhuǎn)換芯片轉(zhuǎn)換芯片q有很多有很多DC-DCDC-DC轉(zhuǎn)換器可完
17、成到轉(zhuǎn)換器可完成到3.3V3.3V的轉(zhuǎn)換,如的轉(zhuǎn)換,如Linear Linear TechnologyTechnology的的LT108XLT108X系列。常見(jiàn)的型號(hào)和對(duì)應(yīng)的電流輸出系列。常見(jiàn)的型號(hào)和對(duì)應(yīng)的電流輸出如下:如下:LT1083 LT1083 7.5A7.5ALT1084 LT1084 5A5ALT1085 LT1085 3A3ALT1086 LT1086 1.5A1.5Aq有很多有很多DC-DCDC-DC轉(zhuǎn)換器可完成到轉(zhuǎn)換器可完成到2.5V2.5V的轉(zhuǎn)換,常用的如的轉(zhuǎn)換,常用的如Linear TechnologyLinear Technology的的LT1761LT1761。44電
18、源電路設(shè)計(jì)電源電路設(shè)計(jì)3.3Vq需要使用需要使用3.3V3.3V的直流穩(wěn)壓電源,系統(tǒng)電源電路如下圖的直流穩(wěn)壓電源,系統(tǒng)電源電路如下圖所示:所示:DC 7.5V 2A直流電源整流、定向撥動(dòng)開(kāi)關(guān)DC-DC轉(zhuǎn)換芯片LT1086濾波電路45電源電路設(shè)計(jì)電源電路設(shè)計(jì)2.5Vq需要使用需要使用2.5V2.5V的直流穩(wěn)壓電源,系統(tǒng)電源電路如下圖的直流穩(wěn)壓電源,系統(tǒng)電源電路如下圖所示:所示:濾波電路DC3.3V464748 5.2.2 .2.2 復(fù)位復(fù)位 S3C2410的nRESET管腳上,持續(xù)持續(xù)4個(gè)個(gè)FCLK以上以上的低電平,將使其進(jìn)入復(fù)位狀態(tài)。 S3C2410的復(fù)位電路一般由復(fù)位芯片來(lái)實(shí)現(xiàn)。MAX811
19、或IMP811芯片就是常用的復(fù)位芯片,它只有4個(gè)管腳。利用該芯片可以同時(shí)上電復(fù)位和手動(dòng)復(fù)位,其復(fù)位時(shí)間不小于140ms。其引腳分布如下:49引腳說(shuō)明引腳說(shuō)明50 當(dāng)Vcc信號(hào)低于門限電壓時(shí),IMP811的復(fù)位信號(hào)為低電平,而IMP812的復(fù)位信號(hào)則為高電平。并且在Vcc已經(jīng)升至該門限之上后,保持這個(gè)信號(hào)最少140ms。 MR端的邏輯低電平將IMP811的RESET端設(shè)為低電平,而IMP812的復(fù)位則設(shè)為高電平。MR在內(nèi)部通過(guò)一個(gè)20k電阻被拉至高電平并可由TTL/CMOS門或集電極/漏極開(kāi)路輸出驅(qū)動(dòng)。MR不用時(shí)可為開(kāi)路。 MR可用一個(gè)常開(kāi)開(kāi)關(guān)連接到地而無(wú)需外部去抖動(dòng)電路。51其應(yīng)用電路如下:其
20、應(yīng)用電路如下:IMP811有六種電壓門限以支持3V至5V系統(tǒng):52 5.2.3 JTAG.2.3 JTAG JTAG(Joint Test Action Group,聯(lián)合測(cè)試行動(dòng)小組1985 年制定的檢測(cè)PCB 測(cè)試的一個(gè)標(biāo)準(zhǔn), 1990 年被修改后成為IEEE 的一個(gè)標(biāo)準(zhǔn), 即IEEE1149.1-1990。IEEE 1149.1 標(biāo)準(zhǔn)就是由JTAG 這個(gè)組織最初提出的,最終由IEEE 批準(zhǔn)并且標(biāo)準(zhǔn)化的。所以,這個(gè)IEEE 1149.1 這個(gè)標(biāo)準(zhǔn)一般也俗稱JTAG 調(diào)試標(biāo)準(zhǔn)。 一個(gè)含有一個(gè)含有JTAG Debug接口模塊的接口模塊的CPU,只要時(shí)鐘正常,就可,只要時(shí)鐘正常,就可以通過(guò)以通過(guò)J
21、TAG接口訪問(wèn)接口訪問(wèn)CPU的內(nèi)部寄存器和掛在的內(nèi)部寄存器和掛在CPU總線上的設(shè)備總線上的設(shè)備,如FLASH,RAM,SOC內(nèi)置模塊的寄存器,像UART,Timers,GPIO等等的寄存器 在理論上,通過(guò)JTAG可以訪問(wèn)CPU總線上的所有設(shè)備,所以應(yīng)該可以寫(xiě)FLASH,但是FLASH寫(xiě)入方式和RAM大不相同,需要特殊的命令,而且不同的FLASH擦除,編程命令不同,而且塊的大小,數(shù)量也不同,很難提供這一項(xiàng)功能。所以一般調(diào)試軟件像AXD等不提供寫(xiě)Flash功能,或者僅支持少量幾種Flash。 53 接口的主要信號(hào)接口就是這 5 個(gè)。下面,我先分別介紹這個(gè) 5 個(gè)接口信號(hào)及其作用。 Test Clo
22、ck Input (TCK) TCK 為 TAP 的操作提供了一個(gè)獨(dú)立的、基本的時(shí)鐘信號(hào),TAP 的所有操作都是通過(guò)這個(gè)時(shí)鐘信號(hào)來(lái)驅(qū)動(dòng)的。TCK在 IEEE 1149.1 標(biāo)準(zhǔn)里是強(qiáng)制要求的。 Test Mode Selection Input (TMS) TMS 信號(hào)用來(lái)控制 TAP 狀態(tài)機(jī)的轉(zhuǎn)換。通過(guò) TMS 信號(hào),可以控制 TAP 在不同的狀態(tài)間相互轉(zhuǎn)換。TMS信號(hào)在 TCK的上升沿有效。TMS在 IEEE 1149.1 標(biāo)準(zhǔn)里是強(qiáng)制要求的。 54Test Data Input (TDI) TDI是數(shù)據(jù)輸入的接口。 所有要輸入到特定寄存器的數(shù)據(jù)都是通過(guò) TDI 接口一位一位串行輸入的(由
23、 TCK驅(qū)動(dòng)) 。TDI在 IEEE 1149.1 標(biāo)準(zhǔn)里是強(qiáng)制要求的。 Test Data Output (TDO) TDO是數(shù)據(jù)輸出的接口。所有要從特定的寄存器中輸出的數(shù)據(jù)都是通過(guò) TDO接口一位一位串行輸出的(由 TCK驅(qū)動(dòng)) 。TDO在 IEEE 1149.1 標(biāo)準(zhǔn)里是強(qiáng)制要求的。 Test Reset Input (TRST) TRST可以用來(lái)對(duì)TAP Controller進(jìn)行復(fù)位 (初始化) 。 不過(guò)這個(gè)信號(hào)接口在IEEE 1149.1標(biāo)準(zhǔn)里是可選的,并不是強(qiáng)制要求的。因?yàn)橥ㄟ^(guò) TMS也可以對(duì) TAP Controller進(jìn)行復(fù)位(初始化) 。5556 5.2.4 .2.4 存儲(chǔ)器
24、擴(kuò)展存儲(chǔ)器擴(kuò)展 S3C2410A S3C2410A的存儲(chǔ)器控制器提供訪問(wèn)外部存儲(chǔ)器所需的存儲(chǔ)器控制器提供訪問(wèn)外部存儲(chǔ)器所需要的存儲(chǔ)器控制信號(hào)。要的存儲(chǔ)器控制信號(hào)。 支持小支持小/ /大端(通過(guò)軟件選擇)大端(通過(guò)軟件選擇) 地址空間:每地址空間:每bankbank有有128M128M字節(jié)(總共有字節(jié)(總共有8 8個(gè)個(gè)banksbanks,共,共1G1G字節(jié)字節(jié)) 除除bank0bank0(只能是(只能是16/3216/32位寬)之外,其他位寬)之外,其他bankbank都具有可編程的都具有可編程的訪問(wèn)大?。梢允窃L問(wèn)大?。梢允?/16/328/16/32位寬)位寬) 總共有總共有8 8個(gè)存儲(chǔ)
25、器個(gè)存儲(chǔ)器banksbanks(bank0bank7bank0bank7)其中其中6 6個(gè)個(gè)banksbanks用于用于ROMROM,SRAMSRAM等等剩下剩下2 2個(gè)個(gè)banksbanks用于用于ROMROM,SRAMSRAM,SDRAMSDRAM等等 7 7個(gè)固定的存儲(chǔ)器個(gè)固定的存儲(chǔ)器bankbank(bank0bank6bank0bank6)起始地址)起始地址 最后一個(gè)最后一個(gè)bankbank(bank7bank7)的起始地址是可調(diào)整的)的起始地址是可調(diào)整的 最后兩個(gè)最后兩個(gè)bankbank(bank6bank7bank6bank7)的大小是可編程的)的大小是可編程的 所有存儲(chǔ)器所有存
26、儲(chǔ)器bankbank的訪問(wèn)周期都是可編程的的訪問(wèn)周期都是可編程的 總線訪問(wèn)周期可以通過(guò)插入外部等待來(lái)延長(zhǎng)總線訪問(wèn)周期可以通過(guò)插入外部等待來(lái)延長(zhǎng) 支持支持SDRAMSDRAM的自刷新和掉電模式的自刷新和掉電模式 特性特性 57存儲(chǔ)器映射存儲(chǔ)器映射 58 BOOT ROM 在地址上位于ARM 處理器的 區(qū),它可具有多種,這個(gè)寬度是可以通過(guò)硬件設(shè)定的,即,如下表所示:59nWAIT引腳操作引腳操作 在在S3C2410AS3C2410A的存儲(chǔ)器訪問(wèn)期間,的存儲(chǔ)器訪問(wèn)期間,nWAITnWAIT信號(hào)有效(低電信號(hào)有效(低電平)將使得其訪問(wèn)周期相應(yīng)(平)將使得其訪問(wèn)周期相應(yīng)(nOEnOE或者或者newnew
27、信號(hào)有效時(shí)間)信號(hào)有效時(shí)間)的延長(zhǎng)。的延長(zhǎng)。 60nXBREQ/nXBACK 當(dāng)當(dāng)nXBREQnXBREQ信號(hào)有效(低電平)時(shí),信號(hào)有效(低電平)時(shí),S3C2410AS3C2410A將通過(guò)使將通過(guò)使nXBACKnXBACK信號(hào)有效作出響應(yīng)。同時(shí),將使地址數(shù)據(jù)總線和存儲(chǔ)器控制信號(hào)信號(hào)有效作出響應(yīng)。同時(shí),將使地址數(shù)據(jù)總線和存儲(chǔ)器控制信號(hào)處于高阻(處于高阻(Hi-ZHi-Z)狀態(tài),直到)狀態(tài),直到nXBREQ nXBREQ 信號(hào)無(wú)效為止。信號(hào)無(wú)效為止。 61總線寬度和等待控制寄存器總線寬度和等待控制寄存器BWSCON6263ROM Memory Interface Examples8-bit ROM
28、 8-bit ROM 2648-bit ROM 416-bit ROM65SRAM Memory Interface Examples16-bit SRAM16-bit SRAM 266SDRAM Memory Interface Examples16-bit SDRAM(8MB: 1Mb 16 4banks)16-bit SDRAM (16MB: 1Mb 16 4banks 2ea)67SDRAM 電路圖電路圖68BANK控制寄存器控制寄存器(BANKCONn: nGCS0-nGCS5)69707172BANK控制寄存器控制寄存器(BANKCONn: nGCS6-nGCS7)73 5.2.5
29、 NAND Flash.2.5 NAND Flash和和NOR FlashNOR Flash NOR和NAND是現(xiàn)在市場(chǎng)上兩種主要的非易失閃存技術(shù)。Intel于1988年首先開(kāi)發(fā)出NOR flash技術(shù),徹底改變了原先由EPROM和EEPROM一統(tǒng)天下的局面。緊接著,1989年,東芝公司發(fā)表了NAND flash結(jié)構(gòu),強(qiáng)調(diào)降低每比特的成本,更高的性能,并且象磁盤一樣可以通過(guò)接口輕松升級(jí)。 NOR的特點(diǎn)是芯片內(nèi)執(zhí)行的特點(diǎn)是芯片內(nèi)執(zhí)行(XIP, eXecute In Place),這樣應(yīng)用程序可以直接在flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。NOR的傳輸效率很高傳輸效率很高,在14MB
30、的小容量時(shí)具有很高的成本效益,但是很低的寫(xiě)入和擦除速度很低的寫(xiě)入和擦除速度大大影響了它的性能。 NAND結(jié)構(gòu)能提供極高的單元密度極高的單元密度,可以達(dá)到高存儲(chǔ)密度,并且寫(xiě)入和擦除的速寫(xiě)入和擦除的速度也很快度也很快。應(yīng)用NAND的困難在于flash的管理和。 Flash閃存是非易失存儲(chǔ)器,可以對(duì)稱為塊的存儲(chǔ)器單元塊進(jìn)行擦寫(xiě)和再編程。NAND器件執(zhí)行擦除操作是十分簡(jiǎn)單的,而NOR則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫(xiě)為0。 執(zhí)行擦除時(shí)塊尺寸的不同進(jìn)一步拉大了NOR和NADN之間的性能差距。 74NAND Flash和和NOR Flash的比較的比較 NOR的讀速度比NAND稍快一些。 NAN
31、D的寫(xiě)入速度比NOR快很多。 NAND的4ms擦除速度遠(yuǎn)比NOR的5s快。 大多數(shù)寫(xiě)入操作需要先進(jìn)行擦除操作。 NAND的擦除單元更小,相應(yīng)的擦除電路更少 NOR flash帶有SRAM接口,有足夠的地址引腳來(lái)尋址,可以很容易地存取其內(nèi)部的每一個(gè)字節(jié)。 NAND器件使用復(fù)雜的I/O口來(lái)串行地存取數(shù)據(jù),各個(gè)產(chǎn)品或廠商的方法可能各不相同。8個(gè)引腳用來(lái)傳送控制、地址和數(shù)據(jù)信息。 NAND讀和寫(xiě)操作采用512字節(jié)的塊,這一點(diǎn)有點(diǎn)像硬盤管理此類操作,很自然地,基于NAND的存儲(chǔ)器就可以取代硬盤或其他塊設(shè)備。75 NAND flash的單元尺寸幾乎是NOR器件的一半,由于生產(chǎn)過(guò)程更為簡(jiǎn)單,NAND結(jié)構(gòu)可以
32、在給定的模具尺寸內(nèi)提供更高的容量,也就相應(yīng)地降低了價(jià)格。 NOR flash占據(jù)了容量為116MB閃存市場(chǎng)的大部分,而NAND flash只是用在8128MB的產(chǎn)品當(dāng)中,這也說(shuō)明介質(zhì)中,NAND適合于數(shù)據(jù)存儲(chǔ)適合于數(shù)據(jù)存儲(chǔ),NAND在CompactFlash、Secure Digital、PC Cards和MMC存儲(chǔ)卡市場(chǎng)上所占份額最大。 采用flahs介質(zhì)時(shí)一個(gè)需要重點(diǎn)考慮的問(wèn)題是可用性。對(duì)于需要擴(kuò)展MTBF的系統(tǒng)來(lái)說(shuō),F(xiàn)lash是非常合適的存儲(chǔ)方案??梢詮膲勖?耐用性)、位交換和壞塊處理三個(gè)方面來(lái)比較NOR和NAND的可用性。 在NAND閃存中每個(gè)塊的最大擦寫(xiě)次數(shù)是一百萬(wàn)次閃存中每個(gè)塊的最
33、大擦寫(xiě)次數(shù)是一百萬(wàn)次,而NOR的擦的擦寫(xiě)次數(shù)是十萬(wàn)次寫(xiě)次數(shù)是十萬(wàn)次。NAND存儲(chǔ)器除了具有10比1的塊擦除周期優(yōu)勢(shì),典型的NAND塊尺寸要比NOR器件小8倍,每個(gè)NAND存儲(chǔ)器塊在給定的時(shí)間內(nèi)的刪除次數(shù)要少一些。 76 所有flash器件都受位交換現(xiàn)象的困擾。在某些情況下(很少見(jiàn),NAND發(fā)生的次數(shù)要比NOR多),一個(gè)比特位會(huì)發(fā)生反轉(zhuǎn)或被報(bào)告反轉(zhuǎn)一個(gè)比特位會(huì)發(fā)生反轉(zhuǎn)或被報(bào)告反轉(zhuǎn)了。 一位的變化可能不很明顯,但是如果發(fā)生在一個(gè)關(guān)鍵文件上,這個(gè)小小的故障可能導(dǎo)致系統(tǒng)停機(jī)。如果只是報(bào)告有問(wèn)題,多讀幾次就可能解決了。 當(dāng)然,如果這個(gè)位真的改變了,就必須采用錯(cuò)誤探測(cè)/錯(cuò)誤更正(EDC/ECC)算法。位反
34、轉(zhuǎn)的問(wèn)題更多見(jiàn)于位反轉(zhuǎn)的問(wèn)題更多見(jiàn)于NAND閃存,閃存,NAND的供應(yīng)商建議使用的供應(yīng)商建議使用NAND閃存的時(shí)候,同時(shí)使用閃存的時(shí)候,同時(shí)使用EDC/ECC算法算法。 這個(gè)問(wèn)題對(duì)于用NAND存儲(chǔ)多媒體信息時(shí)倒不是致命的。當(dāng)然,如果用本地存儲(chǔ)設(shè)備來(lái)存儲(chǔ)操作系統(tǒng)、配置文件或其他敏感信息時(shí),必須使用EDC/ECC系統(tǒng)以確??捎眯浴?NAND器件中的壞塊是隨機(jī)分布的器件中的壞塊是隨機(jī)分布的。以前也曾有過(guò)消除壞塊的努力,但發(fā)現(xiàn)成品率太低,代價(jià)太高,根本不劃算。 NAND器件需要對(duì)介質(zhì)進(jìn)行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標(biāo)記為不可用。在已制成的器件中,如果通過(guò)可用的方法不能進(jìn)行這項(xiàng)處理,將導(dǎo)致高故障率。
35、77可以非常直接地使用基于NOR的閃存,可以像其他存儲(chǔ)器那樣連接,并可以在上面直接運(yùn)行代碼。 在NAND器件上進(jìn)行同樣操作時(shí),通常需要驅(qū)動(dòng)程序,也就是內(nèi)存技術(shù)驅(qū)動(dòng)程序通常需要驅(qū)動(dòng)程序,也就是內(nèi)存技術(shù)驅(qū)動(dòng)程序(MTD),NAND和NOR器件在進(jìn)行寫(xiě)入和擦除操作時(shí)都需要MTD。 使用NOR器件時(shí)所需要的MTD要相對(duì)少一些,許多廠商都提供用于NOR器件的更高級(jí)軟件。 驅(qū)動(dòng)還用于對(duì)DiskOnChip產(chǎn)品進(jìn)行仿真和NAND閃存的管理,包括糾錯(cuò)、壞塊處理和損耗平衡。 78lNor Flash 帶有SRAM接口,有足夠的地址引腳,可以很容易的對(duì)存儲(chǔ)器內(nèi)部的存儲(chǔ)單元進(jìn)行直接尋址。在實(shí)際的系統(tǒng)中,可以根據(jù)需要
36、選擇ARM處理器與Nor Flash的連接方式。下圖給出了嵌入式最小系統(tǒng)在包含兩塊Nor Flash的情況下,ARM處理器與Nor Flash兩種不同的連接方式。 vARMARM處理器與處理器與NOR FlashNOR Flash的接口的接口 Nor Flash 接口方式 79l(1)雙Flash獨(dú)立片選 該方式是把兩個(gè)該方式是把兩個(gè)NorNor FlashFlash芯片各自作為一個(gè)獨(dú)立的單元進(jìn)芯片各自作為一個(gè)獨(dú)立的單元進(jìn)行處理。根據(jù)不同的應(yīng)用需要,可以在一塊行處理。根據(jù)不同的應(yīng)用需要,可以在一塊FlashFlash中存放啟動(dòng)中存放啟動(dòng)代碼,而在另一塊代碼,而在另一塊FlashFlash中建立
37、文件系統(tǒng),存放應(yīng)用代碼。該中建立文件系統(tǒng),存放應(yīng)用代碼。該方式操作方便,易于管理。方式操作方便,易于管理。 l(2)雙Flash統(tǒng)一片選 該方式是把兩個(gè)該方式是把兩個(gè)NorNor FlashFlash芯片合為一個(gè)單元進(jìn)行處理,芯片合為一個(gè)單元進(jìn)行處理,ARMARM處理處理器將它們作為一個(gè)并行的處理單元來(lái)訪問(wèn),本例是將兩個(gè)器將它們作為一個(gè)并行的處理單元來(lái)訪問(wèn),本例是將兩個(gè)8bit8bit的的NorNor FlashFlash芯片芯片SST39VF1601SST39VF1601用作一個(gè)用作一個(gè)16bit16bit單元來(lái)進(jìn)行處理。對(duì)于單元來(lái)進(jìn)行處理。對(duì)于N N(N2N2)塊)塊FlashFlash的
38、連接方式可以此作為參考。的連接方式可以此作為參考。 80NOR FLASH 電路圖電路圖 采用 AMD 公司的 nor flash,型號(hào)為 AM29LV160DB,容量 2Mbyte,兼容 Intel E28F128J3A/16Mbyte。81 5.2.6 .2.6 嵌入式系統(tǒng)的啟動(dòng)架構(gòu)嵌入式系統(tǒng)的啟動(dòng)架構(gòu) 嵌入式系統(tǒng)在啟動(dòng)時(shí),引導(dǎo)代碼、操作系統(tǒng)的運(yùn)行和應(yīng)用程序的加載主要有兩種架構(gòu),一種是直接從Nor Flash啟動(dòng)的架構(gòu),另一種是直接從Nand Flash啟動(dòng)的架構(gòu)。 (1 1)從)從NorNor FlashFlash啟動(dòng)啟動(dòng) Nor Flash具有芯片內(nèi)執(zhí)行(XIP eXecute In
39、Place ) 的特點(diǎn),在嵌入式系統(tǒng)中常做為存放啟動(dòng)代碼的首選。從Nor Flash啟動(dòng)的架構(gòu)又可細(xì)分為只使用Nor Flash的啟動(dòng)架構(gòu)和Nor Flash與Nand Flash配合使用的啟動(dòng)架構(gòu)。下圖 給出了這兩種啟動(dòng)架構(gòu)的原理框圖。 8283 該架構(gòu)充分利用了Nor Flash芯片內(nèi)執(zhí)行的特點(diǎn),可有效提升系統(tǒng)性能。不足在于隨著操作系統(tǒng)和應(yīng)用代碼容量的增加,需要更大容量昂貴的Nor Flash來(lái)支撐。 v單獨(dú)使用單獨(dú)使用NorNor Flash Flash 在該架構(gòu)中,引導(dǎo)代碼、操作系統(tǒng)和應(yīng)用代碼共存于同一塊Nor Flash中。系統(tǒng)上電后,引導(dǎo)代碼首先在Nor Flash中執(zhí)行,然后把操
40、作系統(tǒng)和應(yīng)用代碼加載到速度更高的SDRAM中運(yùn)行。另一種可行的架構(gòu)是,在Nor Flash中執(zhí)行引導(dǎo)代碼和操作系統(tǒng),而只將應(yīng)用代碼加載到SDRAM中執(zhí)行。 84vNorNor FlashFlash和和NandNand FlashFlash配合使用配合使用 Nor Flash的單獨(dú)使用對(duì)于代碼量較大的應(yīng)用程序會(huì)增加產(chǎn)品的成本投入,一種的改進(jìn)的方式是采用Nor Flash 和Nand Flash配合使用的架構(gòu)。在該架構(gòu)中附加了一塊Nand Flash。Nor Flash(2M或4M)中存放啟動(dòng)代碼和操作系統(tǒng)(操作系統(tǒng)可以根據(jù)代碼量的大小選擇存放于Nor Flash或者Nand Flash),而Na
41、nd Flash中存放應(yīng)用代碼,根據(jù)存放的應(yīng)用代碼量的大小可以對(duì)Nand Flash容量做出相應(yīng)的改變。系統(tǒng)上電后,引導(dǎo)代碼直接在Nor Flash中執(zhí)行,把Nand Flash中的操作系統(tǒng)和應(yīng)用代碼加載到速度更高的SDRAM中執(zhí)行。也可以在Nor Flash中執(zhí)行引導(dǎo)代碼和操作系統(tǒng),而只將Nand Flash中的應(yīng)用代碼加載到SDRAM中執(zhí)行。該架構(gòu)是當(dāng)前嵌入式系統(tǒng)中運(yùn)用最廣泛的啟動(dòng)架構(gòu)之一。85(2 2)從)從NandNand FlashFlash啟動(dòng)啟動(dòng) SamSung公司的ARM920T系列處理器S3C2410支持從Nand Flash啟動(dòng)的模式,它的工作原理是將NandFlash中存
42、儲(chǔ)的前4KB代碼裝入一個(gè)稱為Steppingstone(BootSRAM)的地址中,然后開(kāi)始執(zhí)行該段引導(dǎo)代碼,從而完成對(duì)操作系統(tǒng)和應(yīng)用程序的加載。這個(gè)過(guò)程不需要程序干涉,而是由內(nèi)部控制器來(lái)完成的。 需要注意的是:你需要編寫(xiě)一個(gè)長(zhǎng)度小于4K的引導(dǎo)程序,作用是將啟動(dòng)代碼剩余部分拷貝到SDRAM中運(yùn)行(NF地址不是線性的,程序不能直接運(yùn)行,必須拷貝到線性RAM中) ,同時(shí)完成完成S3C2410的核心配置。 86特性特性 u支持讀支持讀/ /擦除擦除/ /編程編程N(yùn)AND FlashNAND Flash存儲(chǔ)器。存儲(chǔ)器。u自動(dòng)啟動(dòng)模式:復(fù)位后,啟動(dòng)代碼被傳送到自動(dòng)啟動(dòng)模式:復(fù)位后,啟動(dòng)代碼被傳送到Ste
43、pping stoneStepping stone中中。傳送完畢后,啟動(dòng)代碼在。傳送完畢后,啟動(dòng)代碼在Stepping stoneStepping stone中執(zhí)行。中執(zhí)行。uNAND FlashNAND Flash啟動(dòng)以后,啟動(dòng)以后,4KB4KB的內(nèi)部的內(nèi)部SRAMSRAM緩沖器緩沖器Stepping Stepping stonestone可以作為其他用途使用??梢宰鳛槠渌猛臼褂?。u具備硬件具備硬件ECCECC(校驗(yàn)碼,(校驗(yàn)碼,Error Correction CodeError Correction Code)生成模塊()生成模塊(硬件生成校驗(yàn)碼,通過(guò)軟件校驗(yàn))。硬件生成校驗(yàn)碼,通過(guò)軟
44、件校驗(yàn))。uNAND FlashNAND Flash控制器不能通過(guò)控制器不能通過(guò)DMADMA訪問(wèn),可以使用訪問(wèn),可以使用LDM/STMLDM/STM指令來(lái)代替指令來(lái)代替DMADMA操作。操作。 5.2.7 S3C2410 NAND Flash.2.7 S3C2410 NAND Flash控制器控制器 相對(duì)于SDRAM 和 NAND flash,NOR flash價(jià)格越來(lái)越高,許多用戶將啟動(dòng)代碼放在NAND flash,而主程序代碼放在SDRAM中。為了支持 NAND flash bootloader, S3C2410X 裝配了NAND flash控制器以及4KB 的內(nèi)部SRAM 緩沖區(qū),這個(gè)緩
45、沖區(qū)叫做 “Steppingstone”。當(dāng)開(kāi)始啟動(dòng)時(shí), NAND flash 的前 4KB將被裝入“Steppingstone” SDRAM ,同時(shí)利用硬件ECC 檢查這些數(shù)據(jù)的有效性,裝入完成之后,開(kāi)始執(zhí)行這些存放于SDRAM中的主程序。87v NAND Flash NAND Flash控制器的結(jié)構(gòu)框圖控制器的結(jié)構(gòu)框圖 88I/O7:0 : Data/Command/Address In/Out Port (shared with the data bus)CLE : Command Latch Enable (Output)ALE : Address Latch Enable (Outp
46、ut)nCE : NAND Flash Chip Enable (Output)nRE : NAND Flash Read Enable (Output)nWE : NAND Flash Write Enable (Output)R/nB: NAND Flash Ready/nBusy (Input)PIN CONFIGURATIONPIN CONFIGURATION89v NAND Flash NAND Flash的工作方式的工作方式 9091v NAND Flash NAND Flash存儲(chǔ)器的時(shí)序存儲(chǔ)器的時(shí)序 92NAND FLASH MEMORY MAPPINGNAND FLASH M
47、EMORY MAPPING93SPECIAL FUNCTION REGISTERSSPECIAL FUNCTION REGISTERS949596vARMARM處理器與處理器與NandNand FlashFlash接口技術(shù)接口技術(shù) lNand Flash接口信號(hào)比較少,地址,數(shù)據(jù)和命令總線復(fù)用。Nand Flash的接口本質(zhì)上是一個(gè)I/O接口,系統(tǒng)對(duì)Nand Flash進(jìn)行數(shù)據(jù)訪問(wèn)的時(shí)候,需要先向Nand Flash發(fā)出相關(guān)命令和參數(shù),然后再進(jìn)行相應(yīng)的數(shù)據(jù)操作。ARM處理器與Nand Flash的連接主要有三種方式,如下圖所示: 97l(1)運(yùn)用GPIO方式 運(yùn)用GPIO管腳方式去控制Nand
48、 Flash的各個(gè)信號(hào),在速度要求相對(duì)較低的時(shí)候,能夠較充分的發(fā)揮NAND設(shè)備的性能。它在滿足NAND設(shè)備時(shí)域需求方面將會(huì)有很大的便利,使得ARM處理器可以很容易的去控制NAND設(shè)備。該方式需要處理器提供充足的GPIO。 l(2)運(yùn)用邏輯運(yùn)算方式進(jìn)行連接 在該方式下,處理器的讀和寫(xiě)使能信號(hào)通過(guò)與片選信號(hào)CS進(jìn)行邏輯運(yùn)算后去驅(qū)動(dòng)NAND設(shè)備對(duì)應(yīng)的讀和寫(xiě)信號(hào)。圖中b例為SamSung公司ARM7TDMI系列處理器S3C44B0與Nand Flash K9F2808U0C的連接方式。 98l(3)直接芯片使能 有些ARM處理器如S3C2410內(nèi)部提供對(duì)NAND設(shè)備的相應(yīng)控制寄存器,通過(guò)控制寄存器可以
49、實(shí)現(xiàn)ARM處理器對(duì)NAND設(shè)備相應(yīng)信號(hào)的驅(qū)動(dòng)。該方式使得ARM處理器與NAND設(shè)備的連接變得簡(jiǎn)單規(guī)范,圖中c例給出了ARM處理器S3C2410與Nand Flash K9F2808U0C的連接方式。 9916Mbyte NAND FLASH,型號(hào)為 K9F2808UOBNAND FLASH 電路圖電路圖100第五章第五章 基于基于S3C2410的系統(tǒng)硬件設(shè)計(jì)的系統(tǒng)硬件設(shè)計(jì) l5.1 S3C2410 簡(jiǎn)介l5.2 最小系統(tǒng)設(shè)計(jì)l5.4 DMA設(shè)計(jì)l5.5 I/O接口擴(kuò)展l5.6 AD、DA接口設(shè)計(jì)l5.7 PWM定時(shí)器l5.8 人機(jī)接口設(shè)計(jì)l5.9 通信接口設(shè)計(jì)101 5.3 5.3 中斷系統(tǒng)設(shè)
50、計(jì)中斷系統(tǒng)設(shè)計(jì)l5.3.1 ARM9的異常事件管理l5.3.2 ARM的中斷原理 l5.3.3 S3C2410A的中斷控制器 l5.3.4 中斷編程實(shí)例1025.3.1 ARM920T的異常事件管理的異常事件管理 ARM920T的異常向量表有兩種存放方式,一種是低端存放(從0 x00000000處開(kāi)始存放),另一種是高端存放(從0 xfff000000處開(kāi)始存放)。 ARM920T能處理有8個(gè)異常,他們分別是:Reset,Undefined instruction,Software Interrupt,Abort (prefetch),Abort (data),Reserved,IRQ,F(xiàn)IQ
51、 ,它們的矢量表是:Address Instruct0 x00000000: b Handle_Reset0 x00000004: b HandleUndef0 x00000008: b HandleSWI0 x0000000C: b HandlePrefetchAbort0 x00000010: b HandleDataAbort0 x00000014: b HandleNotUsed0 x00000018: b HandleIRQ0 x0000001C: b HandleFIQ103l異常矢量表的生成一般由一段匯編程序完成:_start: b Handle_Reset b HandleUn
52、def b HandleSWI b HandlePrefetchAbort b HandleDataAbort b HandleNotUsed b HandleIRQ b HandleFIQ . . other codes . 這部分片段一般出現(xiàn)在一個(gè)名叫“head.s”的匯編文件的里,“b Handle_Reset”這條語(yǔ)句就是系統(tǒng)上電之后運(yùn)行的第一條語(yǔ)句。 104l我們可以看到每條指令占用了4個(gè)字節(jié)。上電后,PC指針會(huì)跳轉(zhuǎn)到Handle_Reset處開(kāi)始運(yùn)行。以后系統(tǒng)每當(dāng)有異常出現(xiàn),則CPU會(huì)根據(jù)異常號(hào),從內(nèi)存的0 x00000000處開(kāi)始查表做相應(yīng)的處理,比如系統(tǒng)觸發(fā)了一個(gè)IRQ異常,I
53、RQ為第6號(hào)異常,則CPU將把PC指向0 x00000018地址(4*6=24=0 x00000018)處運(yùn)行,該地址的指令是跳轉(zhuǎn)到“中斷異常服務(wù)例程”(HandleIRQ)處運(yùn)行。 1053.3.2 ARM ARM的中斷原理的中斷原理lS3C2410共有56個(gè)中斷源,可以產(chǎn)生32個(gè)中斷請(qǐng)求,這些中斷源來(lái)自兩部分:一部分來(lái)自片內(nèi)外設(shè)(如DMA、UART等),一部分來(lái)自于外部引腳。lARM920T內(nèi)核共具有2種類型的中斷模式:FIQ和IRQ。IRQ和FIQ之間的區(qū)別是:對(duì)于FIQ必須盡快處理事件并離開(kāi)這個(gè)模式;為了使FIQ更快,FIQ模式具有更多的私有寄存器。l中斷控制器的角色,就是響應(yīng)來(lái)自片內(nèi)
54、或片外的中斷源的中斷請(qǐng)求,向ARM920T提出FIQ(快速中斷請(qǐng)求)或IRQ(普通中斷請(qǐng)求)的中斷請(qǐng)求,請(qǐng)求內(nèi)核對(duì)該中斷中斷進(jìn)行處理。l 106 S3C2410 S3C2410的的5656個(gè)中斷源個(gè)中斷源 107處理中斷的步驟如下:處理中斷的步驟如下:(1)(1)保存現(xiàn)場(chǎng)。保存當(dāng)前的保存現(xiàn)場(chǎng)。保存當(dāng)前的PCPC值到值到R14R14,保存當(dāng)前的程序運(yùn),保存當(dāng)前的程序運(yùn)行狀態(tài)到行狀態(tài)到SPSRSPSR。(2)(2)模式切換。根據(jù)發(fā)生的中斷類型,進(jìn)入模式切換。根據(jù)發(fā)生的中斷類型,進(jìn)入IRQIRQ模式或模式或FIQFIQ模式。模式。(3)(3)獲取中斷源。以異常向量表保存在低地址處為例,若獲取中斷源。
55、以異常向量表保存在低地址處為例,若是是IRQIRQ中斷,則中斷,則PCPC指針跳到指針跳到0 x180 x18處;若是處;若是FIQFIQ中斷,則跳到中斷,則跳到0 x1C0 x1C處。處。IRQIRQ或或FIQFIQ的異常向量地址處一般保存的是中斷服的異常向量地址處一般保存的是中斷服務(wù)子程序的地址,所以接下來(lái)務(wù)子程序的地址,所以接下來(lái)PCPC指針跳入中斷服務(wù)子程序指針跳入中斷服務(wù)子程序處理中斷。處理中斷。-這些工作都是由硬件自動(dòng)完成這些工作都是由硬件自動(dòng)完成108處理中斷的步驟如下:處理中斷的步驟如下:(4)(4)中斷處理。為各種中斷定義不同的優(yōu)先級(jí)別,并為每中斷處理。為各種中斷定義不同的優(yōu)
56、先級(jí)別,并為每一個(gè)中斷設(shè)置一個(gè)中斷標(biāo)志位。當(dāng)發(fā)生中斷時(shí),通過(guò)判斷一個(gè)中斷設(shè)置一個(gè)中斷標(biāo)志位。當(dāng)發(fā)生中斷時(shí),通過(guò)判斷中斷優(yōu)先級(jí)以及訪問(wèn)中斷標(biāo)志位的狀態(tài)來(lái)識(shí)別到底哪一個(gè)中斷優(yōu)先級(jí)以及訪問(wèn)中斷標(biāo)志位的狀態(tài)來(lái)識(shí)別到底哪一個(gè)中斷發(fā)生了。進(jìn)而調(diào)用相應(yīng)的函數(shù)進(jìn)行中斷處理。中斷發(fā)生了。進(jìn)而調(diào)用相應(yīng)的函數(shù)進(jìn)行中斷處理。(5)(5)中斷返回,恢復(fù)現(xiàn)場(chǎng)。當(dāng)完成中斷服務(wù)子程序后,將中斷返回,恢復(fù)現(xiàn)場(chǎng)。當(dāng)完成中斷服務(wù)子程序后,將SPSRSPSR中保存的程序運(yùn)行狀態(tài)恢復(fù)到中保存的程序運(yùn)行狀態(tài)恢復(fù)到CPSRCPSR中,中,R14R14中保存的被中保存的被中斷程序的地址恢復(fù)到中斷程序的地址恢復(fù)到PCPC中,進(jìn)而繼續(xù)執(zhí)行被中斷
57、的程序中,進(jìn)而繼續(xù)執(zhí)行被中斷的程序- - -這些工作必須由用戶在中斷處理函數(shù)中實(shí)現(xiàn)。這些工作必須由用戶在中斷處理函數(shù)中實(shí)現(xiàn)。 109 5.3.2 S3C2410A 5.3.2 S3C2410A的中斷控制器的中斷控制器 中斷控制器使用的寄存器中斷控制器使用的寄存器110INTMODINTMOD寄存器寄存器 l有效位為32位,每一位與SRCPND中各位相對(duì)應(yīng),它的作用是指定該位相應(yīng)的中斷源處理模式(IRQ還是FIQ)。若某位為0,則該位相對(duì)應(yīng)的中斷按IRQ模式處理,為1則以FIQ模式進(jìn)行處理,該。 111SRCPND/ SUBSRCPNDSRCPND/ SUBSRCPND寄存器寄存器 l這兩個(gè)寄存
58、器在功能上是相同的,它們是中斷源引腳寄存器,在一個(gè)中斷異常處理流程中,中斷信號(hào)傳進(jìn)中斷異常處理模塊后首先遇到的就是SRCPND/ SUBSRCPND,這兩個(gè)寄存器的作用是用于標(biāo)示出哪個(gè)中斷請(qǐng)求被觸發(fā)。lSRCPND的有效位為32,SUBSRCPND 的有效位為11,它們中的每一位分別代表一個(gè)中斷源,每個(gè)位的初始值皆為0。假設(shè)現(xiàn)在系統(tǒng)觸發(fā)了TIMER0中斷,則第10bit將被置1,代表TIMER0中斷被觸發(fā),該中斷請(qǐng)求即將被處理(若該中斷沒(méi)有被屏蔽的話)。兩個(gè)寄存器的各個(gè)位的置兩個(gè)寄存器的各個(gè)位的置1是由相應(yīng)的中斷源自動(dòng)引起是由相應(yīng)的中斷源自動(dòng)引起的,而在中斷服務(wù)程序中必須將其清的,而在中斷服務(wù)
59、程序中必須將其清0,否則,否則CPU將認(rèn)為將認(rèn)為是又一次中斷的到來(lái)。是又一次中斷的到來(lái)。lSRCPND(地址為(地址為0X4A000000)為主中斷源掛起寄存器,SUBSRCPND(地址為(地址為0X4A000018)為副(次)中斷源掛起寄存器 112113SUB SOURCE PENDING (SUBSRCPND) REGISTER114INTMSK/ INTSUBMSK INTMSK/ INTSUBMSK 寄存器寄存器 l中斷屏蔽寄存器 ,INTMSK為主中斷屏蔽寄存器,INTSUBMSK為副中斷屏蔽寄存器。INTMSK有效位為32,INTSUBMSK有效位為11,這兩個(gè)寄存器各個(gè)位與SR
60、CPND和SUBSRCPND分別對(duì)應(yīng)。l它們的作用是決定該位相應(yīng)的中斷請(qǐng)求是否被處理。若某位被設(shè)置為1,則該位相對(duì)應(yīng)的中斷產(chǎn)生后將被忽略(CPU不處理該中斷請(qǐng)求),設(shè)置為0則對(duì)其進(jìn)行處理。l這兩個(gè)寄存器初始化后的值是0 xFFFFFFFF和0 x7FF,既。 115v 優(yōu)先級(jí)生成模塊優(yōu)先級(jí)生成模塊 lCPU某個(gè)時(shí)刻只能對(duì)一個(gè)中斷源進(jìn)行中斷處理,如果現(xiàn)在有3個(gè)中斷同時(shí)發(fā)生了,那CPU要按什么順序處理這個(gè)3個(gè)中斷呢?這正是引入優(yōu)先級(jí)判斷的原因所在,通過(guò)優(yōu)先級(jí)判斷,CPU可以按某種順序逐個(gè)處理中斷請(qǐng)求。3sc2410的優(yōu)先級(jí)判斷分為兩級(jí)。 l如下圖所示,SRCPND寄存器對(duì)應(yīng)的32個(gè)中斷源總共被分為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年二手鋼琴租賃合同(2篇)
- 2025年個(gè)人試用期勞動(dòng)合同樣本(三篇)
- 城市公園碎石配送保障協(xié)議
- 國(guó)際貿(mào)易攪拌車運(yùn)輸協(xié)議
- 化工品物流合同安全范本
- 專業(yè)物流合同模板
- 湖南實(shí)驗(yàn)室裝修合同樣本
- 產(chǎn)業(yè)扶持用地居間協(xié)議模板
- 旅游用地居間合同范本
- 會(huì)議室簡(jiǎn)易改造合同樣本
- 初中英語(yǔ)人教版 八年級(jí)上冊(cè) 單詞默寫(xiě)表 漢譯英
- pcs-9611d-x說(shuō)明書(shū)國(guó)內(nèi)中文標(biāo)準(zhǔn)版
- 無(wú)人機(jī)航拍技術(shù)理論考核試題題庫(kù)及答案
- T∕CMATB 9002-2021 兒童肉類制品通用要求
- 工序勞務(wù)分包管理課件
- 工藝評(píng)審報(bào)告
- 中國(guó)滑雪運(yùn)動(dòng)安全規(guī)范
- 畢業(yè)論文-基于51單片機(jī)的智能LED照明燈的設(shè)計(jì)
- 酒廠食品召回制度
- 中職數(shù)學(xué)基礎(chǔ)模塊上冊(cè)第一章《集合》單元檢測(cè)試習(xí)題及參考答案
- 化學(xué)魯科版必修一期末復(fù)習(xí)98頁(yè)P(yáng)PT課件
評(píng)論
0/150
提交評(píng)論