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