0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于VxWorks实现跟踪雷达信号处理子系统的方案设计

电子设计 来源:电子技术应用 作者:刘国满 , 戴擎宇 2020-09-30 09:46 次阅读

作者:刘国满 , 戴擎宇 , 高梅国

实现跟踪雷达系统中各子系统之间的实时通讯,重点是信号处理子系统中信号处理板和网络间的实时通讯。在实时操作系统VxWorks平台下,编写PCI设备的驱动程序和网络通讯程序,以完成通讯功能。VxWorks的高可靠性和强实时性在应用中得到了充分的验证,在VxWorks平台的支持下,信号处理子系统完成了信号处理和网络之间的实时通讯。

跟踪雷达在跟踪高速目标时,需要有足够快的反应速度,这不仅对它自身的硬件系统的实时性要求较高,而且对相应软件系统的实时性要求也较高。用实时操作系统VxWorks作为跟踪雷达系统中的操作系统,可以满足软件对实时性需求。

本系统中,跟踪雷达各分机设备在相应处理计算机、控制计算机控制下协调工作,完成对目标的跟踪和测量雷达的引导,各分控计算机之间通过以太网接口相互通讯。跟踪雷达软件按功能分为主控、显示、信号处理、伺服控制、高频控制、光电控制六个子系统,分别对应不同的计算机。其中主控、信号处理、伺服控制、高频控制、光电控制子系统上都使用VxWorks操作系统,如图1所示。

1 VxWorks简介

目前市场上比较著名的实时操作系统有:

基于VxWorks实现跟踪雷达信号处理子系统的方案设计

VxWorks、pSoS、Nucleus、VRTX、Windows CE、Palm OS、QNX、PowerTV、JavaOS、LynxOS等。其中,VxWorks是美国WRS(Wind River System)公司推出的一个具有微内核、可裁剪的高性能强实时操作系统,在实时操作系统市场上处于领导地位。它在航空、广播、运输、医疗、自动化生产和科学研究等领域中有着广泛的应用,尤其是在国防和军事上一些高精尖技术及实时性要求极高的领域中,体现出了其优越的性能。在1997年4月发射的火星探测器上也使用到了VxWorks。

(1)VxWorks的主要特点

VxWorks具有高度可剪裁的微内核结构,它需要的存储器空间大约为8KB~488KB(ROM)、620B~29.3KB(RAM)。可见VxWorks有着极好的可伸缩性,用户可以利用工具或直接修改内核源文件来配置内核。VxWorks能进行高效的多任务调度,它支持中断驱动的优先级抢占式调度和时间片轮转调度,并具有确定的、快速的上下文切换能力,确定的、微秒级的中断延迟时间。这些使得内核具有非常强的实时性。

(2)VxWorks应用程序开发

除了性能出众的操作系统外,WRS公司还提供了优秀的实时操作系统开发工具Tornado。Tornado包含三个高度集成的组件:Tornado工具,一套强大的交叉开发工具;VxWorks实时操作系统;一整套主机-目标间的通讯选项,例如以太网、串行线路、在电路仿真ICE)和ROM仿真等。

图2是Tornado开发系统组成框图,左边的框代表Tornado集成开发环境,它运行在开发主机上,可以基于WIN9x、WINNT、DIGITAL UNIX等主机操作系统。本文介绍的内容都是基于WIN9x系统的。右边的框代表目标机,目标机支持的CPU类型有MC680x0、PowerPc、SPARC、SPARClite、i960、x86、R3000、R4000、R4650等。目标机上运行VxWorks实时操作系统,其上层运行用户应用程序。

Tornado集成了用于VxWorks应用程序开发和调试的各种工具。开发者在主机系统里,利用这个集成环境组织、编写、编译和调试应用程序,然后下载到目标机上运行、调试。编译在主机上完成,测试、调试需要主机目标机协调完成,流程如图3所示。

2 VxWorks在信号处理子系统中的应用

信号处理子系统采用摩托罗位的COMPACT PCI计算机,它的CPU为PII233MMX。该信号处理子系统的主要任务是通过网络接收来自主控子系统的数据和命令,传送给信号处理板;并且还要读取信号处理板的处理结果,将其通过网络传送给主控子系统和显示子系统。信号处理子系统软件可分为两部分:一是驱动程序,负责对信号处理板的初始化、配置和访问,另外用中断方式来响应信号处理板;二是网络通讯程序,负责与主控机握手、接收数据报文和发送数据报文。它的组成如图4所示,当信号处理板产生数据后,发出一次中断,中断服务程序触发发送进程读取信号处理板上的数据,然后发送给网络。网络通讯程序主要由五个并发的进程组成:poopClient、BDPReceive、intProc20ms、intProcGate和messageHandle。PoopClient进行负责和主控子系统握手,获取主控机在线信息,以及传送本子系统在线信息。BDPReceive进程接收网络数据,然后送给messageHandle进程,经处理后再送到信号处理板上。IntProc20ms和intProcGate进程从信号处理板中读出数据,然后发送到网络中去。

