[开发资料] I2C 总线协议

[复制链接]
498|2
 楼主| forgot 发表于 2024-1-3 08:50 | 显示全部楼层 |阅读模式
I2C 总线使用两根信号线(数据线 SDA 和时钟线 SCL)在设备间传输数据。SCL 为单向时钟线,固定由主机驱动。SDA 为双向数据线,在数据传输过程中由收发两端分时驱动。

I2C 总线上可以连接多个设备,所有设备在没有进行数据传输时都处于空闲状态(未寻址从机接收模式),任一设备都可以作为主机发送 START 起始信号来开始数据传输,在 STOP 停止信号出现在总线上之前,总线一直处于被占用状态。

I2C 通信采用主从结构,并由主机发起和结束通信。主机通过发送 START 起始信号来发起通信,之后发送SLA+W/R 共 8bit 数据(其中,SLA 为 7bit 从机地址,W/R 为读写位),并在第 9 个 SCL 时钟释放 SDA 总线,对应的从机在第 9 个 SCL 时钟占用 SDA 总线并输出 ACK 应答信号,完成从机寻址。此后根据主机发送的第 1 字
节的 W/R 位来决定数据通信的发端和收端,发端每发送 1 个字节数据,收端必须回应 1 个 ACK 应答信号。数据传输完成后,主机发送 STOP 信号结束本次通信。

中国龙芯CDX 发表于 2024-1-9 15:08 | 显示全部楼层
单线传输速率应该不快吧
jf101 发表于 2024-2-25 18:01 | 显示全部楼层
SCL 为单向时钟线,固定由主机驱动。SDA 为双向数据线,在数据传输过程中由收发两端分时驱动。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2115

主题

14686

帖子

59

粉丝
快速回复 在线客服 返回列表 返回顶部