论文部分内容阅读
摘 要:随着控制系统对实时性能和运算能力的要求不断提高,在过程控制站的实时操作系统中逐渐采用嵌入式操作系统,实现操作方便、硬实时性和可靠性高的特点,而且技术风险小、开发周期短。本文针对嵌入式操作系统设计中应该注意的一些问题进行详细的探讨。
关键词:嵌入式操作;设计;软件系统;硬件系统
1 引言
作为一种广泛应用的软件系统,嵌入式操作系统较之传统的操作系统内核是比较小的,在嵌入式系统选型方面需要考虑到市场进入时间、可移植性、可利用资源等,在设计的时候需要考虑到任务调度和任务管理等方面的问题。
2 嵌入式操作系统概述
1)概念
嵌入式操作系统简称EOS,是一种广泛应用的软件系统,一般包括和软件相关的标准浏览器、图形界面、通信协议、设备驱动接口、系统内核、底层驱动软件等。嵌入式系统的所有软硬件资源由嵌入式操作系统负责任务调度、分配以及协调控制并发活动。
2)特点
a、系统内核小:在小型电子装置中常用到嵌入式系统,相对有限的系统资源,较之传统的操作系统内核是比较小的。
b、专用性强:具有很强的个性化,结合非常紧密的软硬件系统,一般在进行系统移植硬件时,要根据系统硬件的增减和变化不断进行修改。系统往往需要较大的更改在同时针对不同的任务的时候。
c、系统精简:应用软件和系统软件在嵌入式系统中一般没有明显的区分。对功能的实现及設计不需要太复杂。这样有利于实现系统安全和控制系统成本。
d、嵌入式软件的基本要求是高实时性。为了提高速度,软件要求固态存储;高可靠性和高质量是软件代码的要求。
e、只有使用多任务的操作系统,开发嵌入式软件才能走向标准化。没有操作系统应用程序在芯片上直接运行。为了合理的利用专家函数库接口、系统函数、系统资源以及调度任务,对开发平台用户必须自行选配,这样程序执行的可靠性、实时性才能得到保证,而且开发时间会减少,软件质量得到保障。
f、开发环境和工具:自举开发能力在嵌入式系统中是不具备的,完成设计以后对其中的程序用户也不能进行修改,如果要进行开发必须有一套开发环境和工具,这些环境和工具基于各种混合信号示波器、逻辑分析仪等,目标机和主机的概念往往蕴含在开发中,最后的执行机采用目标机,程序的开发采用主机,需要在开放式交替结合进行。
3 嵌入式操作系统的选型
当在进行嵌入式产品数字医疗设备、信息电器等设计的时候,至关重要的是嵌入式操作系统。那么以下是嵌入式操作系统在选择时所遵循的一些原则。
1)系统定制能力。用户需求的千差万别、各异的硬件平台,所以与传统的Wintel结构相比信息产品不具有单纯性,要分析产品是否需要改进系统底层,并且提出了针对于系统定制能力的要求。Linux是开放的源代码,其优势在于定制能力方面。随着在嵌入式领域微软加强力度和WinCE3.0源码的开放,提升了其定制能力。
2)市场进入时间。一般演示和实际产品是不同的,与操作系统的选择有关系的是产品时间表的制定。当前最非丰富的人力资源的是Windows程序员,而且WinCE也可能是现成资源最多的。要想很快进入市场可以使用WinCE。WinCE+X86做产品不要的功能被被去掉,这样产品会很快出现,但是会出现核心竞争力差、成本高。由于没有足够的技术积累或编程人员缺乏等问题会影响开发某些高效操作系统的进度。
3)可利用资源。与学术课题研究不同,产品的开发为了满足用户的需求而以高质量、低成本、快速为目标。对产品的特色进行集中精力的研发,采用第三方产品或由操作系统附加来实现其他功能,对于选型而言操作系统的可利用资源是一个重要参考条件。大家看好WinCE和Linux是因为可以利用其中的大量资源。由于比较封闭,在开发其他实时操作系统时,可利用资源比较少,所以需要自己对多数功能进行独立开发。由近几年市场需求可知,Web浏览器的全功能均需由嵌入式系统提供,这需要一个GUI来支持并且要具有高可靠性和高性能。
4)可移植性。良好的软件移植性无关于操作系统,可以在不同系统、不同平台上运行,所以可移植性是进行嵌入式软件开发要重点考虑的问题。一般情况下软件的性能和通用性是矛盾的。优化性在某些特定的情况下受到损失是通用要付出的代价。当操作系统和平台与产品紧密结合的时候,蕴含在其中的是产品特色。
5)成本。在所有产品中都需要考虑的是成本问题,商业系统WinCE等在许可证使用费用方面需要支付,而Linux是免费的,而问题不仅仅是这些。需要综合权衡后再对成本进行考虑,其他因素可能因为选择了某一系统而受到影响,如公司管理、人员投入、硬件设备选型等方面。
6)中文内核支持。西文方式是操作系统经常采用的方式,中文内核支持只是针对国内的产品。所以,必须要考虑的因素有中文处理与输入是否被支持,各种国际标准如GB18030、GBK是否被支持,双字节编码方式是否被支持等。
在上述中减法是用WinCE+x86出产品,也就是PC家电化;而在加法中,在改进的适合应用家电行业的硬件解决方案,而且增加应用软件和嵌入式操作系统。上述是家电PC的方式, 特色突出、成本低是其优势,其缺点是难度大、周期长的产品研发。作为一个好的选择Linx能够让你深入都系统底层。
4 嵌入式系统设计中应考虑的一些问题
嵌入式系统确切的说是一种概念,即可以是硬件嵌入也可以是软件嵌入,在各种应用系统中嵌入计算机相关技术,设计一个好的嵌入式在这种概念下需要满足的要求有:
A、与嵌入系统能够很好的相匹配;
b、在嵌入系统中应用相关计算机技术能够获得很好的性能价格比;
c、在满足嵌入系统功能的情况下,要尽可能简单,这样可以避免系统开销较大。 计算机的很多功能都是由操作系统来赋予的,它可以说是计算机的一个扩展;另一方面,操作系统也是作为资源管理者存在于计算机系统中。内核的最小结构在嵌入操作系统中包含的部分有:
1)任务调度。在一个复杂的嵌入式应用中至关重要的是任务调度策略的优劣,不可能用单任务来实现,只能采用多任务来实现。对众多的任务调度方法进行分类可以得出时间片调度、轮转调度、优先级调度三种方法。不管是在嵌入式操作系统中还是在一般操作系统中,操作系统的核心都是任务调度。在设计嵌入式操作系统的时,进行优化选择要根据被嵌入的实际系统的需求。单进程多线程调度是在实时嵌入式应用中常被采用来提高实时性。为了满足不同用户的需求,一般配有上述三种调度算法的函数在嵌入式操作系统中。当对自己的应用系统用户开发完后,不会把没有使用到的代码连接到最终系统中。而在一般的操作系统中所有有关代码都被加载到计算机系统中,对于使用中这些代码是否被用到不进行考虑。期限调度法也被应用于实时嵌入式系统中,在这种调度方法的保证下设定的期限之前每一个进程被调度执行完。
2)存储管理。存储管理在一般操作系统中是非常复杂的,其中得到广泛普及的是虚拟管理,与计算机实际内存相比应用系统可以获得的编制空间更大,虚拟存储管理是对外存和内存通过操作系统来进行管理,一个独立的虚拟存储空间能够被每一个应用程序得到。虚拟地址是程序访问的地址,对不同应用程序的共享存储空间进行维护和管理,而且通过段、页管理操作系统完成完成虚拟地址到物理地址的转换和页面换出与换入。各自的地址空间中分配各应用程序进行运行,不会产生相互干扰的现象。在在具体应用嵌入式的时候,所有静态内存分配通常是嵌入式操作系统采用的方式,各自可能使用的内存容量和进程数量在开发的时候是可以预测。存储管理在嵌入式操作系统中是比较简单的。因为不能预测页交换的时间,若采用虚拟存储技术在实时嵌入式应用中,所以这种方法是不可取的。常见的动态内存分配法是一块固定大小的内存在缓冲区中被动态分配出来,在使用完后就释放出来。存储管理在嵌入式操作系统中一般来说没有收集垃圾的功能。可能会有几种情况进行组合时是在复杂的应用系统中,在处理时候要按照具体情况来进行。如在一个嵌入式系统中有多个处理器,有非实时应用、软实时应用和硬实时应用,设计时虚拟存储技术被应用在非实时部分,动态内存分配被应用在软实时部分,静态内存分配被应用于硬实时部分,而且在不同的处理器上分别运行着三种应用。嵌入式操作系统在内存分配方面强烈的依赖于实际的被嵌入系统。自己的实际操作系统的在开发时候用户可以进行选择,因为几种分配策略由一个通用嵌入式操作系统提供,这就显示了嵌入式操作系统的裁剪性。内存保护作为一个重要的特性存在于存储管理中。每个应用程序在一般的操作系统中对其他应用程序的地址空间不能任意访问,它们都有自己的地址空间。在应用环境的限制下,存储器不能被大量使用,尽管已经很便宜的存储器芯片,这时就会严格限制代码量。如只有几KB在某些嵌入式操作系统中,所以進行内存保护处理时就显得相当薄弱,一般在即使系统崩溃重大的损失也不会造成的领域中,常见的有手持电话。在内存保护方面有的嵌入式应用要求非常严格,如嵌入式操作系统在武器系统中就要求有内存保护功能。
3)中断。在中断和查询是计算机系统接收事件的有两种方法。在多任务操作系统中,采用查询方式进行对I/O请求或事件的处理,大量的系统资源会被消耗。所以在处理I/O请求或事件使采用中断方式是比较合适的。中断和中断处理程序在操作系统中是紧密联系在一起的。如在I/O操作中,其过程如下:
中断处理在嵌入式操作系统是被十分重视的,事件驱动在嵌入式操作系统中是常见的。中断处理程序在嵌入式操作系统中引发的任务切换是:
4)用户的接口与操作系统。操作系统提供有两类接口给用户使用:人机界面,不管是命令形式还是视窗形式,这个接口是操作系统的一个外壳,而在嵌入式操作系统中这个接口是不存在的;而在系统调用接口,在每个操作系统中都提供不同的调用种类和功能,如果系统调用在操作系统中提供的越多,那么就会拥有越强的功能,就能提供简单而高效的支持给应用程序的开发,而且程序的维护量也会减少。而在嵌入式操作系统中这一规律则不太适用,在调制解调器上可以应用简单的,在卫星地面通信接收站中可以应用复杂的。
5 结语
综上可知,在对被嵌入系统进行充分考虑的前提下进行嵌入式操作系统的设计,在操作系统的设计和选择的时候和根据实际的应用来进行,嵌入式操作系统虽然具有可剪裁性,但是这种剪裁是有限的。嵌入式操作系统在迅速发展,但同时面临着很多机遇和挑战。
参考文献:
[1]Labrisse J.嵌入式系统构件[M].2 版.袁勤勇,黄绍金,唐青,译.北京:机械工业出版社,2001:130-143.
[2]Jean J. Labros se. 嵌入式实时操作系统C/ OS - II ( 第2版) [ M] . 邵贝贝等译. 北京: 北京航空航天大学出版社,2003.
[3]Sakamura K,Koshizuka N.T-Engine:The Open,Real-Time Embedded-Systems Platform [J].IEEEMicro,2002,22 (6):48-57.
[4]周立功等编. ARM 微控制器基础与实验[M].广州周立功单片机发展有限公司, 2003.
[5]覃征,邢剑宽,董金春,等.软件体系结构[M].2 版.北京:清华大学出版社,2008:95-136.
[6]陈向群, 王雷. Windows CE.NET 系统分析及实验教程[M]. 北京: 机械工业出版社, 2003.
[7]梁坚, 朱强, 王锦标. 嵌入式技术在SUPMAX800 集散控制系统中的应用[J], 计算机工程, 2003,( 9) : 151~153.
[8]周毓林, 宁杨,陆贵强, 等. Windows CE.NET 内核定制及应用开发[M]. 北京: 电子工业出版社, 2005.
[9]白 焰. 分散控制系统与现场总线控制系统基础、评选、设计和应用[M]. 北京: 中国电力出版社, 2001.
[10]王常力, 罗安.分布式控制系统(DCS) 设计与应用实例[M]. 北京: 电子工业出版社, 2004.
[11]何衍庆, 俞金寿. 集散控制系统原理及应用[M]. 北京: 化学工业出版社, 2002.
关键词:嵌入式操作;设计;软件系统;硬件系统
1 引言
作为一种广泛应用的软件系统,嵌入式操作系统较之传统的操作系统内核是比较小的,在嵌入式系统选型方面需要考虑到市场进入时间、可移植性、可利用资源等,在设计的时候需要考虑到任务调度和任务管理等方面的问题。
2 嵌入式操作系统概述
1)概念
嵌入式操作系统简称EOS,是一种广泛应用的软件系统,一般包括和软件相关的标准浏览器、图形界面、通信协议、设备驱动接口、系统内核、底层驱动软件等。嵌入式系统的所有软硬件资源由嵌入式操作系统负责任务调度、分配以及协调控制并发活动。
2)特点
a、系统内核小:在小型电子装置中常用到嵌入式系统,相对有限的系统资源,较之传统的操作系统内核是比较小的。
b、专用性强:具有很强的个性化,结合非常紧密的软硬件系统,一般在进行系统移植硬件时,要根据系统硬件的增减和变化不断进行修改。系统往往需要较大的更改在同时针对不同的任务的时候。
c、系统精简:应用软件和系统软件在嵌入式系统中一般没有明显的区分。对功能的实现及設计不需要太复杂。这样有利于实现系统安全和控制系统成本。
d、嵌入式软件的基本要求是高实时性。为了提高速度,软件要求固态存储;高可靠性和高质量是软件代码的要求。
e、只有使用多任务的操作系统,开发嵌入式软件才能走向标准化。没有操作系统应用程序在芯片上直接运行。为了合理的利用专家函数库接口、系统函数、系统资源以及调度任务,对开发平台用户必须自行选配,这样程序执行的可靠性、实时性才能得到保证,而且开发时间会减少,软件质量得到保障。
f、开发环境和工具:自举开发能力在嵌入式系统中是不具备的,完成设计以后对其中的程序用户也不能进行修改,如果要进行开发必须有一套开发环境和工具,这些环境和工具基于各种混合信号示波器、逻辑分析仪等,目标机和主机的概念往往蕴含在开发中,最后的执行机采用目标机,程序的开发采用主机,需要在开放式交替结合进行。
3 嵌入式操作系统的选型
当在进行嵌入式产品数字医疗设备、信息电器等设计的时候,至关重要的是嵌入式操作系统。那么以下是嵌入式操作系统在选择时所遵循的一些原则。
1)系统定制能力。用户需求的千差万别、各异的硬件平台,所以与传统的Wintel结构相比信息产品不具有单纯性,要分析产品是否需要改进系统底层,并且提出了针对于系统定制能力的要求。Linux是开放的源代码,其优势在于定制能力方面。随着在嵌入式领域微软加强力度和WinCE3.0源码的开放,提升了其定制能力。
2)市场进入时间。一般演示和实际产品是不同的,与操作系统的选择有关系的是产品时间表的制定。当前最非丰富的人力资源的是Windows程序员,而且WinCE也可能是现成资源最多的。要想很快进入市场可以使用WinCE。WinCE+X86做产品不要的功能被被去掉,这样产品会很快出现,但是会出现核心竞争力差、成本高。由于没有足够的技术积累或编程人员缺乏等问题会影响开发某些高效操作系统的进度。
3)可利用资源。与学术课题研究不同,产品的开发为了满足用户的需求而以高质量、低成本、快速为目标。对产品的特色进行集中精力的研发,采用第三方产品或由操作系统附加来实现其他功能,对于选型而言操作系统的可利用资源是一个重要参考条件。大家看好WinCE和Linux是因为可以利用其中的大量资源。由于比较封闭,在开发其他实时操作系统时,可利用资源比较少,所以需要自己对多数功能进行独立开发。由近几年市场需求可知,Web浏览器的全功能均需由嵌入式系统提供,这需要一个GUI来支持并且要具有高可靠性和高性能。
4)可移植性。良好的软件移植性无关于操作系统,可以在不同系统、不同平台上运行,所以可移植性是进行嵌入式软件开发要重点考虑的问题。一般情况下软件的性能和通用性是矛盾的。优化性在某些特定的情况下受到损失是通用要付出的代价。当操作系统和平台与产品紧密结合的时候,蕴含在其中的是产品特色。
5)成本。在所有产品中都需要考虑的是成本问题,商业系统WinCE等在许可证使用费用方面需要支付,而Linux是免费的,而问题不仅仅是这些。需要综合权衡后再对成本进行考虑,其他因素可能因为选择了某一系统而受到影响,如公司管理、人员投入、硬件设备选型等方面。
6)中文内核支持。西文方式是操作系统经常采用的方式,中文内核支持只是针对国内的产品。所以,必须要考虑的因素有中文处理与输入是否被支持,各种国际标准如GB18030、GBK是否被支持,双字节编码方式是否被支持等。
在上述中减法是用WinCE+x86出产品,也就是PC家电化;而在加法中,在改进的适合应用家电行业的硬件解决方案,而且增加应用软件和嵌入式操作系统。上述是家电PC的方式, 特色突出、成本低是其优势,其缺点是难度大、周期长的产品研发。作为一个好的选择Linx能够让你深入都系统底层。
4 嵌入式系统设计中应考虑的一些问题
嵌入式系统确切的说是一种概念,即可以是硬件嵌入也可以是软件嵌入,在各种应用系统中嵌入计算机相关技术,设计一个好的嵌入式在这种概念下需要满足的要求有:
A、与嵌入系统能够很好的相匹配;
b、在嵌入系统中应用相关计算机技术能够获得很好的性能价格比;
c、在满足嵌入系统功能的情况下,要尽可能简单,这样可以避免系统开销较大。 计算机的很多功能都是由操作系统来赋予的,它可以说是计算机的一个扩展;另一方面,操作系统也是作为资源管理者存在于计算机系统中。内核的最小结构在嵌入操作系统中包含的部分有:
1)任务调度。在一个复杂的嵌入式应用中至关重要的是任务调度策略的优劣,不可能用单任务来实现,只能采用多任务来实现。对众多的任务调度方法进行分类可以得出时间片调度、轮转调度、优先级调度三种方法。不管是在嵌入式操作系统中还是在一般操作系统中,操作系统的核心都是任务调度。在设计嵌入式操作系统的时,进行优化选择要根据被嵌入的实际系统的需求。单进程多线程调度是在实时嵌入式应用中常被采用来提高实时性。为了满足不同用户的需求,一般配有上述三种调度算法的函数在嵌入式操作系统中。当对自己的应用系统用户开发完后,不会把没有使用到的代码连接到最终系统中。而在一般的操作系统中所有有关代码都被加载到计算机系统中,对于使用中这些代码是否被用到不进行考虑。期限调度法也被应用于实时嵌入式系统中,在这种调度方法的保证下设定的期限之前每一个进程被调度执行完。
2)存储管理。存储管理在一般操作系统中是非常复杂的,其中得到广泛普及的是虚拟管理,与计算机实际内存相比应用系统可以获得的编制空间更大,虚拟存储管理是对外存和内存通过操作系统来进行管理,一个独立的虚拟存储空间能够被每一个应用程序得到。虚拟地址是程序访问的地址,对不同应用程序的共享存储空间进行维护和管理,而且通过段、页管理操作系统完成完成虚拟地址到物理地址的转换和页面换出与换入。各自的地址空间中分配各应用程序进行运行,不会产生相互干扰的现象。在在具体应用嵌入式的时候,所有静态内存分配通常是嵌入式操作系统采用的方式,各自可能使用的内存容量和进程数量在开发的时候是可以预测。存储管理在嵌入式操作系统中是比较简单的。因为不能预测页交换的时间,若采用虚拟存储技术在实时嵌入式应用中,所以这种方法是不可取的。常见的动态内存分配法是一块固定大小的内存在缓冲区中被动态分配出来,在使用完后就释放出来。存储管理在嵌入式操作系统中一般来说没有收集垃圾的功能。可能会有几种情况进行组合时是在复杂的应用系统中,在处理时候要按照具体情况来进行。如在一个嵌入式系统中有多个处理器,有非实时应用、软实时应用和硬实时应用,设计时虚拟存储技术被应用在非实时部分,动态内存分配被应用在软实时部分,静态内存分配被应用于硬实时部分,而且在不同的处理器上分别运行着三种应用。嵌入式操作系统在内存分配方面强烈的依赖于实际的被嵌入系统。自己的实际操作系统的在开发时候用户可以进行选择,因为几种分配策略由一个通用嵌入式操作系统提供,这就显示了嵌入式操作系统的裁剪性。内存保护作为一个重要的特性存在于存储管理中。每个应用程序在一般的操作系统中对其他应用程序的地址空间不能任意访问,它们都有自己的地址空间。在应用环境的限制下,存储器不能被大量使用,尽管已经很便宜的存储器芯片,这时就会严格限制代码量。如只有几KB在某些嵌入式操作系统中,所以進行内存保护处理时就显得相当薄弱,一般在即使系统崩溃重大的损失也不会造成的领域中,常见的有手持电话。在内存保护方面有的嵌入式应用要求非常严格,如嵌入式操作系统在武器系统中就要求有内存保护功能。
3)中断。在中断和查询是计算机系统接收事件的有两种方法。在多任务操作系统中,采用查询方式进行对I/O请求或事件的处理,大量的系统资源会被消耗。所以在处理I/O请求或事件使采用中断方式是比较合适的。中断和中断处理程序在操作系统中是紧密联系在一起的。如在I/O操作中,其过程如下:
中断处理在嵌入式操作系统是被十分重视的,事件驱动在嵌入式操作系统中是常见的。中断处理程序在嵌入式操作系统中引发的任务切换是:
4)用户的接口与操作系统。操作系统提供有两类接口给用户使用:人机界面,不管是命令形式还是视窗形式,这个接口是操作系统的一个外壳,而在嵌入式操作系统中这个接口是不存在的;而在系统调用接口,在每个操作系统中都提供不同的调用种类和功能,如果系统调用在操作系统中提供的越多,那么就会拥有越强的功能,就能提供简单而高效的支持给应用程序的开发,而且程序的维护量也会减少。而在嵌入式操作系统中这一规律则不太适用,在调制解调器上可以应用简单的,在卫星地面通信接收站中可以应用复杂的。
5 结语
综上可知,在对被嵌入系统进行充分考虑的前提下进行嵌入式操作系统的设计,在操作系统的设计和选择的时候和根据实际的应用来进行,嵌入式操作系统虽然具有可剪裁性,但是这种剪裁是有限的。嵌入式操作系统在迅速发展,但同时面临着很多机遇和挑战。
参考文献:
[1]Labrisse J.嵌入式系统构件[M].2 版.袁勤勇,黄绍金,唐青,译.北京:机械工业出版社,2001:130-143.
[2]Jean J. Labros se. 嵌入式实时操作系统C/ OS - II ( 第2版) [ M] . 邵贝贝等译. 北京: 北京航空航天大学出版社,2003.
[3]Sakamura K,Koshizuka N.T-Engine:The Open,Real-Time Embedded-Systems Platform [J].IEEEMicro,2002,22 (6):48-57.
[4]周立功等编. ARM 微控制器基础与实验[M].广州周立功单片机发展有限公司, 2003.
[5]覃征,邢剑宽,董金春,等.软件体系结构[M].2 版.北京:清华大学出版社,2008:95-136.
[6]陈向群, 王雷. Windows CE.NET 系统分析及实验教程[M]. 北京: 机械工业出版社, 2003.
[7]梁坚, 朱强, 王锦标. 嵌入式技术在SUPMAX800 集散控制系统中的应用[J], 计算机工程, 2003,( 9) : 151~153.
[8]周毓林, 宁杨,陆贵强, 等. Windows CE.NET 内核定制及应用开发[M]. 北京: 电子工业出版社, 2005.
[9]白 焰. 分散控制系统与现场总线控制系统基础、评选、设计和应用[M]. 北京: 中国电力出版社, 2001.
[10]王常力, 罗安.分布式控制系统(DCS) 设计与应用实例[M]. 北京: 电子工业出版社, 2004.
[11]何衍庆, 俞金寿. 集散控制系统原理及应用[M]. 北京: 化学工业出版社, 2002.