FPGA+DSP

2024-08-20

FPGA+DSP(精选8篇)

FPGA+DSP 篇1

0 引言

当相控阵雷达处于强有源干扰环境时,即使干扰信号从天线的旁瓣进入,也远大于从主瓣进入的目标信号,使得雷达无法正常工作[1]。采用自适应波束形成技术可以实现空域滤波[2],在干扰方向形成零陷,有效对消干扰。数字阵列雷达接收和发射均采用数字波束形成技术[3],具有很大的自由度,使得自适应波束形成技术能够方便应用于工程中。目前,常用的自适应波束形成算法有:自适应旁瓣对消(ASLC)和自适应-自适应波束形成(A-ADBF)。自适应旁瓣对消工程实现较容易,但其引入辅助通道增益必须和天线副瓣增益相当,当天线阵面较大时,选取一个天线阵元做为辅助通道则增益不足,而且这种算法自适应方向图在除干扰外其它方向旁瓣较高,不满足低旁瓣要求。自适应-自适应波束形成是一种性能稳健的算法,其性能接近理想滤波器,因而得到广泛使用。

文献[4]讨论了自适应数字波束形成在工程中的关键技术,提出主要需要解决运算资源与算法性能之间的矛盾。运算量小的算法稳健性较差,稳健性好的算法运算量又较大。文献[5]和文献[6]提出了利用FPGA+DSP的处理架构实现常规波束形成和自适应旁瓣对消。对于自适应-自适应波束形成,运算量更大,实现也更加困难。本文对FPGA+DSP处理架构进行了优化,使之能够实现自适应-自适应波束形成算法。DSP用于干扰协方差矩阵估计、矩阵求逆等运算,保证了运算精度,FPGA用于实现FIR滤波器结构,提高了实时性。将这种架构用于雷达信号处理机中,实测的运算速度能够满足系统指标要求。

1 自适应-自适应波束形成原理

自适应-自适应方法是一种波束空间自适应方法,其原理框图如图1所示,所有阵元加不同的权系数形成多个波束,自适应滤波可以看作阵元方向图为各波束方向图的自适应阵列。这种方法需要事先估计出干扰方向和干扰数目,形成指向干扰的若干个辅助波束,再形成指向期望方向主波束。干扰波束和主波束一起进行自适应滤波。

假设阵列输出为X(t),在期望方向形成的主波束对应的加权矢量应为:

假设有M个干扰,在干扰方向形成M个辅助波束的加权矢量应为

则包括主波束在内M+1个波束输出记为

则最优权向量为

自适应-自适应方法有效实现了降维,而且其性能比较稳健,算法收敛所需的快拍数也比全阵面少,比较适合工程应用。

2 DSP实现方法

由自适应-自适应波束形成算法可以看出,自适应处理可以分为自适应权计算和滤波运算两部分。在用DSP实现的方法中,这两个步骤都有DSP完成。首先,当发射触发到来时,各个阵列通道的数字回波经过数字波束形成系统形成一个主波束和若干个干扰波束数据。多波束数据通过DSP链路口进入DSP内部存储器,整个重复周期数据收集完后,再选取该周期末尾数据做为采样快拍估计干扰协方差矩阵,计算自适应权,计算完成后再对整个重复周期的数据从头开始进行滤波运算(即加权求和)。这种方法的缺点是:当同时有多个主波束或者脉冲重复周期较长时,DSP内部存储器资源有限,必须采用外部存储器,这时,DSP读写速度变慢,且多个主波束带来运算量成倍增加,该处理方法无法满足实时性要求。

3 FPGA+DSP实现方法

在工程中一般采用FPGA+DSP硬件处理平台完成DBF,该平台具备高数据传输速率,高并行运算能力等特点。DSP有浮点运算动态范围大的优点,用以完成干扰协方差矩阵求逆等复杂运算,计算自适应权值。FPGA适合完成大量并行乘累加算法,用以完成滤波运算。若采用该平台实现自适应-自适应波束形成,则能大大提高实时性,同时也可以和DBF一体化设计节省硬件成本。

具体工作流程如下,接收DBF在发射触发到来之前的休止期形成指向期望方向和干扰方向波束,FPGA产生中断信号通知DSP,DSP通过链路口以DMA方式从FPGA读取各个波束数据,做为采样快拍计算自适应权。同时FPGA中的波束数据缓存一段时间(此缓存可以利用FPGA外部存储器实现以节省内部存储空间),直至DSP计算自适应权完成。DSP计算完成的自适应权转换成定点数后通过DSP总线写入FPGA,在FPGA用FIR滤波器结构即可实现滤波运算。总的运算结果有效数据仅剩下主波束,且只是相对输入数据有一段延迟,因此该方法实时性很好。

4 测试结果

测试方法如下,假设天线阵列由64×64个矩形排列的阵元组成,阵元水平间距和垂直间距均为0.51倍波长,有三个干扰源,方向分别为0°0,-25°0、0°0,-18°0、0°0,-21°0和,期望波束指向为0°0,0°0,三个干扰源输入干噪比均为30d B。如图2所示为FPGA实测的自适应方向图。

可以看出,FPGA运算能够在干扰方向形成零点,有效抑制干扰,工程应用中能够满足实际需求。

5 结论

自适应-自适应波束形成算法(A-ADBF)性能稳健,能够有效抑制干扰。针对其运算量相对较大,工程实现困难的特点,本文提出一种有效的工程实现方法,该方法基于FPGA+DSP的硬件处理平台,发挥了DSP运算精度高和FPGA运算速度快的优点,易于实现且实时性好。在硬件平台上的实测结果表明,该方法能够有效抑制干扰,同时能够满足雷达系统对实时性的要求。

摘要:在相控阵雷达中常采用自适应波束形成算法来有效对消天线旁瓣干扰。但是,阵元级算法运算量巨大,在工程中必须采用降维算法。其中,波束空间降维算法A-ADBF应用较为广泛,该算法性能稳健,有效抑制干扰的同时又降低了运算量。本文针对该算法在工程中采用DSP运算速度较慢的缺点,提出了一种FPGA+DSP的工程实现方案,有效降低了运算时间。

关键词:自适应波束形成,FPGA,DSP

参考文献

[1]张光义.相控阵雷达系统[M].北京:国防工业出版社,1994.

[2]吴曼青.数字阵列雷达及其进展[J].中国电子科学研究院学报,2006,1(1):11-16.

[3]王永良,丁前军,李荣锋.自适应阵列处理[M].北京:清华大学出版社,2009.

[4]徐伟.自适应波束形成算法工程应用中的关键技术研究[J].火控雷达技术,2012,41(1):39-42.

[5]刘志英,万卫华.基于FPGA+DSP的数字波束形成的实现[J].甘肃科技,2007,23(10):27-29.

[6]李波.自适应旁瓣对消在数字阵列雷达中的工程实现[J].电子科技,2012,25(4):96-99.

FPGA+DSP 篇2

介绍了民用飞机机载数据总线ARINC429的硬件接口板,该接口板采用DSP和FPGA实现四路ARINC429信号收发通道,使整个系统的处理速度大大提高.

作 者:种稚萌 王亮 韩崇昭 李峰  作者单位:西安交通大学电子与信息工程学院,710049 刊 名:电子技术应用  ISTIC PKU英文刊名:APPLICATION OF ELECTRONIC TECHNIQUE 年,卷(期):2004 30(9) 分类号: 关键词:ARINC429 总线 DSP FPGA  

★ 多路读写的SDRAM接口设计

★ 异步串行通信接口的IP核设计

★ Office文档主题应用和自定义

★ Excel 自定义菜单技术(3)EXCEL

★ 教学设计论文如何写

★ 机械手设计论文

★ 设计论文结束语范文

★ 基于USB总线的高速数据采集系统

★ 抛弃人工排序 WPS自定义巧排序

FPGA+DSP 篇3

关键词:DSP,FPGA,图像显示控制

