作者:小茜的阳光2011_950 | 来源:互联网 | 2023-05-28 17:30
一.串行通信与并行通信
1.串行通信:简称串口(串行接口),指数据一位一位地顺序传送,比如:UART,RS232,RS485等,串行通信根据发送时源和接收时源是否保持一致,又分为同步通信和异步通信,其优点是只需要几条线就可以在系统之间交换信息
2.并行通信:数据的每一位同时在多根数据线上发送或者接收信息,成本高,不适宜远距离通信
二.单工,半双工和全双工
图片来自于(2条消息) 单工、半双工和全双工_mayue_csdn的博客-CSDN博客_单工、半双工和全双工
a.单工:数据单向传输;
b.半双工:接口任意时刻只能接收或者发送数据,并存在最大传输距离的限制
c.全双工:接口可以同时接收和发送数据,而且消除了半双工物理距离的限制
三.UART
UART意为通用异步收发传输器,双向异步串行通信+全双工
图片来自于了解UART总线工作原理看这一篇就够了! - 知乎 (zhihu.com)
在两个UART之间传输数据只需要两根线,数据从发送UART的Tx引脚流向接收UART的Rx引脚
数据通信格式如下图:
图片来自于UART串口协议详解 - 知乎 (zhihu.com)
(1)URAT规定,总线为空闲状态时,信号线状态为1;
(2)起始位为0;
(3)数据位,先发送最低位,最后发送最高位;
(4)奇偶校验位:检查UART在传输过程中是否有数据发生变化;
(5)停止位:通知传输数据包结束;此外,每一个设备都有自己的时钟,很可能在通信过程中两台设备之间出现了不同步。因此,停止位还可以提供计算机校正时钟的机会。停止位个数越多,传输越稳定,但也越慢。
四.RS232、RS485
为了使远距离的设备正常通信,RS232,RS485应运而生。RS232的传输距离在15m左右,RS485的传输距离可以达到1.2KM,一般情况下,两单片机可以通过电平转化的芯片(比如SP3232芯片)将TTL信号转化成RS232信号,这样就可以延长通信距离。
RS232存在的问题:接口的信号电平值较高,容易损坏接口电路的芯片,又因为和TTL不兼容,需要电平转换芯片与TTL电路连接;通信速度较低;易产生共模干扰,抗干扰性弱;传输距离还是较短(15m);
RS485:与RS232相比,主要是通信距离进一步扩大,抗干扰能力增强,UART和RS232只能点对点通信,而RS485可以连接多个收发器,具有多站能力,可以建立一个设备网络。RS485采用差分信号进行数据传输,两线之间电压差+2v~+6v表示逻辑1,-2v~-6v表示逻辑0。因为采用两线制,数据的发送和接收都要使用这对差分信号线,接收和发送不能同时进行,所以只能采用半双工工作方式。
五.I2C
串行,半双工总线,适用于近距离,低速的通信。IIC总线有两根双向的信号线,一根数据线SDA用于收发数据,一根时钟线SCL通信双方时钟的同步。
图片来自于IIC原理超详细讲解---值得一看_Z小旋的博客-CSDN博客_iic原理
IIC总线通信时每个字节为8位长度,数据传送时,先发最高位后发最低位,发送器发完一个字节后接收器必须发送一位应答来回应,即一帧有9位。时钟线SCL为低电平期间,发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生变化,时钟线SCL为高电平期间接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化。
六.SPI
SPI:串行外设接口,是一种高速的,全双工,同步的串行通信总线。SPI采用主从方式工作,一般有一个主设备和一个或者多个从设备。SPI需要四根线,分别是MISO(主设备输入和从设备输出),MOSI(主设备输出和从设备输入),SCLK(时钟),CS(片选)。
图片来自于SPI协议详解(图文并茂+超详细)_小麦大叔的博客-CSDN博客_spi
寻址方式:当主设备要和某个从设备进行通信的时候,主设备需要向对应的从设备的片选线上发送使能信号,表示选中该从设备。
图片来自于SPI协议详解(图文并茂+超详细)_小麦大叔的博客-CSDN博客_spi
通信过程:SPI总线在进行数据传送时,先发送高位,后传送低位(与IIC一致),一个字节传送完成之后无需应答即可开始下一字节的传送;SPI总线采用同步方式工作,时钟线在上升沿或者下降沿时发送器向数据线上发送数据,在紧接下来的下降沿或者上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送。
极性:CPOL=0,空闲时SCLK为低电平;CPOL=1,空闲时SCLK为高电平;
相位:CPHA=0,每个周期的第一个时钟采样;CPHA=1,每个周期的第二个时钟采样;
根据不同的极性和相位,SPI有四种工作状态
SPI通讯的优势:全双工,高速,简单软件配置,数据传输不限于8位,并且从机不需要唯一的地址
SPI的缺点:通常只支持一个主设备,没有从机应答信号,需要更多的引脚,传输距离短
IIC和SPI的异同
相同点:
1.均采用串行同步的方式
2.均采用TTL电平,传输距离和应用场景类似
3.均采用主从方式工作
不同点:
1.IIC为半双工,SPI为全双工
2.IIC有应答机制,SPI无应答机制
3.IIC通过总线广播从机地址来寻址,SPI通过对从机发送使能信号来寻址
4.IIC的时钟极性和相位固定,SPI可调