ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ) 第4章 嵌入式系統(tǒng)的存儲(chǔ)器系統(tǒng)_第1頁(yè)
ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ) 第4章 嵌入式系統(tǒng)的存儲(chǔ)器系統(tǒng)_第2頁(yè)
ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ) 第4章 嵌入式系統(tǒng)的存儲(chǔ)器系統(tǒng)_第3頁(yè)
ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ) 第4章 嵌入式系統(tǒng)的存儲(chǔ)器系統(tǒng)_第4頁(yè)
ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ) 第4章 嵌入式系統(tǒng)的存儲(chǔ)器系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第4章章 嵌入式系統(tǒng)的存儲(chǔ)器系統(tǒng)嵌入式系統(tǒng)的存儲(chǔ)器系統(tǒng)4.1 存儲(chǔ)器系統(tǒng)概述n4.1.1 存儲(chǔ)器系統(tǒng)的層次結(jié)構(gòu)n計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器被組織成一個(gè)6個(gè)層次的金字塔形的層次結(jié)構(gòu),如圖4.1.1魏洪興所示,位于整個(gè)層次結(jié)構(gòu)的最頂部s0層為cpu內(nèi)部寄存器ns1層為芯片內(nèi)部的高速緩存(cache)n內(nèi)存s2層為芯片外的高速緩存(sram、dram、ddram)ns3層為主存儲(chǔ)器(flash、prom、eprom、eeprom)ns4層為外部存儲(chǔ)器(磁盤、光盤、cf、sd卡)ns5層為遠(yuǎn)程二級(jí)存儲(chǔ)(分布式文件系統(tǒng)、web服務(wù)器)圖4.1.1 存儲(chǔ)器系統(tǒng)層次結(jié)構(gòu) n在這種存儲(chǔ)器分層結(jié)構(gòu)中,上面一層的存儲(chǔ)器

2、作為下一層存儲(chǔ)器的高速緩存。cpu寄存器就是cache的高速緩存,寄存器保存來自cache的字;cache又是內(nèi)存層的高速緩存,從內(nèi)存中提取數(shù)據(jù)送給cpu進(jìn)行處理,并將cpu的處理結(jié)果返回到內(nèi)存中;內(nèi)存又是主存儲(chǔ)器的高速緩存,它將經(jīng)常用到的數(shù)據(jù)從flash等主存儲(chǔ)器中提取出來,放到內(nèi)存中,從而加快了cpu的運(yùn)行效率。嵌入式系統(tǒng)的主存儲(chǔ)器容量是有限的,磁盤、光盤或cf、sd卡等外部存儲(chǔ)器用來保存大信息量的數(shù)據(jù)。在某些帶有分布式文件系統(tǒng)的嵌入式網(wǎng)絡(luò)系統(tǒng)中,外部存儲(chǔ)器就作為其他系統(tǒng)中被存儲(chǔ)數(shù)據(jù)的高速緩存。n4.1.2 高速緩沖存儲(chǔ)器高速緩沖存儲(chǔ)器n在主存儲(chǔ)器和cpu之間采用高速緩沖存儲(chǔ)器(cache

3、)被廣泛用來提高提高存儲(chǔ)器系統(tǒng)的性能,許多微處理器體系結(jié)構(gòu)都把它作為其定義的一部分。cache能夠減少內(nèi)存平均訪問時(shí)間。ncache可以分為統(tǒng)一cache和獨(dú)立的數(shù)據(jù)程序cache。在一個(gè)存儲(chǔ)系統(tǒng)中,指令預(yù)取時(shí)和數(shù)據(jù)讀寫時(shí)使用同一個(gè)cache,這時(shí)稱系統(tǒng)使用統(tǒng)一的cache。如果在一個(gè)存儲(chǔ)系統(tǒng)中,指令預(yù)取時(shí)使用的一個(gè)cache,數(shù)據(jù)讀寫時(shí)使用的另一個(gè)cache,各自是獨(dú)立的,這時(shí)稱系統(tǒng)使用了獨(dú)立的cache,用于指令預(yù)取的cache稱為指令cache,用于數(shù)據(jù)讀寫的cache稱為數(shù)據(jù)cache。n當(dāng)cpu更新了cache的內(nèi)容時(shí),要將結(jié)果寫回到主存中,可以采用寫通法(write-through

4、)和寫回法(write-back)。寫通法是指cpu在執(zhí)行寫操作時(shí),必須把數(shù)據(jù)同時(shí)寫入cache和主存。采用寫通法進(jìn)行數(shù)據(jù)更新的cache稱為寫通cache。寫回法是指cpu在執(zhí)行寫操作時(shí),被寫的數(shù)據(jù)只寫入cache不寫入主存。僅當(dāng)需要替換時(shí),才把已經(jīng)修改的cache塊寫回到主存中。采用寫回法進(jìn)行數(shù)據(jù)更新的cache稱為寫回cache。n當(dāng)進(jìn)行數(shù)據(jù)寫操作時(shí),可以將cache分為讀操作分配cache和寫操作分配cache兩類。對(duì)于讀操作分配cache,當(dāng)進(jìn)行數(shù)據(jù)寫操作時(shí),如果cache未命中,只是簡(jiǎn)單地將數(shù)據(jù)寫入主存中。主要在數(shù)據(jù)讀取時(shí),才進(jìn)行cache內(nèi)容預(yù)取。對(duì)于寫操作分配cache,當(dāng)進(jìn)行

5、數(shù)據(jù)寫操作時(shí),如果cache未命中,cache系統(tǒng)將會(huì)進(jìn)行cache內(nèi)容預(yù)取,從主存中將相應(yīng)的塊讀取到cache中相應(yīng)的位置,并執(zhí)行寫操作,把數(shù)據(jù)寫入到cache中。對(duì)于寫通類型的cache,數(shù)據(jù)將會(huì)同時(shí)被寫入到主存中,對(duì)于寫回類型的cache數(shù)據(jù)將在合適的時(shí)候?qū)懟氐街鞔嬷?。n4.1.3 存儲(chǔ)管理單元nmmu(memory manage unit, 存儲(chǔ)管理單元)在cpu和物理內(nèi)存之間進(jìn)行地址轉(zhuǎn)換,將地址從邏輯空間映射到物理空間,這個(gè)轉(zhuǎn)換過程一般稱為內(nèi)存映射。mmu主要完成以下工作:n(1)虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射。采用了頁(yè)式虛擬存儲(chǔ)管理,它把虛擬地址空間分成一個(gè)個(gè)固定大小的塊,每一塊

6、稱為一頁(yè),把物理內(nèi)存的地址空間也分成同樣大小的頁(yè)。mmu實(shí)現(xiàn)的就是從虛擬地址到物理地址的轉(zhuǎn)換。n(2)存儲(chǔ)器訪問權(quán)限的控制。n(3)設(shè)置虛擬存儲(chǔ)空間的緩沖的特性。n嵌入式系統(tǒng)中常常采用頁(yè)式存儲(chǔ)管理。頁(yè)表是存儲(chǔ)在內(nèi)存中的一個(gè)表,頁(yè)表用來管理這些頁(yè)。頁(yè)表的每一行對(duì)應(yīng)于虛擬存儲(chǔ)空間的一個(gè)頁(yè),該行包含了該虛擬內(nèi)存頁(yè)對(duì)應(yīng)的物理內(nèi)存頁(yè)的地址、該頁(yè)的方位權(quán)限和該頁(yè)的緩沖特性等。從虛擬地址到物理地址的變換過程就是查詢頁(yè)表的過程。例如在arm嵌入式系統(tǒng)中,使用系統(tǒng)控制協(xié)處理器cp15的寄存器c2來保存頁(yè)表的基地址。n基于程序在執(zhí)行過程中具有局部性的原理,在一段時(shí)間內(nèi),對(duì)頁(yè)表的訪問只是局限在少數(shù)幾個(gè)單元。根據(jù)這一