随着现代电子信息技术的发展,人机交互、图形图像数据的输出显示在系统设计中越来越重要,一方面要求各种参数的输入,另一方面要求将数据结构显示出来。文中设计的基于DSP和FPGA的系统结构,实现了人机交互和各种图形图像的输出显示,而且可以达到动态显示的效果。在设计上采用了软件填充的图形设计方法,先由DSP生成全局数据缓冲区,填充要绘制的图形,之后通过DSP[1]的EDMA传递给FPGA,FPGA实现显示屏的接口不断扫描,将数据送到显示屏显示。同时FPGA连接键盘接口,通过扫描法扫描键值,之后通过中断方式送到DSP,使DSP对各种输入进行控制。整个系统的结构图如图1所示。

1 系统功能

为实现显示系统的基本功能,系统要求实现人机交互,通过键盘输入各种键值,选择或输入各种参数,因此设计了6×6的矩阵键盘,可以输入26个英文字母和0~9共10个数字,键盘的接口连在FPGA上,FPGA将扫描到的键值以中断方式送到DSP,DSP根据输入的参数进行处理。

对于显示部分,系统要求提供各种驱动函数,可以实现画点、画线、画方框、画矩形、填充矩形、画椭圆、填充椭圆、画圆、填充圆、显示汉字、数字、英文字符以及图标Logo等功能,在这些基本画图函数的基础上可以实现各种复杂图形的显示。

总的实现方式是在DSP内部开辟一缓冲数据区,DSP将要输出的图形数据填充至数据缓冲区,需要显示时,DSP启动EDMA,通过总线将缓冲区的数据送至FPGA,在FPGA内开辟一双口RAM,一端接收DSP传输的缓冲区的数据,保存在双口RAM中,另一端将双口RAM中保存的缓冲区数据读出,以不断扫描的方式按照显示屏的时序将数据显示在显示屏上。

2 系统硬件设计

DSP具有高速处理的特点,运算速度快、FPGA并行处理能力强,常用于设计一些接口。DSP和FPGA相互结合的结构,能充分发挥二者的优点,选用各种复杂的系统。

显示控制系统采用的DSP是TI公司的TMS320C6713[2],它是TI公司推出的一款高性能的数字信号处理器。FPGA采用的是Altera公司Cyclone系列的一款芯片EP3C780I7[3],这是一款高性价比的FPGA芯片。FPGA和DSP通过DSP的外部总线接口EMIF连接。为便于系统的扩张,将FPGA映射在DSP的CE2和CE3的地址空间,对应的存储器映射地址分别为0xA0000000和0xB0000000。

由于要加载字库,系统需要大容量的数据存储器来存储字库数据和数据缓冲区,而DSP的内部RAM只有不到200 kB,因此需要扩展系统的数据存储器。系统外挂了一个SDRAM,它依然通过DSP的EMIF接口和DSP相连接,连接在DSP的CE0空间,对应的存储器映射地址为0x80000000,SDRAM的型号为MT48LC2M32BTG。

显示屏是640×480点阵的EL LCD宽温显示屏,其上下半屏同时扫描的双扫描单色显示屏,由于宽温特性,多用在工业和军事中,型号是EL640.480 AF1 ET[4,5,6]。

系统将键盘接口和显示接口连接在FPGA上。系统硬件原理如图2所示。

3 系统软件设计

3.1 键盘接口设计

为实现人机交互必须要有相应的输入接口,系统在FPGA外部连接了6×6的矩阵键盘,以实现各种参数的输入和显示控制。DSP和FPGA要完成各自不同的控制逻辑。

FPGA中用VHDL硬件描述语言设计键值的扫描程序,采用逐行扫描的思想,并开辟一寄存器保存扫描到的键值,DSP读取该寄存器即得到按键键值,该寄存器对应的地址为0xA0001000,对应DSP中CE2的选址空间。当有按键按下时,FPGA扫描得到键值,保存至按键寄存器中,并向DSP发送外部中断Exint4,DSP在中断服务程序中读取地址为0xA0001000寄存器中的内容即可得到键值。

3.2 显示接口设计

由于显示屏是640×480的单色显示屏,要在DSP内开辟一显示的数据缓冲区,大小为38 400 Byte,缓冲区的每一位代表一个像素,代表显示屏上的一个像素点,缓冲区的第一个Byte的最低位点代表显示屏的第一个像素点,依次类推。

对于要显示的图像,DSP必须先用相应的图形算法填充该图形缓冲区,之后启动DSP的EDMA将数据通过DSP的总线送至FPGA的双口RAM中,双口RAM的起始地址是0xA0080000,对应LCD显示屏第一行的第1~32个像素点,结束地址是0xA00895FC,对应显示屏第480行第637~640个像素点。DSP是32位数据总线,每个地址可存储32位的像素点。

对于画图函数,最基本的莫过于画点函数,它是其他各种作图函数的基础,也是实现各种复杂图形显示的基础。

画线、画方框、画矩形、填充矩形、画椭圆、填充椭圆、画圆、填充圆的驱动函数只要基于画点函数再配合相应的算法即可实现。

对于汉字的显示,需要加载相应的字库,系统中的字库采用16×16点阵的汉字字库。首先根据汉字的区位码在字库中找到相应的点阵数组,然后将点阵数组输入到相应坐标的显存缓冲区即可。为提高程序的运行速度,系统中没有采用标准C库文件的文件操作方式来读取字库数组,而是将字库文件转换为数组形式保存在SDRAM中,程序只需根据汉字的区位码查表即可得到点阵数组,大幅提高了程序的运行速度。

对于图标和图像的显示,首先也要将图像转换为相应的点阵数组,再按照要显示的坐标区域将点阵数组输入的相应区域即可。

用基本画图函数就可实现各种图形的显示,在此基础也可以实现各种复杂图像的显示,系统验证时曾显示了图像、正弦波、三角波等较为复杂的动态图形的显示,并可以通过键盘控制波形频率的改变,如图3所示。

4 结束语

人机交互和图形图像显示技术,在需要人机交互系统应用中具有重要现实意义,文中讨论了基于DSP+FPGA的图形显示控制系统,给出了各部分的设计思想,提供了键盘输入和图形图像显示的功能,可以满足各种复杂的人机交互和图形图像显示,在实际使用中也得到了验证。

参考文献

[1]李方慧,王飞,何佩琨.TMS320C6000系列DSPs原理与应用[M].2版.北京:电子工业出版社,2003.

[2]TI Conpration.TMS320C6713B floating point digital signalprocessors(SPRS186I)[M].USA:TI Conpration,2006.

[3]Altera Conpration.Cyclone III device handbook[M].USA:Altera Conpration,2010.

[4]Planar Conpration.EL640.480-AF1 family 6.4 electrolumi-nescent VGA flat panel display user's manual[M].USA:Planar Conpration,2006.

[5]刘宇.基于TMS320F28335信号处理板的设计与实验[J].电子科技,2011,24(5):44-48.

FPGA+DSP 篇4

DSP同样也面临这个问题, 也需要将引导代码和用户代码保存在ROM、FLASH或其他非易失存储器中, 以保证掉电时代码仍在。如果用户代码存放在FLASH或其他的非易失存储器中, 就必须解决DSP引导加载问题。

这里设计了一种DSP+FPGA的动态重构系统, 该系统在上电后, 由DSP自己加载后再控制FPGA加载, 实现动态重构功能。DSP的引导程序、DSP用户程序和FPGA的配置数据通过JTAG口下载到FLASH中。

1 Xilinx FPGA配置原理

1.1 配置模式的选择

Xilinx公司的Virtex-4系列FPGA需要5种配置模式, 如表1所示。本系统采用了Slave Select MAP8模式。

Slave Select MAP8模式提供了与Virtex-4FPGA之间的一个8位双向数据总线接口, 用来配置和回读。在每个CCLK的上升沿载入1Byte数据。两个外部的控制信号接在/CS和/WRITE管脚, 通过下拉电阻使其一直为低电平。表2为Slave Select MAP8管脚定义。

