参看:串行通信基本原理
参看:【51单片机】(手把手教你)串口通信-基础篇
一、基本概念
首先,我们先看一下什么是 通信(communication)
随着计算机网络化和微积分级分布式应用系统的发展,通信的功能越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。在通信领域内,数据通信中按每次传送的数据位数,通信方式可分为:并行通信和串行通信。
二、串行通信
(1)基本概念
串行通信(英语:Serial communication):是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。
(2)串行通信架构的例子
然后,我们可以看一下都有哪些串行通信架构。参看:串行通信 -- 维基百科
- 摩尔斯电码(用于电报)
- RS-232(低速,用于串行接口)
- RS-422
- RS-423
- RS-485
- I²C
- SPI
- ARINC 818Avionics数字视频总线
- 通用串行总线(中速,用于连接计算机和多种外部设备) 即:USB
- IEEE 1394
- 以太网
- 纤维管路(高速,用于连接计算机和大容量存储器)
- InfiniBand(超高速,在规模上类似于PCI接口)
- MIDI数字乐器控制
- DMX512舞台灯光控制
- SDI-12工业传感器协议
- 串行SCSI
- SATA
- SpaceWire航天器通信网络
- HyperTransport
- PCI Express
- 同步光网络(光纤高速传输)
- T-1和E-1变体(通过铜线对的高速通信)
- MIL-STD-1553A/B
(3)串行通信的分类
串行通信可以分为同步通信和异步通信两类。
《1》同步通信(Synchronous Data Transfer)
同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。
它们均由同步字符、数据字符和校验字符(CRC)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。
具有时钟同步信号的传输,具有两条线:数据线和时钟线数据的每一位是按照时钟信号进行传输的。
如 : IIC通信, SPI通信
参看:I2C通信、SPI通信。 这两个稍后会详讲的。
《2》异步通信(Asynchronous Data Transfer)
异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。
接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。
不具有时钟同步信号的传输,参与通信的双方需事先约定波特率(传输速度),发送方和接收方按照事先约定好的波特率发送和接收数据。
如:UART通信,单总线(18B20)
(4)单工、半双工、全双工
《1》单工(Simplex Communication)
在这种串行通信模式下,数据只能从发射机传输到接收机,不支持反向传输。
《2》半双工(Half Duplex Communication)
这意味着数据传输一次只能在一个方向发生,即从主机到从机,或者从机到主机,而不是两者。
《3》全双工(Full Duplex Communication)
全双工通信意味着数据可以同时从主机传输到从机,从机传输到主机。
《4》例子
同步通信:I2C 半双工,SPI 全双工
异步通信:RS485 半双工、RS232 全双工
三、并行通信
(1)基本概念
如果一组数据的各数据位在多条线上同时被传输,这种传输方式称为并行通信。
(2)并行接口
并行接口简称并口,也就是LPT接口,是采用并行通信协议的扩展接口。
参看:并行端口
用途:
四、串行通信与并行通信比较
参看:Serial Communication – Introduction
(1)两种通信之间的差异
这些是串行通信和并行通信的基本区别。 从以上的不同,显然可以认为并行通信远远好于串行通信。 但是等等,这些只是基本的区别。 在我们进一步讨论之前,我们需要熟悉一些术语:
比特率:每单位时间发送(发送/接收)的比特数。
时钟偏斜:在并联电路中,时钟偏差是两个顺序相邻寄存器到达的时间差。为了进一步解释,让我们再次拿机枪的例子。比如说,同时有5人左右的射击,第一射手和第二射手等子弹的射入肯定会有时间差。这个时间差就是我们所说的时钟歪斜。下图更好地说明了这一点:通过同一总线的不同通道在数据位中存在时间延迟。由于通道的物理条件的差异,如温度,电阻,路径长度等,时钟偏斜是不可避免的
串扰:在传输总线的一个信道上传输的信号在另一个信道中产生不希望的效应的现象。不需要的电容性,电感性或导电性耦合通常是所谓的串扰,从一个电路,一部分电路或通道到另一个电路。时钟偏斜和串扰是不可避免的。
(2)主要限制并行通信的因素:
速度:从表面上看,并行链路的速度等于 比特率*信道数量。 在实践中,时钟偏斜降低了所有链路中速度最慢的链路的速度。
电缆长度:串扰会在平行线之间产生干扰,效果只会随通信链路的长度而放大。 这限制了可以使用的通信电缆的长度。
(3)串行/并行的优点:
尽管串行通信可能看起来不如并行通信,但是由于每个时钟周期可以传输较少的数据,因此串行通信通常可以比并行通信快得多,以获得更高的数据速率。许多因素允许串行以更高的速率进行计时:
1、不同通道之间的时钟偏斜不是问题(对于非时钟异步串行通信链路)。
2、串行通信需要较少的互连电缆(例如电线/光纤),因此占用较少的空间。额外的空间可以更好地隔离通道与周围环境。
3、串扰不是一个非常重要的问题,因为接近的导体较少。
在许多情况下,串行是一个更好的选择,因为它实施起来更便宜。许多IC具有串行接口,而不是并行接口,所以它们具有较少的引脚,因此较便宜。正是由于这些因素,串行通信优于并行通信。