I2C通信原理简介

1 篇文章 0 订阅

目录

1. 概述

2. I2C总线的数据传送

2.1 数据位的有效性规定

​2.2起始和终止信号

2.3 数据传送格式

3.传输


1. 概述


读法:

常用:I方C
标准:I square C

        I2C 总线是Philips(现NXP)公司推出的一种用于IC器件之间连接的2线制船型扩展总线。通过2条信号线(SDA:串行数据线;SCL:串行时钟线)连接到总线上的器件之间传送数据,所有连接在总线上的I2C器件都可以工作于发送方式或接收方式。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行双向传送, 高速 IIC 总线一般可达 400kbps 以上。

        I2C总线的SDA和SCL是双向I/O线,必须通过上拉电阻接到正电源,当总线空闲时,2线都是“高”。所有连接在I2C总线上的器件引脚必须是开漏或集电极开路输出,即具有“线与”功能。


2. I2C总线的数据传送


2.1 数据位的有效性规定


I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。


2.2起始和终止信号


I2C总线规定,当SCL为高电平时,SDA的电平必须保持稳定不变的状态,只有当SCL处于低电平时,才可以改变SDA的电平值,但起始信号和停止信号是特例。因此,当SCL处于高电平时,SDA的任何跳变都会被识别成为一个起始信号或停止信号。


2.3 数据传送格式


2.3.1字节传送与应答
在I2C总线的数据传输过程中,发送到SDA信号线上的数据以字节为单位,每个字节必须为8位,而且是高位(MSB)在前,低位(LSB)在后,每次发送数据的字节数量不受限制。但在这个数据传输过程中需要着重强调的是,当发送方发送完每一字节后,都必须等待接收方返回一个应答响应信号。


2.3.2总线的寻址
1、DA3~DA0:4位器件地址是I2C总线器件固有的地址编码,器件出厂时就已给定,用户不能自行设置。
2、A2~ A0:3位引脚地址用于相同地址器件的识别。若I2C总线上挂有相同地址的器件,或同时挂有多片相同器件时,可用硬件连方式对3位引脚A2~A0接Vcc或接地,形成地址数据。
3、R/W:数据传送方向。 R/W=1时,主机接收(读);R/W =0,主机发送(写)。
主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据 位将自己确定为发送器或接收器。

在这里插入图片描述  


2.3.3数据帧格式
a) 主机向从机写数据

在这里插入图片描述
1、主机产生起始信号S。
2、主机发送寻址字节SLAVE ADDRESS,其中的高7位表示数据传输目标的从机地址;最后1位是传输方向位,此时其值为0,表示数据传输方向从主机到从机。
3、当某个从机检测到主机在I2C总线上广播的地址与它的地址相同时,该从机就被选中,并返回一个应答信号A。没被选中的从机会忽略之后SDA上的数据。
4、当主机收到来自从机的应答信号后,开始发送数据DATA。主机每发送完一个字节,从机产生一个应答信号。如果在I2C的数据传输过程中,从机产生了非应答信号/A,则主机提前结束本次数据传输。
5当主机的数据发送完毕后,主机产生一个停止信号结束数据传输,或者产生一个重复起始信号进人下一次数据传输。
b) 主机从从机读数据

在这里插入图片描述


1、主机产生起始信号S。
2、主机发送寻址字节SLAVE ADDRESS,其中的高7位表示数据传输目标的从机地址;最后1位是传输方向位,此时其值为1,表示数据传输方向由从机到主机。寻址字节SLAVE ADDRESS发送完毕后,主机释放SDA(拉高SDA)。
3、当某个从机检测到主机在I2C总线上广播的地址与它的地址相同时,该从机就被选中,并返回一个应答信号A。没被选中的从机会忽略之后SDA上的数据。
4、当主机收到应答信号后,从机开始发送数据DATA。从机每发送完一个字节,主机产生一个应答信号。当主机读取从机数据完毕或者主机想结束本次数据传输时,可以向从机返回一个非应答信号A,从机即自动停止数据传输。
5、当传输完毕后,主机产生一个停止信号结束数据传输,或者产生一个重复起始信号进入下一次数据传输。
c) 主机和从机双向数据传送

在这里插入图片描述

   在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反相。

3.传输


   I2C的标准传输速率为100Kbps,快速传输可达400Kbps。目前还增加了高速模式,最高传输速率可达3.4Mbps。

I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答
信号。
开始信号: SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。
结束信号: SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,
表示已收到数据。 CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号, CPU 接
收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为
受控单元出现故障。
这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。 IIC 总线时序图如
图所示:


原文链接:https://blog.csdn.net/weixin_43764974/article/details/124500485

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
I2C(Inter-Integrated Circuit)和SPI(Serial Peripheral Interface)都是常用的串行通信接口,在微控制器和外围设备之间传输数据。 **I2C通信原理:** - **双向总线结构**:I2C使用两条信号线,一条是SCL(时钟线),用于同步数据传输;另一条是SDA(数据线),用于发送和接收数据。 - **主从模式**:通常有一个主设备控制通信,其他是从设备。主设备发送起始信号,从设备响应应答信号。 - **仲裁机制**:当多个从设备连接时,主设备通过SCL和SDA的组合信号来决定与哪个设备通信,非被选中的设备会自动进入低电平状态,等待下一次通信机会。 - **停止和重置**:通过SCL拉低并保持一定时间来结束一次传输,重新开始则需要主设备再次发出起始信号。 **SPI通信原理:** - **单线或多线模式**:SPI支持单线或多线模式,最常见的有四线(MISO、MOSI、SCK、CS)和三线(MOSI、SCK、CS)。 - **全双工**:每个连接的一对设备都可以同时发送和接收数据,通过CS信号线选择一个设备进行通信。 - **异步通信**:通过SCK(时钟线)同步数据传输,数据以时钟周期为单位发送。 - **波特率可配置**:可以通过改变SCK频率调整数据传输速率。 - **数据帧结构**:SPI传输是以字节为单位,每个数据包由起始位、数据位、停止位组成,并可能包含奇偶校验或帧间隔。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值