1.2 配置过程

FPGA可以在Slave Serial和Slave Select MAP8的从模式下实现由DSP加载配置数据。本系统中采用Slave Select MAP8模式实现。配置过程如图1所示。

1.2.1 上电

上电过程中/PROG和/INIT管脚都被FPGA置为低电平。上电完成后, 配置器会被自动清空。/PROG的输入低电平也会复位配置逻辑, 使FPGA保持在清空配置存储器的状态。本设计采用CPLD将/PROG管脚拉低。

1.2.2 初始化

初始化过程中/PROG变为高, /INIT继续保持低电平直到完全清空所有的配置存储器。可以在外部使/INIT引脚保持低电平以延时FPGA的配置, FPGA在/INIT信号上升沿检测配置模式选择引脚。/INIT信号变为高电平后, 配置开始。

1.2.3 载入配置数据

载入配置数据过程在/INIT引脚变高, 并且/CS和/WRITE信号均为低电平时开始, 配置数据在配置时钟的每个上升沿被载入FPGA。

在载入配置数据器件, 载入的CRC的值和内部计算出的CRC进行比较。如果CRC值不匹配, 则/INIT信号会变低, 指示发生了CRC错误, 这时启动被终止, FPGA不被激活。为了重新配置该器件, /PROG引脚必须变低以复位配置逻辑。

1.2.4 启动时序

当所有的配置数据载入完毕, 并且CRC校验成功后, FPGA将进入启动时序。在这期间将会把DONE引脚变为高电平, 激活I/O, 停用GSR以及确定GWE。在系统默认的状态下, 当DONE变为高后, 配置并没有完成, 还需要4个CCLK去完成启动时序。

2 TMS320C6455加载

TMS320C6455复位和上电时的引导模式主要有:NO BOOT模式、主机引导模式、FLASH引导模式、主/从I2C引导模式和SRIO引导模式。采用哪种引导模式, 由复位或上电时采用管脚BOOTMODE3-0决定。

本系统采用FLASH引导模式。TMS320C6455与其它C64系列的DSP不同, 它先从外部FLASH中的程序搬移一个字节到DSP内部的RAM首地址运行, 然后再搬移下一个字节到内部RAM首地址覆盖上一个字节并运行, 以此类推, 直到程序运行完成。DSP内部的RAM首地址中保存的是Bootloader程序的最后一个字节, 而不是整个Bootloader程序。加载完成后, DSP运行用户程序代码, 开始进行相应波形的处理。

3 系统设计

3.1 硬件设计

系统采用1片Xilinx Virtex-4系统的600万门的FPGA XC4VLX60和1片Spartan-3AN系列的20万门的FPGA XC3S200芯片;主MCU是TI公司处理能力最强的定点的TMS320C6455;DSP主要完成低速数据的调制解调、编译码、波形处理等工作, FPGA完成对中频信号进行调制解调, XC3S200 FPGA主要用于完成上电后的初始化设置, 时钟信号的分配, FLASH芯片高地址管理, 以及DSP的EMIF总线接口与FPGA加载控制接口之间的配置。DSP的EMIFA CE3, DDR2 EMIF和I2C总线接口分别和存储器FLASH、SDRAM和EEPROM连接, 一些通用接口连在FPGA上作为以后功能拓展, 4对RIO口和外部接口连接。系统电路结构框图如图2所示。

3.2 软件设计

本系统支持DSP程序的加载和FPGA程序的加载。DSP加载为系统上电时DSP从位于EMIFA CE3低地址空间的片外程序FLASH加载初始化程序。

FPGA加载为DSP更加主控计算机的加载指令, 通过接口控制可编程逻辑器件从本板的大容量通用FLASH加载FPGA程序。通用FLASH的存储容量可达512Mbit以上, 可以存储数十个版本的FPGA程序。DSP根据主机控制指令, 由EMIFA总线将FLASH待加载数据读出, 并通过接口控制可编程器件中的数字总线控制接管FPGA的加载接口, 完成对FPGA的加载, 如图3所示。

4 结束语

引导加载是设计DSP系统必须解决的问题, 动态配置FPGA的应用领域也越来越广泛。本系统设计了具有动态重构功能的DSP+FPGA系统, 已经成功的应用于某工程项目并验证了该功能, 本文的分析思路及设计方案同样适用于其他的C6000系列的DSP和Virtex-4系列的FPGA, 对DSP+FPGA应用系统的设计具有一定的参考价值。

摘要:DSP和FPGA在电子系统中被广泛的配合使用以实现特定的信号处理功能, 随着电子系统向综合化和集成化发展, 越来越多的系统需要实现功能的可动态重构。这里根据实际应用的需求提出了一种基于DSP+FPGA系统的动态重构设计方法, 同时实现了DSP和FPGA的动态加载。

关键词:现场可编程阵列,动态加载,Slave SelectMAP8,bootloader

参考文献

[1]陈曦, 沈佐峰.一种可靠的FPGA动态配置方法及实现[J].通信技术, 2012, 45 (03) :105-107.

[2]孟龙, 郄志鹏, 朱江.基于CPCI总线的FPGA加载设计[J].通信技术, 2013, 46 (05) :127-129.

[3]张玄, 李开航.利用CPLD实现FPGA的快速加载[J].现代电子技术, 2012, 35 (22) :163-166.

[4]吴冬梅, 何管清, 邱昊.基于ARM的DSP与FPGA动态配置方案的设计与实现[J].舰船电子工程, 2013, 33 (7) :47-48.

[5]佘佑军, 王丹.TMS320C6416EMI总线下双FPGA加载设计[J].单片机与嵌入式系统应用, 2007, 33 (7) :29-31.

FPGA+DSP 篇5

关键词:脉冲压缩,线性调频信号,匹配滤波,FIR滤波,正交解调

0 引言

脉冲压缩(简称脉压)技术能有效解决雷达作用距离与距离分辨率之间的矛盾,能同时获得较大的作用距离和较高的距离分辨率[1]。相比于简单脉冲的时宽带宽积为1,脉冲压缩信号能获得远大于1的时宽带宽积,通过对简单脉冲增加频率或相位调制可以得到脉冲压缩信号[2],其中线性调频信号是常见的脉冲压缩信号。线性调频脉冲压缩技术被广泛应用于雷达、声纳等系统。目前,雷达信号处理系统主要采用FPGA或DSP等器件实现。本文研究的基于FPGA和DSP的雷达信号处理模块实现了对线性调频信号的采集、存储、滤波、正交解调和脉冲压缩等过程,达到了实时脉压处理的效果。

1 系统设计

本系统接收到的雷达中频回波信号为线性调频信号,调频类型为正调频,中心频率f0=20MHz,带宽B=10 MHz,脉宽τ=8μs,重复周期为200μs。

本模块主要包括A/D采集模块、时钟产生模块、基于FPGA的信号预处理模块、基于DSP的信号处理模块和大容量存储模块,系统框图如图1所示。待采集的雷达中频回波信号经A/D采样转换为数字信号送入FPGA内,FPGA在触发信号的控制下将采集的数据存储到内部的块RAM中,存储完毕后,FPGA对信号进行FIR滤波,之后再对滤波器输出进行正交解调,将信号搬移到基带。解调完毕后,FPGA通过系统控制模块向DSP发出中断申请,DSP响应中断后,开始从FPGA读取解调后的数据进行格式转换并归一化后存入外部SDRAM芯片中,之后开始对基带数据进行脉冲压缩处理。

本设计中,ADC芯片采用AD公司的10位采样芯片AD9211,根据信号的带宽和最高频率将A/D采样速率设定为60 MSPS。采样时钟由时钟产生模块提供LVDS电平60 MHz的稳定时钟,参考电压默认使用内部1.25 V参考。

2 基于FPGA的信号预处理

