接口技術(shù)-5存儲(chǔ)器_第1頁
接口技術(shù)-5存儲(chǔ)器_第2頁
接口技術(shù)-5存儲(chǔ)器_第3頁
接口技術(shù)-5存儲(chǔ)器_第4頁
接口技術(shù)-5存儲(chǔ)器_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第5章存儲(chǔ)器接口設(shè)計(jì)11/6/2022本章學(xué)習(xí)目標(biāo)與要求1.了解嵌入式系統(tǒng)中所使用的存儲(chǔ)器的種類。2.掌握S3C2410存儲(chǔ)空間的分配。3.掌握通過特殊功能寄存器配置存儲(chǔ)空間的方法?;贏RM的嵌入式系統(tǒng)接口技術(shù)5.1工作場景導(dǎo)入11/6/2022工作場景配置SDRAM控制器在設(shè)計(jì)一個(gè)嵌入式系統(tǒng)時(shí),使用的微處理器芯片是S3C2410,由于處理器本身的片內(nèi)存儲(chǔ)資源有限,不能滿足實(shí)際應(yīng)用要求,需要外接Flash存儲(chǔ)器和SDRAM存儲(chǔ)器。若在系統(tǒng)中選用兩片HY57V561620CT-H芯片并聯(lián),組成64MB、32位寬的SDRAM存儲(chǔ)器,為使其正常工作應(yīng)如何設(shè)置?基于ARM的嵌入式系統(tǒng)接口技術(shù)引導(dǎo)問題(1)嵌入式系統(tǒng)中通常使用哪些類型的存儲(chǔ)器芯片?(2)S3C2410的存儲(chǔ)空間地址如何分配的?(3)什么情況下需要外接存儲(chǔ)器芯片?(4)外接存儲(chǔ)器芯片時(shí)接口如何設(shè)計(jì)?(5)外接存儲(chǔ)器芯片時(shí)需要如何配置才能正確使用?(6)NANDFlash和NORFlash有什么不同?基于ARM的嵌入式系統(tǒng)接口技術(shù)5.2嵌入式系統(tǒng)的存儲(chǔ)系統(tǒng)11/6/20225.2.1存儲(chǔ)系統(tǒng)組織結(jié)構(gòu)在復(fù)雜的嵌入式系統(tǒng)中,存儲(chǔ)器系統(tǒng)的組織結(jié)構(gòu)按作用可以劃分為4級(jí):寄存器、cache、主存儲(chǔ)器和輔助存儲(chǔ)器,如下圖所示。當(dāng)然,對(duì)于簡單的嵌入式系統(tǒng)來說,沒有必要把存儲(chǔ)器系統(tǒng)設(shè)計(jì)成4級(jí),最簡單的只需寄存器和主存儲(chǔ)器即可。

輔助存儲(chǔ)器主存儲(chǔ)器cache寄存器基于ARM的嵌入式系統(tǒng)接口技術(shù)5.2.1存儲(chǔ)系統(tǒng)組織結(jié)構(gòu)ARM存儲(chǔ)系統(tǒng)的體系結(jié)構(gòu)適應(yīng)不同的的嵌入式應(yīng)用系統(tǒng)的需要,判別很大。存儲(chǔ)系統(tǒng)中可能存在多種類型的存儲(chǔ)器件,如FLASH、ROM、SRAM、SDRAM等。類型不同,速度和寬度可以不同。通過配置相應(yīng)的寄存器,可以使存儲(chǔ)設(shè)備正常工作。使用CACHE和WRITEBUFFER技術(shù)縮小處理器和存儲(chǔ)系統(tǒng)的速度差別,提高整體性能。MMU,使用內(nèi)存映射技術(shù)實(shí)現(xiàn)虛擬空間到物理空間的映射。I/O操作映射為內(nèi)存操作?;贏RM的嵌入式系統(tǒng)接口技術(shù)存儲(chǔ)器作用示意圖寄存器在微處理器內(nèi)部,存放指令執(zhí)行時(shí)的數(shù)據(jù),如R0~R15存放程序執(zhí)行代碼和數(shù)據(jù),SDRAM代碼備份,相當(dāng)于外存,F(xiàn)lash基于ARM的嵌入式系統(tǒng)接口技術(shù)嵌入式系統(tǒng)的存儲(chǔ)結(jié)構(gòu)主存和輔存的存儲(chǔ)單元靠地址識(shí)別,n位地址信號(hào)選定一個(gè)具體的存儲(chǔ)單元。需要一根使能信號(hào)引腳控制存儲(chǔ)器芯片數(shù)據(jù)引腳的三態(tài)。需要讀/寫控制信號(hào)引腳,控制著存儲(chǔ)器的數(shù)據(jù)傳送方向。嵌入式微處理器Cache片內(nèi)RAM和ROM主存:NorFlash、SRAM、DRAM等外存:NandFlash、DOC、CF、SD、MMC等基于ARM的嵌入式系統(tǒng)接口技術(shù)5.2.1存儲(chǔ)系統(tǒng)組織結(jié)構(gòu)主存主存是處理器能直接訪問的存儲(chǔ)器,用來存放系統(tǒng)和用戶的程序和數(shù)據(jù)。嵌入式系統(tǒng)的主存可位于SoC內(nèi)和SoC外,片內(nèi)存儲(chǔ)器存儲(chǔ)容量小、速度快,片外存儲(chǔ)器容量大。存儲(chǔ)器根據(jù)其存取方式分成兩類:隨機(jī)存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)。RAM是易失性存儲(chǔ)器,ROM是非易失性存儲(chǔ)器??梢宰鲋鞔娴拇鎯?chǔ)器有:

ROM類:NorFlash、EPROM、E2PROM、PROM等RAM類:SRAM、DRAM、SDRAM等

基于ARM的嵌入式系統(tǒng)接口技術(shù)5.2.2常用存儲(chǔ)器簡介只讀存儲(chǔ)器ROM和PROMEPROM、E2PROMFlashROM隨機(jī)存儲(chǔ)器SRAM、DRAMNVRAM基于ARM的嵌入式系統(tǒng)接口技術(shù)5.2.2常用存儲(chǔ)器簡介隨機(jī)存儲(chǔ)器:可以從存儲(chǔ)器的任意地址處讀/寫數(shù)據(jù),又分為兩大類:靜態(tài)隨機(jī)存儲(chǔ)器(SRAM)動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)

靜態(tài)隨機(jī)存儲(chǔ)器SRAMSRAM中的存儲(chǔ)單元內(nèi)容在通電狀態(tài)下是不會(huì)丟失的,不需要定期刷新.基于ARM的嵌入式系統(tǒng)接口技術(shù)隨機(jī)存儲(chǔ)器芯片圖基于ARM的嵌入式系統(tǒng)接口技術(shù)5.2.2常用存儲(chǔ)器簡介動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)存儲(chǔ)信息的基本單元(1位)電路可采用4管、3管和單管電路需要不斷刷新(為維持動(dòng)態(tài)存儲(chǔ)單元所存儲(chǔ)的信息,必須設(shè)法使信息再生,這即所謂的刷新)與SRAM不同的是:為節(jié)省外部引腳,同樣容量的DRAM外部地址線引腳是SRAM一半DRAM采用行/列地址選通,將地址通過內(nèi)部分成兩路DRAM控制器:解決刷新和多路基于ARM的嵌入式系統(tǒng)接口技術(shù)5.2.2常用存儲(chǔ)器簡介只讀存儲(chǔ)器(ROM)只讀存儲(chǔ)器內(nèi)部存儲(chǔ)單元的數(shù)據(jù)不會(huì)隨掉電而丟失的存儲(chǔ)器。通常只能讀出不能寫入。存儲(chǔ)代碼和常數(shù)。分為掩模編程和現(xiàn)場可編程只讀存儲(chǔ)器?,F(xiàn)場可編程只讀存儲(chǔ)器通常又分成EPROM、EEPROM和閃存(Flash)。目前,閃存作為只讀存儲(chǔ)器在嵌入式系統(tǒng)中被大量采用,閃存使用標(biāo)準(zhǔn)電壓既可擦寫和編程,因此,閃存在標(biāo)準(zhǔn)電壓的系統(tǒng)內(nèi)就可進(jìn)行編程寫入。

NOR和NAND是現(xiàn)在市場上兩種主要的非易失閃存技術(shù)。

