DSP+FPGA结构在雷达模拟系统中的应用
扫描二维码
随时随地手机看文章
1 引言
随着信息技术革命的深入和计算机技术的飞速发展,低速、低可靠性的单片机以及小规模的集成电路已经越来越不能满足需要,正逐渐被DSP与可编程逻辑器件(如FPGA、CPLD)所取代。一方面,数字信号处理技术逐渐地发展成为一门关键的技术学科,而DSP芯片由于集成度高、运算速度快、性能稳定等特点,极大地促进了数字信号处理技术,也使其在数字信号处理的应用领域得到了极大的拓展;另一方面,电子系统集成化程度的提高,不仅可使系统的体积变小、重量减轻、功耗降低,更重要的是可使系统的可靠性大大地提高,因此电子系统日趋数字化、复杂化和大规模集成化。而由于可编程逻辑器件(如FPGA、CPLD)是一种数字集成电路的半成品,在其芯片上按一定排列方式集成了大量的门和触发器等基本逻辑元件,利用某种开发工具对其进行加工,即按设计要求将这些片内的元件连接起来(此过程称为编程),就能使其完成某个逻辑电路或系统的功能,成为一个可在实际电子系统中使用的专用集成电路,这样就使得集成电路的体积大大地缩小,电路的集成规模也大大地提高。因此,DSP与可编程逻辑器件已经越来越广泛地应用于当今各个领域中。
2 系统组成及芯片介绍
该雷达模拟系统对真实雷达的整个操作和探测实施过程进行了全仿真,能与雷达本机完全脱离,并能够对错误操作情况作出实时提示及对训练结果进行定量成绩评估。该系统主要由两个分系统构成,一个是在主控计算机上的软件模拟分系统;另一个是在主机柜方面的硬件模拟分系统,它包括了实现全仿真效果所需的全部硬件电路以及相应的软件控制程序。其中数字电路部分是以TI公司的TMS320C32式浮点DSP芯片为主控制芯片,与ALTERA公司的可编程逻辑阵列FLEX 10K系列器件组成核心控制系统,采用C语言作DSP的软件开发程序。DSP芯片完成数据的采集、处理以及通讯,FPGA中集成了实现雷达模拟系统功能的各种模块,而所需的输出波形由独立的模拟电路完成。
TI公司的TMS320C32式浮点DSP芯片是一个性能价格比比较高的浮点处理器,为用户提供了丰富的硬件与软件资源。它的主要特点包括:哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令、快速的指令周期等,这些特点使其可以实现快速的DSP运算,并使大部分运算(如乘法)能在一个指令周期内完成。而且该DSP芯片是软件可编程器件,具有通用微处理器的方便灵活等特点。
ALTERA公司的FLEX 10K系列器件是业界第一块嵌入式可编程逻辑器件,它基于可重复配置的CMOS SRAM工艺,为柔性逻辑元素阵列架构,使用通用的门海架构来实现一般性的逻辑功能,同时采用专用的硅片来实现规模较大的专用功能。和标准的门阵列比较,由于嵌入式功能在硅片上实现,因此所需的硅片面积更小,系统速度更高。FLEX 10K系列器件不仅能够提供高密度、高速度和系统集成功能,并且在单个器件内部包含多重32比特总线、6144比特的RAM空间,还支持串行与并行两种配置方式以及JTAG模式的在线仿真,这些特点使得FLEX 10K系列器件成为目前应用最为广泛的可编程逻辑器件之一。
3 硬件实现
在硬件模拟分系统中,主要使用的开发工具是MaxplusII可编程逻辑开发软件。MaxplusII提供了一种与结构无关的设计环境,使应用ALTERA公司通用FPGA的设计者能够方便地进行设计输入、快速处理和器件编程。MaxplusII提供了全面的逻辑设计能力,可将文本、图形和波形等设计输入方法任意组合建立起有层次的单器件或多器件设计。MaxplusII编译器(compiler)完成最小化和逻辑综合,把设计装配成一个或多个器件并产生编程数据;还可进行设计校验,包括功能仿真、定时仿真、影响速度的关键路径的延时预测以及多系列器件交叉的多器件仿真。Compiler的Fitter(适配)模块应用试探法把经过综合的设计最恰当地用一个或多个器件实现。这种自动适配功能使设计者得以从繁琐的布局与布线工作中解脱出来。综上所述,以MaxplusII为EDA软件工具,周期短、集成度高、价格合适、可实现强大的逻辑功能。因此,用MaxplusII可编程逻辑开发软件来完成FPGA内部的逻辑模块。并且,由于这些逻辑模块都是在FPGA中实现,所以这些模块都具有很高的可移植性与易维护性,修改也非常方便,并且减少了电路板面积,使电路的集成度大大地提高。
硬件模拟分系统是整个雷达模拟系统的核心部分,主要完成真实雷达系统中主机柜的全部功能,包括数据的采集、处理、与主控计算机之间的通信以及操作过程中各种状态信息的读取等。其系统总体结构框图如图1所示:
其中,TMS320C32式浮点DSP芯片为主控制芯片,而FPGA为核心芯片。为了完成雷达模拟功能,主要在FPGA中作出了串口通信、状态读取、显示控制等8个功能模块。这些模块与DSP进行数据交换,分别完成各自的模拟功能,然后通过相应的软件控制DSP的工作状态,进而通过DSP实现对这些功能模块的完全控制。限于篇幅,对于各个模块的具体工作过程不再赘述。
4 软件实现
在硬件模拟分系统中,采用Code Composer作为DSP芯片的开发软件。Code Composer是TI公司提供的一款功能非常强大的DSP软件开发工具,它提供配置、建立、调试、跟踪和分析程序的功能,便于实时、嵌入式信号处理程序的编写和调试。它能够加速开发过程,减少开发周期,提高工作效率。此外,它不仅支持汇编语言开发,还支持C语言开发以及C语言与汇编语言的混合开发,而其中最后一种方法是目前DSP软件以及其他嵌入式处理软件的最流行和效率最高的方式。Code Composer由代码生成工具、集成开发环境、调试分析工具等几个主要部分组成,其中代码生成工具奠定了CCS所提供的开发环境的基础。
这里,使用C语言作为DSP芯片的软件开发语言。当系统上电后,DSP首先进行各种状态的初始化及设置工作模式,其中重要的是对定时器中断及外部中断的初始化设置。然后读取主机柜面板上的初始位置信息,接着进入主程序的查询状态,每隔一段时间就查询一次主机柜面板上各种状态值是否发生变化。如果有变化发生,则进行相应的处理。
以串口通信中断程序的工作过程为例。通过该程序控制可以FPGA中所作的串口通信模块与主控计算机进行通信,波特率已经在模块中设定。在接收模式下,该中断程序将接收的数据送入模块,然后该模块能够自动比较接收到的数据是否为同步字符。如果是,则从接收到同步字符以后,每接收完一帧数据产生一次中断,CPU响应中断后,读取接收到的字符。全部接收完毕后,清除同步字符接收到标志,则该模块回到接收到同步字符前的状态。在发送模式下,CPU向该模块写入一个8位数据,则在自动添加起、停位与奇偶校验位后串行发送。发送完毕后,产生一次串口中断,响应中断后,将下一次要发送的数据写入该模块即可。部分程序如下所示:
unsigned int comtemp=0;
unsigned int RandT=0,rr=0,tt=0;
if(RandT==0) /*****接收*****/
{
jieshou=1;
receive[rr]=*T_rdcom&0xff; /***接收到的数据***/
rr++;
if(rr==6)
{ rr=0; *T_cleartbt=0; jieshou=0; rcli=1;}
}
else /*****发送*****/
{
if(tt==9)
{
tt=0; rr=0; RandT=0; fashong=0;
if(facom!=0)
{
fasnum[facom]=0; wait=0;
}
facom=99;
*T_rns=0;
return;
}
comtemp=(facom*9)+tt;
*T_wrcom=trans[comtemp]; /***发送的数据***/
tt++;
}
程序中数据传送具有一定的规范,要满足通信协议。当其与主控计算机进行通信时,数据到达接收方后,接收方应该根据通行协议判别发送方的数据,具体过程在此不再赘述。
5 结论
综上所述,通过雷达模拟系统的实例可以看出,由DSP芯片和FPGA可编程逻辑器件所组成的核心控制系统,外围电路少,运算速度快。正是由于DSP具有运算速度快、性能稳定等特点,以及可编程逻辑器件集成度高等优点,使DSP与FPGA在数字电子设计中得到越来越广泛的应用。