单工
单工,即数据传输只在一个方向上传输,只能你给我发送或者我给你发送,方向是固定的,不能实现双向通信,如:室外天线电视、调频广播等。
半双工
半双工比单工先进一点,传输方向可以切换,允许数据在两个方向上传输,但是某个时刻,只允许数据在一个方向上传输,可以基本双向通信,如:对讲机,IIC通信。
图片
全双工
比半双工更先进的是全双工,允许数据同时在两个方向传输。发送和接收完全独立,在发送的同时可以接收信号,或者在接收的同时可以发送。它要求发送和接收设备都要有独立的发送和接收能力,如:电话通信,SPI通信,串口通信。
同步和异步的区别
串行通信可以分为两种类型,一种叫同步通信,另一种叫异步通信。
图片
简单的说,就是同步通信需要时钟信号,而异步通信不需要时钟信号。
- 同步:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
- 异步:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
SPI和IIC为同步通信,UART为异步通信,而USART为同步&异步通信。
- USART:通用同步和异步收发器
- UART:通用异步收发器
即USART支持同步和异步收发,而UART只支持异步收发。
如STM32的串口工作在同步模式时,即智能卡模式时,就需要连接同步时钟引脚。
图片
关于UART、I2C、SPI协议的详细介绍,可以查看我之前写的笔记:
- 一文看懂I2C协议
- 一文看懂SPI协议
- 串口通讯协议及其FPGA实现
- 一文看懂Modbus协议