一种工程机械控制器专用操作系统的设计与实现(1)

一种工程机械控制器专用操作系统的设计与实现(1)

ID:34101943

大小:297.27 KB

页数:5页

时间:2019-03-03

一种工程机械控制器专用操作系统的设计与实现(1)_第1页
一种工程机械控制器专用操作系统的设计与实现(1)_第2页
一种工程机械控制器专用操作系统的设计与实现(1)_第3页
一种工程机械控制器专用操作系统的设计与实现(1)_第4页
一种工程机械控制器专用操作系统的设计与实现(1)_第5页
资源描述:

《一种工程机械控制器专用操作系统的设计与实现(1)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据一种工程机械控制器专用操作系统的设计与实现(1)木湖南大学软件学院周继辉金敏三一重工股份有限公司周翔周继辉摘要:由于工程机械控制器在整机中的重要性和硬件平台的多样性,其专用的操作系统±在可靠性、实时性、低资源占用和可移植性等方面都有较高的要求。为了满足这些要求,该操作系;统100%使用C语言开发,以非常精炼的代码实现了任务调度、消息机制和内存管理等基本功i能。其中任务调度机制没有使用通常的任务抢占方式,而是采用以高可靠性著称的PLC(可编程{逻辑控制器)系统的定时驱动、任务轮转的设计理念,简化了系统结构,提高了可靠性和可维护!性,并且由于避

2、免了支持任务抢占所必须的汇编代码,具有非常好的可移植性。精心设计的任务;间消息机制可以有效增加应用软件的模块化程度,降低任务间的耦台度。用户可选的内存管理模i块为较大的系统提供了动态内存管理功能。该操作系统经过在三一重工智能工程研究本院多种!控制产品中的实际应用,证明具有较高的推广价值。!关键词:土程机挑操作系统任务调度内存管理随着现代工程机械功能的增加和用户对其智能化程度的要求越来越高,使用各种单片机开发的工程机械控制器越来越多。对于简单的应用,软件开发人员可以直接在无任何操作系统的纯硬件基础(以下称之为“裸机”)上进行开发。随着项目规模的扩大和

3、功能的增加,对嵌入式操作系统的使用提出了追切的需求,其原因主要为:(1)在“裸机”上开发的软件为一个各部分耦合相对紧密的整体,当需要多个软件开发人员协同开发时,不仅很难做到合理的任务划分,而且不同开发人员编制的代码之间的冲突也很难避免。(2)由于缺乏任务调度、消息机制和动态内存管理等现代操作系统的基本元素,整个软件系统的体系结构很难做到清晰、健壮,进而也影响到了整个项目的可维护性和可扩展性。因此,尽量使用嵌入式操作系统进行软件开发已经在很多嵌入式系统开发组织内部达成了共识。然而由于嵌入式操作系统种类繁多,中小型企业的开发人员进行嵌入式操作系统选择时

4、仍遇到了很多困难,表现在:·基金项目:长沙市科技计划资助重点项目(KZB06400Z)一方面,以vxWorks、WinCE等为代表的商业操作系统既庞大叉复杂,对于成本压力极大的中小型嵌入式项目来说,其价格成本无法承受。另一方面,以KeilRTX51、ucOSII等为代表的“平民”操作系统则要么局限于某一特定平台,要么虽然具有一定的可移植性,但其移植工作普通开发人员难以胜任。基于以上原因,本文给出一种工程机械控制器专用操作系统的设计与实现方案和应用实例。该操作系统已在多个工程机械开发项目中得到应用和优化,可作为大多数中小型嵌入式项目选用操作系统的一个

5、参考。1系统设计1.1设计目标(1)高可靠性对几乎所有的嵌入式系统来说,可靠性都是最终用户最基本的要求,而工程机械控制器由于工作环境的恶劣,对操作系统的可靠性提出了更高的要求。为了追求尽可能高的可靠性,本文在决定任务调度机制的时候舍弃了对于中小型系统万方数据来说并非必不可少的抢占式任务调度机制,而选用了以高可靠性著称的PLC(可编程逻辑控制器)的任务调度机制:定时轮流扫描。这种选择以较小的代价(不支持任务抢占)换取了很大的效益,包括:(a)整个操作系统实现了“零犯编”,即操作系统的所有代码100%由C语言实现,不再需要小心翼翼地用汇编语言处理任务抢

6、占时的堆栈问题。而且“100%C语言”借助C语言的跨平台特性同时实现了下面要介绍的平台无关性。(b)任务轮流扫描机制从本质上说仍属于顺序执行结构,与传统“裸机”开发所用的while(1){taskl0;task20;taskn0;}结构等价,所以程序员不再需要考虑锁死、临界区等可能严重影响系统可靠性的因素。(2)平台无关性由于当前工程机械控制器可以选用的MCU(MicroControllerUnit,多点控制单元,又称单片微型计算机)种类繁多,各种开发环境也层出不穷。为了适应这些不同的软硬件平台,要求嵌入式操作系统尽量做到平台无关。本操作系统由于前

7、述的“100%C语言”,可以轻松地实现平台无关性,目前已直接支持的单片机有:MCS51系列、MSP430系列和ARM系列,并且其它的单片机也可以通过简单的修改提供支持。现在已经过测试可以直接支持的编译器有:KEILC51、IARWorkbenchfor430、MSPGCC和ADS。(3)实时眭虽然本操作系统不支持任务抢占,但可以通过定时任务调度机制保证任务运行的时间确定性,满足实时系统对任务运行时刻和运行时间的苛刻要求。只要用户设计的任务代码运行时不超出硬件负荷,任务调度机制可以保证每个任务以用户设定的精确时间间隔运行,而且可以通过参数控制每个任务

8、的运行延迟来提高运行效率。(4)消息机制为了增加系统各模块的独立性,尽量取消全局变量等任务间通信手段,需要为任务阃通信提供

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。