基于XCR3032的大容量FLASH存儲(chǔ)器接口設(shè)計(jì)
FLASH存儲(chǔ)器(FLASH Memory)是非易失存儲(chǔ)器,即使在供電電源關(guān)閉后仍然能保留信 息, 可以對(duì)存儲(chǔ)器單元塊進(jìn)行擦除和再編程,并且不需要額外的編程電壓。FLASH存儲(chǔ)器具有工 作電壓低、擦寫速度快、功耗低、壽命長(zhǎng)、價(jià)格低廉、控制方法靈活、體積小等優(yōu)點(diǎn)。近年 來(lái),FLASH存儲(chǔ)器在嵌入式系統(tǒng)代碼存儲(chǔ)和大容量數(shù)據(jù)存儲(chǔ)領(lǐng)域中得到了廣泛的應(yīng)用。本文 介紹了使用XCR3032實(shí)現(xiàn)K9K1G08U0M與微控制器的接口原理,給出了VerilogHD L實(shí)現(xiàn)程序。對(duì)大容量FLASH存儲(chǔ)器的接口設(shè)計(jì)具有一定的參考價(jià)值。
XCR3032是Xilinx公司生產(chǎn)的CoolRunner XPLA3系列CPLD。他具有如下特點(diǎn):
低功耗供電電壓僅為2.7~3.6 V。他采用Fast Zero PowerTM( FZP)技術(shù),使得器件的靜態(tài)電流非常低(小于100 μA);頻率為10 MHz時(shí),工作電流僅為1 06mA,比其他公司的CPLD小50%~67%。
高性能具有32個(gè)宏單元,器件所有信號(hào)具有等延時(shí),與路徑無(wú)關(guān),t PD最快可達(dá)5 ns。最高運(yùn)行時(shí)鐘頻率可達(dá)200 MHz,多時(shí)鐘資源使得設(shè)計(jì)更加方便 。
總線接口友好特別適合應(yīng)用于3.3 V系統(tǒng)中,可無(wú)需外接上拉電阻而與5 V器件直接接口。
具有Port Enable管腳使得JTAG管腳具有在系統(tǒng)可編程接口和通用I/O口 2種功能。芯片不處于編程狀態(tài)時(shí),仍可用作一般I/O口。
快速ISP編程可達(dá)至少1萬(wàn)次的編程擦除次數(shù)。
XCR3032最顯著的特點(diǎn)是低功耗和高速度。特別適用于手持、移動(dòng)等功耗比較低的系統(tǒng)中。 如PDA、筆記本電腦、移動(dòng)電話等領(lǐng)域。
K9K1G08U0M是韓國(guó)三星(Samsung)公司采用NAND技術(shù)生產(chǎn)的128 MB大容量、高可靠、非 易 失性FLASH存儲(chǔ)器,具有高密度、高性能的特點(diǎn)。該器件所提供的片內(nèi)控制器、狀態(tài)寄存器 和專用命令集使其可以靈活地運(yùn)用在各種存儲(chǔ)系統(tǒng)電路中。他的最大優(yōu)點(diǎn)是8位I/O端口是地 址、數(shù)據(jù)和命令的多路復(fù)用,這樣不但大大減少了芯片的引腳數(shù),而且簡(jiǎn)化了系統(tǒng)的連線, 便于系統(tǒng)以后擴(kuò)充芯片容量而不需改變系統(tǒng)板結(jié)構(gòu)設(shè)計(jì)。
K9K1G08U0M對(duì)于諸如文件存儲(chǔ)、聲 音和音頻信號(hào)處理、智能儀器設(shè)備等要求大容量非易失性存儲(chǔ)的應(yīng)用場(chǎng)合提供了一種極佳的 解決方案。他的典型特性如下:
(1)工作電壓:2.7~3.6 V
(2)自動(dòng)編程和擦除
頁(yè)編程:(512+16)B
塊擦除:(16 k+512)B
(3)可進(jìn)行528 B/頁(yè)讀操作
隨機(jī)訪問(wèn):12μs(最大值)
頁(yè)面連續(xù)訪問(wèn):50μs(最小值)
(4)快速寫周期時(shí)間
編程時(shí)間:200μs(典型值)
塊擦除時(shí)間:2 ms(典型值)
(5)硬件數(shù)據(jù)保護(hù)
在電源電壓VCC2 V時(shí),內(nèi)部電壓探測(cè)器禁止編程/擦除操作。
使用壽命達(dá)100 k次編程、擦除,數(shù)據(jù)可保存達(dá)10年,48腳TSOP封裝。K9K1G08U0M的功能組成框圖如圖1所示。他與控制器的接口信號(hào)除8個(gè)I/O線外, 還包括地址鎖存使能ALE,命令鎖存使能CLE,片選信號(hào)CE,讀使能信號(hào)RE ,寫I/O信號(hào)WE,寫保護(hù)WP控制線,操作狀態(tài)指示信號(hào) R/B等控制線,因此主控制器可以方便地實(shí)現(xiàn)對(duì)他的控制。K9K1G08U0M的地址、數(shù)據(jù)和命令信號(hào)輸入都使用8位的I/O口,當(dāng)CE為低 時(shí),命令、地址和數(shù)據(jù)在WE變低時(shí)由I/O寫入,并在WE的上升沿鎖 存。通過(guò)命令鎖存信號(hào)CLE和地址鎖存信號(hào)ALE可實(shí)現(xiàn)命令和地址對(duì)I/O的復(fù)用。K9K1G 08U0M的引腳特性及常用命令見(jiàn)參考文獻(xiàn)[4]。
3接口方法
K9K1G08U0M與微控制器常規(guī)接口方法是使用專用的口線模擬ALE,CLE并在CE,RE,的時(shí)序配合下完成所有的命令。這種方法的缺點(diǎn)是占用微控制器寶貴的 硬件資源,并要求軟件嚴(yán)格控制他們之間的時(shí)序,增加了程序運(yùn)行時(shí)間和軟件復(fù)雜度,降低 了程序的運(yùn)行效率。而且對(duì)于使用5 V電源的微控制器,由于K9K1G08U0M電源電壓是3 V,所 以他們之間的接口還存在邏輯電平轉(zhuǎn)換的問(wèn)題。
本文提出的方法使用1片XCR3032 CPLD就可以完美地解決上述問(wèn)題,高效地完成K9K1G08U 0 M的全部功能,而無(wú)需占用額外的口線,微控制器只需以固定的地址向XCR3032尋址,通過(guò)XC R3032產(chǎn)生的輸出信號(hào)實(shí)現(xiàn)對(duì)K9K1G08U0M的控制。XCR3032有如下作用:
(1)對(duì)微控制器送出的最低4位地址信息進(jìn)行譯碼。
(2)分析地址總線的命令并根據(jù)命令內(nèi)容提供K9K1G08U0M的相應(yīng)接口信號(hào)。
(3)監(jiān)控K9K1G08U0M的R/B的輸出。
綜上所述,利用XCR3032實(shí)現(xiàn)的K9K1G08U0M與微控制器接口電路如圖2所示。
根據(jù)K9K1G08U0M的接口時(shí)序要求,XCR3032要根據(jù)微控制器最低4位地址線解碼出K9K1G08U0 M相對(duì)應(yīng)的操作。XCR3032的輸出信號(hào)狀態(tài)取決于微控制器輸入的地址信息。假設(shè)XCR3032的 基地址是B,不同的輸入地址值所對(duì)應(yīng)的輸出操作和基本功能如表1所示。
當(dāng)微控制器送出地址是B+0需要讀取K9K1G08U0M數(shù)據(jù)、狀態(tài)和ID時(shí)候RD信號(hào)置0 。當(dāng)微控制器送出地址是B+0并且要求寫數(shù)據(jù)地址或者微控制器送出地址是B+1要求寫命令時(shí) 應(yīng)置0。
4Verilog-HDL語(yǔ)言的實(shí)現(xiàn)
經(jīng)過(guò)上述分析可知,輸入XCR3032的信號(hào)有微控制器讀寫信號(hào)WRIte, READ ,地址總線低4位address[3:0],
使用Verilog語(yǔ)言設(shè)計(jì)組合邏輯和時(shí)序 邏輯具有很高的效率。由于篇幅所限,相關(guān)變量的聲明在此略去,部分Verilog-HDL 代碼如下:
5結(jié)語(yǔ)
完整程序經(jīng)過(guò)Xilinx Project Navigator 6.1編譯、調(diào)試、仿真,利用并口下載電纜通 過(guò) JTAG接口下載到XCR3032中后,使用C8051F021單片機(jī)進(jìn)行接口實(shí)驗(yàn),證明使用該接口方法K9 K1G08U0M的各項(xiàng)功能和命令均可實(shí)現(xiàn)?,F(xiàn)已成功應(yīng)用于國(guó)家“863”計(jì)劃項(xiàng)目“海洋生態(tài)環(huán) 境自動(dòng)監(jiān)測(cè)技術(shù)”中。
評(píng)論