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