摘 要:本文介绍了离子迁移谱仪的工作机理、软件系统设计以及嵌入式实时多任务操作系统(RTOS)Nucleus PLUS,重点介绍后者在离子迁移谱仪中的具体实现。
关键词:嵌入式;实时操作系统;任务;迁移时间
引言
现今社会,毒品走私比较猖獗,对民的生命财产、社会稳定构成了一定的威胁,同时大气监测以及对有毒气体的监控也刻不容缓的。所开发的离子迁移谱仪,是一种利用IMS(离子迁移谱技术)的专用探测仪,它在确定的温度、气压、电场条件下,通过精确测定离子在电场作用下穿过固定距离的迁移时间,来认定被测可疑物质中是否具有某些化学成分的分子,并对某些特殊的化学物质能够发出报警信息,从而可用来检测毒品及有毒气体。
该系统的工作原理如下:通过细节匹配CONTROL ENGINEERING China版权所有,对离化后物质的等离子图的波峰位置(即物质的迁移时间)的提取来鉴定物质的具体成分。系统的原理框图如图1所示。
图1 系统原理框图
离子迁移谱仪需要读取实时数据,并作分析、处理,要求每25ms处理1000个离子信号数据,具有一定的实时性。同时,它还需对离子管内的温度、气压、电压等数进行读取、控制。设备分析时,要求
嵌入式RTOS选择
可用于嵌入式系统软件开发的操作系统很多,但关键是要选择一个适合的嵌入式实时操作系统。在离子迁移谱仪实时系统的设计中,我们对嵌入式RTOS的要求如下:
(1)实时性
使用时,必须保证进程调用和处理的快速性,因为检测的样品信息需及时分析处理。
(2)稳定性
作为系统设计的软件平台CONTROL ENGINEERING China版权所有,需要具有相当的稳定性。从而保证离子迁移谱仪检测系统即使在多变的外部环境下如气压、温度等,也能够正确执行预定的动作。
(3)内核规模较小
由于整个系统的硬件资源有限(我们配备了2M的FLASH),因此源代码必须足够的小,以便写入存储器,提高运行效率。
综合考虑各个因素,我们选择了嵌入式实时操作系统Nucleus PLUS。NucleusPLUS是美著名RTOS厂商ATI(AcceleratedTechnologyInc)公司,为实时嵌入式应用而设计的一个抢先式多任务操作系统内核。其95%的代码是用ANSIC写成的,非常便于移植并支持大多数类型的处理器。Nucleus PLUS是一组C函数库,应用程序代码与核心函数连接在一起,生成一个目标代码,下载到目标板的RAM中或直接烧录到目标板的ROM中执行。在典型的目标环境中CONTROL ENGINEERING China版权所有,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 任务的五种状态
各个任务之中CONTROL ENGINEERING China版权所有,只能有一个任务处于运行状态;处于挂起状态的任务可以被某些系统调用或事件激发而转到就绪状态;处于执行状态的任务被高优先级抢占之后也处于就绪状态;就绪状态除了对CP