第六章 输入/输出接口 6.1 输入/输出接口概述 6.2 I/O指令和地址译码 6.3 PC系统总线(放到本章后面详细讲述)

Slides:



Advertisements
Similar presentations
第五章 键盘及其接口技术 本章要点: 1 .按键的抖动干扰及其解决方法。 2 .独立式键盘的结构原理及其接口电路。 3 .矩阵式键盘的结构原理及其行扫描法。 4 .编码器及其编码键盘接口电路。 返回总目录.
Advertisements

第6章 微型计算机和外设之间的 数据传输.
第五章 微型计算机和外设的数据传输 5.1 为什么用接口电路? 5.2 CPU和I/O设备之间的信号; 5.3 接口部件的I/O端口;
微型计算机原理及应用.
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
实验四 利用中规模芯片设计时序电路(二).
微型计算机技术 教 学 指 导(七) 太原广播电视大学 郭建勇.
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第10章 DOS功能调用与BIOS中断调用.
第十二章 DMA控制器 12.1 概述 A DMA控制器 A的应用.
第5章 输入输出与接口技术.
第5章 输入输出与接口技术.
第五章 总线 及其形成 本节课之前,大家学习了:
第一章 绪论.
输入/输出及接口 输入/输出的传送方式 中断技术 80x86/Pentium中断系统 8259A可编程中断控制器 中断程序设计
第 6 章 I/O 接口和总线 中国科学技术大学 何克东.
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
第三节 CPU与外设间的数据传送方式 CPU与外设的工作速度不一致, 如何使两者高效、可靠地进行数据传送, 是本节讨论的问题。
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第6章 DMA传输 6.1 DMA传输原理 6.2 DMA控制器8237A A的编程使用 欢迎辞.
第7章 并行接口 7.1 简单并行接口 7.2 可编程并行接口8255A 7.3 键盘接口 7.4 LED显示器接口.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
第5章 输入输出与接口技术.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
第 9 章 可编程外围接口芯片 8255A 中国科学技术大学 何克东.
第8章 PCH中的常规接口.
第七章 输入和输出 第一节 I/O接口 第三节 可编程DMA控制器8237A 第二节 CPU与外设数据传送的方式.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月20日.
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
1.3 微型计算机的结构和工作原理.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
逆向工程-汇编语言
DMA与DMA控制器 DMA(Direct Memory Access)的概念 DMA方式不用处理器干预完成M与I/O间数据传送。
CPU结构和功能.
第 12 章 8237A DMA控制器及其应用 中国科学技术大学 何克东.
第6章作业 3、 需要128块芯片 片内译码地址线:10条 片选择地址线:至少4条
第7章 I/O接口和总线 7.1 I/O接口 7.2 总线.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
第九章 微处理器外部结构和总线操作时序.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
8.4 ADC0809接口电路及程序设计.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
可编程定时计数器.
计算机组成原理 课程设计.
(Random Access Memory)
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
微机原理与接口技术 第6章 并行输入输出接口(8255A)
微机原理及应用 主讲:郑海春.
第7章 输入输出接口.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
组合逻辑电路 ——中规模组合逻辑集成电路.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
第十章 输入输出程序设计 10.1 输入输出指令 输入输出(I/O)是指CPU与输入设备和输出设备之间进行的信息传送。CPU与外部设备之间通过输入输出接口相连接。各个设备在输入输出接口中分配了相应的端口。访问不同的设备就是访问其对应的端口。在指令系统中提供了访问输入输出端口的指令。 一、I/O端口寻址方式.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
微机原理与接口技术 ——80x86微处理器 西安邮电大学 计算机学院 范琳.
第六章 I/O接口 一、I/O接口的功能 第一节 概 述 一、I/O 接口的功能 二、I/O接口的一般结构 第二节 输入输出寻址方式和指令
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第8章 并行接口芯片 并行接口一般具有两个或两个以上的8位I/O接口。各个口的工作方式可由程序分别确定或改变,使用灵活,便于和各种外部设备连接。因此,又称可编程的外部接口(PPI) 目前各主要微处理器厂商都有自己的PPI产品,但它们的功能基本类似.
第九章 存储器和可编程逻辑器件 本章主要内容 半导体存储器 只读存储器 随机存取存储器 存储器容量的扩展 可编程逻辑器件
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
DSP技术与应用 电子与信息技术系.
Presentation transcript:

