首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
|||||
基于VHDL的I2C总线控制核设计 | |||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 22:25:41 点击数:[] ![]() |
|||||
为了叙述上的方便,每个命令状态在时序上划分为5个子状态(A,B,C、D、IDLE)。I2C总线时序状态转移关系如图3所示,状态划分如图4所示。在实际中为了更精确地控制时序,对命令时序进行了更细的划分。START和STOP分为7位子状态(a~f,idle),WRITE和READ分为6个子状态(a~e,idle)。这个“6”也就是为什么在公式(2)中分母上有一个“6”。 SCL在Start命令的A状态时,保持原有电平不变,而在B状态时变为高电平,这样就可以实现Restart命令。系统时钟信号eclk由时钟尺度因子分频,得到状态转移的同步时钟使能信号(eclk_en)。在eclk和eclk_en的控制下进行状态移转,最后都转移到空闲状态(IDLE),并保持最后一个状态时的信号电平。图4中标注了每个命令的关键时刻。 3 中断信号的处理机制 I2C控制核作为I2C总线的主设备,是在DSP的控制下工作的。它采用中断机制与DSP通道。当一个读写命令完成后,主设备会向DSP发出一个中断申请信号eint(上升沿有效)。在DSP的中断服务程序中,置位命令寄存器的中断响应确认位(i_ack_r='1'),使主设备清除其发出的中断申请信号(eint='0'),而i_ack_r信号将在置位命令结束后的下一个时钟上升沿自动清除。这样,可以允许主设备发出下一个中断申请。 begin if(nReset='0')then int<='0';i_ack_r<='0'; elsif(eclk'vent and eclk='1')then if(nce='0'andnAwe='0')then if(core_en='1'and eadd="001")then --写入命令寄存器 i_ack_r<=cr(7);--写入'1' end if; else i_ack_r<='0'; --自动清除 end if; int<=cmd_done_ack and ien; end if; Eint<=int and(not i_ack_r_;end process;命令码 4 EDA综合结果与结论 使用Xilinx ISE6.1对I2C核的VHDL描述进行综合(synthesize)和实现(implement),目标器件采用Xilinx公司的高密度系统级FPGA-Virtex系列芯片v50cs144-6。设计的总体等效门数为1844门,系统时钟的最大频率为120.758MHz。图5为使用ModelsimXE5.6a对在目标器件上布局布线后的VHDL模块进行仿真(Simulate Post-Place & Route VHDL Module)的结果。其中,edat信号上“10010000”中的“1”依次是启动和写命令;“01100001”中的“1”依次是停止、读、中断清除命令。从图中可以看出,实现了从TMS320C6000 EMIF接口到I2C总线接口的转换功能,并实现发中断申请(eint=1)和清除中断申请的功能,完成了I2C总线通信协议的启动、写、确认,读、确认、停止操作的时序。 |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |