基于RTX51实时操作系统的交通灯控制系统的设计

时间:2010-12-21

     0 引言

  一个高效的单片机智能控制系统, 不仅要求系统能够同时执行多个任务,对每个任务作出实时响应, 而且要求系统能够及时响应随机发生的外部事件, 并对其作出快速处理。对于这样的系统应用,采用实时操作系统 RTOS( Rea l ti m e Operati ng Syste m )作为系统软件设计平台是一个良好的选择,它可以灵活地安排系统资源,简化复杂的软件设计,加快软件的开发效率,大大缩短了项目的开发周期。道路交通灯是常见的一种多任务控制系统, 本文以此为例, 详细阐述了 51嵌入式实时操作系统 RTX51开发软件的方法和步骤。

  1 系统硬件电路设计

  交通信号灯控制系统主要实现以下三个功能:

  ( 1) 信号灯指示,即完成十字路口红、 黄、 绿交通信号灯的控制。

  ( 2) 时间显示, 各个信号灯持续的时间显示。

  ( 3) 紧急情况响应, 当系统出现故障或者有紧急情况是能够及时响应。

  根据以上功能要求, 完整的交通灯控制系统硬件电路如图 1所示, 主要由三部分模块组成:单片机系统模块、 红绿色显示模块、 倒计时显示模块、 紧急中断模块。

系统原理图

图 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实时操作系统的编译和仿真调试支持。

  在多任务嵌入式系统中, 合理的任务调度必不可少。单纯通过提高处理器速度无法达到目的, 这样就要求嵌入式系统的软件必须具有多任务调度能力。在微控制器应用系统中通常可以分解为多个相互独立的功能模块, 在 RTX51嵌入式实时操作系统中将这些模块划分为任务, 引入多任务机制管理。依据系统功能优先级分配不同的任务, 多个任务分别在各自的时间片内访问 CPU, 从而产生了微观上轮流运行、 宏观上并行运行的多任务效果, 保证了对外界的信息足够快的速度进行响应处理, 又能并行运行多个任务, 因此能很好完成对多个信息的实时测量、 处理并进行响应的多个实时控制。

  2 . 2 任务分配

  在本系统中,依据交通灯控制系统功能的分析, 将整个软件系统分解为以下三个任务, 系统初始化、 红绿黄灯显示、倒计时显示。具体情况如下:

  任务 0 : 用于系统初始化,开外部中断 0 ; 启动任务 1和任务 2 。

  任务 1 :红绿黄信号指示灯控制, 实现红绿黄灯的五种状态控制。状态 0 : 东西方向红灯亮, 同时南北方向绿灯亮, 亮的时间为 30 S ; 状态 1 : 东西方向红灯亮,南北方向黄灯闪烁,时间为 3 S ; 状态 2 : 东西方向绿灯亮, 同时南北方向红灯亮,时间为 30 S ; 状态 3 : 东西方向黄灯闪烁,南北方向红灯亮, 时间为 3 S ;状态 4 : 当紧急开关按下时, 响应紧急状况或者故障状态,东西南北四个方向红灯均亮,时间为 10 S。

  任务 2 :各个状态指示灯倒计时显示。两个数码管采用动态扫描显示, 实时显示当前交通指示灯状态的倒计时时间。

  2 . 3 程序设计

  依据任务分配, 将三个任务分别规划为 _task _0 , _task _1 , _task_2 , 由于完整的程序较大, 这里不便给出, 只给出部分代码,如下所示。






  3 结束语

  本文以道路交通灯控制系统为例, 详细介绍了 RTX51实时操作系统在单片机程序设计中的应用。系统实际运行结果表明, RTX51实时操作系统既能保证对外界的信息以足够快的速度进行处理,又能并行运行多个任务, 具有实时性和并行性的特点, 因此能很好地完成对多个信息的实时测量、 处理和进行相应的多个实时控制。此外, 使用 RTX51实时操作系统,降低了软件编写的复杂度, 提高了产品的开发效率,方便了系统的维护和功能扩展。


  
上一篇:基于CPCI总线的加固计算机设计
下一篇:污水集中排放监控终端的设计和实现

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料