閃速存儲器AT29C010A及其應(yīng)用
關(guān)鍵詞:閃速存儲器;接口;AT29C010A;數(shù)據(jù)保護
引言
FLASH存儲器是一種電擦除與再編程的快速存儲器,又稱為閃速存儲器。它可以分為兩大類:并行FLASH和串行FLASH。串行產(chǎn)品能節(jié)約空間和成本,但存儲量小,又由于是串行通信,所以速度較慢,開發(fā)編程較復(fù)雜;并行產(chǎn)品具有存儲量大,速度快,使用方便等特點。ATMEL公司生產(chǎn)的29系列存儲器是一種并行、高性能、大容量閃速存儲器。
AT29C010A的主要特點
ATMEL公司生產(chǎn)的29系列CMOS Flash存儲器分為電池電壓型AT29BV系列(2.7V-3.6V操作),低電壓型AT29LV系列(3.0-3.6V操作),標準電壓型AT29C(5V操作)。AT29C010A是一種5V 在線閃速可電擦除的存儲器,具有掉電保護功能;方便的在線編程能力不需高的輸入電壓,指令系統(tǒng)在5V電壓下即可控制AT29C010A。AT29C010A具有1M位的存儲空間,分成1024個分區(qū),每一分區(qū)有128個字節(jié)。從AT29C010A中讀取數(shù)據(jù)與E2PROM的操作相似,再編程能力是以每一分區(qū)為單位的,128字節(jié)的數(shù)據(jù)裝入AT29C010A的同時完成編程。在一個再編程周期里,存儲單元的尋址和128字節(jié)數(shù)據(jù)通過內(nèi)部鎖存可釋放地址和數(shù)據(jù)總線,這樣可為其他操作提供地址和數(shù)據(jù)總線。編程周期開始,AT29C010A會自動擦除分區(qū)的內(nèi)容,然后對鎖存的數(shù)據(jù)在定時器的作用下進行編程。編程周期的結(jié)束是通過查詢I/O7的有效時實現(xiàn)的,一旦編程周期結(jié)束,就可開始一個新的讀或編程操作。
圖1 AT29C010A內(nèi)部結(jié)構(gòu)圖
AT29C010A具有以下主要特性:可電擦除、可編程的閃速存儲器;快速讀取時間—70ns;內(nèi)部程序和定時器控制;2個8K的可鎖定的自舉模塊;分區(qū)程序操作,擦除、編程單向循環(huán)方式,可超過10000次,1024個分區(qū)(128字節(jié)/分區(qū)),內(nèi)部地址和128位數(shù)據(jù)鎖存;硬件和軟件數(shù)據(jù)保護;快速的的分區(qū)編程周期—10ms;數(shù)據(jù)輪詢檢測編程是否結(jié)束;低功率消耗—50mA有效電流,100mACMOS維持電流;單一5V±10%電源供電;CMOS和TTL可兼容的輸入輸出;有商用和工業(yè)用的溫度可選范圍。
AT29C010A的內(nèi)部結(jié)構(gòu)如圖1所示。
器件操作
讀操作
AT29C010A的存取類似于E2PROM,當和為低電平、WE為高電平時,由A0-A16尋址的內(nèi)存單元中的數(shù)據(jù)會讀到I/O0-I/O7輸出管腳;若和為高電平,則I/O0-I/O7輸出管腳為高阻態(tài)。這種雙向控制的方式為使用者提供了避免總線競爭的靈活性。
字節(jié)裝載
AT29C010A的字節(jié)裝載是用于裝入每一分區(qū)待編程的128K字節(jié)數(shù)據(jù)或是用于進行數(shù)據(jù)保護的軟件編碼。每一字節(jié)的裝載是通過或各自有低電平,為高電平時實現(xiàn)的,數(shù)據(jù)是在或在一個上升沿時鎖存的。
編程
AT29C010A以分區(qū)為單位進行再編程,如果某一分區(qū)中的一個數(shù)據(jù)需要改變,那么這一分區(qū)中的所有數(shù)據(jù)必須重新裝入。一旦某一分區(qū)中的字節(jié)被裝入,這些字節(jié)將同時在內(nèi)部編程時間內(nèi)進行編程,在此時間內(nèi)若有數(shù)據(jù)裝入,則會產(chǎn)生不確定的數(shù)據(jù);當?shù)谝蛔止?jié)數(shù)據(jù)裝入AT29C010A之后,接著其余字節(jié)將以同一方式依次裝入,字節(jié)不需按順序裝載,可以任意方式裝載。每一新裝載的數(shù)據(jù)若要被編程,必須有(或)由高到低的跳變,這一跳變需在150ms內(nèi)完成,同時前面字節(jié)的(或)由低到高的跳變時間也是150ms。如果一個由高到低的跳變在最后一個由低到高的150ms內(nèi)沒有被檢測到,那么字節(jié)裝載的時間段將結(jié)束,此時內(nèi)部編程時間段開始。A7-A16提供分區(qū)地址,分區(qū)地址只在每一個(或)由高到低的跳變時才有效;A0-A6提供分區(qū)中每一字節(jié)的地址。一旦編程時間段開始,在寫周期的維持時間內(nèi),讀操作實際上是一種查詢。
軟件數(shù)據(jù)保護
AT29C010A具有軟件控制數(shù)據(jù)保護的特性,這一特性在ATMEL公司出廠時沒有開啟,用戶可根據(jù)需要開啟或關(guān)閉。一旦開啟,在未執(zhí)行關(guān)閉指令之前這一特性始終有效;供電情況的改變不會重新設(shè)置這一特性,但需警惕在供電情況改變時隨機的編程周期可能改變這一特性。若要開啟軟件數(shù)據(jù)保護,必須執(zhí)行三條針對存放有特殊數(shù)據(jù)的特殊地址單元的程序指令。當開啟軟件數(shù)據(jù)保護之后,所需的程序若要出現(xiàn),也必須執(zhí)行同樣的三條程序指令。軟件保護使能的軟件算法必須在程序可能執(zhí)行之前發(fā)送到AT29C010A,所有的軟件程序指令要按照分區(qū)程序的時序要求進行。在給出軟件數(shù)據(jù)保護的指令代碼之后便可進行字節(jié)的裝載。圖2給出了軟件數(shù)據(jù)保護使能或撤銷軟件算法的流程圖。
圖2 軟件數(shù)據(jù)保護使能或撤銷流程圖
圖3 工業(yè)智能檢測儀器框圖
硬件數(shù)據(jù)保護
AT29C010A硬件保護有以下幾種方法:
·VCC自動檢測—如果VCC低于3.8V(典型值),程序的運行將中止。
·VCC供電延遲—如果VCC達到自動檢測水平,AT29C010A將自動在編程前暫停5ms。
·編程禁止—當為低電平時,或為高電平時禁止編程。
·噪聲濾波—當或輸入脈寬少于15ns(典型值),則不啟動編程周期。
數(shù)據(jù)輪詢
AT29C010A采用數(shù)據(jù)輪詢來識別程序是否結(jié)束。在編程周期內(nèi),試圖讀數(shù)據(jù)的操作將在裝載最后一字節(jié)時在I/O7上產(chǎn)生裝載數(shù)據(jù)完成的信號;一旦編程周期結(jié)束,有效的數(shù)據(jù)將送到輸出端,并且開始下一編程周期,數(shù)據(jù)輪詢可以在編程周期的任何時間進行。
重復(fù)位
另外,除數(shù)據(jù)輪詢方式外,AT29C010A還提供另一種決定編程、擦除周期的方法。編程和擦除操作周期,連續(xù)的試圖從AT29C010A中讀數(shù)據(jù)的操作在I/O6上出現(xiàn)1和0,一旦編程周期結(jié)束,I/O6位將重復(fù)并且讀取有效數(shù)據(jù);檢測重復(fù)位可在編程周期任何時間進行。
圖4 硬件接口電路圖
圖5 數(shù)據(jù)寫入流程框圖
應(yīng)用實例
下面介紹用AT29C010A作為工業(yè)智能檢測儀器存儲器的一個實際應(yīng)用,主要用AT29C010A來存儲一級漢字庫漢字部分、單片機采集處理的數(shù)據(jù)和儀器設(shè)定的一些參數(shù)。該儀器采用AT89C52作為中央處理器,AT29C010A作為存儲器,74HC373作為地址鎖存器,點陣式LCD顯示器用作顯示圖形和字符,X1203作為實時時鐘;另外,還有上位機通信電路,繼電器報警電路,按鍵操作電路、指示燈電路及檢測電路等。圖3為工業(yè)智能檢測儀器框圖。
硬件接口電路
AT29C010A存儲器與單片機AT89C52的硬件接口電路圖如圖4所示。用AT89C52的P0口作為存儲器的數(shù)據(jù)輸入/輸出端,通過P0口經(jīng)74HC373輸出低8位地址,P2口和P3.0出端作為存儲器A8~A16地址,CE接ALE,WE接WR(P3.6),OE接RD(P3.7)。
軟件注意事項
讀取數(shù)據(jù)過程類似于普通E2PROM。但在寫入(編程)時,它和普通E2PROM不同,AT29C010A是采用按扇區(qū)編程,每個扇區(qū)大小為128個字節(jié)。由于每次寫入數(shù)據(jù)時,整個扇區(qū)數(shù)據(jù)都將重寫,因此必須采用數(shù)據(jù)緩沖區(qū)來存放要寫入的數(shù)據(jù)(包括該扇區(qū)內(nèi)已存在的數(shù)據(jù))。在此應(yīng)用實例中,采用AT89C52作中央處理器,它具有256字節(jié)內(nèi)部數(shù)據(jù)存儲器(RAM),用其中128字節(jié)(80H_FFH)RAM作為數(shù)據(jù)緩沖區(qū)存放要寫入的數(shù)據(jù)。圖5為數(shù)據(jù)寫入流程圖。
在存儲器進入軟件數(shù)據(jù)保護狀態(tài)、塊鎖定狀態(tài)或軟件產(chǎn)品標識狀態(tài)時,無法對存儲器進行寫入。此時,必須用軟件來退出軟件數(shù)據(jù)保護狀態(tài)、塊鎖定狀態(tài)或軟件產(chǎn)品標識狀態(tài)。
參考文獻
1 孫涵芳、徐愛卿.MCS—51/96系列單片機原理及應(yīng)用.北京航空航天大學(xué)出版社,1988
2 Atmel Corporation Nonvolatile Memory Data Book May 1996
評論