基于G4平台的嵌入式VxWorks系统在雷达信号处理中的应用

发布者:心怀梦想最新更新时间:2012-04-06 来源: 电讯技术 关键字:G4硬件平台  多任务  VxWorks  信号处理 手机看文章 扫描二维码
随时随地手机看文章

引 言 

在雷达系统的数字信号处理中,其主要特点是数据流量大、运算量大和处理的实时性,单片高性能的DSP芯片也不能满足处理要求,必须采用多DSP板作为数字信号处理平台。开发复杂的多DSP板硬件平台需要投入大量的人力而且开发风险较大,购买专业公司开发的稳定、可靠的通用数字信号处理平台是数字信号处理领域发展的趋势。设计人员只需致力于信号处理算法的研究,利用高级语言编写算法软件来完成系统要求,从开发复杂的硬件平台中解脱出来,降低了整个信号处理系统的开发风险,缩短了开发周期。本文介绍一种通用的G4数字信号处理硬件平台,该平台选用基于抢占式多任务VxWorks实时操作系统作为平台的操作系统,它能管理各种独立任务的执行,每个任务能及时响应外部事件并且能及时处理。它为整个雷达信号处理能实时完成处理提供了很好的系统软件支持。 

G4硬件平台的基本结构和特点 
        
G4平台基本结构
G4 DSP功能框图如图1所示。



图1 G4 DSP功能框图

如图1 所示,G4 硬件平台是一块由4 片CPU组成的数字信号处理板, CPU是摩托罗拉公司PowerPC系列MPC7410 RISC的微处理器,处理器支持对称多处理器技术( SMP) ,内核时钟500 MHz,包含多个运算处理单元,支持哈佛结构和指令流水线操作,具有SIMD特点,在一个时钟周期可执行8条指令;集成了128bit AltiVec执行单元,14 GFLOPS数据处理能力,能够快速地完成卷积、FIR 滤波器和FFT等数字信号处理算法;内部总线是60X总线(32位地址总线和64位数据总线) ,100MHz的外围设备总线速度,包含32kbyte一级指令Cache和数据Cache, 支持最高2Mbit的外部L2 CACHE,支持多种内存寻址的内存管理模式。每一个处理器与外围I/O 接口通信通过CPC710 桥的PC I总线实现,处理器间通过64 bit、66MHz Intel 21555非透明PCI桥互联,其峰值带宽为528Mbyte / s。 [page]

G4平台的基本特点 

G4平台的基本特点为:

(1) 每一节点是独立的, 包含大容量内存SDRAM (256 Mbyte) , 16 Mbyte FLASH 用于存放系统B IT、用户应用程序和常数表等; 
(2)每一节点包含Xilinx 7410XC95144XV PLD中断控制器,节点间可以相互发中断请求和中断回应,用于节点间通讯握手以及板内与板外间的通信握手; 
(3) 每一节点包含RS232串口,用于对节点进行软件调试;每一节点都有JTAG接口;节点2 和4提供了64 bit/66MHz PMC (PMC - IEEE P1386. 1) ,它是一种高速的、工业标准的扩展PCI接口,可以用于扩展为图形卡、板间通信卡、高速通信(ATM、ISDN等)卡、多媒体、或用户根据需要进行扩展使用,峰值传输带宽为1 056 Mbyte / s;节点3带有32 bit/33MHz PCI总线,用于板间通信,或作其他扩展使用; 
(4) 节点1 提供VME64、100BaseT Ethernet (通过CPC710 上的32 bit/33 MHz PC I总线) ; VME64与板外的进行通信,其峰值带宽为80 Mbyte /s; Ethernet主要用来调试;可以单独或多用户同时对G4DSP板的每一个节点进行调试。 
(5)节点间通过PC I桥互联,通过PC I地址映射,每一节点都能“看见”对方的内存,能直接对其
他节点内存进行读写;支持DMA传输,完成点对点的高速数据传输。 

G4平台支持的软件 

G4平台的软件支持是开放和独立的,不局限于某一种操作系统和某一种信号处理库,为最大限度地保护用户的软件投资并快速上手开发应用程序,有利于算法的开发。

(1) 支持风河公司的VxWorks/VxMP实时操作系统和VSPWorks DSP RTOS虚拟单处理器实时操作系统,开发人员面向单处理器系统编写的源代码,可在任意数量的处理器上执行。VSPWorks会协调好处理器之间的一切通信机制,最多可以支持1 000个处理器;

