《[信息与通信]微机原理——第8章 可编程通用》由会员分享,可在线阅读,更多相关《[信息与通信]微机原理——第8章 可编程通用(33页珍藏版)》请在金锄头文库上搜索。
1、第8章 可编程通用接口芯片及应用,本章重点:1)8255A控制字及三种工作方式 2)8253控制字及六种工作方式 3)8250控制字及工作方式 本章将在前面关于微计算机I/O接口和I/O技术介绍的基础上,进一步讨论组成微计算机/微处理器系统的一些通用可编程接口芯片。,8.1 可编程接口芯片的功能及分类,8.1.1 可编程接口芯片的功能 该小节介绍了一个可编程接口芯片应具备的一些功能 1.寻址功能2.输入/输出功能3.数据转换功能4.联络功能5.中断管理功能6.复位功能7.可编程功能8.错误检测功能 8.1.2 可编程接口芯片的分类 该小节介绍了可编程接口芯片按其使用范围可以分为两大类 1. 专
2、用接口芯片 这类芯片是为某类外设的专门功能而设计的专用控制芯片 2. 通用接口芯片 这类接口可作为多种外设的接口,其功能是通用的,8.2 可编程通用并行接口8255A工作方式及其综合应用,该节介绍了可编程通用并行接8255A的应用 8255A的通用性极强,使用灵活,CPU通过它可方便地与各种外设相连,实现其间的并行传输,8.2.1 8255A的引脚信号和内部结构 引脚 1. 与外设连接的引脚 PA7PA0,PB7PB0和PC7PC0 2. 与CPU连接的引脚 (1)RESET:复位输入信号(2)CS():片选信号(3)A0和A1:芯片内部寄存器的选择信号(4)R()D():读信号(5)W()R
3、():写信号 内部逻辑结构,1. 外设接口部分(端口A,B,C) (1)端口A 一个8位的数据输出锁存/缓冲器和一个8位的数据输入锁存器。 (2)端口B 一个8位的数据输出锁存/缓冲器和一个8位的数据输入锁存器。 (3)端口C 一个8位的数据输出锁存/缓冲器和一个8位的数据输入缓冲器(输入没 有锁存)。 2. 内部逻辑(A组和B组控制电路) 3. CPU接口(数据总线缓冲器和读/写控制逻辑) (1)数据总线缓冲器 这是一个8位双向三态缓冲器,三态由读/写控制逻辑控制。 (2)读/写控制逻辑 它与CPU的6根控制线相连,从CPU的地址和控制总线上接受输入的信 号,转变成各种命令送到A组或B组控制
4、电路进行相应的操作。,8.2.2 8255A控制字及工作方式 控制字 1. 8255A方式选择控制字2. 8255A按位置位/复位的控制字 工作方式 1. 方式0(Model 0)基本输入/输出方式 (1)方式0的工作特点 两个8位端口和两个4位端口,即端口A和端口B,端口C的高4位和低4位。 任何一个端口均可作为输入/输出口。 输出锁存。 输入不锁存。 各端口的输入/输出方向可以有16种不同的组合。 (2)方式0的应用,2. 方式1(Model 1)选通输入/输出方式 (1)方式1的工作特点 端口A和B可分别作为两个数据口工作在方式1,且任一端口均可作为输入口或输出口,输入输出带锁存。 如果
5、8255A的端口A和B中只有一个端口工作方式在方式1,那么端口C中有3位被规定为配合方式1的控制和状态信号,此时另一个端口仍可以工作在方式0,而端口C中的其余5位也可以任意作为输入或输出口用。 当8255A的端口A和B均工作在方式1时,端口C有6位被规定为配合方式1的控制和状态信号,余下的2位仍可由程序设定作为输入或输出口用。,(2)方式1输入情况下有关信号的规定 S()T()B()(Strobe):选通输入 IBF(Input Buffer Full):输入缓冲器满 INTR(Interrupt Request):中断请求信号 INTE(Interrupt Enable):中断允许信号 (3
6、)方式1输出时有关信号的规定 OBF()(Output Buffer Full):输出缓冲器满 ACK()(Acknowledge):响应输入INTR:中断请求信号 INTR:中断请求信号 (4)方式1输入输出组合,3. 方式2(Model 2)双向数据传送方式 (1)方式2的工作特点 (2)方式2的控制信号 (3)方式2的应用 (4)方式2与其他工作方式的组合,8.2.3 8255A的工作时序 该小节介绍了8255A在各种工作方式下的时序 (1)方式0的输入时序 (2)方式0的输出时序 (3)方式1的输入时序 (4)方式1的输出时序 (5)方式2的时序 8.2.4 8255A初始化编程和并行
7、I/O控制程序 该小节通过例子介绍了8255A如何初始化编程以及如何控制8255A的并行I/O 1. 8255A的初始化编程2. 8255A用于A/D和D/A接口 8.2.5 8255A在IBM-PC/XT系统板上的应用,8.3 可编程定时/计数器8253工作方式及其综合应用,定时器/计数器在微计算机系统中具有极为重要的作用,例如在IBM PC微机中作定时用,为计时电子钟提供恒定的时间基准,为动态存储器刷新定时以及扬声器的基音调时等。在实时操作系统和多任务操作系统中,定时器/计数器则是任务调度的主要依据。 该节介绍可编程定时/计数器8253的应用,8.3.1 8253的基本功能及用途 1. 8
8、253芯片的主要特点 (1)有3个独立的16位计数器; (2)每个计数器可按二进制或二十进制计数; (3)每个计数器的计数频率可高达2.6MHz; (4)每个计数器都可以由程序确定按照6种不同方式工作; (5)所有的输入/输出电平均与TTL电平兼容; (6)采用NMOS工艺。 2. 8253的用途 (1)在多任务的分时系统中作为中断信号实现程序切换; (2)可为I/O设备输出精确的定时信号; (3)可作为一个可编程的波特率发生器; (4)实现时间延迟。,8.3.2 8253内部结构及工作原理 1. 数据总线缓冲器 CPU向8253写入的方式控制字; CPU向某计数器写入的初始计数值; CPU从
9、某计数器读出的计数值。 2. 读/写逻辑电路 A1,A0用来3个计数器和控制器进行寻址,R()D()读信号,WR()写信号,CS()片选信号 3. 控制寄存器 4. 计数器0,1和2 每个计数器内部结构相同,包含1个8位的控制寄存器、1个16位的计数初值寄存器(CR)、1个计数执行部件(CE)和1个输出锁存器(OL) 计数器引脚 (1)CLK:时钟输入引脚 (2)GATE:门控输入引脚 (3)OUT:定时器/计数器的脉冲输出引脚,8.3.3 8253的控制字 8.3.4 8253的工作方式 1. 方式0计数结束产生中断 (1)计数器只计一次。当计数器减至0后,不重新计数,输出OUT保持为高,只
10、有写入另一计数初值后,OUT变低,才开始新的计数。 (2)8253内部是在CPU写计数初值的WR()信号上升沿将此值写入计数器的,但必须在有WR()信号下一个时钟脉冲到来时,计数初值才送至计数执行部件。 (3)门控GATE可以暂停计数器的计数过程。如果在计数过程中有一段时间GATE变低,则计数器暂停计数,直到GATE重新变高为止。 (4)计数过程中,如果有新的计数初值送至计数器,则在下一时钟脉冲到来时,新的初值送至计数执行部件。此后,计数器按新的初值重新计数。如果初值为两个字节,则计数将直到高位字节写完后的下一时钟脉冲才开始。,2. 方式1可重复触发的单稳态触发器 (1)写入控制字后,计数器O
11、UT输出端即以高电平作为起始电平,计数初值送到初值寄存器后,再经过一个时钟周期,便送到计数执行部件。当门控信号GATE上升沿到来时,边沿触发器受到触发,在下一个CLK脉冲到来时,输出端OUT变为低电平,并在计数到达0以前一直维持低电平。 (2)当计数器减至0时,输出端OUT变为高电平,并在下一次触发后的第一个时钟到来之前一直保持高电平。 (3)若计数器初值设置为N,则在输出端OUT将产生维持N个时钟周期的输出脉冲。,(4)方式1的触发是可重复的。即当初值为N时,计数器受门控GATE触发,输出端OUT出现N个时钟周期的输出负脉冲后,如果又来一门控GATE的上升沿,OUT输出端将再输出N个时钟周期
12、的输出负脉冲,而不必重新写入计数初值。 (5)如果在输出负脉冲期间,又来一个门控信号GATE上升沿,则在该上升沿的下一个时钟脉冲后,计数执行部件重取初值进行减1计数,减为时输出端才变为高电平,这样,原来的低脉冲输出比原来延长了。 (6)如果在输出负脉冲期间,对计数器写入一个新的计数初值,将不对当前输出产生影响,输出低电平脉宽仍为原来的初值,除非又来一个门控信号GATE的上升沿,而在下一门控触发信号到来时,按新的计数初值作减1计数。,3. 方式2分频器 (1)上述执行过程是以GATE输入端保持高电平为条件的。若GATE端加低电平,则不进行计数操作。而GATE端的每一次从低到高的跳变都将引起计数执
13、行部件重新装入初值。 (2)若在计数期间,送入新的计数值,而GATE一直保持高,则输出OUT将不受影响。但在下一输出周期,将按新的计数值进行计数。 (3)若在计数期间,送入新的计数值,而GATE发生一个由低至高的跳变,那么在下一时钟到来时,新的计数值被送入计数执行部件,计数器按新的计数初值进行分频操作。 4. 方式3可编程方波发生器 方式3与方式2的工作及其类似,不同的是OUT的输出为方波或基本对称的矩形波。,5. 方式4软件触发的选通信号发生器 (1)GATE1时,进行减1计数;GATE0时,计数停止,而输出维持当时的电平。只有在计数器减为“0”时,才使输出产生电平的变化而出现负脉冲。 (2
14、)若在计数中又写入新的计数值,则在下一个时钟周期,此计数值被写入计数执行部件,并且计数器从新的计数值开始做减1计数。 (3)如果新写入的计数初值为2个字节,则在写第一个字节时,计数不受影响,写入第2个字节后的下一个时钟周期,计数执行部件获得新计数值,并以新计数值重新开始计数。,6. 方式5硬件触发的选通信号发生器 (1)若在计数过程中,GATE端来一上升沿进行触发,则经过下一时钟周期后,计数执行部件将重新获得计数初值(初值未变),并进行减1计数直至“0”。 (2)若在计数过程中,写入新的计数初值,而GATE无上升沿触发脉冲,则当前输出周期不受影响。在当前周期结束后,再受触发,按新的计数初值开始
15、计数。 (3)若在计数过程中写入新的计数初值,而GATE又有上升沿触发脉冲,则在下一CLK时钟周期,计数执行部件将获得新的计数值,并按此值做减1计数。,7. 8253工作方式小结 (1)控制字写入寄存器时,所有控制逻辑电路复位,输出端OUT输出初始电平(高或低)。 (2)初始值写入后,要经过一个CLK时钟周期(包括一个上升沿和一个下降沿),计数执行部件CE才开始计数。 (3)门控信号GATE可以用电平触发或边沿触发,有的方式中两种方式都允许。 8.3.5 8253在IBM-PC机的应用,8.4 可编程串行接口8250工作方式及其综合应用,对距离较远的通信,人们习惯采用串行的方式。串行通信虽然可
16、以使系统的费用下降,但也随之带来了串/并、并/串转换以及位计数等问题,使串行通信技术比并行技术复杂得多。 8250是专门的异步通信接口,该节着重介绍它的功能和应用,8.4.1 串行通信的基本概念 1.串行接口的典型结构 (1)数据总线收发器是并行的双向数据通道,负责将CPU送来的并行数据传送给串行接口,并将串行接口接收的外设数据送给CPU。 (2)联络信号逻辑用于完成CPU与串行接口之间信息的联系。 (3)控制总线CB(Control Bus)。它是串行接口与外设之间进行数传所必须的各种控制信息的通路。 (4)串入/串出是串行接口与外设之间的数传通道,均为串行方式。 (5)发送时钟和接收时钟是
17、串行通信中数据传送的同步信号。,(6)状态寄存器SR用来指示传送过程中可能发生的某种错误或当前的传输状态。 (7)控制寄存器CR接收来自CPU的各种控制信息,这些信息是由CPU执行初始化程序得到的,包括传输方式、数据格式等等。 (8)数据输入寄存器DIR(Data Input Register)与串入/并出移位寄存器相连。串入/并出移位寄存器完成串/并转换。(9)数据输出寄存器DOR(Data Output Register)与并入/串出移位寄存器相连。并入/串出移位寄存器的操作与串入/并出相反,完成并/串转换。 (10)CS()和A0。串行接口的各种操作是否有效,取决于CS(),即片选信号;片选信号低有效时,当前对串口中哪个部件进行操作则取决于地址线A0和读/写信号。通常信号由CPU通过地址译码逻辑控制,而A0直接与CPU的地址线A0相连。,