




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、CH9 CH9 存儲系統(tǒng)存儲系統(tǒng) ARM處理器開發(fā)詳解處理器開發(fā)詳解 1 主要內(nèi)容 存儲器尋址 存儲器接口 2 3 9.1 存儲器尋址 u存儲器分布存儲器分布 u各種存儲器操作方法各種存儲器操作方法 u存儲器映射和重映射存儲器映射和重映射 4 1、存儲器分布 ARM的存儲器地址空間的存儲器地址空間 ARM體系是以單一的平板地址空間。該地址空間的大體系是以單一的平板地址空間。該地址空間的大 小為小為232個個8位字節(jié)。這些字節(jié)單元的地址是一個無符號位字節(jié)。這些字節(jié)單元的地址是一個無符號 的的32位數(shù)值,其取值范圍為位數(shù)值,其取值范圍為0到到232 - 1。 ARM的地址空間也可以看作是的地址空間
2、也可以看作是230個個32位的位的字單元字單元。 這些字單元的地址可以這些字單元的地址可以被被4整除整除,也就是該地址的低兩位,也就是該地址的低兩位 為為0b00。地址為。地址為A的字數(shù)據(jù)包括地址為的字數(shù)據(jù)包括地址為A、A+1、A+2、 A+3 4個字節(jié)單元的內(nèi)容。個字節(jié)單元的內(nèi)容。 問題:問題:ARM存儲器如果用作存儲器如果用作半字單元半字單元,地址為,地址為A的半的半 字數(shù)據(jù)包含哪些單元的內(nèi)容?字數(shù)據(jù)包含哪些單元的內(nèi)容? 5 一個具體應(yīng)用可能存在的物理存儲器一個具體應(yīng)用可能存在的物理存儲器 地址空間地址空間 0 xFFFFFFFF0 xFFFFFFFF 0 x000000000 x0000
3、0000 內(nèi)部內(nèi)部FlashFlash 0 x400000000 x40000000 內(nèi)部內(nèi)部SRAMSRAM 0 x800000000 x80000000 外部存儲器外部存儲器 0 x7FFFE0000 x7FFFE000 Boot BlockBoot Block 片外存儲器片外存儲器 片內(nèi)存儲器片內(nèi)存儲器 6 39-ddr2 256M38-nor flash 2M 36- nand flash 256M 2、 各種常見存儲器操作方法 1)片內(nèi))片內(nèi)Flash編程方法:編程方法: JTAG 串口串口 1. 1. 通過內(nèi)置通過內(nèi)置JTAGJTAG接口;接口; 2. 2. 通過在系統(tǒng)編程(通過在
4、系統(tǒng)編程(ISP In-System ProgrammingISP In-System Programming),), 使用使用UART0UART0通信;通信; 3. 3. 通過在應(yīng)用編程(通過在應(yīng)用編程(IAP In-Application IAP In-Application ProgrammingProgramming );); 7 ISP(In-System Programming)在系統(tǒng)可編程)在系統(tǒng)可編程,指電,指電 路板上的空白器件可以編程寫入最終用戶代碼,路板上的空白器件可以編程寫入最終用戶代碼, 而而不需要不需要 從電路板上取下器件從電路板上取下器件,已經(jīng)編程的器件也可以用,
5、已經(jīng)編程的器件也可以用ISP方式擦方式擦 除或再編程除或再編程。 IAP(In-Application Programming)在應(yīng)用編程)在應(yīng)用編程,指,指 MCU可以在系統(tǒng)中獲取新代碼并對自己重新編程,即可以在系統(tǒng)中獲取新代碼并對自己重新編程,即可用可用 程序來改變程序程序來改變程序。 8 ISP和和IAP的比較:的比較: ISP一般是由一般是由上位機上位機的軟件通過單片機專用的的軟件通過單片機專用的串行編程串行編程 接口接口對單片機內(nèi)部的對單片機內(nèi)部的Flash存儲器進行編程存儲器進行編程。 IAP技術(shù)是從結(jié)構(gòu)上將技術(shù)是從結(jié)構(gòu)上將Flash存儲器映射為兩個存儲體存儲器映射為兩個存儲體,
6、當(dāng)運行一個存儲體上的用戶程序時當(dāng)運行一個存儲體上的用戶程序時,可對另一個存儲體重可對另一個存儲體重 新編程新編程,之后將控制從一個存儲體轉(zhuǎn)向另一個之后將控制從一個存儲體轉(zhuǎn)向另一個??梢酝ㄟ^??梢酝ㄟ^ 網(wǎng)絡(luò)下載網(wǎng)絡(luò)下載程序。程序。 9 2)片外)片外Flash編程方法:編程方法: 在在CPUCPU上運行一個裝載程序(上運行一個裝載程序(LoaderLoader,一般由,一般由 用戶編寫),該程序通過串口接收要燒寫的數(shù)據(jù),用戶編寫),該程序通過串口接收要燒寫的數(shù)據(jù), 然后擦除編程然后擦除編程FlashFlash。 串口串口 Loder 程序程序 外部外部 Flash 10 存儲器映射基本概念存儲器
7、映射基本概念 ARMARM處理器產(chǎn)生的地址叫處理器產(chǎn)生的地址叫虛擬地址虛擬地址,把這個虛擬地址,把這個虛擬地址 按照某種規(guī)則轉(zhuǎn)換到另一個按照某種規(guī)則轉(zhuǎn)換到另一個物理地址物理地址去的方法稱為去的方法稱為地址地址 映射映射。這個物理地址表示了被訪問的存儲器的位置。它。這個物理地址表示了被訪問的存儲器的位置。它 是一個地址范圍,該范圍內(nèi)可以寫入程序代碼。是一個地址范圍,該范圍內(nèi)可以寫入程序代碼。 通過地址映射的方法將各存儲器分配到特定的地址通過地址映射的方法將各存儲器分配到特定的地址 范圍后,這時用戶所看見的存儲器分布為范圍后,這時用戶所看見的存儲器分布為存儲器映射存儲器映射。 3、存儲器映射和重映
8、射 11 芯片復(fù)位后用戶看見的地址空間芯片復(fù)位后用戶看見的地址空間 128KB Flash128KB Flash 256KB Flash256KB Flash 16KB SRAM16KB SRAM 8KB BootBlock8KB BootBlock 2MB VPB 2MB VPB 外設(shè)外設(shè) 2MB AHB 2MB AHB 外設(shè)外設(shè) 0 x000000000 x00000000 0 xFFFFFFFF0 xFFFFFFFF 保留給片內(nèi)存儲器使用保留給片內(nèi)存儲器使用 保留給片內(nèi)存儲器使用保留給片內(nèi)存儲器使用 保留給外部儲器使用保留給外部儲器使用 0 x400000000 x40000000 0
9、xE00000000 xE0000000 0 x800000000 x80000000 0 xF00000000 xF0000000 0 x000200000 x00020000 地址空間地址空間 12 AHB和和VPB AHB(先進的高性能總線)和(先進的高性能總線)和VPB(VLSI外設(shè)總線)外設(shè)總線) 外設(shè)區(qū)域都為外設(shè)區(qū)域都為2M字節(jié),可各分配字節(jié),可各分配128個外設(shè)。每個外設(shè)個外設(shè)。每個外設(shè) 空間的規(guī)格都為空間的規(guī)格都為16K字節(jié),這樣就簡化了每個外設(shè)的地址字節(jié),這樣就簡化了每個外設(shè)的地址 譯碼。譯碼。 注意:注意:AHB和和VPB外設(shè)區(qū)域中不管是字還是半字,外設(shè)區(qū)域中不管是字還是半
10、字, 都是一次性訪問。例如不可能對一個字寄存器的最高都是一次性訪問。例如不可能對一個字寄存器的最高 字節(jié)執(zhí)行單獨的讀或?qū)懖僮?。字?jié)執(zhí)行單獨的讀或?qū)懖僮鳌?13 外設(shè)存儲器映射外設(shè)存儲器映射 VPB VPB 外設(shè)外設(shè) AHB AHB 外設(shè)外設(shè) 保留保留 3.5GB3.5GB 3.5GB+2MB3.5GB+2MB 4.0GB-2MB4.0GB-2MB 地址空間地址空間 4.0GB4.0GB 0 xE00000000 xE0000000 0 xE01FFFFF0 xE01FFFFF 0 xFFE000000 xFFE00000 0 xFFFFFFFF0 xFFFFFFFF VPB VPB 外設(shè)外設(shè)
11、AHB AHB 外設(shè)外設(shè) 均為均為12812816KB16KB(2MB2MB)范圍)范圍 14 AHB外設(shè)映射外設(shè)映射 AHB AHB 外設(shè)外設(shè)126126 地址空間地址空間 0 xFFE000000 xFFE00000 0 xFFE040000 xFFE04000 0 xFFFF40000 xFFFF4000 0 xFFFF80000 xFFFF8000 AHB AHB 外設(shè)外設(shè)125125 AHB AHB 外設(shè)外設(shè)0 0 AHB AHB 外設(shè)外設(shè)1 1 0 xFFFFF0000 xFFFFF000 0 xFFFFC0000 xFFFFC000 向量中斷控制器向量中斷控制器 AHB AHB
12、外設(shè)外設(shè)127127 15 VPB外設(shè)映射外設(shè)映射 VPB VPB 外設(shè)外設(shè)3 3 地址空間地址空間 0 xE00000000 xE0000000 0 xE00040000 xE0004000 0 xE00080000 xE0008000 0 xE000C0000 xE000C000 VPB VPB 外設(shè)外設(shè)2 2 VPB VPB 外設(shè)外設(shè)0 0 VPB VPB 外設(shè)外設(shè)1 1 0 xE01FC0000 xE01FC000 VPBVPB外設(shè)外設(shè)127127 看門狗定時器看門狗定時器 定時器定時器0 0 系統(tǒng)控制模塊系統(tǒng)控制模塊 定時器定時器1 1 UART 0UART 0 16 Boot lo
13、ck的映射地址安排的映射地址安排 為了兼容將來的器件,為了兼容將來的器件,整個整個Boot BlockBoot Block被映射到片被映射到片 內(nèi)存儲器空間的頂端內(nèi)存儲器空間的頂端。所以將來的芯片內(nèi)置不同的。所以將來的芯片內(nèi)置不同的RAMRAM和和 FALSHFALSH都不會影響都不會影響B(tài)oot BlockBoot Block的位置。的位置。 地址空間地址空間 FlashFlash SRAMSRAM Boot BlockBoot Block AHB & VPBAHB & VPB 映射位置固定在映射位置固定在 內(nèi)部存儲器頂端內(nèi)部存儲器頂端 RAM和和Flash 的變化不會影響的變化不會影響 B
14、ootBlock的位置的位置 SRAMSRAM FlashFlash 0 x80000000 17 存儲器重新映射存儲器重新映射 存儲器重新映射存儲器重新映射是將復(fù)位后用戶所見的存儲器是將復(fù)位后用戶所見的存儲器 中部分區(qū)域,再次映射到其它的地址上。中部分區(qū)域,再次映射到其它的地址上。 比如,存儲器重新映射區(qū)域一共為比如,存儲器重新映射區(qū)域一共為6464字節(jié),分字節(jié),分 別為異常向量區(qū)(別為異常向量區(qū)(3232字節(jié))和緊隨其后的字節(jié))和緊隨其后的3232字節(jié)。字節(jié)。 存儲器重新映射的方法允許在不同模式下處理中斷,存儲器重新映射的方法允許在不同模式下處理中斷, 重新映射的存儲器區(qū)域在地址重新映射的
15、存儲器區(qū)域在地址0 x000000000 x00000000 0 x0000003F0 x0000003F處。處。 18 AREA vectors,CODE,READONLYAREA vectors,CODE,READONLY ENTRY ENTRY ResetReset LDR PC, ResetAddr LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, PrefetchAddr LDR PC,
16、 DataAbortAddr LDR PC, DataAbortAddr . . . . . . 當(dāng)發(fā)生異常時,程序總是跳轉(zhuǎn)到地址為當(dāng)發(fā)生異常時,程序總是跳轉(zhuǎn)到地址為0 x00000 x0000 0 x003F0 x003F的對應(yīng)入口處,在該地址范圍內(nèi)存儲有異常向量表。的對應(yīng)入口處,在該地址范圍內(nèi)存儲有異常向量表。 指令未定義中止入口 軟件中斷入口 取數(shù)據(jù)中止入口 預(yù)取指中止入口 復(fù)位入口 . . . 存儲器映射控制的必要性存儲器映射控制的必要性 異常向量表異常向量表 AREA vectors,CODE,READONLYAREA vectors,CODE,READONLY ENTRY ENTR
17、Y ResetReset LDR PC, ResetAddr LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, PrefetchAddr LDR PC, DataAbortAddr LDR PC, DataAbortAddr . . . . . . 存儲器映射控制的必要性存儲器映射控制的必要性 復(fù)位后用戶看 見的地址空間間 FlashFlash SRAMSRAM BootBlockBootBloc
18、k VPBVPB外設(shè)外設(shè) AHBAHB外設(shè)外設(shè) 0 x000000000 x00000000 0 xFFFFFFFF0 xFFFFFFFF 0 x400000000 x40000000 0 xE00000000 xE0000000 0 x800000000 x80000000 片外存儲器片外存儲器 可能存在的 程序存儲器 FlashFlash SRAMSRAM BootBlockBootBlock 片外存儲器片外存儲器 異常向量表異常向量表 AREA vectors,CODE,READONLYAREA vectors,CODE,READONLY ENTRY ENTRY ResetReset L
19、DR PC, ResetAddr LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, PrefetchAddr LDR PC, DataAbortAddr LDR PC, DataAbortAddr . . . FlashFlash SRAMSRAM BootBlockBootBlock VPBVPB外設(shè)外設(shè) AHBAHB外設(shè)外設(shè) 0 x000000000 x00000000 0 xFFFFFFFF
20、0 xFFFFFFFF 0 x400000000 x40000000 0 xE00000000 xE0000000 0 x800000000 x80000000 片外存儲器片外存儲器 異常向量表異常向量表內(nèi)部內(nèi)部Flash可以來自 存儲器映射控制的必要性存儲器映射控制的必要性 復(fù)位后用戶看 見的地址空間 內(nèi)部內(nèi)部SRAM AREA vectors,CODE,READONLYAREA vectors,CODE,READONLY ENTRY ENTRY ResetReset LDR PC, ResetAddr LDR PC, ResetAddr LDR PC, UndefinedAddr LDR
21、PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, PrefetchAddr LDR PC, DataAbortAddr LDR PC, DataAbortAddr . . . . . . FlashFlash SRAMSRAM BootBlockBootBlock VPBVPB外設(shè)外設(shè) AHBAHB外設(shè)外設(shè) 0 x000000000 x00000000 0 xFFFFFFFF0 xFFFFFFFF 0 x400000000 x40000000 0 xE00000000 xE00000
22、00 0 x800000000 x80000000 片外存儲器片外存儲器 異常向量表異常向量表 可以來自 存儲器映射控制的必要性存儲器映射控制的必要性 復(fù)位后用戶看 見的地址空間 Boot Block AREA vectors,CODE,READONLYAREA vectors,CODE,READONLY ENTRY ENTRY ResetReset LDR PC, ResetAddr LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, SWI_Addr LDR PC, P
23、refetchAddr LDR PC, PrefetchAddr LDR PC, DataAbortAddr LDR PC, DataAbortAddr . . . . . . FlashFlash SRAMSRAM BootBlockBootBlock VPBVPB外設(shè)外設(shè) AHBAHB外設(shè)外設(shè) 0 x000000000 x00000000 0 xFFFFFFFF0 xFFFFFFFF 0 x400000000 x40000000 0 xE00000000 xE0000000 0 x800000000 x80000000 片外存儲器片外存儲器 異常向量表異常向量表 可以來自 存儲器映射控制的
24、必要性存儲器映射控制的必要性 復(fù)位后用戶看 見的地址空間 外部存儲器外部存儲器 AREA vectors,CODE,READONLYAREA vectors,CODE,READONLY ENTRY ENTRY ResetReset LDR PC, ResetAddr LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, PrefetchAddr LDR PC, DataAbortAddr LDR PC
25、, DataAbortAddr . . . . . . FlashFlash SRAMSRAM BootBlockBootBlock VPBVPB外設(shè)外設(shè) AHBAHB外設(shè)外設(shè) 0 x000000000 x00000000 0 xFFFFFFFF0 xFFFFFFFF 0 x400000000 x40000000 0 xE00000000 xE0000000 0 x800000000 x80000000 片外存儲器片外存儲器 異常向量表異常向量表 可以來自 存儲器映射控制的必要性存儲器映射控制的必要性 復(fù)位后用戶看 見的地址空間 為了讓運行在不同存儲器空間中的程序?qū)Ξ惓?進行控制??梢酝ㄟ^存儲
26、器映射控制,將位于不同 存儲空間的異常向量表重新映射至固定地址0 x00 0 x3F處,以實現(xiàn)異常向量表的來源控制。 ARMARM處理器的地址重映射機制可分為三種情況:處理器的地址重映射機制可分為三種情況: 1 1、處理器內(nèi)部、處理器內(nèi)部有專門的寄存器完成重映射有專門的寄存器完成重映射(Remap)(Remap),只需將,只需將 RemapRemap寄存器相應(yīng)位置寄存器相應(yīng)位置“1”1”,由硬件邏輯來完成地址的重,由硬件邏輯來完成地址的重 新映射。新映射。 2 2、沒有專門的、沒有專門的RemapRemap控制寄存器,需要重新改寫用于控制存控制寄存器,需要重新改寫用于控制存 儲器儲器起始地址的
27、塊起始地址的塊(Bank)(Bank)寄存器寄存器,來實現(xiàn),來實現(xiàn)RemapRemap。 3 3、沒有、沒有RemapRemap寄存器,而寄存器,而BankBank寄存器的起始地址固定,這就寄存器的起始地址固定,這就 需要需要MMUMMU實現(xiàn)地址重映射。實現(xiàn)地址重映射。 25 存儲器映射控制寄存器(存儲器映射控制寄存器(MEMMAP)是一個可讀可寫是一個可讀可寫 的寄存器的寄存器 。 MAP1:0 :用于存儲器映射控制,實現(xiàn)部分地址的重新映:用于存儲器映射控制,實現(xiàn)部分地址的重新映 射;射; :表示該位保留。:表示該位保留。 位位76543210 功能功能MAP1:0 PLL控制寄存器(PLL
28、CON): 存儲器映射控制寄存器描述存儲器映射控制寄存器描述 MEMMAP MEMMAP為不同值時,為不同值時,ARMARM內(nèi)核發(fā)生異常,程序跳轉(zhuǎn)到內(nèi)核發(fā)生異常,程序跳轉(zhuǎn)到 異常向量表的來源也不相同。異常向量表的來源也不相同。 MAP1:0MAP1:0映射方式映射方式 0000 BootBoot裝載程序模式。異常向量表從裝載程序模式。異常向量表從Boot BlockBoot Block 重新映射。重新映射。 0101 片內(nèi)片內(nèi)FlashFlash模式。異常向量表不重新映射,它位模式。異常向量表不重新映射,它位 于于FlashFlash中。中。 1010片內(nèi)片內(nèi)RAMRAM模式。異常向量表從靜態(tài)
29、模式。異常向量表從靜態(tài)RAMRAM重新映射。重新映射。 1111 外部存儲器外部存儲器模式。異常向量表從外部存儲器重模式。異常向量表從外部存儲器重 新映射。新映射。 存儲器映射控制寄存器描述存儲器映射控制寄存器描述 0 x00000000 0 x40000000 0 x80000000 0 x7FFFE000 存儲空間 0 xFFFFFFFF 內(nèi)核地址總線存儲器地址總線 內(nèi)部Flash 內(nèi)部SRAM 外部存儲器 Boot Block 異常向量表 32位ARM指令 0 x0000003F 0 x4000003F 0 x7FFFE03F 0 x8000003F 地址轉(zhuǎn)換器 0 x00000000
30、0 x0000003F 0 x00000040 映射的目標(biāo)存儲塊 MEMMAP 11 00 10 01 內(nèi)核執(zhí)行的異常向 量表地址范圍 地址轉(zhuǎn)換器 物理存儲器 的地址空間 內(nèi)核與物理存儲器的關(guān)系內(nèi)核與物理存儲器的關(guān)系 存儲器映射控制原理存儲器映射控制原理 0 x00000000 0 x40000000 0 x80000000 0 x7FFFE000 存儲空間 0 xFFFFFFFF 內(nèi)核地址總線存儲器地址總線 內(nèi)部Flash 內(nèi)部SRAM 外部存儲器 Boot Block 異常向量表 32位ARM指令 0 x0000003F 0 x4000003F 0 x7FFFE03F 0 x8000003
31、F 地址轉(zhuǎn)換器 0 x00000000 0 x0000003F 0 x00000040 映射的目標(biāo)存儲塊 MEMMAP 11 00 10 01 1.內(nèi)核產(chǎn)生地址 2.經(jīng)過地址轉(zhuǎn) 換器 3.映射到物理 存儲器地址 存儲器映射的流程存儲器映射的流程 存儲器映射控制原理存儲器映射控制原理 存儲器映射控制重新映射前后地址存儲器映射控制重新映射前后地址 轉(zhuǎn)換前轉(zhuǎn)換前 內(nèi)核地址總線值內(nèi)核地址總線值 MEMMAP 值值 轉(zhuǎn)換后轉(zhuǎn)換后 存儲器地址總線值存儲器地址總線值 0 x00000000 0 x0000003F 00 0 x7FFFE000 0 x7FFFE03F 01 0 x00000000 0 x00
32、00003F 10 0 x40000000 0 x4000003F 11 0 x80000000 0 x8000003F 0 x00000040 0 xFFFFFFFF 任意任意對應(yīng)不變對應(yīng)不變 復(fù)位后用戶看復(fù)位后用戶看 見的地址空間見的地址空間 FlashFlash SRAMSRAM BootBlockBootBlock VPBVPB外設(shè)外設(shè) AHBAHB外設(shè)外設(shè) 0 x000000000 x00000000 0 xFFFFFFFF0 xFFFFFFFF 0 x400000000 x40000000 0 xE00000000 xE0000000 0 x800000000 x80000000
33、片外存儲器片外存儲器 存儲器映射控制重新映射前后地址存儲器映射控制重新映射前后地址 0 1 MEMMAP1:0= 1 00 01 1 不重新映射不重新映射 練習(xí)題:練習(xí)題: 1、32位位ARM處理器可訪問的存儲器空間范圍是多少?處理器可訪問的存儲器空間范圍是多少? 2、ISP和和IAP方式較老式的程序燒錄方式最大優(yōu)勢是什方式較老式的程序燒錄方式最大優(yōu)勢是什 么?這二者又有什么區(qū)別?么?這二者又有什么區(qū)別? 3、存儲器重新映射指的是什么?具體是如何控制的?、存儲器重新映射指的是什么?具體是如何控制的? 33 9.2 存儲器接口 1、EEPROM和和Flash的比較的比較 2、Nand Flash
34、和和Nor Flash 3、SRAM 34 1、EEPROM和和Flash的比較的比較 EEPROM(電可擦除可編程只讀存儲器電可擦除可編程只讀存儲器) 在不加電的情況下能長期保持存儲的信息,可多次擦除在不加電的情況下能長期保持存儲的信息,可多次擦除 的非易失性存儲器的非易失性存儲器 Flash Memory也屬于也屬于EEPROM 又稱閃存,既有又稱閃存,既有ROM的特點,又有很高的存取速度,而的特點,又有很高的存取速度,而 且易于擦除和重寫,體積小,功耗低,抗振性強等優(yōu)點,且易于擦除和重寫,體積小,功耗低,抗振性強等優(yōu)點, 是嵌入式系統(tǒng)的首選存儲設(shè)備。是嵌入式系統(tǒng)的首選存儲設(shè)備。 u為什么
35、要把為什么要把Flash單獨拿出來呢?單獨拿出來呢? 35 FLASH 和和EEPROM的最大區(qū)別的最大區(qū)別: FLASH按按扇區(qū)扇區(qū)操作,操作,EEPROM則按則按字節(jié)字節(jié)操作,二者尋址操作,二者尋址 方法不同,存儲單元的結(jié)構(gòu)也不同,方法不同,存儲單元的結(jié)構(gòu)也不同,F(xiàn)LASH的電路結(jié)構(gòu)的電路結(jié)構(gòu) 較簡單,同樣容量占芯片面積較小,成本自然比較簡單,同樣容量占芯片面積較小,成本自然比 EEPROM低,因而適合用作程序存儲器,低,因而適合用作程序存儲器,EEPROM則更則更 多的用作非易失的數(shù)據(jù)存儲器。多的用作非易失的數(shù)據(jù)存儲器。 36 2、Nand Flash和和Nor Flash FlashF
36、lash主要有兩種類型:主要有兩種類型:“或非或非NOR”NOR”和和“與非與非NAND”NAND” IntelIntel于于19881988年首先開發(fā)出年首先開發(fā)出NOR FlashNOR Flash技術(shù)技術(shù) 東芝公司東芝公司19891989年發(fā)表了年發(fā)表了NAND FlashNAND Flash結(jié)構(gòu)結(jié)構(gòu) Nand Flash與與Nor Flash對比:對比: (1)接口對比接口對比 NOR型型FLASH采用的是采用的是SRAM接口接口,提供有足夠的地,提供有足夠的地 址引腳來尋址,可以很容易地存取其片內(nèi)的每一個字址引腳來尋址,可以很容易地存取其片內(nèi)的每一個字 節(jié);節(jié); NAND Flash
37、器件使用器件使用復(fù)雜的復(fù)雜的I/O口來串行地存取數(shù)據(jù)口來串行地存取數(shù)據(jù) ,8個引腳用來傳送控制、地址和數(shù)據(jù)信息。個引腳用來傳送控制、地址和數(shù)據(jù)信息。 37 (2) 讀寫的基本單位讀寫的基本單位 NOR型型FLASH操作是以操作是以“字字”為基本單位;為基本單位; NAND型型FLASH操作是以操作是以“頁面頁面”為基本單位,頁為基本單位,頁 的大小一般為的大小一般為512字節(jié)。字節(jié)。 (3) 性能比較性能比較 NOR型型FLASH的地址線和數(shù)據(jù)線是分開的,傳輸效的地址線和數(shù)據(jù)線是分開的,傳輸效 率很高,程序可以在芯片內(nèi)執(zhí)行。率很高,程序可以在芯片內(nèi)執(zhí)行。NOR型的讀速度比型的讀速度比 NAND
38、型稍快一些;型稍快一些; NAND型的寫入速度比型的寫入速度比NOR型快很多型快很多(由于由于NAND型型 讀寫的基本單位為讀寫的基本單位為“頁面頁面”,所以對于小量數(shù)據(jù)的寫入,所以對于小量數(shù)據(jù)的寫入, 總體速度要比總體速度要比NOR型慢型慢); 例子:例子:擦除擦除NOR器件時是以器件時是以64128KB的塊進行的,執(zhí)的塊進行的,執(zhí) 行一個寫入行一個寫入/擦除操作的時間約為為擦除操作的時間約為為5s。擦除。擦除NAND器件是器件是 以以832KB的塊進行的的塊進行的,執(zhí)行相同的操作最多只需要執(zhí)行相同的操作最多只需要4ms。 38 (4)(4) 容量和成本容量和成本 NANDNAND型型FLA
39、SHFLASH具有極高的單元密度,容量可以做得比具有極高的單元密度,容量可以做得比 較大,加上其生產(chǎn)過程更為簡單,價格也就相應(yīng)地降低較大,加上其生產(chǎn)過程更為簡單,價格也就相應(yīng)地降低 了。了。 NORNOR型型FLASHFLASH占據(jù)了容量為占據(jù)了容量為1 116MB16MB閃存市場的大部分,閃存市場的大部分, 而而NANDNAND型型FLASHFLASH只是用在只是用在8 8128MB128MB的產(chǎn)品當(dāng)中,這也說明的產(chǎn)品當(dāng)中,這也說明 NORNOR主要應(yīng)用在代碼存儲介質(zhì)中,主要應(yīng)用在代碼存儲介質(zhì)中,NANDNAND適合于數(shù)據(jù)存儲,適合于數(shù)據(jù)存儲, NANDNAND在在CompactFlashC
40、ompactFlash、Secure DigitalSecure Digital、PC CardsPC Cards和和MMCMMC 存儲卡市場上所占份額最大。存儲卡市場上所占份額最大。 39 (5) (5) 軟件支持軟件支持 在在NORNOR型型FLASHFLASH上運行代碼不需要任何的軟件支持,上運行代碼不需要任何的軟件支持, 而在而在NANDNAND型型FLASHFLASH上進行同樣操作時,通常需要驅(qū)動程序,上進行同樣操作時,通常需要驅(qū)動程序, 也就是內(nèi)存技術(shù)驅(qū)動程序也就是內(nèi)存技術(shù)驅(qū)動程序MTD (Memory Technology MTD (Memory Technology Drive
41、rs)Drivers)。NANDNAND型和型和NORNOR型型FLASHFLASH在進行寫入和擦除操作在進行寫入和擦除操作 時都需要時都需要MTD(MTD(說明,說明,MTDMTD已集成在已集成在FLASHFLASH芯片內(nèi)部,它是芯片內(nèi)部,它是 對對FLASHFLASH進行操作的接口進行操作的接口) )。 40 總結(jié):總結(jié): NOR的傳輸效率很高的傳輸效率很高,在,在14MB的小容量時具有很高的小容量時具有很高 的成本效益,但是很低的寫入和擦除速度大大影響了它的成本效益,但是很低的寫入和擦除速度大大影響了它 的性能。的性能。 NAND結(jié)構(gòu)能提供極高的單元密度,并且寫入和擦除結(jié)構(gòu)能提供極高的單
42、元密度,并且寫入和擦除 的速度也很快。的速度也很快。應(yīng)用應(yīng)用NAND的困難在于的困難在于flash的管理和的管理和 需要特殊的系統(tǒng)接口需要特殊的系統(tǒng)接口。 41 當(dāng)選擇存儲解決方案時,設(shè)計師必須權(quán)衡以下的各項因素:當(dāng)選擇存儲解決方案時,設(shè)計師必須權(quán)衡以下的各項因素: NOR的讀速度比的讀速度比NAND稍快一些。稍快一些。 NAND的寫入速度比的寫入速度比NOR快很多??旌芏?。 NAND的的4ms擦除速度遠比擦除速度遠比NOR的的5s快???。 大多數(shù)寫入操作需要先進行擦除操作。大多數(shù)寫入操作需要先進行擦除操作。 NAND的擦除單元更小,相應(yīng)的擦除電路更少。的擦除單元更小,相應(yīng)的擦除電路更少。 S
43、ST39VF160 SST39VF160是是SSTSST公司的公司的CMOSCMOS多功能多功能FLASHFLASH(MPFMPF)器件,)器件, 存儲容量為存儲容量為2M2M字節(jié),字節(jié),1616位數(shù)據(jù)寬度位數(shù)據(jù)寬度( (即一個字為即一個字為2 2字節(jié)字節(jié)) ),工作,工作 電壓為電壓為2.72.73.6V3.6V。SST39VF160SST39VF160由由SSTSST特有的高性能特有的高性能 SuperFlashSuperFlash技術(shù)制造而成,技術(shù)制造而成,SuperFlashSuperFlash技術(shù)提供了固定的擦技術(shù)提供了固定的擦 除和編程時間,與擦除除和編程時間,與擦除/ /編程周期
44、數(shù)無關(guān)。芯片管腳配置如下編程周期數(shù)無關(guān)。芯片管腳配置如下 圖所示。圖所示。 Nor Flash存儲器存儲器 符號符號管腳名稱管腳名稱功能功能 A19A0地址輸入地址輸入 存儲器地址。扇區(qū)擦除時,存儲器地址。扇區(qū)擦除時,A19A11用來選用來選 擇扇區(qū)。塊擦除時,擇扇區(qū)。塊擦除時,A19A15用來選擇用來選擇 塊。塊。 DQ15 DQ0 數(shù)據(jù)輸入數(shù)據(jù)輸入/輸出輸出 讀周期內(nèi)輸出數(shù)據(jù),寫周期內(nèi)輸入數(shù)據(jù)。讀周期內(nèi)輸出數(shù)據(jù),寫周期內(nèi)輸入數(shù)據(jù)。 寫周期內(nèi)數(shù)據(jù)內(nèi)部鎖存。寫周期內(nèi)數(shù)據(jù)內(nèi)部鎖存。 OE#或或CE#為高時輸出為三態(tài)。為高時輸出為三態(tài)。 CE#芯片使能芯片使能CE#為低時啟動器件開始工作。為低時啟
45、動器件開始工作。 OE#輸出使能輸出使能數(shù)據(jù)輸出緩沖器的門控信號。數(shù)據(jù)輸出緩沖器的門控信號。 WE#寫使能寫使能控制寫操作??刂茖懖僮鳌?VDD電源電源供給電源電壓:供給電源電壓: 2.73.6V Vss地地 NC不連接不連接懸空管腳懸空管腳 SST39VF160管腳描述管腳描述 NORNOR型型FLASHFLASH存儲器采用的是存儲器采用的是SRAMSRAM接口,其地址線接口,其地址線 和數(shù)據(jù)線是分開的。和數(shù)據(jù)線是分開的。 模式模式CE#OE#WE # DQ地址地址 讀讀VILVILVIHDOUTAIN 編程編程VILVIHVILDINAIN 擦除擦除VILVIHVILX 扇區(qū)或塊地址,扇區(qū)
46、或塊地址, 芯片擦除時為芯片擦除時為 XXH 等待等待VIHXX高阻高阻X 寫禁止寫禁止 XVILX高阻高阻/DOUTX XXVIH高阻高阻/DOUTX 器件標(biāo)識符軟件器件標(biāo)識符軟件 模式模式 VILVILVIH SST39VF160工作模式選擇工作模式選擇 NOR NOR型型FLASHFLASH存儲器容量越來越大,為了方便數(shù)據(jù)管存儲器容量越來越大,為了方便數(shù)據(jù)管 理,將理,將FLASHFLASH劃分為塊劃分為塊(Block)(Block),每個塊又分成扇區(qū),每個塊又分成扇區(qū) (Sector)(Sector)。 SST39VF160SST39VF160的塊大小為的塊大小為32K32K字,扇區(qū)大
47、小為字,扇區(qū)大小為2K2K字。字。 讀操作,可以對任何地址的任何讀操作,可以對任何地址的任何字節(jié)字節(jié)進行,不受限制;進行,不受限制; 寫操作,以寫操作,以字字形式進行編程。形式進行編程。編程前包含字的扇區(qū)必編程前包含字的扇區(qū)必 須完全擦除;須完全擦除; 擦除操作,以擦除操作,以扇區(qū)扇區(qū)(2K)(2K)、塊塊( (32K)32K)或全片為單位進行擦或全片為單位進行擦 除。除。 擦除后數(shù)據(jù)變?yōu)椴脸髷?shù)據(jù)變?yōu)? xFF0 xFF。 SST39VF160 SST39VF160的存儲器操作由命令來啟動。命令通過標(biāo)的存儲器操作由命令來啟動。命令通過標(biāo) 準(zhǔn)微處理器寫時序?qū)懭肫骷?。將?zhǔn)微處理器寫時序?qū)懭肫骷?/p>
48、將WE#WE#拉低、拉低、CE#CE#保持低電平保持低電平 來寫入命令。地址總線上的地址在來寫入命令。地址總線上的地址在WE#WE#或或CE#CE#的下降沿(無的下降沿(無 論哪一個后產(chǎn)生下降沿)被鎖存。數(shù)據(jù)總線上的數(shù)據(jù)在論哪一個后產(chǎn)生下降沿)被鎖存。數(shù)據(jù)總線上的數(shù)據(jù)在WE#WE# 或或CE#CE#的上升沿(無論哪一個先產(chǎn)生上升沿)被鎖存。存儲的上升沿(無論哪一個先產(chǎn)生上升沿)被鎖存。存儲 器操作命令如下表所示。器操作命令如下表所示。 命令時序 第1個總線寫周期第2個總線寫周期第3個總線寫周期第4個總線寫周期第5個總線寫周期第6個總線寫周期 地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù) 字
49、編程555HAAH2AAH55H555HA0HWA3數(shù)據(jù) 扇區(qū)擦除555HAAH2AAH55H555H80H555HAAH2AAH55H555H10H 塊擦除5555AAH2AAH55H555H80H555HAAH2AAH55HBax30H 電路連接圖 注意:注意: 32位的位的FLASH,F(xiàn)LASH的的A0要接要接ARM的的A2 因為因為3232位寬數(shù)據(jù)線表示最小的讀寫單位為位寬數(shù)據(jù)線表示最小的讀寫單位為4 4個字節(jié),每次要個字節(jié),每次要 跳跳4 4個字節(jié)的話,那么就是從個字節(jié)的話,那么就是從A2A2開始才變化,開始才變化,A1 A0A1 A0不變化不變化 16位的位的FLASH,F(xiàn)LASH
50、的的A0要接要接ARM的的A1 因為因為1616位數(shù)據(jù)線寬表示最小讀寫單位為位數(shù)據(jù)線寬表示最小讀寫單位為2 2個字節(jié),每次要跳個字節(jié),每次要跳2 2 個字節(jié)的話,那么就是從個字節(jié)的話,那么就是從A1A1開始才變化,開始才變化,A0A0不變化不變化 8位的位的FLASH,F(xiàn)LASH的的A0要接要接ARM的的A0 因為因為8 8位數(shù)據(jù)線寬表示最小的數(shù)據(jù)讀寫單位為位數(shù)據(jù)線寬表示最小的數(shù)據(jù)讀寫單位為1 1個字節(jié),每次個字節(jié),每次 要跳要跳1 1個字節(jié)的話,那么就是從個字節(jié)的話,那么就是從A0A0開始才變化。開始才變化。 48 K9F1208K9F1208是是SAMSUNGSAMSUNG公司生產(chǎn)的公司生
51、產(chǎn)的NANDNAND型型FLASHFLASH存儲器存儲器, 存存儲容量為儲容量為64M64M字節(jié)字節(jié),除此之外還有,除此之外還有2048K2048K字節(jié)的字節(jié)的sparespare存存 儲區(qū)。該器件采用儲區(qū)。該器件采用TSSOP48TSSOP48封裝,工作電壓封裝,工作電壓2.72.73.6V3.6V。 K9F1208 K9F1208對對528528字節(jié)一頁的寫操作所需時間典型值是字節(jié)一頁的寫操作所需時間典型值是 200s200s,而對,而對16K16K字節(jié)一塊的擦除操作典型僅需字節(jié)一塊的擦除操作典型僅需2ms2ms。8 8位位 I/OI/O端口采用地址、數(shù)據(jù)和命令復(fù)用的方法。這樣既可減端口采用地址、數(shù)據(jù)和命令復(fù)用的方法。這樣既可減 少引腳數(shù),還可使接口電路簡潔。少引腳數(shù),還可使接口電路簡潔。 Nand Flash存儲器存儲器 50 管腳名稱管腳名稱描述描述 I/O0 I/O7 數(shù)據(jù)輸入輸出數(shù)據(jù)輸入輸出 CLE命令鎖存使能命令鎖存使能 ALE地址鎖存使能地址鎖存使能 CE#片選片選 RE#讀使能讀使能 WE#寫使能寫使能 WP#寫保護寫保護 R/B#準(zhǔn)備好準(zhǔn)備好/忙碌忙碌 輸出輸出 VCC電源電源(+2.7V3.6V)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生體操運動的規(guī)范與技巧
- 2025年政府引導(dǎo)基金項目合作計劃書
- 2025年摻鉺光纖放大器合作協(xié)議書
- 班級運作中的問題與解決方案計劃
- 戶外娛樂場所安全保障工作總結(jié)計劃
- 動態(tài)預(yù)算管理的實施方法計劃
- 重視財務(wù)數(shù)據(jù)安全的必要性計劃
- 數(shù)字世界信息技術(shù)在幼兒園的應(yīng)用計劃
- 如何利用季節(jié)性食物為孩子提供均衡營養(yǎng)
- 班級問題解決方案與執(zhí)行計劃
- 2023年東方航空職能類儲備人才中國聯(lián)合航空有限公司招聘筆試題庫含答案解析
- 常規(guī)機械設(shè)備檢驗報告
- GB/T 11378-2005金屬覆蓋層覆蓋層厚度測量輪廓儀法
- 重力壩畢業(yè)設(shè)計-水電站混凝土重力壩工程設(shè)計
- 解讀電子病歷系統(tǒng)應(yīng)用水平分級評價和標(biāo)準(zhǔn)
- KET詞匯表(英文中文完整版)
- 2023年高考數(shù)學(xué)求定義域?qū)n}練習(xí)(附答案)
- 贛州市興國縣鄉(xiāng)鎮(zhèn)街道社區(qū)行政村統(tǒng)計表
- 醫(yī)療機構(gòu)手術(shù)分級管理辦法
- WS 444.1-2014 醫(yī)療機構(gòu)患者活動場所及坐臥設(shè)施安全要求 第1部分:活動場所
- 鋼結(jié)構(gòu)工程監(jiān)理規(guī)劃(整理)
評論
0/150
提交評論