1 / 60

第六章:可编程并行接口芯片和串行接口芯片

第六章:可编程并行接口芯片和串行接口芯片. 主讲教师:范新民. 2. 6.2 可编程并行接口芯片 8255A. 1. 6.1 并行接口与串行接口. 6.3 可编程串行接口芯片 8251. 3. 主要内容:. 可编程并行接口芯片和串行接口芯片. 6.1 并行接口与串行接口. 并行接口: 是指数据的各位同时进行传送,其特点是传输速度快,但当传输距离较远、位数又多时,导致了通信线路复杂且成本提高。. 串行接口: 是指一条信息的各位数据被逐位按顺序传送的通讯方式。其特点是数据按位传送,最少只需一根传输线即可完成,成本低但传送速度慢。.

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. 2 6.2 可编程并行接口芯片8255A 1 6.1 并行接口与串行接口 6.3 可编程串行接口芯片8251 3 主要内容:

  3. 可编程并行接口芯片和串行接口芯片 6.1 并行接口与串行接口 并行接口: 是指数据的各位同时进行传送,其特点是传输速度快,但当传输距离较远、位数又多时,导致了通信线路复杂且成本提高。 串行接口: 是指一条信息的各位数据被逐位按顺序传送的通讯方式。其特点是数据按位传送,最少只需一根传输线即可完成,成本低但传送速度慢。

  4. 并行接口与串行接口 串口与并口: 并口由于8位通道之间的互相干扰。传输时速度就受到了限制。而且当传输出错时,要同时重新传8个位的数据。串口没有干扰,传输出错后重发一位就可以了。所以串口速度非常快。

  5. 一、可编程接口芯片的功能和电路组成 多数I/O接口具有如下功能及其电路单元: • 输入/输出数据锁存器和缓冲器,用以解决CPU与外设之间速度不匹配的矛盾,以及起隔离和缓冲的作用; • 控制命令和状态寄存器,以存放CPU对外设的控制命令,以及外设的状态信息; 并行接口与串行接口 6.1.1 可编程接口芯片概述 • 地址译码器,用来选择接口电路中的不同端口; • 读写控制逻辑 • 中断控制逻辑

  6. 二、可编程接口芯片的几个概念 • 片选的概念 必须要有一个地址信号选中接口芯片后,才能使该接口芯片进入电路工作状态,实现数据的输入/输出。 选通端CE(Chip Enable),又称片选端CS(Chip Select)。 CE端是控制接口芯片进入电路工作状态的引脚端。 可编程接口芯片概述

  7. 可编程接口芯片概述 • 读/写概念: • 当地址信号稳定,读信号和访问I/O口控制信号有效时,片选信号稳定,CPU数据线和输入口接通,进行读操作。 • 当地址信号稳定,CPU输出数据,写信号和访问I/O口控制信号有效时,片选信号稳定,数据写入I/O口。

  8. 可编程接口芯片概述 • 可编程接口的概念 • 接口芯片大部分是多通道、多功能的。 • 多通道是指一个接口芯片一面与CPU连接,另一面可接几个外设; • 多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。接口芯片功能可由程序改变。

  9. 可编程接口芯片概述 • “联络”的概念 • 接口芯片常常需要和外设间有一定的“联络”信号,以保证信息的正常传送。 • 通常采用两个“联络”(Handhake)信号: (选通信号,strobe)和RDY(就绪信号,Ready)。

  10. 8255A的结构和引脚功能 • 8255A的工作方式 • 8255A的初始化 • 8255A的应用举例 • 16位系统中的并行接口 6.2 可编程并行接口芯片8255A

  11. 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 6.2.1 8255A的结构和引脚功能 1、8255A的内部结构

  12. 8255A的内部结构 (1) 数据端口 端口A:PA0~PA7,数据输出锁存器/缓存器和输入锁存器, 可用于数据双向传输。 端口B:PB0~PB7,数据输出锁存器/缓存器和输入缓存器, B口作为输出口时数据可得到锁存,做输入口时, 外设输入的数据必须维持到有效读取为止。 端口C:PC0~PC7,结构同B口,可作为两个4位端口使用, 可配合A口或B口在数据传输时做控制、状态和中断 请求信号使用。

  13. 8255A的内部结构 (2)A组控制和B组控制 A口和高4位PC4~PC7构成A组,B口和低4位PC0~PC3构成B组。一组有一个控制寄存器接收CPU控制字,确定8255工作方式。 (3)数据总线缓冲器 八位三态双向缓冲器,用于8255与CPU数据总线的接口。 (4)读/写控制逻辑 把接受来自CPU的地址和控制信号发送给两个控制组。根据不同的信息进行不同的传送。

  14. 8255A的引脚 • 2、8255A的引脚及其功能 • (1)端口引脚 • PA0~PA7:端口A数据线,双向,三态。 • PB0~PB7:端口B数据线,双向,三态。 • PC0~PC7:端口C数据线,双向,三态。 • (2)和CPU连接的引脚 • D7~D0:数据线,与系统总线连接。 • RD:读信号,输入,低电平有效,从8255A读取数据 • WR:写信号,输入,低电平有效,把数据写入8255

  15. 8255A的引脚 CS:片选信号,输入,低电平有效,决定芯片地址。 RESET:复位信号,输入。将所有内部寄存器的内容清零, 3个数据端口设为输入工作方式。 A0,A1:端口选择信号,8255占四个端口地址: 根据RD、WR、CS、A0、A1的不同组合决定8255A的不同端口的操作

  16. 6.2.2 8255A的工作方式 1、方式0—基本输入输出 • 端口A、B和C都可工作于输入或输出。三个端口无必然联系,各端口输入输出组合共有16种,可适用于多种用途。 • CPU可以采用无条件读写方式与8255A交换数据。 • 若把C口的两个部分用作控制和状态口,与外设的控制和状态端相连,CPU也可通过对C口的读写,实现A口与B口的查询方式工作。 • 输出的数据被锁存, 输入的数据不锁存

  17. 8255A的工作方式 2、方式1—选通输入输出(应答式输入输出) 端口A和B输入/输出数据时,必须利用端口C提供联络信号(选通、应答信号)。 一般情况下,用中断传送数据方式(也可用查询方式)。 这时: 通道A:8位数据端口(A口),3位控制位(C口)。 通道B:8位数据端口(B口),3位控制位(C口) 。 这种配合固定,不可以用程序修改。

  18. 8255A的工作方式 • 特点: • 端口A、B既可做输入又可做输出。 • 端口C引脚分别作为控制、状态和中断申请信号等。 • 若只有一个端口工作在方式1,则余下13位可工作在方式0。 • 若两个端口都工作在方式1,则余下2位可由程序指定为输入或输出。 端口A、B工作于方式1的输入或输出时,端口C联络信号的引脚和意义都不同。

  19. 8255A的工作方式 (1)方式1的输入传送 A、B两个口都设为方式1输入方式

  20. 8255A的工作方式 • STB:输入选通信号,输入,低电平有效,表示外设输入的数据送至8255A的输入锁存器中。 • IBF:输入缓冲区满,输出,高电平有效。通知外设输入缓冲区满,不要送新数据,由CPU读取数据时(RD的上升沿)清除,表明输入缓冲器可以接受新数据。 • INTR:中断请求信号,输出,高电平有效,可向CPU申请中断。 • INTE:中断允许,INTEA是C口输出锁存器的PC4,INTEB是C口输出锁存器的PC2,由它们分别控制A口和B口的中断申请。 • (可由C口置 /复位控制字将INTE置1 或复位为0)

  21. PA7~PA0 外设送来数据 ① PB7~PB0 ② STB 当INTE=1时 IBF INTR ③ RD 8255A的工作方式 方式1的输入时序: 从工作在方式1下的输入端口输入数据时,有关信号的变化关系。

  22. 8255A的工作方式 以中断方式输入数据: • ① 当外设数据准备好,将数据送至端口线PA7~PA0或PB7~PB0 • ② 外设发出选通信号STB: • 将数据锁存在输入端口内。 • 使IBF变高,表示输入端口满,可用于阻止外设输入新数据。 • 如果INTE=1, STB的上升沿使INTR变高,发出中断请求。 • ③ 中断处理程序中CPU 读取数据,发出RD信号: • (1) RD 的下降沿清除INTR • (2) RD 的上升沿清除IBF • (3) 端口内的数据进入CPU

  23. 8255A的工作方式 以查询方式输入数据: • ① 当外设数据准备好,将数据送至端口线PA7~PA0或PB7~PB0 • ② 外设发出选通信号STB: • 将数据锁存在输入端口内。 • 使IBF变高,表示输入端口满,可用于阻止外设输入新数据。 ③ 在主程序中CPU查询IBF,若其为高电平,读取数据,发出RD • 信号: • RD 的上升沿清除IBF • 端口内的数据进入CPU

  24. 8255A的工作方式 查询方法从8255的A口向CPU输入数据: 程序如下: INPUT: IN AL,PortC ;读方式1状态信号 TEST AL,20H ;查A口的IBF JZ INPUT ;IBF=0,数据未准备好 IN AL,PortA ;IBF≠0,CPU读入数据 方式1输入时共用到C口6个引脚,剩余2个引脚PC6、PC7可做I/O位,或由C口置 /复位控制字决定其输出。

  25. 8255A的工作方式 (2)方式1的输出传送 B口方式1输出时相应的联络信号 A口方式1输出时相应的联络信号

  26. INTE:中断允许,INTEA、INTEB分别控制A口和B口的中断申请。(INTEA由PC6、INTEB由PC2控制) 8255A的工作方式 控制信号: • OBF:输出缓冲器满,输出,表示CPU已将数据输出到指定端口,通知外设可以将数据取走。 • ACK:响应信号,输入。外设通知8255已取走数据,并清除OBF,置INTR为“1”。 • INTR:中断请求信号,输出。向CPU申请中断,请求CPU输出后续数据。(条件:OBF∧ACK∧INTE=1)

  27. D7~D0 送往外设数据 数据写入端口 WR ② OBF 当INTE=1时 INTR ACK ③ 8255A的工作方式 方式1的输出时序: • ① CPU输出数据 • ② CPU发出WR: • 数据写到 8255A的端口 • 使OBF有效,表示输出端口满, • 清除中断请求信号INTR • ③ 外设接受到数据后,发出ACK信号: • (1) ACK的下降沿使OBF变高, • (2) 当INTE=1, ACK的上升沿使INTR变高,请求CPU输出新的数据 以中 断方 式输 出数 据:

  28. 8255A的工作方式 以查询方式输出数据: ① CPU输出数据 ② CPU发出WR: (ⅰ)数据写到 8255A的端口 (ⅱ) 使OBF有效,表示输出端口满,通知外设取数据。 ③ 外设接受到数据后,发出ACK信号: (ⅰ)ACK的下降沿使OBF变高, (ⅱ)在主程序中CPU查询OBF,若其为高电平,数据已 取走,端口可接受新的数据。

  29. 8255A的工作方式 查询方法向8255的A口输出数据: 程序如下: OUTPUT: IN AL,PortC ;读方式1状态信号 TEST AL,80H ;查A口的OBF,设备空闲? JZ OUTPUT ;OBF=0,不空,等待。 MOV AL,DATAS OUT PortA,AL ;OBF=1,CPU输出数据。 注意: 方式1输出时共用到C口6个引脚,剩余2个引脚PC4、PC5可做I/O位,或由C口置 /复位控制字决定其输出。

  30. 8255A的工作方式 3、方式2—双向选通输入输出 • 方式2只限于A组使用。 • 与方式0、方式1的单向传送不同,工作在方式2下的端口A,具有双向传送功能。 • 端口工作在方式2时,C口的5根引脚作为端口的联络信号;是方式1下A口输入、输出联络信号的组合。 • C口未做联络信号的3条引脚,可作为B口在方式1下的联络线,也可和B口一样工作在方式0。由方式控制字决定其输入/输出。

  31. 8255A的工作方式 方式2下的时序为方式1输入/输出两者的组合。

  32. 6.2.3 8255A的控制字及初始化 使用8255A,首先要由CPU对8255A写入控制命令字。 有2种控制命令字: • 方式选择控制字; • C口按位置位/复位控制字; 1、方式选择控制字 (D7=1) 控制字可以使8255A的三个数据端口工作在不同的工作方式,将三个端口分为两组来设定。 8255A的工作方式

  33. A组:A端口C口高4位 B组:B端口C口低4位 1 D6 D5 D4 D3 D2 D1 D0 A组方式 00:方式0 01:方式1 1X: 方式2 PC3~PC0 0:输出 1:输入 PA口 0:输出 1:输入 B组方式 0:方式0 1:方式1 特征值 PC7~PC4 0:输出 1:输入 PB口 0:输出 1:输入 8255A的控制字 8255A方式选择控制字

  34. 不用 位选择 0 D6 D5 D4 D3 D2 D1 D0 000:C口0位 001:C口1位 ┆ ┆ 111:C口7位 置位/复位 1:置位 0:复位 特征值 8255A的控制字 2、端口C按位置/复位控制字(D7=0) 可使8255作为位控接口,实现对外设的按位控制。

  35. 向PC5送0电平 延时 向PC5送1电平 延时 方波个数到? 8255A的控制字 例:利用位复位和置位可使端口C PC5位产生方波。 程序如下: MOV CX,10 LOP: MOV AL,0AH OUT POR-CL,AL ;置0 CALL DELAY MOV AL,0BH OUT PORT-CL,AL ;置1 CALL DELAY LOOP LOP

  36. 6.2.4 8255A的应用实例 1、初始化设置 例:一8088系统的8255A工作于方式0,端口A为输入,端口B为输出,若系统中8255A的口地址为80H-83H。 1001X00X 方式控制字: 初始化程序: MOV AL,90H OUT 83H,AL

  37. D0~D7 8255A A1 A0 Yi 8255A的应用实例 例6-2:开关接口 (8255端口地址:60H~63H) 实现如下功能:每隔5分钟从PA口读入8个开关的状态存入2000H:3000H开始的数据区,工作10小时结束。

  38. 8255A的应用实例 程序设计: • MOV AX,2000H • MOV DS,AX • MOV BX,3000H • MOV CX,120 • MOV AL,10010000B(90H) • OUT 63H,AL • LOP: IN AL,60H • MOV [BX],AL • INC BX • CALL DELAY 5M • LOOP LOP • HLT

  39. 8255A的应用实例 例6-3 LED接口 PA口做输出数据口,采用方式0工作方式,无条件传送。设8255A的端口地址为60H~63H。要求每隔5分秒,发光灯向上移一个。

  40. 8255A的应用实例 MOV AL,10000000B(80H) OUT 63H,AL MOV CX,7200 MOV AL,7FH LOP: OUT 60H,AL ROR AL,01H CALL DELAY5S LOOP LOP MOV AH,4CH INT 21H

  41. 例6-4打印机接口 (1) 并行接口标准(Centronice) 该标准规定了一个36芯的连接口。 STB:数据选通接口; DATA:数据信号; ACK:响应信号; BUSY:忙信号。 8255A的应用实例

  42. 8255A的应用实例 • 采用查询控制方式(方式0)的接口 • PA口作为向打印机输出的数据口,PC0产生控制信号STB,PC7读取外设状态BUSY,端口地址为90H~93H。从内存2000H:3000H开始取出100个数据送打印机打印的控制程序为:

  43. 8255A的应用实例 MOV AX,2000H MOV DS,AX MOV BX,3000H MOV CX,100 MOV AL,10001000B OUT 93H,AL LOP:IN AL,92H TEST AL,80H JNZ LOP

  44. 8255A的应用实例 MOV AL,[BX] OUT 90H,AL MOV AL,01H OUT 92H,AL MOV AL,00H OUT 92H,AL MOV AL,01H OUT 92H,AL INC BX LOOP LOP MOV AH,4CH INT 21H

  45. 8255A的应用实例 例6-5 键盘接口 两类键盘:简单键盘和矩阵结构键盘。 矩阵结构键盘又有编码键盘和非编码键盘。 编码键盘能自动提供对应于被按键的编码信息,如ASCII码,并能同时产生一个选通脉冲通知微处理器。 非编码键盘由一组开关组成,提供行和列的键盘矩阵。其全部工作,包括按键的识别、按键代码的产生、防止串键和消去抖动等问题,都靠程序来实现。

  46. +5V +5V +5V 8255A的应用实例 ◆ 简易键盘的工作原理 • 最简单的线性结构键盘 • 每一个引脚连接一个键 • 输入0/1反映健是否高低

  47. 测 线 +5V 控制线 +5V 8255A的应用实例 • 常用的矩阵结构键盘 • 每行连接一个引脚 • 每列连接一个引脚 ◆ 常用的矩阵结构键盘

  48. 8255A的应用实例 (1) 键盘输入信息的过程: ① 检测是否有键按下; ② 查出按下的是哪一个键; ③ 将该键所代表的信息翻译成计算机能识别的内部代码 设有m×n个键: m行——由输出口控制 n列——由输入口读入 当某行输出为低电平时: 有键按下——某列输入低电平 无键按下——某列输入高电平

  49. 置所有的行线为0 读列线的值 读列线的值 有键按下 N 有键按下 N Y 识别键值 Y 列线某位为0 逐行输出0 转键处理 8255A的应用实例 (2)非编码键盘的键码识别方法 为了识别键盘上的闭合键,常用的键码识别方法有行扫描法。

  50. 8255A的应用实例 (3)8255A作矩阵结构键盘接口的实例

More Related