(2)支持MPI软件公司的VSI/Pro VSIPL和Dy 4Systems公司的IXLibs- AV数字信号处理库,专门针对MPC7410进行优化的数字信号处理算法库,包括FFT、FIR滤波器和图像处理函数等,执行效率高。

(3) 节点间通信可以使用VxWorks实时操作系统中的共享内存组件VxMP。VxMP的数据结构驻留在所有CPU 的共享内存区域,最多支持20个CPU。MPI软件公司的ChaMPIon/RT是一种实时消息传递接口标准,采用时间驱动、事件驱动、优先权驱动编程模式和混合编程模式,并采用了面向对象编程技术,它使MP I/RTAPI更易于使用。也可以使用RadStone公司专门为G4平台开发的消息传递接口RMP,充分利用硬件资源来进行消息传递,是一种低消耗、高效的消息传递方式。它们主要用于不同处理器上不同任务间的通信、同步和互斥,执行效率有所不同,都运行在VxWorks系统的应用层。 

VxWorks实时操作系统的优点 

VxWorks是美国风河公司推出的一个具有微内核、可裁剪的高性能、强实时操作系统,它主要有以下的优点:

(1)VxWorks具有高度可剪裁的微内核结构,需极少的RAM空间和ROM空间,内核与硬件无关,支持许多种嵌入式芯片,只需开发与硬件有关的BSP包即可,用户可以根据需要对VxWorks直接进行配置和修改; 

(2)VxWorks 能快速高效地对多任务进行调度,支持中断驱动的优先级抢占式调度和时间片轮转调度;任务间的通讯快速灵活,任务上下文切换快,切换时间确定;任务的状态可以动态地改变,可以在任意时刻改变任务的优先权、删除任务等;任务也可以禁止由内核调度;中断延迟时间短,延迟时间确定,是微秒级的; VxWorks系统任务和应用程序任务运行在SuperMode模式,系统调用开销小; 

(3)VxWorks系统具有很好的稳定性和可靠性,某一任务运行出错,操作系统挂起当前出错的任务,在系统中的其他任务继续执行,并可以恢复出错的任务; 

( 4)VxWorks具有灵活方便的I/O系统,驱动程序可以在用户的任务堆栈中运行,用户可以随意地添加设备的驱动程序,既可在VxWorks启动时添加设备的驱动程序,也可在应用程序任务中随时添加和删除设备驱动程序; 

(5)VxWorks 支持强大的网络功能,提供了TCP /IP协议、UDP / IP、FTP和TFTP服务器以及远程过程调用RPC等,可以用于宿主机和目标机的调试或其他的网络通信,通过TCP / IP支持多宿主机对同一个目标机进行程序下载、调试,在G4平台上可以配置成同一宿主机对多个CPU进行程序下载、调试; 

(6) 提供一个直观的、可视化的、用户可扩充的交叉集成开发环境Tornado;采用c / c + +语言进行开发,提供了高效交叉编译器,编译效率可达90%以上;Tornado IDE通过宿主机上的目标服务器与目标机的目标代理进行通信,可以静态和动态地下载应用程序模块;支持任务级和系统级调试;任务级调试,被调试的任务暂停执行,其他任务继续执行,系统级调试每一个任务都停止执行; Tornado IDE提供了多种纯软件调试工具:WindView (软件逻辑分析仪)可以看到程序在动态运行时发生的情况,如任务的状态、占用CPU的时间等; Browser定时采样工具,把采样后的数据(如任务队列、堆栈、占用内存的大小等)进行分析。Tornado能准确定位开发的应用程序在硬件平台上运行时的错误状态,帮助开发者缩短开发周期;嵌入式VxWorks作为G4硬件平台的操作系统是较好的选择。 [page]

在雷达数字信号处理中的应用 

雷达数字信号处理主要是通过高速A /D采集雷达正交基带回波信号,然后进行数字脉冲压缩处理、杂波抑制、恒虚警和目标检测,最后把目标信息数据传送给雷达终端进行显示。采用高速A /D采集雷达回波信号,和VxWorks完成大容量数据传输和实时性处理管理,合理划分任务和安排处理时序是成功实现的关键。 

基带信号采集 

回波信号的采集使用Interactive 电路与系统公司的ICS - 554四通道14bit A /D数据采集卡,可以用内部或外部时钟采样,最小采样率30MHz,最高采样率105MHz,内部和外部两种触发信号;标准的PMC 接口,带1M逻辑门FPGA 的64bit/66MHzQL5064 PCI总线接口芯片,支持master/ target DMA突发传输方式,未使用完的FPGA资源可根据用户的需要配置使用;两片64 K ×72 bit FIFO缓存,可以编程控制进行单通道数据采集,两通道或四通道同时采集,每两通道各占一片FIFO,每片最大采样128 K点,单通道最大各采样256 K点;采用捕获和持续两种采样模式,在捕获模式每一次触发采样点数和(在FIFO缓存大小内)总的采样点数,然后向CPU发中断请求,要求从CPU从缓存中取走已采样的数据都是可编程的;为多种操作系统提供了驱动程序,如Win2dowsNT、Windows 2000、Windows XP和VxWorks实时操作系。ICS - 554的功能框图如图2所示。



图2 ICS - 554框图  

在实际应用中, ICS - 554插在节点4的PMC标准接口上,采用10 kHz主触发脉冲作为外触发信号, 30MHz采样时钟, I、Q两路采样,每一个主触发脉冲采样2 048点,每一个CP I周期内要求采88个主触发脉冲周期的数据。考虑到每一路F IFO最大只能采256K点和DMA 方式下PC I总线的实际传输率,保证每一个CPI的数据不会丢失和FIFO不会溢出,采用每42个主触发脉冲周期就请求CPU开始接收在F IFO 缓存中的数据,先接收完F IFO1 中的数据,再接收F IFO2 中的数据,以后循环进行数据传输,直到禁止A /D采样为止。 

时序安排 

信号处理系统接收雷达终端发来的控制命令和正交回波信号经过A /D采样后的数字信号,雷达终端在CP I信号的下降沿通过VME总线发当前CPI信号的控制命令到G4板的VME内存映射空间,节点1把这些控制命令码值拷贝到全局共享内存,控制命令码值包括模式码,探测距离码等值;然后通知节点4取出当前模式码,节点4根据模式码对ICS- 554进行配置和允许ICS - 554开始采数并存入FIFO中。ICS - 554每采完44个主触发脉冲周期的数据后,向节点4发中断请求,节点4接到请求后通过节点1的全局共享内存查询当前控制命令,接着根据模式码配置 QL5064的DMA控制器。目标内存是节点1上的共享内存,启动DMA传输,把A /D采样存入FIFO 中的数据传给节点1, DMA传输完成后,节点4向节点1发出中断请求,节点1响应请求后,查询全局共享内存的控制命令,根据模式码开始进行脉冲压缩、杂波抑制、恒虚警和目标检测等信号处理。信号处理完后通过VME总线把目标信息数据传送到VME空间,通知雷达终端取走目标和状态信息;其它节点的数据也是通过节点4以DMA方式传到内存中进行处理,处理方法与节点1相似,只是节点2、3和4的目标信息数据先传到节点1,然后由节点1通过VME总线传给雷达终端,每个节点都独立处理一个CP I周期的数据。从A /D FIFO缓存中传数到各节点的顺序和信号处理顺序时序如图3所示。



图3 时序图 [page]

在一个CP I周期内,第一个阴影部分表示当前节点前42个主触发周期内A /D采样完成后由FIFO的DMA传数到节点内存的时间,第二个阴影部分是后42个主触发周期内A /D采样完成后由FIFO的DMA传数到节点内存的时间,但是由于采用DMA传输方式,不会占用CPU处理时间(除了中断来时很短暂地打断CPU的处理) ,相邻节点的数据传输率比相对节点的传输率高。 

任务划分 

划分任务的原则是能够在每个CPI周期内实时的接收雷达终端控制命令,并能接收经过A /D采样的正交I、Q两路回波信号,最后及时地把处理完成后的目标信息数据传给雷达终端。节点1负责接收本节点的A /D采样数据和进行数字信号处理,并把处理后的目标信息数据和节点2、3和4传来的目标信息数据传到VME空间,通知雷达终端及时取走数据。因此在节点1 上划分为6个任务:从节点4接收A /D采样数据任务,优先级最高; 接收节点2、3和4的目标数据并能及时送给雷达终端的任务优先级较高, 3个任务的优先级相同;系统开机和模式转换时查询命令任务的优先级次高,能及时响应命令并能送给节点4,重新对ICS - 554进行新的工作模式的配置;信号处理任务的优先级最低,它能保证本节点数字信号处理完成的同时,不会影响其它任务的数据传输。 

节点4主要完成管理ICS - 554 A /D数据采集和查询模式码。数据采集任务配置ICS - 554 AD传送采集后的数据到本节点和其它节点,并通知它们开始处理数据,该任务的优先级最高;模式切换任务在模式切换时,接收节点1发来的控制命令并根据模式码对A /D进行编程控制,该任务的优先级次高;信号处理任务保证节点4在接收到新的一帧数据来之前必须完成前一帧数据处理,每个CPI周期内,A /D每采集44个主触发周期的数据后,产生的中断要打断信号处理任务2次,造成该任务切换频繁,信号处理时间拉长,因此编写算法程序时一定要考虑节约处理时间,最后向节点1发中断请求,通过DMA方式把目标数据传给节点1,再传给雷达终端,该任务的优先级最低。 

