总线技术与IO接口基础.ppt
6.1 总线技术 6.2 I/O接口,第6章 总线技术与I/O接口基础,6.1 总线技术,6.1.1 总线技术概述,总线定义:总线是芯片内部各单元电路之间、芯片与芯片之间、模块与模块之间、设备与设备之间、甚至系统与系统之间传输信息的公共通路,在物理上它是一组信号线的集合。,总线技术研究对象:总线技术研究如何利用一组信号线有效地传递信息,并使其具有通用性强、扩展性好、升级容易等性能。,数据总线:传送数据信息系统总线的基本组成:地址总线:传送地址信息 控制总线:传送控制信息(完成总线操作功能)电源线:为系统提供电源信号,1.总线的基本组成,2.总线功能,(1)数据传输功能 数据传输功能是总线的基本功能,用总线传输率来表示,即每秒传输的字节数,单位是Mbps(兆字节每秒)。(2)多设备支持功能 多个设备使用一条总线,首先是总线占用权的问题,哪一个主设备申请占用总线,由总线仲裁器确定。,(3)中断 中断是计算机对紧急事务响应的机制。当外部设备与主设备之间进行服务约定时,中断是实现服务约定的联络信号。(4)错误处理 错误处理包括奇偶校验错、系统错、电池失效等错误检测处理,以及提供相应的保护对策。,规定模块尺寸,总线插头、边沿连接器等的规格。,功能结构规范:,机械结构规范:,确定引脚名称与功能,及其相互连接的协议。功能结构规范是总线的核心,通常以时序和状态来描述信息的交流、流向及管理规则。总线在功能结构方面的规范包括:数据线、地址线、读/写及其它控制线、状态线、时钟线、电源线和地线等;中断机制;总线主控仲裁;应用逻辑:如联络(也称握手)线、复位、自启动、休眠维护等。,电气规范:,规定信号逻辑电平、负载能力及最大额定值、动态转换时间等。,3.总线规范的基本内容,4.总线的数据传送,(1)申请占用总线:需要使用总线的总线主设备(如CPU、DMA控制器等)向总线仲裁机构提出占用总线的请求,经总线仲裁机构判定,若满足响应条件,则发出响应信号,并把下一个总线传送周期的总线控制权授予申请者。(2)寻址:获得总线控制权的总线主设备,通过地址总线发出本次要访问的存储器和I/O端口的地址,经地址译码选中被访问的模块并开始启动数据转换。(3)传送数据:总线主设备也叫主模块,被访问的设备叫从模块。主模块和从模块之间的操作是由主模块控制在两个从模块之间通过数据总线进行数据传送。(4)结束:主、从模块的信息均从总线上撤除,让出总线,以便其它主模块使用。,5.微机总线的分类,片内总线:它是位于大规模、超大规模集成芯片内部各单元电路之间的总线,作为这些单元电路之间的信息通路。如CPU内部ALU、寄存器组、控制器等部件之间的总线。局部总线(也称内部总线):通常指微机主板上各部件之间的信息通路。由于是一块电路板内部的总线,故又称在板局部总线。较典型的局部总线如:IBM-PC总线,ISA总线,EISA总线,VL和PCI总线等。系统总线(也称外部总线):是指微机底板上的总线,用来构成微机系统的各插件板、多处理器系统各CPU模块之间的信道。较典型的系统总线如:STD-BUS,MULTI-BUS,VME等。通信总线:它是微机系统与系统之间、微机系统与其它仪器仪表或设备之间的信息通路。这种总线往往不是计算机专有的,而是借用电子工业其它领域已有的总线标准并加以应用形成的。流行的通信总线如:EIA-RS-232C、RS-422A、RS-485,IEEE-488,VXI等总线标准。,各类总线之间的相互关系见图6.1。,图6.1 4类总线之间的关系,6.使用标准总线的优点,简化软、硬件设计:由于总线定义非常严格,任何厂家或个人都必须按其标准制作插件板,有了规范就给用户在硬件设计上带来了很大的方便,简化了设计过程。简化系统结构:采用标准总线,只要将各功能模块(板)挂在总线上就可以方便的构成微机的硬件系统。便于系统的扩充:对于采用标准总线构成的微机系统,只要按总线标准和用户扩充要求设计或直接购买插件板插到总线插槽上就达到了扩充的目的。便于系统的更新:随着电子技术的不断发展,新的器件不断涌现,微机系统也要不断更新,在采用标准总线的插件板上用新的器件取代原来的器件就可以很方便地提高系统性能,而不必做很大改动。,6.1.2 局部总线,1.从IBM PC/XT总线到EISA总线 IBM PC/XT微机系统采用Intel 8088 CPU,它所连接的存储器、I/O设备均为8位,因此,该系统采用8位总线标准。由于Intel 8086及80286为16位的CPU,它们既可以连接8位设备又可以连接16位设备,显然8位总线标准就不再适用。为此,IBM制定了16位工业标准总线(Industry Standard Architecture)ISA总线,又称AT总线。它保留了原来PC总线的全部62个引脚信号,以便与原PC总线插件板兼容,同时它又在底板上增加了一个36引脚的插槽,以便增加新的功能。因此,IBM PC/XT总线又称为ISA-8,而IBM PC/AT总线称为ISA-16。ISA总线是迄今为止最成功的标准总线,其成熟及支持度都是别的总线所不能及的。,2.VESA总线 随着80486和Pentium等高性能计算机的问世,CPU内部处理速度大大提高,加之集成高速缓存和数值协处理器FPU,使得高速的CPU和内存访问同低速的I/O操作成为PC技术中的瓶颈。多媒体的出现,对于图形和高速显示提出用更高的速度传送大量信息的要求。为此,一些厂商在不改变ISA标准的基础上为主板设计了一种特殊的高速插槽。将高速外设控制卡直接挂到CPU局部总线上,并以CPU速度运行,这种特殊的总线插槽称为局部总线插槽。它为CPU和外设提供了一个高速桥梁。它为CPU和外设提供了一个高速桥梁。这种总线主要支持高速外部设备板,对于慢速设备仍保持原来的ISA和EISA总线标准,这样既保持了兼容性又解决了瓶颈问题。PC领域出现了两种比较优秀的局部总线:VESA和PCI总线。下页图6.2给出了具有这种局部总线的PC体系结构。VESA总线是视频电子标准委员会(Video Electronics Standards Association)制定的一种局部总线,又称VL-BUS总线。,图6.2 具有局部总线的PC体系结构,3.PCI总线 PCI总线(Peripheral Component Interconnect,即外围元件互连)是一种为主CPU和外设之间提供高性能数据通道的总线。PCI总线的优势在于:数据线和地址线采用多路复用结构,减少了针脚数。PCI总线定义了两种信号环境:5V和3.3V,并且它们之间可以很容易地相互转换。同时,3.3V环境的定义也为PCI总线用于便携机开辟了道路。PCI总线独立于处理器,因而可支持多系列的CPU和未来的处理器。PCI总线具有32/64位总线透明性,允许32位和64位器件相互协作。允许PCI局部总线扩展板和元件的自动配置,在PCI上包含有寄存器,上面带有配置所需的器件信息。PCI局部总线的引脚功能分配见下页表6.1。,表6.1 PCI局部总线的引脚功能分配,说明:表中带“#”的引脚为低电平有效,表6.1 PCI局部总线的引脚功能分配续,说明:表中带“#”的引脚为低电平有效。,表6.1 PCI局部总线的引脚功能分配续,说明:表中带“#”的引脚为低电平有效,表6.1 PCI局部总线的引脚功能分配续,说明:表中带“#”的引脚为低电平有效。,PCI总线的引脚排列示于图6.3。,图6.3 PCI局部总线的引脚排列,图6.4 一种典型的PCI局部总线系统结构,图6.4给出了一种典型的PCI局部总线系统的结构,在这个例子中处理器/高速缓存/存储器子系统通过桥路与PCI总线相连。该桥路提供一种低时间延迟的通道,通过它,处理器能直接操作任何映射到存储器或I/O地址空间的设备。它也提供一条高带宽通道,使PCI总线主控能直接操作主存储器。该桥路可以选择下列功能:数据缓存/驻留和PCI核心功能(即仲裁)。PCI局部总线不仅能用于高、中、低档的台式机中,而且可用于便携机甚至部门服务器中。PCI总线规范中清楚地说明了5V和3.3V环境之间的转换方法,并定义了由32位数据地址总线扩充为64位总线的方法,使PCI局部总线外设能够向前和向后兼容。目前,PCI总线是Pentium主机所带的最常见的总线。,6.1.3 系统总线,1.S-100总线 S-100总线首先在MITS公司的Altair微机系统中使用,当时有些缺陷,1979年经过两次修改之后成为新的S-100总线,并由国际标准会议定名为IEEE696,它是一种曾经应用很广泛的系统总线。新、旧的S-100总线都设有100条引脚,按功能分为8组,包括:16条数据线、24条地址线、8条状态线、6条控制输入线、5条控制输出线、8条向量中断线、8条DMA控制线和25条其他用途线。它采用100个引脚的插件板,每面各有50个引脚。,2.STD总线 STD总线是1978年由美国普洛公司推出的一种用于工业控制微型计算机的标准系统总线。自问世以来以其优越的性能和特点在工控领域得到了广泛的应用和迅速的发展,显示了强大的生命力,成为国际、国内优选的标准总线之一,并被国际标准化会议定名为IEEE961。早期的8位STD总线在Z80 CPU组成的系统中使用,随着16位CPU的问世,STD总线生产集团推出16位的电路标准STD16,并列入总线规范中,其中地址和数据线采用复用技术,可以支持16位数据和24位地址。32位CPU出现后,STD8和STD16已无法满足应用的需要,1989年美国的EAITECH公司开发出32位的STD总线STD32。,STD总线的特点(1)模块化的小板结构、开放式的灵活组态STD总线使得微机系统被划分成若干模块,并制作成标准的功能模板(插件卡)。用户可根据需要选择功能模板组成自己的微机,插件卡与外设之间可用其他方式连接,因此可以灵活方便地构成适应不同要求的微机系统。图6.5是基于STD总线的微机系统的一个例子。,图6.5 STD总线微机系统结构,(2)高可靠性、高抗干扰能力和高信号质量:STD总线优良的物理特性使之具有抗恶劣环境的能力。其模块化小尺寸结构使其具有抗冲击和振动的能力,也可以减少自身发热产生的问题。由于STD总线采用印刷电路板边缘做接插件,可防止插件卡反插,引脚弯曲或折断。同时STD总线的结构可使信号流有序地从总线接口流向用户接口,提高了信号的质量。(3)兼容的结构、配套的产品和齐全的功能:STD总线的兼容式结构可以使8位的STD产品与新标准的16位或32位STD产品一起工作。STD总线还支持多处理器系统。随着技术的发展和STD产品的推广和应用,其标准插件板的功能不断增强,配套产品越来越丰富,给使用带来极大方便。,3.VME总线 与EISA同期出现的还有美国Motorala公司的VME总线(Versa Module Eurocard),它也是一种32位总线。但主要用于Motorala公司的68000系列CPU,在国内较为少见,因此熟悉它的人不多。,VME总线的特点:(1)VME是异步总线,全部总线传输都是异步完成的,这可最大限度地发挥每一个挂在系统总线上的微处理器的性能,避免因总线速度问题使总线成为系统的瓶颈。(2)在总线上没有事先固定的传输速率,当设备是高速时,总线调整到高速;当设备是低速时,总线调整到低速。地址和数据线都采用非复用方式并行传输,因此相对提高了传输速度。(3)采用总线主控/目标结构,支持最多21个处理器。(4)支持16位、24位、32位寻址及8位、16位、24位、32位数据传输。(5)具有总线错误和系统错误检测能力。,4.MULTI BUS总线 MULTI BUS总线有两个标准,一种是用于16位微处理器的MULTI BUS(简称MB),由国际标准化组织承认并定名为IEEE796。另一种是用于32位微处理器的MULTI BUS(简称MB)被国际标准化组织定名为IEEE1296,它是由MULTI BUS扩展而来的。MULTI BUS总线应用于多处理器系统。,6.1.4 通信总线,1.RS-232C、RS-422A和RS-485总线(1)RS-232C总线RS-232C是一种串行通信总线标准,也是数据终端设备(DTE)和数据通信设备(DCE)之间的接口标准,是1969年由美国电子工业协会(EIA)从CCITT远程通信标准中导出的一个标准。当初制定这一标准的目的是为了使不同厂家生产的设备能达到接插的兼容性,即无论哪一家生产的设备,只要具有RS-232C标准接口,则不需要任何转换电路就可以互相接插起来,但这个标准只保证硬件兼容而不保证软件兼容。RS-232C标准包括机械指标和电气指标,其中机械指标规定:RS-232C标准接口通向外部的连接器(插针和插座)是一个“D”型保护壳25针插头,如图6.6所示。,图6.6 标准25针“D”型插头,25针插脚的功能分配见表6.2,表6.2 RS-232C总线引脚分配及定义,注:带*者为主信道信号组。,R232C的主要特点信号线少:RS-232C总线共有25根线,它包括有主副两个通道,用它可进行双工通信。实际应用中,多数只用主信号通道(即第一通道),并只使用其中几个信号(通常39根线)。传输距离远:由于RS-232C采用串行传输方式,并将TTL电平转换成了RS-232C电平,在基带传输时,距离可达30m。若是采用光电隔离20A电流环传送,其传输距离可达1000m。当然,如果在串行接口加上调制解调器,利用有线、无线或光纤进行传送,其距离会更远。可供选择的传输速率多:RS-232C规定的标准传送速率有:50,75,110,150,300,600,1200,2400,4800,9600,19200波特。可以灵活地使用于不同速率的设备。抗干扰能力强:RS-232C采用负逻辑,空载时以+3+25V之间任意电压表示逻辑“0”,以-3-25V之间任意电压表示逻辑“1”,且它是无间隔不归零电平传送,从而大大提高了抗干扰能力。,RS-232C总线的功能规范 引脚分配:RS-232C总线共有25根信号线,其中,2根地线、4根数据线、11根控制线、3根定时线、5根备用线。引脚分配及定义如下页表6.2所示。引脚信号说明:在RS-232C总线中,虽然绝大多数信号线均已定义使用,但在一般的微型计算机串行通信中,经常使用的只有以下9个信号线,具体见表6.3,它们都是主信道组的信号线。这9根引脚分为两类:一类是基本的数据传送引脚,另一类是用于调制解调器(MODEM)的控制和反映它的状态的引脚。基本的数据传送引脚:TXD,RXD,GND(2,3,7号引脚)是基本数据传送引脚。,表6.2 RS-232C总线引脚分配及定义,注:带“*”者为主信道信号组。,表6.3 微型计算机通信中常用的RS-232C接口信号,MODEM的控制和状态引脚:从计算机通过RS-232C接口送给MODEM的控制引脚包括DTR和RTS。从MODEM通过RS-323C接口送给计算机的状态信息引脚包括DSR,CTS,DCD和RI。DTR数据终端准备完毕引脚,用于通知MODEM计算机准备好,可以通信了。RTS为请求发送引脚,用于通知MODEM计算机请求发送数据。DSR为数据通信设备准备就绪引脚,用于通知计算机,MODEM准备好了。CTS为允许发送引脚,用于通知计算机MODEM可以接收数据了。DCD 为数据载体检测引脚,用于通知计算机MODEM与电话线另一端的MODEM已经建立联系。RI振铃信号指示引脚,用于通知计算机,有来自电话网的信号。RS-232C电气规范RS-232C总线的电气规范列于下页表6.4。,表6.4 RS-232C总线的电气规范,RS-232C电平与TTL电平之间的转换 由于RS-232C使用非常广泛,许多半导体厂家都生产专用于TTL电平与RS-232C电平的专用转换芯片。常用于将TTL电平转换为RS-232C电平的芯片,除MC1488 外还有75188,75150等,用于将RS-232C电平转换为TTL电平的除MC1489外还有75189,75154等。采用MC1488和MC1489进行电平转换的原理如下页图6.7所示。RS-232C总线接口几种常用的连接方法利用RS-232C总线接口,可以实现微型计算机之间、微型计算机与其他具有RS-232C接口的设备之间相连接。常用的连接方法如图6.8所示。其中,下页图6.8(a)、(b)连线比较简单,可以利用查寻或中断方式实现他们之间的通信。,图6.7 采用MC1488和MC1489的电平转换原理,图6.8 几种常用的RS-232C接口连接方法,(2)RS-422A总线 RS-422A采用平衡输出的发送器,差分输入的接收器。如图6.9所示。,图6.9 RS-422A的平衡输出和差分输入,发送器有两根输出线,当一条线向高电平跳变的同时,另一条输出线向低电平跳变,线之间的电压极性因此翻转过来。在RS-422A线路中发送信号要用两条线,接收信号也要用两条线,对于双工通信,至少要有4根线。由于RS-422A线路是完全平衡的,一般情况下,RS-422A线路不使用公共地线。这使得通信双方由于地电位不同而对通信线路产生的干扰减至最小。双方地电位不同产生的信号成为共模干扰会被差分接收器滤波掉,而这种干扰却能使RS-232C的线路产生错误。,但是必须注意由于接收器所允许的共模干扰范围使有限的要求小于25V。因此,若双方地电位的差超过这一数值,也会使信号错误,或导致芯片损坏。当采用普通双绞线时,RS-422A可在1200m范围以38400的波特率进行通信。在短距离(200m),RS-422A的线路可以轻易地达到200k以上的波特率,因此这种接口电路被广泛地用在计算机本地网络上。RS-422A的输出信号线间的电压为2V,接收器的识别电压为0.2V。共模范围25V。在高速传送信号时应该考虑到通信线路的阻抗匹配,否则会产生强烈的反射,使传送的信息发生畸变,导致通信错误。一般在接收端加终端电阻以吸收掉反射波。电阻网络也应该是平衡的,如图6.10 所示。,图6.10 在接收端加终端电阻,(3)RS-485总线 使用接口电路进行全双工通信,需要两对线或4条线,使线路成本增加。RS-485适用于收发双方共用一对线进行通信,也适用于多个点之间共用一对线路进行总线方式联网,通信只是半双工的,线路如下页图6.11 所示。由于共用一条线路,任何时刻,只允许有一个发送器发送数据,其它发送器必须处于关闭(高阻)状态,这是通过发送器芯片上的发送允许端控制的。例如,当该端为高电平时,发送器可以发送数据,而为低电平时,发送器的两个输出端都呈现高阻状态,好象从线路上脱开一样。,图6.11 用RS-485实现多点间的总线方式联网,2.IEEE-488总线 IEEE 488是一种并行的外总线,它是20世纪70年代由HP公司制定的。1975年IEEE以IEEE-488标准总线予以推荐,1977年国际电工委员会(IEC)也对该总线进行认可与推荐,定名为IEC-IB。所以这种总线同时使用了IEEE-448,IEC-IB(IEC接口总线),HP-IB(HP接口总线)或GP-IB(通用接口总线)多种名称。由于IEEE-448总线的推出,使得当用IEEE-448标准建立一个由计算机控制的测试系统时,不要再加一大堆复杂的控制电路,IEEE-488系统以机架层叠式智能仪器为主要器件,构成开放式的积木测试系统,因此IEEE-488总线是当前工业上应用最广泛的通信总线之一。(1)IEEE-488总线使用的约定数据传输速率1MB/S。连接在总线上的设备(包括作为主控器的微型机)15个。设备间的最大距离20M。,整个系统的电缆总长度220M,若电缆长度超过220M,则会因延时而改变定时关系,从而造成工作不可靠。这种情况应附加调制解调器。所有数字交换都必须是数字化的。总线规定使用24线的组合插头座,并且采用负逻辑,即用小于0.8V的电平表示逻辑“1”;用大于2V的电平表示逻辑“0”。(2)系统上设备的工作方式“听者”方式:这是一种接收器,它在数据总线上接收数据,一个系统在同一时刻,可以有两个以上的“听者”在工作。“讲者”方式:这是一种发送器,一个系统可以有两个以上的“讲者”但任一时刻只能有一个讲者在工作。“控制者”方式:这是一种向其他设备发布命令的设备,例如对其他设备寻址,或允许“讲者”使用总线。,图6.12 IEEE-448总线接口结构,(3)IEEE-488总线信号定义说明 IEEE-488总线使用24线组合插头座,其各引脚定义于表6.5。,表6.5 IEEE-488信号定义,IEEE-488的信号线除8条地线外,有以下信号线。D7D0数据总线:这是8条双向数据线,除了用于传送数据外,还用于“听”、“讲”方式的设置,以及设备地址和设备控制信息的传送。字节传送控制线:在IEEE-488总线上数据传送采用异步握手(挂钩)联络方式。即用 DAV,NRFD和NDAC 3根线进行握手联络。DAV(DATA AVAIBLE)数据有效线。当由发送器控制的数据总线上的数据有效时,发送器置DAV低电平(逻辑1),指示接受器可以从总线上接收数据。NRFD(NOT READY FOR DATA)未准备好接受数据线,只要连接在总线上被指定为接收器中的设备,尚有一个未准备好接收数据,接收器就置NRFD线为低电平,示意发送器不要发送数据。当所有接收器都准备好时,NRFD变为高电平。,NDAC(Not Data Accepted)未接收完数据,当总线上被指定为接收器的设备,有任何一个未接收完数据,它就置NDAC线为低电平,示意发送器不要撤消当前数据。只有当所有接收器都接收完数据后,此信号才变为高电平。当ATN=“1”时,表示数据线上传送的是地址或命令,这时只有控制器能发送信息,其它设备都只能接收信息并作出解释。当ATN=“0”时,表示数据总线上传送的是数据。EOI(End or Identify)结束或识别线。该线与ATN线一起指示是数据传送结束,还是用来识别一个具体设备。当ATN=“0”时,这是进行数据传送,当传送完最后一个字节使EOI=“1”,表示数据传送结束,当ATN=“1”,若EOI=“1”时,则表示数据总线上是设备识别信息,即可得到请求得到的设备编码。REN(remote Enable)远程控制线。该信号为低电平时,系统处于远程控制状态,设备面板开关、按键均不起作用;若该信号为高电平,则远程控制不起作用,本地面板控制开关、按键起作用。,(4)IEEE-488 总线传送数据时序 IEEE-488总线上数据传送采用异步方式,即每传送一个字节数据都要利用DAV,NRFD和NDAC 3条信号线进行握手联络。数据传送的时序如图6.13所示。,图6.13 IEEE488总线3线握手时序图,3.总线接口电路 根据不同的总线标准构成微型计算机系统时,均需配置相应的接口电路,一则管理总线,实现总线的功能,二则联接存储器的外围设备,控制存储器和外围设备的工作。近年来,随着高档微处理器的发展,外围接口电路也不断发展,从而产生了许多系列的多功能集成电路芯片,例如:(1)82C206:是一种多功能外围接口电路,其内部包含的功能部件有:2个82C37DMA控制器;2个82C59中断控制器;1个82C54定时器/计数器;1个MC146818实时时钟电路;1个74LS612存储器页面映像控制器以及辅助接口电路。,(2)82344:ISA总线控制器,包含的功能部件有:2个82C37DMA控制器,与页面地址寄存器组成4个8位DMA通道和3个16位DMA通道;2个82C59中断控制器,实现16级中断请求控制;1个82C54 定时器/计数器,提供3个16位定时器计数器;1个与MC146818 完全兼容的实时时钟电路,且具有114字节的通用CMOS RAM;另外还具有DRAM刷新控制逻辑、并行PORTA和 NMI逻辑。(3)82360SL:也是一个多功能外围接口电路,包含的功能部件有:2个82C37A DMA控制器;2个82C59 中断控制器;2个82C54 定时器/计数器;1个与MC146818 兼容的实时时钟电路;1个增强型74LS612 页面存储映像控制器;2个与NC16450 兼容的串行通信接口和1个8位双向并行I/O接口;另外还有256字节的CMOS RAM。(4)82380:也是一个多功能外围接口电路,包括的功能部件有:1个32位8通道DMA控制器;3个82C59A功能相当的中断控制器;4个82C54功能相同的16位定时器/计数器;另外还有DRAM刷新控制电路、总线判优及控制电路。,(5)82357:集成系统外围接口电路(ISP),包括的功能部件有:2个4通道DMA控制器二级级联;2个相当于8259的中断控制器,主从级联;3个与8254功能相当的定时器/计数器;另外还有总线判优电路和NMI产生电路等。(6)HT21:系统控制器,包括的功能部件有:1个82284产生系统定时时序;1个74612提供存储器地址映像;1个8254提供3个16位定时器/计数器;1个8284为8254提供定时脉冲信号;2个8237DMA控制器;2个8259中断控制器,主从级联,接收4个内部和11个外部中断请求。4.SCSI总线SCSI是small computer system interface的缩写,即小型计算机系统接口。它用于计算机与磁带机、软磁盘机、硬磁盘机、CD-ROM、扫描仪、通信设备及打印机等外部设备的连接。目前广泛应用于微型计算机中主机与硬磁盘、光盘的连接,成为最重要、最有潜力的新的总线标准。,6.2 I/O接口,6.2.1 微机接口基本概念,1.接口与接口技术接口的定义:“接口”是微处理器CPU与外界的连接部件(电路)。接口技术的研究对象:“接口技术”是研究CPU如何与外部世界进行最佳耦合与匹配,以实现双方高效、可靠地交换信息的一门技术。,2.为什么要用接口电路 输入/输出(Input/Output)是计算机与外部世界交换信息所必需的手段。一方面,程序、数据和现场物理量等要通过输入设备送给计算机;另一方面,计算机运行的结果和各种控制信号要通过输出设备(输入/输出设备以下简称外设)进行显示、打印或实现实时控制等。计算机的外设有机械式、电子式、机电式等。,3.接口电路的组成及其传递的信息 为了完成CPU与外设之间的信息交换,通常在接口部件中需要传输三种信息。(1)数据信息数据信息是指CPU与外设之间要传送的数据本身。其形式有三种:数字量:常以8位或16位的二进制或ASC码形式传输。模拟量:模拟的电压或电流,甚至非电量(如:温度、压力、流量等),需经传感器转换成连续变化的电信号,再经A/D转换器变成数字量形式传输。开关量:通常用于表示两种状态“0”和“1”,如开关的通/断,电机的转/停,阀门的开/关等。(2)状态信息为实现CPU与外设配合工作,CPU需要了解外设所处的现行状态,如打印机是否忙(BUSY),输入设备是否准备好(READY),用于表示外设工作状态的信号叫状态信息,它是由外设通过接口传递到CPU的。,(3)控制信息 在CPU与外设的信息传送过程中,需要向外设发出控制命令,这些控制信号由CPU发给接口电路,经接口电路解释并做适当变换后(若需要的话),去控制外设的动作。这三种信息均通过接口电路传递,因此,接口电路的一般结构如图6.14所示。其中,数据寄存器用于暂时存放从外设来的数据(输入时)或CPU写给外设的数据(输出时);状态寄存器用于暂时存放外设的工作状态,供CPU查询(或向CPU申请中断),状态寄存器一般为只读的;控制寄存器用于暂时存放CPU发给外设的控制命令(也称控制字或命令字),用于设置接口的工作方式,指定某些参数及功能等,控制寄存器一般为只写的。以上部件用于与外设一侧传递信息。除此以外,接口通过总线与CPU之间传递的信息有地址、数据和控制信号。地址译码器,用以实现对内部寄存器的寻址。另外,还包括一些必不可少的控制逻辑电路。,图6.14 接口电路的典型结构,4.接口的作用和特点(1)接口的作用 主要负责接收、解释并执行CPU发出的命令,传送外设的状态,以及双方的数据传输。管理双方的工作逻辑、协调它们的工作时序。(2)接口的功能特点 按CPU与外界交换信息的要求,一般来讲,接口部件应具有如下功能特点数据缓冲功能 接口中一般都设置数据寄存器或锁存器,以解决高速CPU和低速外设之间的矛盾,避免丢失数据。另外,这些锁存器常常有驱动作用设备选择功能 微机系统中通常都有多台外设,而CPU在同一时间里只能与一台外设交换信息,这就要借助于接口的地址译码对外设进行寻址。高位地址用于芯片(电路)选择,低位地址用于选择接口芯片(电路)内部寄存器或锁存器,从而选定需要与CPU交换信息的外设。,信号转换功能 由于外设所能提供和所需要的各种信号常常与微机总线信号不兼容,因此信号变换就不可避免,它是接口设计中的一个重要方面。接受、解释并执行CPU命令的功能 CPU发往外设的各种命令都是以代码形式先发到接口电路,再由接口电路解释后,形成一系列控制信号送往外设(被控对象)的。中断管理功能 当外设需要及时得到CPU的服务,例如,在出现故障而要求CPU进行刻不容缓的处理时,就应在接口中设置中断控制逻辑,由它完成向CPU提出中断请求,进行中断优先级排队,接收中断响应信号以及向CPU提供中断类型或中断向量等有关中断事务工作。可编程功能 为使接口具有较强的通用性、灵活性和可扩充性,现在的接口芯片多数都是可编程的,这样在不改变硬件的条件下,只改变驱动程序就可改变接口的工作方式和功能,以适应不同的用途。,(3)CPU与外设之间的数据传送方式 程序控制方式 程序控制方式分为无条件传送方式和条件传送方式。无条件传送方式(又称同步传送方式)。其具体方法是:在程序中的适当位置直接插入I/O指令,以完成数据的传输。在这种方式中,CPU始终认为外设是准备好的。条件传送方式(又称查询传送方式)。其实现方法是:在每次执行I/O操作之前,CPU先查询外设的状态,当外部设备准备好时才执行I/O指令实现数据传送。这种传送方式有效地解决了无条件传送方式难以保证CPU与外设同步动作的问题,但其传输速度慢,CPU工作效率低,因为CPU将花费绝大部分时间去查询外设的状态。程序控制方式的具体实例参见可编程并行接口芯片8255A的应用。,中断传送方式 为了提高CPU的效率,使系统具有实时处理能力,可采用中断传送方式进行CPU与外设间的数据传送。具体过程为:当外设准备好进行数据传输时,通过接口向CPU提出中断请求,CPU在满足响应中断的条件下,向接口发出中断响应(回答)信号,然后执行中断服务程序,完成数据传送。这种方式可使CPU与外设并行工作,从而大大提高了CPU的工作效率。关于详细的中断处理过程参见中断技术一章。DMA传送方式(直接存储器存取方式)在中断传送方式中,每传送一次数据,CPU就要执行一些附加的保护断点和现场、恢复现场和断点的指令。因此不能从根本上提高CPU的效率,且不能成块传送数据。,5.接口技术的现状及发展 最初的计算机系统中并没有设置独立的接口部件,对外设的控制与管理均由CPU直接承担。这在当时CPU任务较单一,操作简单,外设品种较少的条件下是可行的。然而,随着计算机技术的迅猛发展和日益广泛的应用,CPU需要执行的任务愈来愈多,外设的种类也大大增加,且性能各异,对外设的管理就变得愈来愈复杂。如果再使CPU承担全部任务,那么势必会使主机完全陷入与外设打交道的沉重负担之中,因而必须设置专门的接口电路,把对外设的控制管理任务交给接口去完成,而主机只在适当时刻向接口发出命令,从接口读入外设状态或与外设传送数据。这就大大减轻了主机的负担,降低了对CPU的要求,同时也极大地提高了CPU的效率。,6.常用外围接口芯片 微机外围接口芯片品种繁多,常用的有:并行接口芯片8255A、8155A;串行接口芯片8250、8251;定时器/计数器8253、8254;中断控制器8259A;DMA控制器8237A;键盘/LED专用控制器8279;CRT控制器6834、8275;磁盘控制器PD7656843等。另外,在模拟接口中,还要用到A/D转换器(如ADC0809)和D/A转换器(如DAC0832)等。高档微机中的接口有的是这些接口芯片的级联,或将某些芯片的功能集成到一起,或在它们的基础上进行功能扩充。上一节中已介绍了一些多功能接口芯片。,6.2.2 接口的译码,CPU通过接口与外设打交道,那么CPU如何找到要与之传送信息的外设呢?在第一节中已经知道接口电路中一般包含多个寄存器,CPU是通过这些寄存器发出命令、读取状态和传送数据的。因此,每个寄存器都被安排了一个地址,称为端口地址(PORT ADDRESS),以便CPU能寻址它们。一个接口芯片上可能有多个端口,要寻址某个端口,除了找到该芯片外,还要能区分出不同端口。内部端口的区分是由接口电路内部的地址译码逻辑完成的。通常将低位地址线(一位或几位)直接连到接口芯片上,用于内部译码,而其余地址线作选择接口芯片的译码输入(也称外部译码)。这一节的地址译码均指外部译码。,1.固定式地址译码(1)用逻辑门电路进行译码这是一种最简单最基本的端口地址译码方法,适用于系统中接口电路(芯片)较少,而参与译码的地址线又较多的情况。例6.1 设系统地址总线为16位,有一接口电路占用口地址为2FFH,则可设计译码电路如图6.15所示。,图6.15 2FFH端口地址译码逻辑电路,(2)用译码器进行地址译码 当系统中有多个接口芯片或有多个端口时,可选用集成的译码器进行译码,因为一片译码器有多个输出端可用。常用的译码器有双2-4线译码器74LS139,3-8线译码器74LS138和4-16线译码器74LS154等。例6.2 在IBM PC/XT机系统板上接口芯片的口地址译码电路采用了3-8译码器74LS138,具体见第2章图2.26。同时第2章表2.11中还列出了各接口芯片或控制电路的口地址范围。其中,AEN=1时,不执行DMA操作,即CPU管理总线,这时才允许译码电路工作。当AEN=1,且A9=0,A8=0时,74LS138的哪一个输出端为0,取决于A7A6A5三条地址线上的信号。需要说明的,低五位地址A4A0未参与译码,因此,分配给每个接口部件32个地址。由于I/O地址空间已足够用,所以只要能把它们区分开就行了。,2.开关式可选口地址译码 如果用户要求接口部件的端口地址能适应不同的地址分配场合,或为系统以后的扩充留有余地,可采用开关式可选口地址译码方法。这种方法可根据要求拨动开关来改变端口地址而无需改动硬件线路。作为一个例子,下面来分析图6.16的译码逻辑。,图6.16 开关可选式地址译码逻辑电路,该译码逻辑主要使用了DIP开关,8位比较器74LS688和3-8译码器74LS138。图中,当P7P0与Q7Q0状态相同时,P=Q端输出低电平。那么AEN=0(不进行DMA操作),地址线A11=0,A10A5的状态分别与6位DIP开关状态相同时,比较器74LS688的P=Q端输出“0”,且CPU进行读/写操作时,74LS138工作,而它们的输出取决于地址线A4A2的状态。地址线A1、A0用于接口芯片内部译码,此逻辑电路的译码结果列于表6.7。,表6.7 当对应于Q5Q0的开关状态为000111时的译码结果,6.2.3 微机接口设计与分析的基本方法,1.分析和设计接口两侧的连接关系 接口作为CPU与外设的中间界面,一面要通过总线与CPU连接,另一面要与外设连接。2.进行适当的信号转换 有些接口芯片的信号线可直接与CPU系统连接,有些信号线则需经过一定的处理或改造,这种改造包括逻辑上、时序上或电平上的。特别是接外设一侧的信号线,由于外设需要的电平常常不是TTL电平,而且要求有一定驱动能力。3.接口驱动程序分析与设计 现在使用的接口芯片多数是可编程的,因此设计接口不仅是硬件上的问题,而且还包括编写驱动程序。,4.接口设计与分析时应注意的几个问题(1)软、硬件综合考虑 无论是在设计还是在分析接口时,都要做到软、硬件综合考虑。(2)逻辑关系和时序关系统筹考虑 从一开始就要