第六章 输入/输出接口 6.1 输入/输出接口概述 6.2 I/O指令和地址译码 6.3 PC系统总线(放到本章后面详细讲述) 第六章 输入/输出接口 6.1 输入/输出接口概述 6.2 I/O指令和地址译码 6.3 PC系统总线(放到本章后面详细讲述) 6.4 数字通道接口 6.5 模拟通道接口(略)

6.1 输入/输出接口概述 接口解决微处理器与外设之间的差异 CPU与外设都是面向接口而非直接联络 外设种类多 6.1 输入/输出接口概述 接口解决微处理器与外设之间的差异 外设种类多 信号类型有机械的、物理的、电信号等 信号形式有脉冲、模拟量或数字量 数据传输率不同 数据格式不同 数据传输方式不同,有并行、串行之分 CPU与外设都是面向接口而非直接联络

接口电路中的信息 数据信息、状态信息及控制信息 AB DB CB CPU I/O 接口 设备 端口 数据 控制 状态

数据信息 数据信息:要交换的数据本身。 数据传输方向:CPU←→ I/O接口←→外设 数字量:通常以8位或16位的二进制数以及ASCII码的形式传输,主要指由键盘、磁带机、磁盘等输入的信息或主机送给打印机、显示器、绘图仪等的信息 开关量:用“0”和“1”来表示两种状态,如开关的通/断 模拟量:模拟的电压、电流或者非电量。对模拟量输入而言,需先经过传感器转换成电信号,再经A/D转换器变成数字量;如果需要输出模拟控制量的话,就要进行上述过程的逆转换 数据传输方向:CPU←→ I/O接口←→外设

控制信息 控制信息:控制外设工作的命令,CPU通过接口发出,如A/D转换器的启/停信号 数据传输方向:CPU→I/O接口→处设

状态信息 状态信息:表征外设工作状态的信息 数据传输方向:CPU←I/O接口←外设 对输入接口, CPU是否准备好接收数据,“READY” 准备好吗? 对输出接口, 外设是否准备好接收数据, “BUSY” 外设忙吗? 数据传输方向:CPU←I/O接口←外设

I/O端口 传送这三种信息的接口电路中的寄存器称为数据、状态和控制端口 不同的寄存器有不同的端口地址,即用地址访问 端口由一个或多个寄存器组成 接口由若干个端口加上相应的控制逻辑组成

接口的基本功能 数据缓冲功能 设备选择功能 信号转换功能 接收、解释并执行CPU命令的功能 中断管理功能 可编程功能

实现对CPU数据总线速度和驱动能力的匹配 接口电路的结构 实现对CPU数据总线速度和驱动能力的匹配 数据 缓冲器 状态 寄存器 控制 接外设一侧 主 机 外 设 总线驱动 地址译码 控制逻辑 接CPU一侧 DB AB CB 数据信息 控制信息 状态信息 端口 接口 实现各寄存器端口寻址操作 实现接口电路中的各寄存器端口的读/写操作和时序控制

接口电路的分类 数据传送方式: 功能选择的灵活性 : 数据传送操作的同步方式 : 通用性 : 并行接口 串行接口 可编程接口 不可编程接口 同步接口 异步接口 通用性 : 通用接口 专用接口

6.1.2.2 传输控制方式 外设的速度与CPU相比要慢好几个数量级,且不同外设之间的速度也相差很大,为了保证数据传输的可靠性,CPU一定要等外设准备就绪之后才能执行输入/输出操作,而外设就绪的时刻对CPU而言是随机的,因此需要同步。 三种I/O同步控制方式: 程序控制方式:无条件传送和程序查询传送 中断控制方式 直接存储器存取方式:DMA方式

无条件程序控制方式(一) 最简单的I/O控制方式,CPU可以随时根据需要无条件地读写I/O端口 外设要求:简单,数据变化缓慢,操作时间固定,如一组开关或LED显示管。外设被认为始终处于就绪状态 接口特点 CPU的DB→I/O接口(输出锁存器)→外设 CPU的DB←I/O接口(输入缓冲器)←外设

