您的位置:首页 > 其它

标准I2C设备工作流程

2014-03-26 10:48 204 查看

I2C读写流程

系统中相机输出视频信号通过BNC接口流向TVP5146,TVP5146完成模拟信号向数字信号的转换过程。而TVP5146参数的设置需要通过I2C总线完成。以下是对I2C简单的说明,主要从I2C总线特点、常用命令和工作时序三方面来说明。

一 I2C总线特点

1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;

2、每个连接到总线的器件都可以通过唯一的地址寻址;

3、传送数据必须以8位字节方式传送;

4、I2C设备发送数据高位在前;

5、SCL时钟线始终由主设备控制。

二 I2C常用命令

在以下描述中所有关于对SDA、SCL的电平转换描述都是相对于主设备来说的。

1、开始命令

在SCL高电平期间,SDA由高电平跳变为低电平,这里称为负跳变。

2、停止命令

在SCL低电平期间,SDA由低电平跳变为高电平,这里称为正跳变。

3、读写数据

I2C器件从设备的读写操作都是在SCL为高电平时完成的,只有SCL在低电平时发送方才能改变所发送的数据。

4、写应答

主设备每向从设备写完一次数据(一字节8位)后都需要等待从设备的应答信号,以确认从设备已经准备好了接受下次数据发送。

从设备的应答信号为:从设备在接收完一个字节后,在SCL的第九个脉冲时需要把数据线SDA置为低电平。

5、读应答

主设备没读完一次数据(一字节8位)后都需要给从设备一个应答信号,以说明主设备是否还需要继续读数据。

读应答其实可以分为两种情况:

1> 读完一字节数据之后还要读数据,此时需要向从设备发送低电平,以下称为读ACK应答;

2> 读完一字节数据之后不需要继续读数据,此时需要向从设备发送高电平,以下称为读NACK应答。

6、注

在主设备开始数据的读写时需要向总线发送第一字节数据。

第一个字节数据具有特殊含义:高七位是从机的地址,第八位是传送方向位,0表示主机发送数据(写),1表示主机接收数据(读)。被寻址到的从机设备按传送方向位设置为对应工作方式。

标准I2C总线的设备都有一个七位地址,所有连接在I2C总线上的设备都接收启动信号后的第一个字节,并将接收到的地址与自己的地址进行比较,如果地址相符则为主机要寻访的从机,应在第九位答时钟脉冲时向SDA线送出低电平作为应答。

三 I2C写一字节数据工作流程

1、 主设备发送开始命令;

2、 写第一字节数据,寻址从设备并确定主设备要发送数据;

3、 等待应答信号;

4、 写地址;

该地址为从设备要存放数据的地址。

5、 等待应答信号;

6、写数据(要写入从设备的数据);

7、 等待应答信号;

8、 主设备发送停止命令;

四 I2C读一字节数据工作流程

1、 主设备发送开始命令;

2、 写第一字节数据,寻址从设备并确定主设备要数据;

3、 等待应答信号;

4、 写地址;

该地址为所读数据在从设备中所存放的地址。

5、 等待应答信号;

6、 主设备发送开始命令;

7、 写第一字节数据,寻址从设备并确定主设备要读数据;

8、 等待应答信号;

9、读数据;

10、 主机发送应答信号;

1> 如果要继续读数据则发送读ACK应答,这时从设备会把地址自加一主设备等待下次读数据;

下次读数据只需要重复第9步既可。

2> 如果不需要继续读数据则发送读NACK应答,告诉从设备停止读操作。

11、主设备发送停止命令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: