◆卢增宁
嵌入式应用系统软件设计技术研究
◆卢增宁
(宿迁泽达职业技术学院 江苏 223800)
嵌入式应用系统软件设计技术的研究在近年来受到了公众广泛欢迎,本文围绕嵌入式应用系统软件设计技术问题进行讨论,提出几点思考,仅供参考。
嵌入式应用系统;软件设计;技术
嵌入式属于软件设计领域中的一个分支,由于其自身具备的很多特点最终决定了系统架构师的选择,另外它也具备一些环节有一定的通用性,能够被广泛应用到其他的一些领域中。
确切地来说,嵌入式系统的发展史已经有很长时间了,起初被应用于军事、航空航天及工业控制工作中,自20世纪90年代中期以后,开始在互联网、通信、以及信息家电等各个领域中应用到了嵌入式系统,也就是说,该系统开始逐步进入了人们的生活中,为此也使得计算机产业由PC时代普及至计算机及嵌入式系统相结合的后PC时代。那么究竟什么是嵌入式系统呢?它是一种以应用为核心的计算机系统,它的特点是实时、专用、资源有限等,所以,对于嵌入式系统而言,它既具备普通计算机系统的软件设计共性,同时也具备一定的特殊性。
传统的嵌入式软件设计给我们的印象是单片机,汇编,高度依赖硬件,而且传统嵌入式软件在开发过程中只是看重它的本身功能的实现,却忽视了代码的复用,同时数据还和界面相互分离,以及可测试性等因素。从这些特点集中来说,最终导致软件的最终质量过于依赖开发者的水平。随之嵌入式系统软件的发展,如今的嵌入式系统软件在包括功能、规模和复杂程度等各方面均收获了大幅度的提高。例如Marvell公司生产的PXA3系列,其最高主频已经达到800Mhz,内部建有USB,WIFI,2D图形加速以及32位DDR内存。
从硬件方面进行分析,现如今的嵌入式系统显然已经超越了数年之前的PC平台。从软件方面分析,很显然已经形成了成熟的操作系统,例如Symbian,Linux,WinCE。在完善的操作系统的基础上其他的一些应用程序同样也凸显出来,比如字处理,图像处理以及视频、音频和游戏处理或者网页浏览等,这些程序的复杂性乃至功能性可谓相较PC软件只增不减。原本那些大部分选择使用专用硬件及系统的公司也开始慢慢从各方面转换思路,凭借出色且廉价的硬件完善操作系统为基础,利用软件代替之前专用硬件能够完成的所有功能,以达到更高成本及低成本的可变更及可维护性[1]。
自从20世纪嵌入式系统概念提出之后,它就凭借自身高性能、低功耗、低成本、小体积的优势,收获了前所未有的发展,但也因为受到当时硬件水平制约的缘故,使得嵌入式系统的开发方式以及以PC为主要代表的通用型计算机软件开发方式从一开始的时候就存在差异性。起初的嵌入式系统硬件仅仅只是一个基于8位数的简单系统,而且系统硬件设计者也往往都是其开发者,编程语言大部分都是以汇编语言为主的,硬件设计人员在设计硬件系统的时候往往会综合考虑到程序的编写问题,但在实际程序设计时,又必须考虑到硬件的配合,所以,对于嵌入式软件的编程开发,相关都非常了解系统底层软、硬件各部位细节。
鉴于软硬件开发条件的制约,通常情况下这些系统都是用于实现一个或者多个简单数据的采集控制的,并且其程序的控制结构也大多以简单的控制循环为主,并且配合中断服务以实现呼应外界请求,不予采用操作系统,因此,开发人员在计算机操作系统的软件开发工具理解掌握方面有一定的局限性。另外,有一大群人则更感兴趣以Microsoft Windows、Linux为代表的操作系统,他们深深沉陷于操作系统应用程序的开发当中,他们的兴趣点在于怎么样使用像VC、VB、Java一类的高级编程语言,关心在操作系统中如何更加复杂且精彩地进行应用,却疏于对系统中硬件细节问题的关心。立足传统意义上的观点进行考虑,通常我们都把前者归结为硬件开发人员,但对于后者则常常称为是软件程序员。在很长一段时间内,此二者几乎都是井水不犯河水,都存在各自的应用和开发领域。
随着计算机软硬件技术的快速发展,人们在这方面的应用需求也越来越高,尤其在伴随着人们对以ARM、PowerPC、MPS等高性能嵌入式微处理器的普遍使用,使传统的嵌入式系统概念出现了大幅度的变化。我们以基于8位数的嵌入式系统为举例,当应用系统面对人们越来越复杂的使用需求,并且这种要求范围越来越广泛时,系统每增加一项新功能,都会引起应用软件结构方面的变化,或者是需要重新进行设计,但这种问题在基于操作系统的通用型计算机则就小很多,很明显,嵌入式系统软件最大的缺陷就体现在它不具备操作系统的支持,但也限于8位机系统比较有限的运算能力或存储容量的限制,不能够支持操作系统的整体化运行,对此,即便很长一段时间内人们已经认识到了这个问题,并没有找到好的解决方法。
自20世纪九十年代后,对于嵌入式系统的设计人们提出了“片上系统”的概念,现阶段的嵌入式系统设计已经步入了以Soc为核心的阶段,很明显,Soc为高性能的嵌入式系统的开发提供了广阔的平台,但它所具备的极其强大的运算能力或存储能力,却能够支持极其复杂的嵌入式操作系统的运行。
嵌入式系统软件是继嵌入式微处理器性能不断发展之后才慢慢发展起来的,近几年随着嵌入式系统软件应用领域的扩大,究其原因主要在于嵌入式系统软件开发复杂度的提高,再加上嵌入式微处理器的推广应用,为其嵌入式系统软件的硬件平台的运行提供了保障。另外目前在嵌入式系统软件使用过程中种类繁多,而占据市场份额较高的有Linux、WindowsCE、VxWorks、QNX、eCos、uC/OS II等。确切地说,嵌入式操作系统可以划分为两大类,即商业级嵌入式操作系统,该操作系统通常都是在经过比较长的一段时间的使用过后,由部分大公司进行开发并进行维护,并且其在使用性能方面也都具备较好的保证,比如WindowsCE,VxWorks,QNX等,但这些系统有一个共同的缺陷就是价格昂贵,并且也都不公开核心代码,单从这一点来说,它是违背嵌入式系统用户定制性较强且升级换代快的特点的。也正是因为如此,它的应用范围才受到了限制。还有一类属源代码开放的嵌入式操作系统,像是Linux、eCos和uC/OS II等,即使此类系统从技术支持或服务方面存在缺陷,但对于开发人员来说要求却比较高,同时也因为用户可定制性好且具备可持续开发的优势,当下对于它的应用相较于商业嵌入式系统来说更多一些。
嵌入式系统的应用实质上属于一种“完全嵌入受控器件内部,为特定的应用设计出来的专用计算机系统,”嵌入式系统同时为控制、监视及辅助设备和机器或者是用作工厂运作的设备仪器。相较于普通的计算机系统不同点在于,嵌入式系统软件一般执行的属附带特定要求的预先定义的任务。又因为嵌入式系统软件仅针对某一项特定的特殊任务,因此设计人员只能将其优化,并且减小尺寸并降低其成本。一般嵌入式系统都会进行大批量生产,因此单个生产成本就会节约很多,可以随着产量大小呈数以千计的倍数不断放大。
嵌入式系统软件具体是用于控制或监视机器、装置和工厂等比较大规模的设备系统的。国内比较普遍地为嵌入式系统定义为:以应用为中心,以计算机技术作为基础,并且软硬件都可以裁剪,适合应用于应用系统对功能、可靠性、成本和体积以及功耗等严格控制的专用计算机使用系统,它的应用范围非常广泛。我们生活中使用的家庭自动化产品和家用电器、手提电话及自动柜员机(ATM)等都有应用[2]。
此为嵌入式系统应用范围最广的一个领域,日常我们常见的冰箱、空调等家用电器的智能化和网络化将会把人们带入一个新的生活空间。即便家中没人,通过电话线、网络也可以进行远程控制,嵌入式系统在这些设备中将会发挥出其极大的功用。
用于水文资料的实时监测、应用于防洪体系和水土质量监测,堤坝安全,地震监测网,及实时气象信息网,水源以及空气污染监测。于很多恶劣环境下,并且地况较为复杂的地区,嵌入式系统都可以进行无人监测。
公共交通不具备智能发卡系统,公共电话卡发行系统,或者自动售货机以及各种终端智能ATM机等都会慢慢进入人们的日常生活。
嵌有专用控制芯片会逐步替代水、电、燃气表的远程自动抄表以及防盗系统人工检查工作,而且能发挥出它更高、准确度更高且安全性能更好的性能。在当前的服务领域,包括像远程点菜器等都已经慢慢彰显出了嵌入式系统的应用优势。
目前嵌入式芯片的工业自动化设备在未来将收获一片光明的发展前途,当前也已经有大量的8位、16位以及32位嵌入式微控制器被广泛应用到工业控制当中。而网络化则成了提升产品的生产效率及产品质量并且减少人力资源的核心途经,比如工业过程控制和数字机床以及电力系统与电网安全、电网设备监测和石油化工系统等等。
嵌入式芯片的应用和发展更加凸显出了机器人微型化且高智能的优势,而且还会更大幅度使机器人的价格再度降低,促进其更加广泛地应用于工业及服务业等诸多领域。
嵌入式系统技术也被广泛应用于车辆导航、流量控制和信息监测以及汽车服务方面,并且其内部嵌有CPs模块,GSM模块的移动定位终端当前也被成功地应用于各种运输行业。
战争中用于各种武器控制(火炮、导弹、智能炸弹导引爆装置)、坦克、舰艇、轰炸机等各种陆海空军用电子装备,雷达、电子对抗军事通信装备和野战中指挥作战使用的作战装备等等。
综上所述,嵌入式系统软件设计技术的出现在未来几十年里将会普遍地出现在我们的生活中,它将会为我们的学习、工作和生活带来更多的便捷,也会将我们带入一个高质量的生活状态。