保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

基于VHDL的I2C总线控制核设计


=100/[2×(1+4)]=10MHz
  
  fi2c=10/[6×(1+16)]=0.098MHz=98kHz≤100kHz
  
  可以看出,这样设备时钟尺度寄存器容易实现100MHz~100kHz的转变。
  
  ③需要设置与DSP的相互通信的机制。由于C6711的CPU运行速度为150MHz,而I2C的速度仅为100Kb/s,为了不影响DSP程序的高速运行,采用中断机制。当DSP发出读、写命令后,继续执行自己的程序,而由I2C控制核完成命令后,I2C_top模块负责向DSP发中断请示eint。DSP在中断服务程序中读取SR,从RXR中读数,并发出新命令到CR,发送新数据到TXR。
  
  2状态机描述
  
  设计的核心工作是对I2C总线命令及时序的状态划分。在控制核内共设置了两个状态机,分别称为命令状态机和时序状态机。其中,命令状态机用于管理I2C总线上的命令状态,如表1所列,并实现I2C总线具体的读、写操作的命令状态转移过程;时序状态机用于实现I2C总线上启动、停止、读、写、确认等命令的具体时序关系。这样就把控制核从逻辑上分为两个状态机,共同完成最终的总线命令与时序。
  
  2.1命令状态机
  
  命令状态机是I2C_cmd模块的核心部分。该模块的主要功能有两个:一是把I2C_top模块发送的start、write、read、stop四个命令信号转化命令码,发送I2C_core模块;二是实现DSP发出和从slave接收到数据的串并转换。
  
  从I2C总线的通信协议中可以看出I2C总线上的信号可以分为空闲(IDLE)、启动(START)、读(READ)、写(WRITE)、确认(ACK)和停止(STOP)六种工作状态。在IDLE时,SCL和SDA都为高电平,从设备不断检测Start命令的出现。I2C控制核(即I2C总线的主设备)在接收到DSP发送来的Start命令后,主设备进入START状态,并根据Read和Write命令,可以进入READ或WRITE状态。由于主机的读、写操作都是以字节进行的,对应8个周期的I2C总线读/写操作,故设置一个8字拍的计数器,使得READ或WRITE状态能维持8个SCL周期。在完成字节读或写操作之后,都将进入ACK状态。进入ACK,标志一个DSP的读/写命令已经完成,因此发送中断申请给DSP。在中断服务程序中,DSP查询状态寄存器后,再发出下一个命令。这时I2C控制核,或者是转移到IDLE,或者是转移到STOP。命令状态转移关系如图2所示。
  
  2.2时序状态机
  
  I2C_core模块负责与视频编码器、解码器的I2C接口,最终实现I2C总线信号SCL和SDA的启动、停止、读、写、确认等具体操作的时序关系。其功能的实现主要由时序状态来完成。根据I2C总线通信协议中SCL和SDA之间的时序关系,总线上包含两种命令(Start/Restart,Stop)和两种操作(Write,Read),时序关系如图4所示。Start命令:在SCL为高电平时,SDA上出现一个下降沿。Stop命令:在SCL为高电平时,SDA上出现一个上升沿。Write操作:SDA只能在SCL为低电平时变化,在SCL为高电平时应保持不变。Read操作:只能在SCL为高电平时,对SDA进行采样。
  
  图4
  
  为了叙述上的方便,每个命令状态在时序上划分为5个

《基于VHDL的I2C总线控制核设计(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/172485.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。