关于I2C总线

article/2025/11/7 2:25:13

两根线数据线SDA和时序线SCL,这让我想到了火线和零线。

总线上任何一个IC器件输出低电平都会使总线拉低,是线与的关系。

支持多主和主从工作方式

有效性:只有时钟线变成低电平数据线才能变化。

I2C的初始化应包括,起始信号,寻址,应答,结束信号。

初始化时把两根线都拉高,表示正常未工作状态

起始信号:在阴影部分的意思是,在SDA产生高电平持续一会再变低电平延时一会,在这个变化中间,SCL时间线一直处于高电平。

 应答信号:SCL处于高电平的4us内,看SDA是否被拉低,如果没有被拉低就代表没应答,SDA会一直处在高电平,跳不出while循环,我们就给它定一个时间,取段延时大于4us,没有应答也要跳出循环,再将SCL拉低,延时。

终止信号:左边的虚线,SDA是低电平延时4us,SCL是高电平延时4us,把SDA拉高持续4.7us。

这里的共性就是看谁产生跳变沿,跳变沿那个变化写在最开始,再写另一个。产生跳变沿的是一个变化量,在一个状态不变的情况下发生变化。

写一个字节

:SCL在高电平期间,SDA一个上升沿停止信号

 读一个字节

 

原文地址:::分析一下到底是上升沿还是下降沿读写数据-FreedomXura-ChinaUnix博客

分析一下到底是上升沿还是下降沿读写数据--jinn3很好的总结_jinn的博客-CSDN博客

上面的读写操作都是单片机读写而不是器件du'x

输入(指器件的输入)<==>写(MCU的写操作),输出(指器件的输出)<==>读(MCU的读操作)。

 所谓读即是指MCU从器件的数据总线上根据一定的时序来读取器件的数据。一般而言,MCU提供一个边沿信号(上升沿或者下降沿均可)告诉器件可以发数据了,器件检测到边沿信号以后,立即在数据总线上更新数据,待数据稳定以后,MCU即可读取数据。所以一般所说的上升沿(下降沿)开始读数据是不准确地说法,上升沿(下降沿)这是数据总线上的数据发生改变,MCU并没有在此时刻读取数据,而是等待数据稳定之后才开始读取数据。

以DS1302的单字节读时序为例说明,要读取DS1302数据,先必须写1byte数据到DS1302,即是指(R/W,A0~A4,R/C,1这8位数据),然后再读。所以我们应该看后半部分来解读数据的read操作。

显然在时钟信号的下降沿数据总线上的数据发生改变,等待数据稳定之后,MCU将读取该数据D0,接着MCU产生下一个下降沿,器件检测到下降沿信号立即更新数据D1,等待数据稳定之后被MCU读取。后面相同。

2)所谓写即是指MCU向器件写入数据,其操作是:先将数据放置在数据总线上,等待其稳定之后,MCU产生一个边沿信号,将数据写入器件。以DS1302的单字节写时序为例说明,要向DS1302写数据,,先必须写1byte数据到DS1302,即是指(R/W,A0~A4,R/C,1这8位数据),然后再写。

所以上图的16个脉冲下的操作均是写操作,可以从第一位(R/W)分析起,当然也可以向读操作一样,只分析后半部分的操作。

