的μC/OS 基于FPGA

国学论文计算机论文

的μC/OS 基于FPGA

神洲大陆围观:℉更新时间:12-18 12:57

的μC/OS 基于FPGA

第1章 绪论

实时操作系统RTOS(Real Time Operating System)在嵌入式系统进行移植时可保证并提高系统的实时性、可靠性和安全性,使其能更好地应用于诸如航天航空、工业控制和核电站建设等领域。但是,现有的实时操作系统RTOS内核是镶嵌在应用程序中的软件,这样就会增加存储空间的用量和应用程序的额外负荷,如此,该系统的响应时间方面很可能受到负面影响。若对实时操作系统进行硬件化,就能降低处理器系统的开销,使得其利用率得到提高,故而RTOS任务集合的可调度性得到提高,这就让硬件化实时操作系统具有一定的研究价值和使用价值。

1.1 课题研究的背景和意义

第一,嵌入式实时操作系统ERTOS使得系统的可靠性得到保证。众所周知,若使用前后台系统软件设计,在遇到强干扰的时候,正在运行的程序就很容易出现异常、出错、跑飞甚至于死循环现象,造成系统的崩溃。但这种干扰对于实时操作系统管理的系统而言,就可能只是破坏若干进程中的其中一个,那么通过系统运行的系统监控进程就可对其进行修复。

第二,嵌入式实时操作系统 ERTOS使得开发效率得到提高,开发周期缩短。因为在嵌入式实时操作系统ERTOS环境下,可以将应用程序进行分割,形成若干独立的任务模块,以此简化应用程序设计的过程,而且无需大动干戈就可增加新功能,极其容易就可对应用程序进行开发和扩展。使用ERTOS 可以使得对实时性要求很严格的事件都能得到快速、可靠的处理。嵌入式实时操作系统ERTOS 可以通过有效的系统服务使得系统资源得到更好的应用。

不过,以前的软件实时操作系统RTOS的内核都是和应用程序一块儿编译、运行的,这样前者就占用了后者不少的存储空间以及处理时间,由此就影响整个的执行效率。还有,因为会受到处理能力和存储空间等的限制,低端的 8 位嵌入式系统在运行时,若操作系统 OS 需要实现多任务,那么就不能很好地,有效地支持那种并发数量大而且复杂度高的任务进行运行。另外,这类系统的操作系统自身的代码所占用的存储空间和内存空间的比例都是比较高的,故而该类嵌入式系统是没有办法可以真正地、有效地利用 OS 以便实现系统的多任务处理。

1.2 嵌入式实时操作系统 RTOS 研究现状

1.2.1 国外现状

嵌入式实时操作系统ERTOS的起源可以追溯到 20世纪80年代,那时候国际上就有IT组织或公司开始研发商用ERTOS和专用ERTOS。其中国外利用软件来实现 RTOS 实时操作系统的较著名的操作系统有 Ready System 公司的VRTX、WinCE、嵌入式 Linux 和 IMG 的 VxWors、QNX 公司的 QNX,以及 TRON 和 μC/OS-II 等等。

微软公司为各种嵌入式系统而开发设计了一种称之为 WinCE的操作系统,这是一种可以压缩,可以升级,并且很高效的 RTOS。WinCE 可以具有实时采集、自动存储、即时显示、即时反馈、自动处理和自动传输等诸多功能,并且还支持各种硬件外围设备、以及其他设备和网络系统。与此同时,它还提供了很多其他功能,比如内核、对象存储、制图、开窗口等,以及四个在通信中最重要的 OS 功能模块。其中的内核就负责管理内存、进程以及任务或线程的调度、预处理等。

美国嵌入式系统专家ean .Labrosse 用C语言开发了μC/OS-II 操作系统。这种操作系统的源码是公开的,并可以支持多任务,是抢占式的强实时内核,还拥有执行速度高、占用空间小、实时性好以及可扩展性强等特征。因为它的精巧和实用,所有受到各界的一致欢迎。μC/OS-II 还具有较强的可移植性,也就是可以根据具体硬件情况添加或者换一个硬件抽象层。同时μC/OS-II 还是种可剥夺型内核,是基于任务优先级的,所以当任务被创建时候,都会赋予特有的一个优先级别。

