数字时钟管理单元(DCM)是FPGA内部管理、掌控时钟的专用模块,能完成分频、倍频、去抖动和相移等功能。通过FPGA的DCM可以很方便地对AD9446的时钟输入信号进行掌控。在实际电路中需要注意的是要做到DCM倍频输出的时钟信号与AD9446的时钟输入信号保持电平匹配。
下面给出调用DCM后时钟输出的VHDL语言描述:
2.3.2 数据压缩
数据压缩处理是对射频信号高速采样后进行前置处理的重要环节之一,需要在保持超声回波信号基本特征前提下对采样数据进行在线压缩,而且要求压缩后的数据与原始采样信号的包络相吻合。为此,在每次压缩过程中,只取采样所得的最大值,而舍弃其他采样值。FPGA将计算所得采样数据的压缩比、探头前沿延时计数值等数据送入相应的锁存器,然后发出时序复位命令并发射,启动探头延时计数,延时到后启动A/D采样,同时压缩比计数器开始计数,在时钟信号的控制下,每采样一次,压缩比计数器减1,并将当前采样值与前次采样值比较,如大于则保存,否则舍弃,直至压缩比计数到零后,得到一个有效的采样数据。同时压缩比计数器自动复位,重新开始计数,其工作流程如图4所示。
2.3.3 数据缓冲
为了解决前端数据采集与后端数据传输在速率上的不匹配问题,在FPGA内部设置一块数据缓冲FIFO,大小为8K×16 b,压缩后的数据直接存储到FIFO中,而微处理器对FIFO中数据的读取通过中断方式完成。数据缓冲FIFO通过core generator例化,只需要少量的读/写控制逻辑就可以使FIFO正常工作,而且FIFO的大小可以在FPGA提供的RAM位数范围内灵活设置。下面给出例化后的FIFO的VHDL语言描述:
保存在FIFO中的数据通过这些逻辑控制端口便于微处理器对其进行读取、清零等操作。
3 结语
设计的基于AD9446的数据采集模块采用FPGA实现数据采集控制、数据压缩及数据缓冲等功能,简化了硬件电路,提高了模块的可靠性和稳定性,并有利于模块的功能升级。同时采用高速高精度模/数转换器满足了数字式超声波探伤系统对数据采集精度方面的要求。另外,FP-GA对数据进行的预处理,方便了微处理器对数据的调用和后处理。