无条件程序控制方式(二) 端口 译码器 RD AB DB WR M/IO 数据输入 缓冲器端口 数据输出 锁存器端口 输入数据 输出数据

无条件程序控制方式(三) 例6.5 START: MOV DX,INPORT IN AL,DX;读入按键状态 TEST AL,01H;判断最低位按键 JNZ K1;最低位按键没闭合,转 MOV AL,01H;最低位发光 JMP DISP K1:TEST AL,02H; JNZ K2;次低位按键没闭合,转 MOV AL,03H;最低2位发光 …………………. DISP: MOV DX,OUTPORT OUT DX,AL; JMP START

程序查询输入方式(条件传送方式 ) 一种CPU主动、外设被动的I/O操作方式,很好地解决了CPU与外设之间的同步问题 外设要求:状态口和数据口 在有多个外设的系统中,CPU的查询顺序由外设的优先级确定

查询控制的程序流程 读取状态端口 N READY? 读/写数据端口 Y 状态端口复位

程序查询方式的输入接口电路 输 入 设 备 锁 存 器 状态缓冲器 (输入端口) 输入选通 状态端口读选通 数据端口读选通 ④ 输入数据 数据缓冲器 (输入端口) 状态缓冲器 (输入端口) 输 入 设 备 数据端口读选通 状态端口读选通 DB(数据、状态) 锁 存 器 输入数据 输入选通 R Q D +5V ④ ⑤ ① READY D0 ③ ②

查询输入程序 数据端口(8位) 输入状态信息 状态端口(1位) N Y 输入数据信息 READY 状态信息占用数据线的D0位,查询程序如下: QUERY:IN AL,S_PORT;状态口地址 SAR AL,1 JNC QUERY IN AL,D_PORT;D_PORT是数据口地址

查询方式的A/D采样 WAIT:IN AL,51H;读状态端口的值 TEST AL,10H;判断D4是否为1? JZ WAIT;不是1,等待 数据 端口 状态 A/D 转 换器 定时 器 模拟 信号 译码 电路 启动信号 状态信号 D 4 数据总线 地址总线 控制信号 50H 51H WAIT:IN AL,51H;读状态端口的值 TEST AL,10H;判断D4是否为1? JZ WAIT;不是1,等待 IN AL,50H;读数据端口的值 MOV BUF,AL;将数据送到数据缓冲单元

程序查询方式的输出接口电路 输 出 设 备 数据锁存器 (输出端口) 状态缓冲器 (输入端口) 数据端口写选通 DB(数据、状态) 输出选通 ④ 输出选通 数据锁存器 (输出端口) 状态缓冲器 (输入端口) 输 出 设 备 R Q D +5V DB(数据、状态) BUSY(1bit) ACK 状态端口读选通 数据端口写选通 ⑤ ③ ② ①

查询输出程序 数据端口(8位) Y 输入状态信息 状态端口(1位) BUSY? N 输出数据信息 BUSY QUERY:IN AL,S_PORT;状态口地址 SAR AL,1 JC QUERY OUT D_PORT ,AL;D_PORT数据口地址

查询方式的打印机接口 WAIT:IN 7AH,AL;读状态端口 TEST AL,04H ;判断D2是否为0? JNZ WAIT;不是0,等待 数据 端口 状态 数据缓 冲器 检测 打印机 译码 电路 触发信号 状态信号 D 2 数据总线 地址总线 控制总线 信号 78H 7AH 接口电路 WAIT:IN 7AH,AL;读状态端口 TEST AL,04H ;判断D2是否为0? JNZ WAIT;不是0,等待 MOV AL,BUF ;取数据 OUT 78H,AL ;将数据送到打印机接口

多个外设的查询 CPU周期性地依次查询每个外设的状态 优先权决定了查询次序 不具有实时性