7、特點(diǎn),增加了一個(gè)小容量(通常為816字)、高速度(訪問速度和cpu中通用寄存器相當(dāng))的存儲(chǔ)部件來存放當(dāng)前訪問需要的地址變換條目,這個(gè)存儲(chǔ)部件稱為地址轉(zhuǎn)換后備緩沖器(translation look aside buffer,tlb)。當(dāng)cpu訪問內(nèi)存時(shí),首先在tlb中查找需要的地址變換條目,如果該條目不存在,cpu在從位于內(nèi)存中的頁(yè)表中查詢,并把相應(yīng)的結(jié)果添加到tlb中,更新它的內(nèi)容。n當(dāng)arm處理器請(qǐng)求存儲(chǔ)訪問時(shí),首先在tlb中查找虛擬地址。如果系統(tǒng)中數(shù)據(jù)tlb和指令tlb是分開的,在取指令時(shí),從指令tlb查找相應(yīng)的虛擬地址,對(duì)于內(nèi)存訪問操作,從數(shù)據(jù)tlb中查找相應(yīng)的虛擬地址。n嵌入式系統(tǒng)中

8、虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射以內(nèi)存塊為單位來進(jìn)行。即虛擬存儲(chǔ)空間中一塊連續(xù)的存儲(chǔ)空間被映射到物理存儲(chǔ)空間中同樣大小的一塊連續(xù)存儲(chǔ)空間。在頁(yè)表和tlb中,每一個(gè)地址變換條目實(shí)際上記錄了一個(gè)虛擬存儲(chǔ)空間的內(nèi)存塊的基地址與物理存儲(chǔ)空間相應(yīng)的一個(gè)內(nèi)存塊的基地址的對(duì)應(yīng)關(guān)系。根據(jù)內(nèi)存塊大小,可以有多種地址變換。n嵌入式系統(tǒng)支持的內(nèi)存塊大小有以下幾種:段(section)大小為1mb的內(nèi)存塊;大頁(yè)(large pages)大小為64kb的內(nèi)存塊;小頁(yè)(small pages)大小為4kb的內(nèi)存塊;極小頁(yè)(tiny pages)大小為1kb的內(nèi)存塊。極小頁(yè)只能以1kb大小為單位不能再細(xì)分,而大頁(yè)和小頁(yè)有些

9、情況下可以在進(jìn)一步的劃分,大頁(yè)可以分成大小為16kb的子頁(yè),小頁(yè)可以分成大小為1kb的子頁(yè)。nmmu中的域指的是一些段、大頁(yè)或者小頁(yè)的集合。每個(gè)域的訪問控制特性都是由芯片內(nèi)部的寄存器中的相應(yīng)控制位來控制的。例如在arm嵌入式系統(tǒng)中,每個(gè)域的訪問控制特性都是由cp15中的寄存器c3中的兩位來控制的。 nmmu中的快速上下文切換技術(shù)(fast context switch extension, fcse)通過修改系統(tǒng)中不同進(jìn)程的虛擬地址,避免在進(jìn)行進(jìn)程間切換時(shí)造成的虛擬地址到物理地址的重映射,從而提高系統(tǒng)的性能。n在嵌入式系統(tǒng)中,i/o操作通常被映射成存儲(chǔ)器操作,即輸入輸出是通過存儲(chǔ)器映射的可尋址

10、外圍寄存器和中斷輸入的組合來實(shí)現(xiàn)的。i/o的輸出操作可通過存儲(chǔ)器寫入操作實(shí)現(xiàn);i/o的輸入操作可通過存儲(chǔ)器讀取操作實(shí)現(xiàn)。這些存儲(chǔ)器映射的i/o空間不滿足cache所要求的特性,不能使用cache技術(shù),一些嵌入式系統(tǒng)使用存儲(chǔ)器直接訪問(dma)實(shí)現(xiàn)快速存儲(chǔ)。4.2 嵌入式系統(tǒng)存儲(chǔ)設(shè)備分類n存儲(chǔ)器是嵌入式系統(tǒng)硬件的重要組成部分,用來存放嵌入式系統(tǒng)工作時(shí)所用的程序和數(shù)據(jù)。嵌入式系統(tǒng)的存儲(chǔ)器由片內(nèi)和片外兩部分組成。n4.2.1 存儲(chǔ)器部件的分類n1按在系統(tǒng)中的地位分類按在系統(tǒng)中的地位分類n在微機(jī)系統(tǒng)中,存儲(chǔ)器可分為主存儲(chǔ)器(main memory簡(jiǎn)稱內(nèi)存或主存)和輔助存儲(chǔ)器(auxiliary mem

11、ory,secondary memory,簡(jiǎn)稱輔存或外存)。n內(nèi)存是計(jì)算機(jī)主機(jī)的一個(gè)組成部分,一般都用快速存儲(chǔ)器件來構(gòu)成,內(nèi)存的存取速度很快,但內(nèi)存空間的大小受到地址總線位數(shù)的限制。內(nèi)存通常用來容納當(dāng)前正在使用的或要經(jīng)常使用的程序和數(shù)據(jù),cpu可以直接對(duì)內(nèi)存進(jìn)行訪問。系統(tǒng)軟件中如引導(dǎo)程序、監(jiān)控程序或者操作系統(tǒng)中的基本輸入輸出部分bios都是必須常駐內(nèi)存。更多的系統(tǒng)軟件和全部應(yīng)用軟件則在用到時(shí)由外存?zhèn)魉偷絻?nèi)存。n外存也是用來存儲(chǔ)各種信息的,存放的是相對(duì)來說不經(jīng)常使用的程序和數(shù)據(jù),其特點(diǎn)是容量大。外存總是和某個(gè)外部設(shè)備相關(guān)的,常見的外存有軟盤、硬盤、u盤、光盤等。cpu要使用外存的這些信息時(shí),必須

12、通過專門的設(shè)備將信息先傳送到內(nèi)存中。n2按存儲(chǔ)介質(zhì)分類按存儲(chǔ)介質(zhì)分類n根據(jù)存儲(chǔ)介質(zhì)的材料及器件的不同,可分為磁存儲(chǔ)器(magnetic memory),半導(dǎo)體存儲(chǔ)器、光存儲(chǔ)器(optical memory)及激光光盤存儲(chǔ)器(laser optical disk)。n3按信息存取方式分類按信息存取方式分類n存儲(chǔ)器按存儲(chǔ)信息的功能,分為隨機(jī)存取存儲(chǔ)器(random access memory,ram)和只讀存儲(chǔ)器(read only memory,rom)。隨機(jī)存取存儲(chǔ)器是一種在機(jī)器運(yùn)行期間可讀、可寫的存儲(chǔ)器,又稱讀寫存儲(chǔ)器。隨機(jī)存儲(chǔ)器按信息存儲(chǔ)的方式,可分為靜態(tài)ram(static ram,sr

13、am),動(dòng)態(tài)ram(dynamic ram,dram)及準(zhǔn)靜態(tài)ram(pseudostatic ram,簡(jiǎn)稱psram)。n在機(jī)器運(yùn)行期間只能讀出信息,不能隨時(shí)寫入信息的存儲(chǔ)器稱為只讀存儲(chǔ)器。只讀存儲(chǔ)器按功能可分為掩模式(rom)、可編程只讀存儲(chǔ)器(programmable rom,prom)和可改寫的只讀存儲(chǔ)器(erasable programmable rom,eprom)。n4.2.2 存儲(chǔ)器的組織和結(jié)構(gòu)n存儲(chǔ)器的容量是描述存儲(chǔ)器的最基本參數(shù),如1mb。存儲(chǔ)器的表示并不唯一,有不同表示方法,每種有不同的數(shù)據(jù)寬度。在存儲(chǔ)器內(nèi)部,數(shù)據(jù)是存放在二維陣列存儲(chǔ)單元中。陣列以二維的形式存儲(chǔ),給出的n