/*
** 函 数:single_byte_read
** 参 数: unsigned char commd--读之前必须写入的命令
** 返回值: unsigned char tempbyte--读取的1byte数据
** 说 明: 这只是一个例子函数,对应上面的时序图所写的完整的读1字节数据函数
*/
unsigned char single_byte_read(unsigned char commd)
{int i;unsigned char tempbit;unsigned char tempbyte;/* 初始化*/CE = 0;SCLK_OFF;/* 写1byte 数据(R/W,addr,R/C,1):读的地址命令*//* 数据总线上先准备好数据,上升沿写入数据到器件*/for(i=0;i<8;i++){if(commd & 0x01)DataIO = 1; //数据总线上准备数据1elseDataIO = 0; //数据总线上准备数据0commd=commd>>1;SCLK_ON; //上升沿来临,MCU将数据写入器件_NOP();SCLK_OFF; //再次拉低,为下一个数据提供上升沿条件}/*写完命令之后, 从器件读1byte数据*//*下降沿通知器件更新数据,等待其稳定之后读取数据*/for(i=0;i<8;i++){if(DataIO) //紧接上面写命令的最后一个信号是下降沿信号,故此时第一位数据即是器件更新数据tempbit = 0x80;elsetempbit = 0;tempbyte = tempbyte >> 1 | tempbit;SCLK_ON; //上升沿,为下降沿提供条件_NOP();SCLK_OFF; //下降沿来临,通知器件更新数据,在下一个循环中MCU读取更新的数据.}return tempbyte;
}
/*
** 函 数:single_byte_write
** 参 数: unsigned char commd--写数据之前必须先写命令
** unsigned char data--写的1byte数据
** 返回值: none
** 说 明: 这只是一个例子函数,对应上面的时序图所写的完整的写1字节数据函数
*/
void single_byte_write(unsigned char commd,unsigned char data)
{int i;/* 初始化*/CE = 0;SCLK_OFF;/* 写1byte 数据(R/W,addr,R/C,1):读的地址命令*//* 数据总线上先准备好数据,等待其数据稳定之后,MCU产生一个上升沿写入命令到器件*/for(i=0;i<8;i++){if(commd & 0x01)DataIO = 1; //数据总线上准备数据1elseDataIO = 0; //数据总线上准备数据0commd=commd>>1;SCLK_ON; //上升沿来临,MCU将数据写入器件_NOP();SCLK_OFF; //再次拉低,为下一个数据提供上升沿条件}/*写完1byte命令之后, 再写1byte数据*//*与写命令是一样的,数据总线上先准备好数据,等待其数据稳定之后,MCU产生一个上升沿信号将数据写入*/for(i=0;i<8;i++){if(data & 0x01)DataIO = 1; //数据总线上准备数据1elseDataIO = 0; //数据总线上准备数据0data=data>>1;SCLK_ON; //上升沿来临,MCU将数据写入器件_NOP();SCLK_OFF; //再次拉低,为下一个数据提供上升沿条件}}

​​​​​​​


http://chatgpt.dhexx.cn/article/j1lHTIgr.shtml

相关文章

一篇短文让你彻底理解什么是I2C通信

一、I2C协议 I2C 也叫 IIC&#xff08;Inter&#xff0d;Integrated Circuit&#xff09;总线&#xff0c;是一种由PHILIPS公司在80年代开发的两线式串行总线&#xff0c;用于连接微控制器及其外围设备。它是半双工通信方式。 我们首先阅读以下这个例子&#xff0c;这会方便后…

I2C总线详解

1.1 I2C总线知识 1.1.1 I2C总线物理拓扑结构 I2C总线在物理连接上非常简单&#xff0c;分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制&#xff0c;来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态…

【i2c协议介绍】

文章目录 协议简单介绍五种速度模式master/slave和transmitter/receiver关系第一种情况&#xff1a;master作为transmitter&#xff0c;slave作为receiver第二种情况&#xff1a;当master作为receiver&#xff0c;slave作为transmitter i2c基本信号start产生stop信号数据传输有…

I2C详解(一)

I2C Bus(Inter-Integrated Circuit Bus) 最早是由Philips半导体&#xff08;现被NXP收购&#xff09;开发的两线时串行总线&#xff0c;常用于微控制器与外设之间的连接。要想了解详细I2C协议&#xff0c;目前最新的I2C标准协议是2014年第6版本&#xff0c;如下&#xff1a; I2…

I2C详细介绍

1、I2C总线具有两根双向信号线&#xff0c;一根是数据线SDA&#xff0c;另一根是时钟线SCL 2、IIC总线上可以挂很多设备&#xff1a;多个主设备&#xff0c;多个从设备&#xff08;外围 设备&#xff09;。上图中主设备是两个单片机&#xff0c;剩下的都是从设备。 3、多主机…

OLED显示屏I2C接口

简介 本文将介绍两种不同尺寸的OLED显示屏&#xff1a;0.96寸和0.91寸。他们都是4引脚I2C接口的&#xff0c;如下图所示&#xff1a; 注&#xff1a;经过项目测试发现&#xff0c;本文介绍的驱动方式和代码也完全适用于 1.54寸SSD1309主控的1.54寸OLED和1.29寸CH1115主控的OLE…

关于I2C接口的介绍

I 2C:Inter-Integrated Circuit 内部集成电路,应该翻译为集成电路总线,IC的正确读法为“I方C”。 这种通信协议由Philip最早提出,一种由数据线SDA和时钟线SCL两根信号线组成的串行通信总线,具体规范可以在NXP网站找到v2.1。不像UART没有CLOCK线,不能实现同步,I2C和SPI都…

【原创】【I2C】I2C介绍

一、这是个什么玩意 I2C首先它也是一个通信接口&#xff0c;同理通信接口就是用于模块之间的通信的&#xff0c;同SPI接口学习思路一样&#xff0c;首先明白它是一个接口&#xff0c;然后再扣它是一个怎么样的接口。 I2C(Inter&#xff0d;Integrated Circuit)总线是由Philips公…

I2C接口

一、I2C总线协议内容 1. I2C总线引脚定义 SDA (I2C数据引脚) CLK (I2C数据引脚) 2. I2C总线物理连接 I2C总线物理连接如下图所示&#xff0c;SDA和CLK连接线上连有两个上拉电阻&#xff0c;当总线空闲时&#xff0c;两根线均为高电平。连到总线上的任一器件输出的低电平&am…

“如何成为阿里云P8架构师?“ ”当然是考取阿里云新版ACE认证啊”

**简介&#xff1a;**阿里云新版云计算架构师ACE认证全面重构上线&#xff01;为建立云计算生态领域含金量第一的专家级人才标准和认证体系&#xff0c;影响泛云生态高层次技术人才&#xff0c;阿里云历时一年&#xff0c;组织近百位专家&#xff0c;对云计算架构师ACE认证进行…

阿里云认证(ACA/ACP/ACE)的分类以及官网价格

阿里云认证分类&#xff1a; 阿里云认证分为三个等级&#xff0c;分别为初级(ACA)、中级(ACP)、高级&#xff08;ACE&#xff09; 下面还有很多的子分类 在子分类中&#xff0c;云计算是认证中最受欢迎的&#xff0c;无论是ACA云计算&#xff0c;还是ACP云计算&#xff0c;都…

阿里云ACA、ACP、ACE认证考试区别,报名入口及模拟试题分享

阿里云认证考试包含ACA、ACP、ACE三种认证类型&#xff0c;是阿里云针对不同产品类别、用户成长阶段、生态岗位&#xff0c;精心打造不同的认证考试。获得阿里云认证考试证书能够基于阿里云产品解决实际问题。获得更多阿里云生态下的就业机会。 助理工程师&#xff08;ACA&…

成为阿里云架构师的进阶之路——阿里云首批ACE认证通过者逸疏专访

自2018年3月阿里云发布云计算架构师ACE(Alibaba Cloud Certified Expert,阿里云认证高级工程师)级别认证后,上线不到3个月,吸引了近百位业界优秀从业者参与考试。获得阿里云ACE认证,对于业界资深架构师来说,是自身实力的最好证明。 阿里云大学致力于培养云生态链路上的…

阿里云P8架构师|历时4个月1次通关ACE认证

李东是我在阿里云厂商这边了解到第一个自学通过ACE认证P8架构师&#xff0c;现将他学习考证记录分享给大家 写在前面&#xff1a; 我是来自阿里云数字政府行业线的解决方案架构师李东。 2022年3月28日阿里云发布了新版ACE&#xff08;Alibaba Cloud Certified Expert - Cloud…

阿里云新版云计算架构师ACE认证专家解读会重磅来袭

简介&#xff1a;专家命题人非常解读 9600元全额代金券限量发放&#xff01;活动钉群&#xff1a;31889256。 3月28日&#xff0c;阿里云新版云计算架构师ACE认证正式升级发布&#xff0c;面向云架构师、解决方案架构师、资深运维/交付等人群&#xff0c;提供技术能力认证。自升…

通过新版阿里ACE认证,实验操作题你来解一下

大家都知道了哈&#xff0c;阿里云新版ACE认证&#xff0c;现在是云认证界的塔尖位置&#xff0c;因为要成功拿到新版ACE认证&#xff0c;需要破关斩将&#xff0c;三个守门的将&#xff0c;分别是笔试&#xff0c;实验操作&#xff0c;以及面试 1&#xff0c;笔试 相对实验操…

为什么我不建议在阿里云官网报考ACP/ACE认证?

考acp的时候刚开始以为直接在阿里云官网寻找课程备考报名就可以了,官方提供的课程应该没有问题,但是实际学习的时候发现,官方提供的内容虽然涵盖了大部分知识点,但是由于缺少对应的学习服务,学习效果上总是差强人意。 除了学习效果意外,再就是两个更重要的原因,贵且麻烦…

阿里云ACA、ACP、ACE认证考试常见问题

阿里云专业技术认证包含&#xff1a; 阿里云Apsara Clouder技能认证 阿里云助理工程师认证ACA级别&#xff08;Alibaba Cloud Certified Associate&#xff09; 阿里云专业工程师认证ACP级别&#xff08;Alibaba Cloud Certified Professional&#xff09; 阿里云基于岗位的…

阿里云的ACP认证与ACE认证含金量高吗?

该文章详细的介绍了阿里云认证。 云计算ACP认证介绍&#xff1a; 阿里云云计算专业认证(ACP 级-Alibaba Cloud Certification Professional)是面向使用阿里云云计算产品的架构、开发、运维类人员的专 业技术认证&#xff0c;主要涉及阿里云的计算、存储、网络、安全类的核心…

阿里云认证未来网络学院ACE公开课——30分钟掌握ACE考试通关攻略

简介&#xff1a;新版ACE通关攻略&#xff0c;这4点经验&#xff0c;帮你斩获高分&#xff01;入群即赠价值3000元ACP全套线上课资料包&#xff01;公开课钉群&#xff1a;44832770。 新版ACE通关攻略&#xff0c;这4点经验&#xff0c;帮你斩获高分 阿里云云计算架构师 ACE 认…