查询式8路模拟数据采集系统 C P U 2 3 4 A/D转换器 数据端口读选通 8路模拟量输入 D7 ~D0 D0 状态端口读选通 … 8路模拟量输入 A0 A7 DB D7 ~D0 D0 D3 ~D0 状态端口读选通 控制端口读选通 3 2 4 数据端口读选通 DATA READY START D3 D0 D1 D2 A/D转换器 多路开关 1路模拟量

中断控制方式 CPU被动而外设主动的I/O操作方式,较大地提高了CPU的工作效率,并使系统具有了实时处理功能 接口特点:避免了CPU 反复低效率的查询,适用于CPU任务繁忙、而数据传送不太频繁的系统中。缺点是硬件电路和处理过程都比较复杂;(中断控制芯片)

中断控制方式 AB 端口译码 DB 数据缓冲 外 设 DB 控制端口 WR 中断屏蔽触发器 Q D INTR READY 中断请求触发器 Q R D +5V INTA 中断可被响应的条件: 中断请求触发器置位;中断屏蔽触发器清零;CPU内部开放中断;CPU未处理更高级中断;CPU现行指令执行完;

中断工作过程 外设需要CPU服务时 CPU执行完当前指令后, (注: 若IF = 1) CPU执行中断服务程序, 外设→I/O接口→向CPU发中断请求,INTR=H(中断请求有效) CPU执行完当前指令后, (注: 若IF = 1) CPU → I/O接口 →外设发中断响应,/INTA = L CPU执行中断服务程序, CPU←→I/O接口←→外设读写数据

DMA控制方式(存储器直接存取) 内存与外设间有大量数据交换时,采用中断方式,每传送一次数据,就必须经历中断处理的全部步骤,而且一般需要借助CPU内部的寄存器作为中介 DMA方式:不用CPU的寄存器作传数中介, 完成存储器和外设间的直接传数,CPU必须将系统总线的控制权让给DMAC

DMA方式原理方框图 DB   HOLD CPU HLDA AB MEM I/O 请求 DMAC 响应

DMA的工作流程 N Y DMAC向CPU发总线申请HOLD CPU允许释放总线,向DMAC发出总线应答信号HLDA DMAC发存储器地址 修改地址指针 在总线上传送数据 N 传送结束? Y DMA结束,交还总线权

DMAC的结构 / C P U HOLD HLDA Ready DMA 请求 DMA 响应 DMA 控制器 数据 状态 / 控制 存 地址寄存器 P 端口 端口 储 U 计 数 器 器 HLDA Ready 控制 / 状态寄存器 DMA 请求 DMA 数据缓冲 响应 DMA 请求 寄存器 触发器 输 入 设 备

DMA操作的基本方法 周期挪用:挪用CPU不访问存储器的周期 周期扩展:延长CPU的时钟周期 CPU停机 :最简单也是最常用的DMA传送方式 不易识别可被挪用的周期,硬件电路复杂,数据传送不连贯、不规则 周期扩展:延长CPU的时钟周期 CPU在加宽了的周期内不会进行下一步操作,正好用来进行DMA 降低CPU的处理速度 CPU停机 :最简单也是最常用的DMA传送方式 迫使CPU让出总线控制权,整个DMA期间,CPU都一直处于空闲状态 会降低CPU的利用率,并可能影响到CPU对中断的响应和DRAM刷新

DMAC必须具备的功能 向CPU发出总线请求信号HOLD。 CPU出让总线控制权时,能接收CPU的应答信号并接管总线,进入DMA方式。 有寻址功能,对存储器及I/O寻址并修改地址 具有控制逻辑,能发出读/写控制信号。 决定传输的字节数,并判断DMA是否结束。 发出DMA结束信号,使CPU恢复正常工作状态

6.2 I/O指令和I/O地址译码 为了区分接口电路的各个寄存器,系统为它们各自分配了一个地址,称为I/O端口地址,以便对它们进行寻址并与存储器地址相区别 I/O端口有两种编址方式:存储器映像方式、I/O独立编址方式

1、存储器映像编址 指I/O端口与存储器共享一个寻址空间,又称为统一编址。在这种系统中,CPU可以用同样的指令对I/O端口和存储器单元的进行访问。 优点:对I/O口的访问灵活方便,有利于提高端口数据的处理能力。 缺点:I/O端口占用了主存地址,相对减少了主存的可用范围。