基于ARM的嵌入式系統(tǒng)接口技術(shù)只讀存儲(chǔ)器芯片圖基于ARM的嵌入式系統(tǒng)接口技術(shù)NANDFlash和NORFlash比較1988年,Intel首先開發(fā)出NORFlash技術(shù);1989年,東芝公司發(fā)表了NANDFlash結(jié)構(gòu)的存儲(chǔ)器。NANDFlash和NORFlash比較,有以下特點(diǎn):NORFlash的讀取速度比NANDFlash稍快一些,NANDFlash的擦除和寫入速度比NORFlash快很多。Flash芯片在寫入操作時(shí),需要先進(jìn)行擦除操作。NANDFlash的擦除單元更小,因此相應(yīng)的擦除電路更少。

基于ARM的嵌入式系統(tǒng)接口技術(shù)NANDFlash和NORFlash比較接口方面它們也有差別,NORFlash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其內(nèi)部的每一個(gè)字節(jié),可以像其他SRAM存儲(chǔ)器那樣與微處理器連接;NANDFlash器件使用復(fù)雜的I/O口來串行地存取數(shù)據(jù),各個(gè)產(chǎn)品或廠商的方法還各不相同,因此,與微處理器的接口復(fù)雜。NANDFlash讀和寫操作采用512字節(jié)的塊,這一點(diǎn)類似硬盤管理操作,很自然地,基于NANDFlash的存儲(chǔ)器就可以取代硬盤或其他塊設(shè)備。

基于ARM的嵌入式系統(tǒng)接口技術(shù)5.3S3C2410存儲(chǔ)空間11/6/20225.3.1S3C2410處理器的存儲(chǔ)器映射存儲(chǔ)器映射就是為存儲(chǔ)器分配地址的過程。實(shí)際上就是指把處理器芯片中或處理器芯片外的FLASH、RAM、外設(shè)等進(jìn)行統(tǒng)一編址,即用地址來表示對(duì)象。這個(gè)地址一般是由廠家規(guī)定好的,用戶只能用而不能改。用戶只能在使用外部RAM或FLASH的情況下可進(jìn)行自定義?;贏RM的嵌入式系統(tǒng)接口技術(shù)5.3.1S3C2410處理器的存儲(chǔ)器映射S3C2410芯片采用的是ARM920T核,地址空間總共為4GB,其中,1GB地址空間用于支持外部存儲(chǔ)器的連接,另外的空間有一小部分用于I/O端口或部件的尋址,其他的地址空間沒有用到。

S3C2410芯片外部可尋址的存儲(chǔ)空間是1GB,被分成8個(gè)存儲(chǔ)塊,每塊128MB。如圖所示。