STATUS appMain (void)

{

……

/* Connect the ISR */

if (pciIntConnect (INUM_TO_IVEC (INT_NUM_IRQ0+dsp_intLine),(VOIDFUNCPTR)dspISR,0)= =ERROR)

……

/* Create some tasks */

if(taskSpawn(“poop”,100,0,2048,(FUNCPTR)poopClient,0,0,0,0,0,0,0,0,0,0) = = ERROR)

……

if (taskSpawn(“BDPRecv”,80,0,2048,(FUNCPTR)BDPReceive,0,0,0,0,0,0,0,0,0,0) = = ERROR)

……

if(taskSpawn(“intProc20ms”,70,0,2048,(FUNCPTR)intProc20ms,0,0,0,0,0,0,0,0,0,0) = = ERROR)

……

if(taskSpawn(“intProcGate”,60,0,2048,(FUNCPTR)intProcGate,0,0,0,0,0,0,0,0,0,0) = = ERROR)

……

messageHandle ();

return (OK);

}

信号处理板通过PCI总线和CPU板相连。在系统上电后,VxWorks对信号处理板进行一系列必要的初始化。首先在硬件初始化函数sysHwInit()里,调用pciConfigLibInit()来选择PCI设备的配置机制Mechanism #1或Mechanism #2,接着调用pciConfigLibInit()对PCI设备中断进行初始化,建立中断链表。这两个步骤对PCI做了最基本的配置,随后的一些PCI配置都以它们为基础。随着系统初始化的继续,在另一个硬件初始化函数sysHwInit2()里,调用了sysPciAutoConfig(),这个函数对PCI设备做了进一步的初始化。首先,它逐个查找PCI设备,先查找0号总线上的所有设备,一旦查到PCI-PCI桥设所有设备为止。查找过程中,这个函数对一些在总线上慢显现的设备作了一些特殊的等待处理。这会减慢系统启动的速度,若需要,用户可以通过修改内核源程序来避免等待。当确定了所有的设备后,函数再次查找一遍设备。这次,它创建一个PCI设备列表,把所有的设备都存到列表中。然后,函数根据这个列表,对每个设备做一些配置。它根据设备硬件上的设备映射设备存储空间和I/O空间,分配中断向量等,图4的PCI映射存储器空间就是这样映射的。然后,系统还对一些特殊的PCI设备做相应的配置。到此为止,系统对PCI设备的初始化工作就结束了。用户了解这些配置后,就可以在应用程序里对自己的PCI设备进行访问了。

操作系统启动后,开始执行usrAppInit()。这个函数的内容由用户自己编写,它完成用户所需的功能。在本系统中,因为程序不知道哪个槽上有哪种信号处理板,所以程序首先按槽号逐个查找一遍,以确定哪个槽有信号处理板;然后读出设备的PCI映射存储空间地址,以便对信号处理板进行读写,同时读出中断线的内容,进而通过pciIntConnect()来挂中断。pciIntConnect()函数考虑了PCI设备对中断资源的共享,这样不会破坏共享同一个中断信号的其它中断。中断处理使用了信号量机制,处理模式如图5下半部所示。当有中断产生时,中断服务子程序立即响应,它给相应的处理进程发送信号,处理进程即开始工作;在没接收到信号时,处理进程处于等待状态。

STATUS dspISR ()

{

……

switch (intType)

{

case INT_20MS;/* INT_20MS=1 */

……

semGive (sem20ms);

break;

case INT_ACQGATE: /* INT_ACQGATE=2 */

……

semGIve (semAcqGate);

break;

default:

……

break;

}

……

}

void intProc20ms()

{

……

FOREVER

{

semTake (sem20ms,WAIT_FOREVER);

……

}

……

}

void intProcGate ()

{

……

FOREVER

{

semTake (semAcqGate,WAIT_FOREVER);

……

}

……

}

网络通讯程序使用SOCKET机制,因为通讯只涉及到一个小局域网,所以传输层采取UDP协议。程序中创建了一组消息队理,接收进程不停地接收SOCKET传来的数据和命令,然后判断它们的类型,再分别存放到不同消息队列中,等待处理进程的处理,如图5上半部所示。处理进程的一个主要功能是将接收到的数据和命令按照规定的格式组合成命令字,传给信号处理板。另外,信号处理板处理完一批数据后,若向网上传送数据,则需要先发出中断,中断服务程序通知处理进程,把数据通过网络传给其它子系统。

这样,信号处理板和网络之间就能够顺利地通讯了。主控计算机可以通过网络实时地向信号处理板发送各种命令和数据,同时信号处理板也可将数据通过网络实时地传送给其它子程序。

