【原创】【I2C】I2C介绍

article/2025/11/7 4:06:23

                            

一、这是个什么玩意

I2C首先它也是一个通信接口,同理通信接口就是用于模块之间的通信的,同SPI接口学习思路一样,首先明白它是一个接口,然后再扣它是一个怎么样的接口。

I2C(Inter-Integrated Circuit)总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息(当然设备必须得支持I2C接口)。具体在应用的时候总线上的设备节点分为主机和从机两种角色。

在物理上传统标准的I2C接口定义:

除去地线外,人们常说的只有两根线:SDA和SCL,SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线。

下面部分内容参考百度百科https://baike.baidu.com/item/I2C%E6%80%BB%E7%BA%BF/918424?fr=aladdin

接口电路为开漏输出.需通过上拉电阻接电源VCC.当总线空闲时.两根线都是高电平,连接总线的外同器件都是CMOS器件,输出级也是开漏电路.在总线上消耗的电流很小,因此,总线上扩展的器件数量主要由电容负载来决定,因为每个器件的总线接口都有一定的等效电容.而线路中电容会影响总线传输速度.当电容过大时,有可能造成传输错误.所以,其负载能力为400pF,因此可以估算出总线允许长度和所接器件数量。

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

(1)由于 SDASCL 为漏极开路结构,借助于外部的上拉电阻实现了信号的线与逻辑; 
2)引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致。为 时钟同步总线仲裁提供硬件基础。


参考结束,感谢。

I2C标准连接如下图:

模拟I2C与硬件I2C有什么区别

     原理上:硬件I2C(提供专门的SDA,SCL)的时钟是系统产生的,一般由晶振分频产生。模拟I2C通过编程模拟时钟线和数据线。

     控制上:硬件I2C过硬件中断实现各种操作。模拟I2C没有中断的概念,通过IO口电平置高置低来实现写入和读取。

     性能上:硬件模式更高效更稳定。

硬件I2C比软件I2C速度快很多,占用时间也少,并且硬件I2C使用简单,只需要将数据送到指定寄存器就可以了,不需要自己实现时序。

除了上述基本模式(串行的8位双向数据传输位速率在标准模式下可达100Kbit/s)外,快速模式下可达400Kbit/s,高速模式下可达3。4Mbit/s。这两种模式在硬件电路和软件协议上都有变化,这里就不展开说了,具体可以参考百度百科https://baike.baidu.com/item/I2C%E6%80%BB%E7%BA%BF/918424?fr=aladdin

二、有毛用啊

上面其实也说过了,就是为了通信........,同样道理,既然是通信肯定也要遵循一定得协议标准才行,否则双方听不懂对方说的“话”。

三、怎么用啊

其实谈及怎么用,主要是I2C总线协议,该协议内容相对比较多,但并不是特别复杂,本文主要概括的讲解下常用到的地方,针对大部分嵌入式软件开发者涉及到的部分协议。具体详细协议内容可以参考https://wenku.baidu.com/view/79bd6a87bceb19e8b8f6ba68.html百度文库。

接下来说的都是协议,不要问为什么是这样的,我也不知道,只需要知道是这样的以及怎么用就行了。

首先连接在总线上的节点设备有两种角色:主机模式和从机模式。同一时刻只能有一个节点处于主机模式,其他节点处于从机模式。总线上数据的传送都是有主机发起。I2C总线是没有片选信号线的,所以也得通过协议来找到对应操作的芯片。主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送。

I2C数据传输基本过程:

     1.主机首先发送开始信号

     2.主机紧接着发送从机地址信息(一个字节),该字节信息中的最低位为读写控制码:1为读、0为写。高7位为从机设备的器件地址

     3.从机然后发出确认信号

     4.主机开始发送信号数据,每当发完一个字节数据后,从机设备给主机发送确认信号

     5.主机最后发送停止信号

start开始信号:在SCL时钟线为高电平时,SDA数据线由高变低,产生一个开始信号。

stop停止信号:在SCL时钟线为高电平时,SDA数据线由低变高,产生一个停止信号。