2、I/O独立编址(一) 指主存地址空间和I/O端口地址空间相互独立,分别编址。CPU通过指令来区分是访问I/O口还是存储单元

2、I/O独立编址(二) 80X86系列微处理器采用独立的I/O编址方式 CPU使用地址总线中的A0~A15来寻址I/O口,故最大I/O空间是64K个字节端口(或32K个字端口)

两种编址方式比较(一) 内 存 空 间 内 存 空 间 I/O 空 间 I/O 空 间

两种编址方式比较(二) 接口 外设 CPU AB DB CB 存储器 存储器 CPU AB DB CB 接口 外设 存储器读写 I/O 读写

I/O接口的访问控制 微机系统的每个端口都有惟一的端口地址 端口地址:经译码电路译码后产生端口选通信号,控制端口的读/写操作

I/O端口的地址分配 80X86系列微处理器提供16条地址线访问I/O端口,编址可达64K个字节端口或者32K个字端口。 IBM系列采用非完全译码方式,即只考虑了低10位地址线A0-A9,I/O端口地址范围是0000H-03FFH,总共只有1024个端口 80386微处理器或此后的微处理器构成的微机系统,采用全译码的方法,端口为64K个字节端口或32K个字端口

I/O端口地址选用的原则 自行设计接口电路或给微机系统添加接口卡时,必须避免端口地址发生冲突 申明保留的地址,不要使用 用户可使用300H--31FH地址

I/O端口的地址译码 将来自地址总线上的地址代码翻译成为所需要访问的端口 I/O端口地址译码电路结构 译码电路的输入信号 地址信号:由地址范围决定 控制信号:数据流向(读/写)、数据宽度(8位/16位)、是否采用奇/偶地址和DMA传送方式 译码电路的输出信号:接口芯片的片选信号 端口的读写控制:输入需要缓冲, 输出需要锁存

输入缓冲电路 当读有效时,才将缓冲器中的三态门打开,使外设的数据进入系统的数据总线 其它时间,三态门处于高阻状态,不影响总线上的其它操作 A 74LS245 2 18 A B 3 17 A B 1 1 4 16 A B 2 2 微处理 5 15 A B 外部输 3 3 器系统 6 14 A B 入设备 4 4 7 A B 13 5 5 8 A B 12 6 6 9 A B 11 7 7 译码 片选 IOR 19 E DIR=1 , A → B 1 DIR DIR=0 , B → A 当读有效时,才将缓冲器中的三态门打开,使外设的数据进入系统的数据总线 其它时间,三态门处于高阻状态,不影响总线上的其它操作

输出锁存 选中锁存器时,总线上的数据才能进入锁存器 74LS273 3 2 D Q 4 5 D Q 1 1 7 6 D Q 2 2 微处理 8 9 D Q 外部输 3 3 13 器系统 D Q 12 出设备 4 4 14 D Q 15 5 5 17 D Q 16 6 6 18 D Q 19 7 7 译码片选 IOW 11 CLK 1 CL R 74LS32 +5V 选中锁存器时,总线上的数据才能进入锁存器 此后不管总线上的数据(锁存器输入端)如何变化,只要没有再次使锁存器的信号有效,锁存器的输出端就一直保持原来锁存的信息不变。

I/O地址译码方法 地址译码的方法灵活多样 高位地址线与CPU的控制信号进行组合,经译码电路产生I/O接口芯片的片选信号CS,实现系统中的接口芯片寻址 低位地址线直接接到I/O接口芯片的地址引脚,进行I/O接口芯片的片内端口寻址

I/O端口地址译码电路设计 译码电路的形式 译码电路采用的元器件来分 固定式译码:接口中用到的端口地址不能更改 可选式译码: 门电路译码 译码器译码 可编程逻辑器件译码

读077AH端口地址译码电路 A15 A14 … A1 A0 0000 0111 0111 1010 端口读:IOR,AEN 74LS32 & A 10 9 8 74L S30 6 5 4 AEN 1 3 14 13 15 12 7 2 11 ≥ 74LS20 74LS04 R 77AH IOR 端口地址的二进制形式 A15 A14 … A1 A0 0000 0111 0111 1010 端口读:IOR,AEN 译码输出:/R77AH 执行 MOV DX,77AH IN AL,DX

