跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
捷比信电阻高精密 · 大功率无感 · 金属膜电阻

I2C非常简单,但是很多人不了解其通信原理和协议

注意,星级公共电话,是的,令人兴奋的内容作者:StrongHuang微信公众号:StrongHuang I2C当前正在使用更多的总线,通常用于连接各种设备,例如:EEPROM存储器,温度和湿度传感器,角速度计等待。掌握I2C是最基本的技能,对于那些刚接触工作场所的人来说,有必要系统地学习它。 1. I2C的简要历史1980年,飞利浦开始开发通信总线,以连接各种低速设备(飞利浦芯片)。 1982年,原始版本使用100KHz的通信速率,提供了7位地址,并将总线上的设备数限制为112(有几个保留地址)。 1992年,第一个规范发布,增加了400kHz快速模式和扩展的10位地址空间。 1998年,随着技术的进步,对通信速率的要求越来越高,达到了3.4 MHz的高速,然后又升级到5 MHz,同时使用差分信号来提高抗噪能力。 I2C版本历史:让我谈谈SMBus:1995年,英特尔推出了一个名为“系统管理总线”的变体。 (SMBus)基于I2C。 SMBus是一种受更严格控制的格式,旨在最大程度地提高PC主板上支持IC之间的通信的可预测性。 SMBus之间最显着的区别是它将速度限制在10kHz至100kHz之间,而I2C可以支持0kHz至5MHz的设备。 2. I2CI²C的基本内容:集成电路间,字面意思是集成电路之间,是I²C总线的缩写。 I2C只需要两条线,这两条线最多可以支持1008个从设备来实现同步串行通信。与SPI不同,I2C可以支持多主机和多从机总线。 1. I2C两线信号每个I2C总线由两个信号组成:SCL时钟信号,SDA数据信号。时钟信号始终由当前的总线主控器生成。与UART和SPI不同,I 2 C总线驱动器是漏极开路的(如果您不了解漏极开路,请参考百度),这意味着它们可以将相应的信号线拉低,但不能将其驱动到高电平。每条信号线都有一个上拉电阻,当没有器件将其置于低电平时,信号将恢复为高电平。 2.信号电平通常,I2C总线的信号电平大多为5V和3.3V。如果总线上的设备与这两个级别兼容,则可以直接使用它们。如果信号电压相差很大(例如5V和2.5V),或者电平不兼容,则需要执行电平转换。 3. I2C协议对于初学者来说,I2C的难点是理解协议。让我们从几个简单的角度来讨论它。 1.接收和发送I2C两条总线的基本原理:SCL时钟信号,SDA数据信号。 SCL由主机生成,而SDA由主机或从机生成。 I2C是同步串行通信,它是半双工的,这意味着SDA只能同时由一个设备发送。这样,您会发现SDA上的信号(数据)有时来自主机,有时来自从机。 2.基本协议:7/10位地址I2C支持7位地址和10位地址,消息主要分为地址和数据两种。 7位地址:10位地址:除了地址和数据外,还有开始条件,停止条件,读写和响应信息(上面的小字体中的描述)。 3.从高->启动和停止SDA数据线。总线启动条件低; SDA数据线从低->总线终止条件高; 4.确认(ACK)和非确认(ACK)发生确认和非确认在每个字节之后,接收器向发送器发送确认信号,指示“数据”被发送。已成功接收,可以继续发送下一个数据字节。响应的类型很多,初学者可以参考协议手册,其中有详细介绍。 5.更多协议内容I2C协议手册地址:https://www.nxp.com/docs/zh-CN/user-guide/UM10204.pdf我已经结合模拟I2C代码描述了I2C文章:对I2C的更深入的了解I2C总线,协议和应用程序的推荐读物:模拟电路中常用电阻参数的详细说明。 USB 2.0网络,传输,通信和协议。 GitHub在Git 2.28中促进了主/从名称的更改。关注微信公众号“ strongerHuang”,后台回复“ 1024”。查看更多内容,回复“添加群组”并按规定加入技术交流小组。长按可转到图片中包含的官方帐户以进行后续操作