Download presentation
Presentation is loading. Please wait.
Published byLeony Atmadja Modified 6年之前
1
第六章 输入/输出接口 6.1 输入/输出接口概述 6.2 I/O指令和地址译码 6.3 PC系统总线(放到本章后面详细讲述)
第六章 输入/输出接口 6.1 输入/输出接口概述 6.2 I/O指令和地址译码 6.3 PC系统总线(放到本章后面详细讲述) 6.4 数字通道接口 6.5 模拟通道接口(略)
2
6.1 输入/输出接口概述 接口解决微处理器与外设之间的差异 CPU与外设都是面向接口而非直接联络 外设种类多
6.1 输入/输出接口概述 接口解决微处理器与外设之间的差异 外设种类多 信号类型有机械的、物理的、电信号等 信号形式有脉冲、模拟量或数字量 数据传输率不同 数据格式不同 数据传输方式不同,有并行、串行之分 CPU与外设都是面向接口而非直接联络
3
接口电路中的信息 数据信息、状态信息及控制信息 AB DB CB CPU I/O 接口 设备 端口 数据 控制 状态
4
数据信息 数据信息:要交换的数据本身。 数据传输方向:CPU←→ I/O接口←→外设
数字量:通常以8位或16位的二进制数以及ASCII码的形式传输,主要指由键盘、磁带机、磁盘等输入的信息或主机送给打印机、显示器、绘图仪等的信息 开关量:用“0”和“1”来表示两种状态,如开关的通/断 模拟量:模拟的电压、电流或者非电量。对模拟量输入而言,需先经过传感器转换成电信号,再经A/D转换器变成数字量;如果需要输出模拟控制量的话,就要进行上述过程的逆转换 数据传输方向:CPU←→ I/O接口←→外设
5
控制信息 控制信息:控制外设工作的命令,CPU通过接口发出,如A/D转换器的启/停信号 数据传输方向:CPU→I/O接口→处设
6
状态信息 状态信息:表征外设工作状态的信息 数据传输方向:CPU←I/O接口←外设
对输入接口, CPU是否准备好接收数据,“READY” 准备好吗? 对输出接口, 外设是否准备好接收数据, “BUSY” 外设忙吗? 数据传输方向:CPU←I/O接口←外设
7
I/O端口 传送这三种信息的接口电路中的寄存器称为数据、状态和控制端口 不同的寄存器有不同的端口地址,即用地址访问
端口由一个或多个寄存器组成 接口由若干个端口加上相应的控制逻辑组成
8
接口的基本功能 数据缓冲功能 设备选择功能 信号转换功能 接收、解释并执行CPU命令的功能 中断管理功能 可编程功能
9
实现对CPU数据总线速度和驱动能力的匹配
接口电路的结构 实现对CPU数据总线速度和驱动能力的匹配 数据 缓冲器 状态 寄存器 控制 接外设一侧 主 机 外 设 总线驱动 地址译码 控制逻辑 接CPU一侧 DB AB CB 数据信息 控制信息 状态信息 端口 接口 实现各寄存器端口寻址操作 实现接口电路中的各寄存器端口的读/写操作和时序控制
10
接口电路的分类 数据传送方式: 功能选择的灵活性 : 数据传送操作的同步方式 : 通用性 : 并行接口 串行接口 可编程接口 不可编程接口
同步接口 异步接口 通用性 : 通用接口 专用接口
11
传输控制方式 外设的速度与CPU相比要慢好几个数量级,且不同外设之间的速度也相差很大,为了保证数据传输的可靠性,CPU一定要等外设准备就绪之后才能执行输入/输出操作,而外设就绪的时刻对CPU而言是随机的,因此需要同步。 三种I/O同步控制方式: 程序控制方式:无条件传送和程序查询传送 中断控制方式 直接存储器存取方式:DMA方式
12
无条件程序控制方式(一) 最简单的I/O控制方式,CPU可以随时根据需要无条件地读写I/O端口
外设要求:简单,数据变化缓慢,操作时间固定,如一组开关或LED显示管。外设被认为始终处于就绪状态 接口特点 CPU的DB→I/O接口(输出锁存器)→外设 CPU的DB←I/O接口(输入缓冲器)←外设
13
无条件程序控制方式(二) 端口 译码器 RD AB DB WR M/IO 数据输入 缓冲器端口 数据输出 锁存器端口 输入数据 输出数据
14
无条件程序控制方式(三) 例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
15
程序查询输入方式(条件传送方式 ) 一种CPU主动、外设被动的I/O操作方式,很好地解决了CPU与外设之间的同步问题
外设要求:状态口和数据口 在有多个外设的系统中,CPU的查询顺序由外设的优先级确定
16
查询控制的程序流程 读取状态端口 N READY? 读/写数据端口 Y 状态端口复位
17
程序查询方式的输入接口电路 输 入 设 备 锁 存 器 状态缓冲器 (输入端口) 输入选通 状态端口读选通 数据端口读选通 ④ 输入数据
数据缓冲器 (输入端口) 状态缓冲器 (输入端口) 输 入 设 备 数据端口读选通 状态端口读选通 DB(数据、状态) 锁 存 器 输入数据 输入选通 R Q D +5V ④ ⑤ ① READY D0 ③ ②
18
查询输入程序 数据端口(8位) 输入状态信息 状态端口(1位) N Y 输入数据信息 READY 状态信息占用数据线的D0位,查询程序如下:
QUERY:IN AL,S_PORT;状态口地址 SAR AL,1 JNC QUERY IN AL,D_PORT;D_PORT是数据口地址
19
查询方式的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;将数据送到数据缓冲单元
20
程序查询方式的输出接口电路 输 出 设 备 数据锁存器 (输出端口) 状态缓冲器 (输入端口) 数据端口写选通 DB(数据、状态) 输出选通
④ 输出选通 数据锁存器 (输出端口) 状态缓冲器 (输入端口) 输 出 设 备 R Q D +5V DB(数据、状态) BUSY(1bit) ACK 状态端口读选通 数据端口写选通 ⑤ ③ ② ①
21
查询输出程序 数据端口(8位) Y 输入状态信息 状态端口(1位) BUSY? N 输出数据信息 BUSY QUERY:IN AL,S_PORT;状态口地址 SAR AL,1 JC QUERY OUT D_PORT ,AL;D_PORT数据口地址
22
查询方式的打印机接口 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 ;将数据送到打印机接口
23
多个外设的查询 CPU周期性地依次查询每个外设的状态 优先权决定了查询次序 不具有实时性
24
查询式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路模拟量
25
中断控制方式 CPU被动而外设主动的I/O操作方式,较大地提高了CPU的工作效率,并使系统具有了实时处理功能
接口特点:避免了CPU 反复低效率的查询,适用于CPU任务繁忙、而数据传送不太频繁的系统中。缺点是硬件电路和处理过程都比较复杂;(中断控制芯片)
26
中断控制方式 AB 端口译码 DB 数据缓冲 外 设 DB 控制端口 WR 中断屏蔽触发器 Q D INTR READY 中断请求触发器 Q R D +5V INTA 中断可被响应的条件: 中断请求触发器置位;中断屏蔽触发器清零;CPU内部开放中断;CPU未处理更高级中断;CPU现行指令执行完;
27
中断工作过程 外设需要CPU服务时 CPU执行完当前指令后, (注: 若IF = 1) CPU执行中断服务程序,
外设→I/O接口→向CPU发中断请求,INTR=H(中断请求有效) CPU执行完当前指令后, (注: 若IF = 1) CPU → I/O接口 →外设发中断响应,/INTA = L CPU执行中断服务程序, CPU←→I/O接口←→外设读写数据
28
DMA控制方式(存储器直接存取) 内存与外设间有大量数据交换时,采用中断方式,每传送一次数据,就必须经历中断处理的全部步骤,而且一般需要借助CPU内部的寄存器作为中介 DMA方式:不用CPU的寄存器作传数中介, 完成存储器和外设间的直接传数,CPU必须将系统总线的控制权让给DMAC
29
DMA方式原理方框图 DB HOLD CPU HLDA AB MEM I/O 请求 DMAC 响应
30
DMA的工作流程 N Y DMAC向CPU发总线申请HOLD CPU允许释放总线,向DMAC发出总线应答信号HLDA DMAC发存储器地址
修改地址指针 在总线上传送数据 N 传送结束? Y DMA结束,交还总线权
31
DMAC的结构 / C P U HOLD HLDA Ready DMA 请求 DMA 响应 DMA 控制器 数据 状态 / 控制 存
地址寄存器 P 端口 端口 储 U 计 数 器 器 HLDA Ready 控制 / 状态寄存器 DMA 请求 DMA 数据缓冲 响应 DMA 请求 寄存器 触发器 输 入 设 备
32
DMA操作的基本方法 周期挪用:挪用CPU不访问存储器的周期 周期扩展:延长CPU的时钟周期 CPU停机 :最简单也是最常用的DMA传送方式
不易识别可被挪用的周期,硬件电路复杂,数据传送不连贯、不规则 周期扩展:延长CPU的时钟周期 CPU在加宽了的周期内不会进行下一步操作,正好用来进行DMA 降低CPU的处理速度 CPU停机 :最简单也是最常用的DMA传送方式 迫使CPU让出总线控制权,整个DMA期间,CPU都一直处于空闲状态 会降低CPU的利用率,并可能影响到CPU对中断的响应和DRAM刷新
33
DMAC必须具备的功能 向CPU发出总线请求信号HOLD。 CPU出让总线控制权时,能接收CPU的应答信号并接管总线,进入DMA方式。
有寻址功能,对存储器及I/O寻址并修改地址 具有控制逻辑,能发出读/写控制信号。 决定传输的字节数,并判断DMA是否结束。 发出DMA结束信号,使CPU恢复正常工作状态
34
6.2 I/O指令和I/O地址译码 为了区分接口电路的各个寄存器,系统为它们各自分配了一个地址,称为I/O端口地址,以便对它们进行寻址并与存储器地址相区别 I/O端口有两种编址方式:存储器映像方式、I/O独立编址方式
35
1、存储器映像编址 指I/O端口与存储器共享一个寻址空间,又称为统一编址。在这种系统中,CPU可以用同样的指令对I/O端口和存储器单元的进行访问。 优点:对I/O口的访问灵活方便,有利于提高端口数据的处理能力。 缺点:I/O端口占用了主存地址,相对减少了主存的可用范围。
36
2、I/O独立编址(一) 指主存地址空间和I/O端口地址空间相互独立,分别编址。CPU通过指令来区分是访问I/O口还是存储单元
37
2、I/O独立编址(二) 80X86系列微处理器采用独立的I/O编址方式
CPU使用地址总线中的A0~A15来寻址I/O口,故最大I/O空间是64K个字节端口(或32K个字端口)
38
两种编址方式比较(一) 内 存 空 间 内 存 空 间 I/O 空 间 I/O 空 间
39
两种编址方式比较(二) 接口 外设 CPU AB DB CB 存储器 存储器 CPU AB DB CB 接口 外设 存储器读写 I/O 读写
40
I/O接口的访问控制 微机系统的每个端口都有惟一的端口地址 端口地址:经译码电路译码后产生端口选通信号,控制端口的读/写操作
41
I/O端口的地址分配 80X86系列微处理器提供16条地址线访问I/O端口,编址可达64K个字节端口或者32K个字端口。
IBM系列采用非完全译码方式,即只考虑了低10位地址线A0-A9,I/O端口地址范围是0000H-03FFH,总共只有1024个端口 80386微处理器或此后的微处理器构成的微机系统,采用全译码的方法,端口为64K个字节端口或32K个字端口
42
I/O端口地址选用的原则 自行设计接口电路或给微机系统添加接口卡时,必须避免端口地址发生冲突 申明保留的地址,不要使用
用户可使用300H--31FH地址
43
I/O端口的地址译码 将来自地址总线上的地址代码翻译成为所需要访问的端口 I/O端口地址译码电路结构 译码电路的输入信号
地址信号:由地址范围决定 控制信号:数据流向(读/写)、数据宽度(8位/16位)、是否采用奇/偶地址和DMA传送方式 译码电路的输出信号:接口芯片的片选信号 端口的读写控制:输入需要缓冲, 输出需要锁存
44
输入缓冲电路 当读有效时,才将缓冲器中的三态门打开,使外设的数据进入系统的数据总线 其它时间,三态门处于高阻状态,不影响总线上的其它操作 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 当读有效时,才将缓冲器中的三态门打开,使外设的数据进入系统的数据总线 其它时间,三态门处于高阻状态,不影响总线上的其它操作
45
输出锁存 选中锁存器时,总线上的数据才能进入锁存器
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 选中锁存器时,总线上的数据才能进入锁存器 此后不管总线上的数据(锁存器输入端)如何变化,只要没有再次使锁存器的信号有效,锁存器的输出端就一直保持原来锁存的信息不变。
46
I/O地址译码方法 地址译码的方法灵活多样
高位地址线与CPU的控制信号进行组合,经译码电路产生I/O接口芯片的片选信号CS,实现系统中的接口芯片寻址 低位地址线直接接到I/O接口芯片的地址引脚,进行I/O接口芯片的片内端口寻址
47
I/O端口地址译码电路设计 译码电路的形式 译码电路采用的元器件来分 固定式译码:接口中用到的端口地址不能更改 可选式译码: 门电路译码
译码器译码 可编程逻辑器件译码
48
读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 端口读:IOR,AEN 译码输出:/R77AH 执行 MOV DX,77AH IN AL,DX
49
读/写操作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
50
译码器译码 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
51
可选式端口地址译码器 通过开关使接口卡的I/O端口地址根据需要加以改变而无需改动硬件电路,能适应不同的地址分配场合
其电路可由地址开关、译码器、比较器和基本门电路等组成
52
用比较器组成的可选式译码电路 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
53
可编程逻辑器件作译码电路 可编程逻辑器件包括GAL、CPLD和FPGA 通常一片GAL器件的电路规模可达几百门,而FPGA可达几百万门
这些器件可以被多次修改和反复使用的 只需要修改软件,就可以改变译码电路
54
6.3 PC机的系统总线(放在本章后详细讲述)
55
6.4 基本输入输出接口 键盘/鼠标接口 数码管显示接口 并行打印机接口
56
键盘接口 线性键盘:按键并联方式与I/0端口连接 矩阵键盘:按键按照行、列方式排列 每一个按键需要占用I/O端口的一根口线
由程序处理按键的操作情况 矩阵键盘:按键按照行、列方式排列 比线性键盘节约I/0口线 非编码键盘:CPU处理按键的操作,减低了CPU的效率 编码键盘 :专用的单片机处理按键操作,缓减了CPU的负担
57
矩阵键盘结构 +5V 10k Ω 第 行 10k 8 第 1 Ω 位 行 并行 10k Ω 第 2 行 输入 …… 端口 10k Ω 第 7
Ω 第 行 10k 8 第 1 Ω 位 行 并行 10k Ω 第 2 行 输入 …… 端口 10k Ω 第 7 行 第 列 第 1 列 第 2 列 第 3 列 …… 第 7 列 8 位 并行 输出 端口
58
行扫描法(一) 第一步:判断是否有键按下 输出端口的各位都为低电平,即各列都为0 读取输入端口数据,如果输入不等于FFH,则有键被按下
MOV AL,00H; MOV DX,OUTPORT; OUT DX,AL MOV DX,INPORT; IN AL,DX; AND AL,0FFH CMP AL,0FFH
59
行扫描法(二) 第二步:确定按键号 确定按键的列数:输出扫描值,使某一列为低电平,其它列为高电平;读取行值,看是否有行线处于低电平
确定按键的行数:循环右移行值,直到为0
60
行扫描法程序流程 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 ,计数器 = 列数 行扫描初值 = B 全部扫描完? 否 输出扫描值,使某一行为低电平 扫描值循环左移一位, 使下一列为低电平 键号 +1 ,计数值 - 1 否 是否有一行接地? 读进行值 行值循环右移一位 是 是 进位位为 ? 否 键盘 命令 结束 是 处理
61
微机键盘接口 其接口电路通常集成在主板上 最早的键盘接口是用8255实现的,而鼠标则通过RS-232串口实现
目前微机系统的键盘/鼠标是PS/2接口。 微机键盘单片机 自动地识别键的按下与释放,自动生成相应的扫描码, 并以串行方式发送扫描码到主机 主机根据扫描码转换为反映键功能的ASCII码 严格地说,微机键盘仍属于非编码键盘
62
键盘/鼠标接口引脚定义 通过数据线DATA和时钟线CLK两根线, 就可以实现主机和PS/2设备之间的通信
63
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键盘发送数据的时序图
64
键盘的BIOS调用 DOS的1H、6H、7H、8H、0AH、0BH、0CH功能接收单个字符或字符串,比INT 16H更方便
但INT 16H一次可读取一个字符的扩充ASCII码,而DOS功能调用需要两次才能读取1个字符的扩充ASCII码
65
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: ……
66
鼠标接口 仍然是PS/2接口 PS/2鼠标有四种工作模式 鼠标发送的数据包格式 RESET模式 STREAM模式 REMOTE模式
WRAP模式 鼠标发送的数据包格式
67
INT 33H功能调用(一) 初始化鼠标驱动程序 :功能号0 显示或隐藏鼠标光标:功能号1、2 XOR AX,AX;功能号0
MOV AX,0001H;显示鼠标光标功能号 INT 33H MOV AX,0002H;隐藏鼠标光标功能号
68
INT 33H功能调用(二) 取得或设置鼠标光标的位置 :功能号3、4 监视鼠标按钮状态 :功能号5和6
设定鼠标光标在屏幕上的范围 :功能号7 、8 跟踪鼠标光标的移动 :功能号0BH
69
数码管显示接口 共阴结构 共阳结构 段选码 阴极控制端为低电平时,LED工作 输入控制端为高电平时,对应的发光管亮
输入控制端为低电平时,对应的发光管亮 段选码
70
静态显示 段(发光二极管)恒定地导通或截止,直到显示另一个字符为止 各个数码管的输入控制端相互独立,并与接口电路的输出端口相连
占用I/O端口资源多:数码管的个数为M时,需要的接口口线数目为8×M。所以显示位数较多时,需要采用动态显示方式
71
动态显示 所有数码管共享输入控制端 需要的口线数=8+数码管的个数 M 工作原理:动态地轮流点亮各个LED 位选码:选择被点亮的LED
段选码:显示什么字符 通常通过查找表的方式实现
72
动态显示例子 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
73
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 位 段选 位选 图 个数码管的显示接口电路 79H 76H H E
74
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 位 段选 位选 图 个数码管的显示接口电路 76H 79H H E
75
并行打印机接口 打印机提供了与微机系统相连的36芯Centronics连接器 微机上的并口采用的是DB25
最主要的信号:8根数据线,2根握手联络信号线/STROB和/ACK、1根状态信号线BUSY
76
Centronics标准时序图 BUSY ACK 5 μ s DATA 数据有效 数据有效 STROB 5 μ s
77
并行打印机接口框图 输出数据 写数据 寄存器 数据线 8 D ~D 数 据 输入数据 读数据 收 缓冲器 集 控制 打 发 线 DIR 4
7 数 据 输入数据 读数据 收 缓冲器 集 控制 打 发 线 DIR 4 电 器 写控制 极 控制寄存器 印 驱 AEN 命 动 4 A ~A 令 状态寄存 器 9 机 译 读控制 器 (2) IOR 码 器 IOW 状态线 读状态 状态寄存 5 复位 器 (1) IRQ
78
打印机端口 三个打印机接口,使用的起始端口地址分别为278H、378H、3BCH,每个打印机接口工作在基本模式时,各占用起始端口地址开始的3个连续端口地址 当只配置一个打印机接口时,默认的端口地址为378H-37FH,且378H为数据端口地址、379H为状态端口地址、37AH为控制端口地址
79
控制寄存器格式 D D D D D D D D 1 :有效 未定义 选通信号 1 :数据口输入模式 自动换行信号 :数据口输出模式
7 6 5 4 3 2 1 :有效 未定义 选通信号 STROB 1 :数据口输入模式 自动换行信号 AUTOLF :数据口输出模式 初始化信号 INIT 中断允许信号 打印机允许信号 SLCTIN
80
状态寄存器格式 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 :打印机在线 :发生错误
81
打印机接口编程(一) 直接对端口地址进行编程操作 MOV DX,378H;指向输出数据口 OUT DX,AL;输出字符(ASCII码)
WAIT: IN AL,DX;读打印机状态 TEST AL, B;检查打印机是否忙? JE WAIT;忙,继续等待 MOV AL, B;发送选通信号 MOV DX,37AH;控制端口 OUT DX,AL MOV AL, B;选通信号复位
82
打印机接口编程(二) BIOS中断功能调用,中断类型号是17H MOV AH,0;功能号0 MOV AL,’P’ ;待打印字符
MOV DX,0 ;打印机接口号 INT H;中断功能调用 TEST AH,01H;检测是否超时 JNZ ERROR ;超时,转出错处理
83
IEEE1284并行接口工作模式 硬件上完全与原打印机接口标准兼容 传输速率有较大提高,而且为双向传输。
定义了兼容模式、半字节模式、字节模式、ECP(Extended Capabilities Port )模式和EPP(Enhanced Parallel Port)模式等五种传输模式
Similar presentations