APP下载

基于实时操作系统的雷达接口控制软件设计

2011-09-30何海龙张绯丽

火控雷达技术 2011年4期
关键词:堆栈多任务实时性

何海龙 王 明 张绯丽

(西安电子工程研究所 西安 710100)

1 引言

接口控制计算机是雷达的重要组成部分,承担着雷达内部各子系统和雷达输入输出信号的通信、控制等任务。随着雷达系统的功能需求与复杂性的不断提高,雷达的接口也日益复杂和多样,并且对可靠性和实时性有很高的要求。雷达接口控制计算机最主要的任务就是协调主控计算机和各个子系统之间的工作。根据主控计算机的指令对雷达的方位、俯仰驱动器、敌我识别器等设备实时精确控制,接收各分系统的状态,进行解析和上报。

在传统方式中,主控计算机内插入各种接口板卡,通过控制接口板卡来实现对雷达设备的控制和管理。现代雷达中接口种类多、功能复杂、实时性要求高,这些接口全部通过主控计算机直接进行控制较为繁琐,且会降低主控计算机的效率。因而,采用主从——分布式结构,利用高性能微控制器(MCU)构建接口控制计算机来扩展主控计算机的接口是一种较理想的方式。接口控制计算机负责完成对雷达功能模块和外部设备的管理和控制,减轻了主控计算机的工作负担。通过10/100/1000M以太网完成与主控计算机之间的通信,使得主控计算机能够方便、快捷并高效地访问雷达各个模块和设备。对于主控计算机,接口控制计算机就像它本身的一个模块一样,实现了接口的透明访问。

嵌入式系统以其本身体积小,功能多,高智能等优点而逐渐地被引入到雷达控制领域。本文描述了嵌入式MCU构建的雷达接口控制计算机,着重分析、讨论了采用 μC/OS-II[1]操作系统设计雷达控制接口软件的思想和实现方法。

2 雷达接口控制计算机组成与功能

雷达接口控制计算机主要是以MCU和FPGA为核心,配置多种外围接口,实现对外围设备的控制与监视。MCU与FPGA通过扩展总线实现高速互联,相互共享信息。在系统中FPGA主要完成开关量输入信号去抖动,开关量输出信号保护,以太网媒体访问控制层(MAC)层,地址译码,ADC控制与数据采集,接收系统定时信号并产生同步输出,系统安全连锁保护等功能。MCU主要完成通信协议的封装、解析,控制方位和俯仰驱动器,采集外设状态并上报给主控计算机,实现CAN总线与以太网之间的转发路由,接收GPS、陀螺、驱动器等外设的串口数据等功能。

嵌入式处理器采用TI公司最新推出的最新32位浮点数字信号控制器TMS320F28346,其核心频率高达300MHz,集成了32位浮点处理单元,258k×16位单时钟周期访问单周期访问静态RAM(SRAM)和大量通用外设。该控制器兼顾了DSP强大的处理核心和MCU丰富的片上外设,功能强大、性能稳定可靠,片上资源丰富。

雷达接口控制计算机外围接口包括:16路单端或8路差分16位AD、4路16位DA、16路光电隔离输入(SI)、10路光电隔离输出(SO)、8路RS422电平差分IO、2通道光电隔离 CAN、五通道隔离RS422串口、1路10M/100M/1G以太网、1路定时同步输入与输出、以及电源及滤波电路组成。完成系统通信、驱动器控制、锁定控制、系统状态数据采集、数据处理、敌我识别器控制、接收GPS数据与授时、产生或接收系统定时、增量码接收等功能。系统组成图1所示。

由于本系统的实时性要求(例如:通信接口之间的数据转发时间小于200μs,形成陀螺反馈输出的滞后时间小于100μs等)与复杂性,根本不可能采用查询方式或前后台系统保证其实时性。为此采用了μC/OS-II嵌入式多任务实时操作系统。由于嵌入式实时操作系统的引入,提高了CPU、总线等资源的利用率,从而保证了系统的实时性。

3 基于μC/OS-II的软件设计

对于比较复杂的软件系统,在软件设计时需要遵循简单准则、同型准则、层次准则、线型准则、易证准则与安全准则等软件设计准则。多任务操作系统从它产生的原因到现在的广泛应用,正是由于它简化了编程模型,满足了简单、同型、层次化等准则。

在接口控制计算机中,由于系统需要同时处理多个任务,且所有任务都有严格的实时性要求,在MCU上运行μC/OS II嵌入式多任务实时操作系统是最优的软件结构之一。由于多任务实时操作系统的引入,简化了系统编程模型,降低了程序设计难度。

在多任务实时操作系统应用中,软件设计的重点与难点是任务划分和资源分配与共享。

3.1 任务划分

任务作为多任务系统中的独立执行单元,有独立的CPU时间片、堆栈与内存空间,同时系统内的任务共享总的CPU时间,任务之间需要进行通信。因此合理的任务划分是保证系统效率与实时性的关键。

在将软件系统分解成并行任务时,任务的大小粒度根据任务的特性确定,如果粒度太大会影响任务的实时性;如果粒度太小会增大系统的任务切换开销与任务管理复杂度,降低系统的效率。主要需考虑系统内功能的异步性,任务按照I/O依赖性、时间关键性的功能、计算量大的功能、功能内聚、时间内聚、周期执行的功能等任务划分准则进行划分。实时性要求高的、独占系统资源的任务采用小的粒度,否则采用大的任务粒度。

