absMiddle" alt="" src="/article/UploadPic/2010-4/2010415164945189.gif" border="0" onload="return imgresize(this);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>
图1 系统结构图
二、硬件电路层设计
本系统的移动终端主要包括以下四个部分组成:GPS模块、GPRS模块、手柄、单片机控制模块,其大致功能分述如下:
(1) GPS模块——用于卫星定位数据的采集,采集时间间隔可设定,最小间隔为1秒采集一次。
(2) GPRS通信模块——用于实现GPRS数据的收发、短信息收发和语音通话功能。
(3) 手柄——用于语音通话。
(4) 单片机控制模块——用于控制GPS、GPRS模块的数据接收、发送、语音通话控制、短信息收发、电源监测管理和对汽车进行控油控电等功能。
三、任务层的设计
1、系统任务层组成及其优先权设置
系统任务层并行存在以下六个任务:监视任务、按键处理任务、摘挂机任务、GPRS任务、短消息任务、串口接收任务。每个任务均有以下三部分组成:应用程序、任务堆栈以及任务控制块。其中只有应用程序被烧入ROM,而任务本身则被置于RAM,待系统运行时再建立。任务堆栈用以存储CPU寄存器内容。当某任务由运行态变为其它状态时,CPU寄存器内容压入相应任务堆栈,反之则将相应任务堆栈内容置入CPU寄存器。作为系统中定义的一个数据结构,任务控制块的内容包括任务堆栈的地址、任务当前状态、任务优先权等。操作系统通过查询任务控制块内容实现对任务的管理。
优先权的设置由各任务的执行顺序以及对系统安全性影响的大小决定,其优先权从高到低依次为:监视任务、按键处理任务、摘挂机任务、GPRS任务、短消息任务、串口接收任务。本系统采用静态优先权设置,即运行过程中任务优先权不变。
2、 任务的状态
absMiddle" alt="" src="/article/UploadPic/2010-4/2010415164945339.gif" border="0" onload="return imgresize(this);" style="cursor:pointer;" onclick="javascript:window.open(this.src);"/>
本系统中各任务的状态有4种:等待态、就绪态、运行态以及中断态。状态的转换关系如图2所示。当一个任务占用CPU时该任务处于运行态,其优先权必较所有就绪态任务优先权高。若系统运行导致就绪态某一任务的优先权高于运行态任务优先权,则调用调度函数,运行态任务将丧失对CPU的占用权而转为就绪态,优先权最高的就绪态任务转为运行态。某一时刻只能有一个任务处于运行态。任务在就绪态和运行态间的转化被称为任务切换。当运行态的任务期待某一消息时(即任务和任务之间的数据传递),该任务将丧失对CPU的占用权而转为等待态,等待时间可由系统设定。若等待时间内该任务收到消息,任务将转为就绪态,否则将被时间管理函数强行转为就绪态。中断发生时运行态的任务将转入中断态,丧失对CPU的占用权。因中断中可能有消息发送使等待态的任务转入就绪态,故中断返回后将首先运行任务调度函数,决定任务状态。