碧波液压网 欢迎你,游客。 登录 注册

多任务机制在单片机系统中的应用

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  

  传统的单片机系统监控程序通常是基于单任务机制的。这种机制具有简单直观,易于控制的优点。然而由于程序只能按单一的线索顺序执行,缺乏灵活性,在复杂系统中难以胜任。为了在更广泛的领域应用单片机系统,必须对传统的单任务机制进行改进。

  多任务机制是现代操作系统才具有的突出优点。在这种机制下,CPU的运行时间被划分为许多小的时间片,由某种调度算法按不同优先级别分配给不同的应用程序。多个应用程序分别在自已的时间片内访问CPU,从而造成微观上轮流运行,宏观上并发运行的多任务效果。

  在单片机系统中引入多任务机制,可以有效改善程序结构,满足复杂系统的要求。任何多任务本质上都借助于中断机制。通用单片机中都允许使用中断,从而保证了在单片机系统中实现多任务的切实可行。而单片机运算能力的有限要求多任务调度算法必须简洁。

  1 两种机制的比较

  一个典型的单片机监控系统通常包括输入、输出控制,数据处理,显示以及键盘管理。在传统的单任务机制下,程序采用循环方式,其流程图如图1所示。

  由流程可知,在单任务机制下,各功能模块按固定顺序构成一个整体,作为一个任务得到执行。而在实际应用中,各个模块要求的执行频率往往不一致,如输入采样频率可能要求很高,而单位时间内键盘扫描的次数则相对较少,系统这种复杂的定时要求在单任务机制下难以满足。另外在这种结构下程序一旦建立,各模块的执行顺序即已固定,对于需在运行时动态改变执行结构的系统,程序需用许多条件判断和分枝转移语句进行控制,增加了程序的复杂性。程序作为一个整体而存在可读性和可维护性很差,调试不便,对已有程序进行扩充,也需先了解整个程序结构,增加了扩充难度。

  考虑到单片机完成的系统功能往往可以分解为若干相对独立的模块,我们可以将这些模块理解为子任务,并引进多任务机制进行管理,从而形成一种崭新的程序结构。其示意图如图2所示。

  在这种结构下,各功能模块由系统调度程序启动执行完毕后返回系统调度程序,彼此处于等同地位,其执行顺序也比较灵活,且可在程序运行过程中动态地改变执行结构。各子任务的执行频率要求表现为它们的优先级,优先级越高的子任务单位时间内执行次数越多,从而其执行频率越高。各子任务在自已的时间片内运行,通过合理设计时间片大小和各任务的优先级,可以自然地满足系统内各种复杂的定时要求。

  在多任务结构下程序的调试与维护也变得容易。程序以分立模块形式存在,各模块间功能独立,相互影响小,可以方便地单独调试,并寻找问题所在。对程序的扩充更为方便,不用更改原有结构,只需增加要扩充的部分即可。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论