基于NucleusPLUS的嵌入式系统的软件设计 (1)

2008-04-15 09:55:14   作者:未知   来源:电子产品世界   

关键字:系统调用 离子迁移谱 多任务机制 采样数据 DARTS 分时操作系统 ANSIC NucleusPLUS 嵌入式系统 嵌入式实时操作系统

  引言

  现今社会,毒品走私比较猖獗,对人民的生命财产、社会稳定构成了一定的威胁,同时大气监测以及对有毒气体的监控也是刻不容缓的。所开发的离子迁移谱仪,是一种利用IMS(离子迁移谱技术)的专用探测仪,它在确定的温度、气压、电场条件下,通过精确测定离子在电场作用下穿过固定距离的迁移时间,来认定被测可疑物质中是否具有某些化学成分的分子,并对某些特殊的化学物质能够发出报警信息,从而可用来检测毒品及有毒气体。

  该系统的工作原理如下:通过细节匹配,对离化后物质的等离子图的波峰位置(即物质的迁移时间)的提取来鉴定物质的具体成分。系统的原理框图如图1所示。

  

  图1 系统原理框图

  离子迁移谱仪需要读取实时数据,并作分析、处理,要求每25ms处理1000个离子信号数据,具有一定的实时性。同时,它还需对离子管内的温度、气压、电压等参数进行读取、控制。设备分析时,要求能迅速地判断出物质的成分(不超过20秒),而此过程中,涉及到大量的实时数据处理。可见离子迁移谱仪嵌入式系统对容量和速度要求较高,不仅要实时数据处理,还要对多个参数进行控制。为了保证系统的可靠性,提高开发效率,在离子迁移谱仪中必须引入嵌入式实时操作系统

  嵌入式RTOS选择

  可用于嵌入式系统软件开发的操作系统很多,但关键是要选择一个适合的嵌入式实时操作系统。在离子迁移谱仪实时系统的设计中,我们对嵌入式RTOS的要求如下:

  (1)实时性

  使用时,必须保证进程调用和处理的快速性,因为检测的样品信息需及时分析处理。

  (2)稳定性

  作为系统设计的软件平台,需要具有相当的稳定性。从而保证离子迁移谱仪检测系统即使在多变的外部环境下如气压、温度等,也能够正确执行预定的动作。

  (3)内核规模较小

  由于整个系统的硬件资源有限(我们配备了2M的FLASH),因此源代码必须足够的小,以便写入存储器,提高运行效率。

  综合考虑各个因素,我们选择了嵌入式实时操作系统Nucleus PLUS。NucleusPLUS是美国著名RTOS厂商ATI(AcceleratedTechnologyInc)公司,为实时嵌入式应用而设计的一个抢先式多任务操作系统内核。其95%的代码是用ANSIC写成的,非常便于移植并支持大多数类型的处理器。Nucleus PLUS是一组C函数库,应用程序代码与核心函数连接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的ROM中执行。在典型的目标环境中,Nucleus PLUS核心代码区一般不超过20K字节大小,内核规模非常小。

  Nucleus PLUS的特点

  Nucleus PLUS内核的系统结构

  Nucleus PLUS的系统结构如图2所示。Nucleus PLUS内核的主要目的是管理实时任务的竞争运行,为应用提供各种便利,快速响应外部事件,实现实时性。Nucleus PLUS为系统开发提供以下支持:多任务管理,任务之间可以按照优先级和时间片方式来共享CPU资源,通过邮箱、队列和管道进行通信,任务之间的同步和互斥通过信号量、事件组和信号进行;NucleusP LUS提供动态和分区内存两种存储器管理机制,还提供定时器来处理周期性事件及任务的睡眠和挂起超时。Nucleus PLUS将这些机制称之为软件组件,它为每一个软件组件提供了一系列的系统调用,任务与Nucleus PLUS的交互是在系统调用的界面上进行的。

  从图2可以看出,利用Nucleus PLUS开发平台,用户只需编写任务代码和中断服务程序代码,在任务代码和中断服务程序代码中利用系统调用实现和Nucleus PLUS的交互,由Nucleus PLUS来调度多个任务并行执行,实现CPU的共享。由于NucleusPLUS根据优先级和时间片方式来共享CPU资源,所以只要任务和中断服务程序的优先级设置得当,系统的实时性就能保证。

  

  

  

  图2 Nucleus PLUS系统结构

  多任务管理

  Nucleus PLUS实时操作系统中的任务(task)相当于分时操作系统中的进程。在NucleusPLUS操作系统中,任务可划分为5种基本状态:运行状态、就绪状态、挂起状态、终止状态和完成状态,具体见表1所述。

  表1 任务的五种状态

  

  

  

  各个任务之中,只能有一个任务处于运行状态;处于挂起状态的任务可以被某些系统调用或事件激发而转到就绪状态;处于执行状态的任务被高优先级抢占之后也处于就绪状态;就绪状态除了对CPU的控制外,该任务已经获得了运行所需的一切资源。

  任务的调度

  Nucleus PLUS对任务的调度有两种方式,优先级调度和时间片调度。如图3所示。当一个更高优先级的任务就绪时,Nucleus PLUS中断低优先级的任务,保存现场,并先运行更高优先。

  

  

  

  图3 任务调度示意图

  级的任务,这就是抢占。通过优先级调度可以保障高优先级的任务优先运行。相同优先级的任务间也可以采用时间片的方式轮流使用CPU资源,用户只需指定每一个任务的时间片大小,Nucleus PLUS通过时钟中断来计算任务的运行时间,当任务的时间片耗尽后,Nucleus PLUS会自动进行任务切换。NucleusP LUS对任务的调度利用类似双向链表数组TCD_Priority_List数据结构实现。

  系统软件设计

  建立BSP

  根据RTOS的编程模型,软件设计分两步走,首先建立BSP。即根据目标环境进行系统配置,建立板级支撑程序BSP(相当于标准PC的BIOS)。主要完成系统初始化及与硬件相关的设备驱动,引导目标机硬件到一个确定的状态。分别以Board_Init(),INTInitialize(),UARTInit(),LCDInit()等来实现。

  软件功能描述及多任务功能划分

  根据离子迁移谱仪的工作原理,软件必须实现实时数据采集(离子信号和各通道模拟量)、实时控制(离子管上温度的恒定控制、维持气路的恒定流量、还包括对系统中的高压电源、整机电流、整机温度、试纸状态等实时跟踪和控制)、键盘响应、菜单图形显示以及与PC机的通信接口等模块。其中前面2个模块的功能与时间密切相关,下面将功能具体化:

  a1每10ms完成一次串行A/D采样,对内部的16个通道采样数据保持同时采样。实时要求较高。

  b1采用CPLD每25ms开启一次门信号,采集1000个离子信号数据。实时要求很高。

  c110ms完成一次各个温度控制规律的计算,使各个温度维持在设定的点上。

  d1用户按下分析键后,几秒内解析馆内温度需达到的预定点,并且整个分析需在20秒内完成。

  e1对用户通过键盘下达的命令及时给与响应,并在液晶屏上给出对应的显示。

  f1对检测到的违禁成分立即给予报警。

  g1与PC机进行通信,通过PC机能够对存于串行flash中的样本库、工作参数等进行修改,或者对其存储的样本库及报警结果传送到PC机上。

  依据DARTS设计方法,对这些功能要求,我们总共划分以下十个任务:

  MainTask:主任务,负责从主队列中收消息,根据消息类别与其他任务通信,激活不同的任务。

  UITask:图形界面显示任务。

  MCTask:多通道数据采集任务。

  RCTask:对温度的实时控制任务。

  MVTask:数据搬移任务。

  ANTask:分析处