ACK确认信号:当主机写从机设备时,每次写完一个字节,如果数据正确从机设备将在下一个时钟周期将数据线拉低,来通知主机操作有效。当主机读从机设备时,每次正确读完一个字节后,主机在下一个时钟周期同样也要将数据线拉低,发出确认信号,来通知从机所发数据已经收到

总之,SCL信号线必须由主机发送。

注:在读从机设备时,当主机在最后一个字节数据接收完后,不在发确认信号,直接发送停止信号。

还有就是任何时候在SCL时钟线为高电平的时候,SDA数据线上的电平变化都被认为是起始信号和停止信号,所以数据的改变必须要在时钟为低电平时改变。

I2C数据格式:

有两种寻址数据格式:7bit和10bit格式。还有一种重复开始信号寻址格式。如下图所示

下面是是I2C的读写流程:

I2C写操作寄存器的流程是:
1、主机发送START开始信号
2、主机发送从机设备地址信息(I2C addr(7bit)和w操作0(1bit)),等待ACK确认信号
3、从机发送ACK确认信号
4、主机发送寄存器地址信息(reg addr(8bit)),等待ACK确认信号
5、从机发送ACK确认信号
6、主机发送数据(8bit),即也是要写入寄存器中的数据,等待ACK确认信号
7、 从机发送ACK确认信息
8、其中第4步到第7步可以重复多次,即顺序操作写多个寄存器
9、主机发起STOP停止信号

I2C读操作寄存器的流程是:

1、主机发送START开始信号
2、主机发送从机设备地址信息(I2C addr(7bit)和w操作0(1bit)),等待ACK确认信号
3、从机发送ACK确认信号
4、主机发送寄存器地址信息(reg addr(8bit)),等待ACK确认信号
5、从机发送ACK确认信号
6、从机发送数据(8bit),即寄存器里的值
7、主机发送ACK确认信号
8、第4步到第7步可以重复多次,即顺序读多个寄存器

以上通讯流程模拟I2C跟硬件I2C都类似,不同的地方是读写:

下面的代码是模拟I2C发送数据:

void I2C_WriteCmd(unsigned char cmd)
{
     unsigned char i=8, temp=0;
    for(i=0;i<8;i++) //发送一个八位数据
    {
        管脚拉低;
        temp = cmd&0x80;
        if (temp == 0)
        {
            管脚拉低;
        }
        else
        {
            管脚拉高;
        }  
        管脚拉高;
        cmd<<=1;     
    }
}

上面是通过时钟线SCL和数据线SDA的高低电平来传入数据

而硬件I2C直接通过TXBUF 来发送

补充一点,主机对从机的读写是通过设备地址信息中的一bit位来实现的,简单说下I2C设备地址。

具体格式如下: 
  B7 D6 D5 D4 D3 D2 D1 D0
1、器件类型由:D7-D4 共4位决定的。这是由半导公司生产时就已固定此类型的了,也就是说这4位已是固定的。
2、用户自定义地址码:D3-D1共3位。这是由用户自己设置的,通常的作法如EEPROM这些器件是由外部IC的3个引脚所组合电平决定的(用常用的名字如A0,A1,A2)。这也就是寻址码。
所以为什么同一IIC总线上同一型号的IC只能最多共挂8片同种类芯片的原因了。
3、最低一位就是R/W位。
每个器件都有唯一的地址。

四、成为大神的用法
1、了解仲裁机制,这部分可以参考https://blog.csdn.net/u010027547/article/details/47779975,感谢。
2、学习I2C协议
3、掌握硬件相关电路原理
4、待续







http://chatgpt.dhexx.cn/article/75ywC8CW.shtml

相关文章

I2C接口

一、I2C总线协议内容 1. I2C总线引脚定义 SDA (I2C数据引脚) CLK (I2C数据引脚) 2. I2C总线物理连接 I2C总线物理连接如下图所示&#xff0c;SDA和CLK连接线上连有两个上拉电阻&#xff0c;当总线空闲时&#xff0c;两根线均为高电平。连到总线上的任一器件输出的低电平&am…

