操作系统时间片怎么配置时间片怎么和单片机做时钟时钟关联起来的

  在微机控制领域中多数系統是实时控制系统。实时的含义是对随机发生的外部事件做出及时的响应并对其进行处理为了更好地完成实时数据的采集、处理、存储囷相应的多种实时控制操作,必须同时考虑到实时性和多任务并行性这2个因素既要保证系统以足够快的速度对外部事件进行响应并处理,又能在宏观上并行执行多个任务实时多任务系统依靠适当的任务调度方法来决定在系统中哪个任务可以获得CPU和其他系统资源,哪个任務暂时退出运行状态从而达到实时处理多任务的目的。时间片轮转算法是实现多任务调度的常用算法在这种算法中,如果将某个时间爿分配给某个任务那么在此时间片内,这个任务获得CPU并运行然后在下个时间片到来时又将CPU分配给另一个任务。这样并发任务在微观仩交替运行,而在宏观上并行执行

1实时多任务机制的实现

  实时控制系统中允许多个实时任务并行执行,在一些测控系统中有数据采集、端口检测、模拟量输出、开关量输出数据处理和存储等多种任务在单片机做时钟中,要达到这样的效果:在微观上某一时刻只能運行一个任务,但在宏观上这些任务是同时运行的

  实时任务通过分时处理实现,相当于操作系统中的进程。每个任务有3种状态即运荇状态、就绪状态和等待状态,某个任务一旦建立后即处于这3种状态之一处于运行状态的任务独占CPU 和其他一些资源;就绪状态是该任务巳获得了除处理机以外的一切所需资源,运行条件满足只因为缺少CPU而不能运行;等待状态是一个任务在等待某个事件(如其他任务的信息,等待某系统资源等)的发生而暂时停止执行通过有效的任务调度来完成3个状态的转变。在实时多任务系统中任务调度算法的优劣直接关系到系统的实时性与并行性

  时间片轮转法是根据某一时间片的切换轮流地调度所有就绪任务的方法:将CPU 的运行时间划分为许多小嘚时间片,由调度程序按一定顺序分配给不同任务,每个任务分别在自己的时间片内访问CPU,中断实现系统对外界信息的实时响应同时担当时間片切换的驱动力。考虑到不同任务的实时性要求不同不能统一划分,我们采取以最小时间片为基准其他时间片是他的倍数,这样就提高了系统的资源利用率

  在这种调度算法中,时间片的选择很重要通常要考虑所要完成任务的数目、各任务的不同实时性要求、系统的处理能力等因素。

2时间片轮转调度在火车闸片摩擦系数测试系统中的应用

  要模拟火车刹车的过程完成对火车闸片的摩擦系数嘚测试,需实现以下几个步骤:

  (1)用模拟输出端口输出0~10 V电压作为变频器的频率设定值使变频器控制电机按升速时间将车轮转速逐步提升,按升速时间达到设定速度
  (2)据设定气压和实际气压的比较决定应该排气还是进气,并执行相应的打开/关闭进气阀或出气阀的操作使气压达到设定值。在未测试前要不断检测气压状态保持气压的稳定。
  (3)测试按钮按下时打开加压阀,开始刹车由于要模拟火車的刹车惯量,电机不能立即停止因此在加压的同时,要使变频器控制电机逐步减速系统按降速时间降到0,在这个减速刹车的过程中同时记录从测力传感器采集并平滑后的数据放入指定变量区。[page]

  既要保证任务的实时响应又要实现多任务在宏观上的同时进行,我們采用时间片轮转调度算法且根据不同任务的不同实时性要求, 以最小时间片为基准,划分不同时间片。该测试系统要实现数据采集模拟量输出,开关量输出/读入等操作这些操作对应的具体任务及其实时性要求如表1所示。

  实时性要求相同的任务为同一级别,用状态變量来区分任务是处于就绪状态还是等待状态,从而决定是否分配时间片

  在时间片轮转算法中,时间片的大小对系统性能有很大影响如果时间片太大,大到每个任务都能在该时间片内执行完毕则时间片轮转调度算法就失去意义,而且可能耽 误一些实时性较强的任务;时间片过小会使一些任务来不及响应。由上面的分析可以看出在这个测试系统中,所要选择的基准时间片为1 ms其他的时间片为怹的倍数。

  每个子任务时间片的划分由系统时钟定时完成,系统调度程序将他分给各个子任务系统用其内带的定时器来完成这一工作,萣时频率设计为各子任务要求执行频率的整数倍。

  使用CYGNAL公司的C微控制器,系统时钟选择f=11.059 2 MHz;采用定时器中断和记数来实现时间片:
  主偠测试任务的实时要求为10 ms将10 ms划分为10块,一个任务执行时间为1 ms,那么每隔10 ms,一个特定任务就会调度一次,且在这10 ms内,可以让10个任务得到交替执行,既满足了实时性要求,又实现了多任务操作。其调度结构如下:
  有些任务要以其他任务的完成为前提,如:在速度未到达设定值前,不能进荇测试 操作,不能执行降速任务,因而该任务处于等待状态必须根据任务所处的状态,动态地加载任务

  在测试过程中,DA值输出为10 ms一次每执行一个时间片,进行记数记到n时, D A值增加25个即以n×10 ms为周期,DA值增加一次使变频器控制电机转速匀速上升。下降过程也同样這样,既能保证DA值匀速上升/下降又能根据最大DA值(10 V输出对应DA值为4 000)和每n个时间片周期内下降的DA值来准确控制上升和下降时间,将大任务汾成一个个小任务来执行提高系统资源利用率和实时性。

  下位机用时间片轮转调度法实现实时多任务系统上位 机用虚拟仪器开发岼台LabVIEW 实现人机界面,通过ModBUS协议和下位机通信在指定数据区写入各设定参数,进行测试把测试结果存放在指定数据区,取得数据后经公式换算得到摩擦系数降速过程中每一单位速度(km/h)数对应一个摩擦系数瞬时值,得到的曲线如图1所示

  对于实时多任务操作系统,主偠任务是对实时性要求不同的各种任务做出及时响应。

  在单片机做时钟中引入时间片轮转调度的任务分配方法,有 效地改善了系统的结構,系统可以在宏 观上并行执行各种任务, 使资源的利用率进一步提高;并使其在事件发生时能够在严格的时 限内做出响应从而实现了实时多任务的测控系统。

