当前位置:首页 >> 技术频道 >> 电路设计

多DSP局部总线与VME总线的接口设计

来源:现代电子技术 作者:柳兵 苏涛 发布时间:2009-06-26 09:34:47 发表评论

摘要:用VHDL语言实现了多DSP局部总线到标准VME总线普通I/O模块和中断请求模块的设计,双口RAM的存储空间映射到工控机的存储空间的地址为0XC0410000~0XC0413FFFC。

关键词:接口设计

 

  I/O模块标准传输的过程描述为:idle状态时,地址监测划模块应处于VME总线地址译码和访问模式监测状态,本模块的访问模式为A24-D16标准数据访问模式。当VME主机输出的地址和访问模式与本模块一致时,即输入地址VA20~VA23为程序所设的地址,AM码等于3A(H),LWORD为高,VA1为低和AS为低,地址监测模块输出“从模块选中信号”,启动了从模块访问,这时模块进人selection状态。

  进入selection状态后,程序监视DS0,1(数据选通信号)和WRITE(读写信号)。当DS0,DS1都为低,WRITE为高时,模块进入read状态;当DS0,DS1都为低,WRITE为低时,模块进入write状态。

  当模块处于read状态时,FPGA置双口RAM的CER为低使能双口RAM,OER为低使能数据输出,RWR为高关闭写使能,使双口RAM为数据输出状态。FPGA还要打开总线驱动使能,设置总线驱动方向,使VME地址总线为输入,数据总线为输出。

  当模块处于write状态时,FPGA置双口RAM的CER为低使能双口RAM,RWR为低使能写信号,OER为高关闭输出数据使能,使双口RAM为数据输入状态。FPGA还要打开总线驱动使能,设置总线驱动方向,使VME地址数据线都为输入。

  为了设置“读应答使能”和“写应答使能”,模块在进入read(读数据状态)或write(写数据状态)后,都使能一个计数器计数。当计数器的计数值为某值时(此计数值可以用来调整读写周期的大小,本例中使用32 MHz时钟时,计数值为1即可),分别置“读应答使能”和“写应答使能”有效,模块进入answer(应答状态)状态。在模块进入an-swer后,程序置DTACK为低,向主机发送数据传送应答。这样,当主机向双口RAM写数据时,通知主机可以释放总线;当主机从双口RAM读数据时,通知主机数据已经稳定可以锁存数据。主机收到DTACK后释放DS0,DS1为高,AS为高;模块检测到DS0,DS1为高,AS为高后,将DTACK置高,关闭双口RAM使能和VME总线驱动,模块进入idle(空闲状态),一个标准的VME总线传输周期结束。

  整个过程的仿真时序波形如图3所示:图中,“000”表示idle状态,“001”表示selection状态,“101”表示read状态,“011”表示write状态,“111”表示answer状态。

  

 

  4.2 中断请求模块的设计

  本模块设计采用VHDL语言编写程序,使用进程对中断产生模块的功能进行描述,即用进程中if-elsif-else语句来描述这个时序过程。

  中断模块负责产生标准VME总线中断,处理VME主机中断管理模块发来的中断响应。程序设计了一个8位的内部寄存器VINT,用来控制中断信号的产生,寄存器位VINT1~7对应IRQ1~7,控制VME总线中断信号的产生和撤销,VINT0作为发中断使能位.当VINT0等于1时,程序检查VINT1~7,置相应的中断请求信号线IRQ1~7为低,便向监控该信号的VME主机中断管理模块发出了中断请求。

  中断请求模块发出中断请求后,监控输入信号IACK-IN和A1~3,等待VME主机中断管理模块发来的中断响应。当检测到IACKIN为低,即开始中断号对照,检测A1~3上的值是否和本模块发出的中断号一致,如果不一致就将驱动IACKOUT输出菊花链为低,如果一致将该中断的状态/识别码放到VD0~7上,当数据稳定后,驱动DTACK为低,通知VME主机中断管理模块取走中断状态识别码,主机进入相应的中断服务程序.即完成了从模块VME总线中断的发送和响应过程。

  5 结 语

  用VHDL语言实现了多DSP局部总线到标准VME总线普通I/O模块和中断请求模块的设计,双口RAM的存储空间映射到工控机的存储空间的地址为0XC0410000~0XC0413FFFC。使用32 MHz时钟时.通信速率町达16 MB/s,能够满足雷达信号处理板到终端通信的要求。

0
顶一下
0
踩一下

相关文章

发表评论

请自觉遵守互联网相关政策法规,作者管理后台可以删除恶意评论、广告和违禁词语。