




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7、8章
MCS-51单片机的RAM与I/O扩展技术1.存储器概述2.存储器与I/O并行扩展的基本知识3.存储器的扩展4.I/O的扩展5.串行扩展技术.第7、8章
MCS-51单片机的RAM与I/O扩展技术1由于单片机内部资源有限,在实际应用系统中,常在片外连接相应的外围芯片来扩展的资源,满足应用系统需求。51系列单片机的系统扩展主要有程序存储器(ROM)的扩展、数据存储器(RAM)的扩展、I/O口的扩展、中断系统扩展以及其它特殊功能接口的扩展等。扩展方法既可以并行扩展,也可以串行扩展,且扩展方法较典型、规范。并行扩展是指利用单片机三组总线(AB、
BD、
CB)进行的扩展,早年的应用系统基本上都是这种并行扩展。串行扩展是通过串行信号线进行的扩展,串行扩展总线有单总线(1-Wire总线)、双总线(I2C总线)、三总线(SPI总线)三种结构,是近年来主要发展的方向。.由于单片机内部资源有限,在实际应用系统中,常在片外2一、存储器和I/O口并行扩展的基本知识
1、51单片机机的系统总线
系统并行扩展的重点是掌握单片机的系统总线,如图8-1所示,三总线即地址总线(AB)数据总线(DB)和控制总线(CB)。具有总线的外部芯片都通过这三组总线进行扩展。(1)地址总线(AB)
由P0口提供低8位地址A0~A7。由P2口提供高8位地址A8~A15。
(2)数据总线(DB)
数据总线由P0口提供,用D0~D7表示。51系列单片微机的三总线结构.一、存储器和I/O口并行扩展的基本知识1、51单片机机的系3
地址低8位总线和数据总线都是由P0口提供,通过分时实现传输功能。并且地址总线总是在ALE信号的下降沿有效,因此可通过ALE信号把低8位地址信号锁存在外接的锁存器上。下图为地址、数据、及ALE信号的时序图:
.地址低8位总线和数据总线都是由P0口提供,通过分时实4
根据上图的时序,不难用TTL的锁存芯片从P0口的复合信号中分离出低8位的地址信号。
D0D1D2D3D4D5D6D7GQ0Q1Q2Q3Q4Q5Q6Q7OE256912151619174LS373引脚图GOEQN01=DN01=DN00保持1X高阻74LS373真值表34781314171811P0口ALE805174LS373D0~D7Q0~Q7OEGA0~A7A8~A15P2口.D0Q0274LS373引脚图GOEQN01=D5
数据线总是在PSEN、WR、RD三个信号之一为低电平时有效,外围芯片就是通过这三个信号之一来控制数据信号的传输。当有多个外围芯片并连到的数据线上时,同一时间里只能够有一个是有效的数据传送通道,此时则由地址线译码出片选信号来选择指定芯片数据通道进行数据传送。(3)控制总线(CB)
控制总线包括片外系统扩展用控制线和片外信号对单片机的控制线。系统扩展用控制线有ALE、PSEN、WR、RD。 ALE:用于锁存P0口输出的低8位地址的控制线。通常,ALE在P0口输出地址期间出现低电平,用这个低电平信号的上升沿控制锁存器来锁存地址数据。.数据线总是在PSEN、WR、RD三个信号之一为低电6
PSEN:输出,用于读片外程序存储器(EPROM)中的数据。“读”取EPROM中数据(指令)时,不能用“RD”信号,而只用PSEN信号。
EA:输入,用于选择片内或片外程序存储器。 当EA=0时,只访问外部程序存储器。当EA=1时,先访问内部程序存储器,内部程序存储器全部访问完之后,再访问外部程序存储器。
WR、RD:输出,用于片外数据存储器(RAM)的读、写控制。当执行片外数据存储器操作指令MOVX时,自动生成、控制信号,并在数据线有效时输出。
. PSEN:输出,用于读片外程序存储器(EPROM)中的数据7
在单片微机应用系统中,为了对唯一地选择片外某一存储单元或I/O端口进行操作,需要进行选址。
一是必须先找到该存储单元或I/O端口所在的芯片,一般称为“片选”。二是通过对芯片本身所具有的地址线进行译码。这样才能确定唯一的存储单元或I/O端口。片选常用有“线选”、“地址译码”2种方法。2.片选控制.在单片微机应用系统中,为了对唯一地选择片外8
(1)线选法:I/O接口芯片的“片选”控制线。线选法常一般是利用单片微机的最高几位空余的地址线中一根(如P2.7)作为某一片存储器芯片或用于应用系统中扩展芯片的片选,适用于芯片较少的场合。下图是扩展3片存储器“线选”方按图:
A10...A0CEA10...A0CEA10...A0CEA10~A0A10~A0A10~A0A13A12A11IIIIII. (1)线选法:I/O接口芯片的“片选”控制线。线选法常一9
三个芯片地址分配如下:
线选方式的电路连接简单,不必专门设计逻辑电路,其缺点是占用地址资源较多,地址重叠区多,芯片的地址空间可能不连续,不能充分利用微处理器的内存空间,因此这种方法只能在存储器容量较小的场合。. 三个芯片地址分配如下: 线选方式的电路连接简单,不必专10(2)译码法:用译码器对空余的高位地址线进行译码,而译码器的输出作为“片选”控制线。常用的译码器有3/8译码器74LS138、双2/4译码器74LS139、4/16译码器74LS154等。如下图;CBAG1/G2A/G2B/Y0/Y1/Y2/Y3/Y4/Y5/Y6/Y774LS138
A10...A0CEA10...A0CEA10...A0CEA10~A0IIIIIIA13A12A11A15A14A15A14A13A12A11A10……A0十六进制地址芯片I100000……08000H~~100001……187FFH芯片II1100010……08800H~~100011……18FFFH芯片III1100100……09000H~~100101……197FFH.(2)译码法:用译码器对空余的高位地址线进行译码,而译113.总线驱动器在外围扩展芯片扩展较多的情况下,单片机总线驱动不足,这时要考虑在单片机的总线上加总线驱动器.常用驱动器芯片有74LS244和74LS245,其内部电路如下:单向驱动器74LS244双向驱动器74LS245利用这些芯片不难开展单片机的驱动能力.如下图:.3.总线驱动器单向驱动器74LS244双向驱动器74LS2412..13二、外部存储器的并行扩展
1.程序存储器的操作时序CPU读取指令有两种情况:一种是不访问外部数据存储器的指令;二是访问外部数据存储器的指令。CPU在执行这两种指令时,其时序是不同的。a,不访问外部RAM的指令时序.二、外部存储器的并行扩展1.程序存储器的操作时序a,不14b,访问外部RAM的指令时序从图中可知:低8位地址总是在ALE为低时有效;指令数据总是在PSEN或RD/WR为低电平时出现。根据此原则,就可以设计RAM和ROM的扩展电路。.b,访问外部RAM的指令时序从图中可知:低8位地址152.扩展片外程序存储器的硬件电路例:扩展16K*8位片外程序存储器
EPROM的扩展电路.2.扩展片外程序存储器的硬件电路EPROM的扩展电路16用译码方法扩展4片27128的EPROM电路原理图.用译码方法扩展4片27128的EPROM电路原理图.17在图中,图中用2片8K的RAM来扩展。采线选法寻址。用一口线P2.7来寻址。
当P2.7=0时访问片(0),地址范围为6000H~7FFFH
当P2.7=l时访问片(1),地址范围为E000H~FFFFH图8–1116K片外数据存储器扩展电路3.外数据存储器的扩展.在图中,图中用2片8K的RAM来扩展。采线选法寻址。18P0.0~P0.7D0~D7A0~A7A8~A10P2.0~P2.2P2.7WRRDPSENCEWEOEALED0~D7Q0~Q7805174LS37328173888LEG2817与8051的接口电路4.扩展片外EEPROM的硬件电路EEPROM存储器既可断电保护数据,又可在线写入数据,具有SRAM和EPROM两者的优点,且引脚和读写方式与EPROM相近,只是写入时间较长,写入次数有限,适宜于断电后需要数据保护,数据变换不太频繁的场合。.P0.0~P0.7D0~D7A0~A7A8~A10P2.0~195.FLASH存储器的扩展
FLASH存储器是Intel公司于20世纪80年代后期推出的新型存储器,其主要的性能特点有:(1)快速整片电擦除,典型时间为1秒钟。(2)采用快速脉冲编程算法进行高速编程。(3)可擦/写10万次。(4)写入和擦除电压为12V±5%。(5)最大的存取时间为135ns。(6)先进的CMOS工艺,最大工作电流为30mA,备用状态下的最大电流为100µA。(7)命令寄存器的结构与微处理器/微控制器写入接口兼容,抗噪声能力强,允许±5%的电源噪声波动。(8)片内地址和数据锁存FLASHMEMORY的一个主要的确定就是只能进行整片或者分块擦除,不能按存储单元进行字节擦除,此外,FLASH存储器的写入速度比SRAM慢1~2个数量级。.5.FLASH存储器的扩展FLASH存储器20FLASH存储器的操作单片机对存储器的操作可以分为两种情况,一种是VPP引脚不加高压的情况,另一种是VPP引脚加高压的情况。当VPP引脚不加高压时,FLASH存储器相当于一个只读存储器EPROM,在这种情况下,可以通过控制线对FLASH进行的操作有读操作,备用状态,禁止输出和对Intel标识符进行操作。当在VPP引脚上施加12V±5%的高压时,单片机还可以对FLASH存储器进行擦除和编程操作。
.FLASH存储器的操作.21FLASH存储器的扩展举例:用一片28F256(32KB)FLASH存储器对8031单片机系统进行扩展作为外部数据存储器的电路连接图如图所示。.FLASH存储器的扩展举例:.22三、I/O口的并行扩展
单片机没有专门的I/O输入输出指令,扩展的I/O与外部RAM是统一编址,也就是说并行扩展的I/O口要占用外部RAM的地址空间,对扩展I/O口的访问,像对待外部RAM一样,CPU用MOVX指令与I/O口进行数据交流。1.用TTL芯片进行I/O口的扩展由于I/O输出是用:MOVX@DPYR,A或MOVX @Ri,A指令进行,指令通过P0口数据总线输出所需要的数据,此时的P0口并没有锁存功能,为了有稳定的输出,可以用简单的TTL或CMOS的锁存芯片把数据锁存输出。如下图:.三、I/O口的并行扩展.23例:将一个数据字节从74LS377输出,则执行下面程序段: MOV DPTR,#7FFFH ;地址指针指向74LS377 MOV A,#DATA ;将输出数据送A MOVX@DPTR,A ;输出数据对于输入,由于也是通过数据总线进行,输入时一定要加三态芯片,以免平时对数据总线的影响。CK为时钟输入端G为锁存允许.例:将一个数据字节从74LS377输出,则执行下面程序段:C24 对于常态数据的输入,只需采用8位三态门控制电路芯片即可。图8-13是用74LS244通过P0口扩展的8位并行输入口,图中,三态门由P2.6和RD相或控制,其端口地址为BFFFH。例:数据输入MOV DPTR,#0BFFFH ;指向74LS244口地址A14=0MOVXA,@DPTR ;读入数据74LS244是双4位三态输入缓冲器DRDP21G、2G为输出控制端. 对于常态数据的输入,只需采用8位三态门控制电路芯片即可。图252.用8155芯片进行I/O口的扩展(1)8155的主要功能:内部有2个8位,1个6位的并行I/O口,还带有256字节的RAM,一个14位的定时/计数器。
与8255相类似,I/O口和定时器的工作方式通过控制字来设定。其地址安排如下:CEIO/MA2A1A0选通端口CEIO/MA2A1A0选通端口01000控制口01100计数器低801001A口01101计数器高801010B口00XXXRAN单元01011C口.2.用8155芯片进行I/O口的扩展(1)8155的主要功26(2)8155的命令和状态字.(2)8155的命令和状态字.27(3)8155与单片机的接口电路P0.0~P0.7RSTP2.1P2.7ALERDWR8051AD0~AD7RSTIO/MCEALERDWRPAPBPC8155由右图可得各口地址为:控制口:7F00HA口:7F01HB口:7F02HC口:7F03H定时/计数器低8位:7F04H定时/计数器高8位:7F05HRAM地址范围:7E00H~7EFFH例:设AB为输出,C口为输入,则控制字为03H,初始化编程为:MOVDPTR,#7F00HMOV A,#03HMOVX@DPTR,A.(3)8155与单片机的接口电路P0.0~P0.7828四、串行扩展介绍单片机的外部串行扩展主要包括1-WIRE、I2C和SPI三种总线的扩展。1.1-WIRE总线结构1-WIRE总线结构在一根单总线上可以悬挂多个器件的总线,总线由主机控制,数据可双向传输。1-Wire单总线器件的硬件结构如右图所示。为了在单条传输线上能够双向传输地址、数据、控制信号,序列号接收发射电源单总线电源地实现并行传输同样的功能,总线只能采用特殊的接口协议,每次通信都要按规定的次序来传输地址、数据和控制信息。同时为了解决接收双方的同步,规定了信号双方传输时的时序和握手方式。.四、串行扩展介绍1.1-WIRE总线结构序列号接收发射电源单29对器件的地址和产品的识别,每个器件产品上都刻录了电子识别码—即产品的序列号。此序列号(ID)采用64位的二进制ROM代码,将个产品分开。具体的格式是:第一个字节是器件的家族代码;接着的6个字节是每个器件唯一的序列号;最后一个字节是前56位的CRC校验码。此外一般的产品还含有接收控制、发射控制和电源存储电路,可以直接从信号线上获取电源,而无须再接电源引脚。1-WIRE总线具有结构简单、成本低廉、节省I/O资源、便于总线扩展和维护等优点。单总线端口为漏极开路,要求外接一个约5k的上拉电阻以确保单总线的闲置状态为高电平,并要求主机或从机通过一个漏极开路或三态端口连接至该单总线,使到设备在不发送数据时释放单总线,以便总线被其他设备使用。.对器件的地址和产品的识别,每个器件产品上都刻录了电子识30单总线的数据传输通常以16.3kbit/s的速率通信,超速模式下,可设定传输速率为100kbit/s左右,一般用于对速度要求不高的应用系统中。单总线技术的作用距离一般达到200m,并允许挂上百个器件。2.1-Wire单总线器件的软件操作为了识别单总线上的不同器件,在软件的程序设计中,一般有以下步骤:(1)初始化命令(复位)
;(2)传送ROM命令(寻找匹配器件和器件内寻址;(3)传送RAM命令(读写口地址或单元内容)。除了搜索ROM命令和报警搜索命令例外,每次访问单总线器件必须严格遵守这3个步骤,如果出现序列混乱则单总线器件不会响应主机要求,在执行两者中任何一条命令之后,主机不能执行其后的功能命令时必须返回至第一步。.单总线的数据传输通常以16.3kbit/s的速率通31上述三种命令可分解位总线上的三种操作:(1)初始化(复位)(2)写0、1;(3)读0、1。每种操作都有自己时序的要求,软件设计中应保证按规定的时序要求进行编程。以下是三种操作的时序:主机发出低电平主机发复位脉冲480-960us等待15-60us
器件发响应脉冲60-240us电阻上拉激发低电平VCCGND1线总线图:复位时序.上述三种命令可分解位总线上的三种操作:主机发出低电平32写时隙时序图
主机写数据时,应先将数据线拉低1微秒以上,再写入数据(写“1”高,写“0”为低)。待主机写入的数据变化15~60微秒后,总线上的器件将对数据线采样。要求主机写入数据的时间保持在60~120微秒之间。两次写数据操作之间的间隙应大于1微秒。复位信号要求主机将数据线拉低并保持480~960微秒,再释放数据线,由上拉电阻拉高15~60微秒。然后再由被复位的器件发出低电平60~240微秒,就完成了复位操作。
.写时隙时序图主机写数据时,应先将数据线拉低33读时隙时序图读数据之前,主机应先将数据线拉低,再释放。总线上被读期间在数据线从高电平跳低后15微秒内将数据送到数据线上。主机在15微秒后读取数据线。.读时隙时序图读数据之前,主机应先将数据线拉低,再释放34以18B20测温芯片为例,下图是它的内部框图:64位ROM和一线端口存储和控制逻辑高速暂存器8位CRC生成器温度传感器高温触发器TH低温触发器TL配置寄存器供电方式选择
.以18B20测温芯片为例,下图是它的内部框图:存储和控制35跟一般的1-WIRE器件一样,有ROM和RAM操作命令.1.ROM的主要操作命令:读序列号命令(33H):读总线上DS18B20的序列号器件匹配命令(55H):对总线上DS18B20寻址搜索ROM命令(F0H):识别总线上多个器件的ROM编码跳过ROM(CCH):命令执行后,将省去每次与ROM有关的操作报警检测命令(ECH):搜索有报警的器件2.RAM的主要操作命令写入命令 (4EH):写上、下限值到DS18B20中读出命令 (BEH):从DS18B20读出9字节数据(其中有温度 值,报警值等)开始转换 (44H):启动温度变换无读存储器命令,读电源标志 (B4H):检测DS18B20的供电方式
.跟一般的1-WIRE器件一样,有ROM和RAM操作命令.362、I2C总线结构及其扩展方法(1)总线系统结构SDASCLSDASCLSDASCLVCC主机从机1从机2SCLSDA
I2C总线用两跟双向传输线SDA和SCL进行全双工数据传送,可以并行扩展多个外围器件。总线采用了器件地址硬件设置,无须用外围器件片选信号方式的寻址方法。
总线平时通过上拉电阻接到电源,在空闲情况下,2根线都处于高电平。
.2、I2C总线结构及其扩展方法SDASCLSDA37(2)总线的四种状态和数据传输时序总线状态SCLSDA总线不忙高电平高电平开始传送数据高电平停止传送数据高电平
数据传送SCL低电平时更改数据,用SCL的上升沿读取数据,在SCL高电平时数据不能变动I2C数据传送时序.(2)总线的四种状态和数据传输时序总线状态SCL38(3)数据传输格式由于数据和地址信号都用一根数据线SDA来传输,何时传输地址?什么时候是主器件读?什么时候是主器件写?如何保证传输的正确?必须有一个共同接受的规定:①.主控器件写操作主器件向被控器件发送n个数据的数据格式如下:起始信号S送7位地址和一位(为”0”)传送方向SLAW应答信号A发送数据DATA1应答信号A……发送数据DATAn-1应答信号A发送数据DATAn非应答信号A/A’停止信号P②主控器件读操作主器件向被控器件读n个数据的数据格式如下:起始信号S送7位地址和一位(为”1”)传送方向SLAR应答信号A接收数据DATA1应答信号A……接收数据DATAn-1应答信号A接收数据DATAn非应答信号A/A’停止信号P.(3)数据传输格式起始信号送7位地址和一位(为”0”)传送39③主控器读写操作
主控器读写操作是指主控期间在一次数据过程中需要改变数据传送方向的操作。原则上此过程中的读写操作分别与上述方法一样,只是在数据传送方向改变后,必须由主控器件发出从新启动信号。(4)串行EEPROM的扩展技术串行EEPROM主要的型号如下表:型号容量AT24C01128X8AT24C02256X8AT24C04512X8AT24C081024X8AT24C0162048X8SDAVCCSCLA0TESTA1VSSA256748123NCNCSDAVCCSCLTESTNCNCVSSA0NCA1NCA219104678141312112351)引脚排列AT24系列芯片有8脚和14脚2种,其中:SDA:数据线SCL:时钟线TEST:测试线, 平时接地..③主控器读写操作型号容量AT24C01128X8AT2402)地址选择
AT24CX系列存储芯片有多个型号,容量从128字节到2K字节,若单靠I2C的寻址字节(SLAW/R),不能全部解决所有空间的寻址,为此它规定在访问其单元时,在程序中增加一个字节寻找片内单元;而SLAW/R提供的寻址用于片间的选择,该字节中高4位作识别位,最低位为读写方向位,其余3位与地址引脚相对应,提供作片选,因此用AT24CX系列扩展,最多可扩展到2K字节,用24C02,则最多可扩展8片,若是24C16,则只能扩展一片。下面是用4片24C02扩展的2K电路:对于只用单片芯片,可用书中表7-17方法连接。.2)地址选择对于只用单片芯片,可用书中表7-17方法连接。413)AT24CX系列芯片的写操作a,字节写格式如下:起始信号S寻址字节SLAW应答信号A写单元地址WORDADR应答信号A写数据DATA应答信号A停止信号Pb,页写页写是在指定地址开始连续写入若干字节,提高写入的速度.一次最大字节数对01/02/04/08/16型号分别为4/8/16/16/16个,格式如下:起始信号S寻址字节SLAW应答信号A写单元地址WORDADR应答信号A写数据DATA1应答信号A写数据DATA2应答信号A…写数据DATAn应答信号A停止信号P.3)AT24CX系列芯片的写操作起始信号寻址字节应答写4224CX芯片内部有页地址,对01/02/04/08/16型号,对应的页地址有2/3/4/4/4位,页写入时有规定,对同一页面进行页写时,低位数据必须写入到低位地址,否则会出现”翻卷”现象。4)AT24CX系列芯片的读操作24CX芯片的读也有三种格式:a,当前地址读:b,指定地址读:c,序列读:SSLARADATAA’PSSLAWAWORDATAASSLARADATAA’PSSLARADATA1ADATA2A…DATAnA’P.24CX芯片内部有页地址,对01/02/04/08/435)AT24CX的接口电路及编程SDAVCCSCLA0TESTA1VSSA256748123P1.7P1.68051VCCR=5.1KAT24C02启动子程序:要求在时钟为高电平期间数据线由高变低。
STA:SETB P1.7;SDA=1SETB P1.6;SCL=1NOPNOPCLR P1.7;SDA=0NOPNOPCLR P1.6;SCL=0RET停止子程序:要求在时钟为高电平期间数据线由低变高。STOP: CLR P1.7;SDA=0 SETB P1.6;SCL=1 NOP NOP SETB P1.7;SDA=1 NOP NOP CLR P1.6;SCL=0 RETSDASCLSDASCL.5)AT24CX的接口电路及编程SDAVCC544发送应答位”0”子程序:要求在SCL高电平期间主控器件向被控器件 发送”0”应答信号。SACK:CLR P1.7 SETB P1.6 NOP NOP CLR P1.6 SETB P1.7 RETSDASCL发送非应答位”1”子程序:要求在SCL高电平期间主控器件向被控器 件发送”1”应答信号。SDASCLSNACK:SETBP1.7 SETBP1.6 NOP NOP CLR P1.6 CLR P1.7 RET.发送应答位”0”子程序:要求在SCL高电平期间主控器件向被控45应答位检查子程序:用于检查一字节数据传送后,主控器件在 第9位是否发回”0”的应答,若是,程序置 F0标志为0,否则置F0标志为1。ACK_CHK:SETBP1.7 ;设P1.7为输入,由接收端发回低电平 SETB P1.6 ;输出时钟 CLR F0 JNBACC.7,EXIT;查由接收端是否发回低电平? SETB F0 ;不是,则置F0=1EXIT: CLR P1.6 ;结束时钟 NOP RETSDASCL9正常应答信号.应答位检查子程序:用于检查一字节数据传送后,主控器件在 46作业:1.用8031单片机,并采用一片2716(2KB)和一片6116(2KB)组成一个既有程序存储器又有数据存储器的扩展系统,请:(1)画出逻辑电路图(2)说明其存储空间2.请利用74HC138设计一个译码电路,分别选中4片2764,且列出各芯片所占的地址范围:Y0芯片地址范围0000H-1FFFH,Y1芯片地址范围2000H-3FFFH,Y2芯片地址范围4000H-5FFFH,Y3芯片地址范围6000H-7FFFH.3.利用TTL芯片,设计扩展一个8位并行输入口和一个8位并行输出口,输入口接8个开关,输出口接8个发光二极管,并编程用8个开关的状态控制8个二极管的亮灭..作业:.47第7、8章
MCS-51单片机的RAM与I/O扩展技术1.存储器概述2.存储器与I/O并行扩展的基本知识3.存储器的扩展4.I/O的扩展5.串行扩展技术.第7、8章
MCS-51单片机的RAM与I/O扩展技术48由于单片机内部资源有限,在实际应用系统中,常在片外连接相应的外围芯片来扩展的资源,满足应用系统需求。51系列单片机的系统扩展主要有程序存储器(ROM)的扩展、数据存储器(RAM)的扩展、I/O口的扩展、中断系统扩展以及其它特殊功能接口的扩展等。扩展方法既可以并行扩展,也可以串行扩展,且扩展方法较典型、规范。并行扩展是指利用单片机三组总线(AB、
BD、
CB)进行的扩展,早年的应用系统基本上都是这种并行扩展。串行扩展是通过串行信号线进行的扩展,串行扩展总线有单总线(1-Wire总线)、双总线(I2C总线)、三总线(SPI总线)三种结构,是近年来主要发展的方向。.由于单片机内部资源有限,在实际应用系统中,常在片外49一、存储器和I/O口并行扩展的基本知识
1、51单片机机的系统总线
系统并行扩展的重点是掌握单片机的系统总线,如图8-1所示,三总线即地址总线(AB)数据总线(DB)和控制总线(CB)。具有总线的外部芯片都通过这三组总线进行扩展。(1)地址总线(AB)
由P0口提供低8位地址A0~A7。由P2口提供高8位地址A8~A15。
(2)数据总线(DB)
数据总线由P0口提供,用D0~D7表示。51系列单片微机的三总线结构.一、存储器和I/O口并行扩展的基本知识1、51单片机机的系50
地址低8位总线和数据总线都是由P0口提供,通过分时实现传输功能。并且地址总线总是在ALE信号的下降沿有效,因此可通过ALE信号把低8位地址信号锁存在外接的锁存器上。下图为地址、数据、及ALE信号的时序图:
.地址低8位总线和数据总线都是由P0口提供,通过分时实51
根据上图的时序,不难用TTL的锁存芯片从P0口的复合信号中分离出低8位的地址信号。
D0D1D2D3D4D5D6D7GQ0Q1Q2Q3Q4Q5Q6Q7OE256912151619174LS373引脚图GOEQN01=DN01=DN00保持1X高阻74LS373真值表34781314171811P0口ALE805174LS373D0~D7Q0~Q7OEGA0~A7A8~A15P2口.D0Q0274LS373引脚图GOEQN01=D52
数据线总是在PSEN、WR、RD三个信号之一为低电平时有效,外围芯片就是通过这三个信号之一来控制数据信号的传输。当有多个外围芯片并连到的数据线上时,同一时间里只能够有一个是有效的数据传送通道,此时则由地址线译码出片选信号来选择指定芯片数据通道进行数据传送。(3)控制总线(CB)
控制总线包括片外系统扩展用控制线和片外信号对单片机的控制线。系统扩展用控制线有ALE、PSEN、WR、RD。 ALE:用于锁存P0口输出的低8位地址的控制线。通常,ALE在P0口输出地址期间出现低电平,用这个低电平信号的上升沿控制锁存器来锁存地址数据。.数据线总是在PSEN、WR、RD三个信号之一为低电53
PSEN:输出,用于读片外程序存储器(EPROM)中的数据。“读”取EPROM中数据(指令)时,不能用“RD”信号,而只用PSEN信号。
EA:输入,用于选择片内或片外程序存储器。 当EA=0时,只访问外部程序存储器。当EA=1时,先访问内部程序存储器,内部程序存储器全部访问完之后,再访问外部程序存储器。
WR、RD:输出,用于片外数据存储器(RAM)的读、写控制。当执行片外数据存储器操作指令MOVX时,自动生成、控制信号,并在数据线有效时输出。
. PSEN:输出,用于读片外程序存储器(EPROM)中的数据54
在单片微机应用系统中,为了对唯一地选择片外某一存储单元或I/O端口进行操作,需要进行选址。
一是必须先找到该存储单元或I/O端口所在的芯片,一般称为“片选”。二是通过对芯片本身所具有的地址线进行译码。这样才能确定唯一的存储单元或I/O端口。片选常用有“线选”、“地址译码”2种方法。2.片选控制.在单片微机应用系统中,为了对唯一地选择片外55
(1)线选法:I/O接口芯片的“片选”控制线。线选法常一般是利用单片微机的最高几位空余的地址线中一根(如P2.7)作为某一片存储器芯片或用于应用系统中扩展芯片的片选,适用于芯片较少的场合。下图是扩展3片存储器“线选”方按图:
A10...A0CEA10...A0CEA10...A0CEA10~A0A10~A0A10~A0A13A12A11IIIIII. (1)线选法:I/O接口芯片的“片选”控制线。线选法常一56
三个芯片地址分配如下:
线选方式的电路连接简单,不必专门设计逻辑电路,其缺点是占用地址资源较多,地址重叠区多,芯片的地址空间可能不连续,不能充分利用微处理器的内存空间,因此这种方法只能在存储器容量较小的场合。. 三个芯片地址分配如下: 线选方式的电路连接简单,不必专57(2)译码法:用译码器对空余的高位地址线进行译码,而译码器的输出作为“片选”控制线。常用的译码器有3/8译码器74LS138、双2/4译码器74LS139、4/16译码器74LS154等。如下图;CBAG1/G2A/G2B/Y0/Y1/Y2/Y3/Y4/Y5/Y6/Y774LS138
A10...A0CEA10...A0CEA10...A0CEA10~A0IIIIIIA13A12A11A15A14A15A14A13A12A11A10……A0十六进制地址芯片I100000……08000H~~100001……187FFH芯片II1100010……08800H~~100011……18FFFH芯片III1100100……09000H~~100101……197FFH.(2)译码法:用译码器对空余的高位地址线进行译码,而译583.总线驱动器在外围扩展芯片扩展较多的情况下,单片机总线驱动不足,这时要考虑在单片机的总线上加总线驱动器.常用驱动器芯片有74LS244和74LS245,其内部电路如下:单向驱动器74LS244双向驱动器74LS245利用这些芯片不难开展单片机的驱动能力.如下图:.3.总线驱动器单向驱动器74LS244双向驱动器74LS2459..60二、外部存储器的并行扩展
1.程序存储器的操作时序CPU读取指令有两种情况:一种是不访问外部数据存储器的指令;二是访问外部数据存储器的指令。CPU在执行这两种指令时,其时序是不同的。a,不访问外部RAM的指令时序.二、外部存储器的并行扩展1.程序存储器的操作时序a,不61b,访问外部RAM的指令时序从图中可知:低8位地址总是在ALE为低时有效;指令数据总是在PSEN或RD/WR为低电平时出现。根据此原则,就可以设计RAM和ROM的扩展电路。.b,访问外部RAM的指令时序从图中可知:低8位地址622.扩展片外程序存储器的硬件电路例:扩展16K*8位片外程序存储器
EPROM的扩展电路.2.扩展片外程序存储器的硬件电路EPROM的扩展电路63用译码方法扩展4片27128的EPROM电路原理图.用译码方法扩展4片27128的EPROM电路原理图.64在图中,图中用2片8K的RAM来扩展。采线选法寻址。用一口线P2.7来寻址。
当P2.7=0时访问片(0),地址范围为6000H~7FFFH
当P2.7=l时访问片(1),地址范围为E000H~FFFFH图8–1116K片外数据存储器扩展电路3.外数据存储器的扩展.在图中,图中用2片8K的RAM来扩展。采线选法寻址。65P0.0~P0.7D0~D7A0~A7A8~A10P2.0~P2.2P2.7WRRDPSENCEWEOEALED0~D7Q0~Q7805174LS37328173888LEG2817与8051的接口电路4.扩展片外EEPROM的硬件电路EEPROM存储器既可断电保护数据,又可在线写入数据,具有SRAM和EPROM两者的优点,且引脚和读写方式与EPROM相近,只是写入时间较长,写入次数有限,适宜于断电后需要数据保护,数据变换不太频繁的场合。.P0.0~P0.7D0~D7A0~A7A8~A10P2.0~665.FLASH存储器的扩展
FLASH存储器是Intel公司于20世纪80年代后期推出的新型存储器,其主要的性能特点有:(1)快速整片电擦除,典型时间为1秒钟。(2)采用快速脉冲编程算法进行高速编程。(3)可擦/写10万次。(4)写入和擦除电压为12V±5%。(5)最大的存取时间为135ns。(6)先进的CMOS工艺,最大工作电流为30mA,备用状态下的最大电流为100µA。(7)命令寄存器的结构与微处理器/微控制器写入接口兼容,抗噪声能力强,允许±5%的电源噪声波动。(8)片内地址和数据锁存FLASHMEMORY的一个主要的确定就是只能进行整片或者分块擦除,不能按存储单元进行字节擦除,此外,FLASH存储器的写入速度比SRAM慢1~2个数量级。.5.FLASH存储器的扩展FLASH存储器67FLASH存储器的操作单片机对存储器的操作可以分为两种情况,一种是VPP引脚不加高压的情况,另一种是VPP引脚加高压的情况。当VPP引脚不加高压时,FLASH存储器相当于一个只读存储器EPROM,在这种情况下,可以通过控制线对FLASH进行的操作有读操作,备用状态,禁止输出和对Intel标识符进行操作。当在VPP引脚上施加12V±5%的高压时,单片机还可以对FLASH存储器进行擦除和编程操作。
.FLASH存储器的操作.68FLASH存储器的扩展举例:用一片28F256(32KB)FLASH存储器对8031单片机系统进行扩展作为外部数据存储器的电路连接图如图所示。.FLASH存储器的扩展举例:.69三、I/O口的并行扩展
单片机没有专门的I/O输入输出指令,扩展的I/O与外部RAM是统一编址,也就是说并行扩展的I/O口要占用外部RAM的地址空间,对扩展I/O口的访问,像对待外部RAM一样,CPU用MOVX指令与I/O口进行数据交流。1.用TTL芯片进行I/O口的扩展由于I/O输出是用:MOVX@DPYR,A或MOVX @Ri,A指令进行,指令通过P0口数据总线输出所需要的数据,此时的P0口并没有锁存功能,为了有稳定的输出,可以用简单的TTL或CMOS的锁存芯片把数据锁存输出。如下图:.三、I/O口的并行扩展.70例:将一个数据字节从74LS377输出,则执行下面程序段: MOV DPTR,#7FFFH ;地址指针指向74LS377 MOV A,#DATA ;将输出数据送A MOVX@DPTR,A ;输出数据对于输入,由于也是通过数据总线进行,输入时一定要加三态芯片,以免平时对数据总线的影响。CK为时钟输入端G为锁存允许.例:将一个数据字节从74LS377输出,则执行下面程序段:C71 对于常态数据的输入,只需采用8位三态门控制电路芯片即可。图8-13是用74LS244通过P0口扩展的8位并行输入口,图中,三态门由P2.6和RD相或控制,其端口地址为BFFFH。例:数据输入MOV DPTR,#0BFFFH ;指向74LS244口地址A14=0MOVXA,@DPTR ;读入数据74LS244是双4位三态输入缓冲器DRDP21G、2G为输出控制端. 对于常态数据的输入,只需采用8位三态门控制电路芯片即可。图722.用8155芯片进行I/O口的扩展(1)8155的主要功能:内部有2个8位,1个6位的并行I/O口,还带有256字节的RAM,一个14位的定时/计数器。
与8255相类似,I/O口和定时器的工作方式通过控制字来设定。其地址安排如下:CEIO/MA2A1A0选通端口CEIO/MA2A1A0选通端口01000控制口01100计数器低801001A口01101计数器高801010B口00XXXRAN单元01011C口.2.用8155芯片进行I/O口的扩展(1)8155的主要功73(2)8155的命令和状态字.(2)8155的命令和状态字.74(3)8155与单片机的接口电路P0.0~P0.7RSTP2.1P2.7ALERDWR8051AD0~AD7RSTIO/MCEALERDWRPAPBPC8155由右图可得各口地址为:控制口:7F00HA口:7F01HB口:7F02HC口:7F03H定时/计数器低8位:7F04H定时/计数器高8位:7F05HRAM地址范围:7E00H~7EFFH例:设AB为输出,C口为输入,则控制字为03H,初始化编程为:MOVDPTR,#7F00HMOV A,#03HMOVX@DPTR,A.(3)8155与单片机的接口电路P0.0~P0.7875四、串行扩展介绍单片机的外部串行扩展主要包括1-WIRE、I2C和SPI三种总线的扩展。1.1-WIRE总线结构1-WIRE总线结构在一根单总线上可以悬挂多个器件的总线,总线由主机控制,数据可双向传输。1-Wire单总线器件的硬件结构如右图所示。为了在单条传输线上能够双向传输地址、数据、控制信号,序列号接收发射电源单总线电源地实现并行传输同样的功能,总线只能采用特殊的接口协议,每次通信都要按规定的次序来传输地址、数据和控制信息。同时为了解决接收双方的同步,规定了信号双方传输时的时序和握手方式。.四、串行扩展介绍1.1-WIRE总线结构序列号接收发射电源单76对器件的地址和产品的识别,每个器件产品上都刻录了电子识别码—即产品的序列号。此序列号(ID)采用64位的二进制ROM代码,将个产品分开。具体的格式是:第一个字节是器件的家族代码;接着的6个字节是每个器件唯一的序列号;最后一个字节是前56位的CRC校验码。此外一般的产品还含有接收控制、发射控制和电源存储电路,可以直接从信号线上获取电源,而无须再接电源引脚。1-WIRE总线具有结构简单、成本低廉、节省I/O资源、便于总线扩展和维护等优点。单总线端口为漏极开路,要求外接一个约5k的上拉电阻以确保单总线的闲置状态为高电平,并要求主机或从机通过一个漏极开路或三态端口连接至该单总线,使到设备在不发送数据时释放单总线,以便总线被其他设备使用。.对器件的地址和产品的识别,每个器件产品上都刻录了电子识77单总线的数据传输通常以16.3kbit/s的速率通信,超速模式下,可设定传输速率为100kbit/s左右,一般用于对速度要求不高的应用系统中。单总线技术的作用距离一般达到200m,并允许挂上百个器件。2.1-Wire单总线器件的软件操作为了识别单总线上的不同器件,在软件的程序设计中,一般有以下步骤:(1)初始化命令(复位)
;(2)传送ROM命令(寻找匹配器件和器件内寻址;(3)传送RAM命令(读写口地址或单元内容)。除了搜索ROM命令和报警搜索命令例外,每次访问单总线器件必须严格遵守这3个步骤,如果出现序列混乱则单总线器件不会响应主机要求,在执行两者中任何一条命令之后,主机不能执行其后的功能命令时必须返回至第一步。.单总线的数据传输通常以16.3kbit/s的速率通78上述三种命令可分解位总线上的三种操作:(1)初始化(复位)(2)写0、1;(3)读0、1。每种操作都有自己时序的要求,软件设计中应保证按规定的时序要求进行编程。以下是三种操作的时序:主机发出低电平主机发复位脉冲480-960us等待15-60us
器件发响应脉冲60-240us电阻上拉激发低电平VCCGND1线总线图:复位时序.上述三种命令可分解位总线上的三种操作:主机发出低电平79写时隙时序图
主机写数据时,应先将数据线拉低1微秒以上,再写入数据(写“1”高,写“0”为低)。待主机写入的数据变化15~60微秒后,总线上的器件将对数据线采样。要求主机写入数据的时间保持在60~120微秒之间。两次写数据操作之间的间隙应大于1微秒。复位信号要求主机将数据线拉低并保持480~960微秒,再释放数据线,由上拉电阻拉高15~60微秒。然后再由被复位的器件发出低电平60~240微秒,就完成了复位操作。
.写时隙时序图主机写数据时,应先将数据线拉低80读时隙时序图读数据之前,主机应先将数据线拉低,再释放。总线上被读期间在数据线从高电平跳低后15微秒内将数据送到数据线上。主机在15微秒后读取数据线。.读时隙时序图读数据之前,主机应先将数据线拉低,再释放81以18B20测温芯片为例,下图是它的内部框图:64位ROM和一线端口存储和控制逻辑高速暂存器8位CRC生成器温度传感器高温触发器TH低温触发器TL配置寄存器供电方式选择
.以18B20测温芯片为例,下图是它的内部框图:存储和控制82跟一般的1-WIRE器件一样,有ROM和RAM操作命令.1.ROM的主要操作命令:读序列号命令(33H):读总线上DS18B20的序列号器件匹配命令(55H):对总线上DS18B20寻址搜索ROM命令(F0H):识别总线上多个器件的ROM编码跳过ROM(CCH):命令执行后,将省去每次与ROM有关的操作报警检测命令(ECH):搜索有报警的器件2.RAM的主要操作命令写入命令 (4EH):写上、下限值到DS18B20中读出命令 (BEH):从DS18B20读出9字节数据(其中有温度 值,报警值等)开始转换 (44H):启动温度变换无读存储器命令,读电源标志 (B4H):检测DS18B20的供电方式
.跟一般的1-WIRE器件一样,有ROM和RAM操作命令.832、I2C总线结构及其扩展方法(1)总线系统结构SDASCLSDASCLSDASCLVCC主机从机1从机2SCLSDA
I2C总线用两跟双向传输线SDA和SCL进行全双工数据传送,可以并行扩展多个外围器件。总线采用了器件地址硬件设置,无须用外围器件片选信号方式的寻址方法。
总线平时通过上拉电阻接到电源,在空闲情况下,2根线都处于高电平。
.2、I2C总线结构及其扩展方法SDASCLSDA84(2)总线的四种状态和数据传输时序总线状态SCLSDA总线不忙高电平高电平开始传送数据高电平停止传送数据高电平
数据传送SCL低电平时更改数据,用SCL的上升沿读取数据,在SCL高电平时数据不能变动I2C数据传送时序.(2)总线的四种状态和数据传输时序总线状态SCL85(3)数据传输格式由于数据和地址信号都用一根数据线SDA来传输,何时传输地址?什么时候是主器件读?什么时候是主器件写?如何保证传输的正确?必须有一个共同接受的规定:①.主控器件写操作主器件向被控器件发送n个数据的数据格式如下:起始信号S送7位地址和一位(为”0”)传送方向SLAW应答信号A发送数据DATA1应答信号A……发送数据DATAn-1应答信号A发送数据DATAn非应答信号A/A’停止信号P②主控器件读操作主器件向被控器件读n个数据的数据格式如下:起始信号S送7位地址和一位(为”1”)传送方向SLAR应答信号A接收数据DATA1应答信号A……接收数据DATAn-1应答信号A接收数据DATAn非应答信号A/A’停止信号P.(3)数据传输格式起始信号送7位地址和一位(为”0”)传送86③主控器读写操作
主控器读写操作是指主控期间在一次数据过程中需要改变数据传送方向的操作。原则上此过程中的读写操作分别与上述方法一样,只是在数据传送方向改变后,必须由主控器件发出从新启动信号。(4)串行EEPROM的扩展技术串行EEPROM主要的型号如下表:型号容量AT24C01128X8AT24C02256X8AT24C04512X8AT24C081024X8AT24C0162048X8SDAVCCSCLA0TESTA1VSSA256748123NCNCSDAVCCSCLTESTNCNCVSSA0NCA1NCA219104678141312112351)引脚排列AT24系列芯片有8脚和14脚2种,其中:SDA:数据线SCL:时钟线TEST:测试线, 平时接地..③主控器读写操作型号容量AT24C01128X8AT287
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夫妻保姆合同协议书范本
- 白酒合同转让协议
- 土地借用合同协议
- 离婚协议的合同生效时间
- 充电桩安装租赁合同协议
- 工程联营协议合同
- 金蝶公司合同协议
- 承包协议书合同格式要求
- 医美合伙人协议合同
- 车位购买合同协议
- 中考物理复习《浮力液面高度变化量计算方法与技巧》
- 2024年同等学力申硕英语考试真题
- 电子商域视觉设计应用规范手册
- 品牌经理招聘笔试题及解答(某大型国企)2025年
- 四年级语文下册 第26课《宝葫芦的秘密》同步训练题(含答案)(部编版)
- 幼儿园大班班本课程绳彩飞扬
- GB/T 44625-2024动态响应同步调相机技术要求
- 大学物理:电磁感应与电磁场
- 2024年青岛中小学教师招聘真题
- 2024年四川省眉山市中考地理+生物试卷(含答案解析)
- 第27课 改革开放与建设中国特色社会主义【课件】-中职高一上学期高教版(2023)中国历史
评论
0/150
提交评论