(一)I2C 总线协议

SMbus(I2c)是一个2线串行接口,通过该接口,各种系统组件芯片可以与主器件进行通信。从设备通过具有唯一的设备地址来标识。2线串行接口由SCL和SDA信号组成。SCL是从主器件到总线上所有从器件的时钟输出,SDA是主器件和从器件之间的双向数据信号。

启动和停止

Master在开始和结束触发Start和Stop的脉冲信号,如图1所示

  • Start:在SCL为高的时候,SDA的高到低转换(即下降沿)为信号
  • Stop:在SCL为高的时候,SDA的低到高转换(即上升沿)为开始信号

图1 启动和停止调节

应答ACK

Master每触发9个时钟脉冲发送一个byte,如图2所示。第9个时钟脉冲构成ACK周期。发射器释放SDA以允许接收器发送ACK信号。当设备将 SDA 拉低时,将记录 ACK,而如果线路保持高电平,则会记录 NACK

图2 Acknowledge (ACK)

SMBus Write操作

将数据写入从设备由三部分组成,如图3 所示:

  1. 主器件以起始条件开始,后跟从器件地址,R/W 位设置为 0'b。
  2. 从属设备发出ACK后,写入8位寄存器字地址。
  3. 从设备发出ACK后,写入8位数据,然后输入停止条件。

图3 SMBus Write Operation 

 SMBus Read操作

 SMBus 读取操作由四个部分组成,如图4 所示:

  1. 主器件以启动条件开始,后跟从设备地址,R/W 位设置为 0'b。
  2. 从属设备发出ACK后,写入8位寄存器字地址。
  3. 从从设备发出ACK后,主设备启动重新启动条件,然后是R/W位设置为1'b的从地址。
  4. 从从设备发出 ACK 后,8 位数据将被回读。如果没有要读取的字节,则最后一个 ACK 为高电平,最后一次读取后跟停止条件。

图4 SMBus Read Operation 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值