根据接口控制计算机的应用需求,把接口控制计算机软件划分为接收陀螺数据任务、以太网发送数据任务、一层CAN总线发送数据任务、敌我识别器控制任务、接收询问机数据任务、伺服控制任务、接口控制计算机故检任务、接收以太网数据包任务、接收控制处理计算机命令任务、接收主控计算机CAN总线消息任务、接收GPS数据任务及人机交互任务。接口控制任务划分如图2所示。

图2 接口控制计算机软件任务划分图

一个任务的执行与挂起必须要有相应的约束条件,这些条件称为软件的驱动模型。常见的软件驱动模型有数据驱动模型,时间驱动模型,事件驱动模型以及它们的混合模型。分析接口控制计算机软件的特点,可知接口控制计算机软件的驱动模型属于混合模型。为了让不同驱动模型的任务良好协作,降低系统内任务之间通信的时间开销,任务之间通信采用全局缓冲队列,资源的互斥使用信号量完成。实现的接口控制计算机软件活动关系如图3所示。

图3 接口控制计算机软件活动图

3.2 资源分配

在嵌入式系统中,CPU时间、堆栈空间、存储空间、共享的I/O接口等系统资源是非常有限的,因此需要对资源进行统筹分配,提高资源利用率,从而降低系统的硬件需求,减小系统的体积与功耗。尤其是MCU内部RAM存储空间和任务优先级的分配。

根据系统提供的资源的限制性条件,TMS320C28346的内部空间配置,应用程序对资源的需求,对其存储空间应用分配如表1所示。

需要特别说明的是,在TMS320C28346中,堆栈空间的位置必须位于0x10000地址以下[2],否则μC/OS-II操作系统的行为不可预知。堆栈溢出时,会导致程序跳转到未知的位置,并且很难通过应用程序对程序进行检测,因此嵌入式多任务系统的堆栈分配是必须仔细设计。堆栈空间的大小需要根据具体任务使用情况进行调整。分配的方法是先给任务分配一个较大的堆栈空间,然后运行程序,通过μC/OS-II提供的监控程序对堆栈使用情况进行统计,根据极限情况得到堆栈的大小分配堆栈空间,分配堆栈段时必须需要留一定的安全容量。

在嵌入式多任务实时操作系统中,每一个任务都对应一个优先级,优先级高的任务可以打断优先级低的任务的执行,抢占低优先级任务的CPU时间资源,优先执行优先级高的任务,从而保证系统的实时性。对任务进行合理的优先级分配是保证系统实时性的必要条件之一。任务优先级按照粒度小的任务优先级高、执行频率高的任务的优先级高、独占系统资源的任务的优先级高、有特殊实时性性能要求的任务的优先级高。根据任务划分和任务的属性,任务的优先级分配见表2。

表1 MCU存储空间应用分配表

表2 任务优先级分配表

3.3 任务设计

由于μC/OS-II操作系统的引入,根据系统需求进行任务划分,每个任务都完成一个相对简单的功能,因此方便了系统软件设计。下面就以接收陀螺数据任务为例说明任务的设计,其余任务于此相似,不再赘述。

串口中断服务程序接收到与陀螺通信串口的数据后,把数据写入循环缓冲队列,然后给出相应的信号量通知接收陀螺数据任务。接收陀螺数据任务收到串口中断服务程序给出的信号量后,检测接收缓冲区内的数据,按照通信协议对数据进行解析,得到陀螺速率,并根据主控计算机给出的余割补偿系数和驱动器给定值,计算得到驱动器的反馈电压和控制电压,最后更新反馈和控制电压到相应的DAC。接收陀螺数据任务就完成了一次接收后,等待下一次信号量的到来。接收陀螺数据任务数据流图如图4。

图4 接收陀螺数据任务数据流图

由图4可知,由于μC/OS-II操作系统的引入极大地简化了软件设计,省去了单任务系统或前后台系统中复杂的定时、数据、状态驱动的跳转逻辑。使得程序易于设计、检查、维护。

4 结束语

本文以MCU和FPGA构建的嵌入式实时系统为对象,分析了系统中软件设计的思想,讨论了系统任务划分的准则和资源分配的方法,方便地实现了对主控计算机的通信与控制接口实时扩展。基于此思想的软件设计方法已经成功应用于某型号雷达系统中,系统实测任务响应时间小于50μs,远小于系统需求的100μs。实践证明系统性能强大、实时性好、扩展性强、故障检测与保护措施完备、工作稳定可靠。

[1]Jean J·Labrosse著,邵贝贝等译.嵌入式实时操作系统μC/OS II[M].北京:北京航空航天大学出版社,2006.

[2]Texas Instruments.TMS320C28x Assembly Lan guage Tools v5.0.0 User's Guide[M].2007.

猜你喜欢

堆栈多任务实时性
基于行为监测的嵌入式操作系统堆栈溢出测试*
数字时代的注意困境:媒体多任务的视角*
结合自监督学习的多任务文本语义匹配方法
面向多任务的无人系统通信及控制系统设计与实现
基于堆栈自编码降维的武器装备体系效能预测
航空电子AFDX与AVB传输实时性抗干扰对比
一种航天器软件进程堆栈使用深度的动态检测方法
计算机控制系统实时性的提高策略
基于Reworks操作系统的信息交互软件设计
可编程控制器的实时处理器的研究