SST39SF040與MCS-51的接口設計
硬件設計就是搭建合適的接口電路,將SST39SF040連接到MCS-51的系統總線(xiàn)上。根據SST39SF040和MCS-51系列單片機的結構特性,我們發(fā)現SST39SF040的數據線(xiàn)和讀、寫(xiě)信號線(xiàn)可以很容易地連接到MCS-51的系統總線(xiàn)上,所以要考慮的主要問(wèn)題是SST39SF040地址線(xiàn)的連接。由于其容量已經(jīng)超出了MCS-51的尋址范圍,19根地址線(xiàn)無(wú)法全部連接到MCS-51的地址總線(xiàn)上,因此必須在該系統中進(jìn)行進(jìn)一步的存儲器擴展。存儲器擴展通??衫脝纹瑱C空閑的I/O口線(xiàn)作為頁(yè)面地址輸出引腳來(lái)實(shí)現。但是許多應用系統當中,單片機的I/O口線(xiàn)都是非常緊張的,在沒(méi)有多余的I/O口線(xiàn)時(shí),頁(yè)面地址就必須提前從數據總線(xiàn)輸出并存放在鎖存器中備用。具體做法是:將鎖存器直接掛在數據總線(xiàn)上,為其安排一個(gè)I/O地址,從而構成頁(yè)面寄存器,在訪(fǎng)問(wèn)存儲器時(shí),提前將頁(yè)面地址作為數據寫(xiě)入頁(yè)面寄存器即可。
本文引用地址:http://dyxdggzs.com/article/201611/316200.htm根據以上分析可設計出SST39SF040與MCS-51之間的接口電路,如圖4所示。本系統中,將512 KB的存儲器分為32頁(yè)面,每頁(yè)大小為16 KB。由此可得,頁(yè)面地址需要5位,頁(yè)內偏移量需要14位。頁(yè)面地址的給出是在進(jìn)行存儲器訪(fǎng)問(wèn)之前完成的,具體的方法是:用一條“MOVX"’命令將頁(yè)面地址輸出到鎖存器74LS374中,再由74LS374將頁(yè)面地址保持在存儲器的地址引腳A14~A18上。頁(yè)內偏移量則直接在存儲器的讀寫(xiě)命令中給出,執行命令時(shí),低8位地址A0~A7從P0口輸出到74LS373中保持;地址A8~A13則由單片機的P2.0~P2.5直接提供。以上分時(shí)輸出的地址信號A0~A18將在讀/寫(xiě)控制信號開(kāi)始作用后,同時(shí)有效,以實(shí)現對SST39SF040的512KB全地址空間的訪(fǎng)問(wèn)。P2.6和P2.7分別用作SKT39SF040和鎖存器74LS374的片選信號,SST39SF040的片選信號地址范圍是8000H~BFFFH,74LS374的片選信號地址范圍是4000H~7FFFH。
2.2 軟件設計
軟件設計就是編寫(xiě)對SST39SF040的操作程序,包括字節讀出、扇區或整片擦除以及字節編程等。下面給出第1個(gè)扇區的擦除程序,其中DELAY25為25 ms延時(shí)子程序,其他操作程序可參照編寫(xiě)。
程序編寫(xiě)過(guò)程中的難點(diǎn)是,如何將SST39SF040中待訪(fǎng)問(wèn)的單元地址進(jìn)行分解并對應到讀寫(xiě)命令中去。以扇區擦除操作的第1個(gè)命令為例,該命令的功能是將數據AAH寫(xiě)入地址5555H中。對于地址5555H,其最高5位A18~A14是01H,低14位A13~A0為1555H。最高5位地址決定的頁(yè)面號必須先作為數據寫(xiě)入鎖存器74LS374中,再將數據AAH寫(xiě)入該頁(yè)中由低14位地址決定的單元。寫(xiě)入頁(yè)面號時(shí),指令中的地址可在4000H~7FFFH范圍內任選一個(gè),即選中鎖存器74LS374;寫(xiě)人數據AAH時(shí),指令中的地址可由低14位地址1555H加上8000H得到,其值為9555H。
第1扇區擦除程序代碼如下:
結 語(yǔ)
本文從硬件和軟件兩個(gè)方面對大容量NOR Flash存儲器與8位單片機的接口技術(shù)進(jìn)行了分析、探討,給出了具體的設計方案。其思想和方法對嵌入式系統的應用設計具有較高的參考價(jià)值,筆者已將它應用到一款考勤機產(chǎn)品的設計開(kāi)發(fā)當中
評論