摘 要:地址這個概念在不少沒有經(jīng)過實踐的人員頭腦中并不是很明朗,一般的MCU叢書在這方面也都是一筆帶過,并未對其進行詳細的解釋。本文主要以51系列MCU的外部程序與數(shù)據(jù)存儲器的擴展為例,針對MCU的外部地址編碼的原理及方法技巧做了一番簡單的闡述,希望能理解地址有所幫助。
關鍵詞:MCU(單片微型計算機);地址線;數(shù)據(jù)線;控制線;編碼;譯碼
中圖分類號:TN762
在如今日益復雜的實際控制應用中,MCU的單片工作模式已經(jīng)越來越少,雖然如今MCU的功能已經(jīng)變得強大,但由于I/O腳數(shù)量、內(nèi)部數(shù)據(jù)程序存儲器等限制,MCU總需要一些外圍器件:ROM、RAM、D/A、A/D、CPLD/FPGA等。連接在MCU上的任何I/O口都具有地址,相對于內(nèi)部端口的固定地址,外部器件在系統(tǒng)所占據(jù)的地址空間除了與本身的容量參數(shù)有關,還與MCU地址線的連接方式有關,所以要想用好MCU的外圍器件,掌握MCU的外部地址編碼的原理與方法是必要的。
1 單片機擴展外部存儲空間的方法
MCU訪問外部存儲器件時,必須同時選中芯片與存儲單元,才能進行讀寫操作,通常可以通過兩種方法取得外部存儲器的片選信號:線選法和譯碼器法。
1.1 線選法
線選法就是把8051的地址線直接或通過反相后直接接到存儲芯片的片選端,以8051送出的地址信號選中芯片,采用線選法要注意采用不同MCU片選腳引起的地址浮動。片選屬于一線兩用,使用一根地址線分時選擇兩塊芯片,適用于只有兩塊存儲器的場合,如果有第三塊的話,由于一個片選端口只有兩種狀態(tài),使用這種方法容易產(chǎn)生地址重疊。在滿足芯片地址引腳連線的前提下,應利用余下的地址線,盡可能多地選擇存儲器及其它I/O器件,提高MCU的地址線使用效率:
如上圖所示,該電路用三根地址線(P2.5,P2.6,P2.7)選擇了兩片6264SRAM與一片2764EPROM。由于三塊存儲芯片的容量一樣,都為13根地址線,所以地址總線的連接也是一樣的,其具體地址如表1所示:
線選法構成的存儲單元地址不連續(xù),會造成存儲器的部分空間浪費,適合對地址空間要求不大的MCU系統(tǒng)。
1.2 譯碼器擴展法
采用譯碼器法,仍由低位地址線進行片內(nèi)尋址,高位地址線經(jīng)過譯碼器產(chǎn)生各個片選信號,從而實現(xiàn)對多塊存儲器芯片及I/O器件的選擇,使用這種連接方法,存儲器的CE(——)端的選擇信號不是直接來自MCU的地址信號,而是由譯碼器的輸出端決定。
我們在圖2的基礎上稍加改進,去掉非門,在P2.7與P2.6端加上74LS139