节点2和 3接收A /D 数据采集任务的优先级最高,并在此任务中查询模式码。信号处理任务的优先级最低,处理完成后的目标数据通过DMA方式传到节点1,再传给雷达终端。该雷达信号处理涉及多种工作模式,这里只介绍了一种简单工作模式任务划分,其它模式的任务划分不在此赘述。 

开发中应注意的主要问题 

在开发过程中,由于采用了RMP库,它与ICS -554的驱动程序冲突,导致ICS - 554不能正常工作,并且RMP库的通用性强,占用的系统资源多,实时性也相对较差。在实际应用中作者根据具体开发的需要充分利用G4节点间中断握手和共享内存的特点,开发了适合自己的节点间通信库,提高了资源的利用率并降低了通信时间,提高了数字信号处理实时处理能力。 

数字信号处理库最好选用IXLibs- AV,该库和VSIPL库都针对MPC7410的AltiVec技术进行优化编写的。IXL ibs- AV 库函数涉及矢量运算更底层些,处理速度比VSIPL 更快,但对程序员的要求较高; VSIPL 库通用性较高,对程序要求低,但是处理速度较慢,并且在运行过程中, VSIPL 库有时会把G4板上引导FALSH中的引导程序冲掉,导致G4板不能启动。 

节点间的通信尽量采用“写”方式,写数速度比读数速度快;并且往相邻节点写数速度比相对节点写数快, ICS - 554的DMA引擎从F IFO传输数据到本节点速度最快;节点间通信时避免总线冲突。

G4板上各个节点的处理程序最好是独立、不相同的,不但占有的系统资源少而且处理速度快; 4个节点处理程序既可以从节点1上的User Flash中引导,也可以从各自的User Flash中引导。G4板元器件密度大,发热量大, G4板的散热处理是平台稳定、可靠工作的前提条件。 

结束语 

通过G4硬件平台和抢占式多任务VxWorks实时操作系统的结合使用,成功地实现了某雷达系统的实时数字信号处理,这种解决方案也可在声纳、通信等要求极高的数字信号处理领域中推广使用。

关键字:G4硬件平台  多任务  VxWorks  信号处理 引用地址:基于G4平台的嵌入式VxWorks系统在雷达信号处理中的应用

上一篇:基于MIPS32平台的Linux操作系统移植
下一篇:嵌入式环境中Nucleus到Linux的程序移植方案

推荐阅读最新更新时间:2024-05-02 21:59