14、位地址被分成行地址和列地址(nr十c)。r是行地址數(shù),c是列地址數(shù)。行列選定一個(gè)特定存儲(chǔ)單元。如果存儲(chǔ)器外部寬度為1位,那么列地址僅一位;對(duì)更寬的數(shù)據(jù),列地址可選擇所有列的一個(gè)子集。 n嵌入式系統(tǒng)的存儲(chǔ)器與通用系統(tǒng)的存儲(chǔ)器有所不同,通常由rom、ram、eprom等組成。嵌入式存儲(chǔ)器一般采用存儲(chǔ)密度較大的存儲(chǔ)器芯片,存儲(chǔ)容量與應(yīng)用的軟件大小相匹配。n4.2.3 常見的嵌入式系統(tǒng)存儲(chǔ)設(shè)備n1ram(隨機(jī)存儲(chǔ)器)(隨機(jī)存儲(chǔ)器)nram可以被讀和寫,地址可以以任意次序被讀。常見ram的種類有sram(static ram,靜態(tài)隨機(jī)存儲(chǔ)器)、dram(dynamic ram,動(dòng)態(tài)隨機(jī)存儲(chǔ)器)、ddra

15、m(double data rate sdram,雙倍速率隨機(jī)存儲(chǔ)器)。其中,sram比dram運(yùn)行速度快,sram比dram耗電多,dram需要周期性刷新。而ddram是ram的下一代產(chǎn)品。在133mhz時(shí)鐘頻率,ddram內(nèi)存帶寬可以達(dá)到13364b/822.1gb/s,在200mhz時(shí)鐘頻率,其帶寬可達(dá)到20064b/823.2gb/s的海量。n2rom(只讀存儲(chǔ)器)(只讀存儲(chǔ)器)nrom在燒入數(shù)據(jù)后,無需外加電源來保存數(shù)據(jù),斷電后數(shù)據(jù)不丟失,但速度較慢,適合存儲(chǔ)需長(zhǎng)期保留的不變數(shù)據(jù)。在嵌入式系統(tǒng)中,rom用固定數(shù)據(jù)和程序。n常見rom有mask rom(掩模rom)、prom(prog

16、rammable rom,可編程rom)、eprom(erasable programmable rom,可擦寫rom)、eeprom(電可擦除可編程rom,也可表示為e2prom)、flash rom(閃速存儲(chǔ)器)nmask rom一次性由廠家寫入數(shù)據(jù)的rom,用戶無法修改。prom出廠時(shí)廠家并沒有寫入數(shù)據(jù),而是保留里面的內(nèi)容為全0或全1,由用戶來編程一次性寫入數(shù)據(jù)。eprom可以通過紫外光的照射,擦掉原先的程序,芯片可重復(fù)擦除和寫入。e2prom是通過加電擦除原編程數(shù)據(jù),通過高壓脈沖可以寫入數(shù)據(jù),寫入時(shí)間較長(zhǎng)。flash rom斷電不會(huì)丟失數(shù)據(jù)(nvram),可快速讀取,電可擦寫可編程。n

17、3flash memorynflash memory(閃速存儲(chǔ)器)是嵌入式系統(tǒng)中重要的組成部分,用來存儲(chǔ)程序和數(shù)據(jù),掉電后數(shù)據(jù)不會(huì)丟失。但在使用flash memory時(shí),必須根據(jù)其自身特性,對(duì)存儲(chǔ)系統(tǒng)進(jìn)行特殊設(shè)計(jì),以保證系統(tǒng)的性能達(dá)到最優(yōu)。nflash memory是一種非易失性存儲(chǔ)器nvm(non-volatile memory),根據(jù)結(jié)構(gòu)的不同可以將其分成nor flash和nand flash兩種。nflash memory在物理結(jié)構(gòu)上分成若干個(gè)區(qū)塊,區(qū)塊之間相互獨(dú)立。nor flash把整個(gè)存儲(chǔ)區(qū)分成若干個(gè)扇區(qū)(sector),而nand flash把整個(gè)存儲(chǔ)區(qū)分成若干個(gè)塊(bloc

18、k),可以對(duì)以塊或扇區(qū)為單位的內(nèi)存單元進(jìn)行擦寫和再編程。n由于flash memory的寫操作只能將數(shù)據(jù)位從1寫成0,而不能從0寫成1,所以在對(duì)存儲(chǔ)器進(jìn)行寫入之前必須先執(zhí)行擦除操作,將預(yù)寫入的數(shù)據(jù)位初始化為1。擦操作的最小單位是一個(gè)區(qū)塊,而不是單個(gè)字節(jié)。nand flash執(zhí)行擦除操作是十分簡(jiǎn)單的,而nor型內(nèi)存則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為0。n由于擦除nor flash時(shí)是以64128kb為單位的塊進(jìn)行的,執(zhí)行一個(gè)寫入擦除操作的時(shí)間為5s,與此相反,擦除nand flash是以832kb的塊進(jìn)行的,執(zhí)行相同的操作最多只需要4ms。nnor flash的讀速度比nand fl

19、ash稍快一些,nand flash的寫入速度比nor flash快很多。nand flash的隨機(jī)讀取能力差,適合大量數(shù)據(jù)的連續(xù)讀取。n除了nor flash的讀,flash memory的其他操作不能像ram那樣,直接對(duì)目標(biāo)地址進(jìn)行總線操作。例如執(zhí)行一次寫操作,它必須輸入一串特殊的指令(nor flash ),或者完成一段時(shí)序(nand flash)才能將數(shù)據(jù)寫入到flash memory中。nnor flash帶有sram接口,有足夠的地址引腳來尋址,可以很容易地存取其內(nèi)部的每一個(gè)字節(jié)。nand flash地址、數(shù)據(jù)和命令共用8位總線/16位總線,每次讀寫都要使用復(fù)雜的i/o接口串行地存

20、取數(shù)據(jù),8位總線/16位總線用來傳送控制、地址和資料信息。nnand flash讀和寫操作采用512b的塊,類似硬盤管理操作。因此,基于nand的閃存可以取代硬盤或其他塊設(shè)備。nnor flash容量通常在1 mb8mb之間。而nand flash用在8mb以上的產(chǎn)品當(dāng)中。nor flash主要應(yīng)用在代碼存儲(chǔ)介質(zhì)中,nand flash適用于資料存儲(chǔ)。n所有flash memory器件存在位交換現(xiàn)象。flash memory在讀寫數(shù)據(jù)過程中,偶然會(huì)產(chǎn)生一位或幾位數(shù)據(jù)錯(cuò)誤,即位反轉(zhuǎn)。位反轉(zhuǎn)無法避免,只能通過其他手段對(duì)產(chǎn)生的結(jié)果進(jìn)行事后處理。位反轉(zhuǎn)的問題多見于nand flash。nand fla