读/写操作77AH端口地址的译码电路 & A 74LS30 AEN ≥ 74LS20 74LS04 IOR ≥ 1 ≥ 1 74LS 32 10 9 8 74LS30 6 5 4 AEN 1 3 14 13 15 12 7 2 11 ≥ 74LS20 74LS04 IOR ≥ 1 ≥ 1 74LS 32 ≥ 1 R 77AH ≥ 1 W IOW 77AH

译码器译码 74LS138 A A 74LS06 A B A A C & A A A A & A A A AEN G G G Y Y Y Y 译码器使能 A A Y DMACS 5 74LS06 A B 6 Y A INTRCS 15 A C 1 & 7 A Y T/CCS A7~A5决定 芯片端口范围 14 2 A Y PPICS 13 3 A 12 G Y A 4 74LS20 2A 11 A4~A0选择 芯片片内端口 & Y A 10 5 G A Y 9 2B 6 A G 8 1 Y 7 AEN

可选式端口地址译码器 通过开关使接口卡的I/O端口地址根据需要加以改变而无需改动硬件电路,能适应不同的地址分配场合 其电路可由地址开关、译码器、比较器和基本门电路等组成

用比较器组成的可选式译码电路 A9-A6=开关状态时,比较器才输出高电平,译码器才能工作 通过设置不同的开关状态,就可以选择不同的地址范围 CC A 6 7 8 9 V 1 2 I A=B 74LS85 3 B A>B A<B O DIP S 2A G B C 1 Y 2 3 4 5 6 7 2B A A2 ≥ 74LS138 74LS08 & A5 A3 A4 15 14 13 11 10 74LS32 A9-A6=开关状态时,比较器才输出高电平,译码器才能工作 通过设置不同的开关状态,就可以选择不同的地址范围 12

可编程逻辑器件作译码电路 可编程逻辑器件包括GAL、CPLD和FPGA 通常一片GAL器件的电路规模可达几百门,而FPGA可达几百万门 这些器件可以被多次修改和反复使用的 只需要修改软件,就可以改变译码电路

6.3 PC机的系统总线(放在本章后详细讲述)

6.4 基本输入输出接口 键盘/鼠标接口 数码管显示接口 并行打印机接口

键盘接口 线性键盘:按键并联方式与I/0端口连接 矩阵键盘:按键按照行、列方式排列 每一个按键需要占用I/O端口的一根口线 由程序处理按键的操作情况 矩阵键盘:按键按照行、列方式排列 比线性键盘节约I/0口线 非编码键盘:CPU处理按键的操作,减低了CPU的效率 编码键盘 :专用的单片机处理按键操作,缓减了CPU的负担

矩阵键盘结构 +5V 10k Ω 第 行 10k 8 第 1 Ω 位 行 并行 10k Ω 第 2 行 输入 …… 端口 10k Ω 第 7 Ω 第 行 10k 8 第 1 Ω 位 行 并行 10k Ω 第 2 行 输入 …… 端口 10k Ω 第 7 行 第 列 第 1 列 第 2 列 第 3 列 …… 第 7 列 8 位 并行 输出 端口

行扫描法(一) 第一步:判断是否有键按下 输出端口的各位都为低电平,即各列都为0 读取输入端口数据,如果输入不等于FFH,则有键被按下 MOV AL,00H; MOV DX,OUTPORT; OUT DX,AL MOV DX,INPORT; IN AL,DX; AND AL,0FFH CMP AL,0FFH

行扫描法(二) 第二步:确定按键号 确定按键的列数:输出扫描值,使某一列为低电平,其它列为高电平;读取行值,看是否有行线处于低电平 确定按键的行数:循环右移行值,直到为0

