UART、IIC、SPI、CAN通信协议的区别及应用场景介绍

文章目录

  • 1、通信的基本知识
  • 1.1、数据通信的种类
  • 1.1.1、串行通信
  • 1.1.2、并行通信
  • 1.1.3、总结
  • 1.2、数据通信的传输方向
  • 1.2.1、单工
  • 1.2.2、半双工
  • 1.2.3、全双工
  • 1.2.4、总结
  • 1.3、数据通信的方式
  • 1.3.1、同步通信
  • 1.3.2、异步通信
  • 1.3.3、同步与异步的区别
  • 1.4、通信基本知识的总结
  • 2、UART通信详解
  • 2.1、描述
  • 2.2、应用范围
  • 2.3、优缺点
  • 2.4、硬件连接
  • 2.5、通信格式
  • 2.6、波特率
  • 2.7、拓展
  • 3、IIC通信详解
  • 3.1、描述
  • 3.2、应用范围
  • 3.3、优缺点
  • 3.4、硬件连接
  • 3.5、通信格式
  • 3.6、IIC三种速率
  • 3.7、寻址
  • 4、SPI通信
  • 4.1、描述
  • 4.2、应用范围
  • 4.3、优缺点
  • 4.4、硬件连接
  • 4.5、总线模式
  • 4.6、通讯协议
  • 5、三种通信方式的总结
  • 6、未完待续
  • 1、通信的基本知识

    1.1、数据通信的种类

    数据通信基本方式可以分为串行通信与并行通信两种

    1.1.1、串行通信

    (1)定义:串行通信是指利用一条传输线将数据一位位地顺序传送。

    (2)传输方式:传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输。

    (3)特点:通信线路简单,成本较低,适用于远距离通信,但传输速度慢

    (4)实例:uart、iic、spi、usb总线等

    1.1.2、并行通信

    (1)定义:并行通信是指利用多条传输线将一个数据的各位同时传送。

    (2)传输方式:传输一个字节(8个位)的数据时,并口是将8个位一字排开,分别在8条连接线上同时传输。

    (3)特点:传输速度快,适用于短距离通信

    1.1.3、总结

    请添加图片描述

    随着技术的发展,时钟频率越来越高,平行导线之间的相互干扰也越来越严重。因为串口的线很少,所以线之间的干扰很容易控制。相反,可以通过不断提高时钟频率来提高传输速率,所以现在很多高速器件都采用串行通信

    1.2、数据通信的传输方向

    数据的传输模式一共有三种:单工、半双工、全双工

    1.2.1、单工

    (1)特点:任何时刻两个设备都只能进行一个方向的通讯,即一个固定为发送设备,另一个固定为接收设备。只有一条数据通道,例如广播电台和收音机

    (2)优缺点

    ​ 优点:可以利用通信信道的整个带宽,所以一次性可以传输更多的数据

    ​ 缺点:通信是单向的,设备之间没有相互通信,效率低

    1.2.2、半双工

    (1)特点:允许二台设备双向通信,但不能同时进行。必须等待一端的数据传输完成后才能开始另一端的数据传输。只有一条数据通道, 就像对讲机通话一样,需要等对面讲完以后才能开始这端的讲话

    (2)优缺点

    ​ 优点:半双工在同一时刻也是占用整条带宽,所以每次也能传输很多数据

    ​ 缺点:通信一方在传输数据,另一方只能等待接收数据,存在一点时延

    1.2.3、全双工

    (1)特点:两个设备之间可以同时收发数据。通道分为两部分,一部分用于发送数据,另一部分用于接收数据。一般的电话、手机就是全双工的系统,因为在讲话时同时也可以听到对方的声音。

    (2)优缺点

    ​ 优点:通信双方可以同时发送和接收数据,效率很高

    ​ 缺点:假如设备之间不存在专用路径,那么信道容量就会减少一半

    1.2.4、总结

    请添加图片描述

    1.3、数据通信的方式

    通讯的数据同步方式,又分为同步和异步两种。可以根据通讯过程中是否有使用到时钟信号进行简单的区分。简单来说就是发送和接收按照同一个时钟周期工作就叫同步,发送和接收没有按照统一的时钟工作就叫异步。

    1.3.1、同步通信

    (1)描述:

    在同步通讯中,收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调,同步数据。通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样

    (2)优缺点

    同步通讯的效率更高,但是同步通讯双方的时钟允许误差较小

    (3)应用范围

    通信网中,有大批量数据需要传输
    请添加图片描述

    1.3.2、异步通信

    (1)描述:

    在异步通讯中,不使用时钟信号进行数据同步,异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备,发送端可以在任意时刻开始发送字符。但是因此必须在每一个字符中加入起始位、奇偶校验位、停止位等。某些通讯中还需要双方约定数据的传输速率,以便更好地同步 。波特率(bps)是衡量数据传送速率的指标。

    (2)优缺点

    异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)

    (3)应用范围

    应用于在工业、实际应用中。适用于短距离、速率不高的情况下

    请添加图片描述

    1.3.3、同步与异步的区别

    (1)时钟频率:同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求,发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。

    (2)同步通信效率高;异步通信效率较低

    (3)同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。

    (4)同步通信可用于点对多点;异步通信只适用于点对点。

    (5)同步是阻塞模式,等接收方发回响应以后才发下一个数据包;异步是非阻塞模式,不等接收方发回响应,接着发送下个数据包的通讯方式

    (6)其中SPI和IIC为同步通信;UART为异步通信

    1.4、通信基本知识的总结

    请添加图片描述请添加图片描述

    说完通信的基本知识,让我们再来看一下,Uart、IIC、SPI、CAN通信等

    2、UART通信详解

    2.1、描述

    UART:(Universal Asynchronous Receiver Transmitter)通用异步收发器,一般由波特率产生器、UART接收器、UART发送器组组成,三根线

    uart是一种通用可全双工、异步、串行通信方式,不需要严格的时间限制

    2.2、应用范围

    常用于控制计算机与串行设备的芯片、Debug打印调试

    2.3、优缺点

    与SPI、IIC相比速度较慢,比较复杂,只能与一个设备进行连接通信

    2.4、硬件连接

    至少需要三根线相连:发送线TX、接收线RX、底线GND

    2.5、通信格式

    包含起始位、数据位、奇偶检验位、停止位

    (1)起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。

    (2)数据位:数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。

    (3)奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。

    (4)停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

    请添加图片描述

    2.6、波特率

    数据传输的速率。在数据传输和接收双方,需要预先统一波特率,以便正确的传输数据。有以下几个档位:300、600、1200、2400、4800、9600、19200、38400、56000、57600、115200、128000,也可以自定义

    2.7、拓展

    UART是一个大家族,其包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范。它们的主要区别在于其各自的电平范围不相同。

    UART,因为对电气特性并没有规定,所以直接使用CPU使用的电平,就是所谓的TTL电平(可能在0~3.3V之间),所以RS232/485就是代表一种电平标准,只是与TTL不同的一种电平。

    3、IIC通信详解

    3.1、描述

    IIC也可以写做I2C,全称是Inter IC bus,IIC只有一根数据线和有一根SDA,即属于半双工、同步、串口通信方式;即能发送接收数据,但不能同时进行。

    具有多主控接口标准,速率不快,具有总线仲裁机制,非常适合器件间近距离经常性数据通信,可实现设备组网。

    3.2、应用范围

    这些功能比较多而且速率要求不高的场合,MEMS的姿态传感器(陀螺仪,加速度计,磁强计)、一些加密芯片、E2PROM、时钟芯片、触摸芯片等

    3.3、优缺点

    I2C的速度比SPI速度慢,协议比SPI复杂,但是连线比标准的SPI要少,用地址选择从机

    3.4、硬件连接

    IIC总线有两线

    时钟线SCL,由master提供

    数据线SDA

    3.5、通信格式

    (1)空闲状态:I2C总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态

    (2)IIC中的信号有2种:起始信号、停止信号

    ​ 起始信号:SCL保持高电平期间,SDA的电平被拉低,称为I2C总线总线的起始信号

    ​ 停止信号:SCL保持高电平期间,SDA被释放,返回高电平,称为I2C总线的停止信号

    (3)写操作,首先发送起始位,然后依次发送控制字节、地址字节、数据字节,每发送完一个字节后,需要一个应答信号ACK,最后发送停止位。
    请添加图片描述
    请添加图片描述

    (4)读操作:在读之前,主机需先发送地址字节给从机完成地址字节的设置(此过程是写操作,读写标志为0),地址字节发送完成后接收应答信号ACK,随后主机产生起始信号,随后发送控制字节(此过程是读操作,读写标志为1),然后从机响应应答信号,并发送8位数据字节,最后主机发送非应答信号NACK,发送停止位。读操作将从设置的地址开始读取,读取数据完成后,内部地址计数器自增1,指向下一个地址单元。
    请添加图片描述

    (4) SCL 的高电平期间,SDA上的电平必须保持稳定,只有在SCL为低电平期间,才允许 SDA上的电平改变状态。

    为什么SDA在SCL低电平期间才允许改变状态?
    因为当SCL处于高电平状态时,SDA拉低表示的是起始位,拉高表示的是停止位,所以当数据位中0和1出现时,如果在SCL高电平状态下SDA状态变化的话,就无法区分数据和起始、停止位。
    

    3.6、IIC三种速率

    (1)低速模式 100 kb/s

    (2)快速模式 400 kb/s

    (3)高速模式 3.4M/s

    3.7、寻址

    IIC总线是主从设备,从机地址位数为7位。一个主机在总线上最多可以挂127个从机(7位地址最多128,去除0x0广播地址,还剩127),设备间通过不同的设备地址来区分

    请添加图片描述

    4、SPI通信

    4.1、描述

    SPI是一种可全双工,同步、串口通信总线,可实现多个SPI设备互联,硬件4条线,无应答,无校验

    4.2、应用范围

    EEPROM,FLASH,实时时钟,AD转换器,数字信号处理

    4.3、优缺点

    (1)SPI没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。

    (2)比I2C总线要快,速度可达到几Mbps,用GPIO拉低CS(片选)选择从机

    4.4、硬件连接

    SPI硬件上有四根线

    (1)MISO:主设备数据输入,从设备数据输出

    (2)MOSI:主设备数据输出,从设备数据输入

    (3)SCLK:时钟信号。主设备产生

    (4)SS/CS:从设备片选信号,主设备控制

    (5)SDI:serial data input

    (6)SDO:serial data output

    这里有些人会把SDI /SDO 和 MOSI /MISO 弄混
    看芯片,如果标的是SDI/SDO,则是固定了输入输出脚。
    当做主机(master)时,SDI就是MISO,SDO就是MOSI。
    当做从机(slave)时,SDI就是MOSI,SDO就是MISO。
    请添加图片描述

    4.5、总线模式

    请添加图片描述

    时钟、数据脚都并接,主机通过CS脚来控制不同的设备使能

    4.6、通讯协议

    参考下面的链接

    5、三种通信方式的总结

    做了一张对比表格更好看出三种方式的异同有哪些,如下图:

    请添加图片描述

    6、未完待续

    参考连接:https://blog.csdn.net/Rocher_22/article/details/116590629
    https://blog.csdn.net/u010783226/article/details/118603326
    https://blog.csdn.net/weixin_45137708/article/details/127438869
    https://blog.csdn.net/tao475824827/article/details/106800859
    https://blog.csdn.net/oDuanYanGuHong/article/details/128494532

    物联沃分享整理
    物联沃-IOTWORD物联网 » UART、IIC、SPI、CAN通信协议的区别及应用场景介绍

    发表评论