基于ARM的嵌入式系統(tǒng)接口技術(shù)S3C2410存儲(chǔ)空間分配圖基于ARM的嵌入式系統(tǒng)接口技術(shù)5.3.2外接存儲(chǔ)器的地址空間劃分以S3C2410為例,內(nèi)核提供了32位的地址總線,理論上可以尋址的空間為4GB,但實(shí)際留給外部可尋址的空間只有1GB,也就是0X00000000~0X3fffffff,總共應(yīng)該有30根地址線(230)引出來。在這1GB的空間,2410處理器又根據(jù)所支持的設(shè)備的特點(diǎn)將它分為了8份,每份空間有128MB,這每一份的空間又稱為一個(gè)BANK。其中6個(gè)用于ROM、SRAM等存儲(chǔ)器,2個(gè)用于ROM、SRAM、SDRAM等存儲(chǔ)器?;贏RM的嵌入式系統(tǒng)接口技術(shù)5.3.2外接存儲(chǔ)器的地址空間劃分當(dāng)2410對(duì)外尋址時(shí),采用了部分譯碼的方式,即低位地址線用于外圍存儲(chǔ)器的片內(nèi)尋址,而高位地址線用于外圍存儲(chǔ)器的片外尋址。對(duì)于系統(tǒng)要訪問的任意外部地址,2410可以方便地利用內(nèi)部地址總線的高3位ADDR[29:27]來選擇該地址屬于哪一個(gè)存儲(chǔ)器組(Bank),從而激活相應(yīng)的Bank選擇信號(hào)(nGCSx)。這8個(gè)片選信號(hào)可以看作是2410處理器內(nèi)部30根地址線的最高三位所做的地址譯碼的結(jié)果。正因?yàn)檫@3根地址線所代表的地址信息已經(jīng)由8個(gè)片選信號(hào)(nGCS7~nGCS0)來傳遞了,因此2410處理器最后輸出的實(shí)際地址線就只有A26~A0?;贏RM的嵌入式系統(tǒng)接口技術(shù)5.3.2外接存儲(chǔ)器的地址空間劃分Bank的內(nèi)部尋址由外部地址總線A[26:0]來實(shí)現(xiàn),尋址范圍為128M(227),從而使得其外圍地址訪問空間為1GB(128MB×8)。S3C2410正是通過這種機(jī)制來完成外部地址空間的尋址全過程?;贏RM的嵌入式系統(tǒng)接口技術(shù)5.3.3S3C2410存儲(chǔ)空間的使用0號(hào)存儲(chǔ)塊可以外接SRAM類型的存儲(chǔ)器或者具有SRAM接口特性的ROM存儲(chǔ)器(如NORFlash),其數(shù)據(jù)總線寬度應(yīng)設(shè)定為16位或32位中的一種。當(dāng)0號(hào)存儲(chǔ)塊作為ROM區(qū),完成引導(dǎo)裝入工作時(shí)(從0x00000000啟動(dòng)),0號(hào)存儲(chǔ)塊的總線寬度應(yīng)在第一次訪問ROM前根據(jù)OM1、OM0在復(fù)位時(shí)的邏輯組合來確定

基于ARM的嵌入式系統(tǒng)接口技術(shù)5.3.3S3C2410存儲(chǔ)空間的使用OM1、OM0邏輯組合的作用OM1OM0引導(dǎo)ROM數(shù)據(jù)的寬度00NANDFlash模式0116位1032位11測試模式基于ARM的嵌入式系統(tǒng)接口技術(shù)5.3.3S3C2410存儲(chǔ)空間的使用1號(hào)存儲(chǔ)塊到5號(hào)存儲(chǔ)塊也可以外接SRAM類型的存儲(chǔ)器或者具有SRAM接口特性的ROM存儲(chǔ)器(如NORFlash),其數(shù)據(jù)總線寬度應(yīng)設(shè)定為8位、16位或32位。6號(hào)存儲(chǔ)塊、7號(hào)存儲(chǔ)塊可以外接SDRAM類型的存儲(chǔ)器,它們的塊容量可改變,且7號(hào)存儲(chǔ)塊的起始地址也可改變?;贏RM的嵌入式系統(tǒng)接口技術(shù)5.3.3S3C2410存儲(chǔ)空間的使用基于ARM的嵌入式系統(tǒng)接口技術(shù)S3C2410芯片支持外部存儲(chǔ)器連接的一個(gè)實(shí)例

