IIC和SPI有什么区别?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-02
IIC和SPI有什么区别???

IIC和SPI非常相似
IIC: 2线式总线,可连多设备,速率100kbit/s~5 Mbit/s,
SPI: 4线式同步串口,可连多设备,速率?
有兴趣往深处研究的可以看参考资料
常见SPI接口设备:ADC EEPROM 传感器 开关 LED CAN控制器 RTC FLASH 网卡
参考资料:
SPI介绍和常见设备网页链接
IIC维基百科 网页链接
SPI维基百科 网页链接
NXP(原PHILIPS)IIC官方协议网页链接
Intel eSPI官方协议网页链接 2016年intel推出eSPI(增强型SPI)

IIC通信是串行同步全双工。
全双工是在微处理器与外围设备之间采用发送线和接受线各自独立的方法,可以使数据在两个方向上同时进行传送操作。指在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。目前的网卡一般都支持全双工。
半双工数据传输指数据可以在一个信号载体的两个方向上传输,但是不能同时传输。例如,在一个局域网上使用具有半双工传输的技术,一个工作站可以在线上发送数据,然后立即在线上接收数据,这些数据来自数据刚刚传输的方向。像全双工传输一样,半双工包含一个双向线路。



扩展资料:
全双工还是半双工简介:
全双工是指在发送数据的同1653时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。目前的网卡一般都支持全双工。
半双工所谓半双工就是指一个时间段内只有一个动作发生,举个简单例子,一条窄窄的马路,同时只能有一辆车通过,当目前有两量车对开,这种情况下就只能一辆先过,等到头儿后另一辆再开,这个例子就形象的说明了半双工的原理。
早期的对讲机、以及早期集线器等设备都是基于半双工的产品。随着技术的不断进步,半双工会逐渐退出历史舞台.单工通信是指通信线路上的数据按单一方向传送。

一、优势不同:

1、IIC:

IIC总线是双向、两线(SCL、SDA)、串行、多主控(mulTI-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。

2、SPI:

SPI在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议。

二、硬件结构不同:

1、IIC:

IIC串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。

2、SPI:

SPI总线是一种4线总线,也是所有基于SPI的设备共有的,它们是MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)、CS(片选)。

性能特点

SPI的片选可以扩充选择16个外设,这时PCS输出=NPCS,说NPCS0~3接4-16译码器,这个译码器是需要外接4-16译码器,译码器的输入为NPCS0~3,输出用于16个外设的选择。

如果应用中必须使用高速数据传输,那么SPI是更好的选择。因为SPI是全双工,IIC的不是。SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps。IIC 最高的速度也就快速+模式(1 Mbps)和高速模式(3.4 Mbps),后面的模式还需要额外的I/O缓冲区,还并不是总是容易实现的。

以上内容参考:百度百科-IIC

以上内容参考:百度百科-SPI