本设计中的FPGA芯片采用XILINX公司的45 nm工艺Spartan-6系列的XC6SLX150T,该芯片具有丰富的内部资源,具有低成本、低功耗的特点。FPGA中对信号的处理主要包括FIR滤波和正交解调两部分,另外,FPGA要完成对A/D采样信号、FIR滤波结果和正交解调结果的存储以及最终和DSP之间的数据交换。

2.1 数据缓存和数据交换

FPGA中的数据缓存需要存储的数据有A/D采样数据、FIR滤波输出和正交解调输出。解调完毕的数据要送入DSP内,FPGA和DSP的数据交换需要由传输控制模块完成。

在A/D采样时,利用外部触发信号即可实现对信号的有效存储。触发信号的起始边沿对应于脉冲的起始处,A/D采集信号存储到FPGA的双口RAM1中。双口RAM1存储完毕后,FIR滤波器读取数据完成FIR滤波并将滤波结果存入双口RAM2中,再经正交解调后将解调结果存入双口RAM3中。

双口RAM3中的数据存储完毕后,FPGA向DSP发送外部中断,DSP响应中断并开始从FPGA读取数据。DSP与FPGA的数据交换遵循TS201的数据传输协议[3],FPGA通过传输控制模块接收DSP的读信号(RD)和存储器选择信号(MS),并将DSP发出的地址信号(ADDR)解码为双口RAM3对应的地址(AddrB),最终将数据从FPGA送入DSP。

FPGA的数据缓存以及与DSP的数据交换框图如图2所示。

2.2 FIR滤波

线性调频信号的频带限制在15~25 MHz以内,A/D得到的采样数据可先通过带通滤波器滤除带外噪声,也可使数据变得平滑。基于FPGA的带通滤波器采用FIR滤波器。FIR滤波器的显著优点是可以做到线性相位,并且总是稳定的。当滤波器系数满足奇对称或偶对称条件时,FIR滤波器就会具有线性相位特性[4]。FIR滤波器的实现框图如图3所示。

由于线性相位FIR滤波器的系数是镜像对称的,所以N阶FIR滤波器只需要N2个存储单元。对于32阶的FIR滤波器,只需取前16个系数存入深度为16的系数ROM中即可。在FIR滤波器的对称结构中,每一个乘加单元都是将镜像对称的两个输入数据相加再和相应的滤波器系数相乘。在对输入x(n)取连续32个数据缓冲时可设置镜像对称的两个缓冲器,即两个深度均为16的双口RAM,并且按镜像对称的方式排列,这样两个RAM只需要一个地址指针[5],指针从15顺次减至0,对应的输入数据相加并和相应的系数相乘最终完成累加就得到了一个输出。

利用Matlab的FDATool工具,响应类型选择带通,采样频率为60 MHz,通带起始频率和截止频率分别设为15 MHz和25 MHz,两个阻带的截止频率分别设为12 MHz和28 MHz,通带起伏0.5 dB,阻带衰减40 dB,指定阶数32,可生成32阶FIR滤波器的系数。

抽头系数存储在FPGA中的ROM中,由于滤波器抽头系数均为小于1的浮点数,且有符号,所以必须采用一定的编码方式存储[6]。本文采用缩放法,即先将抽头系数放大取整,再以二进制补码方式量化,最后得到结果后按同样的比例缩小。每个抽头系数均放大32 768倍,即左移15位,采用16 b数据以二进制补码方式编码,将编码完毕的抽头系数存放在FPGA的系数ROM中。

FIR滤波器的输出经过正交解调得到基带信号,解调时需要两路本振信号,分别为I路cos(2πf0t)和Q路sin(-2πf0t),它们分别与线性调频信号相乘,可得到两路基带信号和中心频率为2f0的高频线性调频信号。

2.3 系统控制

系统控制模块完成对FPGA内各部分子模块的全局控制和有效调度,控制方式采用有限状态机方式,状态转移图如图4所示。系统上电后,控制器进入初始化状态,完成对芯片的初始化,并且通过SPI接口对时钟芯片下发时钟配置参数。控制器检测到外部触发信号的起始边沿时,转移状态至采样存储,在此状态下,连续存储所需个数的采样点,存储完毕后,转移状态至FIR滤波,滤波结果存储完毕后转移状态至正交解调,解调结束后控制器向DSP输出外部中断信号并回到空闲状态。控制器接收到DSP读取数据的控制信号后,通过传输控制模块完成数据传输并返回空闲状态。

3 基于DSP的脉冲压缩

脉压处理主要在DSP内实现,本设计中DSP芯片采用AD公司的ADSP-TS201,该芯片最高工作频率达600 MHz,具有24 MB内部DRAM存储器,集成SDRAM控制器,可方便控制外部SDRAM大容量存储器。

脉冲压缩技术的实现是指发射机发射具有大时宽带宽积(远大于1)的宽脉冲调频信号,目标反射回波经匹配滤波处理后获得窄脉冲的过程。在对回波信号正交解调之后,得到的I,Q两路信号在DSP内可以合并为一个复信号,将此复信号经过匹配滤波器滤波即可实现脉冲压缩。本文采用FFT的方法进行快速卷积以实现匹配滤波器对信号的滤波。

信号进入DSP后,I路信号为cos(πkt2),Q路信号为sin(πkt2),所以匹配滤波器的输入信号为cos(πkt2)+j sin(πkt2),其中,k=Bτ。由匹配滤波理论可知,匹配滤波器的频谱是输入信号频谱的共轭,由此生成的匹配滤波器的结构和脉冲压缩的实现框图如图5所示。

DSP内FFT的实现利用AD公司的库函数,库函数中有实数FFT函数和复数FFT函数,这里FFT的输入是由两路信号组合成的复信号,因此选用复数FFT函数。在调用FFT函数之前,需要生成用于计算FFT的旋转因子。实部旋转因子为twid_re(k)=cos(2πk N),虚部旋转因子为twid_im(k)=sin(2πk N),其中N为FFT点数。为了提高计算效率,旋转因子只需计算cos和sin函数的前3 4周期的数据。旋转因子作为DSP程序的初始化部分,只计算一次并存储于DSP的RAM中,之后所有的FFT和IFFT计算均可直接调用。

在进行FFT运算时,需要指定FFT的点数,为了提高FFT的效率,FFT的点数应该是2的整次幂。脉冲的长度为N1=480,匹配滤波器的点数为N2=480,由信号理论可知,只有把两信号分别补零至N点,且当NN1+N2-1时,匹配滤波器输出结果才是二者的线性卷积,所以FFT点数选取1 024。

线性调频信号匹配滤波器的输出会产生距离向(即时延)旁瓣。这是由于线性调频信号的频谱近似为矩形,从而会产生类似sinc函数状的距离响应。为了减小匹配滤波器输出信号的时域旁瓣,可以考虑在频域对匹配滤波器的响应加窗。本文选用汉明窗,窗的宽度应该覆盖线性调频信号的有效带宽,则窗的长度可由下式确定:

本文中,B=10MHz,fs=60MHz,NFFT=1 024,计算可得Nw=170,根据公式计算得到长度为170的汉明窗。

DSP进行脉冲压缩的计算流程如图6所示。

经DSP计算得到的匹配滤波器的频谱如图7所示。在未加窗的情况下,对匹配滤波器输出后的脉压结果取对数所得结果如图8所示,从图中不难看出,第一距离旁瓣大约比输出峰值低13 dB。

对照图7所示的匹配滤波器的频谱,由于频谱的有效带宽分布在两边,所以应将汉明窗上下翻转,如图9所示,并将翻转后的窗函数从中间拆成左右两半,左右各85个点,左半部分乘到匹配滤波器频谱的前85个点,右半部分乘到匹配滤波器频谱的后85个点,匹配滤波器的中间部分全部乘以0,这些0作为窗函数展宽到1 024点时补0所得。