21、sh的供貨商建議使用nand flash的時(shí)候,同時(shí)使用edc/ecc(錯(cuò)誤探測(cè)錯(cuò)誤糾正)算法,以確??煽啃浴?nflash memory在使用過程中,可能導(dǎo)致某些區(qū)塊的損壞。區(qū)塊一旦損壞,將無法進(jìn)行修復(fù)。nand flash中的壞塊是隨機(jī)分布的,尤其是nand flash在出廠時(shí)就可能存在這樣的壞塊(已經(jīng)被標(biāo)識(shí)出)。nand flash需要對(duì)介質(zhì)進(jìn)行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標(biāo)記為不可用。如果對(duì)已損壞的區(qū)塊進(jìn)行操作,可能會(huì)帶來不可預(yù)測(cè)的錯(cuò)誤。n應(yīng)用程序可以直接在nor flash內(nèi)運(yùn)行,不需要再把代碼讀到系統(tǒng)ram中運(yùn)行。nor flash的傳輸效率很高,在14mb的小容量時(shí)具有很高的成

22、本效益,但是很低的寫入和擦除速度大大影響了它的性能。nand flash結(jié)構(gòu)可以達(dá)到高存儲(chǔ)密度,并且寫入和擦除的速度也很快,應(yīng)用nand flash的困難在于需要特殊的系統(tǒng)接口。n在nor flash上運(yùn)行代碼不需要任何的軟件支持。在nand flash上進(jìn)行同樣操作時(shí),通常需要驅(qū)動(dòng)程序,也就是內(nèi)存技術(shù)驅(qū)動(dòng)程序(mtd )。nand flash和nor flash在進(jìn)行寫入和擦除操作時(shí)都需要mtd。n在nand flash中每個(gè)塊的最大擦寫次數(shù)是一百萬次,而nor flash的擦寫次數(shù)是十萬次。nand flash除了具有10:1的塊擦除周期優(yōu)勢(shì),典型的nand flash塊尺寸要比nor型閃

23、存小8倍,每個(gè)nand flash的內(nèi)存塊在給定的時(shí)間內(nèi)刪除次數(shù)要少一些。n4標(biāo)準(zhǔn)存儲(chǔ)卡(標(biāo)準(zhǔn)存儲(chǔ)卡(compact flash,cf卡)卡)ncf卡是利用flash技術(shù)的存儲(chǔ)卡,內(nèi)部結(jié)構(gòu)如圖4.2.1所示,接口具有pcmcia-ata功能,可以工作在ide接口模式,也可以工作在pc card模式。衍生出來的cf+卡物理規(guī)格和cf完全相同,在手持設(shè)備上應(yīng)用,如cf串口卡、cf modem. cf藍(lán)牙、cf usb卡、cf網(wǎng)卡、cf gps卡、cf gprs卡等。按照cf+卡標(biāo)準(zhǔn),它不一定要支持ata接口。通常建議cf+卡工作在pcmcia模式。cf卡可以看作是pcmcia卡的一個(gè)子集,可以通過

24、物理上的轉(zhuǎn)換器,直接轉(zhuǎn)換成pcmcia卡使用。ncf卡可分為i型和ii型兩類,二者的規(guī)格和特性基本相同,只是ii型比i型略厚一些(5.0mm,3.3mm),ii型插座可以同時(shí)兼容i型卡。圖4.2.1 cf卡內(nèi)部結(jié)構(gòu)ncf卡有3種工作模式:pc卡ata i/o模式、pc卡ata存儲(chǔ)模式和實(shí)ide模式。實(shí)ide模式與ide接口完全兼容。cf卡遵循ata協(xié)議,屬于塊存儲(chǔ)設(shè)備,存儲(chǔ)單元是通過磁頭(head)、柱面(cylinder,也稱磁道)和扇區(qū)(sector )組織起來的。在物理尋址(chs)方式下,每一組h/c/s參數(shù)唯一確定存儲(chǔ)卡中的一個(gè)扇區(qū),通常一個(gè)扇區(qū)擁有512b的數(shù)據(jù)空間。一個(gè)驅(qū)動(dòng)數(shù)格式

25、化后的容量為磁頭數(shù)柱面數(shù)扇區(qū)數(shù)512字節(jié)。在物理尋址模式下,扇區(qū)(s)是最低的地址單位,其次是磁頭(h),最后的柱面(c)為最高尋址單位。此外,還有邏輯尋址方式(lba)。在這種尋址方式下,cf卡按照以連續(xù)序列的邏輯扇區(qū)編號(hào)進(jìn)行尋址,主機(jī)不必知道cf卡的物理幾何結(jié)構(gòu)。使用28個(gè)數(shù)據(jù)位來表示邏輯扇區(qū)的地址,可以尋址228個(gè)扇區(qū),理論上可以尋址136gb的容量。物理尋址方式與邏輯尋址方式的對(duì)應(yīng)關(guān)系如下所示: nlba=nhnsc+nch+s-1;nc=(lba div ns)div nh;nh=(lba div ns)mod nh;ns=(lba mod ns)+1。n其中:ns為每磁道扇區(qū)數(shù),n

26、h為磁頭數(shù),c、h、s分別表示磁盤的柱面、磁頭和扇區(qū)編號(hào),lba表示邏輯扇區(qū)號(hào),div為整除計(jì)算,mod為求余計(jì)算。 n5安全數(shù)據(jù)卡(安全數(shù)據(jù)卡(secure digital card,sd卡)卡)n由日本panasonic公司、toshiba公司和美國(guó)sandisk公司共同開發(fā)研制的sd卡是一種全新的存儲(chǔ)卡產(chǎn)品,在mp3、數(shù)碼攝像機(jī)、數(shù)碼相機(jī)、電子圖書及av器材等中應(yīng)用。sd存儲(chǔ)卡采用一個(gè)完全開放的標(biāo)準(zhǔn)(系統(tǒng)),外形與multimedia卡保持一致,比mmc卡略厚,具有更大的容量,兼容mmc卡接口規(guī)范。sd卡具有加密功能,可以保證數(shù)據(jù)資料的安全保密。sd卡具有版權(quán)保護(hù)技術(shù),所采用的版權(quán)保護(hù)技

27、術(shù)是dvd中使用的cprm技術(shù)(可刻錄介質(zhì)內(nèi)容保護(hù))。n6硬盤存儲(chǔ)器硬盤存儲(chǔ)器n硬盤存儲(chǔ)器具有存儲(chǔ)容量大,使用壽命長(zhǎng),存取速度較快的特點(diǎn),也是在嵌入式系統(tǒng)中常用的外存。n硬盤存儲(chǔ)器的硬件包括硬盤控制器(適配器)、硬盤驅(qū)動(dòng)器以及連接電纜。硬盤控制器(hard disk controller,簡(jiǎn)稱hdc)對(duì)硬盤進(jìn)行管理,并在主機(jī)和硬盤之間傳送數(shù)據(jù)。硬盤控制器以適配卡的形式插在主板上或直接集成在主板上,然后通過電纜與硬盤驅(qū)動(dòng)器相連。硬盤驅(qū)動(dòng)器(hard disk drive,簡(jiǎn)稱hdd)中有盤片、磁頭、主軸電機(jī)(盤片旋轉(zhuǎn)驅(qū)動(dòng)機(jī)構(gòu))、磁頭定位機(jī)構(gòu)、讀寫電路和控制邏輯等。n硬盤存儲(chǔ)器可分為溫徹斯特盤和非