基于ARM的嵌入式系統(tǒng)接口技術(shù)5.3.3S3C2410存儲(chǔ)空間的使用OM1、OM0引腳接地,即OM1=0、OM0=0,因此支持從NANDFlash引導(dǎo)系統(tǒng),這種方式下,信號(hào)nGCS0不用。數(shù)據(jù)總線引腳為DATA0~DATA31,共32根,可由用戶設(shè)定數(shù)據(jù)總線寬度為8位、16位還是32位。地址總線引腳ADDR0~ADDR26共有27根,支持128MB地址空間。另外提供了各存儲(chǔ)塊的選擇信號(hào)nGCS0、nGCS1、nGCS2、nGCS3、nGCS4、nGCS5、nGCS6:nSCS0、nGCS7:nSCS1,實(shí)際上這些信號(hào)是通過S3C2410內(nèi)部由地址信號(hào)ADDR27、ADDR28、ADDR29譯碼產(chǎn)生?;贏RM的嵌入式系統(tǒng)接口技術(shù)處理器地址映射CPU內(nèi)部引導(dǎo)RAMCPU控制寄存器靜態(tài)片選,可接flash、網(wǎng)卡等芯片內(nèi)存SDRAM從NANDFlash(非線性Flash)啟動(dòng)基于ARM的嵌入式系統(tǒng)接口技術(shù)處理器地址映射引導(dǎo)用的flashCPU控制寄存器靜態(tài)片選,可接flash、網(wǎng)卡等芯片內(nèi)存SDRAM從NORFlash(線性Flash)啟動(dòng)基于ARM的嵌入式系統(tǒng)接口技術(shù)5.3.4S3C2410的存儲(chǔ)器控制器的特性(1)支持小端存儲(chǔ)和大端存儲(chǔ)。(2)每個(gè)BANK的地址空間為128MB,總共1GB(8BANKs)。(3)可編程控制的總線位寬(8/16/32-bit),不過BANK0只能選擇兩種位寬(16/32-bit)。(4)總共8個(gè)BANK,BANK0-BANK5可以支持外接ROM、SRAM等,BANK6-BANK7除可以支持ROM、SRAM外,還支持SDRAM等?;贏RM的嵌入式系統(tǒng)接口技術(shù)5.3.4S3C2410的存儲(chǔ)器控制器的特性(5)BANK0-BANK6共7個(gè)BANK的起始地址是固定的。(6)BANK7的起始地址是可編程選擇的。(7)BANK6、BANK7的地址空間大小是可編程控制的。(8)每個(gè)BANK的訪問周期均可編程控制。(9)可以通過外部的“wait”信號(hào)延長總線的訪問周期。(10)在外接SDRAM時(shí),支持自刷新(self-refresh)和省電模式(powerdownmode)?;贏RM的嵌入式系統(tǒng)接口技術(shù)5.4存儲(chǔ)器控制11/6/20225.4.1控制存儲(chǔ)器的特殊功能寄存器存儲(chǔ)器控制器共有如下13個(gè)寄存器??偩€帶寬和等待控制寄存器(BWSCON),地址是0x48000000??偩€控制寄存器(BANKCONx(x為0-7))共八個(gè),地址是0x48000004-0x48000020。刷新控制寄存器(REFRESH),地址是0x48000024。存儲(chǔ)塊大小控制寄存器(BANKSIZE),地址是0x48000028。SDRAM模式寄存器集寄存器(MRSRB6、MRSRB7),地址是0x4800002C和0x48000030。基于ARM的嵌入式系統(tǒng)接口技術(shù)5.4.2SDRAM存儲(chǔ)器接口一個(gè)SDRAM存儲(chǔ)器接口電路

基于ARM的嵌入式系統(tǒng)接口技術(shù)5.4.2SDRAM存儲(chǔ)器接口上圖是存儲(chǔ)容量為64MB的SDRAM接口電路圖。注意:芯片內(nèi)部的4bank不是指該芯片需要占用S3C2410芯片的4個(gè)存儲(chǔ)塊,而是指HY57V561620芯片內(nèi)部把32MB容量分成了4塊存儲(chǔ)區(qū),每塊存儲(chǔ)區(qū)的容量為4M×16bit。從圖中可以看出,該存儲(chǔ)器的nCS(既/CS)由S3C2410芯片的nGCS6引腳控制,因此,它占用了S3C2410芯片的6號(hào)存儲(chǔ)塊。實(shí)際占用地址空間為0x30000000~0x33ffffff?;贏RM的嵌入式系統(tǒng)接口技術(shù)5.4.2SDRAM存儲(chǔ)器接口要使SDRAM存儲(chǔ)器正常工作,需要對(duì)其進(jìn)行正確配置。1.設(shè)置外接存儲(chǔ)器的總線寬度(位寬)和等待狀態(tài)2.配置存儲(chǔ)塊的時(shí)序等參數(shù)3.SDRAM的刷新控制器4.SDRAM的參數(shù)設(shè)置5.SDRAM模式寄存器集寄存器(MRSR)基于ARM的嵌入式系統(tǒng)接口技術(shù)存儲(chǔ)器控制專用寄存器基于ARM的嵌入式系統(tǒng)接口技術(shù)基于ARM的嵌入式系統(tǒng)接口技術(shù)寄存器設(shè)置使用SDRAM,需要設(shè)置13個(gè)寄存器。由于我們只使用了BANK6,大部分的寄存器我們不必理會(huì):

