SPI,UART,IIC三大总线对比说明

一、SPI:高速,全双工,同步串行总线

串行指的是数据是一位一位发送的,同步指的是要根据主机的时钟信号来发送

  1. SPI有四根线,分别为SCLK(时钟信号),MOSI(主设备输出,从设备输入),MISO(主设备输入,从设备输出),CS(片选信号)
  2. SPI有四种工作模式:
    Mode0:CPOL=0,CPHA=0
    Mode1:CPOL=0,CPHA=1
    Mode2:CPOL=1,CPHA=0
    Mode3:CPOL=1,CPHA=1
    CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时
    CPOL=1,表示当SCLK=1时处于空闲态,所以有效状态就是SCLK处于低电平时
    CPHA=0,表示数据采样是在第1个边沿,数据发送在第2个边沿
    CPHA=1,表示数据采样是在第2个边沿,数据发送在第1个边沿

CPOL=0,CPHA=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,也就是
SCLK由低电平到高电平的跳变,所以数据采样是在上升沿数据发送是在下降沿

CPOL=1,CPHA=0:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,也就是
SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿

二、IIC: 低速,半双工,同步串行总线

  1. IIC有两根线SDA(数据线)和SCL(时钟线)
  2. I2C总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。总线在空闲状态时,SCL和SDA都保持着高电平,当SCL为高电平而SDA由高到低的跳变,表示产生一个起始条件;当SCL为高而SDA由低到高的跳变,表示产生一个停止条件。
  3. IIC传输数据是逐8位传输,主设备在传输有效数据之前要先指定从设备的地址,因此且每一最小包数据由9bit组成,8bit内容+1bit ACK, 如果是地址数据,则7bit地址,1bit方向,1bit ACK。在这里插入图片描述
  4. SCL处于高电平的时候,如果SDA处于低电平:传输数据0,SDA处于高电平:传输数据1 。SDA上的数据必须在SCL高电平周期时保持稳定,数据的高低电平翻转变化发生在SCL低电平时期
  5. SCL总线的线与:只要有一个节点发送低电平时,总线上就表现为低电平。当所有的节点都发送高电平时,总线才能表现为高电平低速,因此当多个节点同时发送时钟信号时,在总线上表现的是统一的时钟信号
  6. 节点在发送1位数据后,比较总线上所呈现的数据与自己发送的是否一致。是,继续发送;否则,退出竞争
  7. IIC传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s
  8. 7位IIC最多可以挂载127个设备,0作为群呼设备

三、UART:全双工,异步串行总线

  1. 一般为三线,GND(地线),TXD(发送数据),RXD(接收数据)
  2. 协议格式一般为1位起始位,(5,6,7,8)位数据位,1位校验位,(1,1.5,2)位停止位,同时需要包装双方波特率一直,常用的有115200,9600
  3. UART不需要时钟信号

四、三大总线对比

在这里插入图片描述

  1. IIC总线在高电平的时候采样数据,SPI一般是在上升沿采样数据
  2. IIC总线和SPI总线数据传输都是MSB在前,LSB在后(串口是LSB在前)
  3. SPI依靠片选选择从设备,IIC依靠协议(发送数据前先发送地址)确定从设备
  • 16
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值