MCS-51單片機(jī)存儲(chǔ)器擴(kuò)展
掃描二維碼
隨時(shí)隨地手機(jī)看文章
主要內(nèi)容:
第八部分 MCS-51單片機(jī)存儲(chǔ)器擴(kuò)展(1)
1、 概述
2、 系統(tǒng)總線及總線構(gòu)造
3、 讀寫控制、地址空間分配和外部地址鎖存器
4、 程序存儲(chǔ)器EPROM的擴(kuò)展
重點(diǎn):系統(tǒng)總線及總線構(gòu)造
存儲(chǔ)器地址空間分配
外部地址鎖存器74LS373
典型的外擴(kuò)存儲(chǔ)器的接口電路
難點(diǎn):存儲(chǔ)器地址空間分配
第8部分 MCS-51單片機(jī)擴(kuò)展存儲(chǔ)器的設(shè)計(jì)
8.1 概述
片內(nèi)的資源如不滿足需要,需外擴(kuò)存儲(chǔ)器和I/O功能部件:系統(tǒng)擴(kuò)展問題,內(nèi)容主要有:
(1)外部存儲(chǔ)器的擴(kuò)展(外部存儲(chǔ)器又分為外部程序存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器)
(2) I/O接口部件的擴(kuò)展。
本章介紹MCS – 51單片機(jī)如何擴(kuò)展外部存儲(chǔ)器,I/O接口部件的擴(kuò)展下一章介紹。
MCS-51單片機(jī)外部存儲(chǔ)器結(jié)構(gòu):哈佛結(jié)構(gòu) 。
MCS-96單片機(jī)的存儲(chǔ)器結(jié)構(gòu):普林斯頓結(jié)構(gòu)。
MCS-51數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器的最大擴(kuò)展空間各為64KB。
系統(tǒng)擴(kuò)展首先要構(gòu)造系統(tǒng)總線。
8.2 系統(tǒng)總線及總線構(gòu)造
8.2.1 系統(tǒng)總線
按其功能通常把系統(tǒng)總線分為三組:
1.地址總線(Adress Bus,簡寫AB)
2.數(shù)據(jù)總線(Data Bus,簡寫DB)
3.控制總線(Control Bus,簡寫CB)
8.2.2 構(gòu)造系統(tǒng)總線
系統(tǒng)擴(kuò)展的首要問題:
構(gòu)造系統(tǒng)總線,然后再往系統(tǒng)總線上“掛”存儲(chǔ)器芯片或I/O接口芯片,“掛”存儲(chǔ)器芯片就是存儲(chǔ)器擴(kuò)展,“掛”I/O接口芯片就是I/O擴(kuò)展。MCS- 51由于受引腳數(shù)目的限制,數(shù)據(jù)線和低8位地址線復(fù)用。為了將它們分離出來,需要外加地址鎖存器,從而構(gòu)成與一般CPU相類似的片外三總線。地址鎖存器一 般采用74LS373,采用74LS373的地址總線的擴(kuò)展電路。
1.以P0口作為低8位地址/數(shù)據(jù)總線。
2.以P2口的口線作高位地址線。
3.控制信號線。
*使用ALE信號作為低8位地址的鎖存控制信號。
*以PSEN*信號作為擴(kuò)展程序存儲(chǔ)器的讀選通信號。
*以EA*信號作為內(nèi)外程序存儲(chǔ)器的選擇控制信號。
*由RD*和WR*信號作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器和I/O口的讀選通、寫選通信號。
盡管MCS-51有4個(gè)并行I/O口,共32條口線,但由于系統(tǒng)擴(kuò)展需要,真正作為數(shù)據(jù)I/O使用的,就剩下P1口和P3口的部分口線。
8.2.3 單片機(jī)系統(tǒng)的串行擴(kuò)展技術(shù)
優(yōu)點(diǎn):串行接口器件體積小,與單片機(jī)接口時(shí)需要的I/O口線很少(僅需3-4根),提高可靠性。
串行擴(kuò)展可以減少芯片的封裝引腳,降低成本,簡化了系統(tǒng)結(jié)構(gòu),增加了系統(tǒng)擴(kuò)展的靈活性。為實(shí)現(xiàn)串行擴(kuò)展,一些公司(例如PHILIPS和ATMEL公司 等)已經(jīng)推出了非總線型單片機(jī)芯片,并且具有SPI(Serial Periperal Interface)三線總線和I2C公用雙總線的兩種串行總線形式。與此相配套,也推出了相應(yīng)的串行外圍接口芯片。
缺點(diǎn):串行接口器件速度較慢在大多數(shù)應(yīng)用的場合,還是并行擴(kuò)展占主導(dǎo)地位。
8.3 讀寫控制、地址空間分配和外部地址鎖存器
8.3.1 存儲(chǔ)器擴(kuò)展的讀寫控制
RAM芯片:讀寫控制引腳,記為OE*和WE* ,與MCS-51的RD*和WR*相連。
EPROM芯片:只能讀出,故只有讀出引腳,記為OE* ,該引腳與MCS-51的PSEN*相連。
8.3.2 存儲(chǔ)器地址空間分配
MCS-51發(fā)出的地址是用來選擇某個(gè)存儲(chǔ)器單元進(jìn)行讀寫,要完成這種功能,必須進(jìn)行兩種選擇: “片選”和 “單元選擇”。存儲(chǔ)器空間分配除考慮地址線連接外,還討論各存儲(chǔ)器芯片在整個(gè)存儲(chǔ)空間中所占據(jù)的地址范圍,常用的存儲(chǔ)器地址分配的方法有兩種:線性選擇法 (簡稱線選法)和地址譯碼法(簡稱譯碼法)。
1. 線選法
直接利用系統(tǒng)的高位地址線作為存儲(chǔ)器芯片(或I/O接口芯片)的片選信號。
優(yōu)點(diǎn):電路簡單,不需要地址譯碼器硬件,體積小,成本低。
缺點(diǎn):可尋址的器件數(shù)目受到限制,地址空間不連續(xù),地址不唯一。
例 某一系統(tǒng),需要外擴(kuò)8KB的EPROM(2片2732),4KB的RAM(2片6116),這些芯片與MCS-51單片機(jī)地址分配有關(guān)的地址線連線。
2732:4KB程序存儲(chǔ)器,有12根地址線A0~A11,分別與單片機(jī)的P0口及P2.0~P2.3口相連。2732(1)的片選端接 A15(P2.7),2732(2)的片選端接A14(P2.6)。當(dāng)要選中某個(gè)芯片時(shí),單片機(jī)P2口對應(yīng)的片選信號引腳應(yīng)為低電平,其它引腳一定要為高 電平。
6116:2KB數(shù)據(jù)存儲(chǔ)器,需要11根地址線作為單元的選擇,而剩下的P2口線(P2.4~P2.7)作為片選線。
兩片程序存儲(chǔ)器的地址范圍:
2732(1)的地址范圍:7000H~7FFFH;
2732(2)的地址范圍: B000H~BFFFH;
6116(1)的地址范圍:E800H~EFFFH;
6116(2)的地址范圍:D800H~DFFFH。
線選法特點(diǎn):簡單明了,不需另外增加硬件電路。只適于外擴(kuò)芯片不多,規(guī)模不大的單片機(jī)系統(tǒng)。
2. 譯碼法
最常用的譯碼器芯片:74LS138(3-8譯碼器)74LS139(雙2-4譯碼器)74LS154(4-16譯碼器)??筛鶕?jù)設(shè)計(jì)任務(wù)的要求,產(chǎn)生片選信號。全譯碼:全部高位地址線都參加譯碼;部分譯碼:僅部分高位地址線參加譯碼。
(1)74LS138(3~8譯碼器)
引腳如圖8-5,譯碼功能如表8-1(P167)所示。當(dāng)譯碼器的輸入為某一個(gè)固定編碼時(shí),其輸出只有某一個(gè)固定的引腳輸出為低電平,其余的為高電平。
下面以74LS138為例, 介紹如何進(jìn)行地址分配。
例 要擴(kuò)8片8KB的RAM 6264,如何通過74LS138把64KB空間分配給各個(gè)芯片?
采用的是全地址譯碼方式,單片機(jī)發(fā)地址碼時(shí),每次只能選中一個(gè)存儲(chǔ)單元。同類存儲(chǔ)器間不會(huì)產(chǎn)生地址重疊的問題。如果用74LS138把64K空間全部劃分為每塊4KB,如何劃分呢?
8.3.3 外部地址鎖存器
常用的地址鎖存器芯片有: 74LS373、8282、74LS573等。
1. 鎖存器74LS373
帶有三態(tài)門的8D鎖存器,其引腳其內(nèi)部結(jié)構(gòu)如下圖。
引腳說明如下:
D7~D0: 8位數(shù)據(jù)輸入線。
Q7~Q0: 8位數(shù)據(jù)輸出線。
G:數(shù)據(jù)輸入鎖存選通信號,
OE*: 數(shù)據(jù)輸出允許信號
2. 鎖存器8282
功能及內(nèi)部結(jié)構(gòu)與74LS373完全一樣,只是其引腳的排列與74LS373不同 ,8282的引腳如下圖。
引腳的排列為繪制印刷電路板時(shí)的布線提供了方便。
3.鎖存器74LS573
輸入的D端和輸出的Q端也是依次排在芯片的兩側(cè),與鎖存器8282一樣,為繪制印刷電路板時(shí)的布線提供了方便。
8.4 程序存儲(chǔ)器EPROM的擴(kuò)展
采用只讀存儲(chǔ)器,非易失性。
(1)掩膜ROM
在制造過程中編程。成本較高,因此只適合于大批量生產(chǎn)。
(2)可編程ROM(PROM)
用獨(dú)立的編程器寫入。但PROM只能寫入一次,且不能再修改。
(3)EPROM
電信號編程,紫外線擦除的只讀存儲(chǔ)器芯片。
(4)E2PROM( EEPROM)
電信號編程,電信號擦除的ROM芯片。讀寫操作與RAM幾乎沒有什么差別,只是寫入的速度慢一些。但斷電后能夠保存信息。
(5)Flash ROM
又稱閃爍存儲(chǔ)器,簡稱閃存。大有取代E2PROM的趨勢。
8.4.1 常用EPROM芯片介紹
典型芯片是27系列產(chǎn)品,例如, 2764(8KB×8)、27128(16KB×8)、27256(32KB×8)、27512(64KB×8)。 “27”后面的數(shù)字表示其位存儲(chǔ)容量。擴(kuò)展程序存儲(chǔ)器時(shí),應(yīng)盡量用大容量的芯片。
1.常用的EPROM芯片
引腳功能如下:
A0~A15:地址線引腳。數(shù)目決定存儲(chǔ)容量來定,用
來進(jìn)行單元選擇。
D7~D0:數(shù)據(jù)線引腳
CE*:片選輸入端
OE* :輸出允許控制端
PGM*:編程時(shí),加編程脈沖的輸入端
Vpp:編程時(shí),編程電壓(+12V或+25V)輸入端
Vcc:+5V,芯片的工作電壓。
GND:數(shù)字地。
NC:無用端
2. EPROM芯片的工作方式
(1)讀出方式
片選控制線為低,同時(shí)輸出允許控制線為低,Vpp為+5V,指定地址單元的內(nèi)容從D7~D0上讀出。
(2)未選中方式 片選控制線為高電平。
(3)編程方式
Vpp端加上規(guī)定高壓, CE*和OE*端加合適電平(不同的芯片要求不同),就能將數(shù)據(jù)線上的數(shù)據(jù)寫入到指定的地址單元。
(4)編程校驗(yàn)方式
(5)編程禁止方式
輸出呈高阻狀態(tài),不寫入程序。
8.4.2 程序存儲(chǔ)器的操作時(shí)序
1. 訪問程序存儲(chǔ)器的控制信號
(1)ALE
(2)PSEN*
(3)EA*
如果指令是從片外EPROM中讀取,ALE用于低8位地址鎖存,PSEN*接外擴(kuò)EPROM的OE*腳。
P0口:分時(shí)低8位地址總線和數(shù)據(jù)總線,P2口:高8位地址線。
2. 操作時(shí)序
(1) 應(yīng)用系統(tǒng)中無片外RAM
(2) 應(yīng)用系統(tǒng)中接有片外RAM
由圖(b)可看出:
(1)將ALE用作定時(shí)脈沖輸出時(shí),執(zhí)行一次MOVX指令就會(huì)丟失一個(gè)脈沖。
(2)只有在執(zhí)行MOVX指令時(shí)的第二個(gè)機(jī)器周期期間,地址總線才由數(shù)據(jù)存儲(chǔ)器使用。
8.4.3 典型的EPROM接口電路
1.使用單片EPROM的擴(kuò)展電路
2716、2732 EPROM價(jià)格貴,容量小,且難以買到。
僅介紹2764、27128、27256、27512芯片的接口電路。
下圖為外擴(kuò)16K字節(jié)的EPROM 27128的接口電路圖 。
MCS-51外擴(kuò)單片32K字節(jié)的EPROM 27256的接口。
2程序存儲(chǔ)器所占的地址空間,自己分析。
3. 使用多片EPROM的擴(kuò)展電路
MCS-51擴(kuò)展4片27128。