微机原理与接口技术第六章.ppt
微机原理与接口技术,黄景涛Tel:13613796210Email:Lab:10-825,河南科技大学电子信息工程学院,2,第6章 串并行通信和接口技术,本章重点串并行通信接口通信规程和通信标准8251A和8255A的特点及应用8251A和8255A的编程,3,6.1 接口的功能及在系统中的连接,6.1.1接口的功能寻址能力:对送来的片选信号进行识别。输入/输出功能:根据读/写信号决定当前进行的是输入操作还是输出操作。数据转换功能:并行数据向串行数据的转换或串行数据向并行数据的转换。联络功能:就绪信号,忙信号等。中断管理:发出中断请求信号、接收中断响应信号、发送中断类型码的功能。并具有优先级管理功能。复位:接收复位信号,从而使接口本身以及所连的外设进行重新启动。可编程:用软件来决定其工作方式,用软件来设置有关的控制信号。错误检测:一类是传输错误。另一类是覆盖错误。,4,典型的I/O接口和外部电路连接图,5,6.1.2 接口与系统的连接,接口电路位于CPU与外设之间从结构上可以把一个接口分为两个部分:面向CPU一侧的信号:用于与CPU连接主要是数据、地址和控制信号 面向外设一侧的信号:用于与外设连接提供的信号五花八门功能定义、时序及有效电平等差异较大,6,6.2 串行接口和串行通信,6.2.1 串行接口串行通信:用一根信号线将数据逐位顺序传送;在传输过程中,每一位数据占一个固定的时间长度。串行通信的优势:通信线路少,在远距离通信时可以极大地降低成本;适合于远距离数据传送;也常用于速度要求不高的近距离数据传送,7,可编程串行接口的典型结构,控制寄存器用来容纳CPU送给此接口的各种控制信息,决定接口的工作方式,状态寄存器的各位叫状态位每一个状态位都可以用来指示传输过程中的某一种错误或者当前传输状态,数据输入寄存器总是和串行输入并行输出移位寄存器配对使用的。在输入过程中,数据一位一位从外部设备进入接口的移位寄存器,当接收完1个字符以后,数据就从移位寄存器送到数据输入寄存器,再等待CPU来取走,串行,并行,8,可编程串行接口的典型结构,一般有4个主要寄存器控制寄存器状态寄存器数据输入寄存器数据输出寄存器CPU可以访问串行接口中的4个主要寄存器;控制寄存器和数据输出寄存器是只写的;状态寄存器和数据输入寄存器是只读的;可以用读信号和写信号来区分这两组寄存器,再用1位地址来区分2个只读寄存器或2个只写寄存器。(图示),9,6.2.2 串行通信涉及的几个问题,全双工,站A,站B,站A,站B,站A,站B,半双工,单 工,1.全双工方式和半双工方式,2.同步方式和异步方式串行异步通信按字符传送;不传送时钟信号串行同步通信按帧(多个字符)传送;传送时钟信号无论同步方式还是异步方式,都是串行传送,图示,10,同步通信通信双方使用同一时钟,以数据块(帧,多个字符组成)为传输单位双方使用同一时钟(主控方提供时钟,被控方接收时钟)外同步:时钟信号另外安排一根传输线自同步:发送时将时钟信号与数据混合编码,接收时译码出时钟信号数据格式:每个数据块前加12个同步字符(同步头)进行帧同步。同步通信的数据传输效率和传输速率较高,但硬件电路比较复杂串行同步通信主要应用在网络当中,最常使用的同步通信协议有高级数据链路控制协议(HDLC),11,同步通信的数据格式,同步字符,数据块,同步字符1,同步字符2,CRC 1,数据块,CRC 2,CRC 1,CRC 2,单同步格式,双同步格式,同步传输不允许有间隙,12,异步通信通信双方使用各自的时钟,串行通信时的数据、控制和状态信息都使用同一根信号线传送收发双方必须遵守共同的通信协议(通信规程)串行异步通信以字符为单位进行传输,每个字符的前后都要有分隔位。与同步方式不同,两个字符之间的传输间隔是任意的。数据格式:起止式异步通信协议,13,起止式异步通信协议,起始位每个字符开始传送的标志,起始位采用逻辑0电平,起始位,附加位,停止位,空闲位,数据位,低位,高位,字符,1,0,1,1,1,数据位数据位紧跟着起始位传送。由58个二进制位组成,低位先传送,附加位该位可用于校验或数据标识:可选择奇检验、偶校验或无校验位,停止位表示该字符传送结束。停止位为逻辑1电平,可选择1、1.5、2位。,空闲位传送字符之间的逻辑1电平,表示没有进行传送,14,波特率和波特率因子,发送时钟:在用异步方式进行通信时,发送端需要用时钟来决定每一位对应的时间长度接收时钟:在用异步方式进行通信时,接收端也需要用一个时钟来测定每一位的时间长度发送时钟和接收时钟的频率可以是位传输率的16倍、32倍或者64倍,这个倍数称为波特率因子,而位传输率称为波特率。数据传输速率也称比特率(Bit Rate)每秒传输的二进制位数bps字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数当进行二进制数码传输,且每位时间长度相等时,比特率等于波特率过去,串行通信(异步)的数据传输速率限制在50 bps到9600 bps之间。现在,串行通信可以达到115200 bps或更高,15,接收时对起始位的检测(波特率因子为16),起始检测,确定已检测到起始位,采样数据,起 始 位,时钟(RCLK),数据线(RxD),T,16 T,16 T,8 T,数据接收时钟频率是数据传输频率的16倍,正确识别起始位,防止因干扰引起的误识别,16,接收错误的处理,奇偶错误PE(Parity Error)若接收到的字符的“1”的个数不符合奇偶校验要求帧错误FE(Frame Error)若接收到的字符格式不符合规定(如缺少停止位)覆盖错误OE(Overwrite Error)若接收移位寄存器接收到一个数据,并送至输入缓冲器时,CPU还未取走前一个数据,就会出现数据覆盖若接收缓冲器的级数多,则覆盖错误发生的几率就小,17,通用异步收发器UART,通用异步收发器UART具备如下功能:将并行数据变为串行数据;按格式把数据发送出去;能够接收串行格式的数据,再把它变成并行数据;能够检测奇偶错误、覆盖错误和信息帧格式错误;,18,6.3 可编程串行通信接口8251A,6.3.1 8251A的基本性能两种工作方式(通过编程设置):同步方式同步方式,波特率为064K,58位数据,自动检测同步字符异步方式。异步方式,波特率为019.2K,58位数据,1位奇偶校验,自动添加一个启动位及1、1.5或2个停止位全双工的工作方式其内部提供具有双缓冲器的发送器和接收器。提供出错检测具有奇偶、覆盖和帧错误三种校验电路。(UART),19,8251A的基本性能,同步方式下的格式每个字符可以用5、6、7或8位来表示;并且内部能自动检测同步字符,从而实现同步。除此之外,8251A也允许同步方式下增加奇/偶校验位进行校验。异步方式下的格式每个字符也可以用5、6、7或8位来表示;时钟频率为传输波特率的1、16或64倍;用1位作为奇/偶校验。1个启动位。并能根据编程为每个数据增加1个、15个或2个停止位。可以检查假启动位,自动检测和处理终止字符。,返回,20,6.3.2 8251A的基本工作原理,8251A的编程结构,数据输入缓冲寄存器和数据输出缓冲寄存器使用同一个端口地址,实际上为两个端口,一个为输入端口,一个为输出端口,所以,不会混淆起来,接收移位寄存器将到达RxD端的串行数据接收之后进行移位,变为8位并行数据,传送到数据输入缓冲寄存器,然后通过数据总线传送到CPU,输出数据过程中,CPU通过数据总线将数据送到8251A数据输出缓冲寄存器,再传输到发送移位寄存器。移位寄存器用移位的办法将并行数据变为串行数据,然后,从TxD端送出,控制寄存器用来控制8251A的工作,它的内容是由程序设置的,状态寄存器则在8251A的工作过程中为执行程序提供一定的状态信息,模式寄存器的内容决定了8251A到底工作在同步模式还是工作在异步模式,还决定了所接收和发送的字符的格式,21,8251A的功能结构,22,8251A的发送和接收(异步),并行数据,检测接收错误删除起始位、校验位、停止位,串行数据,CPU,接收缓冲寄存器,接收移位寄存器,接收控制电路,8251,RxD,双缓冲寄存器结构,保证数据的连续接收,串行数据的异步接收,23,接收时对起始位的检测,起始检测,确定已检测到起始位,采样数据,起 始 位,时钟(RCLK),数据线(RxD),T,16 T,16 T,8 T,数据接收时钟频率是数据传输频率的16倍,正确识别起始位,防止因干扰引起的误识别,24,CPU,发送缓冲寄存器,发送移位寄存器,发送控制电路,8251,TxD,串行数据的异步发送,并行数据,加入起始位、校验位、停止位,串行数据,双缓冲寄存器结构,保证数据的连续发送,当程序置允许发送位TxEN为1,并且由外设发来的对CPU请求发送信号的响应信号-CTS(clear to send)有效后,便开始发送过程,25,异步方式下的数据传输格式,26,同步接收方式和同步发送方式,27,6.3.3 8251A的对外信号,8251A和CPU之间的连接信号,28,连接信号,片选信号 CS低电平有效它由CPU的地址信号通过译码后得到。数据信号D0-D7三态,双向数据线与系统的数据总线相连。传输CPU对8251A的编程命令字和8251A送往CPU的状态信息及数据。,29,连接信号,读/写控制信号RD:读信号,低电平时有效CPU当前正在从8251A读取数据或者状态信息。WR:写信号,低电平时有效CPU当前正在往8251A写入数据或者控制信息。C/D:控制/数据信号用来区分当前读/写的是数据还是控制信息或状态信息。该信号也可看作是8251A数据口/控制口的选择信号。,30,连接信号,收发联络信号 TxRDY:发送器准备好信号,用来通知CPU,8251A已准备好发送一个字符。TxE:发送器空信号,TxE为高电平时有效,用来表示此时8251A发送器中并行到串行转换器空,说明一个发送动作已完成。,31,连接信号,RxRDY:接收器准备好信号用来表示当前8251A已经从外部设备接收到一个字符,等待CPU来取走。在中断方式时,RXRDY可用来作为中断请求信号;在查询方式时,RXRDY可用来作为查询信号。SYNDET:同步检测信号只用于同步方式,32,28251A与外部设备之间的连接信号,分为两类:收发联络信号 DTR:数据终端准备好信号通知外部设备,CPU当前已经准备就绪。DSR:数据设备准备好信号表示当前外设已经准备好。,33,28251A与外部设备之间的连接信号,RTS:请求发送信号表示CPU已经准备好发送。CTS:允许发送信号是对RTS的响应信号由外设送往8251A。,34,28251A与外部设备之间的连接信号,数据信号 TxD:发送器数据输出信号。当CPU送往8251A的并行数据被转变为串行数据后,通过TxD送往外设。RxD:接收器数据输入信号。用来接收外设送来的串行数据,数据进入8251A后被转变为并行方式,35,3.时钟、电源和地,CLK:时钟输入用来产生8251A器件的内部时序。同步方式下,大于接收数据或发送数据的波特率的30倍异步方式下,则要大于数据波特率的4.5倍。,36,3.时钟、电源和地,TxC:发送器时钟输入;用来控制发送字符的速度。同步方式下,TxC的频率等于字符传输的波特率;异步方式下,TxC的频率可以为字符传输波特率的1倍、16倍或者64倍。,37,3.时钟、电源和地,RxC:接收器时钟输入;用来控制接收字符的速度,和TxC一样。实际使用时,RxC和TxC往往连在一起,由同一个外部时钟来提供。VCC:电源输入 GND:地,38,6.3.3 8251A的编程,关于8位接口芯片和16位数据总线的连接问题8086CPU有一个必须遵守的约定,即低8位数据线总是与偶地址存储单元或端口关联,而高8位数据线总是与奇地址存储单元或端口关联;为满足这一要求,连接时在硬件上将总线的A1与8251A的A0引脚相连接;在软件设计时用连续的偶地址代替端口的奇偶地址;解决8位接口芯片与16位数据总线的连接,39,28251A的初始化,三个约定(偶地址端口是数据端口):芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。(2)如果模式字中规定了8251A工作在同步模式,CPU接着往奇地址端口输出的1个或2个字节就是同步字符,同步字符被写入同步字符寄存器。如果有2个同步字符,则会按先后分别写入第1个同步字符寄存器和第2个同步字符寄存器。(3)之后,由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。,40,初始化流程图,OUT PORTo,AL,OUT PORTo,AL,OUT PORTo,AL,OUT PORTo,AL,OUT PORTe,AL,41,3模式寄存器的格式,也同时规定了TxC和RxC的频率频率=波特率*波特率因子,42,4控制寄存器的格式,43,5状态寄存器的格式,该状态位与TxRDY引脚不同,TxRDY引脚为1的条件是:数据缓冲器空CTSTxEN=1,44,6.3.5 8251A应用举例,1异步模式下的初始化程序举例 设8251A工作在异步模式,波特率系数(因子)为16,7个数据位/字符,偶校验,2个停止位,发送、接收允许,设端口地址为0042H。完成初始化程序。分析:根据题目要求,可以确定模式字为:11111010B,即FAH而控制字为:00110111B 即37H,对于CPU来说是偶地址,对于接口是奇地址,45,波特率因子为16,7个数据位/字符,偶校验,2个停止位,发送、接收允许,模式字,46,发送、接收允许,控制字,47,1异步模式下的初始化程序举例,初始化程序如下:MOV AL,0FAH;送模式字OUT 42H,AL;异步方式,7位/字符,偶校验,2个停止位 MOV AL,37H;设置控制字,使发送、接收允许,清出错标志,使 和 有效OUT 42H,AL;,48,2同步模式下初始化程序举例,设端口地址为42H,采用内同步方式,2个同步字符(设同步字符为16H),偶校验,7位数据位/字符 根据要求:确定模式字为:00111000B 即38H控制字为:10010111B 即97H;使8251A对同步字符进行检索;同时使状态寄存器中的3个出错标志复位;使8251A的发送器启动,接收器也启动;还通知8251A,CPU当前已经准备好进行数据传输。,49,采用内同步方式,2个同步字符(同步字符为16H),偶校验,7位数据位/字符,模式字,50,对同步字符进行检索;使3个出错标志复位;使8251A的发送器启动,接收器也启动;数据终端准备好。,控制字,51,2同步模式下初始化程序举例,具体程序段如下:MOV AL,38H;设置模式字,同步模式,用2个同步字符OUT 42H,AL;7个数据位,偶校验MOV AL,16H OUT 42H,AL;送同步字符16HOUT 42H,AL MOV AL,97H;设置控制字,使发送器和接收器启动OUT 42H,AL,52,3利用状态字进行编程的举例,先对8251A进行初始化,然后对状态字进行测试,以便输入字符。本程序段用来输入80个字符。分析:8251A的控制和状态端口地址为42H数据输入和输出端口地址为40H字符输入后,放在BUFFER标号所指的内存缓冲区中。具体的程序段如下:,53,参考程序,MOV AL,0FAH OUT 42H,AL MOV AL,35H OUT 42H,AL MOV DI,0 MOV CX,80B:IN AL,42H TEST AL,02H JZ B IN AL,40H,MOV DX,OFFSET BUFFER MOV DX+DI,AL INC DI IN AL,42H TEST AL,38H JNZ E LOOP B JMP EXITE:CALL ERR-OUT EXIT:,54,6.4 并行通信和并行接口,并行传输以计算机的字长为传输单位(通常是8位、16位或32位),一次可传送1个字长的数据并行传输是微机系统中最基本的信息交换方法例如:系统板上各部件之间,接口电路板上各部件之间适合于外部设备与微机之间进行近距离、大量和快速的信息交换例如:微机与并行接口打印机、磁盘驱动器,55,典型的并行接口和外设连接的示意图,*,输入准备好,*,56,6.5 可编程并行通信接口8255A,8255A是一个通用的可编程的并行接口芯片;它有三个并行I/O口;可通过编程设置多种工作方式;价格低廉,使用方便,可以直接与Intel系列的芯片连接使用;在中小系统中有着广泛的应用,57,6.5.1 8255A的内部结构,数据总线缓冲器,内部控制线,内部数据线,D0D7,A组控制,A组端口C上部,B组控制,B组端口B,B组端口C下部,读写控制逻辑,PC0PC3CL口,PB0PB7B口,PC4PC7CH口,PA0PA7A口,-RD-WRA0A1-CSRESET,A组端口A,A组控制电路用来控制A口及C口的高4位,B组控制电路用来控制B口及C口的低4位,读/写控制逻辑电路负责管理8255A的数据传输过程。,8位的双向三态缓冲器,三个数据端口A,B,C这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。B口:也是一个独立的8位I/O口,仅对输出数据有锁存功能。C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。也是仅对输出数据进行锁存。,58,6.5.1 8255A的内部结构,三个数据端口A,B,C 这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。也是仅对输出数据进行锁存。,59,6.5.1 8255A的内部结构,A组和B组的控制电路 A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。读/写控制逻辑读/写控制逻辑电路负责管理8255A的数据传输过程。数据总线缓冲器8位的双向的三态缓冲器,60,6.5.2 8255A芯片引脚信号,A组数据信号:PA0-PA7,8位端口,支持工作方式0、1、2B组数据信号:PB0-PB7,8位端口,支持工作方式0、1C组数据信号:PC0-PC7,拆分为两个4位端口,仅支持工作方式0,1.连接外设的数据端口,61,2.与CPU连接的信号,D0-D7:8位,双向,三态数据线RESET:复位信号,用来清除8255的内部寄存器,并置A口,B口,C口均为输入方式;-CS:片选;-RD:读信号;-WR:写信号A1,A0:内部口地址的选择,这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。,62,与CPU一边连接的信号,其余无效,63,6.5.3 8255A的控制字,控制字分为两类:方式控制字C口的置位/复位控制字对8255A的编程涉及到两个内容:写控制字设置工作方式等信息,使C口的指定位置位/复位的功能。注:均写入控制端口,64,方式选择控制字,65,方式选择控制字,可编程并行接口8255A有三种基本的工作方式)方式0基本输入输出方式;三个端口的每一个都可由程序选定作为输入或输出)方式1选通输入/输出方式;端口A或端口B仍作为数据的输入/输出口;同时规定端口C的某些位作为控制或状态信息。3)方式2双向传送方式方式2只用于端口A;既能发送数据也能接收数据(双向总线I/O)。工作时可用程序查询方式,也可以工作在中断方式,66,方式选择控制字举例,设一个微型机系统中有2个8255A芯片J1和J22个8255A的A1、A0端分别和系统地址总线的A2、A1端相连,RESET、-RD、-WR以及数据端也都分别连在一起,然后与系统的有关信号端相连系统仅靠-CS端来区分当前是对J1还是J2进行访问。,67,方式选择控制字例地址分配分析,例如:J1控制口地址:A5 A4 A3 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1,68,方式选择控制字例地址分配分析,J1A7 A6 A5 A4 A3 A2 A1 A0 1 1 1 0 0 0 0 0 E0 A口 1 1 1 0 0 0 1 0 E2 B口 1 1 1 0 0 1 0 0 E4 C口 1 1 1 0 0 1 1 0 E6 控制,69,方式选择控制字例地址分配分析,J2A7 A6 A5 A4 A3 A2 A1 A0 1 1 1 0 1 0 0 0 E8 A口 1 1 1 0 1 0 1 0 EA B口 1 1 1 0 1 1 0 0 EC C口 1 1 1 0 1 1 1 0 EE 控制,70,方式选择控制字例,J1的各个端口处于如下工作方式:端口A方式0,输出;端口B方式0,输入;端口C的高4位 输出;端口C的低4位 输入。,71,方式选择控制字例,J2的各个端口处于如下工作方式:端口A方式0,输入;端口B方式1,输出;端口C的高4位 输出;端口C的低4位配合端口B工作(已由方式1决定),可任意为1或0,此处设为0。,72,方式选择控制字例,MOV AL,83HMOV DX,00E6HOUT DX,ALMOV AL,94HMOV DX,00EEHOUT DX,AL,73,2 C口的置位/复位功能,置位/复位的控制字格式,74,端口C置1置0控制字几点说明,C端口置1置0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口。置1置0控制字的D0位决定了是置1操作还是置0操作。如为1,则对端口C中某一位置1,如为0,则置0置1置0控制字的D3、D2、D1位决定了对C端口中的哪一位进行操作。置1置0控制字的D4、D5、D6位可为1,也可为0,它们不影响置1置0操作。D7位必须为0,它是对C端口置1置0控制字的标识符,75,6.5.4 8255A的工作方式,方式0基本输入输出方式特点输出是锁存的,输入是不锁存的;任何一个端口可作为输入口,也可以作为输出口各个端口的输入、输出可以有16种不同的组合 适用场合同步方式无条件输入输出方式;查询方式把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。,76,方式0的输入时序,77,方式0的输出时序,78,方式1选通输入/输出方式,方式1的工作特点端口A和端口B可分别作为两个数据口工作在方式1,并且,任何一个端口可作为输入口或者输出口。如果8255A的端口A和端口B中只有一个端口工作于方式1,那么,端口C中就有3位被规定为配合方式1工作的信号,此时,另一个端口可以工作在方式0,端口C中的其他数位也可以工作在方式0,即作为输入或者输出。如果8255A的端口A和端口B都工作在方式1,那么,端口C中就有6位被规定为配合方式1工作的信号,剩下的2位仍可作为输入或输出。方式1的应用:主要用于中断控制方式下的输入输出。,79,方式1输入信号的规定和输入时序,PC4,PC5,PC3,PA7PA0,INTEA,IBFA,INTRA,STBA,中断允许触发器,输入缓冲器满信号表示A口已经接收数据,数据选通信号表示外设已经准备好数据,中断请求信号请求CPU接收数据,外设数据,征用C口3引脚和1个控制位,端口A工作在方式1输入引脚,INTE没有外部引出端,它是由软件通过对C端口的PC4置1或置0来实现对中断的控制的。PC4置1,A端口处于中断允许状态;置0,A端口处于中断屏蔽状态。,80,端口B工作在方式1输入引脚,PC2,PC1,PC0,PB7PB0,INTEB,IBFB,INTRB,STBB,中断允许触发器,输入缓冲器满信号表示B口已经接收数据,数据选通信号表示外设已经准备好数据,中断请求信号请求CPU接收数据,外设数据,征用C口3引脚和1个控制位,INTE没有外部引出端,它是由软件通过对C端口的PC2置1或置0来实现对中断的控制的。PC2置1,B端口处于中断允许状态;置0,B端口处于中断屏蔽状态。,81,方式1 输入联络信号,STB选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器IBF输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器一般供CPU查询用IBF由STB信号置位,由RD信号后沿(上升沿)使其复位INTR中断请求信号,高电平有效8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据;INTR置位的条件是STB为高且IBF为高且INTE为高。在CPU响应中断读取数据时,由RD信号的下降沿将其复位(降为低电平)INTE中断允许。对A口来讲,是由PC4置位来实现,对B口来讲,则是由PC2置位来实现。事先将其置位。,82,方式1输入时序,tST500ns,83,方式1中断控制,8255A的中断由中断允许触发器INTE控制置位允许中断,复位禁止中断对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器选通输入方式下端口A的INTEA对应PC4端口B的INTEB对应PC2,84,方式1输出信号的规定和输出时序,PC6,PC7,PC3,PA7PA0,INTEA,-OBFA,INTRA,-ACKA,输出缓冲器满信号表示CPU已经输出了数据,外设响应信号表示外设已经接收到数据,中断请求信号请求CPU再次输出数据,征用C口3引脚和1个控制位,中断允许触发器通过位控PC6 设置INTEA,输出数据,端口A方式1输出引脚,85,端口B方式1输出引脚,PC2,PC1,PC0,PB7PB0,INTEB,-OBFB,INTRB,-ACKB,输出缓冲器满信号表示CPU已经输出了数据,外设响应信号表示外设已经接收到数据,中断请求信号请求CPU再次输出数据,征用C口3引脚和1个控制位,中断允许触发器通过位控PC2设置INTEB,输出数据,86,方式1输出联络信号,OBF输出缓冲器满信号,低电平有效8255A输出给外设的一个控制信号,当其有效时,表示CPU已将输出数据锁存在8255A指定的端口,外设可以来取由写信号的上升沿置为有效电平,由ACK信号使其恢复为无效电平ACK响应信号,低电平有效外设提供的响应信号,通知8255A其端口数据已被外设接收INTR中断请求信号,高有效当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据ACK变为高电平,且OBF也为高电平时INTR有效,当写信号下降沿来到时将其复位INTE中断允许。对A口来讲,由PC6的置位来实现,对B口仍是由PC2的置位来实现。,87,方式1 输出时序,88,方式2 双向选通方式,方式2将方式1的选通输入与选通输出功能组合成一个双向数据端口,可以发送数据和接收数据只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同方式2的数据输入过程与方式1的输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在-OBF有效时向外设输出数据,而是在外设提供响应信号-ACK有效时才送出数据,89,方式2 双向选通引脚,PC6,PC7,PC3,PA7PA0,INTE1,-OBFA,INTRA,-ACKA,PC4,PC5,IBFA,-STBA,INTE2,数据,输入中断和输出中断通过或门输出INTRA信号,征用C口5引脚和2个控制位,中断允许触发器(控制中断输出)通过位控PC6设置INTE1,中断允许触发器(控制中断输出)通过位控PC4设置INTE2,输入联络,输出联络,90,方式2 双向选通时序,91,方式2双向选通方式,方式2和其他方式的组合方式2和方式0输入的组合:控制字:11XXX01T方式2和方式0输出的组合:控制字:11XXX00T方式2和方式1输入的组合:控制字:11XXX11X方式2和方式1输出的组合:控制字:11XXX10X其中X表示与其取值无关,而T表示视情况可取1或0。,92,6.5.5 8255的应用举例,0,字符,8255A工作于方式0 的例子,93,8255的应用举例,8255A的4个口地址分别为:00D0H,00D2H,00D4H,00D6HA、B、C三个端口工作于方式0A端口为输出,PC7PC4为输出,PC3PC0为输入,94,8255的应用举例,DADA SEGMENT BUFF DB This is a print program!,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFF MOV AL,81H OUT 0D6H,AL MOV AL,0DH OUT 0D6H,AL,95,8255的应用举例,WAIT:IN AL,0D4H TEST AL,04H JNZ WAIT MOV AL,SI CMP AL,$JZ DONE OUT 0D0H,AL MOV AL,0CH OUT 0D6H,AL INC AL OUT 0D6H,AL,INC SI JMP WAITDONE:MOV AL,0DH OUT 0D0H,AL MOV AL,0CH OUT 0D6H,AL INC AL OUT 0D6H,ALWAIT1:IN AL,0D4H TEST AL,04H JNZ WAIT1,96,8255的应用举例,MOV AL,0AH OUT 0D0H,AL MOV AL,0CH OUT 0D6H,AL INC AL OUT 0D6H,AL MOV AH,4CH INT 21H CODE ENDSEND START,97,习题与思考:,1接口电路的主要作用是什么?它的基本结构如何?2说明接口电路中控制寄存器与状态寄存器的功能,通常 它们可共用一个端口地址码,为什么?3CPU寻址外设端口的方式有哪两种?说明它们的优缺点。4在CPU与外部设备接口电路的连接中,通过数据总线可传输哪几种信息?在这里地址译码器起什么作用?5串行通信和并行通信有什么异同?各自的优缺点是什么?,98,习题与思考:,6试分析8255A方式0、方式1和方式2的主要区别,并分别说明它们 适合于什么应用场合。7当8255A的A口工作在方式2时,其端口B适合于什么样的功能?写出此时各种不同组合情况的控制字。8若8255A的端口A定义为方式0,输入;端口B定义为方式1,输 出;端口C的上半部定义为方式0,输出。试编写初始化程序。(口地址为80H83H)9假设一片8255A的使用情况如下:A口为方式0输入,B口为方式0 输出。此时连接的CPU为8086,地址线的A1、A2分别接至 8255A的A0、A1,而芯片的来自A3A4A5A6A7=00101,试 完成8255A的端口地址和初始化程序。,99,接口寄存器按访问区分,地址,0,1,RD有效,WR有效,RD有效,WR有效,100,传输制式,101,接收缓冲器对外的引脚为RxD。功能是从RxD引脚上接收串行数据,并按照相应的格式将串行数据转换成并行数据。它对应于编程结构图中的接收移位寄存器。接收控制电路是配合接收缓冲器工作的,它管理有关接收的所有功能:在异步方式下,芯片复位后,先检测输入信号中的有效“1”,一旦检测到,接着寻找有效的低电平来确定启动位。消除假启动干扰。对接收到的信息进行奇偶校验,并根据校验结果建立相应的状态位。检测停止位,并按照检测结果建立状态位。,返回,接收控制电路,102,发送控制电路和发送缓冲器配合工作;它控制和管理所有与串行发送有关的功能;发送缓冲器把来自CPU的并行数据加上相应的控制信息,然后转换成串行数据从TxD引脚发出去;它对应于编程结构图中的发送移位寄存器:在异步方式下,为数据加上起始位、校验位和停止位。在同步方式下,插入同步字符,在数据中插入校验位。,返回,发送控制电路,103,数据总线缓冲器用来把8251A和系统数据总线相连;在CPU执行输入输出指令期间,由数据总线缓冲器发送和接收数据;控制字、命令字和状态信息也通过数据总线缓冲器传输,返回,数据总线缓冲器,104,读写控制逻辑电路用来配合数据总线缓冲器工作:接收写信号-WR,并将来自数据总线的数据和控制字写人8251A。接收读信号-RD,并将数据或状态字从8251A送往数据总线。接收控制/数据信号C/-D,将此信号和读写信号合起来通知8251A,当前读写的是数据还是控制字、状态字。接收时钟信号CLK,完成8251A的内部定时。接收复位信号RESET,使8251A处于空闲状态。,返回,读写控制逻辑电路,105,调制解调控制电路用来简化8251A和调制解调器的连接在进行远程通信时,有时要用调制器将串行接口送出的数字信号变为模拟信号,再发送出去接收端则要用解调器将模拟信号变为数字信号,再由串行接口送往计算机主机,返回,调制解调控制电路,106,同步串行通信发送格式,程序置TxEN位为1,且CTS有效后,才能开始发送过程。发送过程开始以后,发送器先根据编程要求发送1个或者2个同步字符,然后发送数据块。在发送数据块时,发送器会根据编程要求对数据块中的每个数据加上奇偶校验位。,107,同步串行通信接收格式,8251A监测RxD线;每当RxD线上出现一个数据位时,就把它接收下来并把它送入移位寄存器移位;然后把移位寄存器的内容与同步字符寄存器的内容进行比较,如果两者不相等,则接收下一位数据,并且重复上述比较过程。当两个寄存器的内容相等时,8251A的SYNDET引脚就升为高电平,以告示同步字符已经找到,同步已经实现(内同步)。实现同步之后,接收器和发送器之间就开始进行数据的同步传输。,