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

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

3天内不再提示

浅谈I2C总线,I2C接口和SPI接口的作用相同

Q4MP_gh_c472c21 来源:未知 作者:李倩 2018-03-21 10:24 次阅读

I2C(Inter Integrated Circuit,内部集成电路)总线是价格低廉却很有效的用以互连小规模嵌入式系统内的外设的网络。I2C 总线有时候也叫作 IIC,它已有20多年的历史了。I2C 接口和 SPI 接口的作用相同,但二者的使用方法有些不同。

I2C 总线用两根线来连接多支路总线中的多个设备。这种总线是双向、低速的,并与公共时钟同步。可以直接将一个设备接到 I2C 总线上或是从该总线上取下,而不会影响其他设备。一些生产商比如 Microchip 公司、Philips 公司、Intel 公司等生产的小型微处理器都内置了 I2C 接口。I2C 总线的数据传输率比 SPI 总线要慢一些,在标准模式下的传输速度为 100kbps,在快速模式下为 400kbps。利用 I2C 接口在设备之间进行连接使用的两根线是SDA(串行数据)和SCL(串行时钟),它们都是开漏,通过一个上拉电阻接到正电源,因此在不使用的时候扔保持高电平。使用 I2C 总线进行通信的设备驱动这两根线变为低电平,在不使用的时候就让它们保持高电平。每个连到 I2C 的设备都有一个唯一地址,这个设备可以是数据发送者(总线主机)、接收者(总线从机),也可以二者都是。I2C 是多主机总线,这意味着可以有多个设备充当总线主机的角色。

图1. I2C总线连线图

SDA和SCL都是双向的。SPI 总线有两根单独的线,分别用于两个方向的通信,而 I2C 总线不同,它使用同一根线来完成主机发送数据和接收从机响应。另外,与 SPI 总线具有多个工作模式不同,I2C 总线只有一个工作模式,时钟线 SCL 和数据线 SDA 之间的时序关系很简单直观:当空闲的时候,SDA 和 SCL 都是高电平,只有 SDA 变为低电平,接着 SCL 也变为低电平时,才开始 I2C 总线的数据传输。当 SDA 和 SCL 都变为低电平时,就是告诉总线上的所有接收设备数据包的传输开始了,在 SCL 变为低电平后,SDA 才发送第一个有效数据位,这称为开始条件。对于被传输的每一位,当 SCL 为低电平时在 SDA 上必须变为有效,该位是在 SCL 的上升沿对 SDA 上的数据位进行采样的,也必须一直保持有效直到 SCL 再次变为低电平,然后 SDA 就在 SCL 再次变为高电平之前传输下一位。最后,SCL 变为高电平,接着 SDA 也变为高电平,数据传输结束。这被称为结束条件。

图2. I2C总线传输的开始条件和结束条件

无论多大的数据包都可以通过 I2C 总线进行传输。像 SPI 总线一样,I2C 也是高位先传输。如果数据接收者无法再接收更多的数据,它可以通过将SCL保持低电平来中断传输,这样可以迫使数据发送者等待,直到 SCL 被重新释放。发送方发出的每个字节都必须经过接收方确认,每个字节的第8位数据一旦传送结束,发送方就释放数据线 SDA,然后主机在 SCL 上产生一个额外的时钟脉冲,这会触发接收方通过将 SDA 置为低电平来表示接收到的字节进行确认。如果接收方没有能将 SDA 置为低电平,发送方就会中断传输,并且采取适当的错误处理措施。

图3. 带有接收方确认的I2C数据包

由于 I2C 是多主机总线,因此存在同一时刻会有多个主机试图开始数据传输的可能。SPI 总线使用一个独立的片选端来使接收从机有效,每个 SPI 从机都有一个单独的片选端,由主机驱动。I2C 没有这样的选择机制,不过总线上的每个设备都有一个唯一的地址,数据包传输时先发送地址位,接着才是数据。一个地址字节由7个地址位和1个指示位组成。如果指示位是0,意味着这个传输是一个写操作,被选中的从机将接收数据并将其作为输入;如果指示位是1,就要求从机将数据发送回主机。

