IIC总线协议

转载 2015年11月18日 16:40:22

三轴陀螺仪的芯片MPU-6050芯片驱动是采用IIC总线协议和处理器进行通信。学习一下IIC总线的协议并总结在此:

处理器和芯片间的通信可以形象的比喻成两个人讲话:1、你说的别人得能听懂:双方约定信号的协议。2、你的语速别人得能接受:双方满足时序要求。

看IIC协议先:两条线可以挂多个设备。IIC设备(稍微有点智能的)里有个固化的地址。只有在两条线上传输的值等于我(IIC设备)的地址时,我才作出响应。


开始信号:处理器让SCL时钟保持高电平,然后让SDA数据信号由高变低就表示一个开始信号。同时IIC总线上的设备检测到这个开始信号它就知道处理器要发送数据了。

停止信号:处理器让SCL时钟保持高电平,然后让SDA数据信号由低变高就表示一个停止信号。同时IIC总线上的设备检测到这个停止信号它就知道处理器已经结束了数据传输,我们就可以各忙各个的了,如休眠等。

看数据怎么传:SDA上传输的数据必须在SCL为高电平期间保持稳定:因为外接IIC设备在SCL为高电平的期间采集数据方知SDA是高或低电平。SDA上的数据只能在SCL为低电平期间翻转变化。

响应信号(ACK):处理器把数据发给外接IIC设备,如何知道IIC设备数据已经收到呢?就需要外接IIC设备回应一个信号给处理器。处理器发完8bit数据后就不再驱动总线了(SDA引脚变输入),而SDA和SDL硬件设计时都有上拉电阻,所以这时候SDA变成高电平。那么在第8个数据位,如果外接IIC设备能收到信号的话接着在第9个周期把SDA拉低,那么处理器检测到SDA拉低就能知道外接IIC设备数据已经收到。

IIC数据从最高位开始传输。


再进一步说:IIC总线是允许挂载多个设备的,如何访问其中一个设备而不影响其他设备呢?

7bit表示从地址,那么可以挂载的从设备数是2的7次方128个。处理器想写的话:先发送起始位,再发一个8bit数据:前7bit表示从地址,第8bit表示读或者写。0write是处理器往IIC从设备发,1read是IIC从设备往处理器发。第9个时钟周期回复响应信号。

下面就以AT24Cxx为例详细说明一下:

首先发出一个start信号,从设备地址,R/W(0,写),回应ACK表示有这个从设备存在。这时候是处理器从指定的从设备读数据的从设备里8bit存储地址的指定。所以这里R/W是0为写。ACK回应有这个设备的话,处理器把要访问的从设备里的8bit存储地址写好。ACK对方回应。继续一个start信号+从设备地址,最低位是高电平表示读数据,回应ACK表示有这个从设备存在。在读数据的时候,每发出一个时钟,处理器会SDA上的数据存起来。那么发出8个时钟后处理器就能得到8位的数据。这时候若想连续读就不断回应ACK信号否则就发出停止信号。

读的过程:start信号,从设备地址,写,待读取存储地址,再一个start信号,从设备地址,读,8个时钟,从设备就把对应的数据反馈给处理器。

start信号,哪一个设备地址,写,紧跟连续两个字节的数据:要写的地址,对方收到8bit地址后回应ACK,再8bit数据发给从设备,对方收到8bit数据后回应ACK,处理器写完后发送停止信号。

模拟IIC总线协议

模拟IICIIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的一种简单、双向、二线制、同步串行总线,主要是用来连接整体电路...
  • ysudykx
  • ysudykx
  • 2017年03月29日 18:03
  • 997

IIC总线协议和硬件介绍

一、IIC总线协议和硬件介绍 1、IIC总线协议 1)IIC总线的概念         IIC总线是一种串行总线,用于连接微控制器及其外围设备,具有以下特点:         ①两条总线线路:...

面试你该如何回答---->IIC总线协议?

IIC即Inter-Integrated Circuit(集成电路总线) 面试的时候主要会遇到的IIC问题如下 介绍一下你了解的I2C? I2C总线是飞利浦(PHLIPS)公司推出的一种串行总线,用...

IIC总线协议

三轴陀螺仪的芯片MPU-6050芯片驱动是采用IIC总线协议和处理器进行通信。学习一下IIC总线的协议并总结在此: 处理器和芯片间的通信可以形象的比喻成两个人讲话:1、你说的别人得能听懂:双方约定信...

IIC总线协议

  • 2011年12月29日 19:38
  • 425KB
  • 下载

IIC总线协议中文版

  • 2012年12月13日 16:02
  • 857KB
  • 下载

Exynos 4412处理器IIC总线控制器(包括协议)

一、综述         Exynos4412精简指令集微处理器支持4个IIC总线控制器。为了能使连接在总线上的主和从设备之间传输数据,专用的数据线SDA和时钟信号线SCL被使用,他们都是双向的。  ...

IIC总线协议.ppt

  • 2012年07月27日 23:41
  • 266KB
  • 下载

IIC总线协议

  • 2012年06月02日 15:21
  • 885KB
  • 下载

单片机 IIC 总线协议 和 详细例程

先简单的说明以下I2C 总线, I2C 总线是一种串行数据总线,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。 处理器和芯片间的通信可以形象的比喻成两个人讲话:1、你说的别人得能...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IIC总线协议
举报原因:
原因补充:

(最多只允许输入30个字)