码迷,mamicode.com
首页 > 其他好文 > 详细

韦东山视频第三节 I2C协议

时间:2015-07-25 12:13:14      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

如果接触硬件多了的话,就可以发现I2C协议是我们经常使用到的。只需要SDA(数据)和SCL(时钟)便能搭建好电路。

电路虽然简单,但是关键还得理解它规定好的协议。首先,看一下时序图。

 

技术分享

从图中可以看出,传输一次数据分为四个主要环节:S(起始信号),start byte(要写入的字节),ACK(应答信号),

SR(停止信号)。作用不去描述,下面对它们如何产生作用描述一下我的看法。

  1. S(起始信号):当SCL为高,SDA由高电平拉低时,代表传输开始。

  2. start byte(要写入的字节):SCL周期高低电平变换,SDA在SCL为高电平时,保持它所要传输的位。

  3. ACK(应答信号):八位传输完,CPU放弃对接受器的控制,此时接收器拉低电平,代表收到数据。

  4. SR(停止信号):SCL为高电平,SDA由高拉低,代表停止。

上面是对一个字节传输的描述,假如我想往24c02(以24c02作为对象)的某个地址写入某个数据,信号又是如何传输的?

下面将由另一张图片来作为讲解。

技术分享

这是写入一个地址数据时的数据图,在这里,不对电平变化做描述。从左往右看,首先应当发送一个起始信号,然后再发送一个

字节。在这个字节里,后七位是来选定器件地址的,最后一位是用来控制读写的。所以,写数据的话,应当为A1(图上貌似有问题,

高字节不应当是F)。在写入玩一个字节后,做出应答。之后很简单,发送要写入存储器内的地址,应当,要写入的数据,应答。最后,

停止信号。

最后补充一点,为什么要在SDA和SCL上,加上拉电阻。这主要是上拉电阻的作用,用来确定线的电平状态。

 

韦东山视频第三节 I2C协议

标签:

原文地址:http://www.cnblogs.com/linux-hp/p/4674936.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!