I2C通讯一次性看明白!

今天就来聊一聊常用常见的通讯方式I2C,网上对于I2C的讲解也非常的多,在此呢核桃也不想再重复一些概念性的知识点了,着重对通讯的过程做一个小的总结。

看下图1所示:

图1

图1是完整的写与读操作过程,看不懂图1是什么意思也没关系,我们接下来拆开了讲。

先看一下SDA和SCL如何表示逻辑状态的,如下:

SCL在高电平期间,SDA也为高电平时,表示逻辑1。

SCL在高电平期间,SDA为低电平时,示逻辑0。 

SCL在高电平期间,SDA出现下降沿时,表示起始信号。

SCL在高电平期间,SDA出现上升沿时示停止信号。

SCL和SDA同时为高电平时,表示总线处于空闲状态。

要想看明白I2C的波形,上面的这些波形图表示的状态得先记住。

我们再看回图2

图2

假如要写入地址1010000,波形是怎么样的?

注意:要进行写操作的话,读/写位必须是0才能有效,要读数据的话需要置1(也就是0表示写,1表示读)

波形如下:

图3

可以看的出来图2和图3的写操作就对应上了。

那是不是这样就通讯成功了呢?

当然不是,主机发地址过去之后,还需要丛机应答,也就是应答位必须为0,如果为1就表示没有收到或者读取完成了。

接着再把8位寄存器地址传过去,同样也需要丛机应答

丛机应答之后,最后再需要写入对应寄存器的数据传过去,然后再收到丛机应答,即可收到停止位了。


以上就是写操作的整个完整的过程,其实理解起来也相对简单,那读操作也是类似,主要和写操作的区别在于:

(1)需要核实两次的地址

(2)读/写位必须置1

好了,今天就先写到这吧!

声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 6
收藏 7
关注 86
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