0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

你眼中简单的IIC,其实并不简单

电子工程师 来源:网易号 作者:创易栈 2021-04-03 11:02 次阅读

01我们习以为常的IIC通常是什么样子?

在我们研发/应用工程师眼中,IIC的形象通常是如图这样的吧?(你们说是不是?)

JjEnei.png

nuEZZr.png

EJzmYz.png

是的,对于理想的硬件调程序,这个层面已经基本够用。(我是已经get到了)

02IIC还可以是这样的

Mn2m22.png

简单实用的IIC电平匹配电路,原理很简单、也很巧妙。

v2Qn2a.jpeg

Si8400芯片,做UART或者IIC隔离是很不错的。做隔离也有实际意义的:

比如涉及强电的板子,需要隔离后的UART口打印调试信息,方便debug;电容触摸按键调试中,某些产品采用隔离的IIC接口(如Azoteq,Cypress等芯片大部分采用IIC)调试能得到更准确的数据(原理上涉及到人体大地等构成的寄生电容,挺有意思,可以看创易栈的触摸按键相关内容)。

有朋友会问,我见过5V芯片和3V芯片,直接把IIC接在一起的,不需要做电压匹配呀?

这个不建议用。需要仔细看数据手册的:一般来说3V芯片的I/O都有如图的保护结构,导致SCL、SDA信号高电平被限制在3V+0.3V,5V芯片经常不能正确识别的。

EJZfem.png

03支持双电压的高速IIC接口

7zq6ra.jpeg

TI的TXS0102带OE功能的高速IIC接口芯片。

这个有什么好处呢?

当然有,除了支持电平匹配;从它的MOS结构也可以看出,对SCL和SDA的上升边缘有个加速过程,速度可以支持到2Mbps喔。

04触碰IIC的核心

每一个IIC总线器件内部的SDA、SCL引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一起。其中输出为漏极开路的场效应管、输入缓冲为一只高输入阻抗的同相器[1]。这种电路具有两个特点:

①由于SDA、SCL为漏极开路结构,借助于外部的上拉电阻实现了信号的“线与”逻辑;

②引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致。为 “时钟拉伸”和“总线仲裁”提供硬件基础。

jURJje.jpeg

I2C总线接口内部结构

IIC设备对总线的操作仅有“把线路拉到地”——输出逻辑0。基于IIC总线的设计,线路上不可能出现电平冲突现象。如果一设备发送逻辑0,其他发送逻辑1,那么线路看到的只有逻辑0。也就是说,如果出现电平冲突,发送逻辑0的始终是“赢家”。总线的物理接法允许主设备往总线写数据的同事读取数据。这样两主设备争总线的时候“赢家”并不知道竞争的发生,只有“输家”发现了冲突——当写一个逻辑1,却读到了0——而退出竞争。

时钟拉伸(Clock stretching)

如果被控器希望主控器降低传送速度可以通过将SCL主动拉低延长其低电平时间的方法来通知主控器,当主控器在准备下一次传送发现SCL的电平被拉低时就进行等待,直至被控器完成操作并释放SCL线的控制控制权。这样以来,主控器实际上受到被控器的时钟同步控制。可见SCL线上的低电平是由时钟低电平最长的器件决定;高电平的时间由高电平时间最短的器件决定。这就是时钟拉伸,它解决了I2C总线的速度同步。

7b2AN3.jpeg

总线仲裁

假设主控器1要发送的数据DATA1为“101 ……”;主控器2要发送的数据DATA2为“1001 ……”总线被启动后两个主控器在每发送一个数据位时都要对自己的输出电平进行检测,只要检测的电平与自己发出的电平一致,他们就会继续占用总线。在这种情况下总线还是得不到仲裁。当主控器1发送第3位数据“1”时(主控器2发送“0” ),由于“线与”的结果SDA上的电平为“0”,这样当主控器1检测自己的输出电平时,就会测到一个与自身不相符的“0”电平。这时主控器1只好放弃对总线的控制权;因此主控器2就成为总线的唯一主宰者。

总结

① 对于整个仲裁过程主控器1和主控器2都不会丢失数据;

② 各个主控器没有对总线实施控制的优先级别;

③总线控制随即而定,他们遵循“低电平优先”的原则,即谁先发送低电平谁就会掌握对总线的控制权。

根据上面的描述,“时钟拉伸”与“总线仲裁”可以总结如下规律:

①主控器通过检测SCL上的电平来调节与从器件的速度同步问题——时钟拉伸;

②主控器通过检测SDA上自身发送的电平来判断是否发生总线“冲突”——总线仲裁。因此,I2C总线的“时钟同步”与“总线仲裁”是靠器件自身接口的特殊结构得以实现的。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 硬件
    +关注

    关注

    11

    文章

    3408

    浏览量

    66534
  • IIC
    IIC
    +关注

    关注

    11

    文章

    303

    浏览量

    38554
  • IIC接口
    +关注

    关注

    0

    文章

    23

    浏览量

    11745
