模块八 单片机的系统扩展技术.docx
- 文档编号:17386944
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:34
- 大小:321.76KB
模块八 单片机的系统扩展技术.docx
《模块八 单片机的系统扩展技术.docx》由会员分享,可在线阅读,更多相关《模块八 单片机的系统扩展技术.docx(34页珍藏版)》请在冰点文库上搜索。
模块八单片机的系统扩展技术
模块八单片机的系统扩展技术
【教学聚焦】
知识目标:
1、掌握程序存储器的扩展方法
2、掌握数据存储器的扩展方法
3、掌握串行EEPROM的扩展方法
技能目标:
1能够进行程序存储器的扩展
2、能够进行数据存储器的扩展
3、能够进行串行EEPROM的扩展
【课时建议】10课时
教学重点:
程序和数据存储器以及串行EEPROM的扩展
教学难点:
串行接口器件的时序分析与软件编程
项目8.1程序存储器的扩展
单片机应用系统由硬件和软件组成,软件的载体就是硬件中的程序存储器。
对于MCS-51系列8位单片机,片内程序存储器的类型及容量如表所示。
MCS-51系列单片机片内程序存储器一览表
表8.1单片机片内程序存储器一览表
对于没有内部ROM的单片机或者当程序较长、片内ROM容量不够时,用户必须在单片机外部扩展程序存储器。
MCS-51单片机片外有16条地址线,即P0口和P2口,因此最大寻址范围为64KB(0000H~FFFFH)。
这里要注意的是,MCS-51单片机有一个管脚——EA跟程序存储器的扩展有关。
如果EA接高电平,那么片内存储器地址范围是0000H~0FFFH(4KB),片外程序存储器地址范围是1000H~FFFFH(60KB)。
如果EA接低电平,不使用片内程序存储器,片外程序存储器地址范围为0000H~FFFFH(64KB)。
8031单片机没有片内程序存储器,因此EA管脚总是接低电平。
扩展程序存储器常用的芯片是EPROM(ErasableProgrammableReadOnlyMemory)型(紫外线可擦除型),如2716(2K×8)、2732(4K×8)、2764(8K×8)、27128(16K×8)、27256(32K×8)、27512(64K×8)等。
另外,还有+5V电可擦除EEPROM,如2816(2K×8)、2864(8K×8)等等。
如果程序总量不超过4KB,一般选用具有内部ROM的单片机。
8051内部ROM只能由厂家将程序一次性固化,不适合小批量用户和程序调试时使用,因此选用8751、8951的用户较多。
如果程序超过4KB,用户一般不会选用8751、8951,而是直接选用8031,利用外部扩展存储器来存放程序。
8.1.1存储器芯片的选择方法
1.线选法
所谓线选法,就是直接以系统的地址线作为存储器芯片的片选信号,为此只需把用到的地址线与存储器芯片的片选端直接相连即可。
2.译码法
所谓译码法就是使用地址译码器对系统的片外地址进行译码,以其译码输出作为存储器芯片的片选信号。
译码法又分为完全译码和部分译码两种。
(1)完全译码。
地址译码器使用了全部地址线,地址与存储单元一一对应,也就是1个存储单元只占用1个唯一的地址。
(2)部分译码。
地址译码器仅使用了部分地址线,地址与存储单元不是一一对应,而是1个存储单元占用了几个地址。
1根地址线不接,一个单元占用2(21)个地址;2根地址线不接,一个单元占用4(22)个地址;3根地址线不接,则占用8(23)个地址,依此类推。
在设计地址译码器电路时,采用地址译码关系图,将会带来很大的方便。
所谓地址译码关系图,就是一种用简单的符号来表示全部地址译码关系的示意图。
例如:
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
.
0
1
0
0
X
X
X
X
X
X
X
X
X
X
X
从地址译码关系图上可以看出以下几点:
①属完全译码还是部分译码;
②片内译码线和片外译码线各有多少根;
③所占用的全部地址范围为多少。
例如在上面的关系图中,有1个“·”(A15不接),表示为部分译码,每个单元占用2个地址。
片内译码线有11根(A10~A0),片外译码线有4根。
其所占用的地址范围如下:
当A15为0时,所占用地址为0010000000000000~0010011111111111,即2000H~27FFH。
当A15为1时,所占用地址为1010000000000000~1010011111111111,即A000H~A7FFH。
共占用了两组地址,这两组地址在使用中同样有效。
应该指出的是,随着半导体存储器的不断发展,大容量、高性能、低价格的存储器不断推出,这就使得存储器的扩展变得更加方便,译码电路也越来越简单了。
紫外线擦除电可编程只读存储器EPROM是国内用得较多的程序存储器。
EPROM芯片上有一个玻璃窗口,在紫外线照射下,存储器中的各位信息均变1,即处于擦除状态。
擦除干净的EPROM可以通过编程器将应用程序固化到芯片中。
8.1.2在8031单片机上扩展4KBEPROM程序存储器
(1)选择芯片。
本例要求选用8031单片机,内部无ROM区,无论程序长短都必须扩展程序存储器(目前较少这样使用,但扩展方法比较典型、实用)。
在选择程序存储器芯片时,首先必须满足程序容量,其次在价格合理情况下尽量选用容量大的芯片。
这样做的话,使用的芯片少,从而接线简单,芯片存储容量大,程序调整余量也大。
如估计程序总长3KB左右,最好是扩展一片4KB的EPROM2732,而不是选用2片2716(2KB)。
在单片机应用系统硬件设计中应注意,尽量减少芯片使用个数,使得电路结构简单,提高可靠性,这也是8951比8031使用更加广泛的原因之一。
(2)硬件电路图。
图8.18031单片机扩展一片2732程序存储器电路
(3)芯片说明。
①74LS373。
74LS373是带三态缓冲输出的8D锁存器,由于片机的三总线结构中,数据线与地址线的低8位共用P0口,因此必须用地址锁存器将地址信号和数据信号区分开。
74LS373的锁存控制端G直接与单片机的锁存控制信号ALE相连,在ALE的下降沿锁存低8位地址。
②EPROM2732。
EPROM2732的容量为4K×8位。
4K表示有4×1024(22×210=212)个存储单元,8位表示每个单元存储数据的宽度是8位。
前者确定了地址线的位数是12位(A0~A11),后者确定了数据线的位数是8位(O0~O7)。
目前,除了串行存储器之外,一般情况下,我们使用的都是8位数据存储器。
2732采用单一+5V供电,最大静态工作电流为100mA,维持电流为35mA,读出时间最大为250ns。
2732的封装形式为DIP24,管脚如图所示。
其中,A0~A11为地址线;O0~O7为数据线;CE为片选线;OE/VPP为输出允许/编程高压。
除了12条地址线和8条数据线之外,CE为片选线,低电平有效。
也就是说,只有当CE为低电平时,2732才被选中,否则,2732不工作。
OE/VPP为双功能管脚,当2732用作程序存储器时,其功能是允许读数据出来;当对EPROM编程(也称为固化程序)时,该管脚用于高电压输入,不同生产厂家的芯片编程电压也有所不同。
当我们把它作为程序存储器使用时,不必关心其编程电压。
图8.2EPROM2732分布
(4)扩展总线的产生。
一般的CPU,像INTEL8086/8088、Z80等,都有单独的地址总线、数据总线和控制总线,而MCS-51系列单片机由于受管脚的限制,数据线与地址线是复用的,为了将它们分离开来,必须在单片机外部增加地址锁存器,构成与一般CPU相类似的三总线结构。
(5)连线说明:
①地址线。
单片机扩展片外存储器时,地址是由P0和P2口提供的。
图中,2732的12条地址线(A0~A11)中,低8位A0~A7通过锁存器74LS373与P0口连接,高4位A8~A11直接与P2口的P2.0~P2.3连接,P2口本身有锁存功能。
注意,锁存器的锁存使能端G必须和单片机的ALE管脚相连。
②数据线。
2732的8位数据线直接与单片机的P0口相连。
因此,P0口是一个分时复用的地址/数据线。
③控制线。
CPU执行2732中存放的程序指令时,取指阶段就是对2732进行读操作。
注意,CPU对EPROM只能进行读操作,不能进行写操作。
CPU对2732的读操作控制都是通过控制线实现的。
2732控制线的连接有以下几条:
CE:
直接接地。
由于系统中只扩展了一个程序存储器芯片,因此,2732的片选端直接接地,表示2732一直被选中。
若同时扩展多片,需通过译码器来完成片选工作。
OE:
接8031的读选通信号端。
在访问片外程序存储器时,只要端出现负脉冲,即可从2732中读出程序。
(6)扩展程序存储器地址范围的确定。
单片机扩展存储器的关键是搞清楚扩展芯片的地址范围,8031最大可以扩展64KB(0000H~FFFFH)。
决定存储器芯片地址范围的因素有两个:
一个是片选端的连接方法,一个是存储器芯片的地址线与单片机地址线的连接。
在确定地址范围时,必须保证片选端为低电平。
本例中,2732的片选端总是接地,因此第一个条件总是满足的,另外,2732有12条地址线,与8031的低12位地址相连,编码结果如下:
0000H~0FFFH
8031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
2732A11A10A9A8A7A6A5A4A3A2A1A0
××××000000000000
××××000000000001
××××000000000010
××××000000000011
……
××××111111111111
(7)EPROM的使用。
存储器扩展电路是单片机应用系统的功能扩展部分,只有当应用系统的软件设计完成了,才能把程序通过特定的编程工具(一般称为编程器或EPROM固化器)固化到2732中,然后再将2732插到用户板的插座上(扩展程序存储器一定要焊插座)。
当上电复位时,PC=0000H,自动从2732的0000H单元取指令,然后开始执行指令。
如果程序需要反复调试,可以用紫外线擦除器先将2732中的内容擦除,然后再固化修改后的程序,进行调试。
如果要从EPROM中读出程序中定义的表格,需使用查表指令:
MOVCA,@A+DPTR
MOVCA,@A+PC
项目8.2数据存储器的扩展
8.2.1单片机RAM概述
RAM是用来存放各种数据的,MCS-51系列8位单片机内部有128BRAM存储器,CPU对内部RAM具有丰富的操作指令。
但是,当单片机用于实时数据采集或处理大批量数据时,仅靠片内提供的RAM是远远不够的。
此时,我们可以利用单片机的扩展功能,扩展外部数据存储器。
常用的外部数据存储器有静态RAM(StaticRandomAccessMemory—SRAM)和动态RAM(DynamicRandomAccessMemory—DRAM)两种。
前者读/写速度高,一般都是8位宽度,易于扩展,且大多数与相同容量的EPROM引脚兼容,有利于印刷板电路设计,使用方便;缺点是集成度低,成本高,功耗大。
后者集成度高,成本低,功耗相对较低;缺点是需要增加一个刷新电路,附加另外的成本。
MCS-51单片机扩展片外数据存储器的地址线也是由P0口和P2口提供的,因此最大寻址范围为64KB(0000H~FFFFH)。
一般情况下,SRAM用于仅需要小于64KB数据存储器的小系统,DRAM经常用于需要大于64KB的大系统。
8.2.2实例分析
1.应用系统中只扩展一片RAM
例在一单片机应用系统中扩展2KB静态RAM。
(1)芯片选择。
单片机扩展数据存储器常用的静态RAM芯片有6116(2K×8位)、6264(8K×8位)、62256(32K×8位)等。
根据题目容量的要求,我们选用SRAM6116。
它是一种采用CMOS工艺制成的SRAM,采用单一+5V供电,输入/输出电平均与TTL兼容,具有低功耗操作方式。
当CPU没有选中该芯片时(CE=1),芯片处于低功耗状态,可以减少80%以上的功耗。
图8.3静态RAM芯片6116引脚分布
6116有11条(A0~A10)地址线;8条(I/O0~I/O7)双向数据线;为片选线,低电平有效;为写允许线,低电平有效;为读允许线,低电平有效。
6116的操作方式如表所示。
表8.2静态RAM芯片6116工作方式
(2)硬件电路。
单片机与6116的硬件连接如图8-5所示
图8.4单片机与6116的硬件连接
(3)连线说明。
6116与单片机的连线如下:
地址线:
A0~A10连接单片机地址总线的A0~A10,即P0.0~P0.7、P2.0、P2.1、P2.2共11根。
数据线:
I/O0~I/O7连接单片机的数据线,即P0.0~P0.7。
控制线:
CE片选端连接单片机的P2.7,即单片机地址总线的最高位A15;OE读允许线连接单片机的读数据存储器控制线RD;写允许线WE连接单片机的写数据存储器控制线WE。
(4)片外RAM地址范围的确定及使用。
按照图的连线,片选端直接与某一地址线P2.7相连,这种扩展方法称为线选法。
显然,只有P2.7=0,才能够选中该片6116,故其地址范围确定如下:
8031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
6116A10A9A8A7A6A5A4A3A2A1A0
0××××00000000000
0××××00000000001
0××××00000000010
0××××00000000011
……
0××××11111111111
其中,“×”表示跟6116无关的管脚,取0或1都可以。
如果与6116无关的管脚取0,那么,6116的地址范围是0000H~07FFH;如果与6116无关的管脚取1,那么,6116的地址范围是7800H~7FFFH。
单片机对RAM的读写除了可以使用在实训6中出现的指令:
MOVX@DPTR,A;64KB内写入数据
MOVXA,@DPTR;64KB内读取数据
外,还可以使用以下对低256B的读写指令:
MOVX@Ri,A;低256B内写入数据
MOVXA,@Ri;低256B内读取数据
2.同时扩展外部RAM与外部I/O
我们知道外部RAM与外部I/O口采用相同的读/写指令,二者是统一编址的,因此当同时扩展二者时,就必须考虑地址的合理分配。
通常采用译码法来实现地址的分配。
下面是一个这样的例题。
例扩展8KBRAM,地址范围是2000H~3FFFH,并且具有惟一性;其余地址均作为外部I/O扩展地址。
(1)芯片选择。
①静态RAM芯片6264。
6264是8K×8位的静态RAM,它采用CMOS工艺制造,单一+5V供电,额定功耗200mW,典型读取时间200ns,封装形式为DIP28,管脚如图6.13所示。
其中,A0~A12为13条地址线;I/O0~I/O7为8条数据线,双向;为片选线1,低电平有效;CE2为片选线2,高电平有效;为读允许信号线,低电平有效;为写信号线,低电平有效。
图8.5静态RAM芯片6264引脚图
图8.6单片机扩展8KBSRAM的硬件连线图
②3-8译码器74LS138。
题目要求扩展RAM的地址(2000H~3FFFH)范围是惟一的,其余地址用于外部I/O接口。
由于外部I/O占用外部RAM的地址范围,操作指令都是MOVX指令,因此,I/O和RAM同时扩展时必须进行存储器空间的合理分配。
这里采用全译码方式,6264的存储容量是8K×8位,占用了单片机的13条地址线A0~A12,剩余的3条地址线A13~A15通过74LS138来进行全译码。
(2)硬件连线。
用单片机扩展8KBSRAM的硬件连线图如图8-7所示。
单片机的高三位地址线A13、A14、A15用来进行3-8译码,译码输出的接6264的片选线;剩余的译码输出用于选通其它的I/O扩展接口;
6264的片选线CE2直接接+5V高电平;
6264的输出允许信号接单片机的,写允许信号接单片机的。
(3) 6264的地址范围。
根据片选线及地址线的连接,6264的地址范围确定如下:
8031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
6264A12A11A10A9A8A7A6A5A4A3A2A1A0
0010000000000000
0010000000000001
0010000000000010
0011111111111111
因此,6264的地址范围为2000H~3FFFH。
项目8.3I2C总线简介
I2C总线(InterICBUS)是Philips推出的芯片间串行传输总线。
它以两根连线实现了完善的全双工同步数据传送,可以极方便地构成多机系统和外围器件扩展系统。
I2C总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有最简单而灵活的扩展方法。
目前许多单片机厂商引进了Philips公司的I2C总线技术,推出了许多带有I2C总线接口的单片机。
Philips公司除了生产具有I2C总线接口的单片机外,还推出了许多具备I2C总线的外部接口芯片,如24XX系列的E2PROM、128字节的静态RAM芯片PCF8571、日历时钟芯片PCF8563、4位LED驱动芯片SAA1064、160段LCD驱动芯片PCF8576等多种类多系列接口芯片。
8.3.1I2C总线工作原理
采用I2C总线系统结构如图下图所示。
图8.7I2C总线系统结构图
其中,SCL是时钟线,SDA是数据线。
总线上的各器件都采用漏极开路结构与总线相连,因此,SCL、SDA均需接上拉电阻,总线在空闭状态下均保持高电平。
I2C总线支持多主和主从两种工作方式,通常为主从工作方式。
在主从工作方式中,系统中只有一个主器件(单片机),总线上其它器件都是具有I2C总线的外围从器件。
在主从工作方式中,主器件启动数据的发送(发出启动信号),产生时钟信号,发出停止信号。
为了实现通信,每个从器件均有唯一一个器件地址,具体地址由I2C总线委员会分配。
8.3.2I2C总线工作方式
图8.8I2C总线上进行一次数据传输的通信格式
1.发送启动(始)信号
在利用I2C总线进行一次数据传输时,首先由主机发出启动信号启动I2C总线。
在SCL为高电平期间,SDA出现上升沿则为启动信号。
此时具有I2C总线接口的从器件会检测到该信号。
2.发送寻址信号
主机发送启动信号后,再发出寻址信号。
器件地址有7位和10位两种,这里只介绍7位地址寻址方式。
寻址信号由一个字节构成,高7位为地址位,最低位为方向位,用以表明主机与从器件的数据传送方向。
方向位为“0”,表明主机对从器件的写操作;方向位为“1”时,表明主机对从器件的读操作。
3.应答信号
I2C总线协议规定,每传送一个字节数据(含地址及命令字)后,都要有一个应答信号,以确定数据传送是否正确。
应答信号由接收设备产生,在SCL信号为高电平期间,接收设备将SDA拉为低电平,表示数据传输正确,产生应答。
4.数据传输
主机发送寻址信号并得到从器件应答后,便可进行数据传输,每次一个字节,但每次传输都应在得到应答信号后再进行下一字节传送。
5.非应答信号
当主机为接收设备时,主机对最后一个字节不应答,以向发送设备表示数据传送结束。
6.发送停止信号
在全部数据传送完毕后,主机发送停止信号,即在SCL为高电平期间,SDA上产生一上升沿信号。
8.3.3I2C总线数据传输方式模拟
目前已有多家公司生产具有I2C总线的单片机,如Philips、Motorola、韩国三星、日本三菱等公司。
这类单片机在工作时,总线状态由硬件监测,无须用户介入,应用非常方便。
对于不具有I2C总线接口的MCS-51单片机,在单主机应用系统中可以通过软件模拟I2C总线的工作时序,在使用时,只需正确调用该软件包就可很方便地实现扩展I2C总线接口器件。
I2C总线软件包组成:
启动信号子程序STA
停止信号子程序STOP
发送应答位子程序MACK
发送非应答位子程序MNACK
应答位检查子程序CACK
单字节发送子程序WRBYT
单字节接收子程序RDBYT
n字节发送子程序WRNBYT
n字节接收子程序RDNBYT
项目8.4AT24C1024操作
AT24CXX系列EEPROM是ATMEL公司生产的串行电可擦除的可编程存储器。
该器件采用8引脚双例直插式封装,可以再I2C总线上并接多片芯片。
AT24CXX系列EEPROM有11种型号,本节以AT24C1024为例,介绍该芯片的工作原理和应用。
AT24C1024提供1,048,567位的串行可电擦除和可编程只读存储器(EEPROM),它的每8位组成一个字节,共131,072个字节。
该设备的级联功能允许多达2个设备共亨同一条I2C总线。
该设的备适合用于许多工业和商业,应用必要的低功耗和低电压的操作。
该器件可提8引脚PDIP,8引脚有铅SOIC封装,8引脚无铅阵列和8引脚球状dBGA封装。
另外,这一系列产品允许在2.7V(2.7V~5.5V)下工作。
绝对最大额定值:
工作温度:
-55~+125
存储温度:
-65~+150
任何引脚的对地电压:
-1.0V~+7.0V
最大工作电压:
6.25V
直流输出电流:
5.0mA图8-9AT24C1024引脚分布
8.4.1引脚简介
AT24C1024有串行数据引脚SDA,串行时钟输入引脚SCL,地址输入引脚A1,写保护引脚WP,其引脚教少,使用应用系统可以减少布线,提高可靠性。
各引脚说明如下:
1)VCC,接+5V电源
2)GND接地
3)SCL串行时钟端,在时钟的上升沿数据进入每个EEPROM输出每个设备和下降沿输出设备
4)SDA数据串行数据I/O口,用于串行数据的双向传送,这个引脚是开漏驱动,可以与其它器件组成线或逻辑。
5)A1引脚是设备的输入地址,它能够通过导线与不兼容的设备AT24C128/256/512连接。
当A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模块八 单片机的系统扩展技术 模块 单片机 系统 扩展 技术