h1_key

当前位置:首页 >新闻资讯 > 技术文章>I2C基础知识介绍
I2C基础知识介绍
2023-04-24 6025次

  I2C是什么?

  在消费电子和工业电子等领域中,会使用各种类型的芯片,有时需要快速地进行数据交互,为了使用最简单的方式使这些芯片互联互通,于是I2C诞生了。I2C(Inter-Integrated Circuit)是一种通用的总线协议。它是Philips公司半导体事业部(现在的NXP)在80年代初为方便主板、嵌入式系统设计的一种简单、双向二线制同步串行总线。由于其简单性,它被广泛用于微控制器与传感器阵列、显示器、IoT设备、EEPROM等之间的通信。I2C的专利在2006年11月1日已到期,大家可以免费使用。

  对于硬件工程师来说,只需要2个管脚,极少的连接线和面积,就可以实现芯片间的通信,对于软件设计人员来说,可以使用同一个I2C驱动库,来实现不同器件的驱动,大大减少了软件的开发时间。极低的工作电流,降低了系统的功耗,完善的应答机制大大增强了通信的可靠性。



  I2C总线的介绍

  

 

  I2C总线概述

  I2C总线采用两条线路——串行数据(SDA)和串行时钟(SCL)线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址识别,而且都可以作为一个发送器或接收器(由器件的功能决定)。比如,在系统中LCD驱动器只是一个接收器,而存储器则既可以接收又可以发送数据。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时,任何被寻址的器件都被认为是从机。


  I2C总线特点

  ●它是一个支持多器件的总线。在一个I2C通信总线中,可连接多个I2C通信器件,支持多个通信主机及多个通信从机。

  ●SDA和SCL都是双向线路,都通过一个电流源或上拉电阻连接到正的电源电压(见下图),当总线空闲时,两条线路上都是高电平。连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功能。

  ●多个主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个器件占用总线。在I2C总线上产生时钟信号通常是主机器件的责任。当在总线上传输数据时,每个主机产生自己的时钟信号。主机发出的总线时钟信号只有在以下的情况才能被改变:慢速地从机器件控制时钟线并延长时钟信号,或者在发生仲裁时被另一个主机改变。

  


 

  I2C总线基础知识

  I2C总线通信的常识与术语


  常识

  ●多主机总线,如果两个或更多主机同时初始化,数据传输可以通过重提检测和仲裁防止数据被破坏。

  ●串行的8bit双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。

  ●连接到相同I2C总线的器件数量只受到总线的最大电容400pF的限制。

  ●I2C通信的数据以8bit为单位,每次发送完一个数据都要等待接收方的ACK信号。


  术语

  发送器:发送数据到总线的器件。

  接收器:从总线接收数据的器件。

  主机:发送起始/终止信号和时钟信号的器件。

  从机:被主机寻址的器件。

  仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏的过程。

  同步:两个或多个器件同步时钟信号的过程。

  SDA:数据线通信期间,SDA的电平改变只能发生在SCL在低电平期间。

  SCL:时钟线。

  

 


  I2C总线通信中共有以下几种状态

  ●空闲状态:SDA和SCL两条信号线同时处于高电平。

  ●起始状态:SCL为高电平,SDA由高电平到低电平。起始信号由主控器发起,发起前处于空闲状态。

  ●结束状态:SCL为高电平,SDA由低电平到高电平。结束信号由主控器发起,发起后处于空闲状态。

  


 

  有效的数据位传输:

  在I2C总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在SCL串行时钟的配合下,数据在SDA上从高位向低位依次串行传送每一位的数据。

  进行数据传送时,在SCL呈现高电平期间,SDA上的电平必须保持稳定,低电平为数据0,高电平为数据1。只有在SCL为低电平期间,才允许SDA上的电平改变状态。

  应答信号与非应答信号:

  I2C总线上的所有数据都是以8位字节传送的,发送器每发送一个字节,就在第9个时钟脉冲期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平时,规定为有效应答位(ACK简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。对于反馈有效应答位ACK的要求是,接收器在第9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。

  

 

  关于I2C总线的基础知识大概介绍到这里,I2C总线经过这么多年行业应用已非常广泛,下面我们就来聊下大家所关心的I2C总线的应用。


  I2C总线的应用

  I2C总线的主要用途

  用于与显示器件的对接:通过I2C总线,可以使处理器和显示器件之间的交互更加方便与快捷,实现更加智能化的人机交互控制。

  用于外围芯片的接口:I2C总线可以和可编程的外围芯片进行对接,如定时器,继电器和存储器等,可以大大减少数据通信和控制电路的连接线数量,降低系统复杂度,节省成本。

  用于传感器的接口:I2C总线可以实现各种类型的传感器和微处理器或微控制器之间的高速通信,从而可以实现复杂的控制系统,以及实时监测系统状态。

  用于模拟和数字芯片的接口:I2C总线用于主机与模拟和数字芯片之间的数据传输,同时也可以实现外设和外设之间的快速传输,这种链路通信方式有助于满足系统各部分通信协作和控制需求。

  用于系统间的扩展:I2C总线可以连接两个或者更多的系统,实现系统间的快速扩展,避免系统因拓扑结构问题而出现混乱情况。比如:GPIO扩展、电平转换、系统热插拔缓冲等等。


  I2C总线的使用注意事项

  I2C总线不支持多级主机,只支持单级,只有一个主机可以激活总线,这个主机负责控制和管理,总线的数据传输,多个主机存在时,只能有一个处于激活状态,其他主机要进行数据通信时,必须先通知当前主机放权,再等待放权成功后才能激活。

  I2C总线只支持先进先出等单向数据传输,不支持双向数据传输和多级传输。

  主机要保证在总线上传输的数据字节不能超过1024字节。

  在I2C总线中,主机只能改变数据传输的速度,从机只能接受主机传输的数据速度。

  如果使用多根I2C总线时,可以设置不同的总线地址来辨别不同的从机和主机,不同总线之间应尽量避免长度和信号强度两者可能存在差异。如果需要连接多根I2C总线,就需要使用I2C总线纠错技术,确保数据传输的正确性。

 

  • 一文读懂什么是IMU传感器?
  • IMU(惯性测量单元,Inertial Measurement Unit) 是一种用于测量物体运动状态的电子设备,通过组合多种传感器来提供三维空间中的加速度、角速度及姿态信息。
    2025-03-05 472次
  • 一文读懂什么是图像传感器?
  • 图像传感器是一种将光学图像转换为电信号的电子器件,广泛应用于数码相机、智能手机、安防监控、医疗影像、自动驾驶等领域。它是现代成像系统的核心组件,决定了图像的清晰度、色彩还原能力和动态范围等关键性能。
    2025-03-03 101次
  • 一文读懂什么是加速度传感器?
  • 加速度传感器(Accelerometer) 是一种测量物体线性加速度的装置,可检测物体在空间中沿X、Y、Z轴的平移运动(包括静态重力加速度和动态运动加速度)。
    2025-02-26 203次
  • XILINX赛灵思 XC7K160T-2FBG484E
  • 赛灵思(XILINX)作为行业的领军企业,其推出的 XC7K160T-2FBG484E 更是一款备受瞩目的产品。XC7K160T-2FBG484E 属于赛灵思 7 系列 FPGA(现场可编程门阵列),具有强大的性能和丰富的功能。
    2024-09-25 363次
  • XILINX赛灵思 XCKU085-2FLVA1517E
  • 赛灵思(XILINX)作为全球领先的可编程逻辑器件供应商,其推出的 XCKU085-2FLVA1517E 以卓越的性能和丰富的功能,成为众多电子工程师和设计师的首选。XCKU085-2FLVA1517E 属于赛灵思 UltraScale 架构系列产品,采用先进的 20 纳米工艺技术制造。这一工艺不仅带来了更高的性能,还实现了更低的功耗,为各种复杂的电子系统设计提供了理想的解决方案。
    2024-09-25 315次

    万联芯微信公众号

    元器件现货+BOM配单+PCBA制造平台
    关注公众号,优惠活动早知道!
    10s
    温馨提示:
    订单商品问题请移至我的售后服务提交售后申请,其他需投诉问题可移至我的投诉提交,我们将在第一时间给您答复
    返回顶部