九IIC驱动原理分析

Posted lxl-lennie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了九IIC驱动原理分析相关的知识,希望对你有一定的参考价值。

学习目标:学习IIC驱动原理;

一、IIC总线协议

IIC串行总线包括一条数据线(SDA)和一条时钟线(SCL),支持“一主多从”和“多主机”模式;每个从机设备都有唯一的地址来识别。

技术分享图片

图 1 IIC 主从结构

二、IIC信号和时序

IIC总线有3种类型信号:

1)开始信号S

SCL为高电平,SDA由高电平跳变为低电平,开始传输数据。

2)结束信号P

SCL为高电平,SDA由低电平跳变为高电平,结束传输数据。

技术分享图片

3)响应信号ACK

接收器在接收到8位数据之后,在第9个时钟周期,拉低SDA电平。(如图Acknowledge)

技术分享图片

数据传输过程中,SDA上的数据必须在SCL高电平期间保持稳定,SDA上的数据在SCL为低电平期间变化:

技术分享图片

三、数据传输格式

IIC主从机之间通讯步骤如下:
1. 主机发送一个起始信号S通知总线上的从机就位;
2. 主机发送从机地址和读写标志共8位,其中从机地址占高7位,读写标志占用最低位(0为写,1为读);

3. 从机给主机回复响应

4. 紧接着一系列的字节及其响应:

1)如果是写模式, 主机发送一字节数据等待从机响应,主机收到响应之后如果还有数据要发就继续发送第二段数据等待响应…直到发送完成;

2)如果是读模式, 此时主机读取从机发来的数据,并给从机响应, 如果从机还有数据要发送(接着汇报第二段),主机接着读取然后发送响应给从机…

5. 主机发出P信号结束本次传输。

技术分享图片

IIC写操作

主机开始信号-->(7位从机地址+1位写标识)-->从机ACK响应位-->主机发DATA1-->从机ACK响应位.......->主机P信号

技术分享图片

 IIC读操作

主机开始信号-->(7位从机地址+1位读标识)-->从机ACK响应位-->从机发DATA1-->主机ACK响应位.......->主机发送 NACK -->主机P信号;





以上是关于九IIC驱动原理分析的主要内容,如果未能解决你的问题,请参考以下文章

驱动程序实例:mpu6050(IIC + cdev)

Kernel的IIC驱动分析

Android中Input型输入设备驱动原理分析

activiti 向下驱动原理分析

九:Collections之Map&List&Set详解

28.Linux-IIC驱动(详解)