230 likes | 367 Vues
输入 / 输出接口. 第五章 输入输出接口. ROM. I/O 接口. 外设. RAM. CPU. 基本概念. 第 5.1 节 基本概念 外设 输入 / 输出设备是外部设备,简称 外设 。微机与外设之间的信息交换称为 输入和输出 。 接口 接口 :外设与总线之间的中间环节,是计算机与外设交换信息的控制电路。 端口 :接口电路中可以被寻址访问的存储单元。可分为数据端口、状态端口、控制端口。. D15 ~ D0. 数据口. A15 ~ A0. 状态口. I/O 装置. A0. BHE. IOR. 控制口. IOW.
E N D
输入/输出接口 第五章 输入输出接口
ROM I/O接口 外设 RAM CPU 基本概念 第5.1节 基本概念 • 外设 输入/输出设备是外部设备,简称外设。微机与外设之间的信息交换称为输入和输出。 • 接口 • 接口:外设与总线之间的中间环节,是计算机与外设交换信息的控制电路。 • 端口:接口电路中可以被寻址访问的存储单元。可分为数据端口、状态端口、控制端口。
D15~D0 数据口 A15~A0 状态口 I/O装置 A0 BHE IOR 控制口 IOW 接口功能 • 接口的功能 • 数据缓冲:外设数据输入到总线时需要缓冲。 • 数据锁存:总线数据输出到外设时的锁存,解决CPU与外设速度不匹配问题。 • 传输控制命令和状态信息:计算机与外设有时需使用硬件握手。例如:计算机利用查询输出到打印机。 • 信息转换:串并转换、数模转换、电平格式转换
I/O端口的编址 • I/O端口的编址方式 • I/O端口与存储器统一编址 把一个外设端口看作存储器的一个单元,占用存储器的地址空间,利用对存储器的读写操作完成数据的输入和输出。 • 优点 • 不需要专门的输入输出指令 • 可使用全部对存储器操作的指令,指令数量多 • 端口数量多 • 缺点 • 占用存储器空间 • 寻址时地址线数多,译码复杂
I/O端口的编址 • I/O端口独立编址 计算机单独给外设端口编址,I/O端口具有独立的地址空间。计算机需用控制信号区分存储器空间和I/O端口空间(例8086 CPU的M/IO)。 • 优点 • I/O空间较存储器空间小,地址线少,译码电路相对简单。 • 不占用存储器空间 • 缺点 • 要有专门输入输出指令,寻址方式少,不灵活
RD IOR M/IO IOW WR 8086 I/O空间 • 8086 I/O空间 • 8086系统使用16根地址线(A15~A0)寻址I/O端口,可寻址64KB个I/O端口; • 偶地址端口数据使用低8位数据总线传送,奇地址端口数据使用高8位数据总线传送; • 奇、偶地址端口的数据传送由BHE和A0控制; • I/O端口的读/写选通信号为IOR和IOW。 注:IBM PC/XT机实际只使用低10位数据线寻址I/O 端口,寻址1KB个端口。
8086 I/O空间 • 计算机系统中,多使用8位端口。8086系统的8位端口使用数据线的低8位传送信息,所以端口地址的编址多为偶地址。现代的计算机体系中,通过转换电路8位端口地址可以连续编址。 • 8086输入/输出指令 • 输入指令 IN AL, PORT IN AX, PORT IN AL, DX IN AX, DX • 输出指令 OUT PORT, AL OUT PORT, AX OUT DX, AL OUT DX, AX
D15~D0 数据口 A15~A0 状态口 I/O装置 A0 BHE IOR 控制口 IOW CPU与外设的连接 第5.2节 CPU与外设的连接 • CPU与外设的一般接口电路 (一)端口 • 数据口:用于完成数据的输入或输出。包括: • 数字量 如用ASCII码表示的数和字符 • 模拟量 如经DAC转换输出的电流 • 开关量 如以一位二进制表示的量
CPU与外设的连接 • 控制口 控制口为一个输出接口,用于控制外设的启动(START)、停止(STOP)或数据的选通(STB)等,具体由外设的要求而定。 • 状态口 • CPU通过状态口了解外设状态。如: • 输入外设是否准备好(READY) • 转换是否结束(EOC) • 输出装置是否忙(BUSY) • 控制信息和状态信息一般也由数据总线传送。
D7~D0 三态 I/O 缓冲 地址 A15~A1 器 装置 译码 若将IOR换作MEMR 则可使用 MOV AL, [160H] OE 器 160H A0 CS 接口 电路 IOR CPU与外设的数据传送方式 • CPU与外设的数据传送方式 (一)无条件传送 传送数据之前,CPU不需要检测外设是否准备就绪,程序中直接使用IN和OUT命令来完成输入和输出。也叫注入式或命令式。 • 无条件输入 MOV DX, 0160H IN AL, DX
T2 T4 T1 T1 T3 CLK M/IO D7 ~ A S3~S6 地址 状态 19~16 数据 D0 输出 BHE 锁存 AD 数据 地址 15~0 地址 设备 A15 器 ALE ~ 译码 A1 WR 器 160H DT/R A0 CS DEN READY IOW I/O写周期时序 CPU与外设的数据传送方式 • 无条件输出 MOV DX, 0160H MOV AL, [BX] OUT DX, AL [BX]中存放需要输出到 I/O接口的内容
输入状态 不满足 条件 判断 满足 条件 传输数据 CPU与外设的数据传送方式 (二)查询传送 传送数据之前,CPU需要检测外设的状态(即握手信号的联络),只有外设条件满足时才传送数据,否则继续检测,直到满足。 通常接口电路中用状态端口的 某一位或某几位表示外设的状态。 也叫问答式。如果外设工作情况无 法预先知道或无规律,一般采用查 询或中断工作方式 • 优点:可解决速度匹配问题,电路和程序都比较简单。 • 缺点:CPU检查外设状态,需要占用大量CPU时间,影响系统效率。
D7 ~ 三态 锁 D0 DB D0 缓冲 存 ADC 器 器 EOC IOR OE C 160H 地址 A15 R ~ 译码 Q C A1 器 D 162H +5V 状态触发器 164H A0 CS IOW 查询输入接口电路原理图 CPU与外设的数据传送方式 • 查询输入
CPU与外设的数据传送方式 • 电路说明 • 控制口:口地址为0164H,只完成ADC的启动,不用传递其他控制信息。0164H•IOW • 状态口:ADC转换结束后,由EOC产生负脉冲,把ADC输出数据锁存到锁存器中,并置状态触发器为“1”,表示数据已准备好。状态信息由数据线D0传送,口地址为0162H. 0162H •IOR. • 数据口:查询状态,条件具备,则选中数据口输入数据,同时清状态,表示数据已读走,防重读。数据口地址为0160H。 0160H •IOR
CPU与外设的数据传送方式 • 从ADC读取一个数据子程序(数据存放在AL中) READ PROC MOV DX, 0160H IN AL, DX ;清状态 MOV DX, 0164H OUT DX, AL ;启动 READ1: MOV DX, 0162H IN AL, DX ;查询状态 TEST AL, 01H JZ READ1 MOV DX, 160H IN AL, DX ;读取数据 RET READ ENDP
D7 锁 ~ DB D0 D0 存 外设 IOR 器 RDY 162H 地址 A15 ACK C 译码 160H ~ A1 器 C Q D 164H A0 CS R +5V IOW CPU与外设的数据传送方式 • 查询输出
CPU与外设的数据传送方式 • 电路说明 • 控制口:由输出口164H产生一个负脉冲启动外设工作。 • 数据口:地址160H,CPU输出数据到锁存器,同时置“1”状态触发器,通知外设数据已准备好。 • 状态口:地址0162H,CPU查询状态,看外设是否取走数据。若外设取走数据,则发ACK信号,清除状态触发器。
CPU与外设的数据传送方式 • 输出一个数据子程序(输出数据在AL中) WRITE PROC MOV DX, 0164H OUT DX, AL ;启动外设 MOV DX, 0160H OUT DX, AL ;输出数据 MOV DX, 0162H WRITE1: IN AL, DX ;查询状态 TEST AL, 01H JNZ WRITE1 RET WRITE ENDP
正常程序 中断服务程序 完成数 据交换 断点 返回 CPU与外设的数据传送方式 (三)中断传送方式 • 外设“准备好”后,向CPU发中断请求 • CPU响应请求,停止正在运行的程序,去执行请求处理 • 处理完请求后,回到断点处继续执行 • 数据交换在中断服务程序中完成 • 优点:CPU主动查询变为被动中断,提高了系统效率 • 缺点:需要专门的中断申请电路,程序设计复杂,不适合对大量数据的传输。
I/O CPU MEM CPU MEM I/O DMAC CPU与外设的数据传送方式 (四)DMA方式(Direct Memory Access ) • 传统方式: • DMA方式: DMA方式适合大量数据高速传输。例如:DRAM刷新等 • 优点:速度高,不需要CPU参与。 • 缺点:硬件接口复杂,DMAC价格高。 DMA控制器或DMA通道一般是 8237芯片 一片8237有4个通道,两片级连有7个通道。
输入/输出实例 第5.3节 输入/输出实例 例1 设计一个输出接口,控制8个发光二极管,每隔1秒钟点亮一只(只有一只亮),从上到下循环往复。 说明: • 74LS273为上升沿锁存的锁存器,其输出灌电流可达8mA,能够点亮发光二极管。 • 74LS133为13输入的“与非”门,由它和反相器74LS04及三-八译码器74LS138对地址线A15~A0进行译码,决定端口地址。 • A0接74LS138的片选G2B,仅偶地址选中,数据由数据总线的低8位传输。
Y0 输入/输出实例
A15A14A13A12A11A10A9A8A7A6A5A4 A3A2A1A0 方 向 范 围 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 输 出 160H 输入/输出实例 • 端口地址 程序: DISPLAY PROC MOV AL, 7FH MOV DX, 160H DISPLAY1: OUT DX, AL ;显示 CALL D1S ;延时1S ROR AL, 1 JMP DISPLAY1 RET DISPLAY ENDP