[1] [2]
相关阅读
对计算机嵌入式实时操作系统的研究及分析 2011-12-22
全球趋势下无线嵌入式系统的系统级设计和检验 2011-12-22
基于网络的嵌入式系统安全性研究 2011-12-22
基于嵌入式系统的远程参数测量的设计 2011-12-22
基于嵌入式系统的能谱型核测井仪器 2011-11-24
嵌入式系统能耗的动态管理 2011-11-15
实时嵌入式系统模型校验技术 2011-11-15
基于CPLD和Embedded System的LED点阵显示 2011-08-06
基于mc35i的m2m终端设计与研究 2010-12-18
基于Linux下USB主机接口设计 2010-09-29
基于工业以太网的数控机床网络控制系统 2010-07-26
编辑:ssb
本文引用地址: http://www.eeworld.com.cn/gykz/2008/0415/article_774.html
[发表评论]
[加入收藏]
[告诉好友]
[打印本页]
[关闭窗口]
[返回顶部]
[RSS订阅]

小广播

最热点击

专栏

向农,EEWORLD副总编。被英特尔董事长贝瑞特称为“中国可与之对话的两名记者之一”

【详细】

总编随笔
汤宏琳,人皆称为“汤汤”,电子工程世界高级编辑。随着EEWORLD一起成长。

【详细】

汤汤手记
今年,是中国集成电路产业丰收的一年,相比较往年都有大幅提升。

【详细】

凯哥博客

论坛精华

精选博文