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