多任务机制在单片机系统中的应用
传统的单片机系统监控程序通常是基于单任务机制的。这种机制具有简单直观,易于控制的优点。然而由于程序只能按单一的线索顺序执行,缺乏灵活性,在复杂系统中难以胜任。为了在更广泛的领域应用单片机系统,必须对传统的单任务机制进行改进。
多任务机制是现代操作系统才具有的突出优点。在这种机制下,CPU的运行时间被划分为许多小的时间片,由某种调度算法按不同优先级别分配给不同的应用程序。多个应用程序分别在自已的时间片内访问CPU,从而造成微观上轮流运行,宏观上并发运行的多任务效果。
在单片机系统中引入多任务机制,可以有效改善程序结构,满足复杂系统的要求。任何多任务本质上都借助于中断机制。通用单片机中都允许使用中断,从而保证了在单片机系统中实现多任务的切实可行。而单片机运算能力的有限要求多任务调度算法必须简洁。
1 两种机制的比较
一个典型的单片机监控系统通常包括输入、输出控制,数据处理,显示以及键盘管理。在传统的单任务机制下,程序采用循环方式,其流程图如图1所示。
由流程可知,在单任务机制下,各功能模块按固定顺序构成一个整体,作为一个任务得到执行。而在实际应用中,各个模块要求的执行频率往往不一致,如输入采样频率可能要求很高,而单位时间内键盘扫描的次数则相对较少,系统这种复杂的定时要求在单任务机制下难以满足。另外在这种结构下程序一旦建立,各模块的执行顺序即已固定,对于需在运行时动态改变执行结构的系统,程序需用许多条件判断和分枝转移语句进行控制,增加了程序的复杂性。程序作为一个整体而存在可读性和可维护性很差,调试不便,对已有程序进行扩充,也需先了解整个程序结构,增加了扩充难度。
考虑到单片机完成的系统功能往往可以分解为若干相对独立的模块,我们可以将这些模块理解为子任务,并引进多任务机制进行管理,从而形成一种崭新的程序结构。其示意图如图2所示。
在这种结构下,各功能模块由系统调度程序启动执行完毕后返回系统调度程序,彼此处于等同地位,其执行顺序也比较灵活,且可在程序运行过程中动态地改变执行结构。各子任务的执行频率要求表现为它们的优先级,优先级越高的子任务单位时间内执行次数越多,从而其执行频率越高。各子任务在自已的时间片内运行,通过合理设计时间片大小和各任务的优先级,可以自然地满足系统内各种复杂的定时要求。
在多任务结构下程序的调试与维护也变得容易。程序以分立模块形式存在,各模块间功能独立,相互影响小,可以方便地单独调试,并寻找问题所在。对程序的扩充更为方便,不用更改原有结构,只需增加要扩充的部分即可。
相关文章
- 2023-04-12高精度光刻物镜的变形研究
- 2023-02-20光谱成像的原理、技术和生物医学应用
- 2023-08-02温湿度自补偿的高精度可燃气体探测报警系统的设计
- 2022-04-26智能化逆变电源系统中监控模块的抗干扰设计
- 2023-11-17基于POE供电的超声波风速风向仪设计原理
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。