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