I2C 总线还支持一个扩展的10位寻址模式,可连接的外设数量可达1024个,使用7位寻址模式的设备和10位寻址模式的设备可以在同一个系统中混合使用。10位寻址时,使用2个字节来保存地址。如果第1个地址字节以0b11110xx_开始,就会产生一个10位地址,第1个字节的第1、2位(第0位是读写指示位)和第2个字节的8位合起来构成10位的地址。而7位设备将会忽略这个过程。

图4. I2C普通的和带重复开始条件的7位地址格式

图5. I2C总线10位地址格式

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

    关注

    17

    文章

    1705

    浏览量

    91474
  • 总线
    +关注

    关注

    10

    文章

    2876

    浏览量

    88040
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1483

    浏览量

    123568

原文标题:浅谈I2C总线,有时候它也叫 IIC

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

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

    I2C总线接口模块设计

    本实验是基于EasyFPGA030的I2C总线接口模块设计,用EasyFPGA030开发套件通过I2C协议实现对二线制I2C串行EEPROM
    发表于 11-02 17:01 41次下载

    PCA9564 并行总线I2C总线接口芯片简介

    PCA9564是一款采用CMOS工艺,支持并行总线与串行I2C总线通信转换的接口器件,适用于微控制器/处理器使用并行总线扩展
    发表于 03-10 15:47 51次下载

    PCA9665并行总线I2C总线接口芯片简介

    PCA9665是一款并行总线与串行I2C总线接口转换的器件,适用于微控制器/处理器使用并行总线扩展I2C
    发表于 03-10 15:49 46次下载

    什么是i2c总线

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

    基于CPLD的I2C总线接口设计

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

    SPI总线I2C总线工作原理

    SPI总线I2C总线工作原理,本内容详细介绍了SPI总线
    发表于 12-08 16:55 0次下载

    i2c

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

    CAN、I2S、I2CSPI、SSP总线的介绍和比较

    CAN、I2S、I2CSPI、SSP总线的介绍和比较。
    发表于 07-14 16:20 53次下载

    基于I2C接口隔离的应用笔记

    I2C总线是一种双线制双向总线,用于集成电路之间的低速/短速离通信。本应用笔记简要介绍了I2C总线集中于其物理层,讨论了隔离
    发表于 09-21 17:15 9次下载
    基于<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>隔离的应用笔记

    I2C LCD 器件通过驱动带有 I2C 接口2 线式 16 字符 LCD

    I2C LCD 器件通过驱动带有 I2C 接口2 线式 16 字符 LCD
    发表于 10-10 08:22 13次下载
    <b class='flag-5'>I2C</b> LCD 器件通过驱动带有 <b class='flag-5'>I2C</b> <b class='flag-5'>接口</b>的 <b class='flag-5'>2</b> 线式 16 字符 LCD

    基于MCS-51单片机I2C总线接口电路的设计

    在单片机控制系统中,广泛使用I2C器件。如果单片机自带I2C总线接口,则所有I2C器件对应连接到该总线
    发表于 10-15 16:13 3389次阅读
    基于MCS-51单片机<b class='flag-5'>I2C</b><b class='flag-5'>总线</b><b class='flag-5'>接口</b>电路的设计

    基于VHDL硬件的I2C接口并行扩展及接口设计

    I2C总线接口器件在视频处理、移动通信等领域的应用已经非常普遍。另外,通用的I2C总线接口器件,
    发表于 01-20 16:51 2428次阅读
    基于VHDL硬件的<b class='flag-5'>I2C</b><b class='flag-5'>接口</b>并行扩展及<b class='flag-5'>接口</b>设计

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

    I2C总线控制器为微控制器或微处理器提供控制I2C总线接口,它控制所有I2C
    发表于 11-24 14:16 7248次阅读

    i2c接口spi接口区别

    I2C(Inter-Integrated Circuit)和SPI(Serial Peripheral Interface)都是用于设备间通信的串行接口标准。它们在很多方面有着相似之处,但也有一些
    的头像 发表于 12-25 15:02 3958次阅读