分享一份I2C通讯总结
核桃设计分享 2024-11-22

今天就来聊一聊常用常见的通讯方式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

 


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 工业
  • 安防
  • 航空
  • CAN
下载排行榜
更多
评测报告
更多
广告