×
嵌入式 > 技术百科 > 详情

I2C协议---I2C时序图解析

发布时间:2022-04-12 发布时间:
|

一、I2C协议简介

  I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地 使用在系统内多个集成电路(IC)间的通讯。 
  关于I2C协议的更多内容,可阅读《I2C总线协议》,本博文主要分析I2C波形图,对于I2C的基础知识不在做介绍。

二、I2C协议标准代码

2.1 起始信号&停止信号

  起始信号:当 SCL 线是高电平时 SDA 线从高电平向低电平切换。 
  停止信号:当 SCL 线是高电平时 SDA 线由低电平向高电平切换。

 

 

 

 

三、I2C通信时序图解析

  有了上边的I2C总线标准代码的基础,下面我们进入本博文所要讲解的内容,怎么分析I2C的时序图,以O2Micro的OZ9350为例,OZ9350是一款模拟前端(AFE)的IC器件。是一款性价比不错的电源管理芯片,由于其通讯是通过I2C来进行通讯的,所以这里用OZ9350的I2C通讯做例子进行讲解。

 

四、结语

写:MCU在数据总线上的数据稳定之后,检测边沿信号(上升沿)写数据到器件;

读:MCU发出边沿信号(下降沿)告诉器件发送数据,检测到边沿信号之后,器件改变(更新)数据,等待稳定之后MCU读取数据

数据的写操作:图中演示了I2C连续写数据,两个字节的连续写入,更多字节同样;

数据的读操作:在上图中,可以认为写入了设备地址及寄存器地址,再次重启总线后,发送读命令,连续读取两个字节,发送NACK,发送停止信号;

全文转自:https://www.cnblogs.com/Tangledice/p/7622794.html

 

五、附加

5.1 数据有效性

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

       但是,虽然只要求在高电平期间保持稳定,但要有一个提前量,就是数据在SCL的上升沿到来前就准备好,因为数据是在SCL的上升沿打入到器件EEPROM中的。

        

5.2 数据的传送

        在I2C总线上传送的每一位数据都有一个时钟脉冲对应,即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。数据的传送是 边沿触发。

5.3 工作过程

        总线上所有通信都是由主控器引发的。

        1. 主设备向从设备发送数据

         主设备寻址到从设备后,发送它所要读取或写入的从设备的内部寄存器地址(该寄存器地址由自己设定,用于存放写入或读取数据的存放位置);之后,发送数据。数据发送完毕后,发送停止位。

         EEPROM收到停止信号后,进入到一个内部的写入周期,大概需要10ms,期间任何操作都不会被EEPROM响应(以这种方式的两次写入之间要插入一个延时,否则会导致失败)。

5.4 附加

     1)IIC走线最长40CM;


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
RFID的电子关锁系统设计与实现