美文网首页程序员
串口为什么比并口快?

串口为什么比并口快?

作者: 拉格朗日 | 来源:发表于2016-05-24 19:13 被阅读691次

1.高速串口不需要传时钟来同步数据流,没有时钟周期性的沿变,频谱不会集中,所以噪声干扰少很多。以PCIE和SATA为例,时钟信息通过8b/10b编码已经集成在数据流里面,数据本身经过加扰,绝对不可能有多于5个0或者5个1的长串(利于时钟恢复),也绝对不存在周期性(避免频谱集中)。这样,通过数据流的沿变可以直接用PLL恢复出时钟,再用恢复的时钟采集数据流。这有什么好处?时钟信号消耗的功耗极多,带来的噪声也最大,不传时钟可以降低功耗,减少噪声。

2.所有高速串口都采用差分总线传输,外界噪声同时加载到并行传输的两条差分线上,相减之后可以抵消,对外部噪声的抵抗能力强。

3.没有时钟skew问题,因为它根本就没有同步时钟,不存在时钟和数据流的对齐问题。只需要保证差分信号线是对齐的就行,这是很容易的,因为差分信号线的值总是相反,相关性强,易控制。一根线跳的时候,另一根线经过一个非门的延时马上会跳,这个非门的延时是很容易补偿的。并行总线最大的问题就是多根线传输的时候,无法保证所有的沿变都对齐,很有可能传着传着某些信号跟不上,落后了一个T,数据就传错了。想控制也难,因为各个信号没有相关性,互相的沿变本身就是独立的,因为布线不同,很有可能一个跳的早点,另一个跳的晚点,再加上各个传输线电阻不同,噪声不同,传一会儿就分辨不出来哪个值对应哪个周期。

4.线少,干扰少。并行传输,一般32根或者64根,一根线跳变,会给旁边的线带来噪声,频率越高,这种噪声越大,很容易导致别的线值被篡改或者无法辨认,所以频率不可能很高。串行传输一般就4根数据线,分成Rx两根差分线和Tx两根差分线,差分线总是往相反方向跳,可以抵消各自的跳变噪声,比如Rx的正极性发生跳变时会产生噪声,这种噪声可以被Rx的负极性以相反的跳变直接抵消掉(因为他们是差分信号对),总的噪声为0,根绝了内部噪声。综上,串口传输的各种优势使得其内外噪声皆免疫,又没有信号对齐之忧,可以以极高的速率传输。比如SATA可以以6Gb的速率传输数据流,PCIE可以以8Gb的速率传输数据流。这种速率,并行传输是根本做不到的,更不要说串行传输还能节省大量引脚。

为了提高单根线的传输速率,必须要讲到我们模拟电路工程师的三**宝,差分信号(differential signaling),时钟-数据恢复(Clock-Data Recovery,简称CDR),和信道均一化(Channel Equalization,Eq)

差分信号的好处:不外乎抗干扰能力强,引入的噪声也比较小,虽然必须要两根线,但速度从几百M提高到几G,还是很值得的。

CDR的好处:消灭了skew,减少了时钟的功耗和噪声(但多出了CDR电路本身的功耗和噪声),同时避免了电磁干扰。想想在PCB或者电线上传一个15G的时钟,太带感了,幸亏我们不用做这种事。

信道均一化:相当值得一提,这才是SerDes高速发展的决定性因素,所以我决定花点文字讲一下。

一般来说,真实世界中的信道都是低通特性的,到处都是小电容,所谓绝缘体中的分子在高频情况下吸收电场能量,再加上金属线中的趋肤效应,所以我们想要的高频信号走不了多远就不像样子了,比如下面某信道的频率特性(绿线)。

