閃速存儲器硬件接口和程序設計中的關(guān)鍵技術(shù)

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