浅析I2C总线IP核设计

减小字体 增大字体 作者:申广兵  来源:本站整理  发布时间:2013-07-17 16:13:22

I2C(Inter-Integrated Circuit)总线是Philips公司开发的一种在微电子通讯控制领域应用广泛的多主从构架的两线式串行总线,具有接线数量少、控制简单、通讯速率高等优点。

1 I2C总线概述

I2C总线包括串行数据(SDA)和串行时钟(SCL),连接到其网络上的器件都具有唯一的地址编码,实现接收和发送数据功能。在系统中主机负责初始化数据并产生时钟信号,从机的主要功能是接收和发送数据。

I2C总线可以挂接的从设备的数量由其地址位数决定,标准中有7位和10位两种规格,实际应用中以7位地址位居多。

I2C总线的传输有三种模式:标准模式、快速模式和高速模式,最高速率可达3.4Mbit/s。I2C总线以8bits二进制数据为一个字节单位进行传输,每次独立数据传输完成后,接收端应给主机发送应答信号ACK,主机检测到该信号后,再启动下一字节的数据传输,否则,该次数据传输终止。空闲情况下,SCL和SDA都处于高电平状态。

2 I2C总线IP核的设计和功能仿真

2.1 I2C总线IP核的设计

I2C总线IP核包括三部分:字节命令控制器、位命令控制器和寄存器组。详细的结构如图1所示:

字节命令控制器从命令寄存器接收数据,并对数据进行并串转换。字节控制器对传输的数据以每一个数据位为最小操作对象。通过设置开始、停止和读位,实现数据传输过程的控制。字节命令控制器的程序状态转移图如图2

所示。

I2C总线的数据传输是通过位命令控制器实现的,通过控制SCL和SDA线生成START,重复START和STOP信号的指定电平。位命令控制器程序状态转移流程图如图3所示:其中A为`I2C_CMD_START,B为`I2C_CMD_STOP,C为`I2C_CMD_WRITE,D为`I2C_CMD_READ,E为default。

2.2 I2C总线IP核的功能仿真

为了验证IP核设计的正确性,在本设计中建立仿真平台,通过对I2C总线IP核的输入施加激励,对其进行功能仿真。仿真平台由主设备可仿真模块、I2C总线接口可仿真综合模块和从设备仿真模块组成,仿真平台结构如图4所示:

仿真的思路:首先将数据写入存储器中,然后通过控制将数据从存储器中读出,最后比较两次数据是否一致来判别设计是否正确。写入数据的过程:根据分频时钟的值,产生数据传输所需的时钟信号,在时钟的同步状态下,通过I2C总线接口IP核向将数据发送至从设备存储器。程序在ModelSim上进行功能仿真后的波形图如图5所示:

从图5仿真结果可以看出,在对应的地址段内,通过I2C总线IP核读出的数据和写入的数据完全一致,符合设计要求,同时数据变化时刻和保持时间均满足I2C总线通讯规范的要求。

3 结语

本文对某型武器中使用的I2C总线IP核的设计进行了研究,实现了全功能的I2C总线IP核,设计了可以仿真的主设备模块和从设备模块,并利用仿真软件ModelSim对设计的IP核进行了功能性仿真,设计的IP核功能正确,目前该IP核在某型武器中已进行成功应用。

Tags:

作者:申广兵
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论