620 likes | 780 Views
第 9 章. 输入输出接口 与控制. 本章全面、系统的介绍了微机系统的输入输出接口及其技术。首先,从宏观和理论的角度,系统说明了输入输出接口在微机系统中的角色和地位,接口的基本功能、 CPU 和接口的数据传输方式等技术基础。通过对可编程中断控制器 82C59A 和并行接口 82C55 这两个芯片介绍,描述了实际的输入输出控制。
E N D
第 9 章 输入输出接口 与控制
本章全面、系统的介绍了微机系统的输入输出接口及其技术。首先,从宏观和理论的角度,系统说明了输入输出接口在微机系统中的角色和地位,接口的基本功能、CPU和接口的数据传输方式等技术基础。通过对可编程中断控制器 82C59A和并行接口82C55这两个芯片介绍,描述了实际的输入输出控制。 介绍了两个实际的串行接口,并将目前常用的串行数据的传送方式、串行接口标准等知识给于描述。然后,将被广泛应用的SCSI接口以及所采用的技术进行了描述,知识新而实用。最后以实例介绍了常用的数模(D/A)转换器和模数(A/D)转换器及其所采用的技术。
外设 CPU I/O接口 9.1 接口技术基础 接口电路又称为I/O接口。I/O接口就是为了解决CPU与外设之间信息的交换问题,I/O接口是CPU与外设之间传输信息的部件,每个外设都通过I/O接口与CPU相连。如图所示。
9.1.1 接口的基本功能 I/O接口应具有以下主要功能: 1。信号转换。 2。数据缓冲。 3。地址译码和设备选择逻辑。 4。CPU与外设之间传输数据所需的控制逻辑和状态信号。 5。校验和检查。
输入/输出接口电路 外围 设备 数据 CPU 数据总线 数据端口 状态 地址总线 状态端口 控制总线 控制 控制端口 接口上的信息交换 通常,输入/输出设备接收或发送信息的速度与CPU的操作速度相比相差甚远。所以对输入/输出设备的控制可以采用信号交换(或查询)的方法。图所示为输入/输出接口的逻辑原理框图。
接口部件的I/O端口及其编址方式 1. I/O端口 在输入输出接口中,可以通过CPU进行读/写的寄存器又叫端口。存放数据的叫数据端口。存放外设状态信息的寄存器叫状态端口, 2. I/O端口的编址方式 每个端口都有一个端口地址,端口地址的编址方式有两种:统一编址方式和独立编址方式。 ①统一编址方式是把每一个I/O端口地址看成是一个存储器单元地址。 ② 独立编址方式
CPU和接口的数据传输方式 CPU与外设之间的数据传输方式主要有: 程序控制方式、 中断控制方式、 直接存储器存取(DMA)方式 通道控制方式。
程序控制方式 程序控制方式数据传输是指在程序控制下进行信息传送,程序控制方式又分为无条件传输方式和查询工作方式。 1.无条件传输方式 所谓无条件传输是指CPU不用查询外设的状态而直接进行信息传输。 2.查询传输方式 查询传输方式也叫有条件传输方式。因为CPU与外设的工作是异步的,不能保证CPU执行输入操作时,外设已经处于“准备好”状态,而CPU执行输出操作时,外设已处于“空闲”状态。
中断传输方式 所谓中断是CPU在执行程序的过程中,由于某种外部或内部事件的发生,强迫CPU停止当前正在执行的程序,转去执行为该事件服务的特殊程序,在对该事件服务结束后,再自动返回到被中断的程序继续执行。中断过程如图所示。
DMA传输方式 与条件查询方式比起来,利用中断方式传送数据可以大大提高CPU的效率。但是在中断方式下每进行一次传送数据,都必须通过CPU执行一次中断处理程序,而且每次中断CPU都要保护断点和现场,执行完中断程序后,都要恢复断点和现场等,这都要花费CPU大量的时间。这对于一个传输速度较高、数据传输来较大的I/O设备(如硬盘)来说,就显得速度太慢了。为了解决这个问题,就需要改变数据的传输方式,这就是不仅可以按字节而且可以按数据块进行传输,即直接存储器存取方式 ( Direct Memory Access),简称DMA方式。
I/O通道控制方式 对于有大量I/O设备的微机系统,采用通道技术是一种更理想方法。通道是一个用来控制外设工作的硬件机制,通道是独立于CPU的专门负责输入输出工作的处理机,它具有自己的指令,包括读、写、控制、转移、结束和空操作等指令。它对外设统一管理,代替CPU对输入输出操作进行控制
9.2 输入输出控制 在微机系统中,外围设备越来越多,其功能也越来越强,控制起来也就更加复杂,输入/输出控制技术通常也就采用硬件技术与软件相结合的方法来实现,所以,输入/输出控制技术是硬件和软件结合在一起的一项综合技术。
1. 可编程中断控制器 82C59A芯片 82C59A是为简化微机系统中断接口而设计的LSI外围芯片。通常把该电路称为可编程中断控制器(PIC),它是一种高性能的CHMOS优先权中断控制器。经级联可接受8至64个中断输入,可实现多种优先权策略。
Vcc GND 处理机接口 D0~D7 82C59A RD WD CS 中断输入 IR0~IR7 A0 INT INTA 级联接口 CAS0~CAS2 SP/EN 可编程中断控制器82C59A 的引线信号示意图
82C59A的内部体系结构 82C59A内部体系结构是由八个功能部件构成,它们分别是: 数据总线缓冲器 读/写逻辑 控制逻辑 中断服务寄存器(ISR) 中断请求寄存器(IRR) 优先级仲裁器 中断屏蔽寄存器(IMR) 以及级联缓冲器/比较器
INTA INT 数据 总线 缓冲器 控制逻辑 D7~D0 RD 读/写 逻辑 WR 中断 服务 寄存器 [ISR] 中断 优先级 仲裁器 PR 中断 请求 寄存器 [IRR] A0 CS 级联 缓冲器/ 比较器 CAS0 CAS1 中断屏蔽寄存器(IMR) CAS2 SP/ EN 内部总线 IR6 IR7 IR4 IR5 IR3 IR1 IR2 IR0 82C59A内部体系结构
1. 数据总线缓冲器与读/写逻辑 这两个部件均允许微处理器访问内部寄存器,且还提供中断类型号,以及到达微处理器的路径。 2. 终端控制逻辑 1)中断请求寄存器IRR 2)中断屏蔽寄存器IMR 3)优先级仲裁器PR 4) 中断服务寄存器ISR 3. 级联缓冲器/比较器 级联缓冲器/比较器提供主控设备芯片与从属设备芯片82C59A之间的接口。
D7 D6 D5 D4 D3 D2 D1 D0 IC4 1 A7 A6 A5 LTIM ADI SNGL 1:需要ICW4 0:不需ICW4 中断向量地址的A7~A5(MCS80/85) 0=不需ICW4 1:单片方式 0:级联方式 标志位:1 1:电平触发输入 0:边沿触发输入 1:调用间隔为4 0:调用间隔为8 82C59A的中断程序设计 82C59A的工作方式由软件程序所决定。有两组寄存器,一组寄存器用于存放CPU写入的初始化命令字(ICW1~ ICW4),另一组寄存器存放操作命令字(OCW1~OCW3)。 1. 初始化命令字 初始化编程时,可供写入的命令字有ICW1~ ICW4。 1)ICW1 ICW1的格式和各位功能如图示。
D7 D6 D5 D4 D3 D2 D1 D0 M3 M6 M2 M1 M0 M7 M5 M4 2. 操作命令字 控制82C59A操作的操作命令字有三个:OCW1~OCW3。这些命令允许中断启动后进一步修改中断接口操作。 1) OCW1 OCW1为中断屏蔽字,写入到断屏蔽寄存器IMR中,对外部中断请求信号IRi进行屏蔽。OCW1的格式如图所示。
ICW1 ICW2 否(SNGL=1) 级联方式中SNGL=0? 是(SNGL=0) ICW3 否 (IC4=0) 需ICW4 是 (IC4=1) ICW4 准备接受 中断请求 3. 82C59A的程序设计 82C59A的初始化编程要写入命令字ICW1~ICW4,ICW1~ICW4使用了两个端口:ICW1使用A0=0的端口,ICW2~ICW4使用A0=1的端口。初始化程序应该按系统规定的顺序写入,先写ICW1,再写ICW2~ICW4。 图的流程图描述了用ICW命令初始化82C59A时所发生的事件序列。
并行接口82C55芯片 可编程控制的并行I/O外设接口,Intel 82C55A芯片是一个流行的、成本低且与Intel系列32位微处理器一起使用的通用I/O接口。 1.82C55A体系结构 下图为82C55A的内部逻辑框图,它由以下几个部分组成。 (1)数据总线缓冲器 数据总线缓冲器是个三态双向8位缓冲器,它是82C55A与系统数据总线的接口。 (2)读写控制逻辑 读写控制逻辑接收来自CPU的地址总线抵制和控制信号 (3)A组控制电路和B组控制电路 A组控制电路控制端口A和端口C的上半部(PC7~PC4),B组控制电路控制端口B和端口C的下半部(PC3~PC0)。 (4)数据端口 82C55A有三个8位的数据端口A、B、C,都可以选择作为输入和输出,各端口的功能不同。
A组 端口A [8位] A组 控制电路 I/O PA7~PA0 A组 端口C [高4位] I/O PC7~PC4 数据总线 缓冲器 D7~D0 8位内部 数据总线 B组 端口C [低4位] I/O PC3~PC0 读写 控制 逻辑 RD WR B组 端口B [8位] B组 控制电路 A1 I/O PB7~PB0 A0 RESET CS 82C55A的内部逻辑结构
端口C(低4位) 1:输入 0:输出 端口B(4位) 1:输入 0:输出 方式选择 1:方式1 0:方式2 D3 D1 D2 D0 D7 D6 D5 D4 端口C(高4位) 1:输入 0:输出 端口B(4位) 1:输入 0:输出 方式选择 00:方式0 01:方式1 0x:方式2 方式字特征值 恒为1 3. 82C55A控制字及其工作方式 82C55A可以通过控制字设置它的工作方式。82C55A有方式选择控制字和C端按位置1/置0控制字。 (1)82C55A控制字 图是方式选择控制字各位的功能。
82C55A的工作方式 从方式控制字可以看出B口有方式0和方式1两种工作方式,而A口有方式0、方式1和方式2三种工作方式。 1.方式0 方式0也称为基本输入/输出工作方式。 2.方式1 方式1也称为选通输入输出方式。 3.方式2 为选通式双向传输方式。
9.3 串行接口 串行I/O接口是广泛应用于微系统的一种通用接口。所谓串行接口,就是将要传送的数据以逐位传送的方式进行操作。在进行数据的传送操作时,先将并行的字节信息转换成串行的位,并且逐位的进行发送操作。而接收设备在进行接收操作时,再将逐位收到的数据拼装成字节。
发送线 甲 方 乙 方 发送器 接收器 串行数据的传送方式 在串行通信中,通常是在两个(像CPU、终端设备)设备之间进行数据的传送操作。将串行数据的传送方式分成单工、半双工和全双工三种基本的传送方式。 单工传送方式 所谓单工传送方式就是数据只能从甲方单方向地传送到乙方或者相反。比如像CPU与打印机的通信线路就仅需支持一个方向上的通信。甲乙方只需一方设置一个发送器,而另一方设置一个接收器即可实现通信,如图所示。
甲 方 乙 方 发送器 发送器 发送/ 接收线 接收器 接收器 半双工传送方式 这种传送方式,只设一条通信线路,数据既可以从甲方传送到乙方,又可以从已方传送到甲方。由于只有一条通信线路,就不能同时进行两个方向的数据传送操作,只能分时进行数据的传送操作的情况下。半双工方式要求甲、乙双方要分别设置一套发送器和接收器,如图所示。
发送线 乙 方 甲 方 发送器 接收器 接收线 接收器 发送器 全双工传送方式 全双工传送方式可以使甲、乙双方既可以同时发送数据,也可以同时接收数据,这就要求甲、乙双方要分别设置一套发送器和接收器,并需要两条独立的通信线路,如图所示。
串行接口标准 欲在一个CPU系统内实施串行通信,有两个问题需要解决;一是在CPU与外备之间要共同遵守某种约定,也就是要共同遵守物理接口标准,像电缆的机械特性、电气特性、信号功能以及传送过程的定义等。二是按照接口标准来设置CPU与外设之间进行串行通信的接口电路。串行通信按信息格式分为两种通信方式:同步通信和异步通信。
系统2 接收数据 系统1 发送数据 时钟 信号地 (1)同步数据通信 所谓同步通信,是指通信设备双方的发送器和接收器必须同步地运行。因此,图所示的接口中,除包括有发送数据线,接收数据线以及信号地线外,还有一条时钟信号线,数据的发送和接收就是用这个时钟信号来进行同步的。
系统1 系统2 接收数据 发送数据 信号地 (2)异步数据通信 异步通信方式则不需要时钟信号,如图所示。最简单的异步通信接口形式也应包括接收数据线、发送数据线及信号地。在异步通信数据流中,每个字符出现在数据流中的时间是不确定的,接受方并不知道对方何时发送,也就是说字符和字符之间是异步的。
RS-232C接口 RS-232C接口是美国EIA(Electronic Industries Association),与BELL公司等一起开发的一个串行接口标准,该标准适用于数据传输速率在0~20 000 b/s范围内的通信。
RS-232C总线的主要特点 (1)信号线少 RS-232C标准定义了一个由25个管脚引线组成的接口。。 (2)可供选择的传输速率多 RS-232C规定的标准传输速率有50、75、110、300、 60、1200、2400、4800、9600、19200bps, 可适用 于不同速率的设备。 (3)抗干扰能力强 RS-232C采用负逻辑,以+5~+15V之间任意电压 表示逻辑“0”,以-5~-15V之间任意电压表示逻辑“1”, 因而抗干扰能力强。 (4)最大传送距离 RS-232C接口的最大距离为100英尺(1英尺≈0.305M)。
13 25 1 保护地 1 2 发送数据 TXD 2 3 接收数据 RXD 3 14 4 请 求发送 RTS 4 1 5 允许发送 CTS 5 6 数据设备准备好DSR 6 2 0数据终端准备好DTR 20 7 载波检测CD 7 8 信号地 8 2. RS-232C接口信号 RS-232C接口共有25根信号线,使用“D”型连接器。RS-232C最基本的最常用的信号规定如图所示。
通用可编程串行接口16550 当微机进行串行传输数据时,需要进行串行到并行和并行到串行的转换。通用异步接收发送器 UART)就是串行异步通信的接口电路芯片。16550就是由美国半导体公司生产的支持串行异步通信的可编程的接收发送器接口芯片。
1. 16550的主要特性 (1)芯片内部包含发送器和接收器,可实现全双工通信。 (2)支持异步通信。 (3)数据传输率可在50~115200BPS范围内选择。 (4)具有控制Modem功能和完整的状态报告功能。
2. 16550的内部结构 ⑴数据发送器 数据发送器由数据发送寄存器、发送移位寄存器和发送控制电路组成。 ⑵ 数据接收器 数据接收器由数据接收寄存器、接收移位寄存器和接收控制电路组成 ⑶ 波特率发生器 XIN是外部晶振输入信号,XOUT是外部晶振输出信号,XIN和XOUT一起构成反馈回路得到波特率发生器的振荡器。 (4)调制解调器(Modem)控制逻辑 Modem控制逻辑由Modem控制寄存器、Modem状态寄存器和Modem控制逻辑电路组成。 (5)中断控制逻辑 中断控制逻辑由中断允许寄存器、中断识别寄存器和中断控制逻辑电路组成
16550内部寄存器 16550内部除了有数据发送寄存器、数据接收寄存器、发送移位寄存器、接收移位寄存器、除数寄存器之外,还有以下控制寄存器。 (1)通信线路控制寄存器(LCR) (2)线路状态寄存器(LSR) (3)Modem控制寄存器(MCR) (4)Modem状态控制寄存器MSR (5)中断允许寄存器IER (6) 中断识别寄存器IIR
9.4 SCSI接口 小型计算机标准接口SCSI (Small Computer Standard Iinterface) 目前已广泛应用于PC兼容系统以及许多工作站中,是外围设备接口中属于比较成功的一个。 传统的SCSI称为SCSI-1,数据传送宽度为8位。SCSI是一种并行接口,它可以5MHz时钟速度或5MB/s传送速度操作,SCSI-1最多与7个设备以菊花链形式连结到主机上。
SCSI接口标准的主要特性 (1)SCSI是系统级接口,可与各种采用SCSI接口标准的外设相连,总线上的主机适配器和控制器的总数最大为8个。 (2)SCSI是一个多任务接口,具有总线仲裁功能。 (3)SCSI总线上的设备没有主从之分,双方平等。 (4)SCSI可以按同步方式和异步方式传输数据。 (5)SCSI可分为单端传送方式和差分传送方式。
加电或复位 信息传送期间 总线 空闲操作 仲裁操作 (多个设备) 选择或 重新选择 命令、数据、 状态、信息 SCSI接口操作步骤 SCSI接口的操作被设计成8个操作步骤: 总线空闲操作、总线仲裁操作、选择操作、重新选择操作、命令操作、数据操作、状态操作和信息操作。图示为SCSI总线各个操作步骤的次序。
DB7~DB0、DBP 启 动 设 备 目 标 设 备 DB15~DB8、DBP1 BSY SEL C/D I/O MSG REQ ACK ATN RST SCSI接口的操作信号 SCSI-1配备有18条信号 线,被分成4类。它们分别 是数据线、数据奇偶校验 线、控制线、和信号地。 其中有9条是数据线,其中 8条用于数据信号的传送, 1条被当成奇偶校验线。另 有9条是控制线。图示为宽 度为16位的SCSI 总线接 口信号。
SCSI接口信息 SCSI接口有3种信息格式,它们分别是单字节、双字节和三字节信息或更多字节的扩充信息。通常,信息的第一个字节表示的是信息代码,由这个代码决定信息的格式, 表9-2列出了信息的格式种类。 表9-3列出了扩充信息的结构。
SCSI接口命令 SCSI接口协议的核心部分是SCSI接口命令集,每条命令均由启动设备发送,告之目标设备要进行的是一些什么操作。命令的内容包含有:从目标设备检索数据(读)、将数据发送到目标设备(写)、以及外设的一些特定的操作。在所有各种情况下,执行的命令是以下步骤的全部或某些子集。 (1)目标设备获得命令信息,并对其进行译码。 (2)将数据传送到目标设备,或从目标设备将数据传送出来(并非所有命令都这样执行)。 (3)由目标设备产生状态信息并将其传送出去。
8位 操作码 1 逻辑单元号 保留或逻辑模块地质 1 逻辑模块地址 (根据需要) 2~4 传送长度 (根据需要) 或参数表长度(根据需要) 或分配长度(根据需要) 1~4 控制 1 SCSI接口命令是由启动设备提供和发出的,命令是在命令描述块CDB中规定的,命令描述块CDB是由字节组成的,如图示。
模拟量输出(处理后的控制信息) 模拟量输入(数据采集) 计 算 机 生 产 过 程 输入接口 传感器 A/D 模拟量 数字量量 数字量量 模拟量 数字量量 数字量量 执行元件 D/A 输出接口 9.5 数模(D/A)转换器和模数转换器 数/模转换器(D/A)能把数字信号(Digit)转换为模拟信号(Analog)。 模/数转换(A/D)器能把模拟信号(Analog)转换为数字信号(Digit)。 D/A和A/D转换主要用于计算机实时控制和自动测量系统中,如图示。
N位数字量输入 模拟电压输出 模拟开关 电阻网络 运算放大器 . . . . . . 数/模转换器 数/模转换器的基本原理 数/模转换器的功能是把数字信号(Digit)转换为模拟信号(Analog)。数/模转换器简称为DAC。DAC的主要组成部件包括模拟开关、电阻网络和运算放大器,如图
Rf Vo = -Vi R 2.基本运算放大器 运算放大器的放大倍数足够大时,输出电压VO与输入电压Vi关系为: Rf I 电流 I=-I1 I=Vi/R=-V0/ Rf R I1 Vi ∑ VO 多个支路见下页
I 总电流 Rf I1 R1 I=-(I1+I2+…+In) I2 ∑ Vi … VO In Rn 多个输入支路的运算放大器 输出电压VO与输入电压Vi的关系: Vo=-I×Rf=(Vi/R1+Vi/R2+ …+Vi/Rn)×Rf 若令每个支路输入电阻为2iR,且(Rf/R)Vi=Vref ,有: Vo=-Vi(1/2R+1/4R+…+1/2nR)×Rf =-Vi(1/2+ 1/4+ …+ 1/2n)Rf/R Vo=-Vref(1/2+ 1/4+ …+ 1/2n)(Vref为基准电压)
Rf 2R 对应D8 S1 S2 S3 S4 S5 S6 S7 S8 4R 对应D7 8R 输出 16R Vref VO (这里n=8) 256R 对应D1 权电阻网络 • 采用开关控制支路 • 合上时 Si=1,断开时 Si=0 • 输出:Vo=-Vref (S1/2 +S2/4+ …+ S8/256) • 输入数据为00H:8个开关都断开,VO=0 • 输入数据为01H:S8开关闭合, VO=-1/256Vref • 输入数据为FFH:8个开关都闭合,Vo =-255/256Vref