一、IIC
    IIC 是多主设备的总线,IIC没有物理的芯片选择信号线,没有仲裁逻辑电路,只使用两条信号线—— ‘serial data’ (SDA) 和 ‘serial clock’ (SCL)。

IIC协议规定:

第一,每一支IIC设备都有一个唯一的七位设备地址;

第二,数据帧大小为8位的字节;

第三,数据(帧)中的某些数据位用于控制通信的开始、停止、方向(读写)和应答机制。

IIC 数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps),另外一些变种实现了低速模式(10 kbps)和快速+模式(1 Mbps)。

基于IIC总线的设计,线路上不可能出现电平冲突现象。如果一支设备发送逻辑0,其它发送逻辑1,那么线路看到的只有逻辑0。也就是说,如果出现电平冲突,发送逻辑0的始终是“赢家”。

总线的物理结构亦允许主设备在往总线写数据的同时读取数据。这样,任何设备都可以检测冲突的发生。当两支主设备竞争总线的时候,“赢家”并不知道竞争的发生,只有“输家”发现了冲突——当它写一个逻辑1,却读到0时——而退出竞争。

任何IIC设备都有一个7位地址,理论上,现实中只能有127种不同的IIC设备。实际上,已有IIC的设备种类远远多于这个限制,在一条总线上出现相同的地址的IIC设备的概率相当高。为了突破这个限制,很多设备使用了双重地址——7位地址加引脚地址(external configuration pins)。IIC 标准也预知了这种限制,提出10位的地址方案。
10位的地址方案对 IIC协议的影响有两点:

第一,地址帧为两个字节长,原来的是一个字节;

第二,第一个字节前五位最高有效位用作10位地址标识,约定是“11110”。

另外,在IIC中有个现象--时钟拉伸:在 IIC 通信中,主设备决定了时钟速度。因为时钟脉冲信号是由主设备显式发出的。但是,当从设备没办法跟上主设备的速度时,从设备需要一种机制来请求主设备慢一点。这种机制称为时钟拉伸。

当从设备需要降低传输的速度的时候,它可以按下时钟线,逼迫主设备进入等待状态,直到从设备释放时钟线,通信才继续。

二、SPI和IIC比较

1. SPI适合数据流应用,而IIC更适合“字节设备”的多主设备应用。

2. 总线拓扑结构/信号路由/硬件资源耗费,IIC 只需两根信号线,而标准SPI至少四根信号

3. 数据吞吐/传输速度

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

SPI和IIC通信区别相关推荐

  1. 串口通信,IIC通信,SPI通信的简单区别

    一.串口通信 串口通信就是RS-232通信,只有两根线txd和rxd,通信双方必须设定相同的波特率,传输距离比较近. 二.IIC通信 IIC通信是最简单的串行通信协议,只需要一根数据线和一根时钟线,就 ...

  2. usb连接不上 艾德克斯电源_工程师,USB与SPI之间如何通信?什么芯片方案可以实现...

    工程师,在研发设计电路项目,可能会使用不同标准协议的通信方式:常见的通信方式类型包含 USB通信,如U盘的接口是采用USB通信: UART通信,如数字温湿度传感器的接口是采用UART通信: SPI通信 ...

  3. 模拟IIC与硬件IIC的区别!

    模拟IIC与硬件IIC的区别! 一:模拟IIC与硬件IIC定义? 模拟I2C一般是用GPIO管脚,用软件控制管脚状态以模拟I2C通信波形. 硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所 ...

  4. STM32的SPI及IIC

    目录 STM32的SPI及IIC 1.SPI的配置方式 SPI**简介** SPI**特征** SPI**功能描述** SPI通信配置 2.IIC 的配置方式 IIC简介 I2C 初始化结构体详解 I ...

  5. Micropython——关于I2C和SoftI2C以及SPI和SoftSPI的区别

    首先,我们先看下面关于Raspberry Pi Pico的一张引脚图 1.关于I2C和SoftI2C的区别和联系 能够清晰地看到上面框图所圈起来的就是我们常常所说的I2C引脚接口,这里的接口指的就是硬 ...

  6. ICM20602六轴传感器-IIC通信模式

    ICM20602六轴传感器 ICM20602 通过IIC协议与MCU通信 ICM20602 初始化配置 ICM20602 相关配置函数 ICM20602 内部寄存器 注意事项 (一)ICM20602 ...

  7. 中微SC8F5771模拟IIC通信——指令运行速度的探索(附编译软件与烧录软件)

    文章目录 一.中微单片机烧录与使用 编译软件 烧录软件 下载地址 烧录软件 二.模拟IIC 三.逻辑分析仪下的时序 一.中微单片机烧录与使用 编译软件 中微所使用编译软件为SCMCU_IDE,不过个人 ...

  8. [转]从IIC实测波形入手,搞懂IIC通信

    (转载请删除括号里的内容) 玩单片机的朋友都知道IIC通信这个工具,但好多人只是会用,内部的原理不求甚解,或是想要了解其原理,但却对抽象的时序描述一头雾水.本文将从实测的IIC波形入手,带你看到真实的 ...

  9. STM32 PAJ7620U2手势识别模块(IIC通信)程序源码详解

    最近在自学设计下基于STM32单片机的项目,想用手势识别模块做一点好玩的,做个手势控制家居设备开关,另外正好借此巩固I²C 通信.因此,我想借这个机会在这里和大家分享一下自己学习STM32单片机时的所 ...

最新文章

  1. Apache架构师的30条设计原则!
  2. nginx A/B 灰色发布
  3. HarmonyOS之分布式任务调度开发流程
  4. 存根类 测试代码 java_常规单元测试和存根–测​​试技术4
  5. php 502状态码,Nginx502状态码处理
  6. 微软官网真的是一个神奇的地方,高清壁纸,直接下载
  7. Boost shared_from_this用法
  8. linux mysql 2003_如何解决linux mysql2003错误
  9. 2021年研究生数学建模竞赛优秀论文汇总
  10. 考研数学——求极限方法总结
  11. Python 正则表达式详解(建议收藏!)
  12. dsp处理浮点数_DSP学习笔记(二)——DSP中浮点数与定点数格式与运算处理
  13. echarts 实现自定义tooltip提示框浮层内容显示
  14. 1032:大象喝水 题解 信息学奥赛 NOIP
  15. 美的发布行业首支说唱MV,打造懂年轻人的美的微晶冰箱
  16. 项目经理如何做好项目管理PMP - 持续更新
  17. 【码农学编曲】Cubase乐器轨音频轨各种轨没声音的终极解决方案
  18. ETL:WJLYZQWDD
  19. python基于PHP+MySQL的连锁商店仓库管理系统
  20. 如何删除CSDN上自己上传的资源方法汇总(第一种方法神操作,亲测有效)

热门文章

  1. 看spring cloud开源项目Pig的云踩坑记
  2. 颜色(color)透明
  3. Java 简单笔记——内部类
  4. Python随机数函数
  5. AMD CPU Ryzen R7 2700X 开启虚拟化 VT
  6. 今天是我的生日打开微信朋友圈看到很多祝福2019.8.2
  7. 战队口号霸气押韵8字_高考励志名言短句霸气集锦 有创意高考励志名言十字以内...
  8. InnoDB 层全文索引字典表 | 全方位认识 information_schema
  9. C#——Windows程序求平方
  10. 3D人体模型自动生成算法,连肌肉颤动都清晰可见!一作来自北大图灵班