0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

I2C如何解决系统中遇到的实际问题

星星科技指导员 来源:TI 作者:TI 2023-04-08 10:36 次阅读

I2C是使主设备(例如处理器微控制器MCU)或专用集成电路ASIC))能够与同一双线总线上的其它外围设备通信的流行通信协议。一条线专用于数据传输,而另一条用于时钟信号。想象它就像一个双车道公路:每个车道都有汽车从一端流向另一端,就像数据包将从主设备(处理器、MCU、ASIC)传输到外围设备(温度传感器湿度传感器及其它设备)。

那I2C到底是什么呢……现在,为什么要使用它?I2C可以在同一总线上轻松实现多个外设 - 例如,使用各种传感器来监视服务器的温度。I2C协议实际上设计用于在单个总线上支持多个设备,而如串行外设接口(SPI)的其他协议的设计用于点对点单设备支持。双线I2C接口还可以帮助简化对四线SPI接口的布线,并减少通用输入/输出(GPIO)。

TI的用于构建I2C树状图的产品组合可以分为三个功能,如图1所示:缓冲转换器、I / O扩展器和I2C开关。

pYYBAGQw0yKAItdeAAB_sJVSyB0921.png

图1:具有各种I2C功能设备的电子系统

当您的设计在集成电路(IC)之间的长走线和/或电压失配时遇到劣化信号时,I2C缓冲转换器可以帮助您。例如,如果您发现3.3V MCU I2C I / O和5V温度传感器之间存在电压失配,则可以使用I2C电压转换器(如PCA9306)。此外,对于长走线上的相同电压失配,您可使用缓冲转换器(如TCA9617B)来解决输出刷新信号时的电压差。

I2C I / O扩展器顾名思义 - 当选定的处理器无可用端口时,它们会扩展I / O数量,如图2所示。这些设备与标准GPIO扩展器不同,因为它们直接与I2C总线上的设备通信。该组合还提供了多种功能,具体取决于您的特定系统需求,例如通道数、复位引脚和电平转换。

poYBAGQw0yOAEFiFAABwff8Vf_k034.png

图2:微控制器或处理器使用I / O扩展器控制外设

I2C开关可以解决两个不同的问题。第一个问题与地址冲突有关。当同一总线上的两个设备具有相同地址时通常会发生冲突。如果系统在同一I2C总线上有两个温度传感器和两个湿度传感器,所有地址为0xFF - 一个I2C开关可以一次切换到单个传感器;见图3。第二个问题与功耗有关。I2C开关一次只为I2C总线的一部分供电,从而在不使用时保持总线的未使用部分掉电。

pYYBAGQw0ySAEbEPAACWKnxZSaY822.png

图3:具有八个通道的I2C开关示例

起初,互联网搜索将会告诉您,I2C使系统设计人员能够轻松实现鲁棒的系统控制。这一协议不仅有用,而且还具有很多设备功能,可令您的系统受益。您可以使用缓冲中继器、I / O扩展器和I2C开关来增强,扩展并修改I2C总线实现,以满足您的独特设计目标。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19178

    浏览量

    229201
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17019

    浏览量

    350374
  • asic
    +关注

    关注

    34

    文章

    1195

    浏览量

    120348
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1482

    浏览量

    123353
收藏 人收藏

    评论

    相关推荐

    I2C通信开发障碍以及总结

    本文主要讲解的是I2C开发过程中会遇到的坑以及I2C的个人总结经验,很实用,可以i帮助开发人员更好的理解I2C调试。
    的头像 发表于 04-17 16:35 1360次阅读
    <b class='flag-5'>I2C</b>通信开发障碍以及总结

    Linux内核I2C系统的设计思路

    [ 导读] 本文通过阅读内核代码,来梳理一下I2C系统的整体视图。在开发I2C设备驱动程序时,往往缺乏对于系统整体的认识,没有一个清晰的思路。所以从高层级来分析一下
    发表于 09-06 09:40 480次阅读
    Linux内核<b class='flag-5'>中</b><b class='flag-5'>I2C</b><b class='flag-5'>系统</b>的设计思路

    I2C到底能做什么?

    什么?什么类型的设备使用I2CI2C如何帮我解决系统遇到实际问题
    发表于 11-15 07:31

    i2c总线ppt(I2C总线器件应用)

    I2C总线器件应用第一节 I2C总线器件应用概述I2C总线工作原理I2C总线系统结构I2C总线
    发表于 08-13 17:34 0次下载

    I2C总线应用的几个问题

    I2C总线应用的几个问题:i2c上拉电阻阻值的确定,PCB布局布线与抗干扰设计,软件模拟I2C时序,I2C 应用中上拉电阻电源问题。
    发表于 09-13 14:27 51次下载
    <b class='flag-5'>I2C</b>总线应用<b class='flag-5'>中</b>的几个问题

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpleand
    发表于 04-23 13:55 36次下载

    I2C总线在Linux系统的驱动设计

    介绍I2C总线的基本概念和工作原理,叙述I2C总线扩展器件ZLG7290的功能特点。在以S3C2410为微控制器,ZLG7290为I2C总线扩展器件的基础上,介绍通过
    发表于 12-29 16:52 40次下载

    i2c

    单片机i2c总线操作;单片机i2c总线操作;单片机i2c总线操作;
    发表于 05-17 11:09 35次下载

    I2C资料总结

    I2C资料总结及实际问题解析
    发表于 08-16 10:35 2次下载

    I2C总线应用系统设计运用

    I2C总线应用系统设计运用
    发表于 09-22 11:44 10次下载
    <b class='flag-5'>I2C</b>总线应用<b class='flag-5'>系统</b>设计运用

    I2C如何帮我解决系统遇到实际问题

    之间的通信链路。这一解释已经很清楚了,但我还有更多的问题:它究竟是什么?什么类型的设备使用I2CI2C如何帮我解决系统遇到
    的头像 发表于 12-19 16:00 1909次阅读
    <b class='flag-5'>I2C</b>如何帮我解决<b class='flag-5'>系统</b><b class='flag-5'>中</b><b class='flag-5'>遇到</b>的<b class='flag-5'>实际问题</b>

    硬件I2C与模拟I2C

    硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,因而效率要远高于软件模拟的I2C;一般也较为稳定,但
    发表于 12-28 19:14 81次下载
    硬件<b class='flag-5'>I2C</b>与模拟<b class='flag-5'>I2C</b>

    I2C系统SW Architecture

    I2C SW Architecture 【driver 驱动层】由普通驱动工程师负责,【i2c 核心层】由 Linux 提供,【i2c 核心层】以下由芯片原厂负责。 I2C
    的头像 发表于 07-22 16:01 915次阅读
    <b class='flag-5'>I2C</b>子<b class='flag-5'>系统</b>SW Architecture

    何解I2C器件死锁的问题?

    何解I2C器件死锁的问题? I2C总线是一种流行的串行通信协议,在许多嵌入式系统中使用。I2C可以连接多个从属设备到一个主控设备上,简化
    的头像 发表于 09-12 11:18 2333次阅读

    什么是I2C协议 I2C总线的控制逻辑

    实际使用过程中I2C比较容易出现的一个问题就是死锁 ,死锁在I2C主要表现为:I2C死锁时表现为SCL为高,SDA一直为低。
    发表于 03-12 09:17 976次阅读
    什么是<b class='flag-5'>I2C</b>协议 <b class='flag-5'>I2C</b>总线的控制逻辑