美文网首页
I2C通信二

I2C通信二

作者: 技术是神奇的 | 来源:发表于2021-07-25 18:21 被阅读0次

    一、数据在I2C总线上的传输协议

    (1) I2C通信时的基本数据单位也是以字节为单位的,每次传输的有效数据都是1个字节(8位)。
    (2)起始位(S)及其后的8个clk中 (在CLK线的上升沿发送数据)都是主设备在发送(主设备掌控总线),此时从设备只能读取总线,通过读总线来得知主设备发给从设备的信息;然后到了第9周期,按照协议规定从设备需要发送ACK给主设备,所以此时主设备必须释放总线(主设备把总线置为高电平然后不要动,其实就类似于总线空闲状态),同时从设备试图拉低总线发出ACK。如果从设备拉低总线失败,或者从设备根本就没有拉低总线,则主设备看到的现象就是总线在第9周期仍然一直保持高,这对主设备来说,意味着我没收到ACK,主设备就认为刚才给从设备发送的8字节不对(接收失败)

    注:

    1. 一般地址定义为7位(支持127种不同的IIC设备,如果需要更多器件可以扩展地址),第8位表示读还是写,最后还会跟一个ACK或NACK

    2)开始条件:SCL high, SDA high-to-low 转换

    结束条件:SCL high, SDA low-to-high 转换

    开始和结束条件.png 开始传输的数据是0xAAh.png

    注: MSB:最高有效bit位 , 如上图就是bit7

    LSB:最低有效bit位 , 如上图就是bit0

    一个主器件到从器件中读取数据的过程.png

    Acknowledge: 以上部分图片和资料来自朱有鹏以及知乎@IC君

    相关文章

      网友评论

          本文标题:I2C通信二

          本文链接:https://www.haomeiwen.com/subject/iirimltx.html