通信总线-串口/IIC/SPI

基本概念

1.串行:只有一个数据线,bit(位)一个一个传输(本质传输的是电信号,高低电平代表0或1)

更常用(UART,IIC,SPI)
在这里插入图片描述

2.并行:多个数据线,bit(位)同时传输

优点:速度快
缺点:并行总线条数多,浪费资源,布线难度大,不同数据线在传输数据时数据之间存在干扰
以char数据类型为例

3.单工通信:发送器和接收器之间的传递是单向的

在这里插入图片描述

4.双工:发送器和接收器可以互相传送数据
5.半双工:接受和发送不能同时进行,只有1根数据传输总线(例如IIC)

在这里插入图片描述

6.全双工:接受和发送可以同时传输,有2根数据传输总线(UART,SPI)

在这里插入图片描述

7.波特率(描述串口通信速度,单位bps(bit per second),即为每秒钟传输的二进制位数)

常见总线

1.串口-UART(同用异步收发器)

通用的串行、异步(发送和接受的时钟不一样)通信总线,该总线有两条数据线,可以实现全双工的发送和接收在嵌入式系统中常用于主机与辅助设备之间的通信。

串口通信原理

起始位:一次通信的开始(一个位的开始,那怕你要连续发8位,每次都要有起始位)
数据位:通过串口的数据内容
校验位:校验发送的数据的正确性(串口中常用奇偶校验)
停止位:此次通信的结束(是高电平)
(通信协议中指出:若总线不传输数据,应该把电平信号置为高电平;先发低位数据再发高位数据;串口最多发8位,避免累计误差)
如何区分1个1还是2个1(因为他们都是高电平):根据波特率判断时间。
在这里插入图片描述

2.IIC总线

串行、半双工总线。主要用于近距离、低速的芯片之间的通信。IIC总线有两根双向的信号线。一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步。IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用。
在这里插入图片描述
IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机。主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器。
在这里插入图片描述

IIC通信过程

**1.**主机发送起始信号启用总线
**2.**主机发送一个字节数据指明从机地址和后续字节的传送方向(一个字节中包含7bit的从机地址和数据传输方向(0表示主机发送,1表示主机接受),在未停止之前,这个传输方向不能更改)
**3.**被寻址的从机发送应答信号回应主机(将自己的地址和主机发送的地址做比较,判断是否是自己需要作为从机应答)
**4.**发送器发送一个字节数据
**5.**接收器发送应答信号回应发送器
(循环步骤4、5)
**n.**通信完成后主机发送停止信号释放总线

2.SPI总线

SPI (Serial Per ipheral Interface) 是串行外设接口的缩写,SPI是一种
高速的、全双工、同步的串行通信总线;SPI采 用主从方式工作,一般有一个
主设备和一个或多个从设备; SPI需要至少4根线, 分别是MISO (主设备输入
从设备输出)、MOSI ( 主设备输出从设备输入)、SCLK (时钟)、CS (片选,用于寻址)
SPI使用引脚较少且布线方便,所以越来越多的芯片集成了这种通信协议;
在这里插入图片描述

寻址方式

当主设备要和某个从设备进行通信时,主设备需要先向对应从设备的片选
线上发送使能信号(高电平或者低电平,根据从机而定)表示选中该从设备。
在这里插入图片描述

通信过程

SPI总线在进行数据传送时,先传送高位,后传送低位;数据线为高
电平表示逻辑‘1’,低电平表示逻辑‘0’ ;一个字节传送完成后无需
应答
即可开始下一个字节的传送;SPI总线采 用同步方式工作,时钟线
在上升沿或下降沿时发送器向数据线上发送数据(MSB,最高位;LSB,最低为位),在紧接着的下降沿或
上升沿时接收器从数据线.上读取数据,完成一位数据传送,八个时钟周
期即可完成一个字节数据的传送;
在这里插入图片描述

极性和相位

SPI总线有四种不同的工作模式,取决于极性(CPOL)和相位(CPHL)这两个因素
CPOL表示SCLK空闲时的状态
CPOL=0,空闲时SCLK为低电平
CPOL=1,空闲时SCLK为高电平
CPHA表示采样时刻
CPHA=0,每个周期的第一个时钟沿采样
CPHA=1,每个周期的第二个时钟沿采样
需要说明的是,对于一个特定的从设备来说,一般在出厂时就会将
其设计为某种特定的工作模式:我们在使用该设备时就必须保证主设备
的工作模式和该从设备保持一致,否则是无法进行通信的;所以一般我
们需要对主设备的CPOL和CPHA进行配置;

IIC和SPI的对比

相同点
1.均采用串行同步的方式
2.均采用TTL电平(0,1这种高低电平,导致其传输距离较短),传输距离和应用场景类似
3.均采用主从方式工作
■不同点

  1. IIC为半双工,SPI为全双工
  2. IIC有应答机制,SPI无 应答机制
  3. IIC通过向总线广播从机地址来寻址(优点:节省引脚,节省资源;缺点:慢),SPI通过向对应从机发送使能电平连接从机(优点:相较于IIC快;缺点:占了引脚)
  4. IIC的时钟极性和时钟相位固定,SPI的时钟极性和时钟相位可以自己设置

参考资料: https://www.bilibili.com/video/BV1q44y1d7dT/?p=15&share_source=copy_web&vd_source=3b4b6a7691b65142fba064b15503f0d6

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UART、SPI、I2C(也称为IIC)、IIS(也称为I2S)是一些常见的串行通信接口标准,用于在电子设备之间传输数据。 1. UART(通用异步收发器):UART是一种常见的串行通信接口,用于通过异步方式传输数据。它通常用于连接计算机和外部设备,如调制解调器、GPS模块、传感器等。UART使用TX(发送)和RX(接收)线来进行数据传输。 2. SPI(串行外围接口):SPI是一种全双工的串行通信接口,用于在微控制器和外部设备之间传输数据。SPI使用主从模式,其中一个设备充当主设备,控制通信的时序和数据传输。它使用多个线(如SCLK、MISO、MOSI)进行通信,并支持高速数据传输。 3. I2C(双线串行接口):I2C是一种双线制的串行通信接口,用于在芯片之间进行通信。它使用两根线(SDA和SCL)进行数据和时钟传输。I2C支持多主从模式,允许多个设备在同一总线上进行通信。 4. IIS(集成电路音频总线)/I2S(Inter-IC Sound):IIS或I2S是一种用于音频数据传输的串行接口。它通常用于数字音频设备之间的连接,如音频编解码器、数字信号处理器等。I2S使用多个线(如数据线、时钟线、帧同步线)来传输音频数据。 这些接口标准在电子设备中广泛应用,每种接口都有其独特的特点和应用场景。具体使用哪种接口取决于设备之间的通信需求和硬件支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值