硬件实时操作系统概念的提出是从 20 世纪 80 年代开始的。美国学者AEHWAN LEE 和 VINCENT OHN MOOENY III较为全面地分析了实时操作系统调度器分别使用软件和硬件实现,并在此基础上比较了二者的不同,认为如果RTOS调度器使用专用的硬件 IP内核来实现,就会在很大程度上提高实时操作系统的效率。RTOS的核心所在就是任务的调度,因为任务间的通信和外部事件的处理等等都是不能离开任务调度这个功能的。与此同时,由于系统功能额不断完善和增强,也就随之使得任务之间的关系愈加复杂,并且需要和越来越多的外围设备进行联系,故而任务调度就得不断地参与到其中,这样就会滋生不少问题,比如急剧下降的系统性能、不断降低的事件实时响应能力等。这就说明会对 RTOS 性能造成影响的瓶颈是任务调度,所以要想使得 RTOS 的整体性能得到提高,就需要着手于如何提高任务调度的能力。如果硬件化任务调度,毋庸置疑会使得任务调度的性能得到提升,这样整个的实时操作系统的性能也就能进一步得到提高。

第2章 μC/OS-II 实时操作系统的内核研究

所谓的内核,它的职责主要包括对系统的各种任务进行管理、把CPU资源合理分配给相应的任务以及为各任务之间的通信负责,这其中就有管理信号量、邮箱以及消息队列等。所以说内核管理系统会在很大程度上提高CPU的利用率,以便使之更加有效。实时操作系统μC/OS-II 具有源代码公开、结构小巧等特点,它的内核就会有任务管理及调度以及中断管理等等功能。在这一章中,就把μC/OS-II 作为研究的对象,并且主要就是对其内核进行分析,这就包括任务管理及调度、中断机制管理以及通信同步等内容。

2.1 任务管理及调度

2.1.1 任务管理

所谓的任务,就是一段可以含有返回类型、形参变量的无限循环的程序,只是不会存在任务返回的情况。就 μC/OS-II 实时操作系统的内核而言,在创建任务时就会为其配置一个优先级,且是唯一的一个。这里是由优先级别的数值大小来决定任务优先级别,若一个任务的数值越小,那么它的优先级别就越高[49],并且能够获得CPU资源的是优先级别最高的任务。

在μC/OS-II 内核中,分析任务的存储结构等,发现任务就是由三大部分组成:任务程序代码、堆栈以及 TCB 任务控制块。其中任务控制块 TCB 是用来保存任务相关的控制信息的;而任务堆栈则是对任务会被处理的信息进行保护;还有任务的运行部分则是任务程序代码。

在μC/OS-II 操作系统中,所谓的任务就是指程序的主体,那么就可以依据任务的提供者的不同从而划分为两类任务:系统任务、用户任务。前者是由系统提供的,而后者则是为了提供某类特定任务,解决实际问题而由应用程序设计者编写提供的。μC/OS-II 系统在初始化的时候就会通过调用系统函数 OSInit()来创建空任务块链表。为了方便管理,μC/OS-II 把任务链接成一个任务链表如下图2-1所示。

2.2 中断管理

中断服务子程序ISR在μC/OS-II 中的编写语言是编辑语言。其流程图如下图2-3 所示:

从上图中可得出中断服务处理过程:进入中断,保护现场;执行中断处理函数OSIntEnter()或将OSIntNesting+1;判断条件,进行前序处理,比如清、开中断源;执行中断程序;执行中断处理函数OSIntExit();恢复现场,继续执行。

2.2.1 中断任务处理

在μC/OS-II 中,可以用于接收到中断请求的是中断控制器。实际上,中断控制器在接收到请求后,系统CPU是不会马上对中断做出响应,而是会先延迟一段时间,目的就是对中断源进行相关判断,其中断管理过程如下图 2-4所示:

第3章 硬件化μC/OS-II 的总体框架设计方案.......................19

3.1 实时操作系统硬件化的提出............ 19

3.2 μC/OS-II 硬核总体设计..................... 21

第4章 μC/OS-II 中通信机制的硬件化框架及实现模块....................25

4.1 信号量管理模块的硬件设计............... 25

第5章 通信机制硬件化的仿真及实验结果分析.......................33

5.1 XUP Viterx PRO-II ................. 33

第5章 通信机制硬件化的仿真及实验结果分析

要想能够对 SOPC 进行快速有效地开发,最先做的事情就是需要对它的开发工具以及它的开发流程进行一番了解。在这章节中,首先介绍了一些实验用到的开发平台以及软件环境等,比如硬件开发平台XUP Viterx PRO-II,集成软件环境 ISE 以及嵌入式开发工具集 ED。然后就会在这个开发平台上进行VHDL 硬件描述语言的代码编写、调试、综合以及功能仿真等等,以便用来对设计的可行性进行验证。

5.1 XUP Viterx PRO-II

众所周知,全球在可编辑器件制造方面最大的商家就是 Xilinx 公司,同时它还发明了 FPGA 器件。Xilinx 公司不甘于只是做一个供应商为需要者提供通信器材,同时它还在通信标准进行制定的时候也积极参与进去了,其中对于系统的集成以及系统需要解决的方案都有它的贡献。现在 Xilinx 公司生产出来的芯片以及解决问题的方案进行一些问题的研究和开发一直被不少的高等学校、相关研究所等使用。在本论文中,进行实验的平台就是硬件开发平台XUP Viterx PRO-II。它是由 Xilinx 公司设计开发出来的,这平台上的主要器件就是 Viterx-II Pro 这个系列,该系列在 Viterx-II 的基础之上增强并添加了不少功能,其中包括嵌入式处理功能得到加强,这里主要是内嵌了处理器硬核 PowerPC 405,还增加了主动互联技术,以便用来解决一些高性能系统可能会面临的一些问题。XC2VP30 是隶属于 Viterx-II Pro 这个系列的,它的主要特征如下表5-1所示:

结论

该篇论文首先是对现阶段国内外对于 RTOS 的研究现状以及它的发展趋势进行了较为充分的了解和掌握,然后结合μC/OS-II实时操作系统内核的相关原理,以及对于FPGA的技术特点,在此基础上提出了基于 FPGA 的μC/OS-II通信机制硬化的研究设计,并实现了其中的信号量管理模块的硬化以及消息邮箱管理模块的硬化,还在软件环境ISE8.2上对上述研究和设计进行了仿真和验证。 本文主要完成的任务有:

1. 对 μC/OS-II 实时操作系统的内核进行了研究,尤其是进一步分析、探索了任务管理及调度、中断机制以及通信同步等相关内容,同时对一些数据结构进行修改,以便适应硬化环境;

2. 在此基础上提出了硬件化 μC/OS-II 的总体框架设计方案,即提出实时操作系统 RTOS 硬件化,并针对 μC/OS-II 操作系统设计出硬核总体结构和软件接口,同时对这两者进行了分析;

3. 针对 μC/OS-II 中的通信机制,设计出了硬件化框架,这里包括信号量管理模块的硬件设计、消息邮箱管理模块的硬件设计等,还依据各模块硬化设计,得到它们的逻辑电路图;

4. 最后对 FPGA 的设计流程进行深入了解,并且学习 VHDL 语言以及工具ISE 和 ED 的基本使用,并就通信机制硬件化进行了时序仿真,对实验结果图进行了分析以及验证,说明了其可行性。

参考文献(略)

标签:美国学者

标题:的μC/OS 基于FPGA

链接:http://m.zhaichaow.cn/lunwen/jisuanji/429519.html