C51单片机模拟I2C总线驱动程序设计.pdf

  • 浏览量:479
  • 下载量:0
  • 资料大小:0 B
  • 日期:2014-12-31
  • 上传者:SingleYork
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

     申明:本资料来源与网络,经整理后在此与大家分享!

     



    前段时间在学习单片机通信的时候,接触到了iic,一番接触之下,感觉原来不用记那么



    多,只要了解关键的协议部分就够了。







    如图1 所示,就是iic 总线连接图了。



    简单来说,就一根数据sda,一根时钟scl。两根线按照一定的协议来传输数据。这样既

    可以节省io 口和电路板空间,又可以让每个能够发送接受数据的设备成为主控机,当然,

    前提是,同一时间上只能有一台设备是主控设备。



    接下来了解一下iic的信号类型,



    它共有四种信号:起始信号、停止信号、应答信号、非应答型号。



    然后我们了解iic 传输数据的规则:






    图2 数据传送的规则



    首先,我们了解



    在scl=1 时,sda 上的电平变化决定信号是起始信号还是停止信号。



    在scl=0 是,sda 上的电平允许变化,变化好了,等scl=1 时,保持到scl=0,变化下



    一位数据,这一位的数据就算是传送成功了。当然,判断数据是否为高低电平,需要一个时



    间,下面会说到。



    接着,我们了解iic的四种数据类型:



    详细说太繁琐,又不好记忆,我简化了一下,大家理解住就很好记了。注意,这四种信号都



    是在scl=1 时定义的。



    上面有说到,scl=1 时,sda 的变化是变换数据类型和判断数据高低电平的,



    scl=0 时,仅是用于sda 安全变化。






    起始信号:sda 由"1" → "0",定义为起始。






    停止信号:sda 由"0" → "1",定义为停止。



    当数据发送一个字节即8 位数据后,到第9 数据,接收的设备必须输出"0"做为应答信号。



    于此同时,发送设备就要释放sda,用于接受判断接受设备是否应答。






    应答信号:sda=0,定义为应答。






    非应答信号:sda=1,定义为非应答。这个信号用于,主控设备接收数据时,用在最后一



    个数据后面,使受控设备释放数据线,以便主控
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换