低速协议IIC和SPI等特点及其区别。

IIC是一种两线制、低速、多主设备通信协议,最大速率可达400kbps,支持128个设备连接。SPI则是单主设备协议,速度更快,可达到几十兆比特每秒,具有全双工模式。两者都使用开漏输出,IIC通过时钟拉伸来处理速度差异,而SPI通过拉低SS线启动通信,其通信模式和速度灵活性更高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

低端数字通信领域,SPI和IIC经常可见,这两种协议适合近距离低速芯片之间的通信

IIC的速率是 多主设备速率为100kbs 400kbps 3.4Mbps 只有两根线分别是CLK DATA

每一个IIC设备都有唯一的7位地址  所以IIC总计最多可以挂在128个设备,要求数据帧为8个字节

通信模型为

主设备发送一个start信号,然后其他设备开始监听总线以准备接受数据,接着,主设备发送一个7位设备地址加一个读写操作的数据帧,当从设备接受数据后,会对自身的地址进行比对,并且进入等待状态,等待stop信号的到来,结束通信。当地址比较正确,从设备会发送一个应答信号,当主设备收到应答信号后会开始发送或者接受数据,数据帧为8位+1一个ACK校验位,直到数据传输完成,主设备发送一个stop信号,向其他设备释放总线,其他设备回到初始状态,通信结束。

start信号标志:SCL为高电平的情况下,SDA高电平拉低

stop信号标志:SCL为高电平的情况下,SDA低电平拉高

SDA和CLK都是开漏输出(通常使用4.7K电阻上拉到3.3V的单元)

开漏输出如果不接上拉电阻, 没有输出高电平的能力.

如果不用开漏输出,而用推挽输出,会出现主设备之间短路的情况。所以,总线一般会使用开漏输出。

根据IIC规范,总线空闲时,两根线必须处于高电平状态。通过接上拉电阻,将SDA和SCL固定在高电平,即给IO确定的电平,不易受外界干扰。

时钟拉伸:主设备决定时钟速度,因为时钟脉冲信号是由主设备发出的,当从设备跟不上主设备的速率时候,从设备会请求主设备慢一点,这种机制就是时钟拉伸。

当从设备降低速率,需要做时钟拉伸的时候,它会按下时钟线,逼迫主设备进入等待状态。直到从设备释放时钟线,通信才能继续

SPI是单主设备的通信协议,总线中只有一支中心设备能发起通信,当SPI主设备想读/写从设备时,需要通过拉低SS线

SPI有四个工作模式决定是在时钟脉冲的那个边沿进行采用输出数据,根据时钟相位和时钟极性确定

SPI没有速率限制

一般是10-20M 极限可达到30M

IIC和SPI的区别

1.IIC只有两根新。SPI四根线,(硬件资源浪费)

2.SPI是全双工,IIC是半双工,速率方面SPI胜

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值