信号处理子系统的程序开发是基于BSP的cpv5000,它为PCI设备提供非常好的支持,使得开发者对PCI设备访问变得非常轻松,VxWorks的网络功能也很健全,网络通讯易于实现。另外,VxWorks的多任务性及丰富的进程通讯机制为实现复杂的功能提供了必要的手段。本文中提到的所有功能都已在具体的项目中实现,VxWorks稳定可靠,实时性完全满足项目的需要。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7352

    浏览量

    87625
  • 操作系统
    +关注

    关注

    37

    文章

    6676

    浏览量

    123129
  • 雷达
    +关注

    关注

    50

    文章

    2868

    浏览量

    117141
收藏 人收藏

    评论

    相关推荐

    VxWorks多DSP系统多任务程序设计方案

    相结合,来实时地完成某一特定任务。随着信号采集速度和处理速度的要求越来越高,许多领域都需要进行多处理器运算,其中包括医学、图像处理、军事、工业控制、电信等许多领域。多
    发表于 06-27 06:48

    基于CPLD的雷达仿真信号实现方案

    成本,而且还给系统软件设计增加不必要的负担。为此,提出了一种基于CPLD的雷达仿真信号实现方案,它能为机载
    发表于 12-08 06:09

    求一种基于CPLD的雷达仿真信号实现方案

    本文提出了一种基于CPLD的雷达仿真信号实现方案,它能为机载雷达测试系统提供所需的多种典型的重
    发表于 05-06 06:19

    如何实现光伏发电光照自动跟踪系统总体方案设计

    如何实现光伏发电光照自动跟踪系统总体方案设计
    发表于 10-25 06:10

    基于VxWorks雷达中央控制系统的设计与实现

    基于VxWorks雷达中央控制系统的设计与实现
    发表于 03-29 12:30 25次下载

    基于VxWorks的多DSP并行处理系统实现

    基于VxWorks的多DSP并行处理系统实现
    发表于 03-29 12:31 17次下载

    基于VxWorks目标跟踪系统的接口板设计

    根据坦克目标自动跟踪系统的总体技术要求,在基于VxWorks 嵌入式系统下,设计了坦克目标自动跟踪系统
    发表于 08-07 09:15 17次下载

    基于VxWorks的多DSP并行处理系统实现

    多DSP信号处理板广泛地运用于工业、军事、通信和医疗等许多方面。介绍了一种基于实时操作系统VxWorks,采用雷达距离向脉冲压缩算法对数据
    发表于 12-05 16:46 5次下载

    VxWorks系统雷达信号处理中的应用

    雷达系统的 数字信号处理 中,其主要特点是数据流量大、运算量大和处理的实时性,单片高性能的DSP芯片也不能满足
    发表于 08-26 14:38 42次下载
    <b class='flag-5'>VxWorks</b><b class='flag-5'>系统</b>在<b class='flag-5'>雷达</b><b class='flag-5'>信号</b><b class='flag-5'>处理</b>中的应用

    地基雷达信号处理子系统的建模与仿真

    本文主要对地基雷达信号处理子系统进行了的建模与仿真。首先详细分析了其信号处理方法,包括窄带
    发表于 09-07 18:49 34次下载
    地基<b class='flag-5'>雷达</b><b class='flag-5'>信号</b><b class='flag-5'>处理</b><b class='flag-5'>子系统</b>的建模与仿真

    雷达通用信号处理系统实现与应用

    文中提出一种通用信号处理系统,该系统不仅将两种处理器的优点集于一身,并且具有很强的通用性,可以应用于不同的雷达
    发表于 12-15 17:17 64次下载
    <b class='flag-5'>雷达</b>通用<b class='flag-5'>信号</b><b class='flag-5'>处理系统</b>的<b class='flag-5'>实现</b>与应用

    地面脉冲多普勒雷达信号处理系统方案

    地面脉冲多普勒雷达信号处理系统方案,下来看看
    发表于 12-26 17:19 8次下载

    实时操作系统VxWorks跟踪雷达系统中的应用设计分析

    软件对实时性的需求。 本系统中,跟踪雷达各分机设备在相应处理计算机、控制计算机控制下协调工作,完成对目标的跟踪和测量
    发表于 10-30 10:40 0次下载
    实时操作<b class='flag-5'>系统</b><b class='flag-5'>VxWorks</b>在<b class='flag-5'>跟踪</b><b class='flag-5'>雷达</b><b class='flag-5'>系统</b>中的应用设计分析

    各种雷达子系统的解决方案这里都有!

    安华高科技解决方案可以支持多种雷达子系统
    的头像 发表于 06-22 09:32 3967次阅读
    各种<b class='flag-5'>雷达</b><b class='flag-5'>子系统</b>的解决<b class='flag-5'>方案</b>这里都有!

    使用跟踪子系统时发生处理器死锁怎么办?

    停滞条件全部清除为止。 某些跟踪子系统可能需要在处理器上执行相应指令才能清除 AMBA ATB 停滞条件。此类跟踪子系统的示例包括通过 S
    的头像 发表于 05-10 14:04 1517次阅读