资源描述:
《单片机分时多任务》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第17卷第1期湖 北 工 学 院 学 报2002年3月Vol.17No.1JournalofHubeiPolytechnicUniversityMar.2002[文章编号]1003-4684(2002)03-0004-04一种基于分时操作系统原理的单片机控制系统杨光友,张道德,周国柱,张建钢(湖北工学院机械工程系,湖北武汉430068)[摘 要]利用WINDOWS消息驱动机制实现对任务的调度,并给出一种基于分时操作系统原理的单片机多任务控制,系统应用实例1[关键词]分时操作系统;单片机系统;消息;多任务机制;任务调度[中图分类号]T
2、P38611[文献标识码]:A[1] 所谓分时技术,就是将处理机的运行时间划能是将实时任务转为非实时的消息和数据1比如串分成很短时间片,按时间片依次轮流把处理机分配口通信,接收到数据后,可只处理必须的数据,再产给各个用户使用1分时操作系统的原理和特点使单生消息,让通信模块对其处理1片机控制系统实现多任务控制成为可能1在单片机系统任务模块的划分与系统功能密切相关,系的控制系统中,可将系统机中的作业概念转化为单统功能分解到任务模块1系统功能分解即任务模块片机控制系统中的任务,每一个时间片对应一个任的划分,模块划分应注意以下几个问题:务
3、模块,从而形成微观上轮流运行,宏观上并发运行1) 任务模块应保证在系统时间片内执行完的多任务效果1由于控制系统中每个任务占用处理毕1在任务模块内尽量不用软件延时1如在动态显机的运行时间可以根据系统应用场合估算,这样通示模块设计中每位显示间要求有(1~2)ms左右的过合理的时间片划分,可以实现单片机控制系统的延时来保证显示稳定,若采用一次将所有位全部显实时多任务控制1示一遍,显示模块执行时间将会很长,可以采用一次只显示一位的方法1此外也可采用8279可编程器1 系统任务模块的划分件来完成,使显示更为简洁1当然,哪些功能留给硬件完成,哪
4、些功能留给软件完成,应根据具体系统综在单片机系统中,实现分时多任务机制关键在合考虑1于合理地将系统的功能分解成各个任务模块,且任2) 设计中若不可避免出现某一功能的执行时务模块分得越细系统的实时性就越好1单片机系统间过长而不能在系统时间片内执行完毕的情况下,由定时器产生系统时间片,由系统调度程序将时间可采用两种方法解决:片分配给各任务模块1系统任务模块可分为功能模一是将模块任务分别安排在两相邻时间片内执块和实时模块1行,两模块通过内部产生消息联结;二是和处理实时功能模块是在程序中可独立运行的模块,如输性要求很高的外部中断的方法一样改
5、由专用CPU入、输出、数据处理、显示、键盘扫描、模糊控制系统处理1中的模糊推理等任务模块1其特点是模块的内部结3) 各任务模块在功能上应尽量相互独立,以构是没有停留的,每次进入模块只执行模块中的当保证程序调试和维护的方便1前时刻的代码部分,模块内部不存在延时1在给定4) 功能互斥的模块放在一个时间片1这样既时间片内的模块内部也可有子任务模块,与时间片有效地利用时间片,又起到互斥作用1大小的划分有关1由于系统是以分时原理设计的,每个任务模块实时模块是执行实时任务功能的模块,主要功在给定的时间片完成预定的任务,每个任务模块的[收稿日期]
6、2001-09-20[作者简介]杨光友(1962-),男,湖北武汉人,湖北工学院副教授,研究方向:机电一体化技术、智能检测与控制1©1995-2006TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved. 第17卷第1期 杨光友等 一种基于分时操作系统原理的单片机控制系统5执行是在有消息的前提下在相应的时间片内完成基于分时系统原理的单片机系统还可采用以下的1模块的执行时间很短,代码的独立性强,每个任两种方法处理随机事件和实时性要求很高的外部中务完成后即返回调度程序
7、,因此模块的重用性很好,断:并且避免了代码重入导致堆栈溢出的危险11) 直接接收外部中断,并做相应处理1当然由于系统采用模块结构,因而系统结构清晰,配要求尽可能短地占用CPU执行的时间1但仍有可置灵活,调试与维护方便1对程序的扩充更为方便,能使后续模块执行的时间稍有延迟1如系统不能接不用更改原有结构,只需增加要扩充的模块即可1受这种延迟可采用方法212) 将实时性要求很高的外部中断改由从2 任务模块的调度CPU处理1主CPU在通信时间片内定时与从机通讯,并根据从机发来的消息进行相应处理1在单片机控制系统中分时多任务机制的实现是由调度
8、程序完成的,调度程序在每个时间片的开始4 分时单片机多任务控制系统的模型取得控制1这里借鉴Windows面向对象编程的原理,在单片机编程中引入消息的概念,将模块的执行由于分时系统的特点,必须给系统提供一个时条件转化为消息1消息定义为: