《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 业界动态 > 高速雷达数据采集系统的FPGA设计

高速雷达数据采集系统的FPGA设计

2009-06-12
作者:于坤林1,王书宏2,陈曾平2

    摘  要: 高速雷达数据采集系统的设计方法。该系统由FPGA芯片完成各芯片之间的逻辑控制,具有设计灵活、结构简单、实时性高、可靠性高等优点。 

    关键词: 高速雷达;数据采集系统;现场可编程门阵列

 

    目标的识别需要高精度的数据,为了得到这些数据,必须以更高频率对回波进行采集。而用于目标识别的精确数据所使用的采样频率通常需要达到36 MHz或更高。 

    系统采用的开窗采集是在目标检测成功完成的前提下进行的。它利用目标检测的结果,得到目标方位和距离信息,然后在下一次雷达扫描中,在该方位和距离上形成脉宽为1 μs的采集波门,利用这一采集波门控制采样电路模块,完成一次高采样频率、高精度的采集。 

1 数据采集系统的硬件设计 

    图1中,I路和Q路雷达信号首先分别进入衰减选择,接着进入直流电平调整,然后进入AD转换,在36 MHz采样频率下完成12位分辨率的AD转换,实现I路和Q路的数据采集。这里使用的AD芯片型号为AD9226-ARS,其主要性能指标:转换速度65 MS/s,精度为12位。具体的应用电路见图2。 

 

 

 

    该电路使用单端输入,输入电压必须在0.5~1.5 V之间,这可以通过一个运算放大器实现,本系统使用AD8056运放,实现直流电平调整,同时也起到缓冲的作用。具体电路图见图3。 

 

 

    为了尽可能提高AD转换后数据的分辨率,对电源、接地、电路布局进行了一些处理。所选用的运算放大器、电阻、电容等器件具有稳定的性能,电阻电容温漂小、漏电小。模拟输入的引线尽可能地短、粗。这些措施对实现分辨率指标有一定的帮助,保证了数据来源的可靠性。 

