μC/OS-II的实时系统加速模块设计

发布者:书卷气息最新更新时间:2013-10-15 来源: eefocus关键字:μCOS-II  实时系统  加速模块 手机看文章 扫描二维码
随时随地手机看文章
随着科技的进步,嵌入式系统的功能逐渐由简单向复杂发展,开发难度也随之提高。嵌入式操作系统的使用,屏蔽了部分硬件信息,提供给开发者统一的平台,降低了开发难度,提高了代码的重复利用率。在一些特殊的领域(医疗、汽车、航空航天),对嵌入式系统的实时性要求非常高。在这些场合,任务必须在给定的时间内响应并正确完成。而实时操作系统RTOS(Real Time OperatiON System)本身的运行,必然会引起性能的下降,在任务数量增加时,这种下降更加明显。例如,使用uC/OS-II实时操作系统在PowerPC处理器上运行,在TimeTick(时钟节拍)周期为10 ?滋s、运行64个任务的情况下,TimeTick中断函数占用的CPU时间已达到42%[1]。

目前,RTOS软件层面的研究已经很成熟,可有效提高RTOS性能的方法有以下几种:

(1)提高处理器的运行频率[2]。这对功耗相当敏感的嵌入式系统并不是好方法。同时高频时钟所引起的电磁干扰对电路板布线的要求也更高;

(2)设计专用于RTOS系统服务的硬件。硬件对相同的操作可并行处理。如果设计一种硬件,在任务数量或TimeTick频率增加的情况下,系统也能在固定的时钟周期内完成所有任务域的更新,从而降低RTOS运行所占的CPU时间。

本文设计了实时系统加速RTA(Real-Time Acceleration)模块,对任务调度和系统时间管理进行硬件化,降低了任务中断时间,并对最终的测量数据进行对比,得出结论。

1 RTA的硬件设计

本文的硬件平台使用OR1200[3] CPU,它是一款由OpenCores网站维护的开放源代码CPU,内部结构可见可修改,且没有版权问题。RTA模块作为从设备连接到Wishbone总线[4]上。在RTA模块中,由硬件实现任务管理和时间管理。RTA中的寄存器全部映射到内存空间上,软件通过对寄存器的访问来控制RTA模块的运行。
该专用硬件可分成如下两部分:

(1)任务管理和时间管理部分。RTA模块支持64个任务,使用基于优先级的调度策略,每个任务有唯一的优先级。RTA只在需要任务切换时才中断CPU。时间延时的最小单位是TimeTick(时钟节拍),最长时间延时可达65 535个TimeTick;

(2)用于产生TimeTick信号的Timer(计时器)。RTA必须有独立的Timer为其产生TimeTick信号。在本文中,利用OR1200自带的Timer完成此工作。

本文使用的系统是在μC/OS-II实时操作系统基础上改进实现的。该RTOS由Micrium网站维护,已经应用于商业产品[5]。整个软硬件的实现在FPGA开发板DE2-70上完成,系统时钟频率为25 MHz。

1.1 任务管理和时间管理

任务管理和时间管理的设计框图如图1所示。

每个任务都有4个域:TaskValid、OSTCBStat、OSTCBDly和OSTCBStatPend。每个任务都有一个任务就绪标志TaskReady,RTA通过PrioBitmapToBinary模块找到最高的优先级并送给HighestPrio。在CPU响应外部中断或者给调度器上锁时,可以通过OSIntNesting和OSLockNesting寄存器关闭RTA的中断。

μC/OS-II实时系统内核中,任务调度基于TimeTick完成,由于程序只能顺序执行,任务的timedly域更新也是顺序执行的,从而使得调度函数的执行时间与运行的任务数量有关。在RTA模块中,基于TimeTick的调度机制并没有改变,只是原型中顺序执行的timedly更新,在硬件中可以同时执行。在使用RTA模块的系统中,移去了软件中的用于任务调度的数据结构,相应地在硬件中予以实现。[page]

当有更高优先级的任务进入就绪态时,就会产生RTA中断。硬件实现上,当进入就绪态的上个时钟周期的最高优先级和本时刻的最高优先级不同时,便产生中断信号。在μC/OS-II中,每个TimeTick时刻都会发生中断,这就需要更频繁地保存CPU寄存器,相比本文提出的方法,浪费了更多的CPU时间。

1.2 TimeTick信号的产生

RTA的运行需要一个可配置的Timer来为其产生TimeTick信号。在本文中,通过对OR1200进行改造,利用其内部的Timer产生中断信号作为RTA任务调度的标准时钟节拍,而将RTA的中断信号连接到原来Timer在CPU的接口处。这样,CPU通过Wishbone总线可对Timer进行读写,且RTA产生的中断不会占用可编程中断控制器PIC(Programmable Interrupt Controller)。改造后的框图如图2所示。


1.3 软件实现

