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

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

3天内不再提示

I2C总线物理拓扑结构_I2C总线协议解析

STM32嵌入式开发 来源:CSDN技术社区 作者:CSDN技术社区 2020-09-24 14:12 次阅读

I2C总线物理拓扑结构

I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来 产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。

I2C总线特征

I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址(可以从I2C器件的数据手册得知),主从设备之间就通过这 个地址来确定与哪个器件进行通信,在通常的应用中,我们把CPU带I2C总线接口的模块作为主设备,把挂接在总线上的其他设备都作为从设备。

I2C总线上可挂接的设备数量受总线的最大电容400pF 限制,如果所挂接的是相同型号的器件,则还受器件地址位的限制。

I2C总线数据传输速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。一般通过I2C总线接口可编程时钟来实现传输速率的调整,同时也跟所接的上拉电阻的阻值有关。

I2C总线上的主设备与从设备之间以字节(8位)为单位进行双向的数据传输。

I2C总线协议

I2C协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。起始和结束信号总是由主设备产生。总线在空闲状态 时,SCL和SDA都保持着高电平,当SCL为高电平而SDA由高到低的跳变,表示产生一个起始条件;当SCL为高而SDA由低到高的跳变,表示产生一个 停止条件。在起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他I2C器件无法访问总线;而在停止条件产生后,本次数据传输的主从设备 将释放总线,总线再次处于空闲状态。如图所示:

在了解起始条件和停止条件后,我们再来看看在这个过程中数据的传输是如何进行的。前面我们已经提到过,数据传输以字节为单位。主设备在SCL线上产生每个 时钟脉冲的过程中将在SDA线上传输一个数据位,当一个字节按数据位从高位到低位的顺序传输完后,紧接着从设备将拉低SDA线,回传给主设备一个应答位, 此时才认为一个字节真正的被传输完成。当然,并不是所有的字节传输都必须有一个应答位,比如:当从设备不能再接收主设备发送的数据时,从设备将回传一个否 定应答位。数据传输的过程如图所示:


在前面我们还提到过,I2C总线上的每一个设备都对应一个唯一的地址,主从设备之间的数据传输是建立在地址的基础上,也就是说,主设备在传输有效数据之前 要先指定从设备的地址,地址指定的过程和上面数据传输的过程一样,只不过大多数从设备的地址是7位的,然后协议规定再给地址添加一个最低位用来表示接下来 数据传输的方向,0表示主设备向从设备写数据,1表示主设备向从设备读数据。如图所示:


I2C总线操作
对I2C总线的操作实际就是主从设备之间的读写操作。大致可分为以下三种操作情况:
第一,主设备往从设备中写数据。数据传输格式如下:


第二,主设备从从设备中读数据。数据传输格式如下:

第三,主设备往从设备中写数据,然后重启起始条件,紧接着从从设备中读取数据;或者是主设备从从设备中读数据,然后重启起始条件,紧接着主设备往从设备中写数据。这种操作在单个主设备系统中,重复的开启起始条件机制要比用STOP终止传输后又再次开启总线更有效率。数据传输格式如下:

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

    关注

    8

    文章

    357

    浏览量

    60407
  • i2c总线协议
    +关注

    关注

    0

    文章

    6

    浏览量

    6764

原文标题:I2C总线协议详解

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    3分钟理解通信协议I2C总线 #通信协议

    通信协议I2CI2C总线总线/接口技术
    硬声课堂
    发布于 :2021年10月18日 10:39:12

    i2c总线协议pdf

    I2C 总线规范目录1 序言
    发表于 08-13 17:16

    I2C规范,I2C总线原理

    I2C规范,I2C总线原理1 序言
    发表于 04-09 18:34

    I2C总线协议详解

    I2C总线直接实现上位机与下位机之间的连接,无需辅助MCU。   ●上位机软件能够实现灵活实现I2C/IIC/TWI总线协议的各种操作。  
    发表于 02-01 09:56

    I2C 总线协议图解

    I2C总线协议图解1I2C总线物理拓扑
    发表于 08-01 16:12

    i2c通信协议

    1.1 i2c通信协议通信协议:用来实现数据传输。i2c物理总线:SCL(时钟线) SDA(数据
    发表于 03-06 16:15

    I2C总线协议的基础知识

    100Kb/s,低速模式10Kb/s。物理层下图为I2C总线物理拓扑图,大家可以看到一共只有两条总线
    发表于 08-25 11:16

    i2c不通的原因是什么

    I2C总线拓扑结构I2C总线特征I2C
    发表于 03-02 06:52

    I2C总线是什么

    I2C总线I2C总线(读做“IC”或“I2C
    发表于 07-21 09:03

    了解I2C协议

    了解I2C协议,并能够使用I2C将数据写入和读出,I2C协议I2C
    发表于 08-11 08:35

    总线协议I2C

    总线协议I2C (又称I2C、IIC等)I2C(Integrated Circuit)是两线式半双工串行
    发表于 08-19 08:18

    I2C通讯协议简介

    ,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。I2C物理层的特点1.它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个I2C
    发表于 08-19 07:00

    I2C总线的相关资料推荐

    及外围设备。I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。物理层1)它只使用两条总线线路 :一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。见图
    发表于 11-29 06:41

    I2C协议简介

    I2C协议简介协议 (计算机学科概念)对于通讯协议,我们以分层的方式来理解,分为物理层和协议层。
    发表于 01-12 07:25

    I2C总线的原理是什么

    采用串行总线技术可以大大简化硬件的设计,体积减少,可靠性高。常见的总线I2C(inter IC bus),单总线,SPI总线
    发表于 01-18 07:36