串行通信比并行通信的速度更高

串行通信比并行通信的速度更高

"众人拾柴火焰高"是句老话,但电脑领域却发生了多根线比不过1根线的怪事。无论从通信速度、造价还是通信质量上来看,现今的串行传输方式都比并行传输方式更胜一筹。

近两年,大家听得最多的一个词可能就是串行传输了。从技术发展的情况来看,串行传输方式大有彻底取代并行传输方式的势头,USB取代IEEE 1284,SATA取代PATA,PCI Express取代PCI……从原理来看,并行传输方式其实优于串行传输方式。通俗地讲,并行传输的通路犹如一条多车道的宽阔大道,而串行传输则是仅能允许一辆汽车通过的乡间公路。以古老而又典型的标准并行口(Standard Parallel Port)和串行口(俗称COM口)为例,并行接口有8根数据线,数据传输率高;而串行接口只有1根数据线,数据传输速度低。在串行口传送1位的时间内,并行口可以传送一个字节。当并行口完成单词"advanced"的传送任务时,串行口中仅传送了这个单词的首字母"a"。

图1:
并行接口速度是串行接口的8倍

那么,为何现在的串行传输方式会更胜一筹?下文将从并行、串行的变革以及技术特点,分析隐藏在表象背后的深层原因。

一、并行传输技术遭遇发展困境

电脑中的总线和接口是主机与外部设备间传送数据的"大动脉",随着处理器速度的节节攀升,总线和接口的数据传输速度也需要逐步提高,否则就会成为电脑发展的瓶颈。

我们先来看看总线的情况。1981年第一台PC中以ISA总线为标志的开放式体系结构,数据总线为8位,工作频率为8.33MHz,这在当时却已算是"先进技术"了,所以ISA总线还有另一个名字"AT总线";到了286时,ISA的位宽提高到了16位,为了保持与8位的ISA兼容,工作频率仍为8.33MHz。这种技术一直沿用到386系统中。

到了486时代,同时出现了PCI和VESA两种更快的总线标准,它们具有相同的位宽(32位),但PCI总线能够与处理器异步运行,当处理器的频率增加时,PCI总线频率仍然能够保持不变,可以选择25MHz、30MHz和33MHz三种频率。而VESA总线与处理器同步工作,因而随着处理器频率的提高,VESA总线类型的外围设备工作频率也得随着提高,适应能力较差,因此很快失去了竞争力。PCI总线标准成为Pentium时代PC总线的王者,硬盘控制器、声卡到网卡和显卡全部使用PCI插槽。

图2:

并行数据传输技术向来是提高数据传输率的重要手段,但是,进一步发展却遇到了障碍。首先,由于并行传送方式的前提是用同一时序传播信号,用同一时序接收信号,而过分提升时钟频率将难以让数据传送的时序与时钟合拍,布线长度稍有差异,数据就会以与时钟不同的时序送达另外,提升时钟频率还容易引起信号线间的相互干扰。因此,并行方式难以实现高速化。另外,增加位宽无疑会导致主板和扩充板上的布线数目随之增加,成本随之攀升。

在外部接口方面,我们知道IEEE 1284并行口的速率可达300KB/s,传输图形数据时采用压缩技术可以提高到2MB/s,而RS-232C标准串行口的数据传输率通常只有20KB/s,并行口的数据传输率无疑要胜出一筹。因此十多年来,并行口一直是打印机首选的连接方式。对于仅传输文本的针式打印机来说,IEEE 1284并行口的传输速度可以说是绰绰有余的。但是,对于近年来一再提速的打印机来说,情况发生了变化。笔者使用爱普生6200L(同时具备并行口和USB接口)在打印2MB图片时,并行口和USB接口的速度差异并不明显,但在打印7.5MB大小的图片文件时,从点击"打印"到最终出纸,使用USB接口用了18秒,而使用并行口时,就用了33秒。从这一测试结果可以看出,现行的并行口对于时下的应用需求而言,确实出现了瓶颈。

你知道吗?IEEE 1284的三种接口

