基于FPGA的I2C总线通信验证
2012-08-22屈绿源王春龙
科技视界 2012年35期
屈绿源 王春龙
(1.贵州大学理学院 贵州 贵阳 550025;2.哈尔滨理工大学软件学院 黑龙江 哈尔滨 150080)
0 引言
I2C总线(Intel IC BUS)是Philps公司开发的一种用于芯片之间通讯的二线制串行传输总线,是基于串行时钟线SCL和串行数据线SDA完成的全双工的数据传送。与其它的并行数据传输线相比有以下几个优点:规范完整,结构独立,易于实现用户系统软硬件的模块化、标准化,同时还具有连线少、允许多主机控制、具有总线仲裁和同步的特点等,因此,已经被广泛用于各个领域,并成为了一种国际的工业标准。本文的宗旨是利用Verilog HDL在FPGA上模拟I2C接口时序,实现与I2C总线的通信。
1 I2C总线系统的工作原理
I2C总线系统有严格的时序规范,由两条串行接口组成,即SCL串行时总钟线和SDA串行数据总线。SDA和SCL都是全双工的串行总线,SDA用于传输地址和数据,SCL为传送数据提供时钟。I2C总线系统中主机和从机之间传送一次数据为一帧,由开始信号、地址,数据字节、应答信号以及停止信号组成。当启动通讯时,主机先发送一个开始信号和从机的地址字节 (由7位地址和一位读写信号标志位组成),若某个从机发出响应信号,则主机开始发送数据字节,每一个数据字节完成时,从机必须发出一个响应信号,主机接收到从机响应信号之后,才能发送下一个数据字节。当通讯停止时,主机产生一个停止信号。图1为一次完整的数据传送。

图1 I2C总线一次完整的数据传送过程
2 I2C模块的设计及其实现
由I2C总线规范可得到I2C的写和……
登录APP查看全文
