基于ARM和FPGA的声纳波形产生系统设
扫描二维码
随时随地手机看文章
1、引言
最佳声纳系统的设计需要从声纳波形、声纳信道和声纳接收机三方面进行综合考虑[1]。在声纳信道一定的假设下,需要设计最佳声纳波形和最佳接收机,使声纳系统能在给定的声纳环境中对目标有最佳的检测效果。工作在浅水中的主动声纳,其性能主要受限于混响级。根据波形选择与信道匹配的原则,针对混响信道,所选的声纳波形应使其模糊度函数尽量与混响信道散射函数不重合,而与声传输信号散射函数尽量重合[2]。基于这样的原则,常用的声纳信号单频信号(CW)、线性调频信号(LFM)抑制混响的能力比较如下:在检测静止或低速目标时,LFM和短CW较长CW有更好的混响抑制能力,但短CW波只适合近距离目标;在检测高速运动目标时,长CW脉冲是最合适的信号形式[2]。由此可见,主动声纳要完成目标捕获、识别、跟踪等不同任务,需要发射不同的声纳波形。同时针对远距离、低速和高速运动等目标的不同情况,也需要灵活的选择声纳波形。正是基于这样一种需求,本文把具有强大控制能力的微处理器ARM与具有灵活波形产生能力的直接数字频率合成技术(DDS)结合起来,用FPGA实现DDS技术,设计出了基于ARM和FPGA的声纳波形产生系统。
2、DDS基本原理
随着微电子技术的迅速发展,具有频率切换时间短、频率分辨率高、相位变化连续、易实现信号的多种调制等诸多优点的DDS技术,有了广阔的应用前景。DDS技术可以理解为数字信号处理中信号综合的硬件实现问题,即给定信号幅度、频率、相位等参数,产生所需要的信号波形。
DDS的基本结构包括:相位累加器、相位-幅值转换电路、数模转换电路及低通滤波器等。相位-幅值转换电路根据转换方式的不同可分为两大类[4]:(1)ROM查找表法。ROM中存储有不同相位对应的幅度值,可根据相位累加器输出的相位值寻址ROM,输出对应的幅值序列。 (2)计算法。对相位累加器输出的相位值,通过数学计算的方法得到对应的幅值。常用的实时计算方法有泰勒级数求值法、反函数求值法、CORDIC算法等。
相位累加器是DDS电路中核心的模块,在工程实践上一般用数字全加器和数字寄存器的组合来实现,是一个典型的反馈电路。如图1所示。
其中, 为频率控制字, 为相位累加器的位数,fclk为系统参考时钟。相位累加器的工作过程为:每来一个参考时钟脉冲,频率控制字 与相位寄存器输出的相位数据累加一次,累加后的相位一方面反馈到全加器的输入端,以使全加器在下一时钟的作用下继续与频率控制字 相加;另一方面作为采样地址值送入ROM查找表。如此循环,当相位累加器累加满量后,就会产生一次溢出,ROM存储器的地址正好循环一次,完成一个周期性的动作,这个周期就是DDS合成信号的周期,累加器的溢出频率就是合成信号的频率[8]。图2为相位累加过程示意图及对应输出的占空比1:1的CW波。
[!--empirenews.page--]
一般地,DDS输出信号频率为一个参考时钟周期内的相位增量,由此可得:
由图2可知,相当与rad,相位累加器溢出一次所历经的采样脉冲(参考时钟)个数与DDS输出一个周期的信号所包含的采样脉冲个数是相等的,即:
将(1)式代入(2),可得:
由(3)可知,在参考时钟一定的情况下,频率控制字 决定了DDS输出频率。 实际上改变的是信号的相位增长速率, 越大,相位累加的曲线越陡峭,溢出一次所需的时间越短,对应输出信号的周期也越小,输出信号的频率就越大;与此相反, 越小,相位累加的曲线越平坦,溢出一次所需的时间越长,对应输出信号的周期也越大,输出信号的频率就越小;当 按线性变化时,输出信号即为线性调频信号,改变 的变化规律,就可实现不同规律的调频,如双曲、指数、对数调频等。当 =1时,DDS输出最小频率:
(4)式也是所谓的频率分辨率。
3、系统硬件实现
系统硬件设计采用模块化结构,由通讯模块、控制模块、波形产生模块和电源模块四部分构成,如图3所示。
3.1 控制模块及通讯模块
ARM作为控制模块的核心,选用Philips公司的ARM7TDMI系列微处理器LPC2292。控制模块和通讯模块实现了本系统与外部主控设备(一般为PC机)的通信,通过RS232串口,并口EPP或USB通讯接口,接收主控设备发出的声纳波形信号的幅度、频率、相位、带宽等参数控制字,用以控制波形产生模块产生相应的声纳波形。
3.2 波形产生模块
DDS技术的实现依赖于高速、高性能的数字器件,一般有两种方案,一种是使用DDS专用芯片,另一种用可编程逻辑器件FPGA自行设计。DDS专用芯片控制方式固定,价格较高,而FPGA以其速度高、规模大、可编程,以及有强大EDA软件支持等特性,十分适合实现DDS技术。本系统用FPGA实现DDS技术。FPGA选用Altera公司的Cyclone II系列的EP2C20F484C8N。
4、系统软件开发
本系统的软件主要分为主控设备应用程序设计,FPGA波形设计部分和ARM控制部分。
主控设备应用程序是在X86平台上,VC环境下开发的。主要功能是通过RS232串口,并口EPP或USB任何一种通讯接口,实现主控设备与ARM通信。ARM控制部分的程序实现对通讯接口的访问,并实现对FPGA的控制。
FGPA波形设计过程采用自顶向下模块化的结构,主要包括时钟模块、寄存器读写及控制模块、DDS模块,如图4所示。
相位累加器是决定DDS性能的一个关键部分,相位累加器设计的好坏将直接影响到整个系统的性能,因此要从FPGA内部结构出发,设计出既节约系统资源,又能大幅度提高系统速度和性能的累加器结构[3]。在设计相位累加器的加法器模块时不用库中提供的lmp_add_sub模块,而是采用流水线技术,使用Verilog HDL编程实现。流水线示意图见图5。
相幅转换采用ROM查找表法实现。主要考虑的问题是FPGA内部存储器容量的大小,而EP2C20内部有大量的ROM资源可利用,因此可直接调用lpm_rom模块来实现。[!--empirenews.page--]
FPGA模块化的设计,为ARM对其配置提供了极大的方便,ARM可把FPGA视为外挂的一片SRAM,通过外部存储器接口进行控制。
5、软硬件设计需要注意的几点
在系统软硬件设计中需要注意以下两点:
(1)当LPC2292通过外部存储器接口(EMC)控制FPGA时,地址线的接法如图6所示,即需要把LPC2292的地址线A0空出来不用。这是由于FPGA实现的波形产生模块的数据位宽为16位,当LPC2292外部存储器总线配置为16位时,A0地址需要空出来,当总线配置为32位时,地址A0,A1都需要空出来,当总线配置为8位时,地址从A0开始使用。
(2)EP2C20F484C8N的焊接问题,此型号为FinleLine BGA封装,在焊接的时候要注意芯片的锡球是否含铅,含铅与否决定采用何种工艺流程将器件安装在PCB板上,无铅封装要求焊接温度更高,工艺更复杂。Altera公司生产的所有无铅元件以其产品序号最后的“N”标出。因此本系统选用的芯片为无铅芯片,需要按无铅工艺焊接,若按有铅工艺焊接,将造成芯片的虚焊。
6、系统测试结果
对系统软硬件进行的测试表明,系统达到了预期的设计指标,能输出7路方波信号,频率固定(CW波)或线性变化(LFM波),且各路信号可选择关断或选通。CW波的频率在5~45kHz范围内任意可调;LFM波在5kHz带宽范围内任意可调,中心频率在5~45kHz范围内任意可调;输出脉冲信号宽度在0.5~100ms间任意可调,相邻各路信号的相位可超前和滞后,可选择发射功率,且本系统已成功应用于某工程项目中,工作正确可靠,得到了工程实际检验。图7为Tektronix逻辑分析仪采集到的对应输出的CW波。
7、结论
该系统很好的利用了ARM和FPGA两者的长处,ARM集中实现主控设备与FPGA通信的桥梁作用,接收主控设备发出的声纳波形参数,并根据这些参数配置FPGA内部的寄存器;FPGA充分体现了它在系统成本、体积上的优势,设计灵活、方便,FPGA的使用为系统的升级带来了很大方便。同时通讯接口的多样性,极大改善了人机接口,提高了系统的灵活性。