早期的并行口是一种环形端口,IEEE 1284则采用防呆设计的D型连接器。IEEE 1284定义了D-sub、Centronics和MDR-36等三种连接器(图3)。我们所见到打印机电缆,一端是D-sub连接器,用来与主机连接,另一端为带有锁紧装置的Centronics连接器,用来连接到打印机。连接起来不仅方便,而且十分可靠。D-sub连接器有25根插针,而Centronics连接器有36根插针,多出来的11根基本上是冗余的信号地。MDR(Mini Delta Ribbon,小型三角带)连接器也是36根插针,这种小尺寸连接器是为数码相机、Zip驱动器等小型设备而设计的,实际上很少被使用。

图3:
三种不同尺寸的并行口连接器

二、USB,让串行传输浴火重生

回顾前面所介绍的并行接口与串行接口,我们知道IEEE 1284并行口的速率可达300KB/s,而RS-232C标准串行口的数据传输率通常只有20KB/s,并行口的数据传输率无疑要胜出一筹。外部接口为了获得更高的通信质量,也必须寻找RS-232的替代者。

1995年,由Compaq、Intel、Microsoft和NEC等几家公司推出的USB接口首次出现在PC机上,1998年起即进入大规模实用阶段。USB比RS-232C的速度提高了100倍以上,突破了串行口通信的速度瓶颈,而且具有很好的兼容性和易用性。USB设备通信速率的自适应性,使得它可以根据主板的设定自动选择HS(High-Speed,高速,480Mbps)、FS(Full-Speed,全速,12Mbps)和LS(Low-Speed,低速,1.5Mbps)三种模式中的一种。USB总线还具有自动的设备检测能力,设备插入之后,操作系统软件会自动地检测、安装和配置该设备,免除了增减设备时必须关闭PC机的麻烦。USB接口之所以能够获得很高的数据传输率,主要是因为其摒弃了常规的单端信号传输方式,转而采用差分信号(differential signal)传输技术,有效地克服了因天线效应对信号传输线路形成的干扰,以及传输线路之间的串扰。USB接口中两根数据线采用相互缠绕的方式,形成了双绞线结构(图4)。

图4:
采用差模信号传送方式的USB

图5:
差分传输方式具有更好的抗干扰性能

图5是由两根信号线缠绕在环状铁氧体磁芯上构成的扼流线圈。在单端信号传输方式下,线路受到电磁辐射干扰而产生共模电流时,磁场被叠加变成较高的线路阻抗,这样虽然降低了干扰,但有效信号也被衰减了。而在差动传输模式下,共模干扰被磁芯抵消,但不会产生额外的线路阻抗。换句话说,差动传输方式下使用共模扼流线圈,既能达到抗干扰的目的,又不会影响信号传输。

差分信号传输体系中,传输线路无需屏蔽即可取得很好的抗干扰性能,降低了连接成本。不过,由于USB接口3.3V的信号电平相对较低,最大通信距离只有5米。USB规范还限制物理层的层数不超过7层,这意味着用户可以通过最多使用5个连接器,将一个USB设备置于距离主机最远为30米的位置。

为解决长距离传输问题,扩展USB的应用范围,一些厂商在USB规范上添加了新的功能,例如Powered USB和Extreme USB,前者加大了USB的供电能力,后者延长了USB的传输距离。

三、差分信号技术:开启信号高速传输之门的金钥匙

电脑发展史就是追求更快速度的历史,随着总线频率的提高,所有信号传输都遇到了同样的问题:线路间的电磁干扰越厉害,数据传输失败的发生几率就越高,传统的单端信号传输技术无法适应高速总线的需要。于是差分信号技术就开始在各种高速总线中得到应用,我们已经知道,USB实现高速信号传输的秘诀在于采用了差分信号传输方式。

差分信号技术是20世纪90年代出现的一种数据传输和接口技术,与传统的单端传输方式相比,它具有低功耗、低误码率、低串扰和低辐射等特点,其传输介质可以是铜质的PCB连线,也可以是平衡电缆,最高传输速率可达1.923Gbps。Intel倡导的第三代I/O技术(3GIO),其物理层的核心技术就是差分信号技术。那么,差分信号技术究竟是怎么回事呢?