1. SPI
SPI 是一种四线制串行总线接口,为主/从结构,四条导线分别为串行时钟(SCLK)、主出从入(MOSI)、主入从出(MISO)和从选(SS)信号。主器件为时钟提供者,可发起读从器件或写从器件操作。这时主器件将与一个从器件进行对话。当总线上存在多个从器件时,要发起一次传输,主器件将把该从器件选择线拉低,然后分别通过 MOSI 和 MISO 线启动数据发送或接收。
SPI 时钟速度很快,范围可从几兆赫兹到几十兆赫兹,且没有系统开销。SPI 在系统管理方面的缺点是缺乏流控机制,无论主器件还是从器件均不对消息进行确认,主器件无法知道从器件是否繁忙。因此,必须设计聪明的软件机制来处理确认问题。同时,SPI 也没有多主器件协议,必须采用很复杂的软件和外部逻辑来实现多主器件架构。每个从器件需要一个单独的从选择信号。总信号数最终为 n+3 个,其中 n 是总线上从器件的数量。因此,导线的数量将随增加的从器件的数量按比例增长。同样,在 SPI 总线上添加新的从器件也不方便。对于额外添加的每个从器件,都需要一条新的从器件选择线或解码逻辑。图 2 显示了典型的 SPI 读/写周期。在地址或命令字节后面跟有一个读/写位。数据通过 MOSI 信号写入从器件,通过 MISO 信号自从器件中读出。
2. IIC总线
IIC 是一种二线制串行总线接口,工作在主/从模式。二线通信信号分别为开漏 SCL 和 SDA 串行时钟和串行数据。主器件为时钟源。数据传输是双向的,其方向取决于读/写位的状态。每个从器件拥有一个唯一的 7 或 10 位地址。主器件通过一个起始位发起一次传输,通过一个停止位终止一次传输。起始位之后为唯一的从器件地址,再后为读/写位。
IIC总线速度为从0Hz到3.4MHz。它没有SPI 那样快,但对于系统管理器件如温度传感器来说则非常理想。IIC 存在系统开销,这些开销包括起始位/停止位、确认位和从地址位,但它因此拥有流控机制。主器件在完成接收来自从器件的数据时总是发送一个确认位,除非其准备终止传输。从器件在其接收到来自主器件的命令或数据时总是发送一个确认位。当从器件未准备好时,它可以保持或延展时钟,直到其再次准备好响应。
IIC允许多个主器件工作在同一总线上。多个主器件可以轻松同步其时钟,因此所有主器件均采用同一时钟进行传输。多个主器件可以通过数据仲裁检测哪一个主器件正在使用总线,从而避免数据破坏。由于 IIC总线只有两条导线,因此新从器件只需接入总线即可,而无需附加逻辑。

  • 单片机中如何选用SPI、UART和IIC/SmBus?有谁知道他们的传输速度和应用场...
    答:SPI和IIC是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些很薄膜排线很多用IIC,这两种线属于低速传输 SMBUS较前面两者速度快,但也属于低速通信,是英特尔公司为了节省硬件资源而开发的一种总线标准,一般用于板间通信,但范围不会很广,只用与一台计算机或一组...
  • 谁能告诉我IIC通信与SPI的区别?谢谢
    答:IIC是多主多从,线永远是两条,关键是IIC的逻辑设计实在是完美,佩服那些设计者;SPI是单主多从,线比较多
  • SPI 与IIC 两者应用场合是不是一样的?
    答:iic两线SCL/SDA,spi三线或四线CLK/MISO/MOSI/(CS可选);iic速率100k/400k,spi一般几M甚至更高速率;iic总线上一主机多从机,spi总线上可以全双工通信;iic有完善的应答机制可靠传输,spi是只规定接口没规定传输协议的总线;iic可以跨背板传输,传输距离远;spi一般因为时序原因只能在板内走有限距离...
  • 关于调试stm32和stm8的i2c和spi协议的之间的区别
    答:其实两种通讯模式都是串行通信,通讯协议可以相同的。但是I2c与spi首先是硬件上的接口就不相同,spi上有个控制的引脚,要拉高或者放低来使能通讯与否,还有data和clk,最少三根线来通信。iic是两个线就可以通讯了,data和clk来实现通讯。
  • 平台总线和iic总线有什么区别
    答:他们的区别是: IIC的数据输入输出用的是一根线,SPI则分为data IN和 data OUT。由于这个原因,采用IIC时CPU的端口占用少,SPI多一根。但是由于IIC的数据线是双向的,所以隔离比较复杂,SPI则比较容易。 所以系统内部通信可用IIC,若要与外部通信则最好用SPI带隔离(可以提高抗干扰能力)。但是IIC和SP...
  • SPI和IIC通信方式,用两个51单片机模拟的话哪个好写呢??为什么??
    答:总体来说,SPI比IIC简单,容易模拟,两个引脚就可以,时钟自己定义,挺方便。IIC协议稍微比SPI复杂点。
  • spi主设备怎么选择spi从设备
    答:1. 与IIC不同,SPI没有明文标准,只是一种事实标准,对通信操作的实现只作一般的抽象描述,芯片厂商与驱动开发者通过data sheet沟通实现上的细节。因此各种不同的多从机,多主机主要看芯片厂商对芯片的设计。(仔细看datasheet就对了)2. 多从机的SPI正常的应用会有多根SS线(类似片选线),不同的...
  • 在什么情况下要使用 IIC 通信 ?在什么情况下药使用 SPI 通信?
    答:1、mcu有IIC接口和SPI接口,SPI速度较快,但是比IIC多用一条线。2、如果用IO口模拟IIC或SPI,要注意有的MCU的IO不能支持双向数据传输,这样只能用SPI。3、另外二者传输距离都不能太长,多见于板内通信。
  • 单片机通信中:IIC与SPI哪个抗干扰能力强?
    答:SPI吧,IIC中只有一个时钟线和一个数据线 还都是双向的,SPI中数据线是两个方向分开的MOSI – 主输出从输入 MISO – 主输入从输出,另外还有NSS从器件使能信号线 增加了可靠性
  • SPI UART区别是什么
    答:一个8位并行数据总线,这里的串行总线即是相对这个说的。IIC由1根串行数据线(SDA)+1根串行时钟线(SCL)构成,实现了双工的同步数据传输(双向传输)。有人会凝问,一根线作为总线就算了,但是它怎么实现双向传输数据呢?你可别忘了,它还有一根时钟线,作用同spi的时钟线。所以总结一下,...