本实验要求了解I2C通信协议,掌握I2C总线的特征,编程访问I2C接口。本程序要求通过I2C访问扩展板上的ADV7181视频编解码芯片,要求写入的数据和读取的数据一致。



2.1 I2C 总线的特点

I2C是目前广泛应用的低速总线接口,主要用于对芯片的配置,其主要特点如下:
1) 只有两个总线信号:一个串行数据线 SDA, 一个串行时钟线 SCL。
2) 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址;主机可以作为主机发送器或主机接收器。
3) 它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁,防止数据被破坏。
4) 串行的 8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达 400kbit/s,高速模式下可达3.4Mbit/s。


2.2 I2C总线协议

I2C是目前广泛应用的低速总线接口,主要用于对芯片的配置,其主要特点如下:
1) 只有两个总线信号:一个串行数据线 SDA, 一个串行时钟线 SCL。
2) 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址;主机可以作为主机发送器或主机接收器。
3) 它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁,防止数据被破坏。
4) 串行的 8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达 400kbit/s,高速模式下可达3.4Mbit/s。
5 I2C只能在总线空闲时才能启动数据传输。
6) 在数据传输过程中,当时钟线为高电平时,数据线必须保持稳定。如果时钟线为高电平期间数据线电平发生变化,会被认为是控制信号。相应地定义了如下的总线条件:

➢ 总线空闲:数据线和时钟线均保持高电平。
➢ 启动数据传输:在时钟线(SCL)是高电平时,数据线(SDA)从高电平向低电平切换,定义为START条件,如图 15 1所示。
➢ 停止数据传输:在时钟线(SCL)是高电平时,数据线(SDA)从低电平向高电平切换,定义为STOP条件,如图 15 1所示。