行扫描法程序流程 MOV BL,0 MOV DL,8 MOV CL,0FEH IN AL,INPORT CMP AL,0FFH MOV AL,CL OUT OUTPORT,AL ROL AL,1 MOV CL,AL RCR AL,1 JNC PROC INC BL 设键号 =0 ,计数器 = 列数 行扫描初值 =11111110B 全部扫描完? 否 输出扫描值,使某一行为低电平 扫描值循环左移一位, 使下一列为低电平 键号 +1 ,计数值 - 1 否 是否有一行接地? 读进行值 行值循环右移一位 是 是 进位位为 ? 否 键盘 命令 结束 是 处理

微机键盘接口 其接口电路通常集成在主板上 最早的键盘接口是用8255实现的,而鼠标则通过RS-232串口实现 目前微机系统的键盘/鼠标是PS/2接口。 微机键盘单片机 自动地识别键的按下与释放,自动生成相应的扫描码, 并以串行方式发送扫描码到主机 主机根据扫描码转换为反映键功能的ASCII码 严格地说,微机键盘仍属于非编码键盘

键盘/鼠标接口引脚定义 通过数据线DATA和时钟线CLK两根线, 就可以实现主机和PS/2设备之间的通信

PS/2键盘接口时序 (a)是键盘向主机发送数据时的PS/2接口时序图 (b)是主机向PS/2键盘发送数据的时序图 CLK (a) DATA E 1 2 3 4 5 6 7 起始 校验 停止 CLK 键盘 (b) DATA S D D D D D D D D P 1 2 3 4 5 6 7 主机 起始 校验 停止 (a)是键盘向主机发送数据时的PS/2接口时序图 (b)是主机向PS/2键盘发送数据的时序图

键盘的BIOS调用 DOS的1H、6H、7H、8H、0AH、0BH、0CH功能接收单个字符或字符串,比INT 16H更方便 但INT 16H一次可读取一个字符的扩充ASCII码,而DOS功能调用需要两次才能读取1个字符的扩充ASCII码

INT 16H功能调用 MOV AH,0H INT 16H CMP AL,0H;AL如果为0,AH为键盘扩充ASCII码 JE EXCD JMP ERR EXCD:CMP AH,3BH JE OPT1 CMP AH,3CH JE OPT2 CMP AH,3DH JE OPT3 ERR: …… OPT1: …… OPT2: …… OPT3: ……

鼠标接口 仍然是PS/2接口 PS/2鼠标有四种工作模式 鼠标发送的数据包格式 RESET模式 STREAM模式 REMOTE模式 WRAP模式 鼠标发送的数据包格式

INT 33H功能调用(一) 初始化鼠标驱动程序 :功能号0 显示或隐藏鼠标光标:功能号1、2 XOR AX,AX;功能号0 MOV AX,0001H;显示鼠标光标功能号 INT 33H MOV AX,0002H;隐藏鼠标光标功能号

INT 33H功能调用(二) 取得或设置鼠标光标的位置 :功能号3、4 监视鼠标按钮状态 :功能号5和6 设定鼠标光标在屏幕上的范围 :功能号7 、8 跟踪鼠标光标的移动 :功能号0BH

数码管显示接口 共阴结构 共阳结构 段选码 阴极控制端为低电平时,LED工作 输入控制端为高电平时,对应的发光管亮 输入控制端为低电平时,对应的发光管亮 段选码

静态显示 段(发光二极管)恒定地导通或截止,直到显示另一个字符为止 各个数码管的输入控制端相互独立,并与接口电路的输出端口相连 占用I/O端口资源多:数码管的个数为M时,需要的接口口线数目为8×M。所以显示位数较多时,需要采用动态显示方式

动态显示 所有数码管共享输入控制端 需要的口线数=8+数码管的个数 M 工作原理:动态地轮流点亮各个LED 位选码:选择被点亮的LED 段选码:显示什么字符 通常通过查找表的方式实现

动态显示例子 BX DI MOV AL,[DI]; AL=17 XLAT ; AL=76H “H” LEA BX,TABLE MOV DI,OFFSET DISDAT BX T A B L E 3FH 06H 76H 38H 73H 71H “H” “E” 79H “L” “0” 5BH “2” 2 17 14 18 D I S A T 17 14 18 2 DI

