1 / 61

第八章 并行接口芯片

第八章 并行接口芯片. 教学重点 8255A 的功能 8255A 的内部结构、引脚 8255 的工作方式和编程 8255 的应用. 并行数据传输方式. 并行传输以计算机的字长为传输单位(通常是 8 位、 16 位或 32 位),一次传送 1 个字长的数据 并行传输 微机系统中最基本的信息交换方法 例如:系统板上各部件之间,接口电路板上各部件之间 适合于外部设备与微机之间进行近距离、大量和快速的信息交换 例如:微机与并行接口打印机、磁盘驱动器. 第一节 可编程的输入输出接口 8255A. 8255A 是具有多种功能的可编程并行接口电路芯片, 40 个引脚。

altessa
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. 第八章 并行接口芯片 • 教学重点 • 8255A的功能 • 8255A的内部结构、引脚 • 8255的工作方式和编程 • 8255的应用

  2. 并行数据传输方式 • 并行传输以计算机的字长为传输单位(通常是8位、16位或32位),一次传送1个字长的数据 • 并行传输微机系统中最基本的信息交换方法 • 例如:系统板上各部件之间,接口电路板上各部件之间 • 适合于外部设备与微机之间进行近距离、大量和快速的信息交换 • 例如:微机与并行接口打印机、磁盘驱动器

  3. 第一节 可编程的输入输出接口8255A • 8255A是具有多种功能的可编程并行接口电路芯片,40个引脚。 • 一、8255A的结构 • 8255有3个8位的数据端口(A/B/C),共24个I/O引脚,各端口共有3种输入输出工作方式 • 基本输入/输出(A/B/C口) • 选通输入或选通输出(A/B口) • 双向选通(A口)

  4. 一、8255A的内部结构和引脚 A组 端口A A组 控制 PA0~PA7 A口 A组 端口C 上部 数据 总线 缓冲器 PC4~PC7 CH口 内部数据线 D0~D7 B组 端口B B组 控制 PB0~PB7 B口 RD WR A0 A1 CS RESET 读写 控制 逻辑 B组 端口C 下部 内部控制线 PC0~PC3 CL口

  5. 5

  6. 1. 连接外设的数据端口 • 端口A:PA0-PA7,8位端口,支持工作方式0、1、2 • 端口B:PB0-PB7,8位端口,支持工作方式0、1 • 端口C:PC0-PC7,拆分为两个4位端口,仅支持工作方式0 • 端口A:PA0-PA7 (A组控制) • 常作数据端口使用,功能最强大 • 端口B:PB0-PB7 (B组控制) • 常作数据端口使用 • 端口C:PC4-PC7 (A组控制), PC0-PC3 (B组控制) • 可作数据、状态或控制端口使用 • 可拆分成两个4位端口分别输入或输出 • 每位可独立进行输出控制(位控制) • 使用最灵活,较难掌握

  7. 2. 与处理器的连接引脚

  8. 二、 8255A的工作方式 P343 图8-2 • 方式0:基本输入输出方式(不带联络) • 适用于无条件传送和查询方式的接口电路 • 方式1:选通输入输出方式(带输入联络或输出联络) • 适用于查询和中断方式的接口电路 • 方式2:双向选通方式(同时带输入联络和输出联络) • 适用于可双向传送数据的外设 • 适用于查询和中断方式的接口电路

  9. CPU 8255 外设 内总线 外总线 方式0的输入时序(数据来自外设) RD 输入端口 外设提供数据 CS、A1A0 D0~D7 数据 请体会这里8255A的数据缓冲作用

  10. CPU 8255 外设 内总线 外总线 方式0的输出时序(数据来自CPU) WR 输出端口 数据 CS、A1A0 D0~D7 CPU数据 8255A对CPU输出的数据进行锁存

  11. 方式1输入引脚:端口A 外设数据 PA7~PA0 数据选通信号 表示外设已经准备好数据 PC4 INTEA STBA PC5 IBFA 输入缓冲器满信号 表示A口已经接收数据 PC3 INTRA 中断请求信号 请求CPU接收数据 中断允许触发器 征用C口3引脚和1个控制位

  12. 方式1输入引脚:端口B 外设数据 PB7~PB0 数据选通信号 表示外设已经准备好数据 PC2 INTEB STBB PC1 IBFB 输入缓冲器满信号 表示B口已经接收数据 PC0 INTRB 中断请求信号 请求CPU接收数据 中断允许触发器 征用C口3引脚和1个控制位

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

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

  15. 方式1中断控制 • 8255A的中断由中断允许触发器INTE控制 • 置位允许中断,复位禁止中断 • 对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器 • 选通输入方式下 • 端口A的INTEA对应PC4 • 端口B的INTEB对应PC2

  16. 方式1输出引脚:端口A 输出数据 PA7~PA0 外设响应信号 表示外设已经接收到数据 PC6 INTEA ACKA PC7 OBFA 输出缓冲器满信号 表示CPU已经输出了数据 PC3 INTRA 中断请求信号 请求CPU再次输出数据 中断允许触发器 通过位控PC6设置INTEA 征用C口3引脚和1个控制位

  17. 方式1输出引脚:端口B 输出数据 PB7~PB0 外设响应信号 表示外设已经接收到数据 PC2 INTEB ACKB PC1 OBFB 输出缓冲器满信号 表示CPU已经输出了数据 PC0 INTRB 中断请求信号 请求CPU再次输出数据 中断允许触发器 通过位控PC2设置INTEB 征用C口3引脚和1个控制位

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

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

  20. 方式2 双向选通方式 • 方式2将方式1的选通输入与选通输出功能组合成一个双向数据端口,可以发送数据和接收数据 • 只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同 • 方式2的数据输入过程与方式1的输入方式一样 • 方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK有效时才送出数据

  21. 方式2 双向选通引脚 中断允许触发器 (控制中断输出) 通过位控PC6设置INTE1 PA7~PA0 数据 PC6 输出联络 INTE1 ACKA 中断允许触发器 (控制中断输出) 通过位控PC4设置INTE2 PC7 -OBFA PC4 STBA INTE2 输入联络 PC5 输入中断和输出中断 通过或门输出INTRA信号 IBFA PC3 INTRA 征用C口5引脚和2个控制位

  22. 方式2 双向选通时序 WR OBF INTR ACK STB IBF RD 输出数据 输入数据 PA0~PA7 输入数据 输出数据 D0~D7 该例中:CPU先输出数据,再读取外设输入的数据

  23. 三、 8255A的编程 • 初始化编程:只写 1 个方式控制字到控制口 • 控制口I/O地址:A1A0=11 • 工作过程中:通过数据端口对外设数据进行读写 • 数据口A、B和C的I/O地址,分别为:00、01、10 • IBM PC/XT机上,数据口A/B/C和控制口的I/O地址分别为:60H、61H、62H和63H

  24. 1. 向控制口写方式字——控制字格式 A组控制 B组控制 25h 表示:A口方式1输出,CH口输出,B口方式1输入,CL口输入。

  25. 1. 向控制口写方式字——示例 • 要求: • A口:方式1输入 • CH口:输出 • CL口:输入 • B口:方式0输出 • 方式控制字:10110001 B或B1H • 初始化的程序段: mov dx,0fffeh ;假设控制端口为FFFEH mov al,0b1h ;方式控制字 out dx,al ;送到控制端口

  26. 2. 读写数据端口(A口/B口/C口) • 初始化编程后: • 当数据端口作为输入接口时,CPU执行输入IN指令, CPU将从输入设备得到外设数据 • 当数据端口作为输出接口时, CPU执行输出OUT指令,将把CPU的数据送给输出设备 • 8255A具有锁存输出数据的能力 • 对设置为输出的端口同样可以输入(读) • 此时不是读取外设数据,而是读取的是前次CPU输出给外设的数据(锁存在锁存器中)

  27. 2. 读写数据端口:示例 • 利用8255A的输出锁存能力,可实现对某一位的输出控制 • 对输出端口B的PB7位置位的程序段: mov dx,0fffah ;B端口假设为FFFAH in al,dx ;读出B端口原输出内容 or al,80h ;使PB7=1 out dx,al ;输出新的内容

  28. 3. 涉及C口的操作——归纳1 • 在控制上,C口上半部(CH)和A口被编为A组,C口下半部(CL)和B口被编为B组。即它被拆分成两个4位端口分别进行控制: • 两个4位端口均只能工作于方式0(指未被征用的引脚) • 但可分别选择输入或者输出 • C口具有唯一的地址,可按8位方式进行读/写,此时: • 设置为输出的引脚可读可写(输出锁存器) • 设置为输入的引脚可读(引脚)、写操作无意义 • 在选通方式下,对被征用的引脚可读(分别映射到中断允许位、输入/输出缓冲器状态位、中断请求状态位)。 • C口还可通过位控字进行按位的写(只写C口1位): • 对设置为输出的引脚可写(输出锁存器) • 在选通方式下,对被征用的输入引脚可写(映射到中断允许位)

  29. 3. 涉及C口的操作——归纳2 • 当A和B口工作在方式1或方式2时,C口的部分引脚或全部引脚将被征用: • A口方式1将征用C口3个引脚: • 输出:PC6/PC7(输出联络) , PC3(中断) • 输入:PC4/PC5(输入联络) , PC3(中断) • B口方式1将征用C口3个引脚: • 输出: PC2/PC1(输出联络),PC0(中断 ) • 输入: PC2/PC1(输入联络),PC0(中断 ) • A口方式2将征用5个引脚: • PC4/PC5(输入联络),PC6/PC7(输出联络 ),PC3(中断) • C口未被征用的引脚仍将工作在方式0,但必须成组进行设置,即CH或CL中的引脚必须同为输入或同为输出。

  30. 3. 涉及C口的操作——归纳3 • 对C口的数据输出有两种办法 • 向C口直接写字节数据——该数据将被写进C端口的输出锁存器中,并从设置为输出的引脚输出,但对设置为输入的引脚无效。 • 向控制口写位控字——使C口设置为输出的某个引脚输出1或0。 • 在选通方式下向控制口写位控字——还可置位或复位8255内部的中断允许触发器。在选通方式下,该触发器已被映射在C口被征用的某个输入引脚上。

  31. 向控制口写入位控字 • 位控字用于控制C口的输出引脚( CH/CL口工作于基本方式)或内部的中断允许位(A/B口工作于选通方式), • 位控字应写入8255的控制口,例如: mov al,0dh out 控制口,al • 当CH工作在非选通输出方式时,令PC6引脚输出1; • 当A口工作在选通输出或双向选通输出方式时,将相应的中断允许位INTEA或INTE1置1(开中断)。 0dh

  32. 3. 涉及C口的操作——归纳4 • 读取C口数据有两种情况: • 针对未被A和B端口征用的引脚: • 将从定义为输入的位读到引脚上的输入信息 • 将从定义为输出的位读到前次输出锁存的信息 • 针对已被A和B端口征用作为联络线的引脚: • 将读到反映8255A工作状态的状态字,其中包括: • 数据缓冲器的状态(-OBFx 或 IBFx) • 中断允许的状态(INTEx) • 中断请求的状态( INTRx)

  33. 从端口C读到状态字 A组控制 B组控制

  34. 10.2 8255A的应用 • 作为通用的并行接口电路芯片,825A具有广泛的应用,如: • 应用在IBM PC/XT微机上 • 应用于打印机接口电路 • 用于连接简易键盘 • 用于驱动LED数码管 • 等等

  35. 第二节 8255A在IBM PC/XT上的应用 • 工作在基本输入/输出方式0 • 端口A为方式0输入,用来读取键盘扫描码 • 端口B工作于方式0输出,例如控制扬声器等 • 端口C为方式0输入,读取系统状态和配置 • 系统的初始化编程: mov al,1 0011001 b ;方式控制字99H out 63h,al

  36. 打印机接口的信号与时序 • 主机把数据送给引脚DATA0~DATA7 • 同时送出数据选通信号STROBE • 打印期间,打印机在BUSY信号线上发出忙信号 • 打印机处理好输入的数据时 • 撤消忙信号 • 同时又送出一个响应信号ACK

  37. 以打印机为例说明8255应用 • 打印机接口的信号与时序 DATA0~7 (入) STROBE(入) 一般用于查询 打印机忙 BUSY(出) 一般用于选通 ACK(出) 打印机响应

  38. 用8255A方式0与打印机接口 8255A 打印机 DATA0~7 PA0~PA7 PC7 STROBE BUSY PC2

  39. 8255A的初始化 mov dx,0fffeh ;控制口地址:FFFEH mov al,1 0000 001B ;方式控制字:91H out dx,al ;A口方式0 输出, CH输出、 CL输入 mov al,0 000 111 1B ;位控字,令PC7=1,即-STROBE无效 out dx,al 例10.1

  40. 打印子程序:查询 printc proc push ax push dx prn: mov dx,0fffch ;读取端口C in al,dx ;查询打印机状态 and al,04h ;测试PC2(BUSY) jnz prn ;为1,打印机忙,则循环等待 例10.1

  41. 打印子程序:输出 mov dx,0fff8h ;为0,打印机不忙,则输出数据 mov al,ah out dx,al ;将打印数据从端口A输出 例10.1

  42. 打印子程序:打印 mov dx,0fffeh ;从PC7送出控制负脉冲 mov al,0 000 111 0B ;置-STROBE=0(有效) out dx,al nop ;产生一定宽度的负脉冲 nop mov al,0 000 111 1B ;置-STROBE =1(无效) out dx,al ;打印机-STROBE端输入负脉冲 例10.1

  43. 打印子程序:返回 pop dx pop ax ret printc endp 例10.1

  44. 10.2.3 用8255A方式1与打印机接口 打印机 8255A DATA0~7 PA0~PA7 -ACK PC6 ACK -OBF 1 4 LS123 单稳 电路 PC7 STROBE PC3 2 14 3 +5V INTR 15 1000pf 2K 调整-STROBE负脉冲的宽度

  45. 8255A方式1与打印机接口时序配合 PA0~PA7 (DATA0~7) OBF STROBE ACK 打印机在方式1工作时的时序

  46. 8255A的初始化 mov dx,0fffeh mov al,0a0h ;方式字1 0100 000 out dx,al mov al,0ch ;位控字,令INTEA(PC6)为0,禁止中断 out dx,al …… mov cx,counter ;打印字节数送CX mov bx,offset buffer ;取字符串首地址 call prints ;调用打印子程序 例10.2

  47. 打印子程序:输出 prints proc push ax ;保护寄存器 push dx print1: mov al,[bx] ;取一个数据 mov dx,0fff8h out dx,al ;从端口A输出 例10.2

  48. 打印子程序:查询 mov dx,0fffch print2: in al,dx test al,80h ;检测PC7,即-OBFA状态 jz print2 ;为0,说明打印机方面未响应, ;继续检测 例10.2

  49. 打印子程序:返回 inc bx ;为1时打印机已接收数据 loop print1 ;准备输出下一个数据 pop dx ;打印结束,恢复寄存器 pop ax ret ;返回 prints endp 例10.2

  50. 10.2.4 双机并行通信接口 甲方(发送) 方式1 输出 乙方(接收) 方式0 输入 CPU 查询引脚输入 有效时,读数据 并输出应答信号 PA0~PA7 PA0~PA7 CPU查询 中断请求标志, 亦可查询 输出缓冲器状态 PC4 OBF PC7 ACK PC6 PC0 8255A 8255A 两机均采用查询方式工作

More Related