通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。
后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374)
一、概述
通信协议是两个(或多个)设备之间进行通信,必须要遵循的一种协议。通讯协议分为物理层和协议层。
物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输;
协议层:规定通讯逻辑,统一收发双方的数据打包、解包标准。
1、通信方式的分类
通信方式是指通信双方之间的工作方式或信号传输方式。
终端与其他设备(例如其他终端、计算机和外部设备)通过数据传输进行通信,根据数据的传输方式,有串行通信和并行通信。
串行通信又称为点对点通信,对于点对点之间的通信,
根据数据的同步方式,又分为异步传送和同步传送两种方式。
根据数据的传输方向与时间关系,又可分为单工通信、半双工通信及全双工通信三种方式。
二、数据通信方式
数据通信的基本方式可以分为串行通信与并行通信两种。
- 串行通信:
- 定义:串行通信是指利用一条传输线将数据一位位地顺序传送。
- 传输方式:传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输。
- 特点:通信线路简单,利用电话或电报线就可以实现通信,降低成本,适用于远距离通信,但传输速度慢。
- 并行通信:
- 定义:并行通信是指利用多条传输线将一个数据的各位同时传送。
- 传输方式:传输一个字节(8个位)的数据时,并口是将8个位一字排开,分别在8条连接线上同时传输。
- 特点:传输速度块,适用于短距离通信。
串行通信
同步通信和异步通信
根据通讯的数据同步方式,又分为同步和异步两种。可以根据通讯过程中是否有使用到时钟信号进行简单的区分。
异步通信:
在异步通讯中,不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据。例如规定由起始位、数据位、奇偶校验位、停止位等。
某些通讯中还需要双方约定数据的传输速率,以便更好地同步 。波特率(bps)是衡量数据传送速率的指标。
同步通信:
在同步通讯中,收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调,同步数据。通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样。
单工、半双工和双工
串行通信又称为点对点通信,对于点对点之间的通信,根据数据的传输方向与时间关系,又可分为单工通信、半双工通信及全双工通信三种方式。
单工方式:
只允许数据按照一个固定的方向传送,在任何时刻都只能进行一个方向的通信,一个设备固定为发送设备,一个设备固定为接收设备。
半双工方式:
两个设备之间可以收发数据,但是不能在同一时刻进行,每次只能有一个设备发送,另一个站接收。
全双工方式:
在同一时刻,两个设备之间可以同时进行发送和接收数据。
并行通信
并行是指多比特数据同时通过并行线进行传送,数据的各个位同时传送,可以字或字节为单位并行进行,这样数据传送速度大大提高,通信速度快,但并行传送用的通信线多、成本高,线路长度受到限制,故不宜进行远距离通信。并且长度增加,干扰也会增加,数据也就容易出错。计算机或PLC各种内部总线就是以并行方式传送数据的。
三、具体通讯协议
UART
通用异步收发传输器。
USART
通用同步/异步串行接收/发送器。USART可以理解为UART和USRT二合一的通信接口,一个是同步通信,一个是异步通信。
IIC
集成电路总线,是一种串行通信总线。
SPI
串行外设接口,是一种高速的,全双工,同步的通信总线。
QSPI
是SPI接口的扩展,比SPI应用更加广泛。QSPI是在SPI协议的基础上,对其增加了队列传输机制,传输过程不需要CPU干预,极大的提高了传输效率。
RS-232
全双工点对点式的异步串行通信协议接口。
RS-485
串行通信总线,采用两线制,差分传输,半双工模式。
RS-422
采用四线制,全双工,差分传输,多点通信的数据传输协议。
USB
通用串行总线 。USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术。
CAN
控制器局域网络。 CAN 总线是一种应用广泛的现场总线 ,在工业测控和工业自动化等领域有很大的应用前景。
IRDA
是一种利用红外线进行通信的,点对点通信的技术。