基于FPGA的I2C总线通信验证

2012-08-22 08:02屈绿源王春龙
科技视界 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的写和读的命令格式如下:

(1)I2C 总 线 写 命 令 格 式 :<Start>-<Write Slave Address+W/R bit>-<Ack>-<Register Address> -<Ack> -<W_Data1> -<Ack> -<W_Data2> -<Ack>…<Stop>.

(2)I2C 总 线 读 命 令 格 式 :<Start>-<Write Slave Address+W/R bit>-<Ack>-<Register Address>-<Ack>-<Restart>-<Write Slave Address+W/R bit>-<Ack>-<R_Data1>-<Ack>-<R_Data2>-<Ack> … <Stop>.

图2 I2C主机的状态转移图

本文中按照以上两个读写过程,用Verilog HDL语言使用状态机的方式实现,如图2所示。状态机的编码方式使用独热码,不仅可以防止毛刺引起状态转移,而且还可以提高电路的速度和可靠性。本文中I2C总线的传输速率为400kbit/s。

3 I2C通信仿真与调试

图3是在Modelsim6.5中的时序仿真波形图,模拟了I2C总线系统的写和读过程。对I2C总线系统的仿真和调试,主要是看时钟线SCL以及数据线SDA的输出是否满足I2C总线系统规范,为此,本文中把I2C模块分成两个模块master和slave,然后在顶层模块里面调用这两个子模块。当SCL保持高电平时,SDA线从高电平跳变到低电平,产生开始信号,随后SDA线发送8位地址,其中包括7位从机地址和1位读/写位,此时SCL需要发送9个脉冲,第9个脉冲为从机的响应脉冲,如果从机响应,则SDL为高电平,随后主机继续发送寄存器地址、数据字节直到产生停止信号。SCL保持高电平,SDA从低电平跳变到高电平表示停止信号。产生停止信号后,SCL和SDA线都保持高电平不变,等待下一个开始信号。图4和图5是使用示波器观测FPGA和I2C总线接口通信的时序波形。

图3 I2C的一次写和读过程

图4 I2C写的波形

图5 I2C读的波形

4 结束语

以上是对主机和从机的仿真,从仿真波形和示波器观测到的波形可以看出,整个时序基本上满足了I2C总线系统的时序要求,而且本文中所编写的代码是可综合的,并且在Xilinx公司的Spartan-3E系列的XC3S250E器件上验证通过的,基本满足了本文的宗旨。

[1]夏文宇.Verilog数字系统设计教程[M].北京航空航天大学出版社,2005.

[2]何立民.I2C总线应用系统设计[M].北京航空航天大学出版社,2004.

[3]李广军,王厚华.使用接口技术[M].电子科技大学出版社,1997.

[4]邓云祥,孟劲松,苏燕辰.Verilog HDL数字电路设计[J].中国测试技术,2005,3(13):103-105.

猜你喜欢
高电平字节时序
一种基于FPGA的PWM防错输出控制电路
基于Sentinel-2时序NDVI的麦冬识别研究
No.8 字节跳动将推出独立出口电商APP
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
No.10 “字节跳动手机”要来了?
基于FPGA 的时序信号光纤传输系统
简谈MC7字节码
DM 50KW中波广播发射机欠推动故障分析
一种毫米波放大器时序直流电源的设计
PDM 1kW中波广播发射机保护电路分析