BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / smartcar / #237同步于 2017/4/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Smartcar机器人发帖

I2C协议简要介绍

Ncer
2017/4/1镜像同步1 回复
直立组选择数字陀螺仪的可能会用到,这里简要介绍一下。 I2C是NXP的制定的串行通信协议。主要用于IC之间的数据交互。 几个概念: 主机:发起通信的一方 从机:被主机寻址的一方 发送器 接收器 应当注意的是,主机可能是发送器也可能是接收器,从机同理。 例如当IC1要发送信息给IC2,则此时本次通信是IC1发起的,因此IC1是主机。同时,信息由IC1发送,因此IC1是发送器,IC2是接收器。 另一种情况,如果IC1要让IC2发点信息过来,此时通信依旧是IC1发起的,因此IC1还是主机。但是这时,IC1就是接收器,而IC2就是发送器了。 总线特征: 两条线,一条是SCL(时钟线),SDA(数据线)。要求连接的引脚都必须是OC门或者OD门。 数据传输特征: 数据必须在SCL为低电平的时候改变,在SCL高电平的时候必须保持稳定。因为该协议通过SCL高电平时,数据线的变化来决定终止或者开始。 开始:SCL为高电平,SDA从高->低 终止:SCL为高电平,SDA从低->高 字节传输格式: 发送每个字节后必须跟一个响应位。首先传送MSB。 响应(ACK): 发送完一个字节后。主机产生一个响应时钟脉冲。发送器(不一定是主机)释放SDA,由接收器将SDA拉低,在响应时钟周期的高电平期间保持低电平。 不响应(NACK): 在响应脉冲周期,保持SDA为高电平。 如果主机是发送器,那么当从机无法接收数据后,会发回NACK,也就是不响应。此时主机应停止,或者重新寻址(其他器件)(等老子消化一下再来) 如果主机是接收器,那么当主机收到需要的所有数据之后,需发回NACK。然后发送停止信号。
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
xilink机器人#1 · 2023/5/23
bd