嵌入式通信协议-- I²C 协议篇(IIC)

目录

总述: 

1.1主机和从机

1.2发送器和接收器

1.3总结

2.1 I²C 通信过程

第一步:主机发送起始信号:

第二步:主机发送从机地址(寻址):

第三步:从机应答信号:

第四步:发送器发送数据:

第五步:接收器发送应答信号:

第n步:循环步骤4、5

最后一步:主机发送停止信号:

3 时钟同步

4.三种经典时序

4.1主机向从机发送数据

4.2.从机向主机发送数据

4. 3主机先向从机发送数据,然后从机再向主机发送数据


总述: 

I²C半双工总线(可以互相发送接收,但不能同时进行) ,串行通信(每次发送一个bit),可以连续发送多个字节(使用同一个时钟),主要用于近距离、低速的芯片之间的通信;I²C支持多个主设备和多个从设备连接在同一总线上每个设备都有一个唯一的地址,用于区分不同的设备

1.1主机和从机

I²C总线是一种多主机总线,连接在I²C总线上的器件分为主机和从机主机有权发起和结束一次通信,而从机只能被主机呼叫;

1.2发送器和接收器

发送器:发送器是指在特定时刻向总线上发送数据的设备,主机在发送数据时充当发送器,而从机在回应主机请求时也可以充当发送器。

接收器:接收器是指在特定时刻接收数据的设备。类似于发送器,当主机请求数据时,从机成为接收器;而当从机需要将数据发送给主机时,主机则成为接收器。

1.3总结

主机和从机的区别在于谁发起通信和控制总线,而发送器和接收器的区别在于当前正在进行的数据传输方向

2.1 I²C 通信过程

第一步:主机发送起始信号

主机通过在数据线(SDA)上产生一个特定的起始信号,启用I²C总线。这表示通信的开始。

SCL为高电平时,SDA由高变低表示起始信号  

SCL为高电平时,SDA由低变高表示停止信号

第二步:主机发送从机地址(寻址)

主机接着发送一个字节,包含目标从机的地址和读/写方向的指示(高7位通常为地址,低位表示方向)。这个地址使从机识别出自己是目标设备。

这里需要注意的是:总线上所有的从机接收到主机发送的字节都会进行与自己地址匹配,如果相同,则被确认被主机寻址,然后根据最低为0或者1来确定自己是发送器还是接收器。

最低位'0'表示主机发送数据,'1'表示主机接收数据;

  从左至右,前七位数据,最后一位读写位

第三步:从机应答信号

被寻址的从机会在收到地址后,发送一个应答信号(ACK),通知主机它已准备好进行通信。

第四步:发送器发送数据

发送器(可以是主机或从机)发送一个字节的数据到总线上。

第五步:接收器发送应答信号

接收器(可以是主机或从机)在接收到数据后,发送一个应答信号(ACK)给发送器,确认收到数据。

发送器发送完一个字节数据后,接收器必须发送1位应答位来回应发送器即一帧共有9位.

第n步:循环步骤4、5

以上步骤会重复进行,直到所有需要传送的数据字节都完成。

最后一步:主机发送停止信号

通信完成后,主机发送一个停止信号,释放总线,使其他设备能够使用总线。

3 时钟同步

在SCL为低电平时,SDA线上的信号可以变化,发送器可以将数据位置于SDA线上。(发送1bit数据)

当SCL变为高电平时,接收器读取SDA线上的数据,此时SDA线的数据必须保持不变。(读取1bit数据)

4.三种经典时序

 灰色为主机,白色为从机

4.1主机向从机发送数据

主机结束通信两种情况:主机向从机发送完数据,从机不再应答或者主机发送完不想发了。

4.2.从机向主机发送数据

主机结束通信两种情况:从机向主机发送完数据,主机不再应答或者从机发送完不想发了。

4. 3主机先向从机发送数据,然后从机再向主机发送数据

主机向从机发送数据,从机应答或者不应答,主机restart 建立通信,省略掉了stop的步骤,变为从从机器接收数据,知道最终主机结束通信

参考文献:主动光式颜色传感器技术详解. 感为智能科技. [2024-04-17]&创客学院技术文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值