软件模拟I2C通讯笔记(主机)
1、基本术语
时钟、数据、全双工、半双工、应答、非应答、开始信 、终止信 、主机、主机地址、从机、从机地址、7位地址、通讯频率、周期T
2、I2C的硬件连接
I2C使用广泛,它主要使用两根线将主机和从机连接起来,同一 络中主机和从机可以有多个,但是同一时刻只能有一个主机。
SCL时钟线,用于同步主机和从机的时钟。
SDA数据线,用于传输数据。
3、通讯过程
图2:I2C起始信 (图片来自百度)
上图中黑色处为起始信 :起始信 为当SCL为低电平时,SDA要处于高电平,然后SCL由低电平变为高电平,一段时间t_1后(一般取周期(通讯频率(根据芯片手册查询)的倒数)的1/5~1/4),SDA由高电平变成低电平,并保持住。一段时间t_2后(这个时间为半个周期时间减去t_1),SCL由高电平变为低电平。以上即为开始信 。
3.1.2发送从机地址
图4:I2C发送从机地址和应答信
当释放掉SDA数据后,当SCL为高电平的时候读取SDA数据的值,当SDA为高电平时,表示非应答,即从机未收到信 。当SDA为持续低电平时为应答。
3.1.4发送从机寄存器地址
图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发送从机地址
与写数据一样
图7:I2C非应答信
3.2.9最后一个数据读取完毕后
最后一个数据读取完成后,推介使用非应答,方式停止接收数据。并主机发送停止信 。也可以如例子所示直接使用停止信 停止传送(使用停止信 的方式建议在只有一个主机一个从机的方式使用)。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!