第18卷第2期
四川文理学院学报(自然科学)
2008年3月
V01.1
8
No.2
Sichuan
University
of
Arts
and
Science
Journal
f
Natural
Science
Edition)
Mar.2008
5
1单片机多任务机制的实现策略研究
罗
江1,户永清2
(1.11t'Jll文理学院计算机科学系,四川达州635000;
2,四川文理学院物理与工程技术系,四川达州635000J
【摘要】从操作系统实现多任务机制的原理入手,分析了51单片机实现多任务机制的基本条件,论
述了5l单片机实现多任务控制的二种方案。
【关键词】5l单片机;多任务机制;时间片;中断
0
引言
【中图分类号]TP368.1
【文献标识码】A
【文章编号】1008—4886(2008)02-0082-03
5l单片机在微型智能控制系统中应用很广,随着人
们对控制系统的要求不断提高,5l单片机的功能局限越
发明显。特别是5l系列单片机不具有实时多任务支持功
能,大大限制其在控制系统中的进一步发展。【11而多任务
恰恰是现代操作系统的突出特点,将多任务机制引入5l
单片机系统,可以大大提高现有单片机系统的工作效率,
满足多任务要求。
1
多任务机制在51单片机上实现的原理
多任务要求系统在同一时间内执行多个任务,如果只
有一个处理器,计算机并不是真的在给定时间段内运行多
个程序,而是按时间片在各个程序间飞快地切换,由于切
换非常快,所以就有了在同一时间内运行多个程序的错觉
了。
就操作系统的特点来看,多任务系统不外乎两种方
式:协同式和抢占式。【21在一个协同式多任务系统中,每个
运行的程序都要负责释放CPU控制权以便别的程序能有
机会运行,不管是显式地(Explicitly)还是隐式地(Implicit-
ly)交出控制权。当一个程序因执行为某个目的而安排的
一个特殊的系统指令(如程序对磁盘绝对读写指令)时,
称它显式地放弃控制权;当它因为执行某条系统指令,而
该指令在执行时又会放弃CPU控制权(如操作系统虚拟
内存技术的页面切换)时,称它隐式地放弃控制权。
在抢占式多任务系统中,操作系统必须具有从任何一
个运行的程序上取走控制权和使另一个程序获得控制权
的能力。一个抢占式系统下运行的应用程序不用担心独
占系统,因为系统会合理地给每个运行的任务分配时间
片。将这种系统称做抢占式系统是因为它不管在所给时
间块内会发生什么事,都抢占运行程序的控制权。
5l单片机本身是单任务工作的,即程序只能按单一
的线索顺序执行,一个任务完成之后(除非中断),才能进
行下一个任务。但是,5l单片机内提供了11D与T1两个
16位的定时/计数器,若系统晶振为12MHz,那么计时器
最长可以计时65.536ms,最短为l炉。也即通过对定时器
工作模式进行设置,可以进行I炉一65.536ms的定时中
断。如果把定时中断用作时间片的分配,完全可以实现多
个任务分时轮换执行。口3同时,单片机还提供INT0与
INTl两个外部中断(可通过8259扩充为多级中断)和I】o、
P1、P2三个可编程的I/0端口,与定时器配合下,完全可
以实现具有优先权判别的多任务控制。
2
实现策略
2.1
通过定时器分配时间片实现多任务轮换执行
由于单片机内两个定时器可以同时工作,只要在一个
定时器内开启/关闭另一个定时器,定时器交替工作,就可
以实现更长时间的定时。两个16位定时器在不增加外部
计数单元的情况下,理论上可以实现1/xs一4.29s之间的
定时。但是由于中断和初始化设置等需要消耗单片机时
间,所以单纯使用定时器产生的最长时间片比理论值短一
些。【4
o这对于单片机内部的任务轮换来说已经足够了。
·【收稿日期】200r7—09-20
【基金项目】四川省教育厅资助科研项目<基于多任务机制的51单片机在微型智能控制系统中的应用研究)(项11编
号:20068089)成果之一
【作者简介】罗江(1978一),男,四川南江人,讲师,硕士,主要从事计算机教学与研究。
82
万方数据