嵌入式操作系统在高速实时信号处理系统中的应用

发布者:JoyfulLife最新更新时间:2011-10-11 关键字:嵌入式操作系统  高速实时信号处理系统 手机看文章 扫描二维码
随时随地手机看文章
    嵌入式实时操作系统和多片DSP在高速实时信号处理系统中的软硬件设计及实现。该方案采用VxWorks操作系统和Power PC处理器,通过串口、以太网和VME总线进行数据传输,并实现控制和显示功能。
  

    现今的信号处理设备越来越复杂,不仅要求高速的处理能力,而且要求功能多样化,仅仅追求速度已经不能满足需求。尤其在复杂多变的环境中,要求信号处理机能够完成多种处理功能,并能方便灵活地切换工作模式。因此有必要发展一种可重构和可扩展的通用信号处理系统,能将信号处理机多功能化、模块化、标准化和通用化。将嵌入式操作系统与高速实时信号处理机结合,可以很好地实现这些要求。在雷达火控系统中,信号处理不仅需要很高的处理速度,而且要满足控制显示多方面的需求,如果没有操作系统,实现起来不仅复杂而且不便于系统的模块化和标准化。因此,采用实时操作系统VxWorks实现雷达系统的控制和显示功能。VxWorks是一种类UNIX的高性能嵌入式实时操作系统,其中断响应速度是微秒级的。它是专门为实时嵌入式系统开发的操作系统,提供了高效的实时任务调度、中断管理、实时系统资源及实时任务通信。VxWorks可以为各种CPU硬件平台提供统一的接口和一致的运行特征,这便于以后的系统移植和升级。基于以上优点,VxWorks广泛应用于航空、航天、医疗、通信、雷达和声纳等领域。

    1 系统硬件设计与实现
  

    本系统硬件基于6U的VME总线设计,由多个子模块组成,包括A/D采样板、信号处理板、定时接口板、嵌入式计算机VG4。
  

    A/D采样板作为前端采集雷达的回波信号。它采用AD10242,采样率为32MHz,包含2个A/D变换器,可以对两路模拟信号作模数变换,输出2个12位的数据。由于采样的数据率远低于DSP的处理能力,所以通过大容量的FIFO对A/D采样的数据缓存,再以DMA的方式发送给DSP处理。为了满足要求,信号处理系统以流水的方式处理数据。通过链路口和总线使多片DSP进行数据传输,最后,由VG4显示目标检测结果。
  

    VG4是SBS公司的一款专门针对工业控制设计的嵌入式计算机。VG4的处理器采用Motorola PowerPC 755,主频400MHz,拥有64MB SDRAM,16MB Flash用来固化操作系统和应用程序,而且提供了丰富的接口。VxWorks操作系统及其应用程序在VG4上运行。由于目标机VG4的资源有限,程序的开发由主机的交叉开发平台Tornado完成,通过串口和以太网下载目标代码并调试。程序开发完成后可以固化在目标机VG4的Flash上,这样系统每次启动就从Flash加载程序。操作系统应用程序的开发主要采用C语言。系统的数据流如图1所示。
                  

    1.1 定时接口板的设计
  

    定时接口板对于整个系统实时稳定的工作起了关键作用。它产生的定时脉冲信号控制着发射接收机、A/D采样板、信号处理板和VG4。
  

    定时接口板通过VME总线与VG4进行数据传输。VME总线是一种高性能的背板总线,由于采用高电流总线信号、严密的逻辑仲裁,所以具有极强的总线驱动能力及较长的信号线传输路径,可支持21个VME板卡的直接相连,信号可靠性非常高。VME总线由于其信号的高稳定性、并行性和高可靠性,被广泛应用于多DSP系统中。
  

    接口板上的FPGA实现VME桥接功能,使双口RAM连到VME总线和TS101的总线上,以进行数据传输。通过软件操作VG4控制定时接口板启动波驻起始脉冲串T0,在每个波驻起始脉冲产生的同时产生定时中断脉冲,作为每帧定时信号组的时间基准。中断信号通过VME总线中断VG4,并作为其中断请求信号。VG4响应定时中断脉冲,向定时接口板传送控制参数。定时接口板据此参数控制信处、AD、收发设备,并接收信处回传的检测结果,传给VG4进行处理和显示。数据是由外部中断驱动的,所以能满足实时性要求。定时接口板结构如图2所示。                   

 

    1.2 信号处理板的设计
  

    雷达信号处理的实时性和连续性要求处理系统应具有较高的数据处理能力。本系统设计时采用多片DSP构成并行处理系统,以提高系统的数据处理能力。信号处理系统核心单元是美国Analog Devices Inc公司生产的ADSP-TS101,其峰值运算能力可达18亿次/秒。它采用了改进的静态超标量流水结构,可以构成各种不同的并行多处理器系统,较好地满足了雷达信号处理的要求。
  

    为了保证系统的数据吞吐能力,采用数据入口与出口分开的方法,系统中各DSP分别接收处理位于不同时间段的雷达回波信号。为了使各DSP协调工作,DSP间的通信必不可少。本系统采用共享总线的分布式结构,使得各DSP之间的通信有多种途径。为了信号处理板的通用性和灵活性,设计由四片DSP组成的共享总线结构子板,各DSP间用链路口点对点环形相连,将各信号线通过PMC插槽引出,与母板通信。信号处理板结构如图3所示。

                 

    2 嵌入式实时操作系统VxWorks
  

    VxWorks是实时多任务操作系统,它能在确定的时间内执行其功能,并对外部异步事件作出响应。多任务环境允许一个实时应用划分为多个独立任务运行,各任务有各自的线程和系统资源。VxWorks实时操作系统由多个相对独立的目标模块组成,用户可根据需要选择适当模块来裁剪及配置系统,从而有效地保证系统的安全性和可靠性。这样,通过目标模块之间的按需组合,可得到许多满足功能需求的应用。
  

    下面介绍VxWorks的技术特征。
    (1)任务
  

    在VxWorks中,最小的程序运行单位称为任务(Task)。建立任务时,要对其分配一段固定的代码和数据空间。操作系统内核通过任务控制块对它的执行、通信、资源等情况进行控制。任务具有就绪、阻塞、挂起和延迟等状态。与大多数嵌入式系统一样,在VxWorks中,所有任务存在于统一的线性空间中共享物理内存,每个任务没有自己独立的代码段和堆,只有独立的动态栈,任务中的地址即是真正的物理地址。由于不需要进行地址空间映射,所以任务切换时的上下文切换(Context Switch)时间大为减少,从而符合实时操作系统快速响应的原则。VxWorks的代码段与堆共享减少了上下文切换时间,却带来了共享代码的可重入性问题。如一个函数被两个任务调用,当其中包含对全局、静态变量等从堆中分配空间的数据进行访问时,就有可能产生冲突,从而引发错误。这个问题在应用软件开发时要加以注意,其解决方法是使用局部变量(从栈中分配空间)或使用互斥信号量对临界代码进行保护。
  

    (2)任务调度
  

    VxWorks有优先级抢占调度和时间片轮转调度两种任务调度策略。系统共有256 个优先级。优先级抢占调度指一个优先级较低的任务正在执行中,另一个优先级高的任务进入就绪状态,则马上抢占处理器资源,执行高优先级任务,直到高优先级任务释放处理器(完成、挂起、阻塞等)才继续执行被中断的低优先级任务。优先级抢占调度可以保证实时系统的迅速响应特性,但也存在问题。当系统中存在几个相同优先级的任务时,就会使单一任务独占处理器直至完成。如果这个任务占用太多时间,则会影响其他同优先级任务的运行。当加入时间片轮转调度时,系统给相同优先级的任务分配相同的一段时间片,以轮转方式占用CPU。加入了基于优先级的时间片轮转调度方式,使不同优先级的任务间以抢占方式调度,相同优先级的任务以时间片进行轮转。
  

    (3)存储管理
  

    在基本的内核中,任务直接操作线性物理内存,不存在虚拟存储等复杂的存储管理策略,这主要是针对实时性考虑的。对于存在MMU的处理器中,VxWorks也提供支持标准的虚拟存储区和共享内存(多处理器间共享)组件。这样任务是操作虚拟存储,代码更加安全。
  

     (4)          

    任务间存在多种通信形式,内核支持各种UNIX的通用手段:信号量(Semaphore)、消息队列(Message Queue)、管道(Pipe)、信号(Signal)、套接字(Socket)。信号量主要用于对临界资源进行互斥保护及任务间或中断与任务间的同步;消息队列多用于消息驱动机制;管道是基于文件系统实现的任务间按先进先出方式传送数据的通信方式;信号相当于软中断,用于显示错误信息;套接字机制主要用于网络通信。当任务间需要大量交换数据时,由于VxWorks直接操作物理内存,可以直接访问全局存储区,不需要特别的手段。这与Linux下的共享存储段申请和Windows中的存储映射文件方式不同。
  

    (5)中断
  

    在VxWorks中,所有中断服务程序都不属于任何一个任务,并且使用同一个栈进行数据存储,中断将不会引起上下文切换,以实现高效的中断响应。中断与各任务之间可以通过前面所述的各种手段通信,但是对中断服务程序有一些限制。因为中断不存在上下文切换,所以不能调用可能导致阻塞的资源。例如动态分配内存(malloc)、获取信号量(semTake)和打印程序(printf)等。中断资源宝贵,所以中断服务程序应尽量短小,把运算量大和耗时的工作放在服务程序外处理。
  

       (6)文件系统
  

       VxWorks支持网络文件系统NFS及多种本地文件系统,如MS_DosFS、RawFS和RT-11FS,用户可根据具体配置选择。
  

       (7)网络支持
  

        Vxworks支持多种物理介质的TCP/IP协议族和几乎所有常用的基于TCP/IP协议的应用层协议,如ARP、BOOTP、SLIP和FTP,甚至其启动就是通过BOOTP或FTP方式取得系统映象文件。
  

    以上简单介绍了VxWorks的一些技术特征,充分反映了实时性与嵌入式的密切相关性。

    3 系统软件设计与实现
  

    VG4软件开发主要分为操作系统的配置生成和应用程序的开发两部分。操作系统的生成主要是对BSP的配置和对VxWorks组件进行裁剪。在应用程序的开发中,为了满足实时性要求,应对任务进行合理划分,使程序达到多任务并行操作。
  

    任务划分需要遵循以下原则:
  

    (1)功能内聚性。对于功能联系比较紧密的各工作可以用一个任务来运行。如果用多个任务进行相互之间的消息通信,将会影响系统效率。
    (2)时间紧迫性。对于实时性要求比较高的任务,以高优先级运行,以保证事件的实时响应。
    (3)周期执行原则。对于一个需要周期性执行的工作,应作为一个独立的模块完成。

    3.1 操作系统的配置
  

    在嵌入式操作系统上进行开发要满足实时性和资源有限性的要求,因此与通用操作系统存在差异。在生成操作系统时剪裁不需要的组件,添加需要的组件,使系统尽量精简。操作系统及其应用程序主要运行在内存中,操作系统太大会占用很多的内存空间。应用程序运行时要对每个任务分配合适的内存。为了满足实时性,内存分配要尽可能快,因此不采用通用操作系统中复杂而完善的内存分配策略,而采用简单、快速的内存分配方案。如果系统对于实时性和可靠性的要求极高,不能容忍一点延时或者一次分配失败,最好采用静态分配方案,也就是在程序编译时所需要的内存都已经分配好了。例如,火星探测器上的嵌入式系统就必须采用静态分配方案。
  

    雷达系统对实时性要求很高,所以本系统尽量采用静态分配方案。但是VG4内存有限,在一些子任务中也采用动态分配方案。这里VxWorks采用First Fit的内存动态分配方式,当系统需要动态分配内存时,可以保证在很短的时间内分配。但是采用这种方式容易产生大量的内存碎片,而VxWorks没有清除碎片的功能,因此对系统动态分配内存要非常小心。
  

    根据本系统的实际情况,接口板传给VG4的信处检测结果数据量基本不变,对于这批数据可以以另一种方式存储。通过修改BSP的配置,从RAM中分配一块用户保留的存储区域。这块存储区是用户专用的,不会被系统覆盖。用户可以通过绝对地址对其进行读写。具体方法是设置RAM布局中User reserved区域,系统默认为0,设置这块RAM使之满足原始数据的大小。

    3.2 应用程序的设计
  

    应用程序运行在VxWorks操作系统上,其功能包括对系统初始化、根据输入命令对各模块进行控制及实时显示信号处理结果。存在着如下几类数据通信:VG4向定时接口板传送控制参数,读取定时接口板中存储的信处检测结果数据,响应外部中断,显示目标信息以及获得外部输入的控制信息。考虑到C语言的平台无关性和代码简介高效性,应用程序采用C语言编写。
  

    系统划分为6个任务:(1)系统监控:启动和监控其他任务。(2)数据传输:响应VME中断,与定时接口板进行数据通信。(3)数据处理:对信处检测结果数据进行处理,扣除虚假目标并转换格式以方便显示。(4)终端显示:显示检测目标结果和系统状态信息到屏幕。(5)指令控制:响应控制开关的命令和获取惯导数据。(6)错误处理:对出现错误的任务做出响应的处理,并在终端显示。
  

    中断服务程序响应定时VME7号中断,程序如下:
  if(intConnect( (VOIDFUNCPTR*)0xf0,intHdlr,0)==ERROR)
  { puts(″intInit:Error in connecting to the ISR″);
  return(ERROR);}
  if(sysIntEnable(7)==ERROR)/*响应7号VME中断*/
  { puts(″intInit:Error in Enable ISR 7″);
   return(ERROR);}
    图4显示了各任务的优先级。从中可以看到中断服务程序的优先级最高,因为实时系统要及时响应外部中断信号。


    指令控制任务首先获取外部开关命令和惯导数据,以消息的形式发送给数据传输任务。当中断来临时,中断服务程序马上释放同步信号量syncSemId。数据传输任务一直等待这个信号量,当获取到这个信号量时,立即把从指令控制任务收到的消息转换成模式字写到接口板的双口RAM中,接着读取信处检测结果数据。数据处理子任务获取同步信号量syncSemId2后对收到的信处检测结果数据进行处理,这一任务最耗时。终端显示任务以消息的形式接收上一任务的处理结果,并显示处理结果及系统目前的运行状态信息。信号量广泛应用于同步和对临界资源的保护,信号量的建立如下:
  

    if((syncSemId=semBCreate(SEM_Q_FIFO,SEM_EMPTY))==NULL) /*建立同步信号量*/
  { puts(″nintInit:semBCreate failed″);
  return(ERROR);}
  if((inputGuardSemId=semMCreate(SEM_Q_PRIORITY|SEM_
  INVERSION_SAFE|SEM_DELETE_SAFE))==NULL)
  /*建立互斥信号量*/
  { puts(″nintInit:semMCreate failed″);
  return(ERROR);}
  

    系统监控任务包括初始化各任务及实时监控各任务运行是否正常。当检测到某任务运行不正常时,启动错误处理任务。错误处理任务根据情况给予相应处理,并在终端显示。当系统发生严重错误时,系统会自动重启。
  

    本文设计的信号处理机主要应用于直升机火控系统,现已经过验收,各项指标符合要求。随着设计的改进,系统功能将进一步完善,结构会更加通用模块化,从而实现不改变整个硬件系统平台,只对程序进行相应的修改,便可应用于其他领域的信号处理系统中。

       参考文献

      1 赵树杰,史林.数字信号处理.西安:西安电子科技大学出版社,1997 
       2 WindRiver.VxWorks Programmer′s Guide 5.5.2002 
       3 WindRiver.VxWorks API Reference.2002 
       4 WindRiver.Tornado User′s Guide(Windows Version).2002 
       5 苏 涛,蔡建隆,何学辉.DSP接口电路设计与编程.西安:西安电子科技大学出版社,2003

