uC/OS-II在配电监测终端仪表中的应用
关键词:嵌入式系统 内核 任务 消息阵列
引言
随着各种电子系统在各领域中应用的不断深入,对电子系统本身的各方面性能提出了越来越高的要求,使应用软件朝着系统化方向加速发展。传统的嵌入式系统设计中,大多采用单任务的顺序机制。应用程序是一个无限的大循环,所有的事件都得按顺序执行,与时间相关性较强的事件靠定时中断来保证。这种方式编程的优势在于程序较为直观,但由此带来一个重要的问题,那就是系统的稳定性、实时性较差。尤其当系统功能较复杂,同时对实时性要求较严格时,这种单任务机制的弱点使暴露无遗。
在配电监测终端软件的设计中,笔者将买时操作系统μC/OS-II用于TMS320F206的程序设计;将系统所要的功能细化成为几个核心任务,由μC/OS-II实时内核进行调度,实现了多任务的并行执行,系统的可靠性和实时性得到大幅提升。ΜC/OS-II是免费的、源代码公开的、微内核嵌入式实时操作系统,其实时性能和内核的健壮性早已经在大量的实际应用中得到了证实。
1 系统概述
在电力系统中,对电子设备的要求是比较高的。配电监测终端是监测电网运行状况的一种重要设备,主要完成以下功能:对电压、电流信号进行采样,A/D转换;对所采集到的数据进行计算分析,得出各种监测指标参数;对所有指标参数进行统计分析,处理液晶显示和键盘扫描,响应按键命令,进行数据通信处理。在对电压、电流模拟通道信号的采样和A/D转换过程中,为保证严格的等时间间隔,将这部分事件处理放到实时器中断中进行。数字信号分析处理作为一个程序模块,完成数据的分析运行。键盘扫描和液晶显示处理部分程序,作为人机交换信息最直接的通道。它的设计是否合理,直接影响到用户使用的满意程序。在单任务系统中,程序循环的周期不确定,因此键盘扫描周期无法确定。当程序运算量较大时,容易造成明显的键盘响应迟钝。键盘扫描周期很大程序上受到主程序循环时序的影响,而且,当主程序中某个程序模块出现问题时,将出现程序卡住,直到看门狗复位为止。
(凹丫丫范文网fanwen.oyaya.net收集整理)
在多任务系统中,这些问题可以得到很好的解决。利用嵌入式实时操作系统内核对所有“任务”进行统一调度和管理,使CPU的使用权在建立的“任务”间切换;同时,在多任务机制下,使应用程序模块化,使开发任务层次化。
整个系统的设计可以分为三个层次:最底层为硬件平台是,包含微处理器系统及相关应用电路,第二层为任务层,包含电路驱动程序和应用程序;最高一层为μC/OS-II操作系统层,是整个系统的管理核心,如图1所示。
2 硬件描述
配电监测终端的设计采用定点DSP TMS320F206作为处理器。它是采用先进的改进型哈佛结构、多级流水高速设计,具有极其强大的数据处理能力和管理能力。该终端从功能上可分为数据采集部分,液晶显示及键盘阵列部分,数据存储、通信部分及微处理器小系统部分。数据采集部分用来对电压、电流信号进行采样和A/D转换;液晶显示和键盘阵列为人机信息交换硬件接口;数据存储部分存储大量历史统计数据,采用掉电保护设计,在系统掉电情况下数据不会丢失。
3 系统软件设计
按系统所要求实现的功能,将整个系统划分为几个并行存在的任务层。占先式操作系统对任务的调度是按优先权的高低进行的,将系统的几个任务按其优先级从高到低顺序排列依次是:系统监视任务、键盘扫描和液晶显示任务、通信任务、数据运算统计处理任务。数据采集部分放到定时器中断程序中执行。其中,系统监视任务是用来监视除系统监视任务外其它任务的。当被监视任务在执行过程中出现差错时,系统监视任务将按照预先设定的处理表对其进行处理,使出现差错的任务恢复正常运行,提高系统运行的可靠性。优先权的设置是按照整个系统运行的时序来确定的,对系统安全运行较重要和对实时性要求较严格的任务,设成较高的优先级。一般而言,在系统运行过程中,各任务的优先级是固定不变的。
μC/OS-II控制下的任务可以分为休眠态、就绪态、运行态、中断态和挂起态。在嵌入式系统中,为节省存储器空间不会保留休眠态的任务。当某个任务正在占用CPU的使用权时,该任务处于运行态。处
《uC/OS-II在配电监测终端仪表中的应用》