“如何成为阿里云P8架构师?“ ”当然是考取阿里云新版ACE认证啊”

**简介&#xff1a;**阿里云新版云计算架构师ACE认证全面重构上线&#xff01;为建立云计算生态领域含金量第一的专家级人才标准和认证体系&#xff0c;影响泛云生态高层次技术人才&#xff0c;阿里云历时一年&#xff0c;组织近百位专家&#xff0c;对云计算架构师ACE认证进行…

阿里云认证(ACA/ACP/ACE)的分类以及官网价格

阿里云认证分类&#xff1a; 阿里云认证分为三个等级&#xff0c;分别为初级(ACA)、中级(ACP)、高级&#xff08;ACE&#xff09; 下面还有很多的子分类 在子分类中&#xff0c;云计算是认证中最受欢迎的&#xff0c;无论是ACA云计算&#xff0c;还是ACP云计算&#xff0c;都…

阿里云ACA、ACP、ACE认证考试区别,报名入口及模拟试题分享

阿里云认证考试包含ACA、ACP、ACE三种认证类型&#xff0c;是阿里云针对不同产品类别、用户成长阶段、生态岗位&#xff0c;精心打造不同的认证考试。获得阿里云认证考试证书能够基于阿里云产品解决实际问题。获得更多阿里云生态下的就业机会。 助理工程师&#xff08;ACA&…

成为阿里云架构师的进阶之路——阿里云首批ACE认证通过者逸疏专访

自2018年3月阿里云发布云计算架构师ACE(Alibaba Cloud Certified Expert,阿里云认证高级工程师)级别认证后,上线不到3个月,吸引了近百位业界优秀从业者参与考试。获得阿里云ACE认证,对于业界资深架构师来说,是自身实力的最好证明。 阿里云大学致力于培养云生态链路上的…

阿里云P8架构师|历时4个月1次通关ACE认证

李东是我在阿里云厂商这边了解到第一个自学通过ACE认证P8架构师&#xff0c;现将他学习考证记录分享给大家 写在前面&#xff1a; 我是来自阿里云数字政府行业线的解决方案架构师李东。 2022年3月28日阿里云发布了新版ACE&#xff08;Alibaba Cloud Certified Expert - Cloud…

阿里云新版云计算架构师ACE认证专家解读会重磅来袭

简介&#xff1a;专家命题人非常解读 9600元全额代金券限量发放&#xff01;活动钉群&#xff1a;31889256。 3月28日&#xff0c;阿里云新版云计算架构师ACE认证正式升级发布&#xff0c;面向云架构师、解决方案架构师、资深运维/交付等人群&#xff0c;提供技术能力认证。自升…

通过新版阿里ACE认证,实验操作题你来解一下

大家都知道了哈&#xff0c;阿里云新版ACE认证&#xff0c;现在是云认证界的塔尖位置&#xff0c;因为要成功拿到新版ACE认证&#xff0c;需要破关斩将&#xff0c;三个守门的将&#xff0c;分别是笔试&#xff0c;实验操作&#xff0c;以及面试 1&#xff0c;笔试 相对实验操…

为什么我不建议在阿里云官网报考ACP/ACE认证?

考acp的时候刚开始以为直接在阿里云官网寻找课程备考报名就可以了,官方提供的课程应该没有问题,但是实际学习的时候发现,官方提供的内容虽然涵盖了大部分知识点,但是由于缺少对应的学习服务,学习效果上总是差强人意。 除了学习效果意外,再就是两个更重要的原因,贵且麻烦…

阿里云ACA、ACP、ACE认证考试常见问题

阿里云专业技术认证包含&#xff1a; 阿里云Apsara Clouder技能认证 阿里云助理工程师认证ACA级别&#xff08;Alibaba Cloud Certified Associate&#xff09; 阿里云专业工程师认证ACP级别&#xff08;Alibaba Cloud Certified Professional&#xff09; 阿里云基于岗位的…

阿里云的ACP认证与ACE认证含金量高吗?