关键字:嵌入式操作系统  高速实时信号处理系统 引用地址:嵌入式操作系统在高速实时信号处理系统中的应用

上一篇:基于ARM9的嵌入式LINUX地震数据采集系统设计
下一篇:基于FAT16文件系统的嵌入式温度记录器

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

基于嵌入式操作系统的控制系统平台设计
  1 引言   近年来,嵌入式系统在工业控制领域的应用越来越广泛。随着嵌入式控制系统的发展,嵌入式控制系统将在一定程度上取代现有的工业PC控制系统,在微型TDCS(集散控制系统)、现场总线系统、PLC控制系统、智能化仪表等领域得到广泛的应用。由于其相对于大型的TDCS系统来说具有较强的成本优势和灵活性,其应用领域正在进一步扩大。本文建立了一套完整的嵌入式控制系统软件平台,该平台建构于嵌入式硬件系统之上,包括嵌入式实时操作系统、软PLC系统、嵌入式组态软件等。   平台包括运行环境和开发环境两部分。使用开发环境,用户可以方便组态和二次开发,而将开发重点集中到具体的控制系统应用上,而诸如系统的软件架构设计、实时性保证、通用的
[嵌入式]
Vxworks嵌入式操作系统下网络设备驱动程序设计
作者Email: cai_yang@etang.com 摘 要:本文主要介绍在Vxworks操作系统下网络设备驱动程序设计、调试方法以及将其加入系统内核的配置方法。 关键词:Vxworks 嵌入式操作系统 网络设备 引 言   VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。    1 嵌入式
[嵌入式]
嵌入式操作系统中USB双向通信的实现
USB作为一种串行通信总线,在嵌入式系统与PC机通信中有着广泛的应用。由于USB 总线是主从式结构,通常采用主从式通信方式。这种方式的缺点在于从设备只能被动响应来自主设备的请求,不能主动发起请求,因而在交互性上受到了限制。但随着嵌入式系统技术的发展,对交互性操作要求越来越迫切,而采用USB双向通信可以很好地解决上述问题。本文介绍一种基于S1C33L11芯片利用嵌入式操作系统的同步机制通过对循环队列及自定义控制包的操作来实现双向通信的方法。 1 嵌入式操作系统中USB双向通信系统整体层次结构 嵌入式操作系统中USB双向通信系统整体层次结构如图1所示。 2 硬件系统 2.1 S1C33L11及其USB BLOCK简介 S1C3
[嵌入式]
基于Linux嵌入式操作系统掌上娱乐系统设计方案
近年来,随着微处理器技术、DSP技术、多媒体编解码技术以及嵌入式技术的发展,多媒体娱乐终端已经成为消费性电子产品的热点。同时,逐渐成熟的市场随着MP3在市场上取得的巨大成功,以及MP4、数字电视、3G通讯等相关技术的起步,在未来几年内都将会得到快速发展。 嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 多媒体终端正是数字信息产业的一个重要组成部分,所以在这个背景下,MultimediaTerminal蕴含着极大地发展潜力。 本文是基于Linux嵌入式操作系统在UP-TECHS3C2410DVK1。1开发平台下设计并实现了一个高
[单片机]
基于Linux<font color='red'>嵌入式操作系统</font>掌上娱乐系统设计方案
嵌入式操作系统的通用硬件抽象层设计
引言   为了便于操作系统在不同硬件结构上进行移植,美国微软公司首先提出了将操作系统底层与硬件相关的部分单独设计成硬件抽象层HAL(Hardware Abstraction Layer)的思想。硬件抽象层的引入大大推动了嵌入式操作系统的通用程度,为嵌入式操作系统的广泛应用提供了可能。然而,目前BSP形式的硬件抽象层仅仅能够解决有限的几种操作系统在同样有限的BSP所支持的硬件平台上的移植,而对绝大多数需要根据不同嵌入式应用而专门定制的嵌入式操作系统来说能起的作用则非常有限。 1 硬件抽象层原理 1.1 硬件抽象层概念   嵌入式系统是一类特殊的计算机系统。它自底向上包括3个主要部分:硬件环境、嵌入式操作系统和嵌入式应用程序。
[嵌入式]
概述十一种基于ARM的嵌入式操作系统
  嵌入式操作系统(Embedded OperaTIon System,EOS)是指用于嵌入式系统的操作系统。嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。嵌入式操作系统是负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能,是一种用途广泛的系统软件。   嵌入式LINUX   嵌入式Linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。Linux做嵌入式的优势,首先,Linux是开放源代码;其次,Linux的内核小、效率高,可以定制,其系统内核最小只有约134KB;第三,Linu
