嵌入式系统关键技术分析与开发应用
嵌入式操作系统(Embedded Operating System)种类有一百种以上,代表性的产品有以下几种:
1) 专用的实时操作系统(RTOS)。代表性的产品有QNX、VxWorks、pSos、lynx,还有Hopen,中文名称为"女娲",它是由中科院开发的中国人自己的嵌入式OS。传统上,以往的嵌入式应用如果确定了要使用操作系统,一般选上述其中之一。其特点是:
o 模块化。
o 实时性好。
o 稳定性好。
o 价格昂贵。由于操作系统本身以及开发环境都是专有的,价格一般都比较高,通常需花费10万元人民币以上才能建起一个可用的开发环境,对每一个应用一般还要另外收取版税。
o 一般不通供源代码,只提供二进制代码。
o 由于它们都是专用操作系统,需要专门的技术人员掌握开发技术和维护,所以软件的开发和维护成本都非常高。
o 支持的硬件数量有限。
2) Windows CE。
微软的嵌入式OS。与前述OS最大不同是其应用编程接口(API)与Win32 API兼容,这样Windows上的程序都可以重新编译后移植到Win CE上来,开发人员可用开发Windows同样的开发工具来开发Win CE程序。缺点同样是源代码不公开,对每一个应用都要收取版税。例如,某机顶盒采用Win CE,每台需交纳20-30美圆给微软,另外,Win CE 体积庞大,占用很多的ROM和RAM。
3) 嵌入式Linux。
这是嵌入式操作系统的一个新成员,其最大的特点是源代码公开并且并且遵循GPL协议,在近一年多以来成为研究热点,据IDG预测嵌入式LINUX将占未来两年的嵌入式操作系统份额的50%,下面重点对其加以介绍。
o 由于其源代码公开,人们可以任意修改,以满足自己的应用,并且查错也很容易。
o 遵从GPL,无须为每例应用交纳许可证费。
o 有大量的应用软件可用。其中大部分都遵从GPL,是开放源代码和免费的。可以稍加修改后应用于用户自己的系统。
o 有大量的免费的优秀的开发工具,且都遵从GPL,是开放源代码的。
o 有庞大的开发人员群体。无需专门的人才,只要懂Unix/Linux和C语言即可。随着Linux在中国的普及,这类人才越来越多。所以软件的开发和维护成本很低。
o 优秀的网络功能,这在Internet时代尤其重要。
o 稳定--这是 linux本身具备的一个很大优点。
o 内核精悍,运行所需资源少,十分适合嵌入式应用。
o 支持的硬件数量庞大。嵌入式Linux和普通linux并无本质区别,
PC上用到的硬件嵌入式Linux几乎都支持。而且各种硬件的驱动程序源代码都可以得到,为用户编写自己专有硬件的驱动程序带来很大方便。
在当前数字信息技术和网络技术高速发展的后PC(Post-PC)时代,嵌入式系统已经广泛地渗透到科学研究、工程设计、军事技术、各类产业和商业文化艺术以及人们的日常生活等方方面面中。随着国内外各种嵌入式产品的进一步开发和推广,嵌入式技术越来越和人们的生活紧密结合。
1970年左右出现了嵌入式系统的概念,此时的嵌入式系统很多都不采用操作系统,它们只是为了实现某个控制功能,使用一个简单的循环控制对外界的控制请求进行处理。当应用系统越来越复杂、利用的范围越来越广泛的时候,每添加一项新的功能,都可能需要从头开始设计。没有操作系统已成为一个最大的缺点了。
C语言的出现使操作系统开发变得简单。从上世纪80年代开始,出现了各种各样的商用嵌入式操作系统百家争鸣的局面,比较著名的有VxWorks、pSOS和Windows CE等等,这些操作系统大部分是为专有系统而开发的。另外,源代码开放的嵌入式Linux,由于其强大的网络功能和低成本,近来也得到了越来越多的应用。
1 嵌入式系统的技术特点
嵌入式系统通常包括构成软件的基本运行环境的硬件和操作系统两部分。嵌入式系统的运行环境和应用场合决定了嵌入式系统具有区别于其它操作系统的一些特点。
(1)嵌入式处理器
嵌入式处理器可以分为三类:嵌入式微处理器、嵌入式微控制器、嵌入式DSP(Digital Signal Processor)。嵌入式微处理器就是和通用计算机的微处理器对应的CPU。在应用中,一般是将微处理器装配在专门设计的电路板上,在母板上只保留和嵌入式相关的功能即可,这样可以满足嵌入式系统体积小和功耗低的要求。目前的嵌入式处理器主要包括:PowerPC、Motorola 68000、ARM系列等等。
嵌入式微控制器又称为单片机,它将CPU、存储器(少量的RAM、ROM或两者都有)和其它外设封装在同一片集成电路里。常见的有8051。
嵌入式DSP专门用来对离散时间信号进行极快的处理计算,提高编译效率和执行速度。在数字滤波、FFT、谱分析、图像处理的分析等领域,DSP正在大量进入嵌入式市场。
什么是嵌入式系统和嵌入式微处理器
嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般就具备以下4个特点:1)对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。3)可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处理器。4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有mW甚至μW级。
阻碍嵌入式LINUX系统开发的因素有哪些
1) 硬件方面:
嵌入式32位微处理器系统具有非常广阔的市场前景,目前国际上已有厂商推出自己的产品,但是设计嵌入式32位微处理器系统对大多数开发者来说却存在很大困难。嵌入式32位微处理器内部结构非常复杂,工作频率达几十兆甚至几百兆HZ,所用到的外围器件如存储器和网络器件也都是工作在很高频率上的复杂器件。所以,设计和调试32位微处理器系统硬件,对任何硬件设计人员都是具有挑战性的工作,产品开发成本很高周期很长。
2) 软件方面:
作为比较新的一个操作系统,开发人员需要研究其工作原理,阅读大量文档和源代码,熟悉许多的开发工具,才能掌握它;作为开放源代码软件,许多用户感觉技术服务难以得到保证;一些用户必须的文档缺乏或者写得不清楚,给用户开发带来困难;软件和用户的硬件之间存在较大差距,要使嵌入式Linux顺畅运行,用户仍然有许多烦琐的与硬件接口的底层软件要做;嵌入式Linux软件发布有许多种类,可以提供给用户选择的硬件平台却非常缺乏。