[![](https://img.haomeiwen.com/i1465184/f18257a2665a15a2.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://bbs.ednchina.com/images/attachments/201605/original/20160520100601925.jpg)

如图所示,在对应28Gbps的频点上,信号能量被衰减了30db,电压幅度只剩3%了;在对应56Gbps的频点上更惨,65db意味着信号电压摆幅剩下不到千分之一。在这种信道中,发送端一个完美漂亮的数据眼图:

到了接收端会变成这样的一堆垃圾:

什么都辨认不出来对吧。但是,经过我们聪明的工程师们一番努力,均一化开关打开,信号就变成了这样:

 [![](https://img.haomeiwen.com/i1465184/64e0ca94fec18a1d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://bbs.ednchina.com/images/attachments/201605/original/20160520100723536.jpg)

既然有了三**宝,他们只能用在串口上吗?

答案很显然,不是,串口可以用的,我们并口一样可以用。

那为什么并口不用呢?

差分信号这条不用说了,并口的电线本来已经够多了,数目还要再翻一倍?系统工程师会杀人的。

CDR 意义也不大,反正你并口速度也不高,一堆数据线中顺便传下时钟,比做接收端做CDR再采样每一位数据省事多了。

信道均一化属于屠龙之技,不用差分信号的话也就传几百M,本来就没啥衰减,用这个干啥?还是考虑下各种噪声串扰的问题吧。

于是答案就呼之欲出了。串口为啥比并口快?是因为串口的特性和应用场景,决定了它更加适合采用一些可以提高单根信道速率的设计方法,这些方法用在并口上并不合适。

从现有的应用看来,需要持续稳定高带宽的应用,往往使用高速串行接口,一根带宽不够再加一根,各种视频网络应用,基本如此。而一些历史遗留速度不高的应用,还有一些需要突发性高带宽的应用,并口仍然存活,比如很特殊的DDR。虽然XDR/GDDR/HMC/HCM这些新标准都在试图引入SerDes, 但DRAM行业的特殊性还是让并口继续存活着。

作者:龚黎明、又见山人

来源:知乎 十万个为什么(整理)

相关文章

  • 串口为什么比并口快?

    1.高速串口不需要传时钟来同步数据流,没有时钟周期性的沿变,频谱不会集中,所以噪声干扰少很多。以PCIE和SATA...

  • 磁盘管理

    数据线和电源接口,串型和并型 哪个快? 并口为什么没有串口快? 知道:1 丌知道:2 串口形容一下就是 ...

  • Android串口通讯

    串口通讯的步骤: 1.打开串口。 2.串口处于监听状态 3.想串口写入数据,串口接收到数据返回数据 串口的一个基本...

  • 为什么总是心直口快?!

    唉,又因心直口快吐槽某前同事了!总是管不住自己的嘴!吐完又后悔,年龄增长了,脾气还是改不了!

  • 树莓派开启SSH的N种方法

    问题:为什么我的树莓派无法使用远程连接电脑? 解答: 由于树莓派只有一个串口,当我们开发中需要占用这个串口或者我们...

  • 丑(比;比并)

    比: 《左传·文公十八年》:“昔 帝鸿氏 有不才子,掩义隐贼,好行凶德,丑类恶物,顽嚚不友,是与比周。”

  • 关于串口格式与报文格式

    《串口硬件分类》中已经说明了几种串口的类型,并在《串口通信协议》中说明了几种串口协议形式,这里就常用的串口协议进一...

  • 树莓派串口通信

    树莓派的串口默认为串口终端调试使用,如要正常使用串口则需要修改树莓派设置。关闭串口终端调试功能后则不能再通过串口登...

  • 9月22日

    今天上午老师讲解了 串口通信的中断应用 为什么用串口通信 在昨天的主程序中用的是轮训方式 实现数据的收发 但是如果...

  • 串口编程

    串口连接界面 主要控件 打开串口 自动获取串口列表并显示 初始化串口 写入卡片 插入打卡记录并显示打卡成功

网友评论

    本文标题:串口为什么比并口快?

    本文链接:https://www.haomeiwen.com/subject/vouzrttx.html