当前位置:网站首页>UART、RS232、RS485、I2C和SPI的介绍
UART、RS232、RS485、I2C和SPI的介绍
2022-07-02 23:05:00 【HDD615】
基本知识
- 串行通信:多个数据通过一条数据线,依次传输
- 并行通信:多个数据通过多条数据线,一次性传输
- 单工通信:只能接收数据或者发送数据(遥控器、收音机)
- 半双工通信:在同一时刻,只能接收数据或者发送数据(对讲机)
- 全双工通信:在同一时刻,既可以接收数据,也可以发送数据(电话)
- 波特率:用于描述通信时的通信速度,其单位是
bps(bit per second)
,即每秒钟传送bit
的数量
UART
UART
(Universal Asynchronous Receiver Transmitter),即通用异步收发器。
特点:
1、有两根数据线(RXD
、TXD
)
2、串行、异步通信
3、全双工通信
4、点对点通信:接收端和发送端(两个设备)应用:在嵌入式系统中,常用于主机和辅助设备之间的通信
时序图
一次完整的数据传输包括:起始位、数据位、校验位(可有可无)和停止位
传输数据的时候,高电平(置1)表示空闲
起始位: 置低电平(0),表示通信的开始
数据位: 起始位后开始通信,传输数据,先传送数据低位,再传送数据高位(数据位可以发送5-8位,一般发送8位数据(即一个字节))
校验位:(可有可无) 验证数据是否发送正确,只能检查错误,不能修正,加上后,通信速度变慢
停止位: 置高电平(置1),表示一次通信的结束(占用1位、1.5位或者2位)UART
每次通信只能发送一个字节,不能够累计发送(避免累计误差);若要发送多个字节数据,需要先发送一个字节,然后结束通信,再开始通信,发送下一个字节因为是异步通信,没有时钟线,所以通过波特率来区分
01
还是0011
硬件连接图
一般情况下,SOC会集成
UART
控制器,在使用UART进行通信的时候只需要对其内部的相关寄存器进行设置,即可完成通信
USART
USART
是通用同步/异步收发器(带同步时钟线 USART_CK
),只是一种协议方式,根据不同电平方式分为 RS232
协议和RS485
协议。
UART
串口通信存在的问题:
1、电气接口不统一
2、抗干扰能力差:UART
直接使用 TTL
信号表示 0
和 1
,但 TTL
信号的抗干扰能力很差,传输过程中很容易出错
3、通信距离短:因为 TTL
信号的抗干扰能力较差,所以其通信距离也很短。一般只用于一个电路板上两个不同芯片之间的通信(板载间通信)
RS232
协议:(点对点通信)
1、基于串口,所以时序图和 UART
串口一致
2、在电气层上做了一些改变,统一电气接口(定义了一个标准的连接器,标准中对连接器的每个引脚的作用加以规定,还对信号的电平加以规定)
3、抗干扰能力变强,通信距离变长(一般可达15米)
4、电气接口为 DB-9
,一般使用 RXD
、TXD
、GND
这三条线
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
I2C
总线是一种串行、同步、半双工通信的多主机通信总线,有两根数据线:SDA(数据线)、SCL(时钟线);硬件结构简单,成本较低
应用: 同一块电路上的不同芯片之间进行通信
特点:
1、I2C
总线是一种多主机总线,连接在 I2C
总线上的器件分为主机和从机;
2、主机有权发起和结束一次通信,而从机只能被主机呼叫;
3、当总线上有多个主机同时启用总线时,I2C
也具备冲突检测和仲裁的功能来防止错误发生;
4、每个连接到 I2C
总线上的器件,都有一个唯一的地址(7位),且每个器件都可以作为主机(同一时刻只有一个主机),也可以作为从机;总线上的器件增加和删除不影响其它器件的正常工作;
5、I2C
总线在通信时,总线上发送数据的器件叫发送器,接收数据的器件叫接收器
硬件连接图通信过程:
1、主机发送 起始信号,启用总线(这时总线上的所有设备都可以收到,并且其它设备在此器件就不会启用总线了)
2、主机发送一个字节的数据指明 从机地址 和后续字节的 传送方向(是主机—>从机,还是从机—>主机)
一个字节的数据:前7位为从机地址,最后一位是传送方向(是0
表示主机—>从机,1
表示从机—>主机)
3、被寻址的从机发送 应答信号 回复主机,其它设备查看地址不是自己的地址,并不会理会
4、发送器发送一个字节数据
5、接收器发送应答信号回应发送器
第4、5步 循环…
6、通信完成后,主机发送 停止信号 释放总线,一次通信完成
起始信号: 当 SCL
处于高电平时,SDA
由高变低
停止信号: 当SCL
处于低电平时,SDA
由低变高
字节传送与应答: 发送器发送一个字节数据(先传送高位,再传送低位);接收器发送 应答位 来回应,(1位低电平应答)
同步信号:
传输数据期间,
当 SCL
为低电平期间,发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生改变
当SCL
为高电平期间,接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生改变(因为SCL
为高电平时,数据线上信号改变会被认为是起始信号或者停止信号)
SPI
SPI
(Serial Peripheral Interface)是串行外设接口的缩写,是一种高速、全双工、同步的串行通信总线;最少有四根线:MISO
(主设备输入、从设备输出),MOSI
(主设备输出、从设备输入),SCLK
(时钟线),CS
(片选线)SPI
采用主从方式工作,一般有一个主设备和一个或多个从设备
硬件连接图
每多连接一个从设备,就要多用连接一条片选线,和I2C
利用地址来寻址的方式不同通信过程:
1、SPI
总线传输数据:先传送高位,再传送低位;一个字节传送完成后,无需应答,即可开始下一个字节的传送
2、SPI
总线采用同步方式工作,时钟在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或上升沿接收器从数据线上读取数据,从而完成一位数据的传送;八个时钟周期即可完成一个字节数据的传送
极性和相位: (根据芯片手册来判断)SPI
总线有四种不同的工作模式,取决于 极性(CPOL) 和 相位(CPHA)
CPOL
表示 SCLK
空闲时的状态:
当 CPOL
= 0,SCLK
低电平表示总线空闲
当 CPOL
= 1,SCLK
高电平表示总线空闲
CPHA
表示采样时刻:
当 CPHA
= 0,每个周期的第一个时钟沿采样,相位为0,上升沿发数据,下降沿收数据
当 CPHA
= 1,每个周期的第二个时钟沿采样,相位为1,下降沿发数据,上升沿收数据
I2C
和 SPI
的异同
相同点:
1、均采用串行、同步的方式
2、均采用 TTL
电平,传输距离和应用场景类似(近距离传输,板载通信)
3、均采用主从方式工作
不同点:
1、I2C
为半双工通信;SPI
为全双工通信
2、I2C
有应答机制;SPI
无需应答
3、I2C
通过总线广播 从机地址 来寻址;SPI
通过 ** 向片选线发送使能信号** 来寻址
4、I2C
的时钟极性和相位固定;SPI
的时钟极性和相位可以调整
边栏推荐
- Mutual exclusion and synchronization of threads
- How much do you know about synchronized?
- Additional: token; (don't read until you finish writing...)
- Practical series - free commercial video material library
- LeedCode1480.一维数组的动态和
- How to write the design scheme of the thesis?
- 有哪些比较推荐的论文翻译软件?
- Where can I find foreign papers?
- [Chongqing Guangdong education] audio visual language reference materials of Xinyang Normal University
- v8
猜你喜欢
How much do you know about synchronized?
maya渔屋建模
Container runtime analysis
容器运行时分析
Interpretation of new plug-ins | how to enhance authentication capability with forward auth
Is the multitasking loss in pytoch added up or backward separately?
开源了 | 文心大模型ERNIE-Tiny轻量化技术,又准又快,效果全开
洛谷_P2010 [NOIP2016 普及组] 回文日期_折半枚举
Pytorch里面多任务Loss是加起来还是分别backward?
带角度的检测框 | 校准的深度特征用于目标检测(附实现源码)
随机推荐
Is there a specific format for English papers?
Cmake basic use
Don't want teachers to see themselves with cameras in online classes? Virtual camera you deserve!
[shutter] shutter photo wall (center component | wrap component | clickrrect component | stack component | positioned component | button combination component)
95页智慧教育解决方案2022
Interpretation of new plug-ins | how to enhance authentication capability with forward auth
Several methods of the minimum value in the maximum value of group query
顶级 DevOps 工具链大盘点
yolov5test. Py comment
Custom throttling function six steps to deal with complex requirements
FRP reverse proxy +msf get shell
Sysdig analysis container system call
Linux 下安装 redis
在线预览Word文档
洛谷_P2010 [NOIP2016 普及组] 回文日期_折半枚举
MFC file operation
[shutter] Introduction to the official example of shutter Gallery (project introduction | engineering construction)
[OJ] intersection of two arrays (set, hash mapping...)
130 pages of PPT from the brick boss introduces the new features of Apache spark 3.2 & 3.3 in depth
Leetcode skimming - game 280