您的位置 首页 新品

单片机I2C总线的使用原理

单片机I2C总线的应用原理-I2C总线是开漏引脚并联的结构,因此我们外部要添加上拉电阻。对于开漏电路外部加上拉电阻,就组成了线“与”的关系。总线上线“与”的关系就是说,所有接入的器件保持高电平,这条线才是高电平,而任何一个器件输出一个低电平,那这条线就会保持低电平,因此可以做到任何一个器件都可以拉低电平,也就是任何一个器件都可以作为主机,如图14-1所示,我们添加了 R63 和 R64 两个上拉电阻。

在硬件上,I2C总线是由时钟总线SCL和数据总线SDA两条线构成,连接到总线上的一切器材的SCL都连到一同,一切SDA都连到一同。I2C总线是开漏引脚并联的结构,因而咱们外部要添加上拉电阻。关于开漏电路外部加上拉电阻,就组成了线“与”的联系。总线上线“与”的联系便是说,一切接入的器材坚持高电平,这条线才是高电平,而任何一个器材输出一个低电平,那这条线就会坚持低电平,因而能够做到任何一个器材都能够拉低电平,也便是任何一个器材都能够作为主机,如图14-1所示,咱们添加了 R63 和 R64 两个上拉电阻。

单片机I2C总线的使用原理

图14-1 I2C 总线的上拉电阻

尽管说任何一个设备都能够作为主机,但绝大多数情况下咱们都是用单片机来做主机,而总线上挂的多个器材,每一个都像电话机相同有自己仅有的地址,在信息传输的进程中,经过这仅有的地址就能够正常识别到归于自己的信息,在 KST-51 开发板上,就挂接了2个 I2C 设备,一个是 24C02,一个是 PCF8591。

咱们在学习 UART 串行通讯的时分,知道了通讯流程分为开始位、数据位、中止位这三部分,同理在 I2C 中也有开始信号、数据传输和中止信号,如图14-2所示。

单片机I2C总线的使用原理

图14-2 I2C 时序流程图

从图上能够看出来,I2C 和 UART 时序流程有相似性,也有必定的差异。UART 每个字节中,都有一个开始位、8个数据位、1位中止位。而 I2C 分为开始信号、数据传输部分、中止信号。其间数据传输部分,能够一次通讯进程传输许多个字节,字节数是不受约束的,而每个字节的数据最终也跟了一位,这一位叫做应对位,通常用 ACK 表明,有点类似于 UART 的中止位。

下面咱们一部分一部分的把 I2C 通讯时序进行分析。之前咱们现已学过了 UART,所以学习 I2C 的进程我尽量拿 UART 来作为比照,这样有助于更好的了解。可是有一点咱们要了解清楚,便是 UART 通讯尽管用了 TXD 和 RXD 两根线,可是实践一次通讯中,1条线就能够完结,2条线是把发送和接纳分隔罢了,而 I2C 每次通讯,不管是发送仍是接纳,有必要2条线都参加作业才干完结,为了更便利的看出来每一位的传输流程,咱们把图14-2改善成图14-3。

单片机I2C总线的使用原理

图14-3 I2C 通讯流程解析

开始信号:UART 通讯是从一向继续的高电平呈现一个低电平标志开始位;而 I2C 通讯的开始信号的界说是 SCL 为高电平期间,SDA 由高电平向低电平改动发生一个下降沿,表明开始信号,如图14-3中的 Start 部分所示。

数据传输:首要,UART 是低位在前,高位在后;而 I2C 通讯是高位在前,低位在后。其次,UART 通讯数据位是固定长度,波特率分之一,一位一位固定时刻发送完毕就能够了。而 I2C 没有固定波特率,可是有时序的要求,要求当 SCL 在低电平的时分,SDA 答应改动,也便是说,发送方有必要先坚持 SCL 是低电平,才干够改动数据线 SDA,输出要发送的当时数据的一位;而当 SCL 在高电平的时分,SDA 肯定不能够改动,由于这个时分,接纳方要来读取当时 SDA 的电平信号是0仍是1,因而要确保 SDA 的安稳,如图14-3中的每一位数据的改动,都是在 SCL 的低电平方位。8位数据位后边跟着的是一位应对位,应对位咱们后边还要详细介绍。

中止信号:UART 通讯的中止位是一位固定的高电平信号;而 I2C 通讯中止信号的界说是 SCL 为高电平期间,SDA 由低电平向高电平改动发生一个上升沿,表明完毕信号,如图14-3中的 Stop 部分所示。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/345750.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部