2 FPGA完成的工作 

    (1)采集波门的产生 

    如图1所示,进入FPGA芯片后的数据在保存到RAM中之前必须加入数据头,以便主机得到这些精细采集数据时能方便地区别各次采集,该数据头没有包括当前的方位信息,这是因为此时的方位和距离信息是已知的。 

    波门的形成过程见图4,是精细采集模块中数据形成流程图。首先,主机通过USB接口模块地输入端点2得到FIFO中的检测结果,然后取出感兴趣的检测结果,将其方位和距离信息通过输出端口2发送到XCS30内部的方位和距离寄存器中。在下一次雷达扫描过程中,不断比较当前方位,如果当前方位和方位寄存器中的值相等,再进行距离的比较。在方位相同的前提下记录当前距离,如果记录的当前距离与距离寄存器中的值相等,则开始一个波门。在波门有效期间,对I路、Q路进行36 MHz、12位的数据采集,采集结果通过XCS30保存到RAM中。当波门的有效时间持续有效一段时间后(这段时间决定采集波门的宽度),波门信号变为无效,至此完成一次开窗采集过程。 

 

 

    (2)从主机发送方位信息和距离信息到FPGA内部的方位寄存器和距离寄存器 

    方位寄存器为12位,距离寄存器为17位,考虑到USB接口芯片数据线为8位,同时根据USB协议主机发送字节数的约束,最后决定距离寄存器采用20位,20位中的高三位数据没有参与距离的比较。 

    写方位信息和距离信息到XCS30中的过程是通过接口芯片的块输出端点完成的。8051的数据线为8位,为了发送12位的方位信息或20位的距离信息,必须通过多次传输才能完成。 

    (3)记录当前方位和当前距离 

    对于当前方位使用一个12位的计数器进行方位脉冲的下降沿的计数,这个计数器的清零信号使用正北信号的下降沿。对于当前距离的记录,使用一个17位的计数器对36 MHz采集时钟进行计数,清零信号使用同步脉冲的下降沿。 

    (4)波门的产生和终止 

    在采样时钟的上升沿时,如果当前的方位和距离都是设定的方位和距离时,产生一个波门的开始信号,经过64个距离单元时间后,波门结束。这里的64个距离单元对应的时间为1.78 μs,也就是说,这时开的采集波门宽度为1.78 μs。 

    (5)在每帧数据开始时添加标志位(即数据帧加头) 

    检测时在数据进入双口RAM前有一个数据帧加头的过程,加入的数据头包括帧起始标志、当前方位信息。在精细采集过程中,由于每一帧数据都是在主机指定的方位和距离的前提下进行,所以没有必要再添加方位和距离信息。这里的数据头将只包括每一帧的起始标志。 

    (6)精细采集数据的存储 

    在波门有效期间,AD转换后的两路数据将保存到RAM中,在进入RAM中时,必须先加上数据头标志,然后再写入一次采集所得的数据。实现原理见图5。 

 

 

    在加数据头时,锁存器" title="锁存器" target="_blank">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器" title="锁存器">锁存器OE端由FPGA置为无效,此时的锁存器输出为高阻状态。FPGA将锁存器置为高阻的同时,将内部的“FFFFFF”放到数据总线上;在不进行加数据头时,锁存器OE端由FPGA置为有效,数据总线上的数据为锁存后输出的12位数据。这样通过对锁存器使能端的控制,实现了数据在保存到RAM之前完成添加数据帧标志的工作。 

    图5中,锁存器的锁存时钟CLK与AD转换芯片的采集时钟CLK反相,这样在晶振时钟的上升沿实现AD的转换,在晶振时钟的下降沿实现锁存器的一次锁存。通过这样的设计错开了AD采样和锁存采样的取样时刻,保证了数据的正确性。 

    (7)数据传输 

    对于cy7c68013C而言,其内部的8051有16位的地址线,但是考虑到外部存储器的容量为256 kB,8051的地址线仅能寻址64 kB,最后决定采用对读脉冲进行计数产生地址信息的方法实现对存储器的访问。除了对8051发出的读脉冲的异步处理外,在传输过程中还需要解决24位数据转换为8位数据、2路数据的分离等问题。可以通过图6来理解。图中RAM的读脉冲经过抽取8051(包含在cy7c68013C内的处理器)的读脉冲,每4个抽1个。在存储器接口方面,抽取的脉冲给RAM的RD端,完成存储器读脉冲的实现,每4次8051的RD脉冲读取一个RAM地址内的数据。与8051接口方面,先将8051的读脉冲延迟3个时钟,形成一个延迟的8051读脉冲信号,利用这个信号,完成把读入FPGA内的一个RAM地址的数据传送给8051,这个信号的第一个读脉冲的下降沿是第一时刻,第二个读脉冲的下降沿是第二时刻。在第一时刻读入数据为1010+regin[23:20],第二时刻读入数据为regin[19:12],这两个时刻读入的数据方为一个完整的采集结果数据,通过在主机的应用程序中组合两次读入的数据,最后得到的数据格式为“A+12位采集结果数据”,这一种格式表示是I路的12位数据。同理,第三时刻和第四时刻读入的数据为Q路的12位。传输精细采集数据时FPGA内部各个读脉冲之间的时序见图6所示。 

 

 

    以上是存储器读脉冲的实现过程,存储器地址则是通过对8051发出读脉冲计数而得到。 

    下面再从整体上看保存的精细采集数据是如何发送给USB接口模块的。基本原理可以通过图7来说明。传输过程为:当主机发送一个IN令牌给AN2131QC的管道2时,AN2131QC执行对应的管道中断程序。在中断程序中,AN2131QC发出连续的64个读脉冲,这64个读脉冲通过4抽1,得到16个读脉冲。这16个读脉冲送给存储器的RD引脚,同时计数器对16个读脉冲进行计数,得到存储器的地址送给存储器的地址线。在第一个读脉冲的下降沿时存储器送出对应第一个地址的24位数据到XCS30内的24位寄存器regin。同时在XCS30内部,把这24位作为4组数据一次保存。AN2131QC发出的64个读脉冲延迟3个时钟后控制XCS30内部的数据线。第一个延时的读脉冲到来时,将图7对应的第一时刻内的数据送到8位寄存器,这时AN2131QC读入8位寄存器的内容;第二个延时的读脉冲到来时,将图7对应的第二时刻内的数据送到8位寄存器,AN2131QC读入该寄存器内容;第三个延时的读脉冲到来时,将第三时刻内的数据送到8位寄存器,AN2131QC读入该寄存器内容;第四个延时的读脉冲到来时,将第四时刻内的数据送到8位寄存器,AN2131QC读入该寄存器内容。通过四个延时的读脉冲,完成对应的存储器的第一个地址内24位数据的传输。主机发送一个IN令牌将引起AN2131QC发送64个读脉冲,完成存储器16个地址的数据的传输。 

 

 

    经过这样的处理,完成了24位到8位的转换,同时由于在XCS内部处理数据时,加入了“1010”和“1011”的通路标志,在主机接收到的数据中可以通过对此识别,分离开I路和Q路的数据。此外,由于在数据的保存过程中,每一帧开始写入的数据为FFFFFF,所以在主机的数据中,如果出现“AFFF BFFF”的标志时可以识别这一段数据为一个新的数据帧的开始。 

参考文献 

[1] 李广军,孟宪元.可编程ASIC设计及应用.成都:电子科技大学出版社,2000. 

[2] EDA先锋工作室,王诚.FPGA/CPLD设计工具Xilinx ISE5.x使用详解[M].北京:人民邮电出版社,2003.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。