加窗后匹配滤波器输出的脉压结果如图10所示,从图中可以看出,第一距离旁瓣大约比输出峰值低32 dB。

4 结语

本文详细介绍了基于FPGA和DSP的线性调频雷达信号脉冲压缩的一种实现方法。首先在FPGA中对信号进行FIR滤波和正交解调,然后在DSP中进行脉冲压缩,达到了实时处理的效果,并讨论了匹配滤波器加窗后脉冲压缩结果的变化。该设计已成功应用于某雷达信号处理机中,并取得了非常好的处理效果。

参考文献

[1]王远模,马君国,李保国,等.浮点脉压处理器的FPGA实现研究[J].现代雷达,2005,27(10):41-44.

[2]RICHARDS M A.雷达信号处理基础[M].北京:电子工业出版社,2012.

[3]Analog Devices.ADSP-TS201 Tiger SHARC processor hardware reference[R].US:Analog Devices,2004.

[4]谢海霞,孙志雄.可编程FIR滤波器的FPGA实现[J].电子器件,2012,35(2):232-235.

[5]李玉林.基于FPGA的直接型FIR滤波器实现[J].现代电子技术,2006,29(10):1-3.

[6]栗晶晶,赵岩,李富华.基于FPGA的FIR滤波器的设计与实现[J].声学技术,2011,30(4):471-474.

FPGA+DSP 篇6

水声学是一门实验科学,湖、海上试验一直是水声学的重要研究手段。在试验中,通常需要使用水声信号源、水声信号采集设备、脉冲应答器、目标信号模拟器等一系列水声试验设备,完成主要参试设备检验、目标数据获取等工作。其中水声信号能否高速精确的采集影响整个实验结果。采用DSP+FPGA架构的水声信号采集与数据处理系统显示出其在高速采集与信号流控制方面的优越性。

DSP+FPGA架构结构灵活,有较强的通用性,适于模块化设计。同时其开发周期较短,系统易于维护和扩展,适合于实时信号处理[1]。DSP+FPGA架构能够正确应用的前提是实现DSP和FPGA之间的数据通信,即接口设计。本文将分为软件和硬件阐述DSP和FPGA的数据通信机制,介绍FPGA控制AD7606采集水声信号过程。

2 硬件设计方案

硬件设计分为三部分:FPGA、DSP和AD采集卡。硬件总体设计方案如图1所示。系统硬件的水声信号采集部分包括水听器组、A/D转换模块、FPGA控制模块、DSP处理模块。水听器组接收功率放大电路发出的工作频段覆盖500Hz~40k Hz的水声信号,通过FPGA控制AD7606采集水听器信号,DSP处理模块通过外部存储器接口(External Memory Interface,EMIF)访问FPGA内部双口RAM读取采集到的水听器水声信号,并对采集到的信号进行处理。

2.1 FPGA硬件设计

本设计采用Xilinx公司的Spartan6系列的FPGA器件,在该器件内部集成有块存储器资源,该存储器资源可配置成单口RAM、简单双端口RAM、真正双端口RAM,数据位宽也可以根据不同的应用场合配置为8位、16位、32位、64位。本设计将FPGA内部的块存储器配置为真正的双端口RAM,真正的双端口RAM具有两个完全独立的端口(端口A和端口B)用于访问共享的存储空间。双口RAM的每个端口有各自的数据线、地址线、读写控制线,允许不同的系统同时对其共享的存储空间进行访问。本文就是基于此原理,实现了DSP和FPGA同时对FPGA内部的双口RAM共享的存储空间进行访问和数据通信[2]。

2.2 DSP硬件设计

TMS320C6748是一个基于C674x DSP核心的低功耗应用处理器[3],提供了丰富的外设接口,拥有DSP高速数据处理和低功耗的特点,CPU内部集成了强大的多媒体处理单元,拥有EMIF、u PP、USB 2.0 OTG等接口,同时支持VPIF视频输入和视频输出。处理器主频高达456MHz[4]。本文通过TMS320C6748的EMIF接口访问外部存储器,即FPGA内部的双口RAM。DSP端通过对FPGA内部双口RAM的读写,读取FPGA通过AD7606采集的水声信号。EMIF接口与FPGA内部双口RAM连接图如图2所示。

2.3 AD采集卡

采集的水声信号主要来自水声换能器发出的复杂信号,包括:单频信号、扫频信号以及任意谱形状的宽带信号。单频信号频率范围:500Hz-40k Hz,扫频干扰范围:500Hz-40k Hz(分段)。设计中采用如下方法生成宽带噪声:将高斯白噪声经过带通滤波后,再经过成形滤波器,最终生成所需要的宽带噪声。成形滤波器的设计需要考虑相应功放和换能器的频响特性,如图3所示。

AD采集卡部分兼顾水声信号采集、脉冲应答两种功能的使用,由球形压电水听器接收上述特定水声信号,连接到AD采集板转换成数字信号,该压电水听器的主要指标如下:工作频带:200Hz-40k Hz;接收灵敏度:-186d B±2.5d B(ref:1V/u Pa,2k Hz-40k Hz);水平指向性:360°(起伏小于3d B);垂直指向性:≥270°(-3d B点)。

AD7606是ADI公司的16位同步采样AD芯片,采样率高达200k SPS。片上集成模拟输入箝位保护、二阶抗混叠滤波器、跟踪保持放大器、16位电荷再分配逐次逼近型ADC内核、数字滤波器、2.5V基准电压源及缓冲、高速串行和并行接口[5]。

AD7606采用5V单电源供电,并支持真正±10V或±5V的双极性信号输入。所有的通道均能以高达200k SPS的速率进行采样,同时输入端箝位保护电路可以承受最高达±16.5V的电压。传统的逐次逼近(SAR)型ADC,由于其采样电容的设计,模拟输入前端一般需要运算放大器(简称运放,Operation Amplifier)实现内部采样电容的驱动。此电容的存在,其等效输入阻抗与采样频率相关,而且在一些高采样率的应用中,使得前端驱动运放的选择十分苛刻。在AD7606内部的信号调理电路中,包含低噪声、高输入阻抗的信号调理电路,其等效输入阻抗完全独立于采样率且固定为1Mohm。同时输入端集成具有40d B抗混叠抑制特性的滤波器,简化了前端设计,不再需要外部驱动和滤波电路。因此,二次互感器输出的信号无需再经过运放缓冲就可以直接接入AD7606[6]。

AD7606还提供过采样和数字滤波功能。通过管脚OS[2∶0]可以设置过采样倍数(OSR)为x2,x4,x8,x16,x32,x64。过采样打开后,内部的过采样控制电路和1阶Sinc数字滤波器会自动被使能,同时-3d B带宽也会相应改变[7]。

项目中采集的水听器信号包括:单频、调频以及任意谱形状的宽带噪声信号的最高工作频率为40KHz,采样率远大于最高工作频率的二倍,而经验数据表明,至少使用4倍于信号最高频率的采样频率才能保证不会丢失信号的任何信息,此采样板仍然满足。FPGA与AD7606采集板接口如图4所示。

2.4 数据流走向图

数据流走向是多通道水声信号采集方案设计的核心部分,实现AD、FP-GA、DSP三者数据流的控制,FPGA需要兼顾考虑DSP的接收时钟以及AD的采样速率,使数据流按照既定的要求完成传输[8]。

为了实现水声信号数据在DSP和FPGA之间高速传输,将FPGA内部双口RAM分成两块存储区域RAM1和RAM2。双口RAM存储FPGA控制AD7606采集到的水声信号数据,DSP从双口RAM读取水声信号数据[9]。如图5所示,FPGA控制AD7606将采集的水声信号数据先存储到RAM1中,当数据存满,返回一个RAM1存满标志,通过数据选择器改变数据流向,将水声信号数据存到RAM2中。在RAM1存满,RAM2开始存储数据的过程中,DSP通过EMIF读取RAM1中的数据。当RAM2存满后,返回一个RAM2存满标志,通过数据选择器改变数据流向,将水声信号数据存到RAM1中。在RAM2存满,RAM1开存储数据的过程中,DSP通过EMIF读取RAM2中的数据[10]。水声信号数据的读取通过外部中断控制,DSP和FPGA每次访问固定的地址,读取固定长度的水声信号数据,并通过DSP向FPGA发送开始采集和停止采集指令,控制数据系统的工作[11]。

