




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于多功能單片學(xué)習(xí)機(jī)的基于多功能單片學(xué)習(xí)機(jī)的 NANDNAND FLASHFLASH 驅(qū)動的設(shè)驅(qū)動的設(shè) 計(jì)計(jì) The design of NAND FLASH driver based on a Multifunction SCM learning machine 摘摘 要要 基于多功能單片學(xué)習(xí)機(jī)的 NAND FLASH 驅(qū)動包括兩部分:多功能單片學(xué)習(xí)機(jī)和 NAND FLASH 存儲器。本論文首先介紹了多功能單片學(xué)習(xí)機(jī)的軟/硬件設(shè)計(jì),該學(xué)習(xí)機(jī)利用自動 程序切換電路,使得同一片單片機(jī)既可以運(yùn)行系統(tǒng)程序,又可以運(yùn)行用戶程序,實(shí)現(xiàn)程 序代碼的在線下載。學(xué)習(xí)機(jī)外部擴(kuò)展了大量的硬件資源,豐富的系統(tǒng)硬件資
2、源構(gòu)成了各 種實(shí)際應(yīng)用電路,通過萬能擴(kuò)展接口可以很方便地仿真外部應(yīng)用電路和擴(kuò)展用戶應(yīng)用電 路。然后,著重介紹了 NAND FLASH 擴(kuò)展板的軟/硬件設(shè)計(jì),通過多功能單片學(xué)習(xí)機(jī)實(shí)現(xiàn) 對 NAND FLASH 的讀、寫時(shí)序。 關(guān)鍵字:關(guān)鍵字:多功能單片學(xué)習(xí)機(jī) 自動切換電路 NAND FLASH Abstract Based NAND FLASH multi-functional single-chip learning machine drive consists of two parts: a multi-functional single-chip learning machine and
3、NAND Flash memory. This paper introduces the hardware / software design, multi-functional single-chip learning machine with automatic switch circuit, so with a microcontroller can either run the system program, you can run the user program, the online download of the program code. external learning
4、machine expanse a lot of hardware resources, hardware system resources poses practical application circuit, through the universal expansion interface can easily simulate the external application circuit and extend the user application circuit. Then focuses on the the NAND FLASH expansion board hardw
5、are / software design, achieved through a multi-functional single-chip learning machine NAND FLASH read and write timing. Key word: Multifunction SCM learning machine;automatic switch circuit ;NAND FLASH; 目錄目錄 摘摘 要要.I ABSTRACT.II 第一章第一章 緒論緒論.1 1.1 國內(nèi)外研究概況.1 1.2 本課題的主要目標(biāo)和工作.1 1.3 全文結(jié)構(gòu).2 第二章第二章 多功能單片學(xué)
6、習(xí)機(jī)多功能單片學(xué)習(xí)機(jī).7 2.1 多功能單片學(xué)習(xí)機(jī)的硬件設(shè)計(jì).7 2.1.1 單片機(jī) AT89S52 電路.8 2.1.2 數(shù)碼顯示電路.11 2.1.3 外部存儲器電路.14 2.1.4 外部存儲器的保護(hù)電路.17 2.1.5 鍵盤輸入電路.17 2.1.6 自動程序切換電路.18 2.1.7 RS232 通信電路 .19 2.1.8 電源電路.19 2.2 多功能單片學(xué)習(xí)機(jī)的軟件設(shè)計(jì).20 2.3 本章小結(jié).20 第三章第三章 NAND FLASH 擴(kuò)展板的設(shè)計(jì)擴(kuò)展板的設(shè)計(jì) .22 3.1 NAND FLASH 擴(kuò)展板硬件電路設(shè)計(jì).22 3.1.1 NAND FLASH 接口電路.22 3
7、.1.2 控制器的工作原理.24 3.2 NAND FLASH 驅(qū)動.25 3.2.1 NAND FLASH 的工作原理.26 3.2.2 NAND FLASH 的讀操作.26 3.2.3 NAND FLASH 的編程.27 3.2.4 NAND FLASH 的擦除.29 3.3 本章小結(jié).30 第四章第四章 NAND 擴(kuò)擴(kuò)展板的調(diào)試展板的調(diào)試.31 4.1 硬件仿真注意事項(xiàng).31 4.2 編程中遇到的問題.31 4.2 本章小結(jié).32 第五章第五章 全文總結(jié)全文總結(jié).33 參考文獻(xiàn)參考文獻(xiàn).34 致謝致謝.35 第一章 緒論 1.1 國內(nèi)外研究概況國內(nèi)外研究概況 新世紀(jì)嵌入式系統(tǒng)迅速,主要表
8、現(xiàn)在市場發(fā)展、通信、消費(fèi)電子產(chǎn)品和多媒體應(yīng)用。 在這些嵌入式系統(tǒng)中,存儲設(shè)備的性能是決定整體系統(tǒng)性能的核心環(huán)節(jié)之一。相對于體 積大、抗震性能差的硬盤等傳統(tǒng)存儲介質(zhì),F(xiàn)lash 存儲器具有容量大、速度快、成本低、 性能佳等很多優(yōu)點(diǎn),適用于大量數(shù)據(jù)的存儲,因此在嵌入式系統(tǒng)中的應(yīng)用也越來越多, 如在移動電話、PDA、數(shù)碼相機(jī)、體積小巧的 U 盤、MP3 播放器等多媒體消費(fèi)類電子產(chǎn)品, 正在迅速取代 NOR FLASH。 NOR 和NAND 是現(xiàn)在市場上兩種主要的非易失閃存技術(shù)。Intel 于1988 年首先開發(fā) 出NOR flash 技術(shù),徹底改變了原先由EPROM 和EEPROM 一統(tǒng)天下的局面。
9、緊接著,1989 年,東芝公司發(fā)表了NAND flash 結(jié)構(gòu),強(qiáng)調(diào)降低每比特的成本,更高的性能,并且象磁 盤一樣可以通過接口輕松升級。相“flash 存儲器”經(jīng)??梢耘c相“NOR 存儲器”互換使用。 但是經(jīng)過了十多年之后,仍然有相當(dāng)多的硬件工程師也搞不清楚NAND 閃存技術(shù)相對于 NOR 技術(shù)的優(yōu)越之處,因?yàn)榇蠖鄶?shù)情況下閃存只是用來存儲少量的代碼,這時(shí)NOR 閃存 更適合一些。而NAND 則是高數(shù)據(jù)存儲密度的理想解決方案。 Nand-flash內(nèi)存是flash內(nèi)存的一種,其內(nèi)部采用非線性宏單元模式,為固態(tài)大容量 內(nèi)存的實(shí)現(xiàn)提供了廉價(jià)有效的解決方案。Nand-flash存儲器具有容量較大,改寫
10、速度快 等優(yōu)點(diǎn),適用于大量數(shù)據(jù)的存儲,NAND閃存是一種比硬盤驅(qū)動器更好的存儲方案,這在 不超過4GB的低容量應(yīng)用中表現(xiàn)得猶為明顯。隨著人們持續(xù)追求功耗更低、重量更輕和性 能更佳的產(chǎn)品,NAND正被證明極具吸引力。 1 1.2 本課題的主要目標(biāo)和工作本課題的主要目標(biāo)和工作 本設(shè)計(jì)通過對“基于多功能單片學(xué)習(xí)機(jī)的 NAND FLASH 驅(qū)動“的設(shè)計(jì),可熟悉多功能 單片學(xué)習(xí)機(jī)的軟/硬件設(shè)計(jì),NAND FALSH 的基本工作原理及編程,熟悉硬件開發(fā)的基本流 程,熟悉常用元器件的使用,熟悉單片機(jī)的硬件開發(fā),常見接口電路設(shè)計(jì),如 NAND FLASH 擴(kuò)展電路、鍵盤輸入電路,數(shù)碼管顯示電路,外部存儲器電路
11、、外部存儲器的保護(hù) 電路、自動切換程序電路、電源電路等。完成的電路板可以實(shí)現(xiàn)對 NAND FLASH 正確讀, 寫操作,測試寫入數(shù)據(jù)不少于 1KBYTE。 1.3 全文結(jié)構(gòu)全文結(jié)構(gòu) 第一章介紹課題背景,國內(nèi)外研究概況及課題的主要目標(biāo)與工作。 第二章著重介紹了多功能單片學(xué)習(xí)機(jī)的硬件設(shè)計(jì)和軟件設(shè)計(jì),其中硬件設(shè)計(jì)包括單 片機(jī) AT89S52 電路,數(shù)碼顯示電路,外部存儲器電路,外部存儲器的保護(hù)電路,鍵盤輸 入電路,程序自動切換電路和電源電路等;軟件設(shè)計(jì)包括上位機(jī) PC 軟件和下位機(jī)軟件。 第三章是詳細(xì)地分析了 NAND 擴(kuò)展板的設(shè)計(jì)。NAND 擴(kuò)展板的設(shè)計(jì)主要從 NAND 擴(kuò)展板 硬件電路設(shè)計(jì)和驅(qū)動
12、兩方面闡述。 第四章介紹了 NAND 擴(kuò)展板的調(diào)試,對硬件設(shè)計(jì)和編程中遇到的問題進(jìn)行了分析。 第二章 多功能單片學(xué)習(xí)機(jī) 多功能單片學(xué)習(xí)機(jī)利用自動程序切換電路,使得同一片單片機(jī)既可以運(yùn)行系統(tǒng)程序, 又可以運(yùn)行用戶程序,實(shí)現(xiàn)程序代碼的在線下載。系統(tǒng)提供三種編程接口:系統(tǒng)小鍵盤編 程接口、紅外遙控器編程接口和微機(jī)編程接口,旨在提高使用者編程學(xué)習(xí)的靈活性。單 片機(jī)外部擴(kuò)展了大量的硬件資源:鍵盤、數(shù)碼顯示器、紅外遙控接收器、蜂鳴器、RS232 通信接口、RS485 通信接口、電源中斷接口以及一個(gè)萬能擴(kuò)展接口。豐富的系統(tǒng)硬件資 源構(gòu)成了各種實(shí)際應(yīng)用電路,通過萬能擴(kuò)展接口可以很方便地仿真外部應(yīng)用電路和擴(kuò)展
13、用戶應(yīng)用電路。圖2-1為多功能單片學(xué)習(xí)機(jī)。 圖2-1 多功能單片學(xué)習(xí)機(jī) 2.1 多功能單片學(xué)習(xí)機(jī)的硬件設(shè)計(jì)多功能單片學(xué)習(xí)機(jī)的硬件設(shè)計(jì) 學(xué)習(xí)機(jī)系統(tǒng)結(jié)構(gòu)框圖如圖2-2所示。主要由供電電路、電源電壓檢測電路、電源中斷 電路、鍵盤電路、紅外遙控電路、數(shù)碼顯示電路、揚(yáng)聲器電路、存儲器電路、存儲器寫 保護(hù)電路、程序自動切換電路、RS232 及RS485 通信接口電路、單片機(jī)電路等組成。 圖2-2 學(xué)習(xí)機(jī)系統(tǒng)結(jié)構(gòu)框圖 2.1.1 單片機(jī) AT89S52 電路 AT89S52 是一種低功耗、高性能 CMOS 8 位微控制器,具有 8K 在系統(tǒng)可編程 Flash 存儲器。使用 Atmel 公司高密度非易失性存儲
14、器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引 腳完全兼容。片上 Flash 允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片 上,擁有靈巧的 8 位 CPU 和在系統(tǒng)可編程 Flash,使得 AT89S52 在眾多嵌入式控制應(yīng)用 系統(tǒng)中得到廣泛應(yīng)用。 AT89S52 的主要性能:與 MCS-51 單片機(jī)產(chǎn)品兼容;8K 字節(jié)在系統(tǒng)可編程 Flash 存儲 器;32 個(gè)可編程 I/O 口線;三個(gè) 16 位定時(shí)器/計(jì)數(shù)器;全雙工 UART 串行通道;六個(gè)中斷 源;掉電后中斷可喚醒和看門狗定時(shí)器等。 P0 口:P0 口是一個(gè) 8 位漏極開路的雙向 I/O 口。作為輸出口,每位能驅(qū)動 8 個(gè) TT
15、L 邏 輯電平。對 P0 端口寫“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲 器時(shí),P0 口也被作為低 8 位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0 不具有內(nèi)部上拉電阻。 在 flash 編程時(shí),P0 口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn) 時(shí),需要外部上拉電阻。 P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,p1 輸出緩沖器能驅(qū)動 4 個(gè) TTL 邏輯電平。對 P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 此外,P1.0 和 P1.1 分別
16、作定時(shí)器/計(jì)數(shù)器 2 的外部計(jì)數(shù)輸入(P1.0/T2)和定時(shí)器/ 計(jì)數(shù)器 2 的觸發(fā)輸入(P1.1/T2EX)。 在 flash 編程和校驗(yàn)時(shí),P1 口接收低 8 位地址字 節(jié)。 引腳號第二功能: P1.0 T2(定時(shí)器/計(jì)數(shù)器 T2 的外部計(jì)數(shù)輸入),時(shí)鐘輸出 P1.1 T2EX(定時(shí)器/計(jì)數(shù)器 T2 的捕捉/重載觸發(fā)信號和方向控制) P1.5 MOSI(在系統(tǒng)編程用) P1.6 MISO(在系統(tǒng)編程用) P1.7 SCK(在系統(tǒng)編程用) P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 輸出緩沖器能驅(qū)動 4 個(gè) TTL 邏輯電平。對 P2 端口寫“1”時(shí),內(nèi)部上拉電
17、阻把端口拉高,此時(shí)可以作 為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流 (IIL)。 在訪問外部程序存儲器或用 16 位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行 MOVX DPTR) 時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送 1。 在使用 8 位地址(如 MOVX RI)訪問外部數(shù)據(jù)存儲器時(shí),P2 口輸出 P2 鎖存器的內(nèi)容。 在 flash 編程和校驗(yàn)時(shí),P2 口也接收高 8 位地址字節(jié)和一些控制信號。 P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 I/O 口,p3 輸出緩沖器能驅(qū)動 4 個(gè) TTL 邏輯電平。對 P3 端口寫
18、“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3 口亦作為 AT89S52 特殊功能(第二功能)使用,如下表所示。 在 flash 編程和校驗(yàn) 時(shí),P3 口也接收一些控制信號。 端口引腳 第二功能: P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INTO(外中斷 0) P3.3 INT1(外中斷 1) P3.4 TO(定時(shí)/計(jì)數(shù)器 0) P3.5 T1(定時(shí)/計(jì)數(shù)器 1) P3.6 WR(外部數(shù)據(jù)存儲器寫選通) P3.7 RD(外部數(shù)據(jù)存儲器讀選通) 此外,P3 口還接收一些
19、用于 FLASH 閃存編程和程序校驗(yàn)的控制信號。 RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST 引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片 機(jī)復(fù)位。 ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時(shí),ALE(地址鎖存允許)輸出脈沖 用于鎖存地址的低 8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的 1/6 輸出固定的脈沖 信號,因此它可對外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器 時(shí)將跳過一個(gè) ALE 脈沖。對 FLASH 存儲器編程期間,該引腳還用于輸入編程脈沖 (PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的 8EH 單元的 D0 位置位, 可禁止 ALE 操
20、作。該位置位后,只有一條 MOVX 和 MOVC 指令才能將 ALE 激活。此外,該 引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置 ALE 禁止位無效。 EA/VPP:外部訪問允許,欲使 CPU 僅訪問外部程序存儲器(地址 0000H-FFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加密位 LB1 被編程,復(fù)位時(shí)內(nèi)部會鎖存 EA 端狀態(tài)。如 EA 端為高電平(接 Vcc 端),CPU 則執(zhí)行內(nèi)部程序存儲器的指令。FLASH 存儲器編程時(shí),該引腳加上+12V 的編程允許電源 Vpp,當(dāng)然這必須是該器件是使用 12V 編程電壓 Vpp。 PSEN:程序儲存允許(PSEN)輸出是外部
21、程序存儲器的讀選通信號,當(dāng) AT89S52 由 外部程序存儲器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次 PSEN 有效,即輸出兩個(gè)脈沖, 在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次 PSEN 信號。 XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。 XTAL2:振蕩器反相放大器的輸出端。 E A/V P 31 X 1 19 X 2 18 R ES ET 9 R D 17 W R 16 IN T 0 12 IN T 1 13 T 0 14 T 1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P
22、03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSE N 29 A LE /P 30 T XD 11 R XD 10 U 1 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 A 8 A 9 A 10 C 4 15 P C 5 15 P JT 12 M HZ R ED I A E C 1910 U R 17 4.7K R ST R ST E A PSE N 38 A 38 B 38 C K SC K SB K SA K SI R D W R V C
23、C A 11 A 12R XD T XD T XD R XD 1 2 3 4 J1IN T 0 IO T 0 IO T 1 P2.5 G ND E A P2.6 P2.7 圖 2-3 AT89S52 單片機(jī)電路 圖 2-3 為設(shè)計(jì)中采用的單片機(jī) AT89S52 的原理圖,其中 P0.0-P0.7 是控制數(shù)碼管顯 示端口,P1.0-P1.2 是 8 位數(shù)碼管的片選信號端口。P2.0-P2.7 是控制 PR2 端口。 2.1.2 數(shù)碼顯示電路 1.段式數(shù)碼管的原理 常用的段式數(shù)碼管有七段式和八段式,八段比七段多了一個(gè)小數(shù)點(diǎn),其他的基本相 同。所謂的幾段就是指數(shù)碼管里有相應(yīng)的幾個(gè)小 LED 發(fā)光二極
24、管,通過控制不同的 LED 的亮滅來顯示出不同的字形(見圖 2-4(a)) 。從各發(fā)光二極管的電極連接方式又可以分為 共陽極和共陰極兩種類型。共陰極則是所有的二極管的陰極連接在一起,而陽極是分離 的(見圖 2-4(b)) ;而共陽極就是所有二極管的陽極是公共相連,而陰極則是分離的(見 圖 2-4(c)) 。學(xué)習(xí)機(jī)采用的是八段共陰極數(shù)碼管。 數(shù)碼管與發(fā)光二極管的工作原理相同,共陽極時(shí),所有正端接電源正極,當(dāng)負(fù)端有 低電平時(shí),該段有電流流過,發(fā)光管亮,當(dāng)負(fù)端為高電平時(shí),該段無電流流過,發(fā)光管 不亮。要顯示什么數(shù)字,就使對應(yīng)的段為低電平(見表 2-1) 。共陰極與共陽極的電平變 化狀態(tài)相反。當(dāng)每個(gè)段
25、的驅(qū)動電流為 220mA, 電流越大,發(fā)光越亮。 圖 2-4 數(shù)碼管內(nèi)部結(jié)構(gòu)圖 常用的七段式數(shù)碼管的硬件驅(qū)動設(shè)計(jì)方法有:靜態(tài)驅(qū)動與動態(tài)驅(qū)動。靜態(tài)驅(qū)動即指 每個(gè)數(shù)碼管的數(shù)據(jù)線都有一個(gè)單獨(dú)的數(shù)據(jù)鎖存器,數(shù)據(jù)鎖存器輸入的數(shù)據(jù)由使能端控制, 當(dāng)使能端為高電平時(shí),數(shù)據(jù)線上的數(shù)據(jù)(要顯示的七段碼)進(jìn)入顯示器,使能端與地址 譯碼器的輸出相連,要顯示那位,則選通那位的地址,在軟件設(shè)計(jì)上不要求程序循環(huán), 也不存在顯示數(shù)字發(fā)生閃爍。但是這樣會占用很多口線。 動態(tài)顯示是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有 效。這樣一來,就沒有必要每一位數(shù)碼管配一個(gè)鎖存器,從而節(jié)省了口線,地簡化了硬 件電路
26、。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管 的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示。 學(xué)習(xí)機(jī)采用的是動態(tài)掃描。動態(tài)掃描驅(qū)動數(shù)碼管的優(yōu)點(diǎn):當(dāng)顯示位數(shù)較多時(shí),采用 動態(tài)顯示方式比較節(jié)省 I/O 口,硬件電路也較靜態(tài)顯示簡單;缺點(diǎn):其穩(wěn)定度不如靜態(tài) 顯示方式。而且在顯示位數(shù)較多時(shí) CPU 要輪番掃描,占用 CPU 較多的時(shí)間??偟膩碚f, 無論是動態(tài)還是靜態(tài)顯示,其顯示更新的速率不能太快,如數(shù)據(jù)不停變化,太快則無法 看清楚顯示的內(nèi)容,在軟件設(shè)計(jì)是必須注意的。另外,在同等條件下動態(tài)顯示的亮度比 靜態(tài)顯示要差一些,所以在適當(dāng)提高驅(qū)動電流,例如使用限流電阻
27、,就應(yīng)略小于靜態(tài)顯 示電路中的,或者使用緩沖驅(qū)動芯片。 表 2-1 顯示的數(shù)字和七段碼各位的對應(yīng)關(guān)系表 顯示值 0123456789 七段共陰 3FH06H5BH4FH66H6DH7DH07H7FH6FH 七段共陽 C0HF9HA4HB0H99H92H82HF8H80H90H 2數(shù)碼顯示電路分析 (1)芯片的介紹 74HC138 是常用的 3-8 線譯碼器, 即具有 3 個(gè)輸入端( 管腳 1,2,3) 與 8 個(gè)輸 出端( 管腳 15,14、13, 12, 11,10,9,7) ,作用為完成 3 位二進(jìn)制數(shù)據(jù)到 8 位片選的譯 碼。也就是說,3 個(gè)輸入端對應(yīng) 8 個(gè)二進(jìn)制數(shù)據(jù)(000,001,
28、010,011,100,101,110,111) , 對于每個(gè)輸入的數(shù)據(jù),輸出端相應(yīng)位輸出低電平,其他 7 位輸出高電平。74HC138 具有 2 個(gè)低電平使能端(管腳 4,5)與 1 個(gè)高電平使能端(管腳 6), 當(dāng)?shù)碗娖绞鼓芏私拥碗?平且高電平使能端接高電平時(shí) 74HC138 才能正常工作,否則 8 個(gè)輸出端全部輸出高電平。 74HC138 的真值表如表 2.2 所示:H 代表高電平,L 代表低電平,X 代表不定的狀態(tài)。 表2-2 74HC138的真值表 74HC273是8 D觸發(fā)器,內(nèi)部包含8個(gè)D觸發(fā)器,它們使用公共的時(shí)鐘脈沖和異步清零 信號,觸發(fā)方式為邊沿觸發(fā)。74HC273真值表如表
29、2.3所示, 其中H表示高電平, L表示低 電平,表示任意輸入, 表示上升沿觸發(fā)。 表2-3 74HC273的真值表 (2)電路原理 圖 2-5 為數(shù)碼顯示電路,顯示電路中采用了 8 只數(shù)碼管,連接方式為八段共陰極數(shù) 碼管,顯示方案為動態(tài)掃描。從圖 2-5 中可以看出驅(qū)動數(shù)碼管總共用了 6 個(gè)單片機(jī) I/O 口,其中三個(gè) I/O 口通過一片 74HC138 控制 74HC273 鎖存器的時(shí)鐘 CLK 來實(shí)現(xiàn)對數(shù)碼管 中的各段驅(qū)動,另三個(gè) I/0 口通過控制另一片 74HC138 來實(shí)現(xiàn)對 8 個(gè)數(shù)碼管中的公共端 驅(qū)動;三極管 Q1Q8 工作在開關(guān)狀態(tài); 2.1.3 外部存儲器電路 62256
30、是 32 K8 的高集成度的隨機(jī)存取存儲器,有 28 個(gè)引腳,采用單一+5V 電源 供電,雙列直插式結(jié)構(gòu)。它們的內(nèi)部結(jié)構(gòu)與 6264 類似,也是由存儲器陣列、行列地址 譯碼器以及數(shù)據(jù)輸入輸出控制邏輯組成。引腳功能和外部特性與 6264 基本相同,區(qū)別僅 在于由于容量大,第 26 引腳為 A13 第 1 引腳為 A14。 62256 是 32K 的低功能靜態(tài) RAM 存儲器。用 P0 和 P2 來拓展外部 ram(就是用 P0 和 P2 與 62256 對應(yīng)的管教相連接),假設(shè) P2.7 接 WR,P2.6 接 RD,P2.5 接 CS,那么久可以確 定外部 RAM 的一個(gè)地址,想往外部 RAM
31、 的一個(gè)地址寫一個(gè)字節(jié)時(shí),地址可以定為 XBYTE 0*8000,其中 WR,CS 為低,RD 為高,那就是(也就是 P2.7 和 P3.6 輸出了低電平,而 P3.7 輸出了高電平,目的當(dāng)然是要選通 62256 并且向 62256 寫入數(shù)據(jù)),其它位的可以 根據(jù)情況自己定(也就是其它位 ushism 不打緊,關(guān)鍵就是控制 wr,cs,rd 的那幾個(gè)位 要符合選通,讀,寫的規(guī)定就可以了),現(xiàn)在我們向 62256 中寫個(gè) 26 進(jìn)去就可以使用這 天語句:XBYTE 0*8000= 26 MCS-51 單片機(jī)系統(tǒng)拓展時(shí),一般使用 P0 口作為地址低 8 位(與數(shù)據(jù)口分時(shí)復(fù)用), 而 P2 口作為地
32、址高 8 位,它共有 16 跟地址總線,尋址空間為 64KB。 62256 引腳功能 A0 A14 地址總線 D0 /D7 輸入、輸出口 CS 端口選擇 WE 輸入使能 OE 輸出使能 VCC 電源使能 VSS 接地 A 7 B 6 C 4 D 2 E 1 F 9 G 10 DP 5 C1 3 C2 8 M 1 A 7 B 6 C 4 D 2 E 1 F 9 G 10 DP 5 C1 3 C2 8 M 2 A 7 B 6 C 4 D 2 E 1 F 9 G 10 DP 5 C1 3 C2 8 M 3 A 7 B 6 C 4 D 2 E 1 F 9 G 10 DP 5 C1 3 C2 8 M 4
33、 A 7 B 6 C 4 D 2 E 1 F 9 G 10 DP 5 C1 3 C2 8 M 5 A 7 B 6 C 4 D 2 E 1 F 9 G 10 DP 5 C1 3 C2 8 M 6 A 7 B 6 C 4 D 2 E 1 F 9 G 10 DP 5 C1 3 C2 8 M 7 A 7 B 6 C 4 D 2 E 1 F 9 G 10 DP 5 C1 3 C2 8 M 8 S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S
34、5S6S7 S1 S2 S3 S4 S5 S6 S7 A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 U3 74HC138 38A 38B 38C D0 D1 D2 D3 D4 D5 D6 D7 VCC S8 S8S8S8S8S8S8S8S8 Q1 9012 Q2 9012 Q3 9012 Q4 9012 Q5 9012 Q6 9012 Q7 9012 Q8 9012 D1 3 Q1 2 D2 4 Q2 5 D3 7 Q3 6 D4 8 Q4 9 D5 13 Q5 12 D6 14 Q6 15 D
35、7 17 Q7 16 D8 18 Q8 19 C LK 11 C LR 1 U574HC273 VCC 4 5 6 U6B 1011 U9E 1213 U9F W R DISP A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 U13 74HC138 GND VCC P2.5 P2.6 P2.7 DISP 圖 2-5 數(shù)碼管顯示電路 D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7
36、 19 OE 1 LE 11 U2 74HC373 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 A8 A9 A10 AE EA R WR A0 10 A1 9 A2 8 A3 7 A4 6 A5 5 A6 4 A7 3 A8 25 A9 24 A10 21 A11 23 A12 2 C S1 20 C S2 26 W E 27 OE 22 D0 11 D1 12 D2 13 D3 15 D4 16 D5 17 D6 18 D7 19 U8 VCC A11 A12 R OE R CS 11 12 13 U6D 1 2 3 U6A 56 U9C
37、4 5 6 U11B 8 9 10 U11C 11 12 13 U11D R AM C R D W R 1 2 3 4 J8 R 282K VCC R 23 2K VCC R CS R OE R WR A0 A1 A2 A3 A4 A5 A6 A7 A14 1 A12 2 A7 3 A6 4 A5 5 A4 6 A3 7 A2 8 A1 9 A0 10 D0 11 D1 12 D2 13 VSS 14 D3 15 D4 16 D5 17 D6 18 D7 19 C S 20 A10 21 OE 22 A11 23 A9 24 A8 25 A13 26 W E 27 VCC 28 U12 622
38、56 VCC GND A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 U13 74HC138 GND VCC P2.5 P2.6 P2.7 1 2 3 U14A 74HC08 4 5 6 U14B 74HC08 8 9 10 U14C 74HC08 R AM C 32KSR AM C S 11 12 13 U14D 74HC08 PSEN R D 32KSR AM OE W R AW R AW R 32KSR AM C S 32KSR AM OE A0 A1 A2 A3 A4 A5 A6 A7 A
39、8 A9 A10 A11 A12 P2.5 P2.6 D0 D1 D2 D3 D4 D5 D6 D7 1 2 3 4 5 6 7 8 9 PR1 1 2 3 4 5 6 7 8 9 PR2 VCC VCC D0 D1 D2 D3 D4 D5 D6 D7 A8 A9 A10 A11 A12 P2.5 P2.6 P2.7 8 9 10 U6C 1 2 3 U11A PSEN POW C HK 圖 2-6 外部存儲器電路 2.1.4 外部存儲器的保護(hù)電路 存儲器寫保護(hù)電路在系統(tǒng)上電、掉電、電源電壓低以及切換系統(tǒng)程序和用戶程序時(shí) 禁止存儲器寫操作,保護(hù)用戶代碼。由圖 2-7 所示。R30 和 Q15
40、檢測單片機(jī)復(fù)位信號, R25、R26、Q14、R*組成電源檢測電路。 D11 R25 R26 Q14 12 U9A 34 U9B 8 9 10 U11C R27 VCC R30 Q15 RST R* PROTECT RAMWR 圖 2-7 存儲器寫保護(hù)電路原理圖 2.1.5 鍵盤輸入電路 圖 2-8 為鍵盤輸入電路,鍵盤電路使用一片 74HC138 擴(kuò)展 8 個(gè)按鍵。 A 1 B 2 C 3 E 1 4 E 2 5 E 3 6 Y 0 15 Y 1 14 Y 2 13 Y 3 12 Y 4 11 Y 5 10 Y 6 9 Y 7 7 U 4 74H C138 K SA K SB K SC K
41、2K 7K 5K 8K 9K 3K 4K 6 K SI V CC 圖 2-8 為鍵盤輸入電路 控制信號 KSA、KSB、KSC 通過 74L138 輸出 Y0Y7 信號,然后在由 K2K9 按鍵 控制,最后決定 KSI 信號是否導(dǎo)通。例如:若控制信號 KSA、KSB、KSC 為 011,則 Y3 為低電平,如果 K6 按鍵按下,結(jié)果 KSI 導(dǎo)通。 2.1.6 自動程序切換電路 如圖 2-9 所示的程序自動切換電路是系統(tǒng)的關(guān)鍵部分,其作用是自動切換系統(tǒng)程序 和用戶程序,在切換程序的同時(shí)給單片機(jī)一個(gè)復(fù)位信號,使得切換程序后單片機(jī)都從 0000 地址開始執(zhí)行程序。 學(xué)習(xí)機(jī)系統(tǒng)程序在單片機(jī)片內(nèi),用戶
42、程序在片外,通過自動邏輯控制電路切換系統(tǒng) 程序和用戶程序。邏輯控制電路可以是純數(shù)字邏輯電路或微電腦控制電路,其關(guān)鍵是必 須在切換程序的時(shí)候給單片機(jī)復(fù)位信號,并且自動切換單片機(jī)的讀、寫、外部程序存儲 器的選通信號。其實(shí)現(xiàn)原理如下: (1)復(fù)位信號的產(chǎn)生 若開始時(shí) EA 為高電平,此時(shí)運(yùn)行系統(tǒng)程序,若要切換到用戶 程序,則將 K1 閉合,EA 為低電平,C21 放電,Q13 截止,C20 通過 Q12 的 BE 極和 R16 充 電,Q12 導(dǎo)通,產(chǎn)生復(fù)位高電平脈沖,若再要切換到系統(tǒng)程序,則將 K1 打開,EA 為高電 平,C21 通過 Q13 的 BE 極充電,Q13 導(dǎo)通,C20 通過 Q13
43、 的 CE 極放電,由于 Q13 導(dǎo)通后 集電極為低電平,所以 Q12 也導(dǎo)通,同樣產(chǎn)生復(fù)位脈沖。達(dá)到復(fù)位的目的。 C21 R19 R16 C19 R17 K1 R20 RST R18 EA VCCVCC Q12 Q13 C20 11 12 13 U6D 1 2 3 U6A 56 U9C 1 2 3 U11A 4 5 6 U11B 8 9 10 U11C 11 12 13 U11D RAMCS1 PSEN RD WR RAMCS RAMRD R21 D10 RAMWR PROTECT 圖 2-9 自動程序切換電路原理圖 (2)邏輯切換電路 若開始時(shí) EA 為高電平,此時(shí)運(yùn)行系統(tǒng)程序,外部程序存
44、儲器選 通信號 PSEN 不能通過 U11A 而無效,讀信號 RD 可通過 U11D,由于 U11A 輸出為高電平,所 以 RD 信號通過 U11D 后又可以通過 U6A,實(shí)現(xiàn)對外部存儲器的讀操作;寫信號 WR 可通過 U11B,WR 和保護(hù)電路相或后實(shí)現(xiàn)對外部存儲器的寫操作。若 EA 為低電平,此時(shí)運(yùn)行用戶 程序,PSEN 有效,讀寫信號無效,即外部存儲器為程序存儲器,不能進(jìn)行寫操作。需要注意 的是在切換程序時(shí),必須啟動一個(gè)存儲器寫保護(hù)電路,以防止此期間外存儲器被意外寫 數(shù)據(jù)。從而破壞了用戶程序。此外,在系統(tǒng)上電及掉電時(shí),也需要對外存儲器寫保護(hù)。 在電源電壓不足時(shí),為安全起見,也應(yīng)該對外存儲
45、器寫保護(hù)。 2.1.7 RS232 通信電路 如圖 2-10 所示,Q1、Q2 相互連接,完成信號電平的反相,D2、C1、C2 連接組成電 源電路,D1 連接 Q2 的基腳,是 Q2 的保護(hù)二極管,D4 連接單片機(jī) RXD,是單片機(jī) RXD 引 腳的保護(hù)二極管。RS232 通信接口電路為程序下載接口。 圖 2-10 RS232 通信電路 2.1.8 電源電路 如圖 2-11 所示,電源輸入電路有兩個(gè)輸入端,一個(gè)為直流 9-12V 輸入,可接受變壓 器輸入;另一個(gè)為直流 5V 輸入,可以用 4 節(jié)干電池供電。電壓檢測電路在電源電壓不足 時(shí)會給單片機(jī)一個(gè)中斷信號,同時(shí)禁止存儲器寫操作。 1 2 J
46、3D 8 4007 C 10C 11 PJ1 R 15 510 D 9 V in 1 GND 2 +5V 3 U 10 V CC D 11 R 25 100K R 26 18K Q 14 9013 1 2 J7 12 U 9A 34 U 9B R 27 510 C 6 470U IN T 0 V CC C 12 C 13C 14C 16C 15 C 22 345 C 18 R * POW C HK 圖 2-11 電源電路 2.2 多功能單片學(xué)習(xí)機(jī)的軟件設(shè)計(jì)多功能單片學(xué)習(xí)機(jī)的軟件設(shè)計(jì) 學(xué)習(xí)機(jī)軟件由兩部分組成: 上位機(jī)PC 軟件和下位機(jī)軟件。PC 機(jī)軟件在Windows 環(huán) 境下用Visual B
47、asic 軟件編寫,完成程序下載及程序切換控制,包括文件操作部分、通 信測試部分、通信協(xié)議處理部分、錯(cuò)誤處理等輔助功能。下位機(jī)軟件可以分為系統(tǒng)軟件 和應(yīng)用軟件兩類,系統(tǒng)軟件放置于系統(tǒng)單片機(jī)內(nèi),應(yīng)用軟件(也即用戶程序)是無限增 加的。比如AD/DA 實(shí)驗(yàn)程序、液晶顯示器實(shí)驗(yàn)程序、USB 驅(qū)動實(shí)驗(yàn)程序、網(wǎng)絡(luò)實(shí)驗(yàn)程序、 編程器擴(kuò)展應(yīng)用程序、解碼器、示波器等。學(xué)習(xí)機(jī)能夠完成各種實(shí)驗(yàn),這是由于其使用 了執(zhí)行外部程序加上擴(kuò)展板的靈活結(jié)構(gòu)。 下位機(jī)系統(tǒng)軟件的主要功能有:與上位機(jī)聯(lián)合下載程序;單機(jī)獨(dú)立工作,使用系統(tǒng)鍵 盤或紅外遙控器修改/ 查看程序代碼,適合處理代碼量少的情況; 具有頻率計(jì)功能和 脈寬測量功能
48、;具有編程器功能。 2.3 本章小結(jié)本章小結(jié) 本章中詳細(xì)地介紹了多功能單片學(xué)習(xí)機(jī)的硬件設(shè)計(jì),其中硬件設(shè)計(jì)包括單片機(jī) AT89S52 電路,數(shù)碼顯示電路,外部存儲器電路,外部存儲器的保護(hù)電路,鍵盤輸入電路, 程序自動切換電路和電源電路等;然后,簡要地介紹軟件設(shè)計(jì),軟件設(shè)計(jì)包括上位機(jī) PC 軟件和下位機(jī)軟件。 第三章 NAND FLASH 擴(kuò)展板的設(shè)計(jì) 基于多功能單片學(xué)習(xí)機(jī)的NAND FLASH驅(qū)動包括兩部分:NAND FLASH控制器 和NAND FLASH存儲器。要訪問NAND FLASH中的數(shù)據(jù), 必須通過NAND FLASH控制 器發(fā)送命令才能完成。所以,NAND FLASH相當(dāng)于多功能單
49、片學(xué)習(xí)機(jī)的一個(gè)外設(shè)。 基于多功能單片學(xué)習(xí)機(jī)的NAND FLASH驅(qū)動的總體方案設(shè)計(jì)如圖3.1所示,電路主 要由多功能學(xué)習(xí)機(jī)中的單片機(jī)電路,鍵盤電路,數(shù)碼管顯示電路,擴(kuò)展外部RAM電 路以及擴(kuò)展板NAND FLASH組成,其中NAND FLASH可選K9F2808U0B(16M X 8 BIT)、 K9F1208U0B(64M X 8 BIT)。 單單單單單 單單單AT89S52單單單單單 74HC373 SRAM 62256 8*1 單單 NAND FLASH A0-A7 A8-A15 D0-D7 74HC138 圖3-1 基于多功能單片學(xué)習(xí)機(jī)的NAND FLASH驅(qū)動的總體方案 3.1 NA
50、ND FLASH 擴(kuò)展板硬件電路設(shè)計(jì)擴(kuò)展板硬件電路設(shè)計(jì) 3.1.1 NAND FLASH 接口電路 K9F1208U0B 是由行(頁)*528 列構(gòu)成。它的編程和讀操作是以頁為基礎(chǔ)執(zhí) 行,而擦除操作是以塊為基礎(chǔ)執(zhí)行。在讀頁和頁操作時(shí),連到存儲器的 528 字 節(jié)的數(shù)據(jù)寄存器在 I/O 緩沖與存儲器之間傳遞數(shù)據(jù)。3.6V 電源通過 5V 電源連 接兩個(gè)可調(diào)電阻,從而獲取 3.6V 的電壓。NAND FLASH 接口電路如圖 3-2 所示。 K9F1208U0B 芯片有 4 個(gè) plane,每個(gè) plane 有 1024 個(gè) Block,每個(gè) Block 有 32Page,每個(gè) Page 有 52
51、8Byte。 1 Page=528 Byte 1 Block=528 Byte *32 Pages=(16K+512)Byte 1Device=528Bytes*32Pages*4096 Blocks=512Mbit+16Mbit=64MByte+2MByte 合計(jì):K9F1208U0B 有 4 個(gè) Plane、4096 個(gè) Block、32*4096=個(gè) Page。 圖 3-2 NAND FLASH 接口電路 I/O0 I/O7-data inputs/outputs 通過這 8 個(gè) I/O 引腳,可以輸入 命令,地址和數(shù)據(jù),也可以在讀操作時(shí)輸出數(shù)據(jù)。 CLE-command latch e
52、nable CLE 輸入控制了發(fā)送到命令寄存器的命 令。CLE 為高電平時(shí)激活,在 WE 的上升沿,命令通過 I/O 端口被鎖存到命令寄 存器中,結(jié)合 datasheet 的相關(guān)時(shí)序圖來理解更為深刻。 ALE-address latch enable ALE 輸入控制了地址發(fā)送到內(nèi)部地址寄 存器中,在 WE 的上升沿和 ALE 為高電平時(shí),地址被鎖存到地址寄存器中。 CE-chip enable CE 是設(shè)備選擇控制引腳。 WE-write enable 寫使能,在 WE 的上升沿,命令,地址和數(shù)據(jù)被鎖存。 WP -write protect 寫保護(hù),當(dāng)此引腳為低電平激活,也即內(nèi)部高壓 發(fā)生器
53、復(fù)位。 R/B-ready/busy output 就緒/忙輸出引腳,通過這個(gè)引腳可以知道設(shè) 備操作的狀態(tài)。低電平時(shí),表示編程或擦除或隨機(jī)讀操作在進(jìn)行,并且根據(jù)完 成情況來返回高狀態(tài) 3.1.2 控制器的工作原理 圖 3-3 學(xué)習(xí)機(jī)引出的插座 多功能學(xué)習(xí)機(jī)作為NAND FLASH的控制器,要訪問NAND Flash 中的數(shù)據(jù), 必須通過 NAND Flash 控制器發(fā)送命令才能完成。NAND Flash 控制器在其 專用寄存器區(qū)( SFR)地址空間中映射有屬于自己的特殊功能寄存器, 就是通過 將 NAND Flash 芯片的內(nèi)設(shè)命令寫到其特殊功能寄存器中, 從而實(shí)現(xiàn)對 NAND Flash 芯
54、片讀、檢驗(yàn)和編程控制。特殊功能寄存器有: NFCONF、NFCMD、NFADDR、NFDATA、NF STAT 、NFECC。圖 3-3 為多功能學(xué)習(xí)機(jī) 引出的插座。 3.2 NAND FLASH 驅(qū)動驅(qū)動 開 始 數(shù)據(jù)初始化 數(shù)碼管掃描 是否有鍵輸入 Y 數(shù)據(jù)寫入鍵嗎 Y 向 NAND 芯 片存儲數(shù)據(jù) 校驗(yàn)數(shù)據(jù)是否正 確寫入 LED 顯示操作 結(jié)果 N 擦除鍵嗎 N N 擦除 NAND Y NAND 接口 初始化 圖 3-3 NAND FLASH 驅(qū)動的主程序流程圖 NAND FLASH 驅(qū)動的主程序流程圖如圖 3-3 所示。開始需要使數(shù)據(jù)初始化, 然后使 NAND 接口初始化,再經(jīng)數(shù)碼管掃
55、描后看是否有鍵輸入,若無則返回到數(shù) 碼管掃描,若有,則向 NAND 芯片存儲數(shù)據(jù);再校檢是否正確寫入,然后通過 LED 顯示操作結(jié)果,最后回到數(shù)碼管掃描;如果沒有數(shù)據(jù)寫入,則判斷是否要 有擦除鍵按下,若無,則回到數(shù)碼管掃描,如若擦除鍵按下,則擦除 NAND 回到 數(shù)碼管掃描。 3.2.1 NAND FLASH 的工作原理 NAND FLASH的數(shù)據(jù)是以bit的方式保存在memory cell,一般來說,一個(gè) cell 中只能存儲一個(gè)bit。這些cell 以8個(gè)或者16個(gè)為單位,連成bit line, 形成所謂byte(x8)/word(x16),這就是NAND FLASHDevice的位寬。這
56、些Line會 再組成Page,(NAND FLASH有多種結(jié)構(gòu),以三星K9F1208U0M為例,每頁528 Bytes (512byte(Main Area)+16byte(Spare Area),每32個(gè)page形成一個(gè) Block(32*528B)。具體一片flash上有多少個(gè)Block視需要所定。k9f1208U0B具 有4096個(gè)block,故總?cè)萘繛?096*(32*528B)=66MB,但是其中的2MB是用來保 存ECC校驗(yàn)碼等額外數(shù)據(jù)的,故實(shí)際中可使用的為64MB。NAND FLASH以頁為單位 讀寫數(shù)據(jù),而以塊為單位擦除數(shù)據(jù)。按照這樣的組織方式可以形成三類地址: (1)Colu
57、mn Address:Starting Address of the Register: 列地址,地址的 低8位(2)Page Address :頁地址(3)Block Address :塊地址。對于NAND FLASH來講,地址和命令只能在I/O7:0上傳遞,數(shù)據(jù)寬度是8位。擦除操作的 最小單位是塊 ,NAND FLASH芯片每一位只能從1變?yōu)?,而不能從0變?yōu)?,所以 在對其進(jìn)行寫入操作之前一定要將相應(yīng)塊擦除(擦除就是將相應(yīng)塊的位全部變 為1 ),NAND FLASH器件中存在壞塊,壞塊是隨機(jī)分布的,NAND FLASH控制器需 要對介質(zhì)進(jìn)行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標(biāo)記為不可用。 3
58、.2.2 NAND FLASH 的讀操作 功能: 讀數(shù)據(jù)操作以頁為單位, 讀數(shù)據(jù)時(shí)首先寫入讀數(shù)據(jù)命令00H, 然后輸 入要讀取頁的地址, 接著從數(shù)據(jù)寄存器中讀取數(shù)據(jù), 最后進(jìn)行ECC 校驗(yàn)。參數(shù) 說明: block, 塊號; page, 頁號; buffer, 指向?qū)⒁x取到內(nèi)存中的起始位置; 返回值1, 讀成功, 返回值0: 讀失敗。 static int NF_ReadPage ( unsigned int block, unsigned int page, unsigned char * buffer) NF_RST ECC( ) ; / * 初始化ECC * / NF_nFCE_L(
59、) ; / * 片選NAND Flash 芯片* / NF_CMD( 0 x00) ; / * 從A 區(qū)開始讀* / / * A0 A7( 列地址) * / NF_ADDR( 0) ; / * A9A16( 頁地址) * / NF_ADDR( blockPage / * A17A24, ( 頁地址) * / NF_ADDR( ( blo ckPag e 8) / * A25, ( 頁地址) * / NF_ADDR( ( blo ckPag e 16) / * 等待NAND Flash 處于再準(zhǔn)備狀態(tài)* / ReadPag e( ) ; / * 讀整個(gè)頁, 512 字節(jié)* / ReadECC(
60、) ; / * 讀取ECC 碼* / ReadOOB( ) ; / * 讀取該頁的OOB 塊* / / * 取消NAND Flash 選中* / NF_nFCE_H( ) ; / * 校驗(yàn)ECC 碼, 并返回* / Return ( checkEcc( ) ) 3.2.3 NAND FLASH 的編程 功能: 對頁進(jìn)行編程命令, 用于寫操作。 命令代碼: 首先寫入00h( A 區(qū)) / 01h( B 區(qū)) / 05h( C區(qū)) , 表示寫入 那個(gè)區(qū); 再寫入80h 開始編程模式( 寫入模式) , 接下來寫入地址和數(shù)據(jù); 最 后寫入10h 表示編程結(jié)束。圖3.4 為寫程序流程圖。 參數(shù)說明: b
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 度森林資源使用權(quán)轉(zhuǎn)讓合同
- 裝修工程勞動合同合同樣本
- 區(qū)域合作分銷合同協(xié)議
- 合同履行完畢確認(rèn)聲明書
- 黃山風(fēng)景區(qū)國內(nèi)旅游合同
- 私人借款合同樣本及還款細(xì)則
- 境外就業(yè)派遣合同
- 商業(yè)綜合體停車位租賃合同范本
- 商標(biāo)糾紛和解合同細(xì)則
- 木材加工企業(yè)的品牌形象宣傳與公關(guān)活動考核試卷
- 慢阻肺從急性加重期到穩(wěn)定期的全程管理
- 罪犯教育學(xué)課程
- 紀(jì)檢監(jiān)察辦案談話應(yīng)注意的問題研討
- 超實(shí)用工程結(jié)算單excel模板
- 一年級小學(xué)生新學(xué)期開學(xué)計(jì)劃
- ISO9001-2015質(zhì)量手冊和全套程序文件
- 醫(yī)療器械產(chǎn)品放行程序
- 07j306排水溝圖集標(biāo)準(zhǔn)
- 裝飾材料復(fù)試清單
- GB/T 10089-1988圓柱蝸桿、蝸輪精度
- 國際商法 吳建斌課件 思考題答案
評論
0/150
提交評論