查看: 125|回复: 1

[基础] i2c协议

[复制链接]

39

主题

3

好友

4031

积分

QQ游客

  • TA的每日心情
    开心
    2014-1-27 10:34
  • 签到天数: 67 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2017-8-15 15:19:20 |显示全部楼层
    i2c协议是同步半双工协议,所以有两条线,一条为SCl为时钟线,另一条为SDA为数据传输线。
    协议规定:开始和结束
    1173680-20170707150951175-1545423486.png


    在 SDA和SCL都是高电平的情况下,SDA产生下降沿信号,此时建立了I2C通信的开始
    在SDA为低电平,SCL为高电平的情况下,SDA产生上升沿信号,则表明传输结束
    根据上面的规则可以得出,1.在通信开始之前,两根线都是高电平,通信结束之后,两根线也都是高电平。所以可以得出结论,在总线闲的时候,两根线都是高电平。I所以I2C的2根线上都必须接上拉电阻,阻值一般是4.7K
    2.总线只有两种状态要么处在正在传输,要么处在传输结束,要注意着两种状态的转变条件都是SCL为高的情况下,SDA只要有变化就会产生状态的变化,所以要注意在SCL为高的时候,SDA不要有任何变化,也就是说在SCL为低的时候,才有数据传出。

    1173680-20170707152116690-345761021.png


    写数据时
    1173680-20170707161458487-1912025534.png


    s表示start开始条件,然后会输出7位的从设备地址,和1位的写命令,将这8位数据送出去之后,会接到从设备的ack应答,接着主设备会发出数据,从设备要是没有ack应答,则会产生停止条件,下图网格表示主设备发出的,空白格表示从设备发出的
    读数据时

    1173680-20170707161814784-802982929.png


    芯片的引脚上一般有专门的I2C引脚


    回复

    使用道具 举报

    0

    主题

    0

    好友

    64

    积分

    童生

    Rank: 2

  • TA的每日心情

    2017-9-8 14:49
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-8-15 15:49:00 |显示全部楼层
    然后呢?你想说什么?
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /3 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-9-26 11:47 , Processed in 0.283913 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部