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

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

3天内不再提示

使用最少引脚的多设备通信

星星科技指导员 来源:嵌入式计算设计 作者:Jeremy S. Cook 2022-06-27 15:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

I 2 C 也经常拼写为 I2C,并且(很少)扩展为完整的“内部集成电路”绰号,是飞利浦半导体(现为 NXP)于 1982 年发明的设备到设备通信协议。

从那时起,I2C 一直用于计算设备及其外围设备之间的通信,并且自 2006 年 10 月 6 日起,它可以免费实施,无需支付任何许可费用。

该系统使用起来非常简单,只需要两个或多个设备之间的 SDA(串行数据)和 SCL(串行)时钟线,以及一个上拉电阻器以保持线路正常高电平。在最基本的用法中,您可能有一个 I2C 设备,例如 Arduino 板,充当主设备(控制器),而单个从设备(外围设备)设置为在发出请求时发出信号甚至发回数据。

我已经在许多设置中使用此接口进行基本的一对一通信——例如我的JC Pro Macro 计算机输入设备上的显示——但实际上大量设备可以使用单个总线来传递消息。 该协议包括一个寻址字节,随后传输附加数据。128 个设备通常可以通过 7 个寻址位来访问,因为第 8 位用于指示是否要启动读取或写入操作。

这是对协议工作原理的非常详细的介绍,如果您想深入了解,TI 在此处更深入地解释了详细信息。通过 i2c-bus.org还可以获得大量信息。从概念的角度来看,这是一项有趣的技术,但如果您只是想让事情正常运行,好消息是使用它的许多细节都可以通过预先编写的库来处理。

为什么选择 I2C?

如前所述,I2C 的最大优势在于其接线简单,同时仍允许在多个设备之间进行通信。另一种选择是 SPI,它速度更快,能够进行一对多传输,但需要四根线。RS-232 就其本身而言,甚至比 I2C 更简单,因为它不需要上拉电阻,但只能进行一对一通信。值得注意的是,许多 I2C 设备已经包含上拉电阻,因此在这种情况下,您甚至不必添加额外的组件。

人们可能还听说过TWI(双线接口)和SMBus(系统管理总线)这两个术语,它们都是 I2C 的子集。I2C 横幅中还有多种样式,具有不同的功能,包括 8 位和 10 位寻址方案以及从 100kbit/s 到 3.2Mbit/s 的时钟速度。好消息是,经过 39 年的开发和标准化,如果你有一个类似 I2C 的设备,并且你把它扔到总线上,它很有可能会工作。在基于 Arduino 的系统的上下文中,传输是通过预定义引脚上的Wire 库处理的,这使得这更加简单。

Arduino I2C 示例

如上图所示,JC Pro Macro 2可以在其 I2C 引脚上安装 OLED 显示器以获取用户反馈,这些引脚从其“Arduino” Pro 微控制器上的引脚 2 (SDA) 和 3 (SCL) 断开。此处的设置主要是从 Adafruit ssd1306 库示例中复制/粘贴的。我设计了这个设备,我必须做的一个更改是将第 36 行从 0x3D 更改为 0x3C,因为我使用的 eBay 购买的屏幕地址与Adafruit 销售的不同。

poYBAGK5XqSAXGp0AADXCgBm1uc924.png

在研究本文时,我将 Adafruit 示例代码(地址更改)直接加载到控制我的键盘的 Pro Micro 上。没有任何进一步的修改,它开始在屏幕上显示 Adafruit 示例。请注意,上面显示的代码中的第 35 行不是问题,即使我没有连接复位引脚。不管是不是这个结果,在开发板重置后似乎确实需要一段时间才能重新开始工作,但这通常不是什么大问题。如前所述,如果您的地址正确,一切似乎都可以正常工作。

I2C 扫描仪:轻松获取正确的 I2C 地址

pYYBAGK5Xq2AcY9HAAF8z3r0lTk737.png

如果您没有正确的地址,一切都不会丢失,并且您不必在在线论坛上闲逛和/或猜测。使用这款 Arduino I2C 扫描仪实际上很容易找到。要安装,只需在 Arduino IDE 库管理器中搜索i2c 扫描仪。将执行示例代码加载到您的开发板上并打开您的串行监视器。如果您有任何 I2C 设备连接到您的 Arduino,它们的地址将通过串行监视器显示。这是一个肯定可以节省大量挫败感的工具!

可以用了!

虽然这个简短的概述应该让您开始您的 I2C 之旅,但仍有大量的设备和技术可供探索。I2C 是一种在设备与设备之间以合理速度进行通信的好方法,适用于许多应用程序,同时使用最少的 GPIO 引脚。

