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

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

3天内不再提示

i2c总线的组成,及其作用 i2c总线的优点是什么

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-08-07 16:18 次阅读

如果您正在使用OLED显示器,气压传感器陀螺仪/加速度计模块的项目,您可能会发现正在使用I2C总线。

I2C总线简介

I2C结合了SPI和UART的优点。使用I2C,您可以将多个从设备连接到单个主设备上(如SPI),并且可以让多个主器件控制单个或多个从器件。当您希望有多个微控制器记录数据到单个存储卡或将文本显示到单个LCD时,这非常有用。

与UART通信一样,I2C仅使用两条线在设备之间传输数据:

SDA(串行数据) - 主站和从站发送和接收数据的线路。

SCL(串行时钟) - 承载时钟信号的线路。

I2C是一种串行通信协议,因此数据沿着单线(SDA线)逐位传输。

与SPI一样,I2C是同步的,因此位输出通过主机和从机之间共享的时钟信号与位采样同步。时钟信号始终由主机控制。

I2C如何工作

使用I2C时,数据被转换成messages,messages则被分解为数据帧。每条messages都有一个地址帧,其中包含从站的二进制地址,以及一个或多个包含正在传输的数据的数据帧。该消息还包括每个数据帧之间的启动和停止条件,读/写位和ACK / NACK位:

启动条件:在SCL线路从高电平切换到低电平之前,SDA线路从高电平切换到低电平。

停止条件:SCL线路从低电平切换到高电平后,SDA线路从低电平切换到高电平。

地址帧:每个从站唯一的7或10位序列,用于在主站想与之通信时识别从站。

读/写位:单个位,指定主器件是向从器件发送数据(低电压电平)还是从器件请求数据(高电压电平)。

ACK / NACK位:消息中的每个帧后跟一个应答/不应答位。如果成功接收到地址帧或数据帧,则从接收设备向发送方返回ACK位。

地址

I2C没有像SPI这样的从选择线,因此它需要另一种方法让从器件知道数据正在发送给它,而不是另一个从器件。它通过地址来做到这一点。地址帧始终是新消息中起始位之后的第一帧。

主设备将与其通信的从设备的地址发送给与其连接的每个从设备。然后,每个从设备将从主设备发送的地址与其自己的地址进行比较。如果地址匹配,则将低电压ACK位发送回主机。如果地址不匹配,则从器件不执行任何操作,SDA线保持高电平。

读/写位

地址帧在末尾包括一个位,用于通知从设备,主设备是想要向其写入数据还是从主设备接收数据。如果主设备想要向从设备发送数据,则读/写位是低电平。如果主设备向从设备请求数据,则该位是高电平。

数据框架

在主设备检测到来自从设备的ACK位之后,准备好发送第一个数据帧。

数据帧始终为8位长,并以最高有效位先发送。紧接着每个数据帧的ACK / NACK位以验证帧已被成功接收。在发送下一个数据帧之前,主机或从机必须接收ACK位(取决于发送数据的人)。

在发送了所有数据帧之后,主设备可以向从设备发送停止条件以停止传输。停止条件是SCL线上从低电平到高电平转换后,SDA线上从低电平变为高电平,SCL线保持高电平。

I2C数据传输步骤

1.主机向每一个连接的从设备发送数据,然后将SDA信号从高切换到低,之后在将SCL从高切换到低电平。

2.主设备向每个从设备发送它想要与之通信的从设备的7或10位地址,以及读/写位:

3.每个从设备将主设备发送的地址与其自己的地址进行比较。如果地址匹配,则从器件通过将SDA线拉低一位来返回ACK位。如果主设备的地址与从设备的地址不匹配,则从设备将SDA线保持为高电平。

4.主设备发送或接收数据帧:

5.在传输了每个数据帧之后,接收设备将另一个ACK位返回给发送方以确认成功接收到该帧:

图片.png

6.要停止数据传输,主机通过在将SDA切换为高电平之前切换SCL为高电平来向从机发送停止条件:

有多个从设备的单一主设备

由于I2C使用寻址,因此可以从单个主设备控制多个从设备。使用7位地址,可以使用128(27)个唯一地址。使用10位地址并不常见,但提供1,024(210)个唯一地址。要将多个从器件连接到单个主器件,请像这样连接它们,使用4.7K欧姆上拉电阻将SDA和SCL线连接到Vcc:

有多个从设备及多个主设备

