




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章常用I/0接口芯片9.1可编程并行接口芯片8255A9.2可编程串行通信接口芯片8251A9.3可编程定时/计数器8253/82549.4键盘/显示控制器82799.5DMA控制器8237A9.6D/A转换接口9.7A/D转换接口
各种I/O接口芯片在使用过程中,都存在一个与CPU之间的连接问题,端通常接地址译码器的输出,以图9-1为例说明。它就有两个端口;如果没有地址线,那么该芯片就只有1个端口。有了端口地址,CPU才能对该I/O接口芯片实施读/写操作。9.1可编程并行接口芯片8255A图9-1片选与端口地址
任何一个I/O接口芯片位于CPU与I/O设备之间,它们的引脚必然会被分为3部分:(1)与CPU的连线为地址线、数据线和控制线;(2)与I/O设备的连线为数据线和控制线;(3)电源、地和时钟信号等。图9-2I/O接口芯片引脚9.1.1内部结构和引脚功能
1.8255A的基本性能
8255A有如下一些基本性能:8255A是一个有3个数据口、1个控制/状态口的8位并行输入输出接口芯片;8255A能为80系列CPU与I/O设备之间提供兼容TTL电平的接口,能接通键盘、打印机、步进电机、显示器、A/D和D/A转换器等等;8255A原则上适用于一切需并行输入输出的I/O设备;8255A设置了方式0、方式1、方式2等3种不同的工作方式,可用于无条件传送、查询传送、中断传送,采用哪种传送方式可用控制字设置;8255A有两个控制字供编制初始化程序使用,使用OUT指令从控制寄存器端口写入,有一个状态字可供查询,使用IN指令从C端口读出;对8255A的4个端口读/写操作实质上就是对8255A所接I/O设备的操作。
2.8255A的内部结构
8255A的内部结构和引脚如图9-3所示,内部由三部分组成:
(1)4个8位端口,分别为PA、PB、PC和CWR。PA、PB、PC是3个8位数据端口,其中,PA口由一个8位数据输入锁存器和一个8位数据输出锁存/缓冲器组成;PB口由一个8位数据输入缓冲器和一个8位数据输入/输出锁存/缓冲器组成;PC口由一个8位数据输入缓冲器和一个8位数据输出锁存/缓冲器组成。
(2)工作方式控制电路,控制PA口、PB口、PC口的工作方式。A组有方式0、1、2三种工作方式;B组有方式0、1两种工作方式。
(3)数据总线缓冲器和读/写逻辑。数据总线缓冲器是一个三态双向8位缓冲器,用作8255A与CPU数据总线的接口。图9-38255A的结构框图和引脚图(a)内部结构;(b)引脚
3.8255A引脚的功能:片选信号。输入低电平有效,常接地址译码器输出或1根地址线。
A1、A0:地址信号,输入。内连8255A的片内寄存器,外接CPU地址线,和一起决定了8255A的4个端口地址。
D7~D0:双向三态数据线。常接CPU低8位数据总线,用于传送8位二进制数据、控制命令字和状态字。
RD:读。低电平有效,输入控制命令字,CPU执行IN指令时起作用,将8255A的3个端口PA、PB、PC的数据或端口PC的状态信息读至CPU。WR:写。低电平有效,输入控制命令字,CPU执行OUT指令时起作用,将AL中的数据送到PA、PB、或PC;将AL中存放的控制命令字从CWR口写入。
RESET:复位。高电平有效,输入信号线。它能置PA、PB、PC为输入方式;清除控制寄存器、输出寄存器和状态寄存器;屏蔽中断申请;使连接外设的24条信号线呈高阻悬浮状态。在使用工作方式控制字后可结束复位状态,进入用户设置的工作方式。
PA7~PA0:A口输入输出线,双向口。
PB7~PB0:B口输入输出线,双向口。
PC7~PC0:C口输入输出线。工作于方式0时,C口为双向数据口;工作于方式1或2时,C口为控制/状态口。9.1.24个端口和端口地址表9-18255A的端口地址【例9-1】电路如图9-4所示,计算端口地址。图9-4例9-1图
解因 ,只有当A15~A3=8191=1111111111111B且A0=0时才为0,故端口地址为1111111111111A2A10。9.1.32个控制字和1个状态字
1.工作方式控制字
该字规定了PA、PB、PC的工作方式,格式为:【例9-2】8255A端口地址44H~47H,A口工作于方式0,外接键盘;B口工作于方式1,外接显示器,C口上半部作输出控制线用,下半部bit3作输入线用。试编制初始化程序。
解工作方式控制字为10010101=95H。初始化程序为:MOVAL,95H;将控制字送入AL内OUT47H,AL;用OUT指令从CWR口写入2.PC口按位置位/复位控制字该字用于将PC口某一位置“0”或置“1”,格式为:【例9-3】通过8255A的PC3位向外输出一个正脉冲信号,设端口地址为300H~303H。
解每送一个控制字,将PC3置位或复位一次,就获得高低电平交替的正脉冲。
3.8255A的状态字在8255A工作时,CPU可以通过读PC的内容来了解各端口的工作状态,这时PC的内容称为状态字。工作方式0没有状态字,工作方式1和工作方式2的状态字是不同的。9.1.4工作方式0及应用
1.工作方式0的特性工作方式0又叫基本输入/输出方式,其特点如下:
(1)适合于无条件传送和查询传送,无中断功能,不适合于中断传送。
(2)输入只有缓冲功能无锁存功能,输出可以锁存。
(3)1片8255A可以分成4个独立的数据端口使用,这4个端口是两个8位端口PA、PB,两个4位端口PC7~4、PC3~0。使用时不分组,组合使用可以有24=16种不同的组合。(4)4个端口的每一个都能用I/O指令读/写数据,注意PC口的高4位是一组,低4位是另一组,不能把4位中的某位作输入而另一两位作输出。如果某位作输入(出)数据用,则4位都作输入(出)数据用。
(5)端口各引线之间无固定时序关系,由用户按数据传送要求决定I/O操作过程。
(6)工作方式0无状态字。
2.并行打印机接口用例
1)打印机接口标准CentronicsI/O接口芯片8255A外接打印机,是通过打印机接口标准实现的。并行接口的点阵式打印机普遍遵守Centronics并行标准,是国际公认的工业标准8位并行接口,共36芯连线,引脚编号如表9-2所示。表9-2并行接口标准Centronics的信号线电源和编号图9-5Centronics的工作时序2)方案选择图9-6工作方式0连接举例9.1.5工作方式1及应用
1.工作方式1的特点工作方式1又叫选通输入/输出方式,其特点如下:
(1)适合于查询传送和中断传送,不适合无条件传送。
(2)输入和输出均有缓冲锁存功能。
(3)PA、PB为数据口,PC有两条线为数据口,另外6条线作控制/状态口。(4)PC作控制/状态口的6条线是CPU、8255A、I/O设备之间的联络信号线,各联络线之间时序关系固定,数据传输严格遵循时序要求。
(5)有输入和输出两种不同格式的状态字,两种状态字可以作为程序或中断申请使用,需要使用IN指令从PC口地址读出到AL中。
(6)PA、PB在作输入和输出使用时的引脚分配和时序都不相同,下面分别叙述。2.PA、PB均为输入时的引脚与时序图9-7工作方式1时PA、PB作输入1)PA端口作输入
PA7~PA0:输入8位数据用,与之配套使用的有PC口5条线。
STB:从I/O设备来的输入选通信号。当它为低电平时表示I/O设备告诉8255A有8位数据要送到PA口的输入缓冲锁存器,高电平时表示无数据送来。
IBF(InputBufferFull):从8255A送到I/O设备的“输入缓冲器满”信号。当它为低电平时表示8255A通知I/O设备可以把8位数据从A口送进来,这时PA的输入缓冲器空;当它为高电平时通知I/O设备不要送数据,这时PA的输入缓冲器满,数据还占着输入缓冲器,没有被CPU取走。INTR:从8255A向CPU提出中断申请的信号。当它为低电平时无中断申请;为高电平时有中断申请。在端口内有一个与门电路,中断申请信号INTRA(PC3)=INTEA?IBFA(PC5),与门输入端决定了中断申请在什么情况下发出,只有当输入缓冲器满,即IBFA=1,且中断允许信号INTEA=1时,才申请中断。
INTEA(InterruptEnablePortA):端口中断使能信号,无外引脚。信号特征与PC4状态一致,不受PC4外接的STB状态影响,只能通过写入PC口按位置位/复位控制字设置。PB端口作输入PB7~PB0:输入8位数据用,与之配套使用的有PC口3条线。3)工作方式1输入时的工作时序图9-8工作方式1输入时序表9-38255A工作方式1输入时的时序3.PA、PB均为输出时的引脚与时序图9-9工作方式1时PA、PB作输出
有几种信号说明如下::8255A的输出缓冲器满。当它为低电平时表示CPU来的数据已在输出缓冲器中,8255A通知I/O设备来取数。:I/O设备的响应信号。当它为低电平时表示I/O设备已知道8255A把数据准备好了。它是对OBF信号的响应。INTR:8255A向CPU发出的中断申请,高电平有效。端口内有一与门电路,INTRA(PC3)= (PC7),只有在输出缓冲器空,CPU没有送数据来,OBF=1,且中断允许INTEA=1时,才会有申请送至CPU。而INTEA和PC6的状态相同,但不受ACK信号的影响,仅由PC按位置位/复位控制字决定。图9-10工作方式1输出时序表9-48255A工作方式1输出时的时序
4.工作方式1的状态字工作方式1的状态字有输入操作和输出操作两种不同的格式,如图9-11所示。图9-11工作方式1的状态字
状态字通过INAL,PORTC读取。指令中PORTC是PC的端口地址。从PC读出的状态字和PC端口的外部引脚无关。例如输入操作,引脚PC2和PC4是选通联络信号STB;状态位PC2和PC4却表示中断允许信号INTEB和INTEA。又如输出操作,作为引脚使用的PC2和PC6表示响应联络信号ACK;状态位PC2和PC6却表示中断允许信号INTEB和INTEA。输入操作和输出操作状态字相同的地方是:高5位表示A组的状态,低3位表示B组的状态。当8255A处于查询方式工作时,只查INTR是复位还是置位,或查IBF或位OBF。状态字中有INTR位,表明8255A可提供查询是否申请了中断,但不能提供中断向量。如果微机系统使用向量中断,则需用中断控制器,如8259A等。若想INTEA=1,那么在PA口作输入用时就应置PC4=1,相应程序为:MOVDX,PORT_CWRMOVAL,00001001B ;置PC4=1OUTDX,AL
在PA作输入用时要想禁止中断,只需用程序将PC4置成“0”。如果要想使INTEA=1,但PA作输出使用,这时就应置PC7=1,相应程序为:MOVDX,PORT_CWRMOVAL,00001111B ;置PC7=1OUTDX,AL5.并行打印机接口用例图9-12工作方式1连接举例9.1.6工作方式2及应用
1.工作方式2的特点工作方式2仅限于PA端口,又称为双向选通输入/输出方式,它有以下特点:适合于查询传送和中断传送,不适合于无条件传送。2.引脚与时序图9-13工作方式2的引脚图9-14工作方式2的时序图
3.状态字工作方式2的状态字由8位二进制数组成,高5位用于A组,处于工作方式2;低3位用于B组,处于工作方式1。工作方式2的状态字格式如图9-15所示,图中有输入操作用字和为输出操作用字,只因B组工作方式1的输入/输出操作不同,使得方式2的状态字也有两种格式。图9-15方式2的状态字
4.并行接口举例两个微机并行传送100字节的数据,主机8255A工作在方式2(中断方式);从机8255A工作在方式0(查询方式)。电路设计如图9-16所示。图9-16工作方式2连接举例9.2可编程串行通信接口芯片8251A
信息交换就是通信。微机与微机之间、微机与外部设备之间都存在如何通信的问题。通信方法有并行和串行两种,如图9-17所示。图9-17通信方法(a)并行通信;(b)串行通信9.2.1串行通信特征和传输协议
1.串行通信特征按数据传送方向划分,串行通信可划分成单工、半双工和全双工等3种不同的形式,如图9-18所示。图9-18通信方式(a)单工;(b)半双工;(c)全双工
2.串行通信协议
1)异步通信异步通信中的1帧是一个由4部分组成的字符数据,先有一个起始位“0”表示数据开始;随后是5~8位二进制数表示数据自身,且低位在前,高位在后;接着是可省略的奇偶校验位1位;最后是一个停止位“1”。图9-19给出了字符数据的11位帧格式和字符Q的10位帧格式,图中所画就是字符Q的波形。图9-19异步通信的1帧字符(a)11位帧格式;(b)字符Q的10位帧格式2)同步通信同步通信中的1帧由若干个字符组成。1帧数据格式如图9-20所示。由于数据块传送时每个字符数据无起始和停止标志,1帧可以传送多个数据,因此同步通信的速度高于异步通信,但因需要确定同步字符(使用2个同步字符的称为双同步,使用一个字符的称为单同步),相应硬件电路也复杂一些。图9-20同步通信的1帧数据
3.波特率和发送接收时钟串行通信数据传输速率指每秒传送的二进制数位数(bit/s),又称为波特率,1波特(Baud)=1位/秒(1bit/s)。例如异步传输速率为每秒100字符,每字符由1个起始位、8位ASCII数据位和一个停止位组成,则传输波特率为100字符/s×10位/每字符=1000波特
4.传输距离串行通信的有效距离(波形不发生畸变)与传输速率和传输线电气特性有关。传输距离随传输速率的增大而减小。不同的传输距离,需要不同的传输通道配置。图9-21画出了3种不同距离时的通道配置。图9-21传输通道配置(a)近距离传输;(b)中距离传输;(c)远距离传输
5.RS-232C串行通信接口标准
RS-232接口标准是美国EIA(电子工业联合会)与BELL等公司于1969年一起开发的通信协议,它适合于传输速率为0~20000波特的通信范围,使用电缆传输能连接的最大物理距离为15m(50英尺)。该标准规定了信号线、连接器的功能以及电气特性。
1)RS-232C接口信号
EIARS-232C标准规定了数据终端和通信设备之间的接口信号。所谓“发送”和“接收”都是从数据终端设备角度定义的。该标准有25线插件和9线插件两种,如图9-22所示,实用中以9线插件为多。图9-22RS-232C接口(a)25线插件;(b)9线插件图9-23信号线连接2)电气特性和电平转换电路
EIARS-232C对电气特性、逻辑电平作了如下规定:①在TXD和RXD数据线上有逻辑“1”(MARK)=-3~-15V,逻辑“0”(SPACE)=+3~+15V;②在RTS、CTS、DSR、DTR、DCD控制线上有+3~+15V为信号有效(接通、ON状态,正电压),-3~-15V为信号无效(断开、OFF状态,负电压),在-3~+3V之间的电压无意义,低于-15V或高于+15V电压也无意义,实际操作中应保证电平在±(3~15)V之间。
图9-24画出了MC1488、MC1489的内部结构和引脚,其中MC1488的2、4、5、9、10、12和13脚接TTL电平输入;3、6、8、11脚接EIARS-232C输出。MC1489的1、4、10、13脚接EIA输入;3、6、8、11脚接TTL输出。图9-25画出了TTL器件8251与EIA插接件RS-232C之间的连接。前者要求TTL电平,后者要求EIA电平,RS-232C所有的输入、输出信号分别经MC1488和MC1489转换后才能进入连接器或从连接器送进来。MAX232是一种新型的RS-232C转换芯片,用于完成TTL和RS-232电平的双向转换,仅需+5V单一电源和外接5个电容便能工作,其内部含有电压倍增电路和转换电路,使用时可连接两对收发线,把通信接口TXD(发送)、RXD(接收)端的TTL电平0~5V转换成RS-232CEIA电平(-10~+10V)。图9-24电平转换器图9-25转换连接图9.2.28251A的内部结构和引脚功能
8251A是一种可用于异步或同步串行通信的可编程接口芯片,适合于异步或同步传递。
1.8251A的内部结构及工作过程
8251A的结构和引脚分别如图9-26和图9-27所示,内部由5个主要部分组成:接收器、发送器、调制控制、读写控制以及系统数据总线缓冲器。各部分由内部总线实现相互之间联系和通信。图9-268251A的内部结构
图9-278251A的引脚表9-58251A读写控制功能表
2.引脚
CS:片选信号。低电平有效,常接地址译码器的一根输出线。
C/D:控制/数据线。常接CPU的一根地址线,例如A1或A0。和C/的接法决定了8251A有两个端口以及两个端口地址。
D0~D7:双向三态数据线。与CPU的D0~D7相连。
RD(Read):读数据信号。低电平有效,输入。当CPU要从8251A读取数据或状态字时产生此信号并送达8251A。WR(Write):写数据信号。低电平有效,输入。当CPU要向8251A写入数据或控制字时产生此信号并送达8251A。8251A的读写时序是:首先,CS、C/D有效以选中8251A芯片和相应的端口;然后,CPU发出RD、WR(读、写)控制命令。
TXRDY(TransmitterReady):发送器准备好信号。用于收发联络,高电平有效。有效时表明发送器已准备好,能够接收CPU送来的数据字符。当CPU已向8251A送来一个数据后,TXRDY自动为零。当CTS=0,TXE=1时允许8251A发送数据。该信号在查询方式工作中是一个状态信号,CPU通过状态寄存器的D0能检测到;该信号在中断方式中是中断申请信号。TXE(TransmitterEmpty):发送器空信号。高电平有效时表示发送操作已结束,说明发送器中的数据已发送出去。
RXRDY(ReceiverReady):接收器准备好信号。高电平有效时表示8251A已经从它的串行输入端接收了一个字符,并且已完成格式变换,等CPU来取。当CPU从8251A读了一个数据后,该信号自动复位。该信号在查询方式中作联络信号用;在中断方式中作中断申请信号用。SYNDET(SynchronousDetection)/BD(BreakDetection):同步检测/间断检测。
RESET:复位信号。接CPU复位线,要求复位高电平持续6个时钟周期以上。
DTR:数据终端准备好信号,输出。可用工作命令字的D1置1使DTR=0有效。
RTS:请求发送信号,输出。由8251A送至MODEM,表示要求发送。可用工作命令字的D5置1使RTS=0有效。
DSR:数据装置准备好信号,输入。表示调制器已准备好,用状态寄存器D7位检测。
CTS:允许传送信号,输入。是MODEM对8251A的RTS信号的响应。TXD:发送器发送数据线。
RXD:接收器接收数据线。
TXC(TransmitterClock):发送器输入时钟。用于控制8251A发送字符的速度。同步方式下,TXC的频率与数据位速率相同。异步方式下,TXC的频率既可以等于波特率,也可以是波特率的16倍或64倍。
RXC(ReceiverClock):接收器输入时钟。频率约定与TXC相同。实际应用中,把TXC和RXC连接一起,使用波特率发生器作同一个时钟源。CLK:输入时钟线。为内部电路提供定时。同步方式下,CLK的频率要大于接收器或发送器输入时钟频率的30倍;异步方式下,CLK的频率要大于接收器或发送器输入时钟频率的4.5倍。CLK的周期要在0.42~1.35μs范围内。
VCC:电源,+5V。
GND:接地。9.2.32个端口、2个控制字和1个状态字
1.8251A的2个端口及端口地址
C/D为低电平时选中的是数据口,C/为高电平时选中的是控制/状态口。
【例9-4】8251A的端口地址为308H、309H。设控制字为40H,已放在AL中。状态字为56H,执行下列程序段后,AL=?
2.8251A、CPU、外设之间的连接
8251A、CPU、外设(MODEM)之间的典型连接如图9-28所示。8251A与CPU之间并行传送数据;8251A与MODEM之间串行传送数据。图9-288086、8251A和外设连接
3.2个控制字
1)工作方式字工作方式字能让8251A选择异步方式还是同步方式工作,并可按其工作方式指定帧数据格式。该字8位二进制数被分为四组,每组两位,格式如下:2)工作命令字工作命令字的格式如下:3)工作方式和工作命令字的写入工作方式字只能写入1个,工作命令字可写入多个,写入顺序如图9-29所示。图9-29从控制/状态口写入工作方式字和工作命令字
4.1个状态字状态字是8251A能否进行发送或接收的状态,它位于状态寄存器中。格式如下:9.2.4初始化编程举例
【例9-5】甲乙两台微机进行串行通信,设甲机发送,乙机接收。要求把甲机上的100个数据传送到乙机,采用异步方式,波特率为2400Baud,字符长度8位,停止位2位,波特率因子16,无校验。CPU与8251A之间用查询方式交换数据。端口地址为308H、309H。
解近距离传送直接相连,不用MODEM。两台微机之间使用TXD、RXD和SG三根线连接。8251A作为接口的主芯片,与波特率发生器、RS-232C、TTL电平转换电路、地址译码电路等就构成一个串行通信接口,如图9-30所示。接收和发送程序采用查询I/O方式,各自编写,包括8251A初始化、检查状态字的D5~D3位确定是否有错、检查发送D0/接收D2的状态是否为1,为1时表示准备好,允许发送/接收1个字节。图9-30双机串行通信接收程序段如下:9.3可编程定时/计数器8253/82549.3.18253的内部结构和引脚功能
8253-5和8254-2是24脚双列直插芯片,使用单一+5V供电,输入输出与TTL电平兼容。它的内部结构和引脚分配如图9-31所示。图9-318253-5/8254-2
1.内部结构
1)数据总线缓冲器数据总线缓冲器是一个8位的三态双向缓冲器,作用是将8253与CPU数据总线相连。
2)读写控制逻辑读写控制逻辑接收CPU送来的地址和读写控制信号,经过逻辑组合,完成对各端口的选择和各部分的控制。3)控制字寄存器用于存放控制字。控制字决定计数器的工作方式,该寄存器只能写不能读。
4)3个独立的计数通道
3个计数通道分别命名为计数器#0、计数器#1、计数器#2。3个通道彼此完全独立,每个通道的内部结构又完全相同,由1个16位减1计数器、1个16位计数初值寄存器、1个16位输出锁存器组成,如图9-32所示。每个通道对外引线除16位数据线和内部总线相连外,还有一条时钟输入线CLK、一条门控制线GATE、一条输出线OUT。图9-32计数通道
2.引脚
CS:片选信号,输入。低电平有效,接地址译码器输出。
A1、A0:端口地址选择信号,输入。接CPU两根地址线,例如接A1A0。按其取值选择8253/8254的3个计数器端口和1个控制寄存器端口。
D0~D7:双向三态数据线,与CPU的D0~D7相连,用于传送CPU向8253/8254写入的控制字和读写的字节数据。
RD:读信号,输入。低电平有效,由CPU发出的对8253/8254读命令。WR:写信号,输入。低电平有效,由CPU发出的对8253/8254写命令。
CLK:时钟信号,输入。每一个通道都有一个独立的时钟输入,分别为CLK0、CLK1、CLK2。其功能是作计数脉冲使用,每输入一个CLK脉冲,计数值减1。
GATE:门控信号,输入。每一个通道都有一个独立的门控输入端,分别为GATE0、GATE1、GATE2。其功能是禁止、允许或启动计数过程。8253/8254有6种不同的工作方式,每种方式下的GATE控制作用不同。OUT:计数器输出信号。每一个通道都有一个独立的信号输出端,分别为OUT0、OUT1、OUT2。当计数值为0时,OUT输出一个负脉冲,表示定时/计数已到。它可用于外部定时启动I/O设备某些操作或开关启停,也可表示计数过程完结,还能作中断申请信号使用。9.3.24个端口和1个控制字
8253/8254内部有4个端口:计数器#0、计数器#1、计数器#2、控制字寄存器(CWR)。前3个为数据口,用于给16位计数器输入初值和读出16位减1计数器当前值,如果是字操作,则读写时先低字节后高字节。后1个为控制口,用于写方式控制字。4个端口有4个地址,从小到大按计数器#0~#2、CWR口顺序排列。表9-6给出了4个端口的操作。表9-68253/8254读写操作和端口地址8253/8254只有1个方式控制字,用于规定该芯片处于哪种工作方式、如何赋予计数初值、是否要读取当前计数值等等。方式控制字格式如下:【例9-6】使用CPU的低8位地址线选择I/O端口,地址译码器与8253连接如图9-33所示。要求对计数器1初始化编程,工作于工作方式2,计数值二进制数4A70H。图9-338253与CPU相连
解8253端口地址为010000A1A0,或计数器0地址为40H,计数器1为41H,计数器2为42H,CWR口为43H。计数器1的方式控制字为0111×100,初始化程序段如下:【例9-7】要求读出并检查2号计数器当前值是否全为“1”,假设计数器计数值只有低8位,高8位全为0,端口地址为304H~307H。程序段为:9.3.36种工作方式
1.方式0——计数结束时中断方式方式0有3个特点:
(1)写入计数初值后,计数器就开始减1计数,OUT变为低电平。当计到零时,OUT输出高电平。如果重新写入计数值,计数器又立即开始减1计数,OUT再次变低。
(2)门控信号GATE=1时允许计数器工作;GATE=0时禁止计数器计数,计数值不变。
(3)计数过程中,若未计到零时又重新写入新的计数值,则按新值重新计数。图9-34画出了包含以上3个特点的方式0时序。图9-34方式0时序
2.方式1——程序可控单稳方式方式1有3个特点:
(1)写入计数初值后,计数器不会立即开始计数,必须要等到GATE=1后的下一个CLK下降沿到来才开始计数。计数开始,OUT输出低电平;计满到0,OUT输出高电平。从OUT端输出的单稳负脉冲,其脉冲宽度等于计数器初值乘以CLK输入时钟脉冲周期。
(2)GATE成为计数器的触发信号,每触发一次,计数器输出一个负脉冲。如果计数过程中未计满到0,GATE出现负脉冲,则计数器将重新装入初值进行减1计数。(3)在计数过程中,若未计到0时重新写入新的计数值,则计数器不理睬新写入计数值,仍然按原计数过程进行下去,直到计满为0。如果没有触发脉冲出现在GATE处,则计数器仍不理睬新写入的计数值,只有当GATE出现触发信号,才按新写入计数值减1计数。图9-35画出了含有3个特点的时序。
3.方式2——分频方式方式2有3个特点。图9-36画出了包含如下3个特点的时序:写入计数初值后,下一个CLK时钟脉冲到来可以计数;计满到1,OUT输出低电平;计满到0,OUT输出高电平。可见方式2具有装入初值n能实现n分频的功能。GATE=1允许计数,GATE=0禁止计数。计数期间GATE由1变为0,停止计数。计满到0,自动装入原计数初值重新开始计数,计数过程中不接收新装入的计数初值。图9-36方式2的时序
4.方式3——发生方波方式方式3有3个特点。图9-37是包含3个特点的时序:写入计数初值后,下一个CLK时钟脉冲到来就可以计数。计到一半时,OUT输出低电平;计满到0,OUT输出高电平。可见方式3能产生一定频率的方波,方波的频率由计数初值决定。GATE=1允许计数,GATE=0禁止计数。计数期间GATE由1变为0,停止计数。计满到0后,自动装入原初值重新开始计数。计数过程中不接收新装入的计数初值。下一个输出周期开始时,会接收新的初值进行计数。图9-37方式3的时序
5.方式4——软件触发的选通信号方式方式4有3个特点:
(1)写入计数初值后,过一个时钟周期开始计数。计数到0时OUT变为低电平,再过一个时钟周期,OUT又恢复成高电平。这个负脉冲可作为选通信号使用。如果输入新的计数值,计数器又重新计数。
(2)当GATE=1时允许计数,GATE=0禁止计数,输出电平保持不变。只有计数到0,才会产生选通负脉冲输出。(3)计数时写入新的初值,下一个时钟周期到来,将把此数送入执行单元,开始新的计数过程。如果写入计数值是两个字节,则当前计数过程不受第一个字节影响。第二个字节写入后的下一个时钟周期,计数器按新计数值开始新的计数过程,这一过程称为软件再触发。图9-38画出了包含以上3条特点的时序。图9-38方式4的时序
6.方式5——硬件触发选通方式方式5的3个特点如下:
(1)写入了计数初值后,计数器并不计数,而必须有门控信号GATE=1在下一个CLK开始计数。计满到0时,OUT输出一个宽度为一个时钟周期的负脉冲,它用于选通脉冲。
(2)GATE的上升沿用于触发计数。在计数过程中,若GATE端又出现上升触发,则计数器在下一个时钟周期重新赋初值计数,直到减为0为止。这就是门控触发,也就是指硬件触发。(3)在计数过程中写入新的初值,如果没有触发脉冲,那么计数过程不受影响。以后触发将按新的初值开始计数。如果在计数过程中写入新的计数值,并且计数结束前又受到GATE触发,则在下一个时钟周期到来后,按新的计数初值开始计数。含有上述3个特征的时序图如图9-39所示。图9-39方式5的时序
7.8253在PC/XT中的使用
PC/XT机中的8253连接图见图9-40。8253在该机作为定时器使用,4个端口地址分别为40H~43H。时钟信号由8284时钟发生器提供,频率为2.385MHz,经过D触发器二分频后,得到1.19MHz的时钟信号,送至8253的三个计数器的CLK输入端。GATE0和GATE1都接在+5V上,因此计数器0和计数器1总处于允许计数的状态。图9-40PC/XT中的82539.4键盘/显示控制器82799.4.18279的内部结构和引脚图9-41Intel8279内部结构和引脚8279的40条引脚按功能分成4组,分别为与CPU的连线、与键盘的接口线、与显示器的接口线和电源线。
CS:片选输入线。低电平有效,接地址译码器输出。
A0:端口选择输入线。A0取值0和1分别选择8279两个端口。为0时选中数据口,用于8279和CPU交换数据;为1时选中控制/状态口,用于CPU写入控制命令字和读取8279的状态。
D0~D7:双向三态数据线。传送数据控制字和状态字。
RD:读控制线,输入。低电平有效,传送CPU的读命令。
WR:写控制线,输入。低电平有效,传送CPU的写命令。RESET:复位线,输入。来自于CPU或外界复位电路,正脉冲复位。
CLK:系统时钟线,输入。由CPU或8282时钟发生器输入作8279内部定时使用。
IRQ:中断申请线,输出。传感器RAM状态变化时,输出高电平申请中断。
SL0~SL3:扫描信号线,输出。是键盘的行扫描信号或数码显示器的位选信号。8279的工作方式有编码方式和译码方式。编码方式工作时SL0~SL3形成4位编码,输出24种编码正脉冲。译码方式工作时从SL0~SL3依次输出负脉冲。
RL0~RL3:回馈信号线,输入。与键盘列线一对一连接。8279输出扫描信号后,就能从RL0~RL3自动接收到回馈信号,由回馈信号可以断定哪些键被按下。SHIFT:移位信号线,输入。和CNTL/STB连用。
CNTL/STB:控制/选通信号线,输入。键盘方式中键的定义由CNTL/STB、SHIFT和闭合键的参数决定。8279支持64键键盘,配合SHIFT和CNTL/STB的4种编码,可使键定义达到256个。选通输入方式中CNTL/STB起选通功能,允许数据进入FIFO。
SL0~SL3:显示器位选信号线。也是键盘扫描输出线。
OA0~OA3,OB0~OB3:两组8根数据输出线。输出显示器段码。与位选输出SL0~SL3同步,实现分时数据显示。
BD:消隐信号线,输出。低电平有效,用于消去显示时切换引起的晃动。9.4.28种键盘工作方式和4种显示方式表9-78279的3类8种键盘输入方式表9-88279的1类4种显示器输出方式9.4.32个端口、8个控制字和1个状态字
A0=0的端口为数据口,用于接收来自键盘的输入字节数据或输出到显示器的输出字节数据,输入和输出分别使用IN指令和OUT指令完成:
扫描传感器方式或选通方式中,输入数据为RL7~RL0的输入状态;键盘扫描方式中,发出读FIFO命令后,从数据口读入数据为:D2~D0:指示输入键所在的列号RL7~RL0的计数值。
D5~D3:指示输入键所在的行号SL3~SL0的计数值。
D6:引脚SHIFT的状态。一般在SHIFT上接一个按键作上、下挡控制键。
D7:引脚CNTL的状态。一般在CNTL上接一个按键与其它键联用作特殊命令键。
A0=1的端口为控制/状态口,用OUT指令写入控制字,IN指令读取8279的状态:8279共使用8个控制字,每字的高3位D7D6D5为特征位,从一个控制端口写入时就可以使用特征位加以区别。8个控制字如表9-9所示。这些控制字是由CPU送到数据总线以后,在CS=0,A0=1,WR上升沿送入8279控制寄存器的,在编程时使用一条OUT指令便能完成。表9-98279的控制字表9-98279的控制字8279有1个状态字,仅适用于键盘输入和选通输入方式检查FIFO,格式如下:D2~D0:FIFORAM中字符的个数。取值为000~111。
D3:FIFORAM满。D3=1表示FIFORAM已满。
D4:FIFORAM空。D4=1表示FIFORAM内无字符。
D5:FIFORAM溢出。如果FIFO已满时再送一个字符,则D5=1。
D6:传感器信号结束/特征位。
D7:显示无效特征位。DU=1表示显示无效,此时不可对显示RAM写入数据。9.4.4连接键盘和数字显示图9-428279键盘和显示器8279的编程须编制3个程序段:初始化、键盘服务程序和显示器服务程序。
8279虽然有8个控制字,但是在初始化程序中只需要写入3个:
(1)清除控制字。考虑到应允许清除显示器并将FIFO和RAM复位或清零,该字为0D1H。
(2)设置键盘和显示方式控制字。设显示16位右边输入,键盘用N键互锁编码扫描,则该字为1AH。
(3)设置时钟频率控制字。设内部时钟频率为100kHz,CLK输入时钟频率为2MHz,则时钟为2MHz/100kHz=20,该字为34H。初始化程序段为:
键盘服务程序至少应当包括3部分:先要写入读FIFO/传感器RAM控制字,由按下键产生的字符允许通过FIFO读取,与A5和A2A1A0的状态无关(该字为01000000B)。使用OUT指令写入该字后,再用IN指令从状态口读取状态字,查询FIFO/RAM的状态,看是否有数据。若有,则从数据口读取扫描值SL0~SL3,回送RL0~RL7,形成一个字节数据。最后修改地址指针,依次输入8个键盘字,形成一个8字节的数据块。设第一字节放入内存KEYS单元,则相应的程序段为:
显示器服务程序中,必须首先从控制口写入“写显示RAM控制字”,然后将字形码从数据口用OUT指令输出,才能实现显示。相应程序段为:9.5DMA控制器8237A9.5.18237A内部寄存器寻址信号图9-438237A-5的内部结构8237A内部有4个独立通道,每个通道都有64KB寻址和计数能力,各通道都有4个寄存器,分别是基地址寄存器(16位)、基字计数寄存器(16位)、当前地址寄存器(16位)、当前字计数寄存器(16位);另外还有8个所有通道公用的寄存器,它们是工作方式寄存器(6位)、命令寄存器(8位)、状态寄存器(8位)、临时寄存器(8位)、屏蔽寄存器(1位)、DMA请求寄存器(1位)、临时计数器(16位)、临时地址寄存器(16位)。8237A-5内总共有24个寄存器。这些寄存器除临时计数器和临时地址寄存器外,还有22个能够进行读/写操作。其编程特征是有的只能读出不能写入,有的只能写入不能读出,有的既能读出又能写入。这些寄存器占用16个端口,编号为PORT0~PORT15。在PC/XT中,分配给8237A的I/O端口地址为00H~0FH。00H~07H为4个通道所占用,每个通道使用2个实现对4个16位寄存器的读/写;08H~0FH为所有通道公用,完成其它寄存器的读/写。寄存器的端口地址分配和读/写操作如表9-10所示。表9-10PC/XTDE8237A的寄存器地址9.5.28237A的4种工作方式和2种工作时序
8237A有4种工作方式,其中有3种是数据传送方式(单一传送、成组传送和询问传送),1种是多芯片级联方式。单一传送方式的特点是通道每启动一次DMA申请,就使用一个总线周期,只传送一个数据,传送之后就释放系统总线并交还给CPU,因此这种方式又称为总线周期窃取方式。成组传送方式的特点是通道启动一次可传送完整个数据块。
询问传送方式的特点与成组传送方式类似,其不同点在于每传送一个字节之后都要检测(询问)DREQ引脚是否有效。若无效,则立即“挂起”,但并不释放总线;若有效,则继续传送。级联方式不用于数据传送,仅用于多片连接。第一级为主片,第二级为从片。当主片编程为级联方式时,它的DREQ和DACK引脚分别与从片的HRQ和HLDA引脚相连。针对8237A的两种工作状态,相应地也有两种工作时序或两个操作周期:DMA空闲周期和DMA有效周期。从空闲周期到有效周期之间还存在一个过渡阶段。8237A-5有7种状态周期SI、S0、S1、S2、S3、S4及SW。每种状态均由一个时钟周期形成,如图9-44所示。图9-448237A-5的DMA时序9.5.316个端口和22个寄存器的读/写操作
8237A是一个40引脚双列直插芯片,它既受CPU控制,又能控制3组总线、存储器和I/O接口芯片,因此它的引脚、端口操作都具有双重特征。
1.引脚
40条引脚见图9-45,分成对CPU连接的3总线和对存储器、I/O接口连接的3总线。图9-458237A-5的外部引脚图CS:片选,低电平时选中本片。
A0~A3:最低地址线,双向三态。从态时作输入,选中8237的16个端口地址;主态时作输出,提供20位内存地址最低4位。
A4~A7:地址线,单向。主态时作输出,提供20位地址中的A4~A7
。
DB0~DB7:数据/地址线,双向三态。从态时为数据线,作为CPU对8237A进行读/写操作的数据输入/输出线。主态时为地址线,提供高8位地址线A8~A15,DMA传送时还是数据的输入输出端。8237A-5作DMA控制时可以为存储器和I/O设备提供16位地址线:A0~A7(低8位)和DB0~DB7(高8位)。DREQ0~DREQ3:外设对4个独立通道0~3的DMA服务请求,输入。依靠程序选定高或低电平有效,优先级DREQ0最高,DREQ3最低。
DACK0~DACK3:8237A发给I/O设备的DMA应答信号,输出。程序选定高或低电平有效。系统允许多个外设同时提出DMA申请,但在同一个时间,8237A只能有一个应答有效。
HRQ:总线请求。高电平输出有效,8237A向CPU发出的要求接管系统总线的请求。
HLDA:总线应答响应。高电平有效,来自于CPU,有效时表示CPU已让出总线。
IOR/IOW:I/O读/写信号,双向。8237A主态工作时作输出,在DMAC控制下,对I/O设备进行读/写;从态工作时作输入,由CPU向DMAC初始化写入。
:存储器读/写信号,单向输出。用于8237A主态工作,控制向存储器读或写数据。
ADSTB:地址选通输出,锁存16位地址的高8位,当DB0~DB7作为高8位地址线时,ADSTB把这8位地址锁存到地址锁存器的输入选通信号。高电平允许输入,低电平锁存。
AEN:地址允许输出。AEN为高电平时允许地址锁存器输出,为低电平时禁止输出。DMA传送时禁止其他系统总线驱动器占用系统总线。
READY:I/O设备或存储器准备就绪信号,输入。高电平有效。在DMA有效周期插入SW时,迫使READY处于低电平。一旦SW满足要求,该信号就变高,表示准备好。
EOP:计数结束信号,在DMA传送结束时EOP输出负脉冲,并将内部寄存器复位。
2.16个端口和22个寄存器的读写操作在CS=0时,8237的地址线A3~A0接CPU的地址线可选择16个端口,A3~A0的值0H~FH对应的端口直接用寄存器名表示。对端口地址的操作就是对这些寄存器的操作。
1)工作方式寄存器用于设置DMA传送的工作方式、传送方向和类型预置。端口地址为PORT11。只能写不能读。格式如下:2)基地址寄存器用于存放DMA传送的存储单元首址。在初始化时,先低字节后高字节顺序写入,传送过程中内容不变。只能写不能读。端口地址为PORT0、2、4、6(分别对应通道0~3)。
3)当前地址寄存器用于存放DMA传送中的存储单元地址偏移量。它的初值与基地址寄存器的内容相同,并且两者端口地址相同,初值由CPU同时写入。可读可写。在自动预置条件下,信号使其重新置为首址值。在每次传送后地址自动增1或减1。4)基字计数器用于存放DMA传送的总字节数。在初始化时,由CPU以先低字节后高字节顺序写入,传送过程中内容不变。只能写不能读。端口地址为PORT1、3、5、7(分别对应通道0~3)。
5)当前字计数器用于存放DMA过程没有传送完的字节数。它的端口地址、初值与基字计数器相同,且初值由CPU同时写入,可读可写。每次传送后,字节计数器减1,直至减为0,产生,表示字节数已传送完。选择自动预置时,信号使该计数器内容重新置为计数初值。6)屏蔽寄存器屏蔽寄存器有两种,用于禁止或允许通道的DMA请求。在屏蔽位置位时,禁止本通道的DREQ进入。若通道程序为非自动预置,则当该通道遇到信号时,对应屏蔽位置位。屏蔽字有两种格式:1个屏蔽位的屏蔽字和4个屏蔽位的屏蔽字。单一屏蔽位寄存器每次只能屏蔽一个通道,用D2设置。所谓“屏蔽”,是指禁止通道申请DREQ。D2置0允许DREQ申请。单一屏蔽位寄存器只能写不能读,端口地址为PORT10,其格式如下:
四位屏蔽位寄存器用于屏蔽通道0~3,只能写不能读,端口地址为PORT15,格式中的D3D2D1D0分别对应通道3~0,写入1时将该通道屏蔽,禁止DMA申请;写入0时不屏蔽,允许DMA申请。其格式如下:
选择通道3支持软盘DMA申请,初始化程序仅仅只要两条指令,前两条用单一屏蔽位寄存器,后两条用4位屏蔽位寄存器,用前(后)两条可不用后(前)两条。7)DMA请求寄存器该寄存器适于软件启动DMA申请,只能写不能读,端口地址为PORT9,其格式如下:8)命令寄存器该寄存器用于选择8237A的操作过程,可用复位信号RESET和清除命令清除,只能写不能读,端口地址为PORT8,其格式如下:9)状态寄存器该寄存器存放8237A的状态,只能读不能写,端口地址为PORT8,其格式如下:10)暂存寄存器用于存储器对存储器传送时,暂时保存从源地址读出的数据,端口地址为PORT13。11)软命令所谓“软命令”是指对特定地址完成一次写操作的指令。8237A有3条软命令。当、有效时软命令就能操作,与写入数据无关。这些软命令分述如下:
(1)清先/后触发器命令:程序中向端口PORT12写入任意数就可以使先/后触发器清0:(2)总清除命令:该命令与硬件RESET信号功能相同,执行结果将复位“命令”、“状态”、“请求”、“暂存”寄存器以及“先/后触发器”,置位屏蔽寄存器,屏蔽所有外部DMA请求。使用OUT指令向端口PORT13写入任意数就可以完成该命令:(3)清屏蔽寄存器命令:将4个屏蔽位均全部清0,端口地址为PORT14,让4个通道都允许接受DMA请求:
3.初始化编程
8237A的初始化编程和一般I/O接口芯片相同,都是使用OUT指令从控制端口写入控制字。8237A写入控制字的过程是给22个寄存器初始化的过程。初始化中并不是要对22个寄存器逐一加载,而是对那些要用到的寄存器写入初值,具体如下。所有通道的方式寄存器都要加载。
给命令寄存器发送命令字禁止8237A工作,发出总清除软命令,将要编程的通道加以屏蔽。待编程完成后再允许8237A工作并清除屏蔽位。
上电时期对8237A进行检测,只有检测通过才能对芯片初始化。只有做全“1”和全“0”检测并通过后,方可写入控制字。9.6D/A转换接口DAC0832是一种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版河砂运输仓储管理及配送合同
- 2025房地产代理销售协议书:特色小镇文旅地产代理服务
- 二零二五年度生态环保地板砖供货与市场推广合同
- 2025版跑步赛事官方赛事宣传册与海报设计合同
- 2025版房地产担保规定及会计处理办法合同
- 二零二五年金融机构财务顾问聘用协议书
- 2025版化肥行业环保达标改造合同范本
- 2025版企业员工离职交接与保密协议合同范本下载
- 二零二五年珠宝首饰代理销售合作协议模板
- 二零二五年度健康环保电压力锅代理销售合同
- 2024-2030年中国粽叶市场发展状况及竞争力研究研究报告
- DB44-T 2503-2024 村镇工业集聚区升级改造工作指南
- 中学舆情应急处置方案
- TD/T 1046-2016 土地整治权属调整规范(正式版)
- 实习手术室护士出科汇报
- (2024年)AED(自动体外除颤器)使用指南
- 门诊分诊知识课件
- 华润认知能力测评题
- 创客教室建设方案
- 乒乓球教练劳务合同范本
- 建筑常识空间尺度
评论
0/150
提交评论