3 软件设计方案

软件设计分为DSP和FPGA。FPGA控制AD完成对水听器水声信号的采集。DSP通过EMIF接口接收FPGA采集的水声信号并进行数据处理。

3.1 DSP软件设计

DSP作为系统的核心控制器,如图6所示,负责给FPGA发送数据转换启动指令,通过外部中断,查询FPGA的双口RAM中的RAM1或者RAM2是否写满数据。有一个写满,则给出一个中断信号,并判断是RAM1数据写满还是RAM2数据写满,然后关闭中断,读取相应地址的由FPGA控制AD7606采集到的水听器水声信号数据。进行数据处理、存储显示后,开启中断,准备下一组数据的读取。

3.2 FPGA部分软件设计

FPGA是采集模块的控制部分,接收DSP发出的数据转换启动指令,启动AD数据转换,通过检测BUSY信号检测AD转换是否完成。接收DSP发出的数据的读取指令,上传AD转换结果,清零内部寄存器[12]。软件流程图如图7所示。

4 仿真测试结果

本文测试部分首先通过FPGA控制AD7606采集信号,存储到双口RAM中,然后DSP端读取采集到的信号,最后通过UART2在PC机上显示。如图8所示为使用调试软件Chip Scope采集到的AD7606的结果。AD7606采用并行模式,独立CS和RD脉冲,在CONVST时序转换期间读取信号。采集到的BUSY、RD等信号与时序图一致,并且能够准确的采集到信号。

FPGA控制AD7606采集水声信号并存储到RAM中后,不论是RAM1还是RAM2数据写满,将给DSP发送外部中断信号,使DSP开始接收FPGA双口RAM的数据,仿真结果如图9所示。为了便于观察采集结果,使用信号发生器发出单频信号,FPGA控制AD模块采集,并将采集结果通过UART2串口和上位机两种方式显示,显示结果如图10、图11所示,可以看到传输给DSP的结果与FPGA采集到的结果相一致。

5 结束语

本文分别介绍了DSP和FPGA水声信号采集的硬件系统描述和软件流程图,并通过仿真测试验证AD采集与DSP与FPGA传输的准确性。该DSP+FPGA设计方案应用于水声信号采集,兼顾了DSP的高速运算和FPGA并行处理的优点,在需要处理的数据量大,处理速度要求高的设计中有很大的优势。EMIFA接口的设计使用与传统的使用串口、SPI接口相比,具有传输速度快,占用时序少,操作简单的特点,在使用DMA优化时,最快可达到40M/S的传输速度,为高速数据采集与处理提供了良好的方案。在高速信号采集中有广阔的应用前景。

参考文献

[1]崔旭涛,杨日杰,何友.基于DSP+FPGA的信号处理实验系统研制[J].仪器仪表学报,2007,28(5):918-922

[2]关守平,尤富强,董国伟.基于FPGA的高速数据采集系统设计[J].控制工程,2013,20(5):970-975

[3]Texas Instruments.TMS320DSP Algorithm Standandard Rules and Guidelines.Texas Intruments,2001.

[4]Texas Instruments.TMS320C6748 Floating-point Digital Signal Processors Data Sheet.

[5]胡永兵,周云飞,杨钦.一种高精度多通道采集系统及其性能分析[J].微型机与应用,2012,31(16):28-31

[6]谭志宏,景德胜,缑丽敏.基于DSP的高速AD采集系统设计与实现[J].电子技术设计与应用,2014,(04):41-44

[7]吴骞.AD7606在电力系统参数采集中的应用与设计[J].电子世界,2012,(21):74-75

[8]Yang K,Zhao Y,Ma Y.Design of high-speed,large-scale and multi-channel data acquisition system[J].Data Acquisition&Processing,2002,17(4):455-458

[9]包可佳.基于FPGA的高速实时数字存储示波器设计[D].南京,南京航空航天大学,2007.

[10]Texas Instruments Corporation.TMS320C6000 EMIF to External Flash Memory.2001.

[11]邱望标,李超,徐苏恒.基于DSP+CPLD的数据采集系统研究[J].工矿自动化,2010,36(3):32-33

FPGA+DSP 篇7

北斗无源定位需要同时对三颗卫星六个波束信号进行处理,处理数据量巨大,单纯靠通用计算机很难达到实时性的要求。随着数字信号处理器(DSP)和现场可编程门阵列器件(FPGA)的发展,采用DSP+FPGA架构的数字硬件系统显示出其优越性。FPGA适用于运算量大、算法相对简单的场合,而DSP适合于算法结构复杂,但涉及的数据量较小的场合。本系统采用了FPGA+DSP架构的硬件设计方案,通过算法的合理分配充分地利用两种器件的优点实现了北斗卫星信号的实时处理。

1 无源定位系统的组成

1.1 硬件系统构成

该系统由三部分组成,如图1所示。系统的信号处理流程见图2所示。天线接收的北斗一号卫星信号经过射频前端放大、变频处理转换为中频信号,经AD采样变为数字信号后送入到由FPGA和DSP组成的数字信号处理单元,在其中完成捕获、跟踪、解调、帧同步以及定位结算等功能。北斗卫星定位方式采用扩频通信体制,每颗卫星都分配不同的扩频码来区别。由于卫星和用户之间存在相对运动,所以用户接收信号的载波和扩频码都存在多普勒频移。捕获就是通过将本地复制卫星信号同接收信号在伪码域和频率域进行二维搜索,从而达到两者粗略同步,跟踪就是在捕获结果的基础上利用延迟锁定环(DLL)和锁相环实现伪码和载波的精确同步,根据伪码NCO和载波NCO提取卫星和用户之间的距离。对精确同步后的信号进行解调、解码、帧同步提取描述卫星位置的导航电文,利用导航电文计算三颗卫星的位置,有了卫星位置和距离就可在DSP中利用迭代算法解出用户的位置以及用户时钟同北斗时间的差值,最后通过串口将定位结果传送到PC上,信号处理部分还可以输出基于北斗时间秒脉冲(1pps)用于其他设备时间同步。

1.2 处理器芯片

AD芯片采用AD公司生产的一种高速、高性能、低功耗8位模数转换器。该芯片内部集成了高性能采样和保持放大器,输入信号可以采用单输入或差分输入;处理输入电压峰峰在0~1V之间的模拟信号;采用单+3V模拟电源和单+3V数字电源;片内提供+1.2V~1.3V的参考电压;最高采样率可达100Mb/s;在100Mb/s采样下功耗只有90mW;最大模拟输入带宽高达475MHz;在100Mb/s采样下信噪比(SNR)为46.5dB。

FPGA芯片采用Altera公司近期推出的采用65nm工艺的CycloneⅢ系列的EP3C120,该系列芯片是目前为止工艺最先进、低功耗、低成本的平台级可编程逻辑器件。EP3C120芯片内部具有120K逻辑单元(LE)和530个用户I/O引脚,还具有4Mbit嵌入式存储器、288个嵌入式18×18乘法器、专用外部存储器接口电路、4个锁相环以及高速差分I/O等,特别适合对功耗和价格敏感的大批量应用。