该文章详细的介绍了阿里云认证。 云计算ACP认证介绍&#xff1a; 阿里云云计算专业认证(ACP 级-Alibaba Cloud Certification Professional)是面向使用阿里云云计算产品的架构、开发、运维类人员的专 业技术认证&#xff0c;主要涉及阿里云的计算、存储、网络、安全类的核心…

阿里云认证未来网络学院ACE公开课——30分钟掌握ACE考试通关攻略

简介&#xff1a;新版ACE通关攻略&#xff0c;这4点经验&#xff0c;帮你斩获高分&#xff01;入群即赠价值3000元ACP全套线上课资料包&#xff01;公开课钉群&#xff1a;44832770。 新版ACE通关攻略&#xff0c;这4点经验&#xff0c;帮你斩获高分 阿里云云计算架构师 ACE 认…

技能证里的天花板-阿里云云计算架构师ACE认证将全面升级!

近年来&#xff0c;随着国内数字化实践的不断深化&#xff0c;中国企业上云意识和积极性明显提高&#xff0c;上云比例和应用场景深度有所提升。根据亿欧智库2022年2月发布的《2021中国公有云服务商能力指数研究报告》指出&#xff1a;随着数字经济和新技术的发展&#xff0c;预…

阿里云ACE认证介绍

01-阿里云ACE认证概述 阿里云云计算架构师ACE认证是针对云架构师&#xff0c;解决方案架构师&#xff0c;云运维专家等技术人员的阿里云高级别技术认证。 通过该技术认证可以有效证明该认证人员具备丰富的需求分析能力&#xff0c;云架构设计能力&#xff0c;云架构部署实施能…

运营商大数据中建模到底是什么意义?

建模字面意思不难理解&#xff0c;就是通过不同企业的特殊需求来建立不同的数据采集模型&#xff01;前面我们说过运营商大数据具备T1的时效性和超前的准确性&#xff0c;之所以它具备这两点特性完全是因为运营商大数据的建模方式&#xff01; 第一种建模方式&#xff1a;网址和…

三网运营商大数据如何实现精准获客,稳定客户资源获取平台

在过去&#xff0c;对众多企业来说&#xff0c;销售获客的方法大多是来自于一些地推或者电话营销&#xff0c;然而在如今的时代&#xff0c;人们在线上获客已经成为常态&#xff0c;让获客的方式也有了更多的可能性&#xff0c;企业想在激烈的竞争中突出重围&#xff0c;就需要…

销售业绩迅速提升10倍的秘诀——运营商大数据精准

销售行业备受关注的焦点无非就是业绩&#xff0c;在互联网时代&#xff0c;你有没有感觉到企业的传统销售模式获客越来越艰难。有时候时间浪费了不说&#xff0c;还毫无效果&#xff0c;那今天我们来讲一下如何短时间之内让你的销售业绩提升十倍呢&#xff0c;必须跟得上大数据…

运营商大数据 | 打造新型获客模式 破除流量困局

大师彼得.德鲁克曾说&#xff0c;“企业存在的唯一目的就是创造顾客。” 互联网时代&#xff0c;维系企业存在的一大动力&#xff0c;就是流量&#xff0c;创造流量&#xff0c;无疑等于是创造顾客。 时下企业竞争的关键&#xff0c;也就是流量的竞争&#xff0c;在生产、销售…

运营商大数据是什么?

​ 1.以联通大数据为代表的运营商大数据&#xff0c;可以通过网站&#xff0c;网页&#xff08;同行的网站&#xff0c;自己的竞价推广网站&#xff0c;网页均可&#xff09;手机APP,400电话/固话&#xff0c;可以通过建模进行用户画像建立和分析&#xff0c;分析使用在手机和使…

【数方大数据】什么是三网运营商大数据精准获客?

【数方大数据】什么是三网运营商大数据精准获客&#xff1f; 三网运营商大数据是近两年来行业营销的有效手段。它主要是根据运营商的终端用户数据和企业的一些特点&#xff0c;达到准确获取客户、精准营销的目的。在中国&#xff0c;移动、联通和电信拥有超过10亿的用户。现在&…