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 所示:
主器件以起始条件开始,后跟从器件地址,R/W 位设置为 0'b。从属设备发出ACK后,
I2C 总线协议最先出现在Python成神之路。
共有 0 条评论