zoukankan      html  css  js  c++  java
  • I2C 总线协议

    摘自 <<I2C-bus specification and user manual>> Rev. 6 -- 4 April 2014

    1  features

    1)  two bus lines: SCL, SDA

    2)  each device is software addressable

    3)  multi-master

    4)  100kb/s  ~ Standard-mode; 3.4Mb/s ~ High-speed mode

    2  protocol

    2.1  signals

      SDA and SCL are bidirectional lines, connected to a positive supply voltage via a current-source or pull-up resistor.

      Both lines are HIGH when the bus is free.

       Input reference level are set as 30% and 70% of VDD, VIL = 0.3VDD, VIH = 0.7VDD

    2.2  data validity

        the data on SDA must be stable during the High period of SCL

        the data on SDA can only change when Low period of SCL

    2.3  START and STOP conditions

        S condition, a HIGH to LOW transition on SDA while SCL is HIGH

        P condition, a LOW to HIGH transition on SDA while SCL is HIGH

    2.4  BYTE format

        every byte put on the SDA line must be 8 bits long

        each byte must be followed by an Acknowledge bit

        If a slave cannot receive or transmit another complete byte of data until it has performed some other function, for example servicing an internal interrupt, it can hold the clock line SCL LOW to force the master into a wait state.

    2.5  ACK and NACK

        ACK signal (LOW): the transmitter releases the SDA line during the ack clock pulse so the receiver can pull the SDA line LOW and it remained LOW durng the HIGH period of this clock pulse.

        NACK signal (HIGH): when SDA remains HIGH during this 9th clock pulse, the master can then generate either a STOP to abort the transfer, or a repeated START to start a new transfer.

    2.6  slave address and R/W bit

    1)  a complete data transfer

    2)  a master writes data into a slave

    3)  a master reads dta from a slave

    4)  combined format

  • 相关阅读:
    render :template 和 render :parital
    routes.rb和link_to的一些规则
    rails程序文件名命名规范
    Ruby的模型关系随笔
    Ruby的require相关知识
    rails中的form_for
    rails中的session
    RubyMine不能调试Rails项目的问题
    序列化后的json串与解析json串实体间的关系
    mysql还原数据库
  • 原文地址:https://www.cnblogs.com/xinxue/p/5248520.html
Copyright © 2011-2022 走看看