MOV CL,0DFH ; CL=1101,1111 ROR CL ; CL=1110,1111 INC DI MOV AL,[DI] ; AL=79H OUT BITPORT,AL ; AL=CL=1101,1111 OUT SEGPORT,AL ; AL=76H “H” 并行输 出端口 ( 带锁存 功能 ) (带锁 存功能) D ~D 7 6 5 4 3 2 1 位 段选 位选 图 6.30 6 个数码管的显示接口电路 79H 76H H E 0 1 1 1 1 1 1 0 1 1 1 1

H E 76H 79H 0 1 1 1 1 1 1 0 1 1 1 1 OUT SEGPORT,AL ; AL=76H “H” ROR CL ; CL=1110,1111 OUT BITPORT,AL ; AL=CL=1101,1111 MOV CL,0DFH ; CL=1101,1111 INC DI MOV AL,[DI] ; AL=79H 并行输 出端口 ( 带锁存 功能 ) (带锁 存功能) D ~D 7 6 5 4 3 2 1 位 段选 位选 图 6.30 6 个数码管的显示接口电路 76H 79H H E 0 1 1 1 1 1 1 0 1 1 1 1

并行打印机接口 打印机提供了与微机系统相连的36芯Centronics连接器 微机上的并口采用的是DB25 最主要的信号:8根数据线,2根握手联络信号线/STROB和/ACK、1根状态信号线BUSY

Centronics标准时序图 BUSY ACK 5 μ s DATA 数据有效 数据有效 STROB 5 μ s

并行打印机接口框图 输出数据 写数据 寄存器 数据线 8 D ~D 数 据 输入数据 读数据 收 缓冲器 集 控制 打 发 线 DIR 4 7 数 据 输入数据 读数据 收 缓冲器 集 控制 打 发 线 DIR 4 电 器 写控制 极 控制寄存器 印 驱 AEN 命 动 4 A ~A 令 状态寄存 器 9 机 译 读控制 器 (2) IOR 码 器 IOW 状态线 读状态 状态寄存 5 复位 器 (1) IRQ

打印机端口 三个打印机接口,使用的起始端口地址分别为278H、378H、3BCH,每个打印机接口工作在基本模式时,各占用起始端口地址开始的3个连续端口地址 当只配置一个打印机接口时,默认的端口地址为378H-37FH,且378H为数据端口地址、379H为状态端口地址、37AH为控制端口地址

控制寄存器格式 D D D D D D D D 1 :有效 未定义 选通信号 1 :数据口输入模式 自动换行信号 :数据口输出模式 7 6 5 4 3 2 1 :有效 未定义 选通信号 STROB 1 :数据口输入模式 自动换行信号 AUTOLF :数据口输出模式 初始化信号 INIT 中断允许信号 打印机允许信号 SLCTIN

状态寄存器格式 D D D D D D D D 1 1 :不忙 : EPP 模式超时 :收到数据 未定义 1 :无纸 1 :未发生中断 1 7 6 5 4 3 2 1 1 1 :不忙 : EPP 模式超时 :收到数据 未定义 1 :无纸 1 :未发生中断 1 :打印机在线 :发生错误

打印机接口编程(一) 直接对端口地址进行编程操作 MOV DX,378H;指向输出数据口 OUT DX,AL;输出字符(ASCII码) WAIT: IN AL,DX;读打印机状态 TEST AL,10000000B;检查打印机是否忙? JE WAIT;忙,继续等待 MOV AL,00001001B;发送选通信号 MOV DX,37AH;控制端口 OUT DX,AL MOV AL,00001000B;选通信号复位

打印机接口编程(二) BIOS中断功能调用,中断类型号是17H MOV AH,0;功能号0 MOV AL,’P’ ;待打印字符 MOV DX,0 ;打印机接口号 INT 17H;中断功能调用 TEST AH,01H;检测是否超时 JNZ ERROR ;超时,转出错处理

IEEE1284并行接口工作模式 硬件上完全与原打印机接口标准兼容 传输速率有较大提高,而且为双向传输。 定义了兼容模式、半字节模式、字节模式、ECP(Extended Capabilities Port )模式和EPP(Enhanced Parallel Port)模式等五种传输模式