在通信接口的介绍中,难免见到全双工/半双工/单工、同步/异步等这些名词。今天就专门来介绍一下这些名词。
1. 什么是全双工/半双工/单工
数据通信中,数据在线路上的传送方式可以分为单工通信、半双工通信和全双工通信三种。
单工通信:是指消息只能单方向传输的工作方式。例如遥控、遥测(某些),就是单工通信方式。单工通信信道是单向信道,发送端只能发送信息,不能接收信息;接收端只能接收信息,不能发送信息。
半双工通信:是指数据可以沿两个方向传送,但同一时刻一个信道只允许单方向传送,因此又被称为双向交替通信。半双工方式要求收发两端都有发送和接收能力。由于这种方式要频繁变换信道方向,故效率低,但是可以节约传输线路。
全双工:是指在通信的任意时刻,线路上可以同时存在A到B和B到A的双向信号传输。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式无需进行方向的切换,因此,没有切换操作所产生的时间延迟,这对不能有时间延误的交互式应用(例如控制系统)十分有利。比如,电话机则是一种全双工设备,其通话双方可以同时进行对话。
2. 什么是同步通信/异步通信
同步通信:master在发送串行数据的同时,提供一个时钟信号,并按照一定的约定(例如:在时钟信号的上升沿的时候,将数据发送出去)发送数据,slave根据发送端提供的时钟信号,以及大家的约定,接收数据。如:I2C、SPI等有时钟信号的协议,都属于这种通信方式。
异步通信:接收方并不知道数据什么时候会达到,收发双方可以有各自自己的时钟。发送方发送的时间间隔可以不均,接收方是在数据的起始位和停止位的帮助下实现信息同步的。这种传输通常是很小的分组,比如:一个字符为一组,数据组配备起始位和结束位。所以这种传输方式的效率是比较低的,因为额外加入了很多的辅助位作为负载,常用在低速的传输中。
同步通信和异步通信区别:
(1)同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。
(2)同步通信效率高,异步通信效率较低。
(3)同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。
(4)同步通信可用于点对多点;异步通信只适用于点对点。