图6:
差分信号传输电路

众所周知,在传统的单端(Single-ended)通信中,一条线路来传输一个比特位。高电平表示为"1",低电平表示为"0"。倘若在数据传输过程中受到干扰,高低电平信号完全可能因此产生突破临界值的大幅度扰动,一旦高电平或低电平信号超出临界值,信号就会出错(图7)。

图7:
单端信号传输

在差分电路中,输出电平为正电压时表示逻辑"1",输出负电压时表示逻辑"0",而输出"0"电压是没有意义的,它既不代表"1",也不代表"0"。而在图7所示的差分通信中,干扰信号会同时进入相邻的两条信号线中,当两个相同的干扰信号分别进入接收端的差分放大器的两个反相输入端后,输出电压为0。所以说,差分信号技术对干扰信号具有很强的免疫力。

图8:
差分信号传输

正因如此,实际电路中只要使用低压差分信号(Low Voltage Differential Signal,LVDS),350mV左右的振幅便能满足近距离传输的要求。假定负载电阻为100Ω,采用LVDS方式传输数据时,如果双绞线长度为10米,传输速率可达400Mbps;当电缆长度增加到20米时,速率降为100Mbps;而当电缆长度为100米时,速率只能达到10Mbps左右。

在近距离数据传输中,LVDS不仅可以获得很高的传输性能,同时还是一个低成本的方案。LVDS器件可采用经济的CMOS工艺制造,并且采用低成本的3类电缆线及连接件即可达到很高的速率。同时,由于LVDS可以采用较低的信号电压,并且驱动器采用恒流源模式,其功率几乎不会随频率而变化,从而使提高数据传输率和降低功耗成为可能。因此,LVDS技术在USB、SATA、PCI Express以及HyperTransport中得以应用,而LCD中控制电路向液晶屏传送像素亮度控制信号,也采用了LVDS方式。

四、新串行时代已经到来

差分传输技术不仅突破了速度瓶颈,而且使用小型连接可以节约空间。近年来,除了USB和FireWire,还涌现出很多以差分信号传输为特点的串行连接标准,几乎覆盖了主板总线和外部I/O端口,呈现出从并行整体转移到新串行时代的大趋势,串行接口技术的应用在2005年将进入鼎盛时期(图9)。

图9:
所有的I/O技术都将采用串行方式

1.LVDS技术,突破芯片组传输瓶颈

随着电脑速度的提高,CPU与北桥芯片之间,北桥与南桥之间,以及与芯片组相连的各种设备总线的通信速度影响到电脑的整体性能。可是,一直以来所采用的FR4印刷电路板因存在集肤效应和介质损耗导致的码间干扰,限制了传输速率的提升。

在传统并行同步数字信号的速率将要达到极限的情况下,设计师转向从高速串行信号寻找出路,因为串行总线技术不仅可以获得更高的性能,而且可以最大限度地减少芯片管脚数,简化电路板布线,降低制造成本。Intel的PCI Express、AMD的HyperTansport以及RAMBUS公司的redwood等I/O总线标准不约而同地将低压差分信号(LVDS)作为新一代高速信号电平标准。

一个典型的PCI Express通道如图9所示,通信双方由两个差分信号对构成双工信道,一对用于发送,一对用于接收。4条物理线路构成PCI Express x1。PCI Express 标准中定义了x1、x2、x4和x16。PCI Express x16拥有最多的物理线路(16×4=64)。

图10: PCI Express x1数据通道

即便采用最低配置的x1体系,因为可以在两个方向上同时以2.5GHz的频率传送数据,带宽达到5Gbps,也已经超过了传统PCI总线1.056Gbps(32bit×33MHz)的带宽。况且,PCI总线是通过桥路实现的共享总线方式,而PCI Express采用的"端对端连接"(图11),也让每个设备可以独享总线带宽,因此可以获得比PCI更高的性能。

图11: PCI Express端对端连接消除了桥路????

AMD的HyperTransport技术与PCI Express极其相似,同样采用LVDS数据通道,最先用于南北桥之间的快速通信。其工作频率范围从200MHz到1GHz,位宽可以根据带宽的要求灵活选择2、4、8、16或32位。HyperTransport最先用于南北桥之间的快速通信,今后会用于所有芯片间的连接。