28、溫徹斯特盤兩類。溫徹斯特盤是根據(jù)溫徹斯特技術(shù)設(shè)計(jì)制造的,它的磁頭、盤片、磁頭定位機(jī)構(gòu)、主軸、甚至連讀寫驅(qū)動(dòng)電路等都被密封在一個(gè)盤盒內(nèi),構(gòu)成一個(gè)頭一盤組合體。溫徹斯特盤的防塵性能好,可靠性高,對(duì)使用環(huán)境要求不高。非溫徹斯特盤磁盤的磁頭和盤片等不是密封的,通常只能用于中型、大型計(jì)算機(jī)機(jī)房中。n最常見的硬盤接口是ide(ata)和scsi兩種,一些移動(dòng)硬盤采用pcmcia或usb接口。nide( integrated drive electronics)接口也稱為ata(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))接口,是一個(gè)通用的硬盤接口。ide接口的硬盤可細(xì)分為ata-1(ide)、ata-2(eide)、ata-3(f

29、ast ata-2)、ata-4(包括ultra ata、ultra ata/33、ultra ata/66)與serial ata(包括ultra ata/100及其他后續(xù)的接口類型)?;镜膇de接口數(shù)據(jù)傳輸率為4.1 mb/s,傳輸方式有pio和dma兩種,支持總線為isa和eisa。ata-2、atapi和針對(duì)pci總線的fast-ata、fast-ata2等數(shù)據(jù)傳輸率達(dá)到了16.67mb/s。ultra dma/33接口(稱為eide接口),采用pio模式,數(shù)據(jù)傳輸率達(dá)到33mb/s。ultradma/66接口的傳輸率為ultra dma/33的兩倍,采用crc(循環(huán)冗余循環(huán)校驗(yàn))技

30、術(shù)以保證數(shù)據(jù)傳輸?shù)陌踩?,并且使用?0線的專用連接電纜,是現(xiàn)在市場(chǎng)上主流的硬盤接口類型。ultra ata/ 100是最有前景的硬盤接口,它的理論最大外部數(shù)據(jù)傳輸率可以高達(dá)100mb/s。nscsi(small computer system interface,小型計(jì)算機(jī)系統(tǒng)接口)不是專為硬盤設(shè)計(jì)的,是一種總線型接口。scsi獨(dú)立于系統(tǒng)總線工作,其系統(tǒng)占用率極低,但其價(jià)格昂貴,具有這種接口的硬盤大多用于服務(wù)器等高端應(yīng)用場(chǎng)合。4.3 nor flash接口電路n4.3.1 nor flash存儲(chǔ)器am29lv160dnam29lv160d是amd公司的一款nor flash存儲(chǔ)器,存儲(chǔ)容量為

31、2m8bit/1m16bit,接口與cmos i/o兼容,工作電壓為2.73.6v,讀操作電流為9ma,編程和擦除操作電流為20ma,待機(jī)電流為200na。采用fbga-48、tsop-48、so-44 三種封裝形式。nam29lv160d僅需3.3v電壓即可完成在系統(tǒng)的編程與擦除操作,通過對(duì)其內(nèi)部的命令寄存器寫入標(biāo)準(zhǔn)的命令序列,可對(duì)flash進(jìn)行編程(燒寫)、整片擦除、按扇區(qū)擦除,以及其他操作。以16位(字模式)數(shù)據(jù)寬度的方式工作。更多的內(nèi)容請(qǐng)登錄www.amd.com,查找資料“am29lv160d 16 megabit (2 m8-bit/1 m16-bit) cmos 3.0 volt

32、-only boot sector flash memory”。nam29lv160d的邏輯框圖如圖4.3.1所示,引腳端功能如表4.3.1所示。 引腳類型功能a19a0輸入地址輸入。提供存儲(chǔ)器地址dq14dq0輸入/輸出數(shù)據(jù)輸入/輸出dq15/a-1輸入/輸出在字模式,dq15為數(shù)據(jù)輸入/輸出;在字節(jié)模式,a-1為 lsb地址輸入byte#輸入選擇8bit 或者16bit 模式ce#輸入片選。當(dāng)ce# 為低電平時(shí),芯片有效oe#輸入輸出使能。當(dāng)oe# 為低電平時(shí),輸出有效we#輸入寫使能,低電平有效,控制寫操作reset#輸入硬件復(fù)位引腳端,低電平有效ry/by#輸出就緒/忙標(biāo)志信號(hào)輸出,s

33、o-44封裝無此引腳端vcc電源3 v電源電壓輸入vss地器件地nc未連接??漳_圖4.3.1 am29lv160d的邏輯框圖表4.3.1 am29lv160d引腳端功能n4.3.2 s3c2410a與nor flash存儲(chǔ)器的接口電路ns3c2410a與am29lv160d的接口電路如圖4.3.2所示。flash存儲(chǔ)器在系統(tǒng)中通常用于存放程序代碼,系統(tǒng)上電或復(fù)位后從此獲取指令并開始執(zhí)行,因此,應(yīng)將存有程序代碼的flash存儲(chǔ)器配置到bank0,即將s3c2410a的ngcs0接至am29lv160d的ce(nce)端。am29lv160d的oe(noe)端接s3c2410x的noe;we(nx

34、e)端s3c2410x的nwe相連;地址總線a19a0與s3c2410x的地址總線addr20addr1(a20a1)相連;16位數(shù)據(jù)總線dq15dq0與s3c2410x的低16位數(shù)據(jù)總線data15data0(d15d0)相連。n注意:此時(shí)應(yīng)將bwscon中的dw0設(shè)置為01,即選擇16位總線方式。n如果需要更大的nor flash存儲(chǔ)容量,可以采用容量更大的nor flash存儲(chǔ)器芯片,如28f128j3a、28f640j3a等。更多的內(nèi)容請(qǐng)登錄,查找資料“3 volt intel strata flash memory 28f128j3a, 28f640j3a, 28f320j3a (x

35、8/x16)”。圖4.3.2 s3c2410a與am29lv160d的接口電路ns3c2410a與28f128j3a的接口電路如圖4.3.3所示。s3c2410x的ngcs0接至28f128j3a的ce0(nce)端。28f128j3a的oe(noe)端接s3c2410x的noe;we(nwe)端s3c2410x的nwe相連;地址總線a24a1與s3c2410x的地址總線addr24addr1(a24a1)相連,a0直接接地;16位數(shù)據(jù)總線dq15dq0與s3c2410x的低16位數(shù)據(jù)總線data15data0(d15d0)相連。圖4.3.3 s3c2410a與28f128j3a的接口電路4.

36、4 nand flash接口電路接口電路n4.4.1 s3c2410a nand flash控制器n1s3c2410a nand flash控制器特性控制器特性ns3c2410a可以在一個(gè)外部nand flash存儲(chǔ)器上執(zhí)行啟動(dòng)代碼,用來實(shí)現(xiàn)這一想法。為了支持nand flash的啟動(dòng)裝載(boot loader),s3c2410a配置了一個(gè)叫做“steppingstone”的內(nèi)部sram緩沖器。當(dāng)系統(tǒng)啟動(dòng)時(shí),nand flash存儲(chǔ)器的前4kb將被自動(dòng)加載到steppingstone中,然后系統(tǒng)自動(dòng)執(zhí)行這些載入的啟動(dòng)代碼。n在一般情況下,啟動(dòng)代碼將復(fù)制nand flash的內(nèi)容到sdram中

