1.总线的机械特性
总线的机械特性是指总线在机械方式上的一些性能,如插头与插座使用的标准,它们的几何尺寸、形状、引脚的个数以及排列的顺序,接头处的可靠接触等。机械特性是总线标准的基础组成部分之一,其设计既要考虑功能上的可用性、可靠性和可扩展性,又要考虑扩展卡易于插拔以及防倒插等要求。
在微型计算机中最为古老的总线ISA使用98引脚双列直插式的总线扩展插槽,就是我们熟知的黑色ISA槽。由于ISA总线有8位ISA总线和16位ISA总线之分,16位ISA总线向下兼容8位ISA总线,这就要求8位ISA扩展卡能够插入到16位ISA插槽之中。为了达到这种目的,ISA总线的插槽被设计为由一个62引脚的基本插槽和一个36引脚的扩展插槽组成,其中62针的基本插槽元件面的31个引脚被称作A1~A31(A列),反面的31个引脚为B1~B31(B列),用于承载8位基本ISA总线的信号。16位ISA总线插槽在这个基本插槽的基础上增加了一段用于承载16位扩展ISA信号的部分,其基本插槽元件面的18个引脚被称作C1~C18(C列),反面的18个引脚被称作D1~D18(D列)。这样,当8位ISA卡插入16位ISA插槽的时候,其62个引脚正好和16位ISA插槽的基本插槽相适配,在总线协议的支持下就可以实现8位扩展卡和16位插槽之间的兼容(见图7-11、图7-12)。
图7-11 ISA插槽和ISA扩展卡的引脚排列
a)8位 b)16位
目前的微型计算机中已经较难看到ISA插槽和ISA卡的身影,但是ISA总线仍然在我们的微机主板上存在着,用来连接诸如键盘、鼠标、BIOS、实时钟等低速外围设备。
20世纪80年代末,在ISA总线无法满足系统性能需求的时候,一度出现了一种被称作EISA的总线标准。该标准是ISA的一种天然扩展,将位宽从ISA的8/16提高到了32位,并赋予了一系列新的特性。尤其重要的是,EISA还试图保持与ISA之间的兼容性,允许将ISA卡插入到EISA插槽中使用。而16位ISA总线插槽的长度已经占到了主板宽度的一多半,采用像16位ISA插槽那样从8位ISA插槽基础上增加一段,从而提供EISA比ISA多出的90个引脚的方法已经不再可能。于是设计师们将EISA插槽的188个引脚分成了上下两层,上面一列是与ISA兼容的98个引脚,下层则是EISA定义的新的90个引脚。在插槽的下部有几个突出的键,用来阻挡ISA扩展卡的插入,避免ISA扩展卡接触到下层的90个引脚。而EISA扩展卡由于对应的位置上留有开口,就可以深插下去接触到这90个引脚了(见图7-13)。
图7-12 ISA插槽和ISA扩展卡
a)ISA插槽 b)8位ISA卡 c)16位ISA卡
图7-13 EISA插槽和EISA扩展卡
在EISA和VL-Bus(另外一种在ISA基础上进一步扩展的总线体系,其插槽在16位ISA插槽的基础上又延伸了一段,从而使得又被称作VESA的VL-Bus的连接器长度几乎横贯整个主板,一度被戏称为Very Long Bus——非常长的总线)试图在保持与ISA兼容的基础上提高总线带宽的同时,PCI颠覆性地采用了一套与ISA完全无关的全新总线体系。PCI总线抛弃了与ISA兼容的想法,重新定义了一套总线标准,所以PCI总线的插槽在机械特性上也与ISA有着根本的不同。由于不再需要兼容ISA卡,PCI总线引脚的宽度和间隔被设计得远小于ISA总线,使得124针的32位PCI总线插槽的长度远远短于98针的ISA总线,即节省了机箱中的空间,又为进一步扩展到64位PCI留下了余地。
早期的PCI只支持5 V的信号电压,随着技术的发展和功耗控制要求的不断迫切,PCI标准开始使用3.3 V的信号电压,而信号电压的不匹配有可能造成扩展卡无法正常工作的现象。为了避免这种现象对用户带来的困扰,PCI的设计者们在PCI插槽和扩展卡的设计中加入了防误插设计。具体做法如图7-14所示。
图7-14 PCI的防误插设计
a)插槽 b)正确 c)错误
首先,PCI标准规定两种不同信号电压标准的PCI总线插槽在设计形态上有所不同,它们在不同的位置上留有防误插设计(见图7-14a)。同时,PCI扩展卡也根据其所支持的信号电压的不同在相应的位置留出防误插缺口。这样,在两者支持的信号电压匹配时,扩展卡能够顺利地插入到插槽中(见图7-14b,5 V扩展卡和5 V插槽)。而当两者支持的信号电压不匹配时,扩展卡就不能插入到插槽中(见图7-14c,5 V扩展卡和3.3 V插槽),以避免信号电压不匹配带来的各种问题。当然,如果某些设计良好的PCI扩展卡即可以工作在5 V的信号电压下,也可以工作在3.3 V的信号电压下(这类PCI扩展卡被称作“通用卡”),它就可以在对应的两个位置都留出缺口,从而允许该扩展卡插到两种不同的插槽之中(见图7-15)。
图7-15 不同的PCI插槽和PCI扩展卡接口
a)5 V PCI插槽 b)5 V PCI扩展卡 c)3.3 V PCI插槽 d)PCI通用扩展卡
随着微机技术的进一步发展,32位PCI的133 MB/s很快就无法满足微机系统总线带宽的要求,于是64位PCI总线应运而生。为了保证64位PCI与32位PCI的向下兼容,在32位PCI总线插槽的基础上增加一段传送64位信号的扩展插槽就组成了64位PCI插槽,其做法与16位ISA如出一辙。这样,64位PCI的插槽在32位PCI的基础上增加了64个引脚,从而使引脚总数达到了188个(两面各94个)。同时,64位PCI总线依旧有着两种不同的信号电压,于是在32位PCI总线上出现的防误插设计在64位PCI总线上依旧存在着。其后的64位PCI-X总线继承了这种插槽设计,使用同样的插槽、同样的扩展卡引脚排列和同样的防误插设计(见图7-16)。
同样,类似的设计也出现在PCI Express插槽中。由于PCI Express允许所谓的“捆绑”模式,将多个“通道”捆绑在一起,每个通道传输一个比特,从而达到一次传送多个比特,提高总线的传输带宽的作用。根据PCI-e总线标准的规定,PCI-e允许有x1、x4、x8和x16四种不同的总线插槽,而且这些总线插槽必须具备向下兼容的特性。也就是说,一个“长”的插槽上插入“短”的扩展卡的时候,扩展卡应当能够正常工作,而且其传输通道数应当等于扩展卡的通道数。例如,一个x1的扩展卡插入x16的插槽中的时候,这个扩展卡应当能够以x1的模式正常工作,而x4的扩展卡插入x8的插槽时工作模式将是x4。为了达到这个目的,“长”的插槽和“短”的插槽必须具有相同的信号排列,即一个“短”的插槽实质上就是“长”的插槽的一个部分。例如,x1插槽共有36个引脚,这36个引脚实际上和x4、x8、x16插槽的A1~A18、B1~B18引脚定义相同(见图7-17)。
图7-16 64位的PCI和PCI-X插槽
a)64位PCI插槽 b)插入到64位PCI-X插槽的RAID控制卡
图7-17 PCI-e总线的插槽
a)PCI-e插槽 b)插槽信号说明
除了这些典型的系统总线之外,各种外设总线也都定义了各自不同的机械规范,包括接插件的形状与尺寸、引脚个数与排列等。在我们常用的台式微型计算机中常见的接插件有以下几种,用来连接硬盘和光驱的40针的IDE(PATA)接口和7针的SATA接口,用来连接键盘和鼠标的PS/2接口,用来连接通用外设的USB和IEEE 1394接口等。在笔记本计算机中,除了USB和IEEE 1394之外,常见的扩展接口有从PCI发展来的PCMCIA和从PCI-e发展来的Express Card等(见图7-18)。
2.总线的电气特性
总线上的数据传输都是要通过传递一些特定的电信号而实现,这些电信号的生成与传递必须遵循一定的标准,这些标准就表现为总线的电气特性。
总线的电气特性首先表示为总线驱动器和总线接收器信号电平的定义,即使用何种方式进行信号电平的传递,以及哪个电平范围被定义为高电平和哪个电平范围被定义为低电平。
图7-18 微型计算机中其他常见的总线接插件(www.xing528.com)
a)IDE插座 b)SATA插座 c)IDE与SATA的信号线 d)PCMCIA卡与插槽 e)Express Card f)各种USB接口 g)IEEE1394接口
早期的ISA总线使用单一传输线进行信号传输(单端信号),其信号遵循标准的TTL电平定义,即总线驱动器驱动的输出电压以高于2.4 V为高电平,低于0.4 V为低电平,总线接收器接收的输入电压以高于2.0 V为高电平,低于0.8 V为低电平。
和ISA类似,PCI也使用单一传输线进行信号传输。根据2.3版的PCI总线标准对PCI总线信号电平的规定,PCI总线可以使用5 V和3.3 V两种信号电平,其中5 V电平使用4.75 V~5.25 V的Vcc电源,其驱动器输出电压为高电平高于2.4 V,低电平低于0.55 V,接收器输入电压为高电平2.0 V~Vcc+0.5 V,低电平-0.5 V~0.8 V。3.3 V信号电平使用电压为3.0 V~3.6 V的Vcc电源,其驱动器输出电压为高电平高于0.9 Vcc,低电平低于0.1Vcc。接收器输入电压为高电平0.5 Vcc~Vcc+0.5 V,低电平低于-0.5 V~0.3Vcc。
和ISA、PCI不同,PCI Express总线使用低电压差分信号LVDS进行信号传递(见图7-19)。PCI Express使用耦合在一起的两条传输线来传递一个比特的数据,这两条连接线分别被称作D+和D-(或V+和V-),D+和D-之间的电位差被用来作为接收器判断信号的标准。它们保持相反的相位,即当D+为高电平时D-为低电平,而D+为低电平时D-为高电平,从而保持两者电位累加之后保持不变。因此,LVDS信号属于一种平衡信号(即电位累加后保持不变的信号),相应地,ISA和PCI使用的单端信号则是一种非平衡信号(电位累加后不保持不变)。
图7-19 LVDS信号及其传输过程
根据LVDS的规定,V+和V-使用以1.2 V为中心,摆幅为400 mV的差分电压信号,而与使用的电源电压无关。根据此规定,D+=1.4 V而D-=1.0 V代表传输信号“1”,D+=1.0 V而D-=1.4 V代表传输信号“0”。由于在计算机系统中一般采用TTL信号来表示数据,所以PCI Express总线需要在TTL和LVDS两种信号之间进行转换。具体方法是:在总线信号的输出端(驱动器一端),一个差分驱动器负责将非平衡的TTL信号转换为在一对互相耦合的互连线路上传输的平衡的LVDS信号,而在输入段(接收器一端),一个差分接收器则负责将这个LVDS差分信号转换为非平衡的TTL信号。
和传统的非平衡TTL信号相比,LVDS信号具有非常好的抗干扰能力和低辐射特性。一方面,LVDS的平衡特性使得D+和D-两个信号的累加始终不变,这就使得传输D+和D-两个信号的耦合在一起的一对传输线所发出的辐射互相抵消。另一方面,外来的干扰信号对于D+和D-的干扰永远是同向的,而不会影响到D+和D-之间的电位差,从而提高了信号的抗干扰能力。低辐射和抗干扰使得LVDS信号能够减轻和抵抗线路之间的电磁干扰,允许总线以更高的频率运行,从而大大提高总线的传输能力(见图7-20)。
除了电平定义之外,总线上的信号传输还必须遵循一定的电流特性规范(见图7-21)。在总线上,一个信号的总线驱动器的驱动能力必须能够满足驱动信号的需要,即驱动器的电流负载能力必须大于所有处于工作状态接收器的输入电流加上处于禁止状态驱动器的漏电流加上流过传输线及终端电阻网络的电流之和,从而保证信号传递过程中不会因为驱动器驱动能力的不足而导致信号无法正确传递。总线的电流特性规范一般会导致对总线驱动器选型和总线上同时挂接的总线设备数量的限制,这些限制也是总线标准的重要组成部分。
图7-20 差分信号传输的抗干扰特性
图7-21 驱动器的电流负载
计算机系统中的任何信号都是要依赖于传输线进行传输的,所以总线在物理上也就表现为一组排列在一起的传输线,在一定频率的信号下,它们可以被等效为具有一定阻抗(包括感抗和容抗)的线路。当信号在总线上传输时,传输线的负载往往不能忽略,因此在选择总线驱动器的时候,仅仅考虑总线上连接的设备的电气特性是不够的,还必须考虑到传输线本身的电气特性,以及这些电气特性给信号传输带来的影响。在总线上,总线驱动器的输出电阻R0必须和传输线阻抗Z0相匹配,如果传输线阻抗Z0过高,在Z0>>R0时将会引起部分信号波的反射,产生传输线效应,影响信号的传递。在总线终端悬空的时候,虽然传输线本身的阻抗很低,但是由于总线上除了设备负载之外没有其他的电流泄漏通路,从而导致传输线上的容性输入负载阻抗会非常的高,很容易出现的Z0>>R0情况。这时,驱动器驱动的总线信号会在传输的端点处发生反射,反射波与驱动器所驱动的入射波叠加会影响传输线上需要传输信号的波形,甚至导致这些信号无法被识别。
避免这种情况出现的一种办法是在总线上连接终端电阻或终端网络,通过这些终端电阻或终端网络提供信号电流泄漏的通路,降低等效的Z0,使得总线驱动器的输出阻抗R0和传输线阻抗Z0相匹配,从根本上避免信号的反射。这种方法一般被称作“入射波转换技术”,是一种比较常用也比较有效的避免传输线效应对总线信号传递应用的方法,在ISA等总线标准里对终端电阻的使用给出了比较明确的规定。
除此之外,还有另外一种解决传输线效应问题的思路就是设法将传输线效应造成的反射波利用起来,通过总线驱动器驱动的入射波和反射回来的反射波进行叠加形成真正传输的信号。总线驱动器不是将信号逻辑电平直接驱动到位,而是将信号线的逻辑状态驱动到其中的一部分,当变化信号的波前端传递到总线的末端时,信号波被反射回来并与入射波之间产生幅度上的叠加,从而形成符合逻辑电平标准的信号(见图7-22)。
图7-22 PCI的反射波转换技术
由于反射波转换技术不需要更大驱动能力的总线驱动器和用于吸收总线信号的终端电阻,其能耗比使用入射波转换技术的总线要低得多,发热也要小得多。但是反射波转换技术使得信号的驱动需要更多时间,总线驱动器的选择要求也更高,从而增加了设计的难度。
3.总线的时序关系
在总线上的传输的信号是有着时间要求的,这种时间要求被称作定时规则,又叫时序关系。总线标准中使用的定时规则可以被分为两类:同步时序和异步时序。
(1)同步定时规则
在同步时序的定时规则下,总线中包含一个连接到所有总线模块上的、周期性变换高低电平的公共时钟信号,所有的信号定时都由这个公共时钟信号控制。时钟信号的一次低-高-低的转换过程被称作一个时钟周期,各模块的所有事件(尤其是信号的采样)被定时在时钟信号的上升或下降沿,而不依赖于信号本身的起始和终结。图7-23a所示即为同步定时规则的例子。无论发起数据传输的主设备所发出的读信号、地址信号还是响应数据传输的从设备所发出的应答信号和数据信号都在时钟的上升沿被采样,而与信号本身在何时发生跳变无关。
(2)异步定时规则
和同步定时相反,异步定时规则下的总线不存在公共时钟信号,所有的信号定时都取决于信号本身的跳变。一组请求与确认信号(MSYN和SSYN)组成所谓的握手信号,实现主设备和从设备之间的握手。比如在图7-23b中,主设备先将有效的读信号和地址信号放到总线上,在这些信号稳定之后,主设备再发出主设备同步信号MSYN(实际上是一种请求信号)。从设备在主设备同步信号MSYN的上升沿对读信号和地址信号进行采样,并执行主设备所请求的读操作,将读出的数据放置在总线上,并用一个从设备同步信号SSYN进行响应(所以SSYN实际上是一种响应信号)。主设备在SSYN信号的上升沿对数据进行采样,从而得到正确的数据。从这个过程中我们可以看出,异步定时规则中信号定时来自于各信号之间的时间关系,而不存在一个全局统一的公共时钟。
图7-23 同步定时与异步定时
a)同步定时 b)异步定时
相比较而言,同步定时的实现要比异步定时简单,而且由于存在时钟这个定时标准,总线上其他信号的质量要求也相对比较宽松。而异步总线不存在作为定时标准的公共时钟,增加了总线协议的复杂性,提高了对总线上信号质量的要求,但在增加了总线协议的灵活性的同时,减小了总线协议对一个性能良好的公共时钟的依赖,从而允许总线以更高的频率运行或传输到更远的距离。在总线传输过程中使用同步定时还是异步定时一般要根据总线的设计目标综合考虑。
除了典型的同步定时与异步定时之外,总线标准中还经常采用一种被称作半同步总线定时的定时方法。半同步总线定时综合了同步定时和异步定时的优点,它仍然提供一个全局的总线时钟,信号的出现、采样和结束以这个公共的总线时钟为基准,但总线上各操作之间的时间间隔不再是同步定时那样的固定间隔,而是通过WAIT或READY之类的信号将传输周期延长总线周期的整数倍,实现快速设备和慢速设备在同一条总线上的协同工作。由于半同步总线定时的优秀特性,很多系统总线都使用半同步总线定时方法,如ISA、PCI等。
由于当前的微型计算机基本上都是以数字电子技术构建,总线上传输的信号也应当是数字信号,也就是说,它们应当是一系列逻辑“1”和逻辑“0”的时序组合。对于同步定时而言,这就意味着一个信号的取值仅仅和时钟边沿对该信号进行采样时信号的状态有关。而异步定时的情况下信号的取值则取决于该信号在握手信号的跳变边沿时的状态。但是,在实际的微型计算机中,信号线上传输的永远不会是理想的方波信号,信号的建立和采样也不会像理想状态中那样瞬时完成,无论是信号的变化还是对信号的采样都需要一定的时间。这些就带来了对信号之间时序关系的一系列时间要求,其中最常见的是信号的建立时间和保持时间(见图7-24)。
图7-24 信号的建立时间和保持时间
为了保证信号采样的正确性,信号必须在时钟边沿或握手信号边沿到来之前的一段时间间隔之前完成信号的稳定建立,这段时间间隔即为信号的建立时间(Set up time)。与此同时,信号必须在用于采样的时钟或握手信号的边沿之后再保持一段时间,这段时间叫做信号的保持时间(Hold time)。绝大部分总线协议都要对一些关键信号的建立时间和保持时间做出详细的规定,这些规定也是我们在设计设备的总线接口时,在保证逻辑正确的同时所必须考虑的重要因素之一。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。