1 / 68

第 七章

第 七章. 并行接口 课程名称:微机原理与接口技术 授课方式 : 讲课、实验、提问及作业 主讲人:金永贤. 第七章 并行接口. 教学重点 并行接口的特点 8255A 的工作方式和编程 8255A 的应用. 计算机中通信的方式. 通信 :是指计算机中主机与主机、主机与外设之间信息的传送。一般分别分为 并行通信和串行通信 。 并行通信: 是指传输的线路的多条(四条、八条),一次可并行进行多位二进制位的传送。 串行通信: 是指传输线路只有一条,一次只进行一位二进制位的传送。. 7.1 并行接口的特点.

junior
Download Presentation

第 七章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 七章 并行接口 课程名称:微机原理与接口技术 授课方式:讲课、实验、提问及作业 主讲人:金永贤

  2. 第七章 并行接口 教学重点 并行接口的特点 8255A的工作方式和编程 8255A的应用

  3. 计算机中通信的方式 • 通信:是指计算机中主机与主机、主机与外设之间信息的传送。一般分别分为并行通信和串行通信。 • 并行通信:是指传输的线路的多条(四条、八条),一次可并行进行多位二进制位的传送。 • 串行通信:是指传输线路只有一条,一次只进行一位二进制位的传送。

  4. 7.1 并行接口的特点 • 并行接口最基本的特点是在多根数据线上以数据字(节)为单位与I/O设备或被控对象传送信息。因此并行接口的“并行”含义不是指接口与系统总线一侧的并行数据线而言,而是指接口与I/O设备或被控对象一侧的并行数据线。 • 除少数场合(无条件传送)外,除了要求设置并行数据线的同时,至少还要设置两根联络线,以便进行互锁异步握手方式(即查询方式)的通信。 • 8位或16位是一起传送的。 • 不要求固定的格式,这与串行传送的数据格式不同。 另外从并行接口的电路结构来看,并行接口有硬件连接接口和可编程接口之分。

  5. 7.2 可编程并行接口8255A 一、8255A的外部特性和内部结构 1.8255A的外部基本特性 a.8255A是一个具有两个8位(A口和B口)和两个4位(C口高/低4位),它的C口还具有按位置位/复位功能,为按位控制提供了强有力的支持。 b.8255A能适应CPU与I/O接口之间的多种数据传送方式要求。如无条件传送、应答方式(查询)传送和中断方式传送。

  6. 7.2 可编程并行接口8255A c. 8255A可执行功能很强,具有两条命令(方式字和控制字)。 d. 8255A PC口的使用比较特殊,除作数据口外,当工作1方式和2方式时,它的大部分引脚被分配作专用联络信号;PC口可以进行按位控制;在CPU读取8255A状态时,PC口又作1,2方式的状态口用。 e. 8255A芯片内都主要由控制寄存器、 状态寄存器和数据寄存器组成。

  7. 7.2 可编程并行接口8255A 2.8255A的外部引线与内部结构 (1)外部引脚 它的引脚分为两部分: a.与系统总线的连接信号 D0~D7:双向数据线,用于CPU向8255A发送命令、数 据和8255A向CPU回送状态、数据。 /CS:选片信号,低电平有效。 A1,A0:芯片内部端口地址信号,与系统地址总线低 位相连,用来寻 8255A内部寄存器。两位地址, 可形成片内4个端口地址。 /RD:读信号,低电平有效。

  8. 7.2 可编程并行接口8255A /WR:写信号,低电平有效。CPU通过执行OUT指令使/WR有效,将命令代码或数据写入8255A。 RESET:复位信号,高电平有效。它清除控制寄存器并将8255A的A、B、C三个端口均设置为输入方式;输出寄存器和状态寄存器被复位。 b.与外部设备的连接信号 PA0~PA7:端口A的输入/输出线 PB0~PB7:端口B的输入/输出线 PC0~PC7:端口C的输入/输出线 (2)内部结构 8255A的内部结构如图7.2所示。它由以下4个部分组成:

  9. A组 端口A A组 控制 PA0~PA7 A组 端口C 上部 数据 总线 缓冲器 内部数据线 PC4~PC7 D0~D7 B组 端口B B组 控制 读写 控制 逻辑 RD WR A0 A1 CS RESET PB0~PB7 B组 端口C 下部 内部控制线 PC0~PC3 图7.2 8255A内部结构框图

  10. 7.2 可编程并行接口8255A 数据总线缓冲器;读/写控制逻辑;输入/输出端口A、B、C;A组和B组控制电路:控制A、B、C三个端口的工作方式,A组控制A口和C口的上半部分(PC4~PC7), B组控制B口和C口的下半部分(PC0~PC3)的工作方式和输入输出。 二、8255A的编程命令 8255A编程命令包括方式命令和对PC口的按位操作命令。 由于这两个命令都是送到8255A的同一个命令端口,故为了让8255A能识别是哪个命令,采用在命令代码中设置特征位的方法来区别。

  11. 1. 方式命令字:命令字格式

  12. 例1. 写入方式控制字 • 要求: • A端口:方式1输入 • C端口上半部:输出,C口下半部:输入 • B端口:方式0输出 • 方式控制字:10110001B或B1H • 初始化的程序段: mov dx,303h ;假设控制端口为303H mov al,0b1h ;方式控制字 out dx,al ;送到控制端口

  13. 2.按位置位/复位命令字

  14. 例2. 位控命令控制字 • 要求: 把C口的PC2引脚置成高电平输出 • 方式控制字:00000101B或05H • 初始化的程序段: mov dx,303h ;假设控制端口为303H mov al,05h ;使PC2=1的命令字 out dx,al ;送到命令口

  15. 3.关于两个命令的讨论 a.方式命令是对8255A的3个端口的工作方式及功能进行指定,即进行初始化,初始化工作要在使用8255A之前做。 d.按位置位/复位的命令代码只能写入命令口。 b.按位置位/复位命令只是对C口的输出进行控制,使用它并不破坏已经建立的3种工作方式,而是对它们实现动态控制的一种支持。它可放在初始化程序后的任何地方。 c.两不命令的最高位(D7)都分配了特征位,之所以要设置特征位是为了识别两个不同的命令。在命令代码中设置特征位是解决多个命令字写入同个端口经常采用的方法之一。

  16. 7.2 可编程并行接口8255A 三、8255A的工作方式 在使用8255A时,除了对3个并行端口分配作输入或输出之外,还要考虑输入输出方式。同样是输入(或输出),若方式不同,8255A的引脚(主要是C口的引脚)的信号功能定义不一样,工作时序也不一样,在接口设计时,硬件连接和软件编程也不一样,所以要研究和分析8255A的工作方式。 8255A的工作方式与端口有关,PA口有3种方式(0方式、1方式、2方式),PB口和PC口只有2种工作方式(0方式、1方式)。

  17. 8255A的工作方式 • 方式0:基本输入/输出方式 (0方式输入、0方式输出) • 适用于无条件传送和查询方式的接口电路 • 方式1:选通输入/输出方式 (1方式输入、1方式输出) • 适用于查询和中断方式的接口电路 • 方式2:双向选通传送方式 • 适用于与双向传送数据的外设 • 适用于查询和中断方式的接口电路

  18. 7.3 8255A的0方式及其应用 一、特点 1)0方式是一种基本输人/输出工作方式。不用联络信号,或不使用固定的联络信号,因此,所谓基本I/0方式是指查询方式传送,也包括无条件传送。 2)在0方式下,彼此独立的两个8位和两个4位并行口,共24根I/O线全部由用用户支配,都能被指定作为输入或者作为输出用,共有16种不同的使用组态。要特别强调的是,在0方式下,只能把C口的高4位为一组或低4位为一组同时输人或输出,不能再把4位中一部分作为输入,另一部分作为输出。

  19. 7.3 8255A的0方式及其应用 3)在0方式下,不设置专用联络信号线,需要联络时,可由用户任意指定C口中的哪根线完成某种联络功能,这与后面要讨论的在l方式、2方式下设置固定的专用联络信号线不同。由于无固定的专用联络信号,因此也就在端口与I/O设备之间无固定的时序关系。 4)是单向I/O,一次初始化只能指定端口(PA,PB和PC)作输入或作输出,不能指定端口同时既作输入又作输出。 下面举一个例子说明8255A 0方式的应用

  20. 7.3 8255A的0方式及其应用 二、并行打印机接口设计 1.要求 为某应用系统配置一个并行打印机接口,并且通过接口,CPU采用查询方式把存放在BUF缓冲区的256个字符(ASCII码)送去打印。 2.分析 采用查询方式时,打印机与CPU之间传送数据的过程是: ①首先查询BUSY。若BUSY=1,打印机忙,则等待;若BUSY=0,打印机不忙,则送 数据。 ②通过并行接口把数据送给标准插座8位数据线上,此时数据并未进入打印机。

  21. 7.3 8255A的0方式及其应用 ③再送出一个数据选通信号/STB(负脉冲)给标准插座的1号引脚,把数据线上的数据打入到打印机的内部缓冲器。 ④打印机在收到数据后,通过插座的11号引脚发出“忙”(BUSY=1)信号,表明打印机正在处理输入的数据。等到输入的数据处理完毕(打印完1个字符或执行完1个功能操作),打印机撤消“忙”信号,即置BUSY=0 ⑤最后在10号引脚上送出一个回答信号/ACK给主机,表示上一个字符已经处理完毕。 如此重复工作,直到把全部字符打印出来。 3.设计 接口电路的设计包括硬件接口电路和软件驱动程序两部分。 ①打印机接口电路。打印机接口电路原理框图如图7.3所示。 ②接口驱动程序。打印机驱动程序的流程是根据打印接口标准的时序要求拟定的,其程序框图如图7.4所示。

  22. 开始 8255A初始化 N BUSY=0? Y 送数 送STB 内存+1 字节数减1 N 送完? Y 结束 打印机驱动程序流程图

  23. 打印机驱动程序 code segment assume cs:code,ds:code org 100h start:mov ax,code mov cs,ax mov dx,303h ;8255A命令口 mov al,10000001B ;工作方式字 out dx,al ;(A口0方式,输出,C4~C 7输出,C0~C3输入) mov al,00001111b ;PC7位置高,使STB*=1 out dx,al mov si,offset buf ;打印字符的内存首址 mov cx,0ffh ;打印字符个数 L:mov dx,302h ;PC地址 in al,dx ;查BUSY==0?(PC2=0) and al,04h jnz L ;忙,则等待,不忙,则向A口送数据

  24. 打印机驱动程序 mov dx,300h ;PA口地址 mov al,[si] ;从内存取数 out dx,al ;送到A口 mov dx,303h;8255A命令口 mov al,00001110h ;置STB*为低电平 out dx,al nop ;负脉冲宽度(延时) nop mov al ,00001111b ;置STB*为高 out dx,al inc si ;内存地址加工1 dec cx ;字符数减1 jnz L ;未完继续 mov ax,4c00h ;已完退出 int 21h buf db 256个

  25. 7.4 8255A的1方式及其应用 一、特点 a. 1方式是一种选通输人/输出方式或叫应答方式,因此,需设 置专用的联络信号线或应答信号线,以便对I/O设备和CPU两侧进行联络。 b. PA和PB为数据口,而PC口的大部分引脚分配作专用(固定)的联络信号用,对已经分配作联络信号的C口引脚,用户不能再指定作其他用途。 c.各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。 d.输人/输出操作过程中,产生固定的状态字,这些状态信息可作为查询或中断请求之用。状态字从PC口读取。 e.单向传送。一次初始化只能设置在一个方向上传送,不能同时作两个方向的传送。

  26. 7.4 8255A的1方式及其应用 二、1方式下联络信号线的定义及其时序 a. 1 方式下输入的联络信号线定义及时序 (1)联络信号的定义 因为输入是从I/O设备向8255A送数据进来,所以,I/O设备应先把数据准备好,并送到8255A,然后CPU再从8255A读取数据。这个传送过程中需要使用一些联络信号线。所以当A口和B口为输R入时,各指定了C口的3根线作为8255A与外设及CPU之间应答信号,如图7.8所示

  27. PA7~PA0 PC4 INTEA STBA PC5 IBFA PC3 INTRA 中断允许触发器 方式1输入:A端口 数据选通信号 表示外设已经准备好数据 输入缓冲器满信号 表示A口已经接收数据 中断请求信号 请求CPU接收数据

  28. 数据选通信号 表示外设已经准备好数据 PB7~PB0 PC2 INTEB STBB PC1 IBFB 输入缓冲器满信号 表示B口已经接收数据 PC0 INTRB 中断请求信号 请求CPU接收数据 中断允许触发器 方式1输入:B端口 方式1需借用端口C用做联络信号 同时还具有中断请求和屏蔽功能

  29. 方式1输入联络信号 • STB*——选通信号,低电平有效 • 由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器 • IBF——输入缓冲器满信号,高电平有效 • 8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器 • INTR——中断请求信号,高电平有效 • 8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据

  30. 方式1输入工作时序 • (1)数据输入时,外设处于主动地位,当外设准备好数据并数据线上后,首先发stb*信号,由它把数据输入 到8255A。 • (2)在stb*的下降沿约300ns,数据已锁存到8255A的缓冲器后,引起IBF变高,表示8255A的 “输入缓冲器满”,禁止输入新数据。 • (3)在stb*的上升沿约300ns后,在中断允许的情况下,IBF的高电平产生中断请求,使INTR上升变高,通知CPU接口中已有数据,请求CPu读取。CPU接受中断请求后,转到相应的中断子程序。在子程序中执行IN指令,将缓冲器中的数据取走。 若CPU采用查询方式,则通过查询状态字中的INTR位或IBF位是否置位来判断有无数据可读。 • (4)CPU得知INTR信号有效之后,执行读操作时,RD*信号的下降沿使INTR复位,撤消中断请求,为下一次中断请求作好准备。RD*信号的上升沿延时一段时间后清除IBF使其变低,使IBF=0,表示接口的输入缓冲器变空,允许外设输入新数据。如此反复,直至全部数据输入。

  31. STB RD IBF INTR data 输入端口 data D0~D7 方式1输入时序 STB*和IBF是外设和8255A间 的一对应答联络信号, 为的是可靠地输入数据

  32. 7.4 8255A的1方式及其应用 b. 1 方式下输出的联络信号线定义及时序 (1) 联络信号的定义 因为输出是8255A把数据送到I/O设备去,所以,数据要由CPU准备好,并且先写到8255A,然后,再从8255A把数据输出去。这个传输过程中需使用一些联络信号。所以当A口和B口输出时,各指定了C口的3根线作为8255A与外设及CPU之间的联络信号如图7.10所示。

  33. PA7~PA0 PC6 INTEA ACKA PC7 OBFA PC3 INTRA 中断允许触发器 方式1输出:A端口 外设响应信号 表示外设已经接收到数据 输出缓冲器满信号 表示CPU已经输出了数据 中断请求信号 请求CPU再次输出数据

  34. 外设响应信号 表示外设已经接收到数据 PB7~PB0 PC2 INTEB ACKB PC1 OBFB 输出缓冲器满信号 表示CPU已经输出了数据 PC0 INTRB 中断请求信号 请求CPU再次输出数据 中断允许触发器 方式1输出:B端口

  35. 方式1输出联络信号 端口A的INTEA对应PC6 端口B的INTEB对应PC2 • OBF*——输出缓冲器满信号,低有效 • 8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走 • ACK*——响应信号,低有效 • 外设的响应信号,指示8255A的端口数据已由外设接受 • INTR——中断请求信号,高有效 • 当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据

  36. 方式1输出工作时序 • (1)数据输出时,CPU应先准备好数据,并把数据写到8255A输出数据寄存器。当CPU向 8255A写完一个数据后,WR*的上升沿使OBF*有效,表示8255A的输出缓冲器已满,通知外设读取数据,并且WR*使 中断请求INTR变低,封锁中断请求。 • (2)当外设得到OBF*有效的通知后,开始读数,当外设读取数据后,用ACK*回答8255A,表示数据已收到。 • (3)ACK*的下降沿将OBF*置高,使OBF*无效,表示输出缓冲器变空,为下一次输出作准备。 • (4)在中断允许(INTE=1)的情况下ACK*的上升沿使INTR变高,产生中断请求。CPU响应中断后,在中断服务程序中,执行OUT指令,向8255A写下一个数据。

  37. WR OBF INTR ACK data 输出端口 D0~D7 data 方式1输出时序 OBF*和ACK*是外设和8255A间 的一对应答联络信号, 为的是可靠地输出数据

  38. 7.4 8255A的1方式及其应用 • 三、1方式的状态字 1 .状态字的作用 在1方式下8255A有固定的状态字,状态字为查询方式提供了状态标志位。 2.状态字的格式

  39. 7.4 8255A的1方式及其应用

  40. 7.4 8255A的1方式及其应用 3 .使用状态字时要注意的几个问题 a.状态字是在8255AA输入/输出操作过程中由内部产生,从C口读取的,因此从C口读出的状态字是独立于C口的外部引脚的,或者说与C口的外部引脚无关. b.状态字中供CPU查询的状态位有:输入时----IBF位和INTR位;输出时---OBF位和INTR位。但从可靠性来看,查INTR位比查IBF位或OBF位更可靠,这一点可从1方式下输入和输出的时序关系图得到证实。所以,在1方式下采用查询方式时、一般都是查询状态字中的INTR位. c.状态字中的INTE位,是控制标志位,控制8255A能否提出中断请求,因此它不是I/O操作过程中自动产生的状态位,而是由程序通过按位 置位/复位命令来设置或清除的。

  41. 举例 例1:若允许PA口输入时,产生中断请求,则必须设置INTEA=1 ,即置PC4=1;若禁止产生中断请求,则置INTEA =0;即置PC4 = O,其程序段为: mov dx,303h ;8255A命令口 mov al,00001001B ;置PC4=1,允许中断请求 out dx,al mov al,00001000B ;置PC4=0,禁止中断请求 out dx,al

  42. 7.4 8255A的1方式及其应用 • 四、1方式的接口方法 在1方式下,首先根据实际应用的要求确定A口和B口是作输入还是输出,然后把C口中分配作联络的专用应答线与外设相应的控制或状态线相连。如果是采用中断方式,还要把中断请求线INTR接到微处理器或中断控制器;若采用查询方式,中断请求线可以空着不接,而去查状态字中的INTR状态位。 1方式的中断处理,由于8255A不能直接提供中断矢量,所以一般都通过系统中的中断控制器(如8259A)来提供寻找中断服务程序入口地址的中断类型号。当然,对于不采用矢量中断的微处理器,可以将INTR线直接连到CPU的中断线(例如在单片机系统中)。

  43. 7.4 8255A的1方式及其应用 • 五、两种方式并行传送接口设计 1.要求 在甲乙两台微机之间并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255A采用1方式工作,乙机一侧的8255A采用0方式工作。两机的CPU与接口之间都采用查询方式交换数据。 2.分析 根据题意,双机均采用可编程并行接口芯片8255A构成接口电路,只是8255A的工作方式不同。此时,双方的8255A把对方视为I/O设备。 3.设计 (1)硬件连接 根据上述要求,接口电路的连接如图7.13所示。甲机8255A是1方式发送,因此,把PA口指定为输出,发送数据,而PC7和PC6引脚分别固定作联络线OBF*和ACK*。乙机8255A是0方式接收数据,故

  44. 7.4 8255A的1方式及其应用 把PA口定义为输入,另外,选用引脚PC7和PC3作联络线。虽然,两侧的8255A都设置了联络线,但有本质的差别:甲机8255A是1方式,其联络线是固定的不可替换;乙机的8255A是0方式,其联络线是不固定的,可以选择,比如可选择PC4和PC1或PC5、PC2等任意组合。 (2)软件编程 接口驱动程序包含发送与接收两个程序。其程序流程图如图7.14所示。

  45. 甲机发送程序 MOV DX,303H ; 8255A命令口 MOV AL, 10100OOOB ;初始化工作方式字 OUT DX,AL MOV AL, ODH ;置发送中断允许INTEA=1 OUT DX,AL ; PC6=1 MOV SI, OFFSET BUFS ;设置发送数据区的指针 MOV CX, 3FFH ;发送字节数 MOV DX, 300H ;向A口写第一个数,产生第一个OBF* MOV AL,[SI] ;送给乙方,以便获取乙方的ACK*信号 OUT DX,AL INC SI ;内存地址加1 DEC CX ;传送字节数减1 L: MOV DX,302H ;8255A状态口 IN AL, DX ;查发送断请求INTRA=1? AND AL,08H ; PC3=1?

  46. 甲机发送程序 JZ L ;若无中断请求,则等待 ;若有中断请求,则向A口写数 MOV DX.300H ;8255APA口地址 MOV AL,[SI] ;从内存取数 OUT DX,AL OUT DX,AL ;通过A口向乙机发送第二个数据 INC SI ;内存地址加1 DEC CX ;字节数减1 JNZ L ;字节未完,继续 MOV AH,4COOH ;已完,退出 INT 21H ;返回DOS BUFS DB 1024个数据

  47. 乙机接收程序: MOV DX,303H MOV DX,303H MOV AL,10011000B MOV AL,00000110B OUT DX,AL OUT DX,AL MOV AL,00000111B NOP OUT DX,AL NOP MOV DI,OFFSET BUFR MOV AL,00000111B MOV CX,3FFH OUT DX,AL L1:MOV DX,302H INC DI IN AL,DX DEC CX AND AL,80H JNZ L1 JNZ L1 MOV CX,4C00H MOV DX,300H INT 21H IN AL,DX BUFR DB 1024 DUP MOV MOV [DI],AL

  48. 六、应用举例2—主从结构双向传送并行接口设计六、应用举例2—主从结构双向传送并行接口设计 1. 硬件设计

  49. 2.软件设计 发送“采样命令”程序: 采样命令代码为0FH MOV DX,303H MOV DX,303H MOV AL,0CH MOV AL,10110001B OUT DX,AL OUT DX,AL NOP MOV AL,0DH NOP OUT DX,AL MOV AL,0DH NOP OUT DX,AL MOV DX,301H NOP MOV AL,0FH RET OUT DX,AL START ENDP NOP CODE ENDS END START

  50. 80286接收程序: MOV DX,303H MOV AL,00001001B ; 置INTEA=1(PC4=1) OUT DX,AL MOV DX,302H L:IN AL,DX AND AL,08H ;查INTRA=1? JZ L MOV DX,300H IN AL,DX RET

More Related