多个主设备可以连接到单个从设备或多个从设备。当两个主设备尝试通过SDA线同时发送或接收数据时,同一系统中出现多个主设备的问题。为了解决这个问题,每个主设备需要在发送消息之前检测SDA线路是低还是高。如果SDA线为低电平,则表示另一个主控制器已控制总线,主控制器应等待发送消息。如果SDA线路很高,那么传输信息是安全的。要将多个主设备连接到多个从设备,请使用下图,使用4.7K欧姆上拉电阻将SDA和SCL线路连接到Vcc:

I2C的优点和缺点

与其他协议相比,I2C听起来很复杂,不容易在程序中实现而导致数据丢失、无应答、“死等”等问题。但却有很多优点:

优点

只使用两根电线

支持多个主服务器和多个从服务器

ACK / NACK位确认每个帧都已成功传输

硬件没有UART那么复杂

众所周知且广泛使用的协议

缺点

数据传输速率比SPI慢

数据帧的大小限制为8位

实现比SPI更复杂的硬件
责任编辑:彭菁

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

    关注

    2550

    文章

    51067

    浏览量

    753301
  • 显示器
    +关注

    关注

    21

    文章

    4976

    浏览量

    139956
  • 存储卡
    +关注

    关注

    0

    文章

    252

    浏览量

    28192
  • I2C总线
    +关注

    关注

    8

    文章

    390

    浏览量

    60923
  • 接收数据
    +关注

    关注

    0

    文章

    7

    浏览量

    6079
收藏 人收藏

    评论

    相关推荐

    i2c总线介绍

    I2C介绍   I2C总线是两线式串行总线。    I2C总线
    发表于 08-13 17:29 0次下载

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

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

    i2c总线的特点

    i2c总线的特点:2 I2C 总线使设计人员和厂商都得益.. 3 2.1 设计人员的得益.. 4 2.2 厂商的得益. 5
    发表于 08-05 09:05 26次下载

    I2C总线协议及其应用(图)

    I2C总线协议及其应用
    发表于 06-01 20:22 7029次阅读

    i2c总线

     I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
    发表于 09-20 10:06 1226次阅读
    <b class='flag-5'>i2c</b><b class='flag-5'>总线</b>

    什么是i2c总线

    什么是i2c总线  下载请点击: i2c总线协议中文版 
    发表于 11-05 09:26 2921次阅读

    并口模拟I2C总线的设计

    并口模拟I2C总线的设计 试验目的:认识计算机并口和I2C总线,用计算
    发表于 09-11 10:31 4210次阅读
    并口模拟<b class='flag-5'>I2C</b><b class='flag-5'>总线</b>的设计

    I2C总线协议及其应用

    I2C总线协议及其应用 一、I2C总线介绍: ---- 由于大规模集成电路技术的发展,在单个芯片集成CPU以及
    发表于 02-08 11:23 1568次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>协议<b class='flag-5'>及其</b>应用

    I2C总线详解

    I2C总线定义  I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控
    发表于 06-30 11:09 3836次阅读

    基于CPLD的I2C总线接口设计

    在电路设计中,I2C总线是比较常用的两线式串行通信方式,大多数的CPU都擅长于并口操作,不具备直接操作I2C总线接口的能力。为了使不具备I2C
    发表于 02-12 16:11 95次下载
    基于CPLD的<b class='flag-5'>I2C</b><b class='flag-5'>总线</b>接口设计

    基于51的I2c总线

    I2c总线,基于51的I2c总线,程序学习。快来下载学习吧
    发表于 01-13 11:49 34次下载

    i2c

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

    i2c总线用来做什么_i2c总线数据传输过程

    I2C总线控制器为微控制器或微处理器提供控制I2C总线的接口,它控制所有I2C总线的特殊序列、协
    发表于 11-24 14:16 7270次阅读

    I2C总线的基本通信总结

    在电子设计开发中I2C大家已经很熟悉了,每一种电子产品小到电子开关,大到卫星通信都会利用的I2C总线。据统计I2C在电子产品中占据了93%的份额,几乎任何一种电路都要使用。
    的头像 发表于 08-26 14:08 1.8w次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>的基本通信总结

    I2C串行总线协议是什么?I2C总线有哪些优点

    I2C串行总线协议是什么?I2C总线有哪些优点I2C(Inter-Integrated Ci
    的头像 发表于 09-12 11:18 1655次阅读