[单片机]
嵌入式操作系统μC/OS-Ⅱ面向数控系统的改进
嵌入式操作系统μC/OS-Ⅱ是一个可裁剪、源码开放、结构小巧、抢先式的实时多任务内核,主要面向中小型嵌入式系统,具有执行效率高,占用空间小,可移植性强,实时性能优良和可扩展性强等特点。数控系统是一个典型的强实时性系统,具有可确定性。可确定性主要是确保条件出现到由此引起的动作开始(或者结束)的时间在一个准确的时段内。在数控系统中,条件是由操作员的指令(如:紧急停止、移动x轴等)或是机床的状态(如刀具破损等)引起的。本文分析了数控系统任务的特点,结合μC/OS-Ⅱ的内核体系,对μC/OS-Ⅱ的任务分类、任务调度和中断服务策略做了改进,使其更加适合于数控系统的应用。 1 μC/OS-Ⅱ对任务的分类 μC/OS-Ⅱ中每个任务有5种状态:
[嵌入式]
嵌入式操作系统的通用硬件抽象层设计
引言   为了便于操作系统在不同硬件结构上进行移植,美国微软公司首先提出了将操作系统底层与硬件相关的部分单独设计成硬件抽象层HAL(Hardware Abstraction Layer)的思想。硬件抽象层的引入大大推动了嵌入式操作系统的通用程度,为嵌入式操作系统的广泛应用提供了可能。然而,目前BSP形式的硬件抽象层仅仅能够解决有限的几种操作系统在同样有限的BSP所支持的硬件平台上的移植,而对绝大多数需要根据不同嵌入式应用而专门定制的嵌入式操作系统来说能起的作用则非常有限。 1 硬件抽象层原理 1.1 硬件抽象层概念   嵌入式系统是一类特殊的计算机系统。它自底向上包括3个主要部分:硬件环境、嵌入式操作系统和嵌入式应用程序。
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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