什么是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总线与主控制器进行通信,实现数据的传输和控制‌。

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/415276.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下cpu多核运行程序以及运行时间统计

一、多核心运行程序 在linux下我们可以指定线程或者进程运行在指定的cpu核心上,操作方法如下: 1)运行进程指定cpu核心 taskset -c 2 ./app //-c指定运行的cpu核心号,从0计数,查看效果如下: 2&#xff09…

两句话讲清楚离线安装docker镜像

两句话讲清楚离线安装docker镜像 文章目录 两句话讲清楚离线安装docker镜像写在前面解决方案 写在前面 背景:银河麒麟、离线环境,装吧,一装一个不吱声。 准备: 首先,你要有个docker,安装好了才能搞镜像是不…

C++:构造函数与析构函数

一.类的默认成员函数 默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数,如下图: 其中最重要的就是我们表格中的前四个函数,本篇文章我们主要介绍前三个。默认成员函数很重要,也比较复杂…

下载xhsell连接Linux系统

一、下载安装xshell 1、下载 免费版的网址:家庭/学校免费 - NetSarang Website 2、安装 选择自己想要下载的文件夹位置 创建一个新的文件夹即可 不想注册可以直接选择后来先进行试用 二、连接Linux虚拟机 1、点击加号新建会话 2、输入你要连接的虚拟机的IP地址…

4、Django Admin对自定义的计算字段进行排序

通常,Django会为模型属性字段,自动添加排序功能。当你添加计算字段时,Django不知道如何执行order_by,因此它不会在该字段上添加排序功能。 如果要在计算字段上添加排序,则必须告诉Django需要排序的内容。你可以通过在…

【综合架构】Part 5.2 Ansible

使用设备:管理设备-m01-10.0.0.61 1 概述 自动化运维工具:可实现批量管理、批量分发、批量执行、维护... Ansible 是由 Python语言 所编写 2 管理架构 Inventory 主机清单:被管理主机的ip列表、分类。ad-hoc模式:命令行批量管理…

迁移学习之领域偏移(domain shift)

实际应用中很多任务的数据的标注成本很高,无法获得充足的训练数据,这种情况可以 使用迁移学习(transfer learning)。假设 A、B 是两个相关的任务,A 任务有很多训练数 据,就可以把从A任务中学习到的某些可以泛化知识迁移…

《信息技术 云计算 边缘云通用技术要求》国家标准发布,九州未来参编

日前,2024年第17号国家标准公告发布,由全国信标委云计算标准工作组组织制定、九州未来作为行业专家单位参编的《信息技术 云计算 边缘云通用技术要求》国家标准正式获批发布。 边缘云作为云计算技术的有效补充和拓展,能够实现将云计算能力拓展…

java常用类

目录 1 String类 1字符串的构造方法: 2.常量池 3 .字符串的比较 1 equals 2 equalsIgnorecase 3.字符串长度: 4.拼接字符串 5.获取单个字符: 6.子字符串的索引(首个) 7.截取字符串 8.将String的转换为数组&…

设计模式 -- 迭代器模式(Iterator Pattern)

1 问题引出 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院, 一个学院有多个系 传统方式实现 将学院看做是学校的子类,系是学院的子类,这样实际上是站在…

服务器数据恢复—如何应对双循环RAID5阵列的数据丢失问题?

服务器存储数据恢复环境: 一台存储中有一组由7块硬盘组建的RAID5阵列,存储中还有另外3块盘是raid中掉线的硬盘(硬盘掉线了,管理员只是添加一块的新的硬盘做rebuild,并没有将掉线的硬盘拔掉)。整个RAID5阵列…

F12控制台输入警告?

信息如下: Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yourself. This could allow attackers to steal your identity or take control of your computer. Please type ‘allow pasting’ below and …

Type-C接口诱骗取电快充方案

Type-C XSP08Q 快充协议芯片是一种新型电源管理芯片,主要负责控制充电电流和电压等相关参数,从而实现快速充电功能。Type-C XSP08Q快充协议是在Type-C接口基础上,加入了XSP08Q协议芯片的支持,很大程度上提升了充电速度。 正常情况…

css实现卡片右上角的状态

1、成品展示 2、html部分 <div class"itemBox"><div class"status">{{ statusList[item.status] }}</div> </div> 3、css部分 .itemBox {position: relative;overflow: hidden; } .status {height: 25px;line-height: 25px;bac…

【实战教程】用 Next.js 和 shadcn-ui 打造现代博客平台

你是否梦想过拥有一个独特、现代化的个人博客平台&#xff1f;今天&#xff0c;我们将一起动手&#xff0c;使用 Next.js 和 shadcn-ui 来创建一个功能丰富、外观精美的博客系统。无论你是刚接触 Web 开发&#xff0c;还是经验丰富的程序员&#xff0c;这个教程都将带你step by…

Linux网络编程 --- Socket编程

前言 首先看看TCP/IP网络协议和在我们计算机系统层次中的对应关系。 socket的位置 网络通信的本质就是贯穿网络协议层的过程。 局域网数据的封装和解包过程 逻辑上我们认为同层协议之间通信 几乎任何层的协议都会提供一种解包和分用的功能。 几乎任何层的协议&#xff…

FPGA实现SDI视频H265压缩网络推流输出,基于VCU架构,支持12G-SDI 4K60帧,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我这里已有的视频图像编解码方案本博已有的 SDI 编解码方案 3、详细设计方案设计框图FPGA开发板视频输入SDI硬件均衡器LMH1219UHD-SDI GT SDI视频解串SMPTE UHD-SDI RX SUBSYSTEM SDI视频解码Video Frame Buffer WriteZynq UltraS…

Apollo Planning模块中的Hybird A*算法

文章目录 流程图OpenSpacePlanner算法与周边模块关系OpenSpacePlanner与PublicRoadPlanner关系Hybird A*流程Hybird A*外部调用入口Hybird A*内部流程 Hybird A*代码逻辑主函数Plan碰撞检测ReedsShepp曲线加速搜索扩展相邻的节点计算节点的代价路径后处理路径分割轨迹平滑&…

android AccessibilityService合法合规增加小红书曝光阅读量(2024-09-02)

免责任声明: 任何可操作性的内容与本人无关,文章内容仅供参考学习&#xff0c;如有侵权损害贵公司利益&#xff0c;请联系作者&#xff0c;会立刻马上进行删除。 一、分析 目前可增加曝光阅读流量渠道入口&#xff08;完成&#xff09; 1. 发现页 打开小红书app选择顶部发现页&…

【网络世界】网络层

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 网络层 &#x1f4c1; IPV4 &#x1f4c2; 什么是IP地址 &#x1f4c2; 网段划分 &#x1f4c2; 特殊IP &#x1f4c2; 内网和公网 &#x1f4c2; IPV4的危机 &#x1f4c1; IP协议格式 &#x1f4c1; 路由 &#x1f…