zoukankan      html  css  js  c++  java
  • SMBUS与I2C

    SMBUS(系统管理总线)基于I2C总线,主要用于电池管理系统中。它工作在主/从模式:主器件提供时钟,在其发起一次传输时提供一个起始位,在其终止一次传输时提供一个停止位;从器件拥有一个唯一的7或10位从器件地址。

    SMBus只工作在从10kHz到最高100kHz(I2C则有100K/400K/3.45MHZ)。最低工作频率10kHz是由SMBus超时功能决定的,当SCL(主机提供)太低而超过35 ms时,从器件将复位正在进行的通信。相反,I2C采用主器件硬件复位。

    SMBus需要一定数据保持时间(300nS),而 I2C总线则是从内部延长数据保持时间。

    SMBus具有一种警报响应地址(ARA),因此当从器件产生一个中断时,它不会马上清除中断,而是一直保持到其收到一个由主器件发送的含有其地址的ARA为止。

    上拉电阻的区别:SMBus(14k ohm@5V Vdd,8.5k ohm@3V Vdd不过这个定义并非牢不可破,就一般实务而言,在SMBus上也可用2.4k~3.9k ohm范畴的阻值);而I2C(1.6k ohm@5V Vdd,1k ohm@3V Vdd)。

    ACK与NACK:I2C可以ACK也可NACK;但SMBUS必须ACK,安全可靠性要求更高

    命名的区别:I2C(SDL/SCL);

          SMBUS: SMBDat,SMBCLK;SMBSUS(OC门,需要上拉,终端提醒主设备,低有效)

    电气特性区别:

    I2C的Hi/Lo逻辑准位有两种认定法:相对认定与绝对认定(Vdd的电压),Hi为0.7 Vdd,Lo为0.3Vdd,

                    绝对认定则与TTL准位认定相同,直接指定Hi/Li电压,Hi为3.0V,Lo为1.5V。

    SMBus只有绝对认定,且准位与I2C有异,Hi为2.1V,Lo为0.8V,与I2C不全然吻合但也算部分交集。不过,SMBus后来也增订一套更低电压的准位认定,Hi为1.4V,Lo为0.6V,这是为了让运用SMBus的装置能更省成本而有的作法。

    电流的区别:I2C(正常工作电流3mA,漏电流10uA);SMBUS(正常工作电流100uA,漏电流1~5uA)

    SMBUS总线协议:

           数据在SMBCLK为高时必须稳定,在SMBCLK为低时才允许变化;

    1. 开始和结束条件并不总是由总线主器件产生的。在开始条件产生后,总线就被认为处于忙碌状态。当出现结束条件或SMBCLK和XMBDAT两条线维持在高电平的时间超过THIGH:MAX后,总线处于闲置状态。
    2. 每个字节包含八个比特。在总线上每个字节传输完都必须紧跟一个确认比特。字节在传输时都都先传送最高位(MSB)

    3. 为了确认一个字节,接收端必须在时钟脉冲的高电平阶段,根绝SMBus的时序规范,将SMBDAT拉到低

             4 SMBUS除了和I2C一样具有0x00的广播地址外,还有b0001000R/W来表示警报响应地址

                                 数据有效性                                                                                                       4-2:开始和结束条件

    4-4:SMBus的ACK和NACK信号

     

     

     

     

     

     

     

  • 相关阅读:
    ZOJ 2702 Unrhymable Rhymes(DP)
    unique() 去重函数
    HDU 4712 Hamming Distance(随机算法)
    HDU 4708 Rotation Lock Puzzle(模拟)
    HBase源代码分析之MemStore的flush发起时机、推断条件等详情(二)
    Androidproject师进阶之路 :《Android开发进阶:从小工到专家》上市啦!
    POJ1062 昂贵的聘礼(最短路)
    easyui required 提交验证
    leetcode
    【翻译自mos文章】在Oracle单机数据库中定义database service
  • 原文地址:https://www.cnblogs.com/jieruishu/p/11429968.html
Copyright © 2011-2022 走看看