您的当前位置:首页正文

UART、RS232、RS485、I2C和SPI的介绍

2024-11-08 来源:个人技术集锦
基本知识
  • 串行通信:多个数据通过一条数据线,依次传输
  • 并行通信:多个数据通过多条数据线,一次性传输
  • 单工通信:只能接收数据或者发送数据(遥控器、收音机)
  • 半双工通信:在同一时刻,只能接收数据或者发送数据(对讲机)
  • 全双工通信:在同一时刻,既可以接收数据,也可以发送数据(电话)
  • 波特率:用于描述通信时的通信速度,其单位是 bps(bit per second),即每秒钟传送 bit 的数量
UART

UART(Universal Asynchronous Receiver Transmitter),即通用异步收发器。

  • 特点:
    1、有两根数据线(RXDTXD
    2、串行、异步通信
    3、全双工通信
    4、点对点通信:接收端和发送端(两个设备)

  • 应用:在嵌入式系统中,常用于主机和辅助设备之间的通信

  • 时序图

  • UART每次通信只能发送一个字节,不能够累计发送(避免累计误差);若要发送多个字节数据,需要先发送一个字节,然后结束通信,再开始通信,发送下一个字节

  • 因为是异步通信,没有时钟线,所以通过波特率来区分 01还是0011

  • 硬件连接图

  • 一般情况下,SOC会集成 UART控制器,在使用UART进行通信的时候只需要对其内部的相关寄存器进行设置,即可完成通信

USART

USART是通用同步/异步收发器(带同步时钟线 USART_CK),只是一种协议方式,根据不同电平方式分为 RS232协议和RS485协议。

UART串口通信存在的问题:
1、电气接口不统一
2、抗干扰能力差:UART 直接使用 TTL信号表示 01,但 TTL信号的抗干扰能力很差,传输过程中很容易出错
3、通信距离短:因为 TTL信号的抗干扰能力较差,所以其通信距离也很短。一般只用于一个电路板上两个不同芯片之间的通信(板载间通信)

RS232协议:(点对点通信)
1、基于串口,所以时序图和 UART串口一致
2、在电气层上做了一些改变,统一电气接口(定义了一个标准的连接器,标准中对连接器的每个引脚的作用加以规定,还对信号的电平加以规定)
3、抗干扰能力变强,通信距离变长(一般可达15米)
4、电气接口为 DB-9,一般使用 RXDTXDGND这三条线
5、规定逻辑为 1的电平为 -5V到-15V;规定逻辑为 0 的电平为 +5V到+15V

硬件连接:

RS232协议存在的问题:
1、接口的信号电平值较高,易损坏接口电路的芯片
2、与 TTL电平不兼容,需要电平转换芯片才能与 TTL电路连接
3、通信速度低
4、易产生共模干扰,抗噪声干扰性弱
5、通信距离15米,还是较短

RS485协议
特点:(半双工通信)
1、采用差分信号进行数据传输(双绞线),使用两线间电压差为 +2V到+6V表示逻辑0;两线间电压差为 -2V到-6V表示逻辑1,从而实现了远距离通信(1500米);且在电子噪声较大的环境下,能够有效传输信号
2、允许连接多个收发器,具有多站能力,也就是可以建立一个设备网络
3、RS485接口信号的电平比RS232降低了,所以不易损坏接口电路的芯片

硬件连接图(设备网络,RS485总线上挂载多个设备,主从机制参考 I2C总线)
120Ω电阻用来消除信号线上的共模干扰

I2C

划分:

  • 传输模式
    标准模式(最快100k/s)
    快速模式(最快400k/s)
    高速模式(最快3.4M/s)
    10位寻址(最多1024个从机地址),可以和7位寻址兼容
  • 按模式:主发送,主接收,从接收,从发送
    我告诉你:“晚上10点提醒我看球赛.”----对于我来说,这是主发送
    我问你:"到时间了吗?"你:“还没呐”-----对于我来说,这是主接收
    你提醒我:“10点啦!球赛开始啦!”-------对于我来说,这是从接收
    你问我:"现在几比几啦?"我:“还是0:0”–对于我来说,这是从发送

硬件连接图

起始信号:SCL处于高电平时,SDA由高变低
停止信号:SCL处于高电平时,SDA由低变高
字节传送与应答: 发送器发送一个字节数据(先传送高位,再传送低位);接收器发送 应答位 来回应,(1位低电平应答)
同步信号:
传输数据期间,
SCL低电平期间,发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生改变
SCL高电平期间,接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生改变(因为SCL高电平时,数据线上信号改变会被认为是起始信号或者停止信号

SPI

SPI(Serial Peripheral Interface)是串行外设接口的缩写,是一种高速、全双工、同步的串行通信总线;最少有四根线:MISO(主设备输入、从设备输出),MOSI(主设备输出、从设备输入),SCLK(时钟线),CS(片选线)
SPI采用主从方式工作,一般有一个主设备和一个或多个从设备

极性和相位:根据芯片手册来判断
SPI总线有四种不同的工作模式,取决于 极性(CPOL)相位(CPHA)

CPOL表示 SCLK 空闲时的状态:
CPOL = 0,SCLK低电平表示总线空闲
CPOL = 1,SCLK高电平表示总线空闲

CPHA表示采样时刻:
CPHA = 0,每个周期的第一个时钟沿采样,相位为0
CPHA = 1,每个周期的第二个时钟沿采样,相位为1

I2CSPI 的异同
显示全文