采用TMS320C54x免提开发平台的车载信号处理与音频系统
1.免提应用概述  为什么要使用免提蜂窝电话系统呢?我们不妨来看看下面这段对话,这样就能清楚地明白现有蜂窝电话在某些情况下的使用会多么的不方便:"对不起,亲爱的,我要急转弯。""等等,我要转几个弯。"这种不方便是由现有蜂窝电话系统的手持终端造成的。司机常常要放下手机两只手驾驶,如转弯等,然后在转回谈话。电话交谈的中断很不方便,甚至还会造成经济成本损失,因为移动电信收费相当高。另一个重要问题就是安全性。不妨设想一下只用一只手操纵方向盘、打着手机的司机。既然司机不能双手操纵方向盘,那么再要什么防抱死系统和气囊就显得毫无意义了。因此,免提蜂窝电话系统正成为使用移动电话的司机的必备品。  2. HFK开发平台  HFK开发平台是
[嵌入式]
Arm Helium技术—提升机器学习能力与信号处理性能
Arm Helium技术作为一种全新的M-Profile Vector Extension矢量扩充方案,能为Armv8.1-M架构带来经过强化的计算能力 新架构能够将最小型边缘设备的机器学习能力提升15倍,以及将信号处理性能提升5倍 新架构针对下一代Cortex-M处理器而设计,适用于需在本地进行决策的小型嵌入式设备 Arm宣布针对其下一代Armv8.1-M架构推出基于M-Profile Vector Extension (MVE)矢量扩充方案的Arm Helium技术。这一全新技术能够帮助开发者简化软件开发流程,并显著提升未来Cortex-M系列处理器的机器学习能力与信号处理性能。 业界正在加速推动创建一个拥有万
[物联网]
基于VxWorks的嵌入式系统复合通信模式
摘要:在嵌入式系统与VxWorks实时操作系统应用愈加广泛的背景下,结合嵌入式系统对于各类实时通信方式的不同需要,提出基于控制应用的复合通信模式;以Radstone公司的PPCx系列单板机为例,给出实现方法,并对数据通信的产时性与安全性作了研究。片对于各类嵌入式操作系统的数据测验具有很大的参考价值。 关键词:VxWorks 嵌入式系统 实时性 数据通信 引言 随着信息技术的不断发展和更新,嵌入式操作系统以其速率高、稳定、可配置内核的优势正得到越来越广泛的应用,包括医学、图像处理、军事、工业控制、电信等许多领域。嵌入式系统必须采用特殊有效的实时操作系统,VxWorks正是一个具有高性能的实时操作系统,成为嵌入式系统操作内核的
[工业控制]
基于STM32、FreeRTOS 实现硬件看门狗+软件看门狗监测多任务的方法
我们都知道硬件看门狗的目的:是用来监测系统,防止系统死机,并在死机的情况下使系统复位重启。 在RTOS操作系统中,如果任务(线程)较多,出现高优先级任务长时间占用CPU资源,低优先级任务长时间得不到执行这种想象,那么我们的系统就是具有Bug的系统。 如上描述,假如我们的线程没有死机,只是长时间得不到执行。在这种异常情况下,我们又不希望系统复位,只希望执行特定代码,那我们该如何来避免这种问题呢? Ⅰ关于看门狗 硬件看门狗:利用一个定时器计数电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时“喂狗”。 因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,不在定时周期内喂狗,就使得看门
[单片机]
基于STM32、FreeRTOS 实现<font color='red'>硬件</font>看门狗+软件看门狗监测<font color='red'>多任务</font>的方法
基于VxWorks实时操作系统的通信模型设计
软件设计中模块化的思想已日益普遍,模块化的设计能够使程序结构清晰,便于维护,开发起来也更加高效。大型软件通常由多个功能模块构成,模块的功能实现又是由多个线程所支撑的。诸如windows,Linux类型的操作系统自身能够对线程间的通信进行较好的管理,不需要过多的关心底层。而VxWorks是一个多任务系统,任务是系统最基本的执行单元。功能模块间的通信也就是任务间的通信,VxWorks对任务间通信的管理远没有windows的完善。在模块数量多,通信业务大的情况下VxWorks提供的任务间通信机制不能很好的满足实时性与资源利用的要求。本文提出了一种任务间的通信模型,将用于网络通信的UDP方式引进到任务间的通信中,使通信更加灵活和便于管理,
[嵌入式]
基于<font color='red'>VxWorks</font>实时操作系统的通信模型设计
ccd信号处理电路
图片: =800) window.open('/article/UploadPic/2008-5/20085129028892.jpg');" border=0 src="http://www.elecfans.com/article/UploadPic/2008-5/20085129028892.jpg" onload="if(this.width>'800')this.width='800';if(this.height>'800')this.height='800';"> 红外CCD 信号处理电路的设计 摘 要:由于红外CCD 的输出为高背景、宽动态范围的信号,所以在该信号的处理电路中,去除直流高背景和自动增益对
[模拟电子]
stm32实用篇2: 裸机系统实现多任务轮转
在裸机系统中,通常都是在一个大的 while 循环中,通过判断标志位,来按照顺序执行相应的代码。为了加快响应速度,较为常见的做法是中断中修改标志位,代码中判断标志位,如下所示: int main(void) { XX_Init(); /* while 中判断标志位 */ while (1) { if (flag0 == 1) { code0; flag0 = 0; } if (flag1 == 1) { code1; flag1 = 0; } /************/ } } /* 中断服务函数中修改标志位 */ void Handler0(vo
[单片机]
IBM将开发用于射电望远镜的信号处理
  IBM日前表示,将与荷兰天文研究机构Astron合作,为未来的干涉射电望远镜生产模拟与混合信号定制处理器芯片。   Skads/Embrace射电望远镜计划分布在荷兰北部和法国,将代表3000公里望远镜项目“Square Kilometer Array(平方公里阵射电望远镜)”的比例原型。IBM将利用它的8HP 0.13微米SiGe工艺把RF电路直接集成到混合信号芯片上面。   IBM表示,上述芯片将在它的Burlington设施进行设计。Astron的代表将有助制订规格。Astron开发了Lofar低频阵列天线,并利用IBM的Blue Gene超级电脑比较和分析Lofar收集到的数据。
[嵌入式]
热门资源推荐
热门放大器推荐
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved