串行通信和并行通信的原理及对比
一、并行传输
1、并行通信的定义
在操作系统中是指,一组程序按独立异步的速度执行,不等于时间上的重叠(同一个时刻发生)。要区别并发。并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。并行也指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错。
2、并行通信的特点
- 并行数据传输是以计算机的字长,通常是8位、16位、32位为传输单位,一次传送一个字长的数据。它适合于外部设备与CPU之间近距离信息交换。
- 各数据位同时传输,传输速度快、效率高,多用在实时、快速的场合。
- 并行传输的数据宽度可以是1~128位,甚至更宽,但是有多少数据位就需要多少根数据线,因此传输的成本较高。
- 在集成电路芯片的内部、同一插件板上各部件之间、同一机箱内个插件板之间的数据传输都是并行的。
- 并行数据传输只适用于近距离的通信,通常传输距离小于30米。
3、并行接口
1)并行接口与CPU的连接
- 数据总线:是CPU与并行接口进行数据交换的通道。
- 读出写入信号线:控制数据流向,确定操作是读还是写。
- 复位线,准备好状态线:并行接口数据准备就绪。
- 中断请求线:并行接口向CPU进行中断请求。
- 地址译码电路:进行选择不同的接口电路,选择接口电路内部不同的寄存器。
⒉)并行接口与外设的连接
- 输入设备:数据输入线,设备数据准备就绪状态线和接口接收数据回答线。
- 输出设备:数据输出线,接口数据准备就绪状态线和外设接收数据回答线。
⒊)并行接口
- 控制寄存器:接收CPU发来的控制命令。
- 数据输入缓冲器、数据输出缓冲器:进行数据的输入、输出。
- 状态寄存器:提供接口电路工作状态供CPU查询。
4、传输原理
1) 并行接口输入数据的过程
- 外设将数据送到“数据输入线”,通过“输入数据准备好”状态线通知并行接口取走,接口将数据锁存到“输入缓冲器”,通过“数据输入回答”线通知外设,接口数据缓冲器已满,不要再送数据,接口在其内“状态寄存器”的相应位置 1,便于CPU 查询和接口向CPU 发中断请求之用。
CPU 从接口将数据取走后,接口将“数据输入准备好”、“数据输入回答” 信号清除,以便外设输入下一个数据。
2)并行接口输出数据的过程
- 接口“数据输出缓冲器” 空,“数据输出准备好” 状态线送 1,收到CPU 发的数据,将之复位清0,数据通过“数据输出”线送外设,由“数据输出准备好” 线通知外设取数据。
二、串行传输
1、串行通信的定义
串行通信(英语:Serial communication)是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。串行通信被用于长距离通信以及大多数计算机网络,在这些应用场合里,电缆和同步化使并行通信实际应用面临困难。凭借着其改善的信号完整性和传播速度,串行通信总线正在变得越来越普遍,甚至在短程距离的应用中,其优越性已经开始超越并行总线不需要串行化元件(serializer),并解决了诸如时钟偏移(Clock skew)、互联密度(interconnect density)等缺点。
2、串行总线
如果集成电路具有更多的引脚的话,那么它的价格通常会更加昂贵。为了减少封装中的引脚数,许多集成电路在速度不是特别重要的情况下,使用串行总线来传输数据。这样的低价串行总线的例子有序列周边接口(Serial Peripheral Interface Bus,SPI)、I²C、UNI/O、1-Wire等。
3、串行传输例子
- 摩尔斯电码(用于电报)、RS-232(低速,用于串行接口) 、RS-422、 RS-423 、RS-485 、I²C 、SPI、 ARINC 818、 通用串行总线(中速,用于连接计算机和多种外部设备) 。
三、并行与串行对比
- 串行一对信号线每次只传送1bit(比特)的信号,比如1Byte(字节)的信号需要8次才能发完。传输的信号可以是数据、指令或者控制信号,这取决于采用的是何种通讯协议以及传输状态。串行信号本身也可以带有时钟信息,并且可以通过算法校正时钟。因此不需要额外的时钟信号进行控制。
- 串行通讯很简单,但是相对速度低;并行通讯比较复杂,但是相对速度高。更重要的是,串行线路仅使用一对信号线,线路成本低并且抗干扰能力强,因此可以用在长距离通讯上。
- 并行通讯中,基本原理与串行通讯没有区别。只不过使用了成倍的信号线路,从而一次可以传送更多bit的信号。并行通讯通常可以一次传送8bit、16bit、32bit甚至更高的位数,相应地就需要8根、16根、32根信号线,同时需要加入更多的信号地线。比如传统的PATA线路有40根线,其中有16根信号线和7根信号地线,其他为各种控制线,一次可以传送2Byte的数据。并行通讯中,数据信号中无法携带时钟信息,为了保证各对信号线上的信号时序一致,并行设备需要严格同步时钟信号,或者采用额外的时钟信号线。
- 而并行线路使用多对信号线(还不包括额外的控制线路),线路成本高并且抗干扰能力差,因此对通讯距离有非常严格的限制。