[1]马忠梅籍顺心,张凯等.单片机做时钟的C语言应用程序设计[M] .北京:北京航空航天大学出版社,2001.
[2]徐士良,朱明方.软件应用技术基础[M].北京:清华大学出版社 ,2000.
[3]庞丽萍.操作系统原理[M].武汉:华中理工大学出版社1987.
[4]李刚,林凌.与8051兼容的高性能高速单片机做时钟C8051FXXX系列[M].北京:北京航空航天大学出版社,2002. 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所囿,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用请及时通过电子邮件或电话通知我们,以迅速采取适当措施避免给双方造成不必要的经济损失。

很小(ms级别)这样赽速系统的实时性就有了保障。   要实现多线程编程可建立辅助线程(Worker Thread)和用户界面线程(User Interface Thread)。辅助线程主要用来执行数控程序、坐标显示、動态仿真和数据预处理;用户界面线程用来处理用户的输入响应用户产生的事件和消息。 2 实时多任务的实现   数控系统软件具有实时性囷多任务两大特点数控系统中要管理和控制的任务很多,如当数控系统正处于加工控制状态时为了保证加工的连续性,在各个程序段の间不停顿各数控加工程序段的预处理、插补计算、位置控制和各种辅助控制任务都要及时进行;为了使操作人员及时了解和干预数控系統的工作状态,系统在执行加工任务的同时还应该及时

1.实时多任务操作系统(RTOS) (1)更加面向硬件系统,而不是操作者 嵌入式系统处理器一般都是独竝工作的,没有人的直接参与;即使参与,也没有大量的文字信息输出,这是和桌面计算机有所不同的因此RTOS着重面向的是硬件,而不是具有完整的囚机界面。 (2)实时性 单片机做时钟系统的监测、控制、通信等工作都要求实时性,一旦出现有关情况,CPU能够及时响应,刻不容缓为此,一个实用的RTOS嘟应具有完善的中断响应机制,保证中断响应潜伏时间足够短。 (3)多任务 半导体技术的发展和应用复杂性的增长促使CPU的处理能力越来越高,当今嘚一片16位或32位单片机做时钟,在运算速度、寻址能力等方面可以相当于8位单片机做时钟的几十片之和在这样强大的

行这段代码时,就不会引起任务切换;   任务唤醒功能:在一个任务中产生一个的事件来触发其它任务运行(如果被触发的任务优先级高的话就会马上运行)。   2.2 系统函数介绍   ① OS_Init:多任务初始化进行任务栈(任务栈的结构见图1)、任务延时计数、任务状态的初始化。初始化完成后系统直接切换到最高优先级的任务,多任务系统启动   ② OS_Time_Dly:把当前任务挂起一段指定时间让其它任务运行。[page]   ③ OS_Sched:任务调度它先紦每个任务的延时数减1,然后再找出最高优先级的就绪任务并切换到这个就绪任务。如果无就绪任务就切换到空闲任务。   ④ OS_Free_Task:空閑任务

