單片機(jī)大容量FLASHRAM的擴(kuò)展
微機(jī)監(jiān)控設(shè)備常常需要對監(jiān)控的數(shù)據(jù)進(jìn)行實(shí)時記錄,以便于事后分析處理,為事故分析、設(shè)備故障診斷和維修提供準(zhǔn)確可靠的信息,如飛機(jī)“黑匣子”、列車“運(yùn)行記錄器”等。數(shù)據(jù)信息的記錄需要大數(shù)據(jù)容量和實(shí)時快速的讀寫速度,以及在掉電和復(fù)位等干擾下的可靠的數(shù)據(jù)保護(hù)?,F(xiàn)在一般采用非易失性RAM(NVRAM)為存儲介質(zhì),其缺點(diǎn)是沒有硬件和軟件寫保護(hù),在強(qiáng)干擾下,程序誤寫的概率大。
本文引用地址:http://butianyuan.cn/article/2875.htm新型閃速存儲器(FLASHRAM)由于同時具有EPROM的可編程能力和EEPROM的電可擦寫功能,又能像SRAM一樣進(jìn)行隨機(jī)快速訪問,因而越來越多的受到國內(nèi)外的廣泛關(guān)注和應(yīng)用。28SF040是一個容量為512K×8Bit可塊擦除、字節(jié)編程的EEPROM,其擦除、編程電壓均為5V。
(1)單電源5V供電
(2)容量512K×8Bit
(3)數(shù)據(jù)保存時間大于10年
(4)重復(fù)擦寫次數(shù)典型值100,000次
(5)可分塊擦除每塊256字節(jié)
(6)可進(jìn)行硬件及軟件寫保護(hù)
(7)快速讀取時間(150~200)ns
其引腳功能如下:A0~A18為地址線,A0~A7選擇一塊數(shù)據(jù)中的某個字節(jié),A8~A18是塊地址。DQ7~DQ0為數(shù)據(jù)I/O總線,讀周期輸出數(shù)據(jù),在寫周期接收數(shù)據(jù)。CE為片選線,低電平時芯片被選中。OE為輸出使能端。WE為寫信號使能端。VCC為電源,接+5V;VSS接地。
28SF040是一個容量為512KByte的CMOS快速閃存,可塊擦除、字節(jié)編程的EEPROM,與現(xiàn)存的EPROM、EEPROM兼容。它非常適合用在程序和數(shù)據(jù)重復(fù)寫入的場合。對這種系統(tǒng)的應(yīng)用來說,28SF040可提高性能和穩(wěn)定性。
28SF040是大容量并行存儲器共計512KByte,而80C196全部尋址空間僅為64KByte,因此直接尋址大于64KByte的存儲器是不行的,需要采用分頁擴(kuò)展技術(shù),即CPU只提供大容量存儲器的低位地址線,如A0~A12,而高位地址線A13~A18則通過擴(kuò)展的CPU的I/O口來分頁尋址。
圖1中單片機(jī)采用Intel的80C196,其P1口的P1.0~P1.5來控制分頁碼(0~63)。74HC138譯碼給28SF040的片選,其地址空間為8000H~9FFFH(也可以是4000~5FFFH等其他CPU 8K的地址空間),圖中74HC373為地址鎖存器。
有關(guān)地址描述如下:
[A15,A14,A13]通過138譯碼后形成8KByte空間的譯碼線對28SF040進(jìn)行片選。
28SF040 共有512KByte的空間,可分為64個8KByte,即64頁,每頁8KByte的空間。其中,28SF040的[A12,A11,…,A0]地址線直接與CPU的[A12,A11,…,A0]相接,高位地址線[A18,A17,A16,A15,A14,A13]通過CPU P1口的[P1.5, P1.4, P1.3, P1.2, P1.1, P1.0]進(jìn)行頁選。
在數(shù)據(jù)記錄和轉(zhuǎn)儲過程中,有時需要對FLASHRAM特定的地址單元進(jìn)行讀寫操作,如FLASHRAM的軟件寫保護(hù)等。下面以對FLASHRAM的絕對地址15555H單元尋址為例,介紹對特定地址尋址。
15555H是FLASHRAM28SF040的絕對地址,對于CPU來說,其尋址包括兩部分,一是CPU的直接尋址區(qū),即地址線A0~A12,直接和FLASHRAM的地址線A0~A12相接,其值為[1010101010101],另一部分是CPU的譯碼地址,即地址線A13'~A15',沒有和FLASHRAM相接,用于系統(tǒng)譯碼片選FLASHRAM,其值為[100],因此CPU的地址為[1001010101010101]=9555H。
P1口直接和FLASHRAM的A13~A18相接,等于[001010]=0AH。
FLASHRAM的讀寫包括塊擦除(Sector_Erase)、芯片擦除(Chip_Erase)、字節(jié)編程、復(fù)位、讀ID號、軟件數(shù)據(jù)寫保護(hù)、軟件數(shù)據(jù)寫保護(hù)打開。其命令字如下表:
(1)進(jìn)行塊擦除操作首先要寫一個特征字,然后再發(fā)送塊擦除命令。特征字為20H,表明以下將擦除一塊數(shù)據(jù)區(qū)中256個字節(jié)的內(nèi)容。塊擦除命令為20H,其操作在寫信號的上升沿開始。
(2)芯片擦除操作的特征字和命令字均為30H,其操作將擦除28SF040全部內(nèi)容。
(3)字節(jié)編程操作的特征字為10H。
例如,對某一字節(jié)的寫入,應(yīng)首先判斷芯片是否處于寫保護(hù)打開狀態(tài)(Unprotected),然后判斷是否到了新的一頁即下一頁,如果是,先把此頁全部內(nèi)容擦除。然后寫特征字10H,寫數(shù)據(jù)DATA,之后進(jìn)行兩次讀操作,若讀出內(nèi)容相同,則認(rèn)為該字節(jié)已寫入數(shù)據(jù)完成;若D7狀態(tài)跳變,則說明寫過程還未完成。
(4)復(fù)位命令能夠安全地終止擦除或編程命令。在擦除或編程命令后執(zhí)行復(fù)位命令字FFH即能安全終止擦除或編程操作,存儲器的內(nèi)容不會被改變。執(zhí)行復(fù)位命令后,芯片返回讀狀態(tài)。
(5)讀ID號操作的特征字為90H。地址0000H的輸出廠商代碼BFH,地址0001H輸出芯片代碼04H,任何其它有效的命令均會終止這一操作。
(6)軟件數(shù)據(jù)保護(hù)是為了防止對存儲器意外的寫入數(shù)據(jù)或擦除數(shù)據(jù),每一操作都包含兩個命令字,一個為特征字,跟隨一個執(zhí)行命令字。軟件數(shù)據(jù)寫保護(hù)是一個整體的命令字,對芯片的整個存儲陣列有效。
由于FLASHRAM 28SF040具有與單片機(jī)接口簡單、容量大以及非易失的特點(diǎn),所以非常適合于作為便攜式數(shù)據(jù)記錄產(chǎn)品。本文介紹的技術(shù)已經(jīng)成功地用于機(jī)車隨車質(zhì)量狀態(tài)診斷記錄儀,其中擴(kuò)展了兩片28SF040的FLASHRAM,共計8Mbit,對32路機(jī)車運(yùn)行質(zhì)量狀態(tài)參數(shù)每隔5S記錄一次,記錄時間長達(dá)5~6天,在一年半的實(shí)際運(yùn)行中狀態(tài)穩(wěn)定,具有體積小,性能價格比高的特點(diǎn)?!?/font>
存儲器相關(guān)文章:存儲器原理
汽車防盜機(jī)相關(guān)文章:汽車防盜機(jī)原理 頻譜分析儀相關(guān)文章:頻譜分析儀原理
評論