嵌入式操作系统μC/OS-Ⅱ在数控系统中的应用

栏目:茶油

更新时间:2021-05-31

浏览: 44901

嵌入式操作系统μC/OS-Ⅱ在数控系统中的应用

产品简介

嵌入式操作系统C/OS-Ⅱ是一个可剪裁、源码对外开放、结构小巧、先行式的动态多任务内核,主要面向中小型嵌入式系统,具备继续执行效率高,占用空间小,可移植性强劲,动态性能优良和可扩展性强劲等特点。

产品介绍

本文摘要:嵌入式操作系统C/OS-Ⅱ是一个可剪裁、源码对外开放、结构小巧、先行式的动态多任务内核,主要面向中小型嵌入式系统,具备继续执行效率高,占用空间小,可移植性强劲,动态性能优良和可扩展性强劲等特点。

KOKapp官网下载

嵌入式操作系统C/OS-Ⅱ是一个可剪裁、源码对外开放、结构小巧、先行式的动态多任务内核,主要面向中小型嵌入式系统,具备继续执行效率高,占用空间小,可移植性强劲,动态性能优良和可扩展性强劲等特点。数控系统是一个典型的强劲实时性系统,具备可确定性。

可确定性主要是保证条件经常出现到由此引发的动作开始(或者完结)的时间在一个精确的时段内。在数控系统中,条件是由操作员的指令(如:应急暂停、移动x轴等)或是机床的状态(如刀具损坏等)引发的。本文分析了数控系统任务的特点,融合C/OS-Ⅱ的内核体系,对C/OS-Ⅱ的任务分类、任务调度和中断服务策略做到了改良,使其更为适合于数控系统的应用于。

  1C/OS-Ⅱ对任务的分类  C/OS-Ⅱ中每个任务有5种状态:休眠状态(DORMANT)、准备就绪(READY)、运营(RUNNING)、等候(WAITING)、中断(ISR)。休眠状态的任务待命在存储器中,还并未被内核用于;准备就绪状态的任务打算继续执行,优先级高于当前继续执行的任务,没获得CPU控制权;任务获得CPU控制权后就正处于运营状态;等候事件再次发生的任务正处于等候状态,事件可以是I/O操作者已完成、共享资源可以利用、时钟周期到等;任务继续执行过程被中断服务例程中断,任务就正处于中断状态。  2C/OS-Ⅱ面向数控系统的改良  2.1数控系统任务的特点  在数控系统中,任务可分成两种:周期运营的任务和信号启动时运营的任务,这里所说的信号即还包括硬件信号,也还包括软件信号。

KOKapp官网下载

周期运营的任务有定点信号取样、定点I/O口扫瞄、定点通信等。信号启动时运营的任务有中断信号(硬件信号)启动时的中断服务任务,命令消息信号(软件信号)启动时的命令说明任务等。另外,数控系统中,有些任务还具备运行时间较短,运营频率低,拒绝实时性低的特点,如信号取样、数控机床中的插补掌控等。

  2.2改良后的任务区分  在改良后的嵌入式操作系统中任务分成两类:普通任务和守住式任务。普通任务指通过操作系统调度器调度运营的任务,调度方法如图1右图;守住式任务指那些不通过调度器调度运营,而是在中断处置中必要运营的任务。下面详尽解释这两种任务。

  2.2.1普通任务  根据数控系统任务多为周期任务和信号启动时任务这一特点,将普通任务分成两种:定点运营的周期任务(全称周期任务)和信号启动时运营的随机任务(全称随机任务)。适当的,任务状态被区分为6种:运营态、准备就绪态、等候态、暂停态、悬挂起态和中断态。图1为改良后的任务状态转换图。

  在这六种状态中,运营态、准备就绪态和中断态对应C/OS-Ⅱ的READY,RUNNING和ISR;悬挂态是任务在继续执行已完成前,因等候某事件或资源而不得不暂停运营,等候事件或资源来临的状态;等候态是周期任务已完成一次运营,等候运营周期到再度运营时的状态;暂停态是随机任务等候其启动时信号的状态。这里去除了休眠状态态,即没任务的移除,所有的任务一旦创建,在系统运营期间仍然不存在。这样的处置是因为在数控系统应用于中,所有创建的任务一定是简单的,即在系统运营期间一定会被继续执行,多余的代码和任务会被加到。在C/OS-Ⅱ中,原作每个任务都是一个无限的循环,即任务函数誓言回到,这样做到是不适合的。

KOKapp官网下载

该操作系统容许任务函数回到,回到后调用函数OSTaskEndDeal(),该函数根据任务的类别,把周期任务放进等候队列,把随机任务放进暂停队列。  2.2.2守住式任务  守住式任务为继续执行时间较短且继续执行频率低于OS系统时钟频率(如信号取样),或动态拒绝低(如数控机床中的插补掌控)的任务。

调度任务时间(主要是任务转换所花费的时间)往往比这类任务运营一次的时间还多,这似乎是不合理的,守住式任务正是为解决问题这种不合理而设计的。守住式任务不通过OS调度器调度运营,也不使用TCB(任务掌控块)标识它们,而是在它们的中断启动时信号抵达时,在中断中_必要处置,这样做到节省了调度、任务转换的时间。但是,由于守住式任务没TCB,也就没适当的任务堆栈,所以守住式任务在用于资源上要特别注意:一定要用于独立国家的资源。

这样既可以使守住式任务长时间运营,又可以防止守住式任务对被中断程序的环境导致毁坏。具体办法如下:  (1)专用寄存器组。

若处理程序中用于了寄存器,则为其分配专用的寄存器组,这样也省却了留存/完全恢复寄存器的时间消耗。  (2)全局变量。因为函数内部的局部变量是分配在堆栈中的,必要处理方式不构成任务,没自己的堆栈,如果用于局部变量,其局部变量不会分配在被中断任务的堆栈内,所以在该方式下任务不应用于全局变量。

KOKapp

用户在设计守住式任务时要有一定容许,否则不会影响系统的响应时间。明确容许如下:第一,数量无法过于多,最差大于相等3个;第二,必需是继续执行时间较短,继续执行频率低的任务才能被划为守住式任务。


本文关键词:KOKapp,KOKapp官网下载

本文来源:KOKapp-www.txj360.com