1.BWSCON:對(duì)應(yīng)BANK0-BANK7,每BANK使用4位。這4位分別表示:

a.STx:啟動(dòng)/禁止SDRAM的數(shù)據(jù)掩碼引腳,對(duì)于SDRAM,此位為0;對(duì)于SRAM,此位為1。

b.WSx:是否使用存儲(chǔ)器的WAIT信號(hào),通常設(shè)為0

c.DWx:使用兩位來設(shè)置存儲(chǔ)器的位寬:00-8位,01-16位,10-32位,11-保留。

d.比較特殊的是BANK0對(duì)應(yīng)的4位,它們由硬件跳線決定,只讀。

對(duì)于本開發(fā)板,使用兩片容量為32Mbyte、位寬為16的SDRAM組成容量為64Mbyte、位寬為32的存儲(chǔ)器,所以其BWSCON相應(yīng)位為:0010。對(duì)于本開發(fā)板,BWSCON可設(shè)為0x22111110:其實(shí)我們只需要將BANK6對(duì)應(yīng)的4位設(shè)為0010即可,其它的是什么值沒什么影響,這個(gè)值是參考手冊(cè)上給出的。基于ARM的嵌入式系統(tǒng)接口技術(shù)

2.BANKCON0-BANKCON5:我們沒用到,使用默認(rèn)值0x00000700即

3.BANKCON6-BANKCON7:設(shè)為0x00018005在8個(gè)BANK中,只有BANK6和BANK7可以使用SRAM或SDRAM,所以BANKCON6-7與BANKCON0-5有點(diǎn)不同:

a.MT([16:15]):用于設(shè)置本BANK外接的是SRAM還是SDRAM:SRAM-0b00,SDRAM-0b11

b.當(dāng)MT=0b11時(shí),還需要設(shè)置兩個(gè)參數(shù):Trcd([3:2]):RAS對(duì)CAS的延時(shí),設(shè)為推薦值0b01。SCAN([1:0]):

SDRAM的列地址位數(shù),對(duì)于本開發(fā)板使用的SDRAMHY57V561620CT-H,列地址位數(shù)為9,所以SCAN=0b01。如果使用其他型號(hào)的SDRAM,需要查看它的數(shù)據(jù)手冊(cè)來決定SCAN的取值:00-8位,01-9位,10-10位基于ARM的嵌入式系統(tǒng)接口技術(shù)BANKCON6-BANKCON7基于ARM的嵌入式系統(tǒng)接口技術(shù)基于ARM的嵌入式系統(tǒng)接口技術(shù)4.REFRESH(SDRAMrefreshcontrolregister):設(shè)為0x008e0000+R_CNT其中R_CNT用于控制SDRAM的刷新周期,占用REFRESH寄存器的[10:0]位,它的取值可如下計(jì)算(SDRAM時(shí)鐘頻率就是HCLK):

R_CNT=2^11+1–SDRAM時(shí)鐘頻率(MHz)*SDRAM刷新周期(uS)

在未使用PLL時(shí),SDRAM時(shí)鐘頻率等于晶振頻率12MHz;

SDRAM的刷新周期在SDRAM的數(shù)據(jù)手冊(cè)上有標(biāo)明,在本開發(fā)板使用的SDRAMHY57V561620CT-H的數(shù)據(jù)手冊(cè)上,可看見這么一行“8192refreshcycles/64ms”:所以,刷新周期=64ms/8192=7.8125

uS。

如,R_CNT=2^11+1–12*7.8125=1955,REFRESH=0x008e0000+1955=0x008e07a3基于ARM的嵌入式系統(tǒng)接口技術(shù)基于ARM的嵌入式系統(tǒng)接口技術(shù)5.BANKSIZE:0x000000b2

位[7]=1:Enableburstoperation

位[5]=1:SDRAMpowerdownmodeenable

位[4]=1:SCLKisactiveonlyduringtheaccess(recommended)位[2:0]=010:BANK6、BANK7對(duì)應(yīng)的地址空間與BANK0-5不同。BANK0-5的地址空間都是固定的128M,地址范圍是(x*128M)到(x+1)*128M-1,x表示0到5。但是BANK7的起始地址是可變的,可以從S3C2410數(shù)據(jù)手冊(cè)第5章“Table5-1.Bank6/7Addresses”中了解到BANK6、7的地址范圍與地址空間的關(guān)系。

