串行通信
在远程通信和计算机科学中,串行通信(英语:Serial communication)是指在计算机总线或其他数据通道上,每次传输一个比特数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端口上通过一次同时传输若干比特数据的方式进行通信。串行通信被用于长距离通信以及大多数计算机网络,在这些应用场合里,电缆和同步化使并行通信实际应用面临困难。凭借着其改善的信号完整性和传播速度,串行通信总线正在变得越来越普遍,甚至在短程距离的应用中,其优越性已经开始超越并行总线不需要串行化组件(serializer),并解决了诸如时钟偏移(Clock skew)、互联密度(interconnect density)等缺点。PCI到PCI Express的升级就是其中一个例子。
串行总线
如果集成电路具有更多的引脚的话,那么它的价格通常会更加昂贵。为了减少封装中的引脚数,许多集成电路在速度不是特别重要的情况下,使用串行总线来传输数据。这样的低价串行总线的例子有串行周边接口(Serial Peripheral Interface Bus,SPI)[1]、I²C[2]、UNI/O[3]、1-Wire[4]等。
串行通信与并行通信的比较
在计算机之间、计算机内部各部分之间,通信可以以串行和并行的方式进行。一个并行连接通过多个通道(例如导线、印制电路布线和光纤)在同一时间内传播多个数据流;而串行在同一时间内只连接传输一个数据流。
虽然串行连接单个时钟周期能够传输的数据比并行数据更少,前者传输能力看起来比后者要弱一些,实际的情况却常常是,串行通信可以比并行通信更容易提高通信时钟频率,从而提高数据的传输速率。有以下一些因素允许串行通信具有更高的通信时钟频率:
- 无需考虑不同通道的时钟脉冲相位差(英语:clock skew);
- 串行连接所需的物理介质,例如电缆和光纤,少于并行通信,从而减少占用空间的体积;
- 串扰的问题可以得到大幅度缓解。
在许多情况里,串行通信都凭借其更低廉的部署成本成为更佳的选择,尤其是在远距离传输中。许多集成电路都具有串行通信接口来减少引脚数量,从而节约成本。
串行通信架构的例子
- 摩尔斯电码(用于电报)
- RS-232(低速,用于串行接口)
- RS-422
- RS-423
- RS-485
- I²C
- SPI
- ARINC 818Avionics数字视频总线
- 通用串行总线(中速,用于连接多种外部设备)
- IEEE 1394
- 以太网
- 纤维管路(高速,用于连接计算机和大容量存储器)
- InfiniBand(超高速)
- MIDI数字乐器控制
- DMX512舞台灯光控制
- SDI-12工业传感器协议
- 串行SCSI
- SATA
- SpaceWire航天器通信网络
- HyperTransport
- PCI Express
- QPI
- 同步光网络(光纤高速传输)
- T-1和E-1变体(通过铜线对的高速通信)
- MIL-STD-1553A/B
参考文献
外部链接
- Serial Interface Tutorial for Robotics(页面存档备份,存于互联网档案馆) (contains many practical examples)
- Serial interfaces listing (with pinouts)
- Wiki: Serial Ports(页面存档备份,存于互联网档案馆)
- Visual studio 2008 coding for Serial communication