审核编辑:郭婷

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

    关注

    22

    文章

    5130

    浏览量

    143640
  • 开发板
    +关注

    关注

    25

    文章

    6122

    浏览量

    113286
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195959
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    车间设备 “各自为战”?协同管理系统让产能提 15%

    制造业的竞争早已从 “拼产能” 转向 “拼效率”。车间设备并非孤立的 “生产工具”,而是需要协同的 “作战单元”。协同管理系统的核心,就是用数据打通信息壁垒,用智能替代经验判断,让设备
    的头像 发表于 11-28 09:52 128次阅读
    <b class='flag-5'>多</b>车间<b class='flag-5'>设备</b> “各自为战”?协同管理系统让产能提 15%

    米尔 SECC 方案:国标充电桩协议兼容的通信基础解析

    连接。在充电桩内部,SECC(供电设备通信控制器)是实现跨协议通信的核心模块。本文将说明协议体系的关键点,并呈现米尔 SECC 在跨协议适配中的作用。 ISO 15118充电协议架构
    发表于 11-20 17:46

    PLC联网有什么通信设备

    模块 :PLC传统有线通信的核心设备,适用于短距离数据传输。RS232模块支持点对点通信,RS485模块则支持设备组网,通过总线结构实现P
    的头像 发表于 11-10 17:54 398次阅读

    设备出现通信问题的概率大吗?

    设备出现通信问题的概率并非固定值,而是受 “通信链路类型(有线 / 无线)、应用场景(工业 / 民用)、设备老化程度、设计安装规范度、干扰源强度” 等
    的头像 发表于 09-25 14:08 384次阅读
    <b class='flag-5'>设备</b>出现<b class='flag-5'>通信</b>问题的概率大吗?

    基于USB的虚拟设备通信

    接口性能使MCU不仅能够处理典型的设备/主机通信,还可以通过USB虚拟化多个设备或数据通道。这一特点有效满足了各种应用的多样化需求。 USB 虚拟复合
    发表于 09-05 06:51

    芯片引脚成型设备与芯片引脚整形设备的区别

    在电子制造领域,芯片引脚成型设备和芯片引脚整形设备是两种重要的工具,它们在功能和应用场景上存在显著区别。了解这些区别有助于企业选择合适的设备
    发表于 07-19 11:07

    大展宏图,Canopen转profinet网关利用无缝集成技术搞定设备通信

    在当今制造业领域,设备之间的高效通信已经成为提升生产效率的关键。在我们最近的项目中,客户需要实现西门子S7-1200 PLC与多种CANopen设备(例如电动门控伺服电机和传感器)之间的无缝集成。
    的头像 发表于 06-28 15:04 454次阅读
    大展宏图,Canopen转profinet网关利用无缝集成技术搞定<b class='flag-5'>多</b><b class='flag-5'>设备</b><b class='flag-5'>通信</b>

    设备联动,canopen转Ethercat网关设备接入国产 PLC 控制系统方案落地

    设备联动,canopen转Ethercat网关设备接入国产 PLC 控制系统方案落地
    的头像 发表于 06-12 17:39 536次阅读
    <b class='flag-5'>多</b><b class='flag-5'>设备</b>联动,canopen转Ethercat网关<b class='flag-5'>设备</b>接入国产 PLC 控制系统方案落地

    通道频率计模块优势与应用场景

    通信基站环境中,存在着多个不同频率的射频信号,通道频率计模块可以同时捕获并测量这些信号的频率,大大提高了测量效率。这种并行测量的特性,使得在面对大量信号需要快速测量频率的场景下,通道频率计模块能够
    发表于 06-12 16:16

    ESP32-C6 智能网关设备WiFi6高性能通信应用

    Matter Wi-Fi终端设备和Matter Thread终端设备,实现系统、平台智能家居设备的无缝
    发表于 05-30 13:54

    【技术】数传电台如何实现一对通信

    数传电台(DataRadio)是一种用于无线数据传输的设备,广泛应用于工业自动化、远程监控、智能交通等领域。在许多应用场景中,单个主站需要与多个从站进行数据交互,即一对通信。本文将探讨数传电
    的头像 发表于 05-22 19:32 771次阅读
    【技术】数传电台如何实现一对<b class='flag-5'>多</b><b class='flag-5'>通信</b>?

    如何实现通信级PCB的超低噪声?捷邦的技术路径揭秘

    在现代通信设备设计中,PCB的噪声控制已成为影响系统性能的关键因素。作为专业的PCB制造商,捷邦通过多年的技术积累,为通信行业提供了可靠的超低噪声PCB解决方案。
    的头像 发表于 04-07 10:34 583次阅读

    请问ADS1247和单片机接口最少可以用几根线完成?

    我最近要使用到AD1247,通过SPI接口和单片机接口,由于单片机IO数量的限制以及隔离芯片数量,和成本的限制,我想请问ADS1247和单片机接口最少可以用几根线完成,只用SCK,SDO,SDI
    发表于 02-13 07:22

    设备协议采集平台加网关如何打造物联网系统

    与目标,包括需要接入的设备类型、数量、通信协议、数据处理需求、安全要求以及预期的应用场景等。这将为后续的系统设计与选型提供明确的方向。 二、选择设备协议采集平台 ‌协议兼容性‌:选择
    的头像 发表于 01-13 09:38 703次阅读

    线示波器的原理和应用领域

    。工程师可以使用线示波器来测量和分析电路中的电压、电流和频率等参数,以确保电路的正常工作。此外,它还可以用于测试电子设备的性能和可靠性,为产品的研发和生产提供重要的技术支持。 通信技术:在
    发表于 01-07 15:34