摘要:介绍大规模、高速度的FPGA在小型渔用声纳系统设计中的应用。在该系统设计中,采用了Xilinx公司的FPGA芯片XCS40作为主要器件,基本上将整个系统的功能集成在了一片芯片上。实践证明,即降低了成本,又缩短了设计和调试的时间。
关键词:声纳 FPGA 片上系统
从传统意义上来说,FPGA等通用可编程器件往往被应用于速率较低的DSP设计中,而在高速的DSP应用中,则往往使用专用的DSP芯片及集成电路进行设计。这样做虽然满足了对速度的要求,但是开发周期较长,产品的调试修改升级比较困难,而且灵活性较差。
随着工艺水平的提高,FPGA等可编程器件的速度和规模都有了很大的提高,而且它还具有集成度高、体积小、功耗低、设计灵活等优势,这样就为利用可编程器件实现高速DSP处理开辟了道路。目前新一代的FPGA等可编程器件,不仅在速度上能满足DSP的要求,而且可编程资源也大大增加,在系统级集成方面也能满足需要,从而提高了系统的灵活性和适应性。因此,在开发周期较短或对系统灵活性要求较高的场所,FPGA能够提供比专用DSP器件更高的系统速度和更好的解决方案。
我们在设计小型声纳的过程中,根据系统的要求,采用了Xilinx公司的Spartan XCS40芯片。
1 器件介绍
Spartan系列的XCS40是Xilinx公司推出的低价格、高性能的现场可编程门阵列。它的主要特点是:
·系统门的数目达到了40000,Logic Cell数目达1862,系统资源丰富
·具备片上可配置分布式RAM 最多配置的RAM比特数达25088位
·分布式算术逻辑单元,支持分布式DSP运算
·支持Alliance Core及系统集成
其片内结构如图1所示。
2 由XCS40构成的声纳系统的原理
以XCS40为主体构成的渔用声纳的基本功能框图如图2所示。其中,虚线内的功能模块全部集中在XCS40芯片内。
小型渔用声纳系统的基本工作原理是根据从水下反射的声波回波信号,显示水下鱼群和海底的深度情况。这种小型的声波探测系统在渔业生产和航海安全上起着很重要的作用,在小型船舶上使用相当普遍。整个系统分为模拟和数字两大部分。
模拟部分根据环境噪声和量程的要求,50kHz或200kHz载频的键控脉冲经过缓冲、整形、推动和推挽功放之后,调制信号送到声波换能器发射到水中。接收电路为一外差接收机。不同频率的反射信号经过前放后,与本机的晶振混频,产生455kHz的中频信号,经过两级中放和检波后,由A/D变换器形成3比特的数字信号,送到声纳的数字处理部分。收发转换模块控制着收发信号的隔离,避免它们之间的串扰,尤其要避免发射信号串入接收机端而引起接收机性能的大幅度下降。同时,通过时变增益控制(TVG)等手段,使得输入信号的动态范围得到了压缩,增大了接收机的工作范围,也使得整个模拟部分的抗干扰性和信噪比得到了提高。
整个声纳系统的数字部分集中在一片XCS40芯片中。经A/D变换后的数据,在数据获取控制单元的协调下,通过正常记录和海底锁定记录两个通道分别进入输入存储器。输入存储器中的回波数据,经过相关处理、杂波消除、强度变换和坐标变换等一系列信号处理后,在FPGA中内置的显示控制模块的管理下写入VRAM。与此同时,显示控制模块产生行场同步信号,并把不同强度的回波信号转换成伪彩色信号,驱动相应的R、G、B输出,将VRAM中的数据最终显示在监视器上。整个数字系统的运行也由FPGA内置的MCU模块来控制,提高了系统的集成度。
3 分布式计算与内置RAM
由于FPGA基于SRAM的特性,特别适合乘法和累加等DSP算法,也可以用其实现广泛的数学函数运算。在设计上也可以采用并行结构和分布式算法,使得资源达到最优的配置。在该声纳的设计中,使用了相关滤波器来除去邻频干扰、 杂波以及噪声。并利用分布式计算,大大提高了信号处理效率。对于二进制系统一个线性时不变的网络的响应可以用下面的公式来表示:
可见,上面的公式可以用加法器和分布式算术查找表来实现。对于所采用的相关滤波器,可以用下面的比较简单的方法来实现:
这样,当进行异或运算时,对每次回波256点且每点3比特的数据,可直接对每一位进行相关处理,只用一个时钟周期即可完成运算。由于充分利用了FPGA内部的分布式功能模块和并行计算的优点,使得信号处理的速度得到了很大的提高。
为了实现在片内完成DSP的功能,除了必要的算术和逻辑功能模块之外,必须具备一定数目的片内存储器。设计中所应用的Spartan XCS40就具备了分布式的片内RAM。由于Xilinx FPGA的主要功能模块都是基于SRAM查找表结构的,因此分布式RAM的结构可以在FPGA内的任何一处实现。这也是分布式RAM名称的由来。除去CLB、IO模块和布线模块外,分布式片内RAM已经成为了又一种片内资源。由于分布式片内RAM没有管腿和驱动,它可以达到相当快的读写操作速度。在我们的设计中,分布式RAM被用作数据的输入缓存及数据寄存器。在片内,这些RAM被配置在数字信号处理部分的附近,从而减少了数据传输的延时。
4 集成的显示控制和MCU模块
在带有显示子系统的设计中,一般都会用图形控制芯片(GDC)来实现图形显示和控制。图形控制芯片负责产生行场同步信号,输出像素点信号,控制字符图形和直线、圆等基本元素的输出,读写VRAM并控制VRAM的刷新。它是显示子系统的核心。我们在设计中最初采用的是NEC公司的UPD72020。但是在调试中发现由于该显示控制芯片的主频与系统的主频不一样,导致它与FPGA的时序无法配合。
为了解决这个问题,我们在设计中把图形控制芯片的功能集成到了FPGA中形成一个功能比较完备的CORE。图形控制部分的结构简图如图3所示。图形控制部分的主要作用,是根据系统的要求,产生正确的行场时钟脉冲,从而正确地控制像素点的输出。系统的主时钟频率是40MHz,图形控制部分把系统的主时钟进行分频,产生出18.75kHz和50Hz的行同步信号和场同步信号,加到监视器的接口,驱动正确的显示。同时,根据系统的要求,图形控制模块向VRAM中写入新的数据,并且周期性地读出VRAM中的数据进行显示和对VRAM进行刷新。本设计中采用的显示器是伪彩色显示器,不同的彩色信号对应于不同的回波强度。为了实现这个功能,我们在FPGA中的图形控制模块中建立了一个彩色矩阵Color Matrix。对应于不同强度的像素点数据,该矩阵可以将其转化成为相应输出比例的R、G、B信号,从而实现强度到彩色的转换。
为了进一步提高系统的集成度,我们采用了CAST公司为Xilinx的FPGA所设计的C2901微处理器核来读取键盘输入,控制整个系统的运行。该微处理器核的资源使用状况和内部结构框图如图4所示。
由于采用高度集成的片上设计方法,该声纳信号处理板的体积大大缩小,整个系统仅由模拟电路、 XCS40及存储器构成,设计和调试都非常简便,整机工作性能也十分稳定。
|