37、。使用s3c2410a內(nèi)部硬件ecc功能可以對(duì)nand flash的數(shù)據(jù)的有效性進(jìn)行檢查。在復(fù)制完成后,將在sdram中執(zhí)行主程序。nnand flash控制器具有以下特性。nnand flash模式:支持讀擦除編程nand flash存儲(chǔ)器。 自動(dòng)啟動(dòng)模式:復(fù)位后,啟動(dòng)代碼被傳送到steppingstone中。傳送完畢后,啟動(dòng)代碼在steppingstone中執(zhí)行。 具有硬件ecc產(chǎn)生模塊(硬件生成校驗(yàn)碼和通過軟件校驗(yàn))。 在nand flash啟動(dòng)后,steppingstone 4kb內(nèi)部sram緩沖器可以作為其他用途使用。 nand flash控制器不能通過dma訪問,可以使用ldm/

38、stm指令來代替dma操作。n2s3c2410a nand flash控制器結(jié)構(gòu)控制器結(jié)構(gòu)nnand flash控制器的內(nèi)部結(jié)構(gòu)方框圖如圖4.4.1所示。nand flash的工作模式如圖4.4.2所示。圖4.4.1 nand flash控制器內(nèi)部結(jié)構(gòu)方框圖圖4.4.2 nand flash的操作模式n自動(dòng)啟動(dòng)模式的時(shí)序如下:n(1)完成復(fù)位;n(2)當(dāng)自動(dòng)啟動(dòng)模式使能時(shí),首先將nand flash存儲(chǔ)器的前4 kb內(nèi)容自動(dòng)復(fù)制到steppingstone 4 kb內(nèi)部緩沖器中;n(3)steppingstone映射到ngcso;n(4)cpu開始執(zhí)行在steppingstone 4 kb內(nèi)部

39、緩沖器中的啟動(dòng)代碼。n注意:在自動(dòng)啟動(dòng)模式,不進(jìn)行ecc檢測(cè)。因此,應(yīng)確保nand flash的前4 kb不能有位錯(cuò)誤。nnand flash模式配置:n(1)利用nfconf寄存器設(shè)置nand flash配置;n(2)寫nand flash命令到nfcmd寄存器;n(3)寫nand flash地址到nfaddr寄存器;n(4)在檢查nand flash狀態(tài)時(shí),利用nfstat寄存器讀寫數(shù)據(jù)。在讀操作之前或者編程操作之后應(yīng)該檢查r/nb信號(hào)。 nnand flash存儲(chǔ)器的時(shí)序如圖4.4.3所示。圖4.4.3 nand flash存儲(chǔ)器的時(shí)序(tacls0,twrph01,twrph10) n

40、nand flash控制器的引腳配置如表4.4.1所列。表4.4.1 nand flash控制器的引腳配置引腳配置d7:0數(shù)據(jù)/命令/地址輸入/輸出端口(用數(shù)據(jù)總線分派)cle命令鎖存使能(輸出)ale地址鎖存使能(輸出)nfcenand flash芯片使能(輸出)nfrenand flash讀使能(輸出)nfwenand flash寫使能(輸出)r/nbnand flash準(zhǔn)備就緒/忙使能(輸出)nboot(啟動(dòng))和nand flash配置如下:n(1)om1: 0=00b:使能nand flash控制器為自動(dòng)啟動(dòng)模式;n(2)nand flash存儲(chǔ)器的頁(yè)面大小應(yīng)該為512字節(jié);n(3)n

41、con:nand flash存儲(chǔ)器尋址步選擇。0為3步尋址;1為4步尋址。n512字節(jié)ecc奇偶校驗(yàn)碼分配表如表4.4.2所示。表4.4.2 512字節(jié)ecc奇偶校驗(yàn)碼分配表n在寫讀操作期間,s3c2410a自動(dòng)生成512字節(jié)的ecc奇偶校驗(yàn)碼。每個(gè)512字節(jié)數(shù)據(jù)的ecc奇偶校驗(yàn)碼由3字節(jié)組成。n24位位ecc奇偶校驗(yàn)碼奇偶校驗(yàn)碼=18位行奇偶位行奇偶6位列奇偶位列奇偶necc生成模塊執(zhí)行以下操作:n(1)當(dāng)mcu寫數(shù)據(jù)到nand時(shí),ecc生成模塊產(chǎn)生ecc代碼。n(2)當(dāng)mcu從nand讀數(shù)據(jù)時(shí),ecc生成模塊產(chǎn)生ecc代碼,同時(shí)用戶程序?qū)⑺c先前寫入的ecc代碼進(jìn)行比較。n4.4.2 s3

42、c2410a與nand flash存儲(chǔ)器的接口電路n與nor flash存儲(chǔ)器相比,nand flash的接口相對(duì)比較復(fù)雜。一些嵌入式處理器芯片內(nèi)部配置了專門的nand flash控制器,如s3c2410a。ns3c2410a與nand flash存儲(chǔ)器k9f1208udm-ycb0接口電路如圖4.4.4所示。k9f1208udm-ycb0的存儲(chǔ)容量為64m字節(jié),數(shù)據(jù)總線寬度為8位,工作電壓為2.7v3.6v,采用tsop-48封裝。僅需單3.3v電壓即可完成在系統(tǒng)的編程與擦除操作,引腳端功能如表4.4.3所示。更多的內(nèi)容請(qǐng)登錄,查找資料“k9f1208u0m-ycb0,k9f1208u0m-

43、yib0 64m8 bit nand flash memory”。表4.4.3 k9f1208udm的引腳功能引腳類型功能i/o7 i/o0輸入/輸出數(shù)據(jù)輸入輸出、控制命令和地址的輸入cle輸入命令鎖存信號(hào)ale輸入地址鎖存信號(hào)/ce輸入芯片使能信號(hào)/re輸入讀有效信號(hào)/we輸入寫有效信號(hào)/wp輸入寫保護(hù)信號(hào)r/nb輸出就緒/忙標(biāo)志信號(hào)輸出vcc電源電源電壓2.7v3.3vvss接地器件地nk9f1208udm的i/o口既可接收和發(fā)送數(shù)據(jù),也可接收地址信息和控制命令。在cle有效時(shí),鎖存在i/o口上的是控制命令字;在ale有效時(shí),鎖存在i/o口上的是地址;/re或/we有效時(shí),鎖存的是數(shù)據(jù)。這

44、種一口多用的方式可以大大減少總線的數(shù)目,只是控制方式略微有些復(fù)雜。利用s3c2410x處理器的nand flash控制器可以解決這個(gè)問題。n在圖4.4.4中,k9f1208udm的ale和cle端分別與s3c2410a的ale和cle端連接,8位的i/o7i/o0與s3c2410a低8位數(shù)據(jù)總線data7data0相連,/we、/re和/ce分別與s3c2410a的nfwe、nfre和nfce相連,r/b與rnb相連,為增加穩(wěn)定性r/nb端口連接了一個(gè)上拉電阻。同時(shí),s3c2410a的ncon配置端口必須連接一個(gè)上拉電阻,圖4.4.4 s3c2410a與k9f1208udm-ycb0接口電路(

45、注意:原理圖中l(wèi)data修改為data,u4刪除,vdd33v修改為vdd33,u-k9f1208udm-yc80修改為k9f1208udm-ycb0)4.5 sdram接口電路接口電路nsdram可讀可寫,不具有掉電保持?jǐn)?shù)據(jù)的特性,但其存取速度大大高于flash存儲(chǔ)器。在嵌入式系統(tǒng)中,sdram主要用做程序的運(yùn)行空間、數(shù)據(jù)及堆棧區(qū)。當(dāng)系統(tǒng)啟動(dòng)時(shí),cpu首先從復(fù)位地址0 x0處讀取啟動(dòng)代碼,在完成系統(tǒng)的初始化后,程序代碼一般應(yīng)調(diào)入sdram中運(yùn)行,以提高系統(tǒng)的運(yùn)行速度。同時(shí),系統(tǒng)及用戶堆棧、運(yùn)行數(shù)據(jù)也都放在sdram中。nsdram在各種嵌入式系統(tǒng)中應(yīng)用時(shí),為避免數(shù)據(jù)丟失,必須定時(shí)刷新。因此要

