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

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

3天内不再提示

I2C基本的传输方式知识整理

Q4MP_gh_c472c21 来源:未知 作者:李倩 2018-05-25 15:09 次阅读

I2C是inter-integrated circuit的缩写,又名为TWI,只需要用两条物理线进行传输,分别命名为SDA和SCL,用于传输serial data和serial clock。I2C工作时分为主从工作模式,而在同总线上可以存在多个主机。每一个连接到总线的器件都可以通过唯一的地址与总线连接,主机控制主机为发送器模式或是接收器模式。多个主机控制时可以通过冲突检测和仲裁防止数据被破坏。I2C总线有几种不同速率的工作模式,标准模式的速率为100kbps,快速模式下速率为400kbps,在高速模式下速率可达到3.4Mbps。整理下I2C基本的传输方式。

数据发送过程

发送从起始到结束为一次完整发送过程,如图所示一次完整的发送过程,起始后先发送地址信息,R/W表示写入或是读取数据,如果一次过程中,需要切换读写操作时,需要重新发送start。SDA线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制,而每个字节后必须跟一个响应位。从机在处理其他事件而不能接收数据时,可以通过控制SCL保持低电平来等待数据接收,等到准备好继续传输时,释放SCL。在总线上每个模块具有唯一的地址,当然亦可以设计广播地址,通知所有其他模块。

启动和停止

当I2C不工作时,SDA和SCL一样都处于高位HIGH,SCL保持为HIGH,SDA由HIGH变LOW时表示开始传输,而SCL保持HIGH,SDA由LOW变为HIGH时表示停止传输。Sr和S完全相同,差别只是第一次Start之后没有进行stop,再次启动Start。

数据产生

SDA上传送的数据必须在时钟高电平时保持稳定,而数据的改变只有在SCL为低时进行,而SCL由主机控制产生。

冲突仲裁

主机在总线空闲时候启动传输。而当总线上有多个主机时,可能产生同时启动的冲突,因此需要仲裁。仲裁方式是,当SCL线是高电平时,仲裁在SDA线发生 这样在其他主机发送低电平时发送高电平的主机将断开它的数据输出级,因为总线上的电平与它自己的电平不相同,总线上的电平总是在一个输出为低时就为低。仲裁可以持续多位,当丢失仲裁的主机同时具有从机功能时,需要立即切换从机状态。

从机挂起数据发送示例

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

    关注

    14

    文章

    2468

    浏览量

    71880
  • 总线
    +关注

    关注

    10

    文章

    2878

    浏览量

    88056
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1486

    浏览量

    123632

原文标题:带你理解I2C总线数据传输方式

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

收藏 人收藏

    评论

    相关推荐

    基于MCU 的I2C 总线传输设计

    基于MCU 的I2C 总线传输设计
    发表于 05-15 14:27 34次下载

    HT45R37使用I2C进行数据传输的方法 (C语言)

    HT45R37使用I2C进行数据传输的方法 (C语言)HT45R37 提供SIM 串行传输功能,分别是SPI 功能和I2C 功能,本文介绍H
    发表于 03-27 08:36 12次下载

    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次下载

    基于CPLD的I2C总线接口设计

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

    i2c

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

    I2C整理资料

    I2C整理资料助您学习用
    发表于 12-15 22:55 2次下载

    I2C总线的基础知识

    如果用GPIO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。
    发表于 07-16 17:52 1956次阅读

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

    I2C总线控制器为微控制器或微处理器提供控制I2C总线的接口,它控制所有I2C总线的特殊序列、协议、仲裁、时序,这里指MPC8250提供的I2C总线控制接口。
    发表于 11-24 14:16 7263次阅读

    硬件I2C与模拟I2C

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

    Linux I2C驱动入门知识科普

    I2C 总线驱动, I2C总线驱动就是SOC的 I2C控制器驱动,也叫做 I2C适配器驱动。
    的头像 发表于 12-29 13:59 1681次阅读

    I2C传输发生timeout时

    I2C timeout 当 I2C 传输发生 timeout 时,一般 kernel log 会有类似如下打印: [48.197718][xxx]i2c
    的头像 发表于 07-22 14:46 2502次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>传输</b>发生timeout时

    I2C子系统SW Architecture

    通过 i2c-core 将 i2c 设备驱动和 i2c 总线驱动进行了分离,从而使得 i2c 设备驱动中不用关心 i2c 总线
    的头像 发表于 07-22 16:01 951次阅读
    <b class='flag-5'>I2C</b>子系统SW Architecture

    I2CI3C的区别有哪些

    线。 I2C 传输速度最高 3.4MHz,I3C 可以 12.5MHz +。 I3C 向下兼容 I2C,但不兼容 10bit 的
    的头像 发表于 07-22 16:20 6897次阅读
    <b class='flag-5'>I2C</b>和<b class='flag-5'>I3C</b>的区别有哪些

    I2CI3C关于功耗和传输速率的对比

    I2CI3C 关于功耗和传输速率的对比: I3C 使用推挽功能的双线串行接口,速度可达 12.5 MHz I3C 同一总线上共存的传统
    的头像 发表于 07-22 16:24 1872次阅读
    <b class='flag-5'>I2C</b>和<b class='flag-5'>I3C</b>关于功耗和<b class='flag-5'>传输</b>速率的对比

    i2c采样是上升沿吗?

    i2c采样是上升沿吗?  I2C采样是指在I2C总线上对数据进行采样。在I2C总线上,数据的传输是通过2
    的头像 发表于 09-19 17:16 2724次阅读