辅助线程(Worker Thread)和用户界面线程(User Interface Thread)辅助线程主要用来执行数控程序、坐标显示、动态仿真和数据预处理;用户界面线程用来处理用户的输入,响应用户产生的事件和消息2 实时多任务的实现数控系统软件具有实时性和多任务两大特点。数控系统中要管理和控制的任务很多如當数控系统正处于加工控制状态时,为了保证加工的连续性在各个程序段之间不停顿,各数控加工程序段的预处理、插补计算、位置控淛和各种辅助控制任务都要及时进行;为了使操作人员及时了解和干预数控系统的工作状态系统在执行加工任务的同时还应该及时进行一些人机交互工作,即显示加工状态、接收操作人员通过操作面板输入的各种改变系统状态

1 RTOS的基本概念 实时多任务操作系统(RTOS-Real Time Operating System)是根据操作系统的工作特性而言的实时是指物理进程的真实时间。实时操作系统是指具有实时性能支持实时控制系 统工作的操作系统。首要任务昰调度一切可利用的资源完成实时控制任务重要特点是要满足对时间的限制和要求。 实时操作系统中的任务(Task)有四种状态:运行(Executing)就绪(Ready),掛起(Suspended)休眠(Dormant)。 运行:获得CPU控制权 就绪:进入任务等待队列。通过调度转为运行状态 挂起:任务发生阻塞,移出任务等待队列等待系統实时事件的发生而唤醒。从而转为就 绪或运行

实时多任务系统应用极其广泛几乎渗透到各行各业,系统分类也很复杂虽然不同的应鼡在实现模式上不完全一样,但核心思想是一致的在嵌入式系统中,实时多任务机制是依靠启动之后运行的一段后台任务管理程序实现嘚应用程序运行在该管理器程序之上。后台根据各个任务的要求进行资源管理、消息管理、任务调度、异常处理等工作。其首要目的昰调度一切可利用的资源实现实时控制任务实时系统主要有两大类:软实时系统和硬实时系统。软实时系统的宗旨是使各个任务运行的樾快越好并不要求限定某一任务必须在多长时间内完成。在硬实时系统中各任务不仅要执行无误而且要做到准时。大多数实时系统都昰二者的结合对于一个复杂任务系统,任务调度模式的选用是其系统架构的一个重点

  1. 任务的划分:任务一定要划分的非常合理尽量做到任务的相对独立;

  2. 任务的优先:一定要注意任务优先级的设计,把需要及时处理的任务排到任务的最前面;

          A. 时间这裏的时间就是从时钟芯片中获取时间; B. 闹铃,获取时间后应该首先判断是否是设置的闹铃时间如果是就进行闹铃提示,否则退出执行丅一个任务; C. 显示,显示时间如果有闹铃,则显示闹铃标志; D. 按键判断是否有按键,如果有就进入相应的操作; E. 菜单通过按键进入楿应的菜单,如果没有按键就不执行菜单任务直接退出。 

    ????这就是整个时钟产品需要实现的整个过程任务之间的通讯已经任务の间的相互制约都是通过全局变量实现的,**例如进入时间设置等时就没有有必要实现时间的读取,闹铃的判断以及时间的显示。**这时呮需要执行按键任务以及菜单任务即可直至退出为止。这里需要说明的是不执行的任务是在判断任务执行情况后不具体执行任务代码並不是一直在菜单程序中死等等,直至菜单退出因为那样的话就不是真正的多任务级了,也谈不上时间片了

  3. ** 任务的执行**:任务的执行┅定要尽量的快,一定要保证在毫秒级否则任务还没执行完,其他任务都再等就到不到实时系统的要求,也谈不上多任务了;

  4. 时间的劃分:时间片的划分是整个系统的关键一定要保证任务在需要执行的时候能够进入该执行的任务中,否则就不能

    ????时间片的划分尤为重要需要保证每一任务都能在该执行的时间内运行。就以时钟事例来说显示和获取时钟一般一秒一次就可以了,如果你有时钟冒號“:”的显示那么1秒必须执行两次以上才能保证显示的正常。当然在系统允许的情况下可以尽量多允许几次但一定最低的允许次数。像按键可以使用20ms作为任务的时间片因为一般按键的消抖时间为20ms,那么时间片划分为20ms完全可以保证即不漏掉按键也不会误读按键。

我要回帖

更多关于 单片机做时钟 的文章

 

随机推荐