46、求微處理器具有刷新控制邏輯,或在系統(tǒng)中另外加入刷新控制邏輯電路。s3c2410x及其他一些arm芯片在片內(nèi)具有獨(dú)立的sdram刷新控制邏輯,可方便地與sdram接口。但某些arm芯片則沒有sdram刷新控制邏輯,不能直接與sdram接口,在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí)應(yīng)注意這一點(diǎn)。n目前常用的sdram為8位/16位的數(shù)據(jù)寬度,工作電壓一般為3.3v。主要的生產(chǎn)廠商為hyundai,winbond等,同類型器件一般具有相同的電氣特性和封裝形式,可以通用。ns3c2410x與sdram存儲(chǔ)器hy57v561620接口電路如圖4.4.5所示。nhy57v561620存儲(chǔ)容量為4組64m位,工作電壓為3.3v,常

47、見封裝為tsop-54,兼容lvttl接口,支持自動(dòng)刷新(auto-refresh)和自刷新(self-refresh),16位數(shù)據(jù)寬度。hy57v561620引腳功能如表4.4.4所示。更多的內(nèi)容請(qǐng)登錄,查找資料“hy57v561620(l)t 4banks x 4m x 16bit synchronous dram”。 表4.4.4 hy57v561620引腳功能 引腳類型功能clk輸入時(shí)鐘,芯片時(shí)鐘輸入。所有的輸入中clk的上升沿有效cke輸入時(shí)鐘使能,片內(nèi)時(shí)鐘信號(hào)控制/cs輸入片選。禁止或使能除clk、 cke和dqm外的所有輸入信號(hào)bao,ba1輸入組地址選擇。用于片內(nèi)4個(gè)組的選擇a

48、12a0輸入地址總線。行地址:a12a0;列地址:a8a0/ras輸入行地址鎖存。時(shí)鐘沿和/ras有效時(shí),鎖存行地址,允許行的訪問和改寫/cas輸入列地址鎖存。時(shí)鐘沿和/cas有效時(shí),鎖存列地址,允許列的訪問/we輸入寫使能。使能寫信號(hào)和允許列改寫,we和/cas有效時(shí)開始鎖存數(shù)據(jù)ldqm,udqm輸入數(shù)據(jù)i/o屏蔽。在讀模式下控制輸出緩沖;在寫模式下屏蔽輸入數(shù)據(jù)dq15dq0輸入/輸出數(shù)據(jù)總線。數(shù)據(jù)輸入/輸出vdd/vss電源地內(nèi)部電路及輸入緩沖器電源地vddq/vssq電源地輸出緩沖器電源地nc空腳。未連接(引腳端19 ngcs0修改為ngcs6)圖4.4.5 s3c2410x與sdram

49、存儲(chǔ)器hy57v561620的接口電路n根據(jù)系統(tǒng)需求,可構(gòu)建16位或32位的sdram存儲(chǔ)器系統(tǒng),但為充分發(fā)揮32位cpu的數(shù)據(jù)處理能力,本設(shè)計(jì)采用32位的sdram存儲(chǔ)器系統(tǒng)。hy57v561620為16位數(shù)據(jù)寬度,單片容量為32mb,系統(tǒng)選用兩片hy57v561620并聯(lián)構(gòu)建32位的sdram存儲(chǔ)器系統(tǒng),共64mb的sdram空間,可滿足嵌入式操作系統(tǒng)及各種相對(duì)較復(fù)雜的算法的運(yùn)行要求。與flash存儲(chǔ)器相比,sdram的控制信號(hào)較多,其連接電路也要相對(duì)復(fù)雜一些。n兩片hy57v561620并聯(lián)構(gòu)建32位的sdram存儲(chǔ)器系統(tǒng),其中一片為高16位,另一片為低16位,可將兩片hy57v5616

50、20作為一個(gè)整體配置到bank6即將s3c2410x的ngcs6接至兩片hy57v561620的/cs端。n高位hy57v561620的clk端連接到s3c2410x的sclk1端,低位hy57v561620的clk端連接到s3c2410x的sclk0端;n兩片hy57v561620的cke端連接到s3c2410x的scke端;n兩片hy57v561620的/ras、/cas. /we端分別連接到s3c2410x的nsdras端、nsdcas端、ndwe端;n兩片hy57v561620的a12a0連接到s3c2410x的地址總線addr14addr2(a14a2);n兩片hy57v561620

51、的ba1、ba0連接到s3c2410x的地址總線addr25(a25)、addr24(a24);n高16位片的dq15dq0連接到s3c2410x的數(shù)據(jù)總線的高16位data8data16(d8d16),低16位片的dq15dq0連接到s3c2410x的數(shù)據(jù)總線的低16位data15data0(d15d0);n高16位片的udqm、ldqm分別連接到s3c2410x的nweb3、nweb2,低16位片的udqm、ldqm分別連接到s3c2410x的nweb1、nweb0。n注意:此時(shí)應(yīng)將bwscon中的dw6設(shè)置為10,即選擇32位總線方式。 4.6 cf卡接口電路卡接口電路n4.6.1 pc

52、mcia接口規(guī)范n1990年9月,pcmcia(personal computer memory card international association,pc機(jī)內(nèi)存卡國(guó)際聯(lián)合會(huì))推出了pcmcia 1.0規(guī)范,該規(guī)范是針對(duì)各類存儲(chǔ)卡或虛擬盤設(shè)計(jì)的,其目的是為了建立一個(gè)物理尺寸較小、低功耗的、靈活的存儲(chǔ)卡標(biāo)準(zhǔn),采用16位體系結(jié)構(gòu), jeida(janpanese electronics industry development association)68引腳的接口。1991年,pcmcia推出了2.0規(guī)范,添加了對(duì)i/o設(shè)備的規(guī)范,以方便用戶擴(kuò)展i/o設(shè)備,但接口仍采用與1.0規(guī)范兼容的

53、68引腳的接口;同時(shí),pcmcia對(duì)其驅(qū)動(dòng)程序的架構(gòu)也作了規(guī)范,以便于軟件開發(fā)人員開發(fā)的驅(qū)動(dòng)程序可以相互兼容。隨著多媒體和高速網(wǎng)絡(luò)的發(fā)展,pcmcia又開發(fā)了32位的cardbus?,F(xiàn)在,基于pcmcia的設(shè)備已經(jīng)在筆記本電腦、數(shù)碼相機(jī)、機(jī)頂盒、車載設(shè)備、手持設(shè)備、pda等方面被廣泛的采用。越來越多的產(chǎn)品都需要接口具有可擴(kuò)展模塊化的功能,因此pcmcia也將自己的目標(biāo)定位為 “發(fā)展模塊化外設(shè)的標(biāo)準(zhǔn),并將他們推廣到全世界”。npcmcia物理上定義了68個(gè)引腳,卡片有16位和32位之分。16位的pcmcia卡通常叫pccard,其時(shí)序和isa總線類似,速度較慢。采用32位pcmcia標(biāo)準(zhǔn)的稱做c