本開發(fā)板僅使用BANK6的64M空間,可以令位[2:0]=010(128M/128M)或001(64M/64M):多出來的空間程序會(huì)檢測出來,不會(huì)發(fā)生使用不存在的內(nèi)存的情況,位[6]、位[3]沒有使用

6.MRSRB6、MRSRB7:0x00000030

能讓我們修改的只有位[6:4](CL),SDRAMHY57V561620CT-H不支持CL=1的情況,所以位[6:4]取值為010(CL=2)或011(CL=3)。基于ARM的嵌入式系統(tǒng)接口技術(shù)

5.4.3NANDFlash存儲(chǔ)器接口NANDFlash類型的存儲(chǔ)器因其單片容量大,且寫入速度較快,因而是嵌入式系統(tǒng)中經(jīng)常采用的一類非易失性存儲(chǔ)器。NANDFlash類型的存儲(chǔ)器沒有一個(gè)統(tǒng)一的接口標(biāo)準(zhǔn),不同廠家的產(chǎn)品,其接口電路會(huì)有所不同,控制讀/寫的命令也不一樣。但它們的設(shè)計(jì)方法還是可以相互參照的?;贏RM的嵌入式系統(tǒng)接口技術(shù)(續(xù))NANDflash基于ARM的嵌入式系統(tǒng)接口技術(shù)

5.4.3NANDFlash存儲(chǔ)器接口若要使能NANDFlash控制器為自動(dòng)啟動(dòng)模式,則首先需要設(shè)置硬件電路板上的OM1、OM0引腳(詳見5.3.3節(jié)),設(shè)置OM[1:0]=00b;控制NANDFlash操作的寄存器主要有五個(gè)。另外還有一個(gè)存儲(chǔ)錯(cuò)誤校驗(yàn)碼的寄存器。基于ARM的嵌入式系統(tǒng)接口技術(shù)

5.4.3NANDFlash存儲(chǔ)器接口對(duì)NANDFlash進(jìn)行讀寫操作的次序1.配置NANDFlash在配置寄存器NFCONF中,TACLS、TWRPH0和TWRPH1這三個(gè)參數(shù)控制的是NANDFlash信號(hào)線CLE/ALE與寫控制信號(hào)nWE的時(shí)序關(guān)系。例如,設(shè)置TACLS(bit[10:8])=0,TWRPH0(bit[6:4])=3,TWRPH1(bit[2:0])=0,其含義為:TACLS=1個(gè)HCLK時(shí)鐘,TWRPH0=4個(gè)HCLK時(shí)鐘,TWRPH1=1個(gè)HCLK時(shí)鐘。如上設(shè)置,則此寄存器的值即可設(shè)為0xf830。也可以采用如下形式設(shè)置。rNFCONF=(1<<15)|(1<<12)|(1<<11)|(TACLS<<8)|(TWRPH0<<4)|(TWRPH1<<0);基于ARM的嵌入式系統(tǒng)接口技術(shù)

5.4.3NANDFlash存儲(chǔ)器接口2.操作命令NANDFlash命令寄存器(NFCMD)是NANDFlash的命令設(shè)置寄存器,對(duì)于不同型號(hào)的Flash,操作命令一般不一樣。Flash的操作命令是寫入到NFCMD寄存器的,例如在第一次操作NANDFlash前,通常需要進(jìn)行復(fù)位操作,K9F1208芯片的復(fù)位命令是0xff,則復(fù)位就是把0xff寫入到rNFCMD。

rNFCONF&=~0x800; //使能NANDFlashrNFCMD=0xff; //reset命令基于ARM的嵌入式系統(tǒng)接口技術(shù)

5.4.3NANDFlash存儲(chǔ)器接口K9F1208芯片的主要命令有:Read1、Read2、ReadID、Reset、PageProgram、BlockErase、ReadStatus?;贏RM的嵌入式系統(tǒng)接口技術(shù)