收藏 人收藏

    评论

    相关推荐

    map指令简单介绍

    当然这里写的都是官方文档是已经写过的,我简单抄一下哈。
    的头像 发表于 02-13 09:54 63次阅读

    简单了解SDK与APK的区别

    不少小伙伴在开发软件中会提到两个词:API和SDK。虽然它们看起来很专业,但其实背后的概念并不复杂。这篇文章能简单的帮你了解SDK与APK的区别。
    的头像 发表于 10-11 10:08 1909次阅读

    IIC信号线需要增加上拉电阻,是因为IIC的IO是什么

    IIC通信中扮演着至关重要的角色,而上拉电阻的加入则是实现这种通信方式有效性和可靠性的关键。以下是对此现象的介绍: 一、IIC通信与开漏输出 IIC通信协议是一种广泛应用的串行通信协议,由飞利浦公司(现被恩智浦电子收购)于198
    的头像 发表于 10-06 15:50 1154次阅读

    SMBus变得简单

    电子发烧友网站提供《SMBus变得简单.pdf》资料免费下载
    发表于 09-18 14:45 3次下载
    SMBus变得<b class='flag-5'>简单</b>

    PCB打样不简单:这些特殊工艺知道吗?

    在电子产品的设计与制造过程中,印制电路板(PCB)扮演着至关重要的角色。PCB打样,即小批量试产PCB的过程,是电子工程师在设计好电路并完成绘制PCB后,向线路板工厂提交生产请求的关键环节。PCB打样不仅涉及标准的工艺流程,还包含多种特殊工艺,以满足不同设计需求和应用场景。本文将深入探讨PCB打样中的几种特殊工艺,包括金手指处理、阻抗控制、盲孔与埋孔技术、厚
    的头像 发表于 09-18 13:39 1082次阅读
    PCB打样<b class='flag-5'>不简单</b>:这些特殊工艺<b class='flag-5'>你</b>知道吗?

    使用MODE引脚进行简单的恒压调节

    电子发烧友网站提供《使用MODE引脚进行简单的恒压调节.pdf》资料免费下载
    发表于 08-30 10:05 0次下载
    使用MODE引脚进行<b class='flag-5'>简单</b>的恒压调节

    tensorflow简单的模型训练

    在本文中,我们将详细介绍如何使用TensorFlow进行简单的模型训练。TensorFlow是一个开源的机器学习库,广泛用于各种机器学习任务,包括图像识别、自然语言处理等。我们将从安装
    的头像 发表于 07-05 09:38 808次阅读

    简单的C程序设计

    电子发烧友网站提供《最简单的C程序设计.pptx》资料免费下载
    发表于 05-28 16:41 10次下载

    学串口屏可以做什么简单的作品

    学习串口屏(通常指的是通过串行接口(如UART、SPI等)与微控制器通信的显示屏)后,可以制作多种简单的作品。
    的头像 发表于 05-09 10:13 533次阅读
    学串口屏可以做什么<b class='flag-5'>简单</b>的作品

    面包板小技巧: 使用简单的LED来替代逻辑探针

    LED是一个有价值的故障排除工具,特别是在数字电路原型设计时。这篇文章介绍了一种简单的施工技术,可以节省宝贵的时间。
    的头像 发表于 05-09 09:27 1450次阅读
    面包板小技巧: 使用<b class='flag-5'>简单</b>的LED来替代逻辑探针

    简单电源恢复报警电路说明

    最受欢迎的定时器IC NE555再次证明,其应用仅限于用户的独创性。这里显示的简单电源恢复报警电路很简单,其中 IC1以一种特殊的模式接线。
    的头像 发表于 05-05 11:04 646次阅读
    <b class='flag-5'>简单</b>电源恢复报警电路说明

    步进电机的简单介绍

    步进电机的命名,参数,转速简单介绍
    的头像 发表于 04-17 21:40 1323次阅读

    热电阻与热电偶区别与测温原理分析

    热电偶是常见的温度测量元件,热电偶原理比较简单,它直接把温度信号转换成热电动势信号,通过电气仪表转换成被测介质的温度,虽然原理简单,但测量并不简单
    发表于 04-11 11:36 4703次阅读

    鸿蒙HarmonyOS开发实例:【简单时钟】

    通过使用[@ohos.display]接口以及Canvas组件来实现一个简单的时钟应用。
    的头像 发表于 04-10 09:48 1042次阅读
    鸿蒙HarmonyOS开发实例:【<b class='flag-5'>简单</b>时钟】

    压榨辊轴颈磨损修复其实简单

    电子发烧友网站提供《压榨辊轴颈磨损修复其实简单.docx》资料免费下载
    发表于 03-13 15:37 0次下载