DSP采用TI公司推出的目前最为先进的浮点DSP芯片TMS3206713。该芯片最高时钟频率达225MHz,内部有8个并行处理单元,分为两组。其体系结构采用超长指令字(VLIW)结构,指令长32位,8个指令组成一个指令包,总共字长为256位。芯片内部设置了专门的指令分配模块,可以将每个指令包同时分配到8个处理单元运行。TMS3206713的存储器寻址空间为32位,芯片内部集成了7Mbit片内SRAM。该芯片利用32位的外部存储器接口可以配置不同速度、不同容量和存储器。TMS3206713还包含丰富的片上外设,包括16通道增强型直接存储器存取协处理器,用于控制数据的EDMA传输;16位主机端接口,可以将该芯片配置为主机的DSP加速器;两个32通用定时器;两个多通道音频串行口以及用于芯片开发和调试的边界扫描接口。

2 数字信号处理模块设计

数字信号处理模块相互间的接口关系如图1所示。信号处理板上的晶振提供10MHz时钟输入到FPGA中,经过FPGA的锁相环(PLL)分频后作为FPGA的工作时钟和A/D采样时钟。板上A/D将8位的采样数据送到FPGA,FPGA对其进行截断后送入数字接收通道进行处理。在FPGA的内部实现了FPGA和DSP的读写接口电路,DSP与FPGA之间的数据交互是以32位数据总线的形式设计的,FPGA内部寄存器组连接到DSP的EMIF接口的CE2空间,这样DSP就把FPGA当做一块异步SRAM来读写访问。DSP的10根地址线连接到FPGA上,因而DSP最多可以访问FPGA内部1024个32位的寄存器。在FPGA内部,通过对高5位地址线的译码逻辑,将1 024个地址分成32个地址段,每个地址段包括32个32位的寄存器,每个地址段分配给不同的通道,用以存储累积值载波NCO、伪码NCO以及各个信号处理模块的状态等。FPGA的数据上报申请是通过DSP的两个中断管脚实现的。其中;DSP_EINT5用于指示有新的相关累积值需要上报,中断周期为31.25μs(一个伪码周期为16kHz,由于各个通道的计算不一致,所以采用1/32K的中断),而DSP_EINT6用于指示有新的基本观测量需要上报,中断周期为31.25ms(一帧信息的长度为31.25ms)。

3 无源点位算法与实现

3.1 三星无源定位的原理及算法

北斗一号星座包括两颗同步卫星、一颗备份星,分别位于东经80°、东经140°和东经110.5°。同GPS定位方式一样,如果同时利用天上的三颗卫星同用户之间的距离可以联立三个方程,但是如果需要同时求解用户的三维位置及用户钟和北斗时之间的时钟差的话,必须再建立一个方程。用户的坐标满足椭球方程,因此可以通过气压测高的方式得到用户的海拔高度来建立第四个方程,由于联立的四个方程是非线性的,可以通过迭代的方式求解。

通过导航电文可以知道3颗卫星的位置坐标(xi,yi,zi),i=1,2,3和卫星信号的发射时间tTj,根据用户的接收时间tR,可以得到卫星到用户的伪距ρj=(tR-tTj)×c,j=1,2,3。设用户的三维位置(xu,tu,zu)和偏移量tu,产生3个方程,组成如下方程组:

用户位置满足椭球方程,建立第四个方程:

其中,EarthA为地球半长轴,E为地球第一偏心率。θ为线性迭代求解过程中初始用户的经度。

如果近似知道接收机的位置,则可以将真位置(xu,yu,zu)和近似位置()之间的偏离用位移(Δxu,Δyu,Δzu)来标记。将式(1)~(4)按泰勒级数绕近似位置展开,则可以将位置偏移(Δxu,Δyu,Δzu)表示为已知坐标点和伪距测量值的线性函数。这个过程如下:

将记为如下矩阵形式:

最后得到:Δρ=HΔx

它的解式:

一旦算出了未知量,便可以算出用户的坐标(xu,yu,zu)和接收机时钟偏移tu。只要位移(Δxu,Δyu,Δzu)是在线性化点的附近,这种线性化方法便是可行的。可以接收的位移取决于用户的精度要求。如果位移的确超过可接受的值,便重新迭代上述过程,即以算出的点坐标(xu,yu,zu)作为新的估计值,重新迭代过程。

3.2 无源定位算法的软件实现

整个无源定位算法的实现分为FPGA处理单元和DPS处理单元两个部分,FPGA实现六路并行的数字接收通道(北斗一号有三颗卫星六个波束)完成载波剥离、接扩、积分累加以及伪距、载波相位等基本观测量的提取等。DSP主要完成伪码捕获、载波和伪码跟踪环路的滤波以及数据解调、位同步、帧同步等算法和整个软硬件的协调功能。为了使如此之多的模块能够顺利运行,在DSP的主程序中采用了任务调度的机制,以两个中断时间间隔为基准,根据信号处理的流程在不同时刻抛出各种不同的优先级的任务,主程序不停地查询任务队列,如果队列中有多个任务等待处理,则取出优先级高的进行处理。整个信号处理的流程如图3。系统上电后首先进行DSP和FPGA的初时化,然后对一颗卫星某个波束进行处理通道分配,DSP程序进入任务调度状态,FPGA根据设置的载波NCO参数、伪码NCO参数产生本地复制的卫星信号,将该复制信号同实际信号进行相关累积运算,31.25μs后产生5号中断通知DSP某一通道中存在新的累积值,同时FPGA重新开始下一个相关累积运算,DSP得到新的累积值后开始顺序进行捕获、跟踪和定位解算,同时抛出Viterbi译码、串口通信、组建导航信息和提取命令四个任务;31.25ms后产生6号中断通知DSP读取伪距、载波相位等观测量,同时抛出分配通道、定位解算和发送消息任务。整个系统在DSP的调度下循环往复运行。

FPGA算法设计采用VHDL在Altera公司的Quartus.Ⅱ.v6.0集成开发环境下成功实现;DSP算法设计采用C语言在TI公司的CCS3.1集成开发环境下成功实现。整个系统联机运行稳定,满足设计要求。

系统基于软件无线电的概念设计了一个通用的硬件平台,只要修改相应的算法就可以实现利用GPS信号定位。软件上采用任务调度的方式,利用累积值中断和测量值中断抛出不同的任务。如果需要增加新的功能,只需要添加一个新的任务即可。该系统在实际的测试中,冷启动首捕时间≤2s,失锁重捕时间≤1s,定位精度小于100m,测速精度小于2m,满足系统的设计要求。

参考文献

[1] 张常云.三星定位原理研究.航空学报,2001,(2) .

[2] 孙国良,丁子明.双星系统工作方式改进的探讨.电子学报,2001,(9) .

[3] 卢子建,李德华.FPGA+DSP 实时三维图像信息处理系统.电子技术应用,2007,(3) .

[4] 陆海东,吴明赞.基于 DSP+FPGA 结构的小波图像处理系统设计.电子技术应用,2006,(3) .

[5] TI Inc.TMS3206713 Datasheet,2005.

[6] AD Inc.AD9283 Datasheet,2001.

FPGA+DSP 篇8

1 系统总体设计

运动控制器的总体性能指标为:作为一个单独的运动控制器使用,控制信号采用数字量方式输出,能控制四轴的伺服电机;最高脉冲输出频率为4MP/s,能处理的编码器反馈信号最高频率为4MP/s;能接收和处理4路编码器反馈信号;可以处理原点信号、正负方向信号、到位信号以及急停信号等数字量输入信号;提供16路数字量输出信号和16路数字量输入信号接口。运动控制器采用DSP与FPGA芯片作为主控芯片,主要包括DSP模块、FPGA模块、FPGA外围电路模块和数字量输入输出接口模块。

采用基于DSP与FPGA的运动控制器,能够实时完成复杂的轨迹运算,而且利用DSP的高速数字信号处理功能和FPGA功耗低、主频高的优点,能充分显示该运动控制器的优点。采用DSP与FPGA相结合的运动控制器可以方便地对系统的控制策略进行修改,对控制参数进行修正,并可使设备具有良好的可靠性、可维修性,而且还降低了成本。系统还可以采用更多的智能控制策略,结构灵活,有较强的通用性,适合于模块化设计,能够提高算法效率,且易于维护和扩展。总体设计方案原理框图如图1所示。

