什么是I2C总线?

1.什么是I2C?

1.1 I2C的由来

        在电视机内部电路中,众多功能需要用到许多集成电路IC来实现,包括主控器件微控制器和众多外围设备器件。这些器件相互之间要传递数据信息,那么就需要用导线相互连接,如此众多IC器件的互连,势必导致芯片引脚、PCB走线以及连接导线变得数量庞大,错综复杂,这会导致IC芯片体积增大、功耗增大、成本增加,给IC芯片设计制造厂商带来不利影响,同时也给IC芯片应用厂商和应用工程师们造成极大不便。

        1982年,从事电灯泡、电剃刀、电唱机、收音机、电视机等研发制造已久的荷兰飞利浦公司,为解决电视机的上述问题,从而发明了一种集成电路互连通信电路,该电路的优点就是仅用两条线就可以实现芯片之间的互连通信,使硬件电路最简化,硬件效益最大化,给芯片设计制造者和芯片应用者带来极大益处。

        飞利浦公司给这种集成电路互连通信电路命名为Inter-Integrated Circuit,简称为Inter-IC,或I2C(数字“2”为上标)。

1.2 I2C的读法

        在“Inter-Integrated Circuit” 中,“Inter-” 表示“在……之间,相互”的意思;“Integrated Circuit” 简称“IC”,表示“集成电路”的意思。 “Inter-Integrated Circuit”,直接翻译过来就是内部集成电路(DeepL翻译为互联电路,微软翻译为内部集成电路,百度翻译为内置集成电路)。

        在中国正式的书面场合,全称写作Inter-Integrated Circuit,简写Inter-IC或者I^{2}C(英文读作“I squared C”,中文读作“I平方C”)。

 

 2.I2C的特点

  1. 两线制总线:I2C仅使用两条线——串行数据线(SDA)和串行时钟线(SCL)进行通信,有效降低了连接复杂性。
  2. 多主多从设备支持:I2C支持多个主设备和多个从设备连接到同一总线上。每个设备都有唯一的地址。
  3. 可变的时钟速率:I2C总线支持不同的速率模式,如标准模式(100kbps)、快速模式(400kbps)和高速模式(3.4Mbps)。
  4. 同步通信:I2C是一种同步通信协议,数据传输由时钟信号(SCL)来控制。
  5. 简单的连接:I2C通信对硬件的要求比较低,很容易在微控制器和外围设备间实现连接。
  6. 地址分配:每个I2C设备都通过一个7位或10位的地址来识别,这使得总线上可以连接多个设备。
  7. 阻塞传输:I2C支持阻塞传输机制,即主设备可以在传输过程中控制总线,防止其他设备发送数据。
  8. 应用广泛:由于其简单和灵活性,I2C被广泛应用于各种电子产品中,如传感器、LCD显示器、EEPROM等。
  9. 总线仲裁和冲突检测:在多主模式下,I2C能够处理多个主设备同时尝试控制总线的情况。
  10. 低功耗:I2C总线的设计使其成为低功耗的通信方式,适用于电池供电的设备。

3.I2C的物理层

      I2C一共只有两根总线:一条是双向的串行数据线SDA,一条是串行时钟线SCL

  • SDA(Serial data)是数据线,D代表Data也就是数据,Send Data也就是用来传输数据的
  • SCL (Serial clock line)是时钟线,C代表Clock也就是时钟,也就是控制数据发送的时序的

         所有连接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。I2C总线上的每个设备都自己一个唯一的地址,来确保不同设备之间访问的准确性。

 4.I2C的协议层

        I2C总线在传递数据的过程中共有三种类型的信号,它们分别是:开始信号,结束信号,应答信号

  • 开始信号:SCL为高电平,SDA由高电平向低电平跳变,开始传送数据
  • 结束信号:SCL为高电平,SDA由低电平向高电平跳变,结束传送数据
  • 应答信号:接收数据的IC在接收到8bit数据之后,向发送数据的IC发出特定的低电平脉冲,表示已经收到数据。CPU向受控单元发出一个信号之后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。

        这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。

 5.I2C总线的应用场景

        I2C总线的应用场景‌主要包括传感器数据采集、显示屏控制、存储器访问、时钟芯片通信等。

  • 传感器数据采集‌:I2C协议常用于从各种传感器中读取数据,如温度传感器、湿度传感器、压力传感器等。这些传感器通过I2C总线与主控制器通信,实现数据的实时采集和传输。
  • 显示屏控制‌:I2C协议可以用于控制OLED、LCD等显示屏,显示各种信息。通过I2C总线,主控制器可以与显示屏进行通信,实现显示内容的更新和控制。
  • 存储器访问‌:I2C协议可以用于访问EEPROM、FRAM等非易失性存储器,实现数据的存储和读取。这种通信方式使得存储器能够与主控制器进行数据交换,满足数据存储和读取的需求。
  • 时钟芯片通信‌:I2C协议常用于与实时时钟芯片(RTC)通信,获取当前时间和日期。通过I2C总线,主控制器可以与时钟芯片进行通信,实现时间的读取和设置。

        I2C总线的应用场景广泛,主要得益于其简单、双向二线制同步串行总线的特性,使得设备之间的连接和通信变得简单高效。无论是传感器、显示屏、存储器还是时钟芯片,都可以通过I2C总线与主控制器进行通信,实现数据的传输和控制‌。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值