54、ardbus卡,其運(yùn)行頻率達(dá)到33mhz,可以滿足一般局域網(wǎng)及寬帶應(yīng)用的要求。cardbus接口的信號(hào)傳輸協(xié)議起源于pci局部總線信號(hào)傳輸協(xié)議,支持以任何組合形式實(shí)現(xiàn)多個(gè)總線功能。總線主控功能可為處理器分擔(dān)任務(wù),有利于在多任務(wù)環(huán)境中改善系統(tǒng)的吞吐量。cardbus卡可以在移動(dòng)環(huán)境下應(yīng)用。pcmcia接口和系統(tǒng)總線接口通常需要一個(gè)hba(host bus adepter)運(yùn)行轉(zhuǎn)換,這個(gè)hba可以是一個(gè)芯片,也可以是一些邏輯。pcmcia卡可以支持5v和3.3v的供電電壓,pcmcia規(guī)范中采用電壓敏感vs(voltage sense)信號(hào)識(shí)別插入的pcmcia卡的工作電壓。npcmcia卡可以分

55、為i型(typei)、ii型(typeii)、iii型(typeiii)、擴(kuò)展typei和擴(kuò)展typeii 5種,其中i型iii型pcmcia卡的外形尺寸為85.60mm54.00mm,卡的厚度分別為3.3mm、5.0mm和10.5mm。而擴(kuò)展typei和擴(kuò)展typeii的pcmcia卡可以兼容某些尺寸較大的接口,如rj45接口等。npcmcia規(guī)范里一共定義了6類pcmcia內(nèi)存卡,分別是內(nèi)存卡、i/o卡(內(nèi)存或i/o)、硬盤ata(at attachment for ide drivers)接口、dma(direct memory access)接口、aim s(auto-indexing

56、 mass storage)和32位pc卡接口cardbus。n4.6.2 s3c2410a的cf卡接口電路ncf卡接口采用50個(gè)引腳,ii型卡并完全符合pcmcia電氣和機(jī)械接口規(guī)格(pcmcia卡為68個(gè)引腳),同時(shí)支持3.3v和5v的電壓。在50個(gè)引腳中,其中有16根數(shù)據(jù)線、11根地址線(在tureide模式下僅用3根地址線)、2根寄存器組選擇信號(hào)線(cs0和cs1)、數(shù)據(jù)的讀寫線(iord和iowr)、1根中斷信號(hào)請(qǐng)求線(intrq)和1根復(fù)位線(reset)。cf卡可以工作在16位或者8位數(shù)據(jù)總線方式。若選擇8位工作方式,cs1固定接于高電平,cs0低電平有效。intrq用于判斷cf

57、卡是否處于讀寫忙狀態(tài)。 n與s3c2410a連接的cf卡接口電路如圖4.6.1所示。圖4.6.1 cf卡接口電路n4.6.3 cf卡的讀寫操作ncf卡可以配置工作在存儲(chǔ)模式和i/o模式。cf卡使用標(biāo)準(zhǔn)ata命令實(shí)現(xiàn)存儲(chǔ)塊的讀寫操作。每個(gè)存儲(chǔ)塊包含512字節(jié),在訪問cf卡之前,必須進(jìn)行初始化操作。初始化過程包括gpio配置、卡檢測(cè)和復(fù)位。n(1)存儲(chǔ)模式訪問n讀取卡信息結(jié)構(gòu)??ㄐ畔⒔Y(jié)構(gòu)包含cf卡的相關(guān)信息。n寫存儲(chǔ)塊。cf卡存儲(chǔ)器一般采用nand flash,需要使用ata命令來完成讀寫操作。cf卡采用塊方式進(jìn)行讀寫操作,每塊的大小為512字節(jié),寫數(shù)據(jù)的操作步驟如下:n(a)寫塊數(shù)到扇區(qū)計(jì)數(shù)器寄

58、存器;n(b)寫lba地址;n(c)發(fā)送0 x30命令來啟動(dòng)傳輸。n當(dāng)cf卡接收到該命令后,將會(huì)使能drq信號(hào)并清除bsy信號(hào),等待主機(jī)寫入數(shù)據(jù),規(guī)定的數(shù)據(jù)寫完后drq會(huì)被清除。n讀存儲(chǔ)塊。與寫存儲(chǔ)塊大致相同,只是命令不一樣,下面是一個(gè)典型的操作序列:n(a)寫塊數(shù)到扇區(qū)計(jì)數(shù)器寄存器;n(b)寫lba地址;n(c)發(fā)送0 x20命令來啟動(dòng)傳輸。n當(dāng)cf卡接收到該命令后,將會(huì)使能drq信號(hào)并清除bsy信號(hào),等待主機(jī)讀出數(shù)據(jù),當(dāng)規(guī)定的數(shù)據(jù)寫完后drq將會(huì)被清除。n(2)i/o模式訪問n配置cf卡工作在i/o模式??梢酝ㄟ^cf卡的配置寄存器將其配置為i/o模式。n寫存儲(chǔ)塊。i/o模式下寫存儲(chǔ)塊與存儲(chǔ)

59、模式類似,惟一的區(qū)別就是需要使用正確的地址空間,步驟如下:n(a)寫塊數(shù)到扇區(qū)計(jì)數(shù)器寄存器;n(b)然后寫lba地址;n(c)發(fā)送0 x30命令來啟動(dòng)傳輸。n讀存儲(chǔ)塊。i/o模式下讀存儲(chǔ)塊步驟如下:n(a)寫塊數(shù)到扇區(qū)計(jì)數(shù)器寄存器;n(b)然后寫lba地址;n(c)發(fā)送0 x20命令來啟動(dòng)傳輸。 4.7 sd卡接口電路卡接口電路n4.7.1 sd卡的接口規(guī)范nsd存儲(chǔ)卡兼容mmc卡接口規(guī)范,采用9芯的接口(clk為時(shí)鐘線,cmd為命令響應(yīng)線,dat0dat3為雙向數(shù)據(jù)傳輸線,vdd、vss1和vss2為電源和地),最大的工作頻率是25mhz,標(biāo)準(zhǔn)sd的外形尺寸是24mm32mm2.1mm,sd

60、卡的外形和接口如圖4.7.1所示,sd卡引腳定義如表4.7.1所示。sd卡原理圖如圖4.7.2所示。nsd卡系統(tǒng)支持sd和spi方式兩種通信協(xié)議。sd卡在結(jié)構(gòu)上使用一主多從星型拓?fù)浣Y(jié)構(gòu),拓?fù)鋱D如圖4.7.3所示。圖4.7.1 sd卡的外形和接口 圖4.7.2 sd卡原理圖圖表4.7.1 sd卡引腳定義引腳sd模式spi模式名稱類型描述名稱類型描述1cd/dat3i/o/pp卡檢測(cè)數(shù)據(jù)線bit 3csi片選信號(hào)2cmdpp命令響應(yīng)dii數(shù)據(jù)輸入3vss1s接地vsss接地4vdds電源電壓vdds電源電壓5clki時(shí)鐘sclki時(shí)鐘6vss2s接地vss2s接地7dat0i/o/pp數(shù)據(jù)線bit

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論