5.4.3NANDFlash存儲(chǔ)器接口3.設(shè)置地址NANDFlash地址寄存器(NFADDR)是NANDFlash的地址設(shè)置寄存器寫入地址時(shí),查看K9F1208芯片數(shù)據(jù)手冊(cè)可知,地址線A8沒用到,因此寫入地址時(shí),不使用A8。rNFADDR=addr&0xff; //低8位[7:0]rNFADDR=(addr>>9)&0xff; //右移9位,

[16:9]移入低8位rNFADDR=(addr>>17)&0xff;//右移17位,[24:17]移入低8位rNFADDR=(addr>>25)&0xff;//右移25位,[25]移入低8位基于ARM的嵌入式系統(tǒng)接口技術(shù)

5.4.3NANDFlash存儲(chǔ)器接口4.數(shù)據(jù)讀/寫NANDFlash數(shù)據(jù)寄存器(NFDATA)是NANDFlash的數(shù)據(jù)寄存器,只用到了低8位5.查詢操作狀態(tài)NANDFlash狀態(tài)寄存器(NFSTAT)是NANDFlash的操作狀態(tài)寄存器,只允許讀,且只用到位0,bit[0]=0時(shí)表示忙,bit[0]=1時(shí)表示已經(jīng)準(zhǔn)備好。6.NANDFlash的ECC錯(cuò)誤校驗(yàn)碼寄存器(NFECC)NFECC寄存器是NANDFlash的ECC錯(cuò)誤校驗(yàn)碼寄存器,只允許讀,S3C2410內(nèi)部硬件ECC功能可以對(duì)NANDFlash的數(shù)據(jù)進(jìn)行有效性的檢查?;贏RM的嵌入式系統(tǒng)接口技術(shù)5.4.4NORFlash存儲(chǔ)器接口NORFlash是另一類常用的非易失性存儲(chǔ)器,它的特點(diǎn)是讀出速度較快,但其單片容量相對(duì)較小,寫入速度慢,且價(jià)格較貴,因此,比較適合用于小代碼的存儲(chǔ)。NORFlash存儲(chǔ)器芯片的接口特性類似于SRAM,與微處理器的接口電路相對(duì)于SDRAM類存儲(chǔ)器、NANDFlash類存儲(chǔ)器的接口來說簡單。基于ARM的嵌入式系統(tǒng)接口技術(shù)基于ARM的嵌入式系統(tǒng)接口技術(shù)5.4.4NORFlash存儲(chǔ)器接口上圖是以32MB容量的NORFlash芯片28F128J3為例的存儲(chǔ)器接口電路。由于28F128J3是16位的數(shù)據(jù)寬度,地址是半字對(duì)準(zhǔn)的,因此該芯片的地址線A0始終接地。

基于ARM的嵌入式系統(tǒng)接口技術(shù)5.5回到工作場景11/6/2022工作過程一定義存儲(chǔ)器對(duì)SDRAM(BANK6)相關(guān)的寄存器的設(shè)置,一般在啟動(dòng)代碼中用匯編程序?qū)崿F(xiàn)。(在第三章工作場景中有啟動(dòng)代碼的介紹,其中包括了對(duì)存儲(chǔ)器的設(shè)置。)首先定義要設(shè)置的寄存器(通常對(duì)寄存器的定義放在匯編語言頭文件中,然后用包含語句包含到程序中)?;贏RM的嵌入式系統(tǒng)接口技術(shù)工作過程二設(shè)置存儲(chǔ)器若只是對(duì)SDRAM進(jìn)行設(shè)置,只需要設(shè)置與BANK6相關(guān)的五個(gè)寄存器:BWSCON、BANKCON6、REFRESH、BANKSIZE、MRSRB6。①BWSCON寄存器

ldr r1,=BWSCON ;加載BWSCON地址,相當(dāng)于ldrr1,=0x48000000

ldrr3,[r1] ;取出原來的值

bicr3,r3,#(0xf<<24) ;位清除,清除[27:24] orrr3,#(0x2<<24) ;設(shè)置[27:24]為0010 str r3,[r1] ;把設(shè)置后的值放到BWSCON寄存器基于ARM的嵌入式系統(tǒng)接口技術(shù)工作過程二②BANKCON6寄存器③REFRESH寄存器④BANKSIZE寄存器⑤MRSRB6寄存器

溫馨提示

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