spi i2c uart

spi
同步串行通信协议。
由一个主设备和一个或多个从设备组成,主设备启动与从设备的同步通信,完成数据交换。
高速全双工同步通信。
采用主从模式,主设备控制此设备。
采用同步方式传输数据:CPOL时钟的极性
=0,空闲时为低电平
=1,空闲时为高电平
CPHA时钟的相位
=0,上升沿被采样
=1,下降沿被采样
四条串行总线:CS:从设备使能信号,由主设备控制
SCLK:时钟信号,由主设备产生
SDO:MOSI主设备数据输出,从设备数据输入
SDI:MISO主设备数据输入,从设备数据输出
在这里插入图片描述

一个时钟周期完成数据的发送与接收
主机和从机都是高位发送
8个时钟周期完成一次数据交换

i2c
接口
半双工
串行时钟线SCL和串行数据线SDA,外加上拉电阻,可以挂载多个设备。
开始:SCL是高电平,SDA由高电平到低电平
停止:SCL是高电平,SDA由低电平到高电平
在时钟的高电平周期内,SDA线上的数据必须保持稳定,数据线仅可以在时钟SCL为低电平时改变。
注意:起始和终止信号都是由主机发出,连接到i2c总线上的器件。
如果具有i2c总线的硬件接口,能检测到起始和终止信号。
从机应答主机需要的时钟由主机提供,应答出现在每一次主机完成8个数据位传输后的时钟周期,低电平表示应答,高电平表示非应答。
NACK原因:
接收机没有发送机响应的地址,接收端没有任何ACK发送给发射机
由于接收机正在忙碌处理实时程序导致接无法接收或者发送
传输过程中,接收机识别不了发送机的数据或命令
接收机无法接收
主机接收完成读取数据后,要发送NACK结束告知从机
时钟同步:i2c总线上SCL线与。即如果有多个主机同时产生时钟,那么只有在master都发送高电平时,SCL才表现为高电平,SCL总线上低电平时间是所有主机时钟最长的低电平时间。
I2C总线数据传输速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。一般通过I2C总线接口可编程时钟来实现传输速率的调整,同时也跟所接的上拉电阻的阻值有关。

uart
通用异步收发器
不需要时钟线,通过起始位和停止位以及波特率进行数据识别。
由波特率产生器、uart接收器、uart发送器组成。
三条线组成:RX、TX、GND
全双工

SPI通讯的优势
使SPI作为串行通信接口脱颖而出的原因很多;
全双工串行通信;
高速数据传输速率。
简单的软件配置;
极其灵活的数据传输,不限于8位,它可以是任意大小的字;
非常简单的硬件结构。从站不需要唯一地址(与I2C不同)。从机使用主机时钟,不需要精密时钟振荡器/晶振(与UART不同)。不需要收发器(与CAN不同)。
SPI的缺点
没有硬件从机应答信号(主机可能在不知情的情况下无处发送);
通常仅支持一个主设备;
需要更多的引脚(与I2C不同);
没有定义硬件级别的错误检查协议;
与RS-232和CAN总线相比,只能支持非常短的距离;

spi有四根线,可以挂多个从设备,因为主设备要选择从设备,则主设备管脚需求比较多。当spi总线只有一个从设备,只需要用到SDO、SOI、SCK三根线,此时选择SPI比I2C总线占优。
i2c只有两根线,SCL、SDA,可以挂多个从设备,对从设备的选择直接依靠协议完成,无需增加物理连线。一般,当一块电路上有多个从设备时,往往选择i2c而非spi,因为spi增加额外硬件开销以及电路板走线。
使用高速数据传输,选择SPI。因为SPI是全双工,IIC 的不是。SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps。IIC 最高的速度也就快速+模式(1 Mbps)和高速模式(3.4 Mbps)。
SPI适合数据流应用,而IIC适合多主设备应用。
spi和i2c是板上通信、i2c有时也是板间通信,uart是应用于两个设备之间的通信。
uart一帧可以传5/6/7/8位,i2c必须是8位。
i2c和spi都是从最高位开始传
spi用片选信号选择从机,i2c用地址选择从机
速率比较:spi>i2c>uart
spi、i2c同步通信
都是串行通信方式,并行通信用于内部存储间的通信,如flash。
i2c占用空间非常小,减少电路板的空间和芯片管脚的数量,降低互联成本。
uart远距离传输。
i2c协议比spi复杂

参考:https://blog.csdn.net/u010632165/article/details/109460814
http://blog.51cto.com/13695010/2096153
https://blog.csdn.net/weibo1230123/article/details/79021485

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值