基于AD6644的中频数字处理模块的设计
首先介绍ADC与FIFO的接口。AD6644的14位采样信号输出D?13?0?与两个FIFO的数据输入D?15?0?相连(FIFO的D15和D14悬空),DRY信号经二分频后,一路连接低16位FIFO1的LDCK引脚,另一路经“非”门反相后连接FIFO2的LDCK引脚, DRY脚输出的是ENCODE信号的同频反向延迟信号。从时序图图6中可以看出,在DRY的上升沿处,采样信号D?13?0?准备输出,DRY信号可准确地作为后续FIFO的触发存储时钟信号。经二分频后的DRY信号在上升沿处交替触发FIFO1和FIFO2的写时钟,将奇偶采样信号分别存入不同的FIFO。
接着介绍FIFO与EMIF的接口。对于读FIFO的操作,这里用到EMIF异步存储器控制信号:输出使能AOE和读使能ARE、CEn是外部空间选择信号。从图中逻辑关系可看出,当AOE与CEn都有效时,OE有效,片选使能两个FIFO。当CEn和ARE同时有效时,UNCK无效,待读出的数据在此时进行初始化,随后ARE会跳变为正电平?4?,使UNCK产生上升沿,FIFO中数据被读出。图中两个FIFO的半满信号HF经过一个“与”门连接至DSP外部中断引脚EXT_INT,在运行中不断检测HF管脚状态。当两个FIFO皆达到半满时,“与”门输出由低变高,上升沿触发DSP外部中断EXT_INT。DSP启动DMA(直接存储器存取)以突发的方式读取FIFO数据。FIFO1中数据作为低16位,FIFO2中数据作为高16位,合并为32位数据读入DSP内部存储空间。
有一个问题值得注意,两个FIF
O在本次读取完成之前,有可能再次达到半满状态,使得“与”门提前产生上升沿,而当本次读取完成后,“与”门输出已保持为高电平,不会再产生上升沿来触发新的中断,而中断是靠上升沿触发的,所以会导致传输停止。为了解决这个问题,将DSP计时器的TINP0管脚配置为通用I/O口,也与“与”门输出相(接上页)
连,用来辅助检测FIFO的半满状态。这样当本次读操作完成时,如果检测TINP0口为“1”,说明FIFO又一次都达到半满,则再次启动DMA进行数据传输。因此,在程序设计进入外部EXT_INT中断服务程序时,首先屏蔽EXT_INT,保证在本次DMA传输中不对中断的任何触发做出响应,然后启动DMA进行本次数据传输,完成本次传输后,发送一个帧传输结束信号到CPU,DMA传输中断。在此DMA中断服务程序中,检测TINP0,如果为高电平,便再次启动DMA传输;否则使能中断EXT_INT,等待“与”门的下一次上升沿触发。这种中断与轮询方式的双重机制保证了数据传输的可靠性。
3 布线调试经验及结论
由于本模块涉及模数混合的高速电路设计,所以电路板应严格分为模拟区和数字区,以ADC作为两区的交界。内层地也应相应分为数字地和模拟地,并在ADC附近通过磁珠在一点相连,以消除数字地对模拟地的干扰。ADC的时钟与模拟信号的输入应尽量隔离,晶振放置应尽量远离供电电路。对于FIFO,为了使LDCK、UNCK、HF、RESET等信号正确且波形良好,保证数据的读取不会产生丢失和误读,应减少对这些信号线的干扰,可采取走线适当加粗、加信号包地的措施。在实际调试过程中发现,由于AD6644的DRY信号输出的驱动能力较小,使得FIFO数据有时发生漏读现象。采用门电路进行整形和驱动,漏读现象可得到解决。
本设计通过少量集成芯片辅以很少的分立元件,实现了中频数字处理模块的功能,并且精度和可靠性都有一定的保证。在ADC与DSP之间通过奇偶数据分离的FIFO缓冲接口,在降低数据率的同时,还能为后续多相滤波等算法提供奇偶分离。经过调试,该接收系统在输入中频为5.12MHz、带宽为2.56MHz的模拟信号时,其采样精度可保证在12位以上,满足了DSP信号处理的要求。
《基于AD6644的中频数字处理模块的设计(第3页)》