2021-09-12

软件模拟I2C通讯笔记(主机)

1、基本术语

时钟、数据、全双工、半双工、应答、非应答、开始信号、终止信号、主机、主机地址、从机、从机地址、7位地址、通讯频率、周期T

2、I2C的硬件连接

I2C使用广泛,它主要使用两根线将主机和从机连接起来,同一网络中主机和从机可以有多个,但是同一时刻只能有一个主机。
SCL时钟线,用于同步主机和从机的时钟。
SDA数据线,用于传输数据。

3、通讯过程

2021-09-12

图2:I2C起始信号(图片来自百度)
上图中黑色处为起始信号:起始信号为当SCL为低电平时,SDA要处于高电平,然后SCL由低电平变为高电平,一段时间t_1后(一般取周期(通讯频率(根据芯片手册查询)的倒数)的1/5~1/4),SDA由高电平变成低电平,并保持住。一段时间t_2后(这个时间为半个周期时间减去t_1),SCL由高电平变为低电平。以上即为开始信号。

3.1.2发送从机地址

2021-09-12

图4:I2C发送从机地址和应答信号
当释放掉SDA数据后,当SCL为高电平的时候读取SDA数据的值,当SDA为高电平时,表示非应答,即从机未收到信号。当SDA为持续低电平时为应答。

3.1.4发送从机寄存器地址

2021-09-12

图6:I2C终止信号
终止信号为:当SCL为低电平时,SDA也为低电平,当SCL由低电平转换成高电平后,等待一段时间t_1后(一般取周期(通讯频率(根据芯片手册查询)的倒数)的1/5~1/4),SDA由低电平变成高电平,并保持住。一段时间t_2后(这个时间为半个周期时间减去t_1),SCL由高电平变为低电平。

3.2读数据

3.2.1开始信号

与写数据一样

3.2.2发送从机地址

与写数据一样

3.2.3应答与非应答

与写数据一样

3.2.4发送需要读取的寄存器地址

与写数据一样

3.2.5开始信号

与写数据一样

3.2.6发送从机地址

与写数据一样

3.2.7读取数据 2021-09-12

图7:I2C非应答信号

3.2.9最后一个数据读取完毕后

最后一个数据读取完成后,推介使用非应答,方式停止接收数据。并主机发送停止信号。也可以如例子所示直接使用停止信号停止传送(使用停止信号的方式建议在只有一个主机一个从机的方式使用)。

来源:落拾

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月11日
下一篇 2021年8月11日

相关推荐