2.SATA,为硬盘插上翅膀

在ATA33之前,一直使用40根平行数据线,由于数据线之间存在串扰,限制了信号频率的提升。因此从ATA66开始,ATA数据线在两根线之间增加了1根接地线正是为了减少相互干扰。增加地线后,数据线与地线之间仍然存在分布电容C2(图12),还是无法彻底解决干扰问题,使得PATA接口的最高工作频率停留在133MHz上。除了信号干扰这一根本原因之外,PATA还存在不支持热插拔和容错性差等问题。

图12:
并行ATA的线间串扰

SATA是Intel公司在IDF2000上推出的,此后Intel联合APT、Dell、IBM、Seagate以及Maxtor等业界巨头,于2001年正式推出了SATA 1.0规范。而在春季IDF2002上,SATA 2.0规范也已经公布。

SATA接口包括4根数据线和3根地线,共有7条物理连线。目前的SATA 1.0标准,数据传输率为150MB/s,与ATA133接口133MB/s的速度略有提高,但未来的SATA 2.0/3.0可提升到300MB/s以至600MB/s。从目前硬盘速度的增长趋势来看,SATA标准至少可以满足未来数年的要求了。

3.FireWire,图像传输如虎添翼

FireWire(火线)是1986年由苹果电脑公司起草的,1995年被美国电气和电子工程师学会(IEEE)作为IEEE 1394推出,是USB之外的另一个高速串行通信标准。FireWire最早的应用目标为摄录设备传送数字图像信号,目前应用领域已遍及DV、DC、DVD、硬盘录像机、电视机顶盒以及家庭游戏机等。

FireWire传输线有6根电缆,两对双绞线形成两个独立的信道,另外两根为电源线和地线。SONY公司对FireWire进行改进,舍弃了电源线和地线,形成只有两对双绞线的精简版FireWire,并取名为i.Link。

FireWire数据传输率与USB相当,单信道带宽为400Mbps,通信距离为4.5米。不过,IEEE 1394b标准已将单信道带宽扩大到800Mbps,在IEEE 1394-2000新标准中,更是将其最大数据传输速率确定为1.6Gbps,相邻设备之间连接电缆的最大长度可扩展到100米。

五、"串行"能红到哪天?

阅读本文之后,如果有人问关于串行传输与并行传输谁更好的问题,你也许会脱口而出:串行通信好!但是,串行传输之所以走红,是由于将单端信号传输转变为差分信号传输,并提升了控制器工作频率的原因,而"在相同频率下并行通信速度更高"这个基本道理是永远不会错的,通过增加位宽来提高数据传输率的并行策略仍将发挥重要作用。当然,前提是有更好的措施来解决并行传输的种种问题。

技术进步周而复始,以至无穷,没有一项技术能够永远适用。电脑技术将来跨入THz时代后,对信号传输速度的要求会更高,差分传输技术是否能满足要求?是否需要另一种更好的技术来完成频率的另一次突破呢?不妨拭目以待!

?

摘抄自:http://blog.csdn.net/yiwuya/article/details/4136319

时间: 2024-10-03 14:55:51

串行通信比并行通信的速度更高的相关文章

串行通信与并行通信

串行通信是用一根数据线,将数据一位位的输出 是用一根数据线,将数据一位位的输出 并行通信时数据的各个位同时传送,可以字或字节为单位并行进行.并行通信速度快,但用的通信线多.成本高,故不宜进行远距离通信. 单片机中两种通信方式. 51单片机IO口拓展 1.将并行输入转换为串行输出 2.将串行输入转换为并行输出 原文地址:https://www.cnblogs.com/Zero-0/p/11145468.html

我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 Internet 上用于确保您通信的安全性。

早上使用.Net WebClient类采集亚马逊数据,返回http 400 Bad Request错误,内容里面有“我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 Internet 上用于确保您通信的安全性.” 所以就想着可能是WebClient使用TLS版本过低,查了下资料,全局加上这段代码. ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificat

C#数据类型中的decimal精度比double更高

decimal 128bit大小 有效数字:28~29,虽然decimal类型有比浮点类型更高的精度,但它的范围更小.故double转decimal有可能发生溢出错误,此外,decimal的计算速度稍微慢一些. Console.WriteLine(1.618031234567895); 输出结果:1.61803123456789 最后一个数字5丢失了,这符合我们对double类型精度的预期. 要显示具有完整精度的数字,必须将字面值显示地声明为decimal类型,这是通过追加一个m(或者M)来实现

.NET快速信息化系统开发框架 V3.2->WinForm版本新增新的角色授权管理界面效率更高、更规范

角色授权管理模块主要是对角色的相应权限进行集中设置.在角色权限管理模块中,管理员可以添加或移除指定角色所包含的用户.可以分配或授予指定角色的模块(菜单)的访问权限.可以收回或分配指定角色的操作(功能)权限.可以对所有角色.用户.模块(菜单).操作(功能)权限进行集中批量设置,角色户授权范围的设置(类似于用户授权范围的设置),表字段权限的设置以及表约束条件权限的设置等. 在角色授权管理模块可以对指定角色进行相应权限的分配与收回,添加与移除角色所拥有的用户,对角色所拥有的操作功能.模块访问权限等进行

阿里云人工智能小Ai是比深度学习更高阶的算法

(上图为阿里云人工智能科学家闵万里) 4月8日,在<我是歌手>的第四季总决赛中,出现了一个不速之客,这就是扬言能预测歌王的阿里云人工智能机器人小Ai.开场前,小Ai预测黄致列夺冠概率第一,尽管最终的歌王是李玟,但小Ai成功预测了前三名. 在了解阿里云人工智能机器人小Ai的基本运作过程后,记者认为小Ai的算法其实已经不仅是深度学习,而是在深度学习之上的更高阶算法,并就此向阿里云人工智能科学家闵万里求证,得到的回复:是的. 小Ai算法高阶在哪里? 尽管阿里云方面没有透露关于小Ai更多算法方面的信息

同步效率差不多CAS相比synchronized没有获得更高的性能

对于资源竞争较少的情况,使用synchronized同步锁进行线程阻塞和唤醒切换以及用户态内核态间的切换操作额外浪费消耗cpu资源:而CAS基于硬件实现,不需要进入内核,不需要切换线程,操作自旋几率较少,因此可以获得更高的性能. 希望大家对ASP.NET MVC有一个初步的理解,理论性的东西我们不做过多解释,有些地方不理解也没关系,会用就行了,用的多了,用的久了,自然就理解了. ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要

Windows 10 聚焦企业:安全程度更高、更新速度更快

Terry Myerson 曾于 1 月 21 日正式宣布,正在运行 Windows 7.Windows 8.1 及 Windows Phone 8.1 设备的客户将会获得一次免费升级到 Windows 10 的机会,当天午餐过后,他们就可以实现首年升级.我们猜想,普通消费者和很多小型企业听到这个消息一定会激动万分,这是我们有史以来首次提供如此规模的免费升级.我们相信,这将允许数百万客户午饭之后立即升级到 Windows 10,从而为我们的合作伙伴生态系统创造广泛商机,并为全部 Windows

浅析PHP的静态成员函数效率更高原因所在

php类的静态成员函数效率比类的普通成员函数的要高. 例子: <?php // php静态方法测试 header('Content-Type: text/html; charset=utf-8'); class xclass{ public static $var1 = '1111111111111111'; public $var2 = 'aaaaaaaaaaaaa'; public function __construct() { $this -> var2 = 'bbbbbbbbbbbb

PHP 中数组函数 isset 效率比 array_key_exists 更高

PHP 中数组函数 isset 效率比 array_key_exists 更高 PHP 浏览:4194 2014年04月05日 isset 和 array_key_exists 函数都可以用来测试数组中变量是否存在: if(isset($array[$i])){ echo "存在"; } if(array_key_exists($i, $array)) { echo "存在"; } 那么这两个函数有什么区别呢?经过测试: 当数组个数为10时,两者差异就体现出来了,i