I2C(总线)协议

I2C总线协议是一种常见的通信协议,具有一根时钟线SCL(Serial Clock)、一根数据线SDA(Serial Data)。

I2C:同步通信、串行发送数据、半双工

同步通信:通信双方靠一根时钟线来约定通信速率

串行发送数据:一根数据线传输数据

半双工:通信双方可以互传数据,但必须分时复用同一根数据线

数据线和时钟线均外接上拉电阻(弱上拉),空闲时处于高电平。支持多设备挂载,允许存在多主机,每个设备具有唯一地址。

起始信号:SCL为高电平期间,SDA由高电平切换为低电平

终止信号:SCL为高电平期间,SDA由低电平切换到高电平
 

发送字节:SCL低电平期间,才允许SDA上的电平变换,因此在SCL低电平时,主机将数据位依次放到SDA线上(高位在前),然后拉高SCL,此时SDA线上的数据有效且稳定,从机在SCL高电平期间读取SDA线上的数据,循环8次,即可发送一个字节。

接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位在前),然后拉高SCL,主机在SCL高电平期间读取SDA线上的数据,循环8次,即可接收一个字节。

发送应答:在接收完一个字节的数据之后,从机向主机发送一位应答信号,低电平表示继续接收,高电平表示接收结束。

接收应答:在接收到一个字节的数据之后,主机向从机发生一位应答信号,低电平表示继续接收,高电平表示接收结束。

主机向从机发送数据:
起始信号+从机地址_写 + 答  + 数据 + 答 + 终止信号

主机从从机接收数据:
起始信号+从机地址_读 + 答  + 数据 + 答 + 终止信号

主机首先向从机发送数据,然后从从机接收数据:
起始信号+从机地址_写 + 答  + 数据 + 答
+
起始信号+从机地址_读 + 答  + 数据 + 答 + 终止信号

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值