閃速存儲器硬件接口和程序設(shè)計中的關(guān)鍵技術(shù)
本文引用地址:http://2s4d.com/article/173786.htm
由于AT89C52是8位單片機(jī),而TE28F160B3是16位數(shù)據(jù)總線,我們使用了兩片74HC244和兩片74HC373來完成8位和16位的數(shù)據(jù)轉(zhuǎn)換。當(dāng)AT89C52往TE28F160B3寫數(shù)據(jù)時,首先單片機(jī)將高8位數(shù)據(jù)寫入到鎖存器74HC373-1中。其中74HC373-1鎖存信號W373由譯碼器GAL16V8輸出,然后單片機(jī)開始執(zhí)行對TE28F160B3寫數(shù)據(jù)操作,低8位數(shù)據(jù)由AT89C52的P0口直接寫入TE28F160B3,而鎖存在74HC373-1中的高8位數(shù)據(jù)通過緩沖器74HC244-1寫入到TE28F160B3的DQ8~DQ15總線上。當(dāng)AT89C52從TE28F160B3讀數(shù)據(jù)時,讀出的高8位數(shù)據(jù)先鎖存到74HC373-2上,然后通過緩沖器74HC244-2讀入到AT89C52中。TE28F160B3的存儲容量為16M位,有20根地址線A0~A19,而AT89C52一共才有16根地址線。因此利用AT89C52的地址線A15、A14和A13經(jīng)譯碼作為兩片74HC244、兩片74HC373和TE28F160B3的鎖存信號和片選信號。這樣地址線只剩下A0~A12,為此利用一片計數(shù)器74HC4040作為地址線A13~A19,從而就解決了AT89C52的尋址問題。
TE28F160B3的供電電源Vcc與AT89C52一樣,均接+5V直流電源。但是TE28F160B3的編程電壓和擦除電壓Vpp必須接+12V。
圖1的單片機(jī)使用了市場上常見的AT89C52,但在設(shè)計中我們推薦使用寬電壓范圍工作的單片機(jī)AT89LV52和地址譯碼器ATF16LV8,這樣就可以使用+3V左右的供電電源。
在生產(chǎn)閃速存儲器的半導(dǎo)體公司Intel、AMD、Sharp和Fujitsu中,Intel和Sharp公司的閃速存儲器的引腳是一樣的,AMD和Fujitsu公司的閃存存儲器的引腳是一樣的。所以Intel和AMD公司的閃速存儲器是不能互換的,如果要互換必須經(jīng)過一個接口板進(jìn)行轉(zhuǎn)接。
2 單片機(jī)與閃速存儲器程序設(shè)計的關(guān)鍵技術(shù)
由于生產(chǎn)閃速存儲器的半導(dǎo)體公司眾多,即使是同一公司的閃速存儲器也是型號眾多、千差萬別。為使程序設(shè)計盡可能地適用于大多數(shù)的閃速存儲器,需注意以下幾個關(guān)鍵技術(shù)。
2.1 器件自動識別
器件自動識別要識別出器件使用的命令集、內(nèi)部陣列結(jié)構(gòu)參數(shù)、電氣和時間參數(shù)及器件所支持的功能。器件自動識別的方法有兩種:如果閃速存儲器支持CFI功能,可以直接通過CFI獲得器件的各種參數(shù);如果閃速存儲器不支持CFI功能,可以寫器件識別命令,然后從器件中讀取產(chǎn)品的生產(chǎn)廠家和器件代碼,根據(jù)生產(chǎn)廠家和器件代碼從程序中建立的器件參數(shù)表中讀取器件的各種參數(shù)。器件自動識別的流程圖如圖2所示。
評論