2 系统硬件设计

2.1 DSP模块

本控制器采用TI公司的TMS320F2812为主控芯片,它是32位的控制专用DSP,内含FLASH,主频高达150 MHz,具有数字信号处理、事件管理和嵌入式控制功能,适用于大批量数据处理的场合。

选用TI公司生产的TPS767D318芯片来实现TMS320-F2812的电源设计,将5 V电源分别转换为3.3 V和1.8 V。SRAM是DSP常用的外围存储器,它具有接口简单、读写速度快等优点,所以选择大小为64 KB的随机存储器CY7C1021作为存储器扩展芯片。DSP F2812与CY7C1021接口电路如图2所示。

复位电路设计采用TI公司的TPS382x系列电压监控电路,此系列电路不需要外围电路即可组成监控电路。SCI模块用于扩展RS-232和RS-485串行通信接口;CAN模块和外部CAN工业现场总线相连;外部接口用于与FPGA连接和扩展数字量输入输出。

2.2 FPGA模块

FPGA芯片选用Altera公司的Cyclone系列EP1C6TC44C8,这是一款高性能、低功耗的FPGA。EP1C6TC44C8具有2个锁相环,包含5 980个逻辑单元,相当于12万门的规模,同时还包含了最高频率200 MHz、92 160 bit的内部RAM。该芯片所拥有的逻辑门数量、频率和引脚I/O等资源都能很好地满足运动控制器的设计要求。由于本系统的控制对象是伺服电机,所以设计中主要利用EP1C6TC44C8的I/O口设计电机控制信号的输入输出、编码器信号的输入与部分数字量输入输出。另外,该芯片在整个硬件系统设计完毕后还可以通过JTAG接口对硬件进行重配置,可以增加系统设计的灵活性。

2.3 FPGA外围电路模块

X轴伺服电机控制电路如图3所示。Y轴、Z轴、U轴伺服电机控制电路与X轴相同。

(1)输入输出开关量接口设计。

输入信号主要包括限位开关信号LIMX+、LIMX-~LIMU+、LIMU-,伺服报警信号ALMX~ALMU和回零信号HMX~HMU。输出信号主要包括伺服使能信号SRVX~SRVU和复位信号RSTX~RSTU。当检测到这些信号后,确定具体触发的信号,限位信号触发,则立即停止对应电机该方向的运动,直到限位消除,电机才能在该方向继续运动;回零信号触发,则电机等待Index信号的输入后立即让电机反向运行用户设定的回零距离作为机械零点;伺服报警信号输入时,程序立即停止该电机的运动,直到用户将报警清除。

(2)输出控制脉冲电路设计。

输出控制脉冲信号为伺服电机的4路脉冲控制输出信号。此控制采用“脉冲+方向”指令,由于每个控制轴分别有脉冲和方向信号,所以4路共8个输出信号。输出控制脉冲信号由FPGA输出,要先经过电平转换,将FPGA的I/O引脚的3.3 V变为5 V,再经过光电隔离,然后再经过施密特触发器整形后输出。由于脉冲和方向信号需要进行差分,所以将信号接入差动线驱动器后再输出。XPLS~UPLS为脉冲信号,XDIR~UDIR为方向信号。差动线驱动器由AM26LS31构成,该电路的功能是将输入的单极性的方波信号转化为一对极性相反的电机驱动信号,它的高阻抗输出状态在电源掉电时是有保障的。

(3)反馈脉冲处理电路设计。

伺服电机的编码器信号直接接入到电机驱动器中,驱动器提供三对差分信号A+、A-、B+、B-、Z+、Z-作为反馈。这三对信号由于受到驱动器内部大电源的干扰,在电机旋转时,所发出的信号会出现许多毛刺,直接接到FPGA中会引起误判断,所以三对信号经过差分电路转化为单路信号A、B、Z。差分电路由AM26LS32构成,该芯片功能与AM26LS31相反,该电路的功能是将输入的一对极性相反的编码器反馈信号转化为单极性的方波信号。A、B两路为正交编码脉冲,Z路每转产生一个低电平脉冲,用于回零时的精确定位。

2.4 数字量输入输出接口模块

考虑到系统的可扩展性和DSP的GPIO口的数量,此运动控制器在DSP与FPGA上分别设计8路,共16路数字量输入输出。运动控制器的所有数字量输入输出信号均采用光电隔离处理,并对每一路信号进行相应的数字滤波处理,以消除噪声信号。数字量输入通道可以根据用户的要求自定义用途,用于零点、限位信号的输入等;数字量输出通道用于各轴方向、脉冲信号的输出以及一些外部设备的启停控制等。

3 系统软件设计

软件设计采用模块化设计方法,程序的总体结构采用以数据管理和位置速度控制为主,以I/O端口控制、逻辑控制、插补运算等为中断任务或子函数任务的形式。位置速度控制主要负责对实时运动状态的监控与调节;I/O端口控制主要负责扫描输入端口、设置输出端口等辅助性任务。

DSP控制程序主要由一个定时中断构成,主程序启动后,首先完成对TMS320F2812的初始化及系统的一些基本配置,并处于等待状态。运动控制功能是在伺服中断服务程序中实现的。主程序和伺服中断服务程序基本流程如图4所示。

FPGA主要完成运动控制器的精插补功能,采用数字积分法进行插补[1]。把数字积分法分为3个状态:(1)状态WAIT,等待插补信号;(2)状态L1,判断总的脉冲数;(3)状态L2,积分累加器累加一次,如有溢出,相应的输出脉冲为高电平,剩余累加次数减1。

数字积分法的有限状态机如图5所示。

触发条件T1:没有启动信号,下一状态为WAIT,无操作;触发条件T2:有启动信号,下一状态为L1,操作为初始化各寄存器,置忙信号;触发条件T3:剩余累加次数大于0,下一状态为L2,操作为各轴输出脉冲为低电平;触发条件T4:剩余累加次数为0,下一状态为WAIT,操作为各轴输出脉冲为低电平,清忙标志;无触发条件:下一状态为L1。

具体实现方法为:时序电路产生的插补脉冲作为此模块的累加脉冲,每累加1次,剩余累加次数减1。当剩余累加次数为0时,此次插补过程结束。

本文设计了一种通用型四轴伺服运动控制器,该运动控制器的结构设计可以模块化和易于扩展,这样可以满足用户的各种需求。在软件部分中,采用有限状态机的插补方法,在插补速度处理环节做了优化,使脉冲输出更加稳定。此设计采用了模块化思想,各电机可以单独控制,具有较为全面的运动控制功能、较高的控制精度和较快的反应速度,其性能可靠、硬件结构简单、价格便宜。

摘要:设计了一种基于DSP和FPGA的四轴伺服电机运动控制器,该控制器选用DSP与FPGA作为核心部件。针对运动控制中的一些具体问题,如高速、高精度、实时控制等,规划了DSP的功能扩展,在FPGA上设计了功能相互独立的四轴运动控制电路。该电路接收和处理4路编码器反馈信号;可以处理原点、正负方向、到位以及急停等数字量输入信号;提供16路数字输入输出信号作为系统一般功能扩充使用;具有较高的集成度和灵活性。

关键词:运动控制,伺服控制,DSP,FPGA

参考文献

[1]刘洪泳.四轴伺服运动控制卡的研制[D].南京:南京航空航天大学,2004:29-30.

[2]李叶松,董玮.基于CPLD的开放式四轴运动控制器的设计[J].电子技术应用,2005(5).

[3]詹海菊.基于DSP的运动控制器的研究与开发[J].微计算机信息,2008,24(8-2):202-204.

[4]侯小强,薛重德,张月芹.基于TMS320F2812的多轴运动控制卡设计[J].单片机与嵌入式系统应用,2008(6).

【FPGA+DSP】推荐阅读:

上一篇:空冷汽轮发电机下一篇:体育价值

本站热搜

    相关推荐