相关服务

  • 《现代电子技术》2006年第23期摘录:2006年第23期总第238图

如发现有乱码,请点击下面链接浏览原文
正文摘录:

2006年第23期总第238图2的说明:(1)I。xCI。KIN由FPGA驱动;(2)I。xCI。K()UT由I.xCI。K1N触发;I)SP检测I。xCI。KIN高电平,I.xCI。K()uT令牌请求低电平必须保持6个周期,在第一次启动4字组传送时,检验I。xCI.KIN高电平。传送过程启动一个周期后,I。x—CI.KIN输入1.5个周期的低电平(应答);(3)I.xDATA对应I。xCI。K()UT的上下沿应保持稳定数据;(4)I.xDIR为1,表示【)St’发送数据,FPGA接收数据。hcL功Ⅱ(由asp结出)hc啦H(由fpg艏出)hDAT^UL位数据)hDIR0:输^端)图3FPGA向DSP传输数据时序图图3的说明:(1)I。xCI,K()UT由FPGA驱动;(2)I.xCI。KIN由I。xCI,K()UT触发;检测I。xCI。K()UT高电平,I。xCI。KIN令牌请求低电平必须保持6个周期,在第一次启动4字组传送时,检验I.xCI.K()UT高电平。传送过程启动一个周期后,I。xCI。K一()UT输出1.5个周期的低电平(应答);(3)I。xDATA对应I.xCI。K()uT的上下沿应保持稳定数据;(4)I。xDIR为O,表示r)St’接收数据,FPGA发送数据。4数据转换及链路口通信的实现在大多数情况下,FPGA两端的数据传输速率的要求使得两端数据量不匹配,这就需要用FIF()或双口RAM做缓存,其实现框图如图4所示。图4链路口通信买现框图(1)数据的串/并转换送往链路口输入数据为8路频率32MHz串行数据和2M的帧同步信号,相邻两帧之间有16位串行数据,需分别同时以帧为基准取数并转换为8位并行数据发送至一块DSP,转换后成为一路频率32MHz的8位串行数据。由于链路口是在时钟的上升沿和下降沿都锁存数据,所以送给链路口的时钟应为16MHz,且经验证该时钟频率可以保证数据的正确接收。由于两端数据量匹配,因此可省略双口RAM。首先,将8路数据按32MHz时钟分别移入8个16位移位寄存器,再以帧的下降延将移位器中数据打人8个16位寄存器,然后将这8个寄存器按32MHz的时钟上升沿依次8位输出,同时产生16MHz的链路口时钟。程序用VHDI。语言编写。在此应注意链路口时钟应先拉低6个时钟周期以上,且其第一个上升沿应对准第一个数据的稳定位置。在此,在输出数据之前让时钟为高,在第一个帧时将其拉低,第二帧后的32MHz时钟的上升沿开始输出数据,同时每来一次下降沿,链路口时钟翻转一次,从而产生16MHz时钟。输出仿真图如图5所示。图5FP【;A向链路口输出仿真[)SF,采用DMA方式进行接收,这样不会占用核的计算时间,从而使【)St’工作更加高效,在此,用I)SI’的2号链路口进行接收,其【)Sf’的DMA接收的程序为:xrO—O::ktl2一xrO::xrl一O::xr2一O::xr3一O::dclO—xr3:O;;xr4==Ox4d2::ktl2一xr4::xrO—k29::xr]一Ox20000004::xr3一Ox47000000:;dclO—xr3:O;;在设置DMA之前应先将对应的DMA传输控制块TcB寄存器dclO和链路口控制寄存器lctl2清零,这样可保证可靠接收。(2)FPGA接收链路口数据并进行并j串转换I=)Sf’链路口的时钟频率设置为37.5MHz,则发送频率为75MHz的8位数据,由于要求转化成两路16MHz的串行数据输出,两端的数据率不匹配,因此要用双口RAM进行缓存。接收时先将数据分别按链路口时钟的上升沿和下降沿写入丽个双口RAM,再用2MHz时钟读出并转化成串行数据,同时产生周期位2MHz的帧同步信号。由于读写双口RAM的时钟不同,故写数据需等待,以保证互相追赶不上。其内部双口RAM的读写地址模块和并j串转换模块等都是由VHDI。语言编写。该方法用了两个双口RAM,分别存放由链路口时钟上升沿和下降沿锁存的数据,由于每次传输数据量为16k个8位,所以每个双口RAM都是8k个8位的,因此地址线都是13位,且分别由链路口时钟上升沿和下降沿产生。其中一个产生写地址的程序为:57

阅读此文(图):   点击此处在线翻阅