Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1064141
  • 博文数量: 573
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 66
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-28 16:21
文章分类

全部博文(573)

文章存档

2018年(3)

2016年(48)

2015年(522)

分类: LINUX

2015-12-04 16:48:51

对I2C总线协议的一些理解

1、无论读与写,都是在时钟线为低时把数据送到数据总线上,在高时采样数据,把数据锁存到内部,所以读之前先把时钟线拉低,做好准备(数据线为高表示释放数据线),为接下来读数据做好准备。也就是时钟信号为低时,数据线上的高低电平才允许变化,时钟信号为高时,数据总线上的数据必须保持稳定。


2、起始信号产生后,总线为被占用状态(SDA拉低);终止信号产生后,总线为空闲状态(SCL被释放了)。


3、接收器件收到一个完整的数据字节后有可能需要完成一些其它工作,如处理中断,可能无法立刻接收下一字节,这时接收端机将SCL拉成低电平,从而使发送端机处于等待状态。直到接收端机准备好接收下一字节,再释放SCL线使之为高,从而数据传送可继续进行。数据线上的数据是在时钟信号为高时被采样。


4、当主机接收数据时,它收到最后一个数据字节后,必须向从机发出一结束信号。这个信号是由对从机的非应答来实现的。然后,从机释放SDA线,以允许主机产生终止信号。

阅读(400) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~