- 相关推荐
uC/OS-II在配电监测终端仪表中的应用
摘要:讲述嵌入式操作系统μC/OS-II在电力监控仪表中的应用;通过实时多任务系统对所有任务的调度管理,解决在单任务系统中难以处理的实时性差的问题,同时增强系统工作的可靠性;较详细地给出系统软件的整体设计思路,以及软件中各任务的具体运行过程。引言
随着各种电子系统在各领域中应用的不断深入,对电子系统本身的各方面性能提出了越来越高的要求,使应用软件朝着系统化方向加速发展。传统的嵌入式系统设计中,大多采用单任务的顺序机制。应用程序是一个无限的大循环,所有的事件都得按顺序执行,与时间相关性较强的事件靠定时中断来保证。这种方式编程的优势在于程序较为直观,但由此带来一个重要的问题,那就是系统的稳定性、实时性较差。尤其当系统功能较复杂,同时对实时性要求较严格时,这种单任务机制的弱点使暴露无遗。
在配电监测终端软件的设计中,笔者将买时操作系统μC/OS-II用于TMS320F206的程序设计;将系统所要的功能细化成为几个核心任务,由μC/OS-II实时内核进行调度,实现了多任务的并行执行,系统的可靠性和实时性得到大幅提升。ΜC/OS-II是免费的、源代码公开的、微内核嵌入式实时操作系统,其实时性能和内核的健壮性早已经在大量的实际应用中得到了证实。
1 系统概述
在电力系统中,对电子设备的要求是比较高的。配电监测终端是监测电网运行状况的一种重要设备,主要完成以下功能:对电压、电流信号进行采样,A/D转换;对所采集到的数据进行计算分析,得出各种监测指标参数;对所有指标参数进行统计分析,处理液晶显示和键盘扫描,响应按键命令,进行数据通信处理。在对电压、电流模拟通道信号的采样和A/D转换过程中,为保证严格的等时间间隔,将这部分事件处理放到实时器中断中进行。数字信号分析处理作为一个程序模块,完成数据的分析运行。键盘扫描和液晶显示处理部分程序,作为人机交换信息最直接的通道。它的设计是否合理,直接影响到用户使用的满意程序。在单任务系统中,程序循环的周期不确定,因此键盘扫描周期无法确定。当程序运算量较大时,容易造成明显的键盘响应迟钝。键盘扫描周期很大程序上受到主程序循环时序的影响,而且,当主程序中某个程序模块出现问题时,将出现程序卡住,直到看门狗复位为止。
在多任务系统中,这些问题可以得到很好的解决。利用嵌入式实时操作系统内核对所有“任务”进行统一调度和管理,使CPU的使用权在建立的“任务”间切换;同时,在多任务机制下,使应用程序模块化,使开发任务层次化。
整个系统的设计可以分为三个层次:最底层为硬件平台是,包含微处理器系统及相关应用电路,第二层为任务层,包含电路驱动程序和应用程序;最高一层为μC/OS-II操作系统层,是整个系统的管理核心,如图1所示。
2 硬件描述
配电监测终端的设计采用定点DSP TMS320F206作为处理器。它是采用先进的改进型哈佛结构、多级流水高速设计,具有极其强大的数据处理能力和管理能力。该终端从功能上可分为数据采集部分,液晶显示及键盘阵列部分,数据存储、通信部分及微处理器小系统部分。数据采集部分用来对电压、电流信号进行采样和A/D转换;液晶显示和键盘阵列为人机信息交换硬件接口;数据存储部分存储大量历史统计数据,采用掉电保护设计,在系统掉电情况下数据不会丢失。
3 系统软件设计
按系统所要求实现的功能,将整个系统划分为几个并行存在的任务层。占先式操作系统对任务的调度是按优先权的高低进行的,将系统的几个任务按其优先级从高到低顺序排列依次是:系统监视任务、键盘扫描和液晶显示任务、通信任务、数据运算统计处理任务。数据采集部分放到定时器中断程序中执行。其中,系统监视任务是用来监视除系统监视任务外其它任务的。当被监视任务在执行过程中出现差错时,系统监视任务将按照预先设定的处理表对其进行处理,使出现差错的任务恢复正常运行,提高系统运行的可靠性。优先权的设置是按照整个系统运行的时序来确定的,对系统安全运行较重要和对实时性要求较严格的任务,设成较高的优先级。一般而言,在系统运行过程中,各任务的优先级是固定不变的。
μC/OS-II控制下的任务可以分为休眠态、就绪态、运行态、中断态和挂起态。在嵌入式系统中,为节省存储器空间不会保留休眠态的任务。当某个任务正在占用CPU的使用权时,该任务处于运行态。处于运行态任务的优先权一定高于其它所有就绪态任务的优先权。当系统运行致使某一就绪态任务优先权高于运行态任务的优先权时,调用调度函数,运行态任务将转入挂起态等待某一消息或信号量,或者转入就绪态;而那个拥有较高优先权的任务将占有CPU的使用权而转为运行态。某一时刻只有个任务占有CPU的使用权,也就是说,某一时刻只有一个任务处于运行状态。挂起态的任务在所规定的时间内,如果得到所期待的数据(可能是消息阵列,也可能是信号量),就自动转为就绪态;如果等待超时,就被时间管理函数强制转化为就绪态,等待任务调度。中断发生时,系统将强行剥夺运行态任务对CPU的使用权,将它转入中断态,保存相关数据到堆栈区之后,执行中断服务程序。在中断返回时,系统返回函数将重新进行任务调度,将优先权最高的就绪态任务转为运行态。
在实际系统中,每个任务都是一个无限循环的,分别实现某一特定的功能,由μC/OS-II内核来进行调度。电力行业中对设备可靠性的要求是很高的。对于监测设备,由于在启外运行,所受的电力谐波干扰相当大,有时会引起程序跑飞、死机现象,直到看门狗复位可使系统恢复正常;但在看门狗复位这段时间内,设备对电流、电压的采样不能正常进行,相关采样数据就会丢失,直接影响到电能量计算的准确度,同时会影响到数据通信。笔者利用软件狗的原理设计了一个系统监视任务,用来对其它任务进行监视。在系统运行中,当发现某一个任务运行出现异常时,该任务将按相关步骤做出相应处理。具体做法是:系统监视任务在正常运行情况下处于挂起状态,在某一时间范围内,等待每个被监视任务向它发送代表该被监视任务正常运行的消息。每个被监视的任务在运行状态下向
【uC/OS-II在配电监测终端仪表中的应用】相关文章:
仪表自动化对化工工业的应用论文04-27
目标规划及其在经济中的应用05-11
气管插管在院前急救中的应用05-29
物理教学中多媒体的应用论文11-02
医院护理管理中绩效管理的应用价值04-29
幼儿文学在幼儿教育中的应用论文04-28
精益生产在企业管理中的应用05-26
英语文学在英语教学中的应用04-21