因为任务数据结构的改变,源码中所有涉及到任务数据结构的函数都要进行修改。由于任务调度和时间处理由RTA模块执行,原先执行TimeTick的中断函数要作相应修改,在中断时,只需读取RTA中HighestPrio寄存器,然后做上下文切换,运行该优先级的任务即可。

2 实验结果

本实验使用的CPU为OR1200,CPU和所有的外设都通过Wishbone总线连接,系统时钟为25 MHz。在Altera的Cyclone II FPGA平台上,使用Quartus8.1工具对RTA进行布局布线,其共占用4 197个逻辑单元LE(Logic Element)。

任务响应时间是RTOS性能的一个重要指标,其定义为:从任务中断产生的时刻起,到恢复任务执行之间的时间。试验中,利用自定义的Timer作为测量标尺,在2个测试点各读取一次,相减后的数值再乘以此Timer的周期,便得到该段测试时间。图3是有硬件加速和无硬件加速的任务响应时间的测试结果,单位是系统时钟周期。

从图中3可以看出,在无硬件支持的RTOS中,随着任务数的增加,任务响应时间也随之呈线性增加。其原因是,程序顺序执行,在无硬件加速的情况下,RTOS内核在每个TimeTick中断都要对任务的延时域进行顺序更新。随着任务的增加,延时域的处理时间也增长。有硬件加速支持时,任务响应时间缩短,而且与正在运行的任务数量没有关系。这是因为所有任务的延时域都同时更新,在一个时钟周期内即可全部完成。所以使用RTA模块后,降低了系统本身占用CPU的时间,提高了系统的可预测性。可见,在添加RTA模块后RTOS的性能得到了提高。

本文将μC/OS-II系统中调用频繁的任务调度和时间管理采用硬件实现,达到了降低系统负载、稳定任务响应时间、提高系统可预测性的目的。实验结果表明,使用本硬件,任务中断响应时间可降低85.8%。

关键字:μCOS-II  实时系统  加速模块 引用地址:μC/OS-II的实时系统加速模块设计

上一篇:嵌入式系统接口应用中的隔离技术及其设计
下一篇:嵌入式系统结构与协同性探讨

推荐阅读最新更新时间:2024-03-16 13:28

嵌入式实时操作系统μC/OS-II及其应用
早在上世纪六十年代,就已经有人开始研究和开发嵌入式操作系统。但直到最近,它才在国内被越来越多的提及。其在通信、电子、自动化等需要实时处理的领域所日益显现的重要性吸引了人们越来越多的注意力。针对国内大部分用户使用的51系列的8位处理器,我们可以选择μC/OS-II 。 μC/OS-II是由Labrosse先生编写的一个开放式的内核,它最主要的特点就是源码公开的自由软件。这一点对于用户来说可谓利弊各半;好处在于,一方面它是免费的;另一方面用户可以根据自己的需要对它进行修改。坏处在于,它缺乏必要的支持。它没有功能强大的软件包,用户通常得自己编写驱动程序,特别当用户使用的是不太常用的单片机,还必须自己编写移植程序。   μC/OS-I
[嵌入式]
FPGA作为协处理器在实时系统中的应用
    摘 要: 通过对实时系统中采用软硬件设计优缺点的比较,提出使用FPGA作为协处理器来提高系统整体性能的观点,并且通过介绍直线提取中的相位编组算法的实现作为具体实例,进一步阐述FPGA作为协处理器的结构特点及设计原则。     关键词: FPGA 协处理器 实时性 直线提取     实时系统一般都不是通用的,往往是针对具体的任务而设计的。软件编程的优点是设计调试灵活。无论多复杂的任务,只要给出算法,我们一定能够通过软件编程的方式来实现,而且调试、修改都容易得多。缺点是执行指令的效率不高,单CPU只能串行地执行指令(多CPU方案确实是克服这一缺点的有效办法,但是大大增加了软硬件的复杂度)。对于
