单工(simplex)是最简单的一种通信方式。 在这种方式下,数据只能单向传送:一端固定地作为发送方,只能发送但不能接收数据;另一端固定地作为接收方,只能接收但不能发送数据。例如,日常生活中对广播和电视采用的就是单工方式。
半双工(half duplex)是指在同一条通路上数据可以双向传输,但在同一时刻这条通路上只能有一个方向的数据在传输,即半双工通信的一端可以发送也可以接收数据,但不能在发送数据的同时接收数据。例如,辩论就是半双工方式,正方和反方可以轮流发言,但不能同时发言。
全双工(full duplex)是指使用不同通路实现数据向两个方向传输,从而使数据在两个方向上可以同时进行传送,即全双工通信的双方可以同时发送和接收数据。例如,电话就是全双工通信。
在数据通信过程中,发送端和接收端双方只有相互“协调”,才能实现数据的正确传输。发送端和接收端之间的协调方式有两种:同步和异步。因此,数据通信也被分为同通信和异步通信两种。
同步通信通过在发送端和接收端之间使用共同的时钟使它们保持“协调”。在同步通信中,发送端和接收端之间必然通过一根时钟信号线连接,并且双方只有在时钟沿跳变时才能发送和接收数据。同步通信的发送端和接收端都多占用了一个 IO口用于时钟,但数据传输速度快,适用于需要高速通信的场合。
异步通信,在发送端和接收端之间不存在共同的时钟。通常,异步通信中的数据以指定的格式打包为帧进行传输,并在一个数据帧的开头和结尾使用起始位和停止位实现收发间的“协调”。起始位和停止位用来通知接收端一个新数据帧的到来或者一个数据帧的结束。由于每个数据帧中都包含额外的起始位(1位)和停止位(1位~2位),异步通信的数据传输速率远低于同步通信,但在发送端和接收端无须额外的时钟线。