0 引言
一个高效的单片机智能控制系统, 不仅要求系统能够同时执行多个任务,对每个任务作出实时响应, 而且要求系统能够及时响应随机发生的外部事件, 并对其作出快速处理。对于这样的系统应用,采用实时操作系统 RTOS( Rea l tim e Operati ng Syste m )作为系统软件设计平台是一个良好的选择,它可以灵活地安排系统资源,简化复杂的软件设计,加快软件的开发效率,大大缩短了项目的开发周期。道路交通灯是最常见的一种多任务控制系统, 本文以此为例, 详细阐述了51嵌入式实时操作系统 RTX51开发软件的方法和步骤。
1 系统硬件电路设计
交通信号灯控制系统主要实现以下三个功能:
( 1) 信号灯指示,即完成十字路口红、 黄、 绿交通信号灯的控制。
( 2) 时间显示, 各个信号灯持续的时间显示。
( 3) 紧急情况响应, 当系统出现故障或者有紧急情况是能够及时响应。
根据以上功能要求, 完整的交通灯控制系统硬件电路如图 1所示, 主要由三部分模块组成:单片机最小系统模块、 红绿色显示模块、 倒计时显示模块、 紧急中断模块。
( 1) 单片机最小系统: 包括时钟电路和开关复位电路单片机选用 具有成本 低廉 且具有 串口 ISP下 载功能 的S TC89C52单片机,晶振选用 12MH z 。
( 2) 信号灯指示电路: 东西南北四个方向分别有红、 绿黄三个状态指示的灯,其中南北方向的红绿黄发光二极管分别连接到 P1 . 0~ P1 . 2 , 东西方向的红绿黄发光二极管分别连接到 P1 . 3~ P1 . 5。
( 3) 倒计时显示:每个交通灯状态倒计时时间由两位共阳数码管显示,八位段码分别连接到 P0 . 0~ P2 . 7 , 两位位选通过反向器分别连接到 P3 . 4 、P3 . 5。
( 4) 紧急中断:开关 K1为紧急中断开关, 当有特殊情况时按下 K1 , K1连接到单片机 P3 . 2外部中断 0输入端。
2 基于 RTX51的软件设计
近年来,利用嵌入式实时操作系统来开发嵌入式系统的软件已是大势所趋。这是因为传统的这类设计中, 大多采用了中断结合单任务的顺序机制进行, 这种设计方法虽然比较直观,但是也带来了诸如稳定性差、 不便于调试等问题。尤其是当系统比较复杂、 实时性要求比较高时, 这种单任务机制的缺陷更为明显。利用嵌入式实时操作系统, 程序开发者可以将复杂的系统分成多个相对独立的任务, 从而分而治之,降低了系统的复杂性; 通过对不同的任务赋以不同的优先级,从而能够保证系统的实时性; 同时, 由于软件系统有多个任务组成, 所以其模块化程度好, 提高了系统的可维护性。因此,这里利用实时操作系统 RTX51来进行软件系统的设计。
2 . 1 RTX51实时操作系统介绍
RTX 51是美国 Ke il公司开发的一种运行于 8051单片机环境中的实时多任务操作系统 ( RTOS), 其常用于处理复杂的多任务控制系统。 8051单片机支持典型的 RTX51 T i ny和 RTX 51 Fu ll实时多任务操作系统。在 Ke il V i son3集成开发环境中提供了 RTX51实时操作系统的编译和仿真调试支持。