[半导体设计/制造]
基于移动机器人无线实时反馈控制系统的设计
机器人技术是当今科学技术发展的前沿学科。移动机器人是机器人研究领域中的一个重要分支,它集人工智能、控制理论、信息处理、图像处理等专业技术于一体,跨计算机、自动控制、通信、机械、电子等多学科,成为当前智能机器人研究的重点之一。如何方便、快捷、廉价地控制移动机器人,己经成为机器人技术的一个突出问题。在当前的控制领域中,无线控制技术已经成为一种重要而便利的控制技术。美国、日本、德国以及包括中国在内的很多国家都对机器人的无线控制技术这一课题进行了研究并取得了一定的成果。本文研究的重点是无线反馈控制系统的设计,通过PC机、无线通信模块和机器人构成的反馈系统,成功地实现了PC机对机器人的无线实时反馈控制 。 1 机器人平台 本实验所采用的移动
[单片机]
基于移动机器人无线<font color='red'>实时</font>反馈控制<font color='red'>系统</font>的设计
普利司通合作微软研发轮胎损伤监测系统实时感知轮胎损伤情况
据外媒报道,全球最大的轮胎和橡胶制造商普利司通(Bridgestone)宣布,其正与微软合作研发全球首个能够实时探测轮胎损伤问题的检测系统。与轮胎损伤有关的问题非常严重,在因技术问题导致的交通事故中,轮胎问题占30%。 (图片来源:普利司通) 主要有四种形式的轮胎问题:胎压不足、疲劳、磨损不规则,以及因路沿、坑洞或路上的物品导致轮胎损坏。幸运的是,此类问题中的大多数已经能够得以被可靠地减轻。自2012年以来,所有新车都被强制需要安装TPMS(胎压监测系统),以帮助驾驶员避开轮胎压力不足的问题。而定时保养和及时更换轮胎,也可以防止轮胎磨损和疲劳的问题。 因此,只有轮胎损伤属于例外,是一个安全漏洞,如果不是仔细的人工检查
[汽车电子]
普利司通合作微软研发轮胎损伤监测<font color='red'>系统</font> 可<font color='red'>实时</font>感知轮胎损伤情况
Linux在嵌入式系统中有关进程调度算法的实时性改进
引    言 Linux 作为一种通用的操作系统,它最初的设计是用于桌面系统或者小型服务器。 要将Linux 用于嵌入式系统中,需要对Linux 内核作一些改进,使它能更好地为嵌入式系统服务。 在这些改进中,进程管理是相当重要的一块。  嵌入式系统的硬件设备与普通PC 有较大的差别。 由于要节省成本、降低功耗,嵌入式系统的CPU 可能不带MMU ,使用的存储设备ROM、Flach 、RAM 的容量较小,这些因素决定了需要改变Linux 进程管理,来适应存储系统方面的变化。进程管理中另一个与嵌入式系统密切相关的方面就是实时性了。尽管不是所有的嵌入式系统都需要具有实时能力,但实时性确实是嵌入式系统最重要的特点之一。 两者的关系如图1
[嵌入式]
嵌入式实时操作系统Salvo的内核分析与配置
摘要:简要介绍Salvo的基本特点;详细分析Salvo的内核管理、运行机制;深入探讨Salvo用户目标代码的生成与配置,并给出不同用户目标代码生成方式下的用户目标代码生成流程。 关键词:嵌入式操作系统 Salvo 内核分析 任务控制块 配置 引言 目前电子产品开发广泛采用以微处理器为核心的电子系统。开发以微处理器为核心的电子系统(以下简称微处理器系统)采用传统的无限循环函数模式,产品的开发周期和稳定性都无法保障,因此,在微处理器系统开发中引入嵌入式实时操作系统RTOS。RTOS的引入消耗了部分系统资源。这部分系统资源对于高档微处理器系统影响不大;对于中小规模微处理器系统,特别是单片机系统,由于RTOS资源的占用,使用户可用
[应用]
基于DSP和CDMA 2000的实时视频无线传输系统设计
  现有CDMA2000 EVDO网络的带宽完全可以满足经过压缩编码后的实时视频数据的传输,但由于视频监控领域实时性的要求,须采用UDP/ IP协议,它是面向非连接的,不可靠的传输服务;同时,CDMA2000 EVDO网络自身具有波动性比较大、误码率高、传输延迟等诸多特点;经过传输的视频通常会出现延迟大,出现马赛克等质量问题。因此,有必要对CDMA2000 EVDO网络的特性进行有效评估,来指导视频编码发送端视频流的动态调节,从而达到降低丢包率,实现视频流畅播放的目的。   笔者依据CDMA2000 EVDO网络的诸多特点和参考RTP协议来制定出评估CDMA2000 EVDO网络特性的相关参数,再经过大量的实验数据统计、分析和论证
[嵌入式]
基于DSP和CDMA 2000的<font color='red'>实时</font>视频无线传输<font color='red'>系统</font>设计
嵌入式实时系统及其在通信系统中的应用
    摘要: 阐述了嵌入式实时系统的原理及特点,分析并论述嵌入式实时系统实现过程中的关键问题,讨论了嵌入式实时系统在通信领域中的应用。     关键词: 嵌入式实时系统 嵌入式实时操作系统 板级支持包(BSP) 电信管理网 近年来,以PC机为代表的通用计算机系统在硬件和软件方面都取得了飞速的发燕尾服,处理器的运算速度已经达到了每秒10亿次的数量级。作为计算机系统核心的操作系统也从字符界面的单任务、单用户的DOS,发展到拥有图形界面的多用户、多任务的Windows 98、Windows NT。计算机的应用已经扩展到通信、交通、家电及医疗诸多领域。 然而,在经过了很长一段时间的快速发展,尤其是作为
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved