基于FPGA+DSP架构的高速通信接口设计与实现
http://tech.ddvip.com 2007年12月23日 社区交流 收藏本文
内容摘要:ts201与ts101的性能比较,但没有针对两者的链路口进行详细介绍,本文对两者的链路口进行了细致的分析和比较。所设计的采集系统中,dsp与fga的通信仅限于fpga发、ts101收的单工通信;给出了fpga内部没计ts101链路口的框图,但只给出了简单的介绍,无法给设计者以参考。本文采用altera公司cyclone系列芯片ep1c12实现了与ts101/ts201两种芯片的链路口的双工通信,并给出了具体的设计实现方法。
(3) 发送部分:与接收部分类似,也南编码和缓存两部分组成,相应的设计基本相同,这里不作过多介绍。由于dsp链路口每次传输数据个数的最小单位dspfpga是4个32位字,即8个链路时钟周期,所以发送时钟廊该每8个时钟周期一组,以凑够128bit,避免传输错误,其中多余无效的数据dsp可以自行舍去。发送部分采用dsp外部中断方式而不是链路口中断方式通知dsp接收数据。
ts101的链路口通信协议要求链路口dspfpga接收端在传输启动一个周期后,将其lxclkout拉低,若可以继续接收,在下一个周期再将其拉高,以此作为连接测试。实际运行中发现,当fpga接收数据时,可将lxclkout信号一直驱动为高,不必做特殊的连接测试也能正确接收数据。另外,发送链路口数据时,由于发送缓存中已经对应仔好了要发送的8bit数据,故可以使用对fpga时钟信号(clk)倍频得到的pll_16ns信号来读发送缓存,读出的数据即链路口发送数据,再对pll_16ns信号的下降沿分频得到链路口的发送时钟信号。
限于篇幅,本文只给出fpca接收ts101数据的时序图,如图3所示。lxclkin、lxdat[7..0]是dsp的链路口输出时钟和数据,lxclkout是fpga的回馈准备好信号。仿真中dspfpga链路口数据采用1f~3e(十六进制)的32个8bit数据,即从2221201f到3e3d3c3b的8个32bit数据;pll_32ns信号是fpga内部锁相环产生的与dsp链路口时钟异步的32ns时钟信号,用来校验令牌指令;w_fifo_en信号足写缓存使能信号,当令牌验证后使能接收缓存;dsp_dat信号是dsp通过链路门传输的32bit数据,通过对链路口数据的编码得到;w_buf_clk信号由链路口时钟dspfpga分频处理得到,将上升沿对应的32bit dsp数据写入接收缓存,完成接收过程。

责编:豆豆技术应用