610 likes | 750 Views
第六章:可编程并行接口芯片和串行接口芯片. 主讲教师:范新民. 2. 6.2 可编程并行接口芯片 8255A. 1. 6.1 并行接口与串行接口. 6.3 可编程串行接口芯片 8251. 3. 主要内容:. 可编程并行接口芯片和串行接口芯片. 6.1 并行接口与串行接口. 并行接口: 是指数据的各位同时进行传送,其特点是传输速度快,但当传输距离较远、位数又多时,导致了通信线路复杂且成本提高。. 串行接口: 是指一条信息的各位数据被逐位按顺序传送的通讯方式。其特点是数据按位传送,最少只需一根传输线即可完成,成本低但传送速度慢。.
E N D
第六章:可编程并行接口芯片和串行接口芯片 主讲教师:范新民
2 6.2 可编程并行接口芯片8255A 1 6.1 并行接口与串行接口 6.3 可编程串行接口芯片8251 3 主要内容:
可编程并行接口芯片和串行接口芯片 6.1 并行接口与串行接口 并行接口: 是指数据的各位同时进行传送,其特点是传输速度快,但当传输距离较远、位数又多时,导致了通信线路复杂且成本提高。 串行接口: 是指一条信息的各位数据被逐位按顺序传送的通讯方式。其特点是数据按位传送,最少只需一根传输线即可完成,成本低但传送速度慢。
并行接口与串行接口 串口与并口: 并口由于8位通道之间的互相干扰。传输时速度就受到了限制。而且当传输出错时,要同时重新传8个位的数据。串口没有干扰,传输出错后重发一位就可以了。所以串口速度非常快。
一、可编程接口芯片的功能和电路组成 多数I/O接口具有如下功能及其电路单元: • 输入/输出数据锁存器和缓冲器,用以解决CPU与外设之间速度不匹配的矛盾,以及起隔离和缓冲的作用; • 控制命令和状态寄存器,以存放CPU对外设的控制命令,以及外设的状态信息; 并行接口与串行接口 6.1.1 可编程接口芯片概述 • 地址译码器,用来选择接口电路中的不同端口; • 读写控制逻辑 • 中断控制逻辑
二、可编程接口芯片的几个概念 • 片选的概念 必须要有一个地址信号选中接口芯片后,才能使该接口芯片进入电路工作状态,实现数据的输入/输出。 选通端CE(Chip Enable),又称片选端CS(Chip Select)。 CE端是控制接口芯片进入电路工作状态的引脚端。 可编程接口芯片概述
可编程接口芯片概述 • 读/写概念: • 当地址信号稳定,读信号和访问I/O口控制信号有效时,片选信号稳定,CPU数据线和输入口接通,进行读操作。 • 当地址信号稳定,CPU输出数据,写信号和访问I/O口控制信号有效时,片选信号稳定,数据写入I/O口。
可编程接口芯片概述 • 可编程接口的概念 • 接口芯片大部分是多通道、多功能的。 • 多通道是指一个接口芯片一面与CPU连接,另一面可接几个外设; • 多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。接口芯片功能可由程序改变。
可编程接口芯片概述 • “联络”的概念 • 接口芯片常常需要和外设间有一定的“联络”信号,以保证信息的正常传送。 • 通常采用两个“联络”(Handhake)信号: (选通信号,strobe)和RDY(就绪信号,Ready)。
8255A的结构和引脚功能 • 8255A的工作方式 • 8255A的初始化 • 8255A的应用举例 • 16位系统中的并行接口 6.2 可编程并行接口芯片8255A
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的内部结构
8255A的内部结构 (1) 数据端口 端口A:PA0~PA7,数据输出锁存器/缓存器和输入锁存器, 可用于数据双向传输。 端口B:PB0~PB7,数据输出锁存器/缓存器和输入缓存器, B口作为输出口时数据可得到锁存,做输入口时, 外设输入的数据必须维持到有效读取为止。 端口C:PC0~PC7,结构同B口,可作为两个4位端口使用, 可配合A口或B口在数据传输时做控制、状态和中断 请求信号使用。
8255A的内部结构 (2)A组控制和B组控制 A口和高4位PC4~PC7构成A组,B口和低4位PC0~PC3构成B组。一组有一个控制寄存器接收CPU控制字,确定8255工作方式。 (3)数据总线缓冲器 八位三态双向缓冲器,用于8255与CPU数据总线的接口。 (4)读/写控制逻辑 把接受来自CPU的地址和控制信号发送给两个控制组。根据不同的信息进行不同的传送。
8255A的引脚 • 2、8255A的引脚及其功能 • (1)端口引脚 • PA0~PA7:端口A数据线,双向,三态。 • PB0~PB7:端口B数据线,双向,三态。 • PC0~PC7:端口C数据线,双向,三态。 • (2)和CPU连接的引脚 • D7~D0:数据线,与系统总线连接。 • RD:读信号,输入,低电平有效,从8255A读取数据 • WR:写信号,输入,低电平有效,把数据写入8255
8255A的引脚 CS:片选信号,输入,低电平有效,决定芯片地址。 RESET:复位信号,输入。将所有内部寄存器的内容清零, 3个数据端口设为输入工作方式。 A0,A1:端口选择信号,8255占四个端口地址: 根据RD、WR、CS、A0、A1的不同组合决定8255A的不同端口的操作
6.2.2 8255A的工作方式 1、方式0—基本输入输出 • 端口A、B和C都可工作于输入或输出。三个端口无必然联系,各端口输入输出组合共有16种,可适用于多种用途。 • CPU可以采用无条件读写方式与8255A交换数据。 • 若把C口的两个部分用作控制和状态口,与外设的控制和状态端相连,CPU也可通过对C口的读写,实现A口与B口的查询方式工作。 • 输出的数据被锁存, 输入的数据不锁存
8255A的工作方式 2、方式1—选通输入输出(应答式输入输出) 端口A和B输入/输出数据时,必须利用端口C提供联络信号(选通、应答信号)。 一般情况下,用中断传送数据方式(也可用查询方式)。 这时: 通道A:8位数据端口(A口),3位控制位(C口)。 通道B:8位数据端口(B口),3位控制位(C口) 。 这种配合固定,不可以用程序修改。
8255A的工作方式 • 特点: • 端口A、B既可做输入又可做输出。 • 端口C引脚分别作为控制、状态和中断申请信号等。 • 若只有一个端口工作在方式1,则余下13位可工作在方式0。 • 若两个端口都工作在方式1,则余下2位可由程序指定为输入或输出。 端口A、B工作于方式1的输入或输出时,端口C联络信号的引脚和意义都不同。
8255A的工作方式 (1)方式1的输入传送 A、B两个口都设为方式1输入方式
8255A的工作方式 • STB:输入选通信号,输入,低电平有效,表示外设输入的数据送至8255A的输入锁存器中。 • IBF:输入缓冲区满,输出,高电平有效。通知外设输入缓冲区满,不要送新数据,由CPU读取数据时(RD的上升沿)清除,表明输入缓冲器可以接受新数据。 • INTR:中断请求信号,输出,高电平有效,可向CPU申请中断。 • INTE:中断允许,INTEA是C口输出锁存器的PC4,INTEB是C口输出锁存器的PC2,由它们分别控制A口和B口的中断申请。 • (可由C口置 /复位控制字将INTE置1 或复位为0)
PA7~PA0 外设送来数据 ① PB7~PB0 ② STB 当INTE=1时 IBF INTR ③ RD 8255A的工作方式 方式1的输入时序: 从工作在方式1下的输入端口输入数据时,有关信号的变化关系。
8255A的工作方式 以中断方式输入数据: • ① 当外设数据准备好,将数据送至端口线PA7~PA0或PB7~PB0 • ② 外设发出选通信号STB: • 将数据锁存在输入端口内。 • 使IBF变高,表示输入端口满,可用于阻止外设输入新数据。 • 如果INTE=1, STB的上升沿使INTR变高,发出中断请求。 • ③ 中断处理程序中CPU 读取数据,发出RD信号: • (1) RD 的下降沿清除INTR • (2) RD 的上升沿清除IBF • (3) 端口内的数据进入CPU
8255A的工作方式 以查询方式输入数据: • ① 当外设数据准备好,将数据送至端口线PA7~PA0或PB7~PB0 • ② 外设发出选通信号STB: • 将数据锁存在输入端口内。 • 使IBF变高,表示输入端口满,可用于阻止外设输入新数据。 ③ 在主程序中CPU查询IBF,若其为高电平,读取数据,发出RD • 信号: • RD 的上升沿清除IBF • 端口内的数据进入CPU
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口置 /复位控制字决定其输出。
8255A的工作方式 (2)方式1的输出传送 B口方式1输出时相应的联络信号 A口方式1输出时相应的联络信号
INTE:中断允许,INTEA、INTEB分别控制A口和B口的中断申请。(INTEA由PC6、INTEB由PC2控制) 8255A的工作方式 控制信号: • OBF:输出缓冲器满,输出,表示CPU已将数据输出到指定端口,通知外设可以将数据取走。 • ACK:响应信号,输入。外设通知8255已取走数据,并清除OBF,置INTR为“1”。 • INTR:中断请求信号,输出。向CPU申请中断,请求CPU输出后续数据。(条件:OBF∧ACK∧INTE=1)
① 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输出新的数据 以中 断方 式输 出数 据:
8255A的工作方式 以查询方式输出数据: ① CPU输出数据 ② CPU发出WR: (ⅰ)数据写到 8255A的端口 (ⅱ) 使OBF有效,表示输出端口满,通知外设取数据。 ③ 外设接受到数据后,发出ACK信号: (ⅰ)ACK的下降沿使OBF变高, (ⅱ)在主程序中CPU查询OBF,若其为高电平,数据已 取走,端口可接受新的数据。
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口置 /复位控制字决定其输出。
8255A的工作方式 3、方式2—双向选通输入输出 • 方式2只限于A组使用。 • 与方式0、方式1的单向传送不同,工作在方式2下的端口A,具有双向传送功能。 • 端口工作在方式2时,C口的5根引脚作为端口的联络信号;是方式1下A口输入、输出联络信号的组合。 • C口未做联络信号的3条引脚,可作为B口在方式1下的联络线,也可和B口一样工作在方式0。由方式控制字决定其输入/输出。
8255A的工作方式 方式2下的时序为方式1输入/输出两者的组合。
6.2.3 8255A的控制字及初始化 使用8255A,首先要由CPU对8255A写入控制命令字。 有2种控制命令字: • 方式选择控制字; • C口按位置位/复位控制字; 1、方式选择控制字 (D7=1) 控制字可以使8255A的三个数据端口工作在不同的工作方式,将三个端口分为两组来设定。 8255A的工作方式
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方式选择控制字
不用 位选择 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作为位控接口,实现对外设的按位控制。
向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
6.2.4 8255A的应用实例 1、初始化设置 例:一8088系统的8255A工作于方式0,端口A为输入,端口B为输出,若系统中8255A的口地址为80H-83H。 1001X00X 方式控制字: 初始化程序: MOV AL,90H OUT 83H,AL
D0~D7 8255A A1 A0 Yi 8255A的应用实例 例6-2:开关接口 (8255端口地址:60H~63H) 实现如下功能:每隔5分钟从PA口读入8个开关的状态存入2000H:3000H开始的数据区,工作10小时结束。
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
8255A的应用实例 例6-3 LED接口 PA口做输出数据口,采用方式0工作方式,无条件传送。设8255A的端口地址为60H~63H。要求每隔5分秒,发光灯向上移一个。
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
例6-4打印机接口 (1) 并行接口标准(Centronice) 该标准规定了一个36芯的连接口。 STB:数据选通接口; DATA:数据信号; ACK:响应信号; BUSY:忙信号。 8255A的应用实例
8255A的应用实例 • 采用查询控制方式(方式0)的接口 • PA口作为向打印机输出的数据口,PC0产生控制信号STB,PC7读取外设状态BUSY,端口地址为90H~93H。从内存2000H:3000H开始取出100个数据送打印机打印的控制程序为:
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
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
8255A的应用实例 例6-5 键盘接口 两类键盘:简单键盘和矩阵结构键盘。 矩阵结构键盘又有编码键盘和非编码键盘。 编码键盘能自动提供对应于被按键的编码信息,如ASCII码,并能同时产生一个选通脉冲通知微处理器。 非编码键盘由一组开关组成,提供行和列的键盘矩阵。其全部工作,包括按键的识别、按键代码的产生、防止串键和消去抖动等问题,都靠程序来实现。
+5V +5V +5V 8255A的应用实例 ◆ 简易键盘的工作原理 • 最简单的线性结构键盘 • 每一个引脚连接一个键 • 输入0/1反映健是否高低
检 测 线 +5V 控制线 +5V 8255A的应用实例 • 常用的矩阵结构键盘 • 每行连接一个引脚 • 每列连接一个引脚 ◆ 常用的矩阵结构键盘
8255A的应用实例 (1) 键盘输入信息的过程: ① 检测是否有键按下; ② 查出按下的是哪一个键; ③ 将该键所代表的信息翻译成计算机能识别的内部代码 设有m×n个键: m行——由输出口控制 n列——由输入口读入 当某行输出为低电平时: 有键按下——某列输入低电平 无键按下——某列输入高电平
置所有的行线为0 读列线的值 读列线的值 有键按下 N 有键按下 N Y 识别键值 Y 列线某位为0 逐行输出0 转键处理 8255A的应用实例 (2)非编码键盘的键码识别方法 为了识别键盘上的闭合键,常用的键码识别方法有行扫描法。
8255A的应用实例 (3)8255A作矩阵结构键盘接口的实例