APP下载

基于RTX51的低压智能配电箱的控制系统设计*

2012-11-11仝战营毛景魁

河南工学院学报 2012年2期
关键词:空闲计时按键

仝战营,毛景魁

(河南机电高等专科学校,河南 新乡 453000)

1 引言

随着家庭智能控制系统深入普通用户,无线开关系统出现于市场上。先后出现了单路、多路遥控开关,诸如4路无线开关,定时开关。此类系统只能进行简单的开关控制,由于通信的单向性,操作者无法得知开关状态,只能从用电设备的工作状态得知当前的开关状态,更无法对开关预约定时。因此,此类设备虽然解决了操纵开关的不便,但却没有解决开关状态、预约定时以及通信可靠性的问题。

为解决上述问题,并将目前各实用功能集成为一体,采用蓝牙通信,结合微控制器制作的智能低压配电箱的控制电路框图如图1所示,系统主要由以下功能模块组成。

图1 低压智能配电箱硬件控制电路

1)开关驱动电路,为配电箱的执行机构,用于开通或关断某路电源,达到控制配电的目的。

2)LCD12864液晶显示单元。用于显示用户的当前操作、当前时间、各路开关的状态、定时信息等。

3)实时时钟电路。该电路为系统运行提供时间基准,系统根据此时间执行定时动作。

4)蓝牙通信接口。采用外接蓝牙模块,设计全双工的通信接口,与蓝牙模块通信,以便与操作终端数据交换。

5)程序下载接口。采用ISP方式下载程序,可在线烧写程序,为以后程序升级提供了方便的接口。

6)提示音电路。用于操作时的声音提示或者故障报警等。

7)核心控制芯片。核心控制芯片为单片机STC12C5A60S2,管理上述的系统各功能模块。

8)电源电路。采用开关电源模块为控制电路提供所需的电源。

9)面板按键。提供4个按键,操作者可以在面板上进行全部操作。

图2 控制主板原理图

系统控制主板电路如图2所示,控制核心芯片采用STC12C5A60S2,通过P0口和 P2口的 P2.1-P2.5作为LCD12864液晶的接口控制线;P1.0、P1.1作为无线通信接口,用于收发遥控数据;P1.4-P1.7用于配电箱的开关驱动控制线;P3.0、P3.1用于程序的ISP下载,并配置指示灯,只是当前通信状况。

2 操作系统的选择

完成以上任务通常采用传统的前后台处理编程方式,但此种方式当一个任务执行时间较长时,容易丢失瞬时信息,从而造成不动作或误动作。一个高效的单片机智能控制系统,不仅能够同时执行多个任务对每个任务作出实时响应,而且,要求系统能够及时响应随机发生的外部事件,并对其作出快速处理[1]。对于这样的系统应用,采用实时操作系统RTOS(RealTime-Operating System)作为系统软件设计平台是一个良好的选择,它可以灵活地安排系统资源,简化复杂的软件设计,加快软件开发的效率,大大缩短项目的开发周期[2]。

目前,应用于嵌入式的操作系统很多,常见的通用型嵌入式操作系统有 uCLinux、VxWorks、Windows CE.net、uCOS-II等。但这些操作系统需要较大的RAM空间,因此,不适合于采用普通单片机控制的应用场所。

RTX51是德国 Keil公司开发的一种应用于MCS51系列单片机的实时多任务操作系统,它可以工作在所有8051单片机以及派生的系列[3]。其中,RTX51 Full支持信号传递、系统邮箱和消息传递。RTX51 Tiny最大允许16个任务的循环切换,支持信号传递,但不支持存储区的分配和释放,不支持抢先式调度。考虑到系统后继的优化、扩展,本文采用RTX51 Full作为系统的操作软件。

3 系统任务

根据系统要求和软件编制的需要,经过系统需求分析,总结控制低压配电控制箱的控制要求,其需要完成的软件模块的功能主要有:遥控命令的接收和解析、面板按键操作、开关定时、开关控制、数据存储、系统时间设定、提示音的开关。这些软件模块的层次关系如图2所示,它们不是需要同时运行的,比如开关控制,只有在遥控或面板操作时才会执行。因此,将以上的功能模块按照先后的层次关系划分为以下几个独立的模块。

基本任务有5个,分别是:遥控命令及数据的接收和解析、面板操作、液晶显示、计时和空闲任务。它们完成的功能如下所述:

1)命令及数据的接收和解析

主要完成操作终端通过蓝牙功能模块和控制箱进行的命令、数据交互。此模块的主要功能是按照3.2所述的协议格式解析出操作终端的命令、数据,交由上层软件处理。

2)面板操作

控制箱有4个按键,分别执行上翻(加)、下翻(减)、确定、取消操作。具体功能根据当前的操作命令而定。

3)液晶显示

液晶为系统的输出界面,操作者借此了解系统运行状态及数据。因此,对于不同的操作命令,需要显示不同的界面。操作者希望操作界面友好,便于操作,这给程序设计提出了较高的要求。

12864是128*64点阵液晶模块的点阵数简称,适用于各类仪器,小型设备的显示领域。它是一种图形点阵液晶显示器,主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成,可完成图形显示,也可以显示8×4个(16×16)汉字。

根据用户的操作习惯,将12864液晶的显示界面制作成菜单式界面,各个可执行的命令显示于液晶之上。操作者通过按键选择相应的菜单进入,并执行所选择的命令。

4)计时任务

控制箱必须有一个时间基准,才能完成定时动作。这里面有2种形式的定时,一个是简单的不精确的定时,依靠单片机自身的定时器完成,主要用来作为系统段时间的计时,如按键消抖、间隔读取实时时钟等。另一个是长时间精确定时,需要实时时钟来完成。在软件里设计一结构体,依靠间隔读取实时时钟完成时间数据的更新,并以该数据作为开关定时和系统时间的基准。

5)空闲任务

系统长时间不进行操作时,表明处于“空闲状态”,此时,不必要显示系统菜单,为方便使用,设计显示系统时间,让用户可以看到当前的时间,作为一个时钟使用。因此,空闲任务的功能就是察看系统是否处于空闲,如果处于空闲阶段,即切换到系统时间显示的状态。如果用户有按键,则立即显示操作菜单,以便操作者进行功能操作。

上述5个任务需要同时独立运行,对于单片机来讲,采用传统的前后台系统编写软件,则显得麻烦而不实用。综合单片机的资源和目前运用于单片机的操作系统,选择RTX-Tiny操作系统对上述5个任务进行调度,使之互相独立。

4 任务编程

由于系统任务较多,现以面板操作和计时任务为例,说明和分析系统软件的编制过程。

4.1 面板操作

面板操作的任务是读取按键值,并根据此按键值、目前菜单行,执行操作者要求的功能,其流程如图4所示。

图3 控制箱软件层次关系

按键任务程序不停地检查按键,如果有按键按下,则将按键值转换成可识别的按键字符。然后程序检查当前系统是否处于空闲状态,如果处于空闲状态,则不予响应,否则,调用菜单程序,根据按键值执行相应的功能程序。

图4 按键任务流程图

按照图4编写的程序如下所示:

4.2 计时任务

计时任务首先判断系统是否处于空闲状态,然后读取实时时钟,并根据实时时钟的时间数据判断定时时间是否到,主要流程如图5所示。

图5 计时任务流程

计时任务以1秒左右的时间等待超时事件,如果超时事件发生,则将空闲时间变量减一,如果空闲时间变量被减为0,则空闲时间变量重新赋默认值(1800,30分钟)。同时,空闲状态置位,表明当前操作已经至少30分钟没有再进行了,向空闲任务发送信号。如果空闲时间变量不为0,则说明仍然在操作中,略过空闲时间的操作。

完成上述任务后,则调用时间比对函数,读取实时时钟的数据,更新系统时间,与各路开关的当前定时数据比对,如果到了定时时间,则执行相关定时动作,否则,继续等待下次的时间超时事件。

按照图4编写的计时任务程序如下所示:

5 结语

RTX实时操作系统既能保证对外界的信息以足够快的速度进行相应处理,又能并行运行多个任务,具有实时性和并行性的特点,因此能够很好地完成对多个信息的测量、处理和实时控制[4],并且,RTX以其简洁高效的内核,非常适合运行于资源较少的单片机上。使用RTX51的多任务操作系统软件完成的低压配电箱,外围电路少、成本低、可靠性高,软件的编写和调试快捷方便、开发周期短。

根据上述设计生产的研丹-I型微电脑控制低压智能配电箱已用于生产,实践证明,使用RTX51实时操作系统可以加快系统的开发速度,降低软件编程的复杂程度,大大提高开发效率,是一个较好的解决办法。

[1]欧伟明,罗三定.基于RTX51的交通灯信号自适应倒计时器[J].机电产品开发与创新,2006,16(6):49-51.

[2]邢鹏康,胡彬.基于RTX51实时操作系统的交通灯控制系统的设计[J].山西电子技术,2010,(5),50 -52.

[3]蔡林骥,李清宝.RTX51嵌入式实时操作系统分析[J].计算机应用与软件,2005,6(6):90 -92.

[4]胡万华.基于RTX51实时操作系统的激光热处理机控制系统设计[J].煤矿机械,2010,5(5):24 -26.

猜你喜欢

空闲计时按键
恩赐
畅游计时天地
基于有限状态机的按键检测程序设计
腕表计时2.0
12时计时法与24时计时法的互化
“鸟”字谜
彪悍的“宠”生,不需要解释
24时计时法
一种多方向导光按键结构设计
WLAN和LTE交通规则