积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式硬件 >> 相关文章
  相关分类: 相关文章 | ARM | 新产品 | 下载 | MIPS | X86 |
一种嵌入式微调度器的实现方法
 
作者:重庆邮电大学生 曾素华 蒋建春   来源:单片机与嵌入式系统应用    点击数:365   更新时间:2008-9-4
您可以添加到网摘 让更多人关注此文章:

        智能仪表是自动控制技术的重要组成部分。随着智能仪表在工业控制、通信和汽车电子中的广泛应用。

  智能仪表逐渐向数字化、网络化、智能化方向发展;同时,智能仪表复杂度不断增加,对实时性要求几乎达到了苛刻的程度。在编程方式和代码重复利用等方面,超循环方式的智能仪表越来越不能满足资源管理和系统的实时要求,迫切需要在中低端智能仪表中加入一些轻量级的多任务管理的调度器或实时操作系统。本文根据智能仪表嵌入式操作系统的特殊要求设计了一种新的任务调度算法,并实现了一个应用于中低端仪器仪表的嵌入式微调度器


  1 实时任务调度的一般方法和策略


  在实时操作系统中,系统把应用分为行为可以预知的、功能确定的多个任务。每个任务一般处于3种状态;执行状态、就绪状态和等待状态(有的操作系统还具有挂起和休眠状态)。为了满足实时性要求,系统根据一定的原则选择合适的任务执行。


  常见的任务调度算法分为静态算法和动态算法两类:


  ①静态算法:在系统在运行前(即系统初始化阶段),就为所有的任务分配固定的优先级别,在系统执行过程中优先级保持不变。当一个事件发生时,调度程序只需要查就绪表,就可以调度哪个任务处于运行状态。


  ②动态算法:在系统初始化时初步分配一个优先级。每一个任务在运行时可以改变它的优先级。


  当前的嵌入式操作系统一般采用静态算法,只在处理优先级反转时临时采用动态优先级算法。


  2 仪器仪表对调度算法的要求


  为了提高仪表的可靠性,实现高性能、多功能应用,应用于智能仪表的调度器必须满足以下要求:


  ①良好的实时性。智能仪表必须实时地对通过现场总线采集的数据进行数字编码,通过人机界面进行显示,并把用户对被监控系统的参数设置实时地传送给执行部件。


  ②基于优先级的任务调度策略。在复杂的大规模应用中需要使用大量的传感器、执行器和控制器等,对其数据显示和传输控制需要通过不同优先级的任务来控制。


  ③低消耗要求。随着应用环境的复杂化,对智能仪表的计算能力要求越来越高,势必要求调度器必须占用较少的系统资源。


  ④低成本要求。为了降低成本,在硬件设计上,存储器的大小是成本控制的一个方面。因此,要求提供的调度器必须具备小内核以减小存储空间。


  此外,还要求调度器必须有精确定时的功能,也就是事件驱动和时钟驱动相结合,以满足智能仪表中周期性任务执行和突发性任务执行的需要。


  3 嵌入式微调度器的设计与实现


  根据智能仪表调度算法实时性、多任务、低消耗的要求,本文提出了一种新的静态优先级,单任务队列、具有4种任务状态的非抢占式调度的轻量级任务调度算法,并根据这种算法实现了应用于智能仪表的调度器。该算法的特点是以任务在任务控制块数组中的相对位置表示优先级高低,任务的状态和延时量使用统一的任务状态字,在少量任务的轻量级应用中具有很好的时间和空间性能。


  3.1 任务的状态


  在本调度器中任务有4种状态:就绪状态、运行状态、等待状态和挂起状态。内存中的任务必须处于这4种状态之一。


  就绪状态:指任务运行的时间条件和资源条件都满足,等待调度算法选择最合适的任务进入就绪状态。任务一旦建立就处于就绪状态,这一点和μC/OS-II相同。


  运行状态:是当前时刻任务占有CPU资源正在运行的状态。本调度算法选择进入就绪任务队列中优先级最高的任务运行。任何时刻只能有一个任务处于运行状态。


  等待状态:如果任务需要等待一段时间才能运行,那么这个任务当前处于等待状态。使任务延迟一段时间可通过调用Os_TasK_Delay()函数实现。调度器在每个系统时钟节拍检查任务延迟时间,一旦任务定义的延迟时间到,就使任务进入就绪状态。


  挂起状态:正在运行的任务需要等待某一事件的发生,如果该事件没有发生那么任务就处于挂起状态。事件的发生可能来自另外一个任务,也可能来自中断服务程序。


  除此之外,系统还可能处在中断服务状态。这是一种特殊的运行状态,当系统响应中断时,正在执行的任务被挂起,中断服务程序控制了CPU的使用权,系统就进入中断服务状态。


  其中,空闲任务优先级最低,而且永远处于就绪状态,而且当所有的任务都在等待事件发生或者延迟时间结束时,操作系统就会执行空闲任务。


  3.2 调度器核心数据结构


  3.2.1 任务控制块和任务控制块列表


  任务控制块由任务堆栈、任务入口地址、任务状态字和任务优先级4个部分组成。任务堆栈用于保护被中断的现场数据;任务入口地址是指向任务程序的指针,用于指定任务所进行的操作;任务状态字用来表示任务当前的状态和延迟的时间间隔;任务优先级表示就绪列表中的哪个任务可以优先进入运行状态。


  在整个调度过程中使用一个全局的任务控制块数组来表示任务控制块列表。每个任务使用唯一一个任务控制块表示,任务的优先级通过任务控制块在任务控制块数组中的相对位置来表示。每个任务有且仅有一个优先级,所以任务的优先级也可以用任务的ID号来表示。任务控制块结构如下



[1] [2]  下一页



相关文章
· 存储巨头恒忆应对危机 拓展国内闪存市场[61]
· 一种易于移植和使用的文件系统FatFs Moule[160]
· 2008嵌入式设计调查:工程师时刻都在赶项目[86]
· S3C4480X平台上μC/OS-Ⅱ的中断系统设计[121]
· S3C4480X平台上μC/OS-Ⅱ的中断系统设计[298]
热门评论排行
·VHDL设计中电路简化问题的
·ARM嵌入式系统基础教程(N
·江苏嵌入式Linux教育培训
·ARM处理器应用开发4步骤
·锐极LINUX驱动培训班定于

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
台积电联电欲削减成本 强制
4G标准芯片受欢迎 多模W
全球芯片厂商集体削减开支 
德国一处理器架构开发商指控赛灵思和安
微型燃料电池2年商业化 续
陕西投资50亿元建立西安半导体产业园
富士通微电子推出同时支持MPEG-2
意法半导体(ST)与麻省理工学院微系
高效率 I2C 
新兴半导体技术催生绿色节能的大学校园
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
[原创]嵌入式凌动工控主板PV...
[转]教你如何进行电磁兼容设计...
[转]汽车和专业音响原厂设计原...
诺基亚,三星手机原厂图纸和PC...
电子元器件可靠性和失效分析经典...
[建议]FPGA设计技巧与实例...
Xilinx FPGA设计快速...
基于CPLD的各种设计实例和分...
教你如何学会MSP430单片机...
凌阳单片机教程(共8章)非常详...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网