目录
一、iic总线
也可写作I2C(i2c),是真是存在的。
i2c是一种两线式串行总线,是半双工同步通信。
一条为数据线(SDA),另一条为时钟线(SCL),这两条线实现了主从设备间的交互。
二、i2c协议:
1、开始信号
在SCL线为高电平阶段时,由主设备把SDA线从高电平改变为低电平时就是开始。
2、结束信号
SCL线为高电平阶段,把SDA线从低电平改变为高电平,即表示结束。
3、注意
为了保证数据的有效性:
在SCL线为高电平阶段,保持SDA数据线稳定。
在SDA数据线的高低电平中,只能在SDA数据线为低电平才能修改。
三、i2c数据传输格式:
1、写过程
主机产生起始信号(S)——>发送从机设备地(7bit)址和方向(1bit)——>从机设备产生应答(表示匹配到某从机设备)——>主机发送从机内部地址——>从机产生应答——>主机发送数据——>从机产生应答——>直到结束交互。
2、读过程
(1)有内部地址的读过程
主机产生起始信号(S)——>发送从机设备地址(7bit)和读(R)——>从机设备产生应答——>从机设备发送数据——>主机设备产生应答——>直到结束。
(2)无内部地址的读过程
主机产生起始信号(S)——>发送从机设备地址和写(W)——>从机设备产生应答——>主机设备发送内部地址——>主机产生起始信号(S)——>发送从机设备地址和(R)——>从机设备产生应答——>从机设备发送数据——>主机产生应答——>直到结束。
四、i2c子系统
1、i2c子系统框架
(1)应用
i2c driver:从设备驱动层
需要和应用进行交互,封装数据。
————————————————————————————————————————
i2c core:i2c核心层
维护i2c总线(bus),其中包括:i2c driver、i2c device链表
————————————————————————————————————————
i2c device:i2c控制层、初始化i2c控制器
完成从设备将数据写入和读取。