DIY编程器网

标题: 嵌入式系统基础之:嵌入式系统概述 [打印本页]

作者: admin    时间: 2014-10-10 07:37
标题: 嵌入式系统基础之:嵌入式系统概述
        4.1  嵌入式系统概述

        4.1.1  嵌入式系统简介

        尼葛洛庞帝2001年访华时的预言“4~5年后,嵌入式智能电脑将是继PC和Internet后的最伟大发明!”。如今,嵌入式系统已成为当今最为热门的领域之一,它迅猛的发展势头引起了社会各界人士的关注。如家用电器、手持通信设备、信息终端、仪器仪表、汽车、航天航空、军事装备、制造工业、过程控制等。今天,嵌入式系统带来的工业年产值已超过1万亿美元。用市场观点来看,PC已经从高速增长期进入到平稳发展期,其年增长率由20世纪90年代中期的35%逐年下降,使单纯由PC机带领电子产业蒸蒸日上的时代成为历史。根据PC时代的概念,美国Business Week杂志提出了“后PC时代”概念,即计算机、通信和消费产品的技术将结合起来,以3C产品的形式通过Internet进入家庭。这必将培育出一个庞大的嵌入式应用市场。那么究竟什么是嵌入式系统呢?
         
        按照电器工程协会的定义,嵌入式系统是用来控制或者监视机器、装置、工厂等各种规模系统的设备。这个定义主要是从嵌入式系统的用途方面来进行定义的。
         
        那么,下面再来看一个在多数书籍资料中的关于嵌入式系统的定义:嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。笔者认为,将一套计算机控制系统嵌入到已具有某种完整的特定功能的(或者将会具备完整功能的)系统内(例如:各种机械设备),以实现对原有系统的计算机控制,此时将这个新系统叫做嵌入式系统。它通常由特定功能模块和计算机控制模块组成,主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。它具有“嵌入性”、“专用性”与“计算机系统”的3个基本要素。
         
        从这个定义可以看出,人们平常所广泛使用的手机、PDA、MP3、机顶盒都属于嵌入式系统设备;而车载GPS系统、机器人也是属于嵌入式系统。图4.1展出了人们日常生活中形形色色的嵌入式产品。的确,嵌入式系统已经进入了人们生活的方方面面。
       

        图4.1  生活中的嵌入式设备

         
        4.1.2  嵌入式系统发展历史

        嵌入式系统经过30年的发展历程,主要经历了4个阶段。
         
        第1阶段是以单芯片为核心的可编程控制器形式的系统。这类系统大部分应用于一些专业性强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制。这一阶段系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简单、价格低,因此以前在国内工业领域应用较为普遍,但是现在已经远不能适应高效的、需要大容量存储的现代工业控制和新兴信息家电等领域的需求。
         
        第2阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。其主要特点是:CPU种类繁多,通用性比较弱;系统开销小,效率高;操作系统达到一定的兼容性和扩展性;应用软件较为专业化,用户界面不够友好。
         
        第3阶段是以嵌入式操作系统为标志的嵌入式系统。其主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、支持多任务、支持网络应用、具备图形窗口和用户界面;具有大量的应用程序接口API,开发应用程序较简单;嵌入式应用软件丰富。
         
        第4阶段是以Internet、多核技术为标志的嵌入式系统。这是一个正在迅速发展的阶段。目前不少嵌入式系统提供Internet服务,而且多种多核嵌入式处理器以及支持多核的软件产品陆续进入嵌入式市场。随着新技术、新工艺的发展以及它们与信息家电、工业控制技术结合日益紧密,嵌入式设备的全能化将代表嵌入式系统的未来。
         
        4.1.3  嵌入式系统的特点

        (1)面向特定应用的特点。从前面图4.1中也可以看出,嵌入式系统与通用型系统的最大区别就在于嵌入式系统大多工作在为特定用户群设计的系统中,因此它通常都具有低功耗、体积小、集成度高等特点,并且可以满足不用应用的特定需求。
         
        (2)嵌入式系统的硬件和软件都必须进行高效地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。
         
        (3)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统,从事嵌入式系统开发的人才也必须是复合型人才。
         
        (4)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片中或单片机本身,而不是存储于磁盘中。
         
        (5)嵌入式开发的软件代码尤其要求高质量、高可靠性,由于嵌入式设备往往是处在无人职守或条件恶劣的情况下,因此,其代码必须有更高的要求。
         
        (6)嵌入式系统本身不具备二次开发能力,即设计完成后用户通常不能在该平台上直接对程序功能进行修改,必须有一套开发工具和环境才能进行再次开发。
         
        4.1.4  嵌入式系统的体系结构

        嵌入式系统作为一类特殊的计算机系统,一般包括以下3个方面:硬件设备、嵌入式操作系统和应用软件。它们之间的关系如图4.2所示。
       

        图4.2  嵌入式体系结构图

         
        硬件设备包括嵌入式处理器和外围设备。其中的嵌入式处理器(CPU)是嵌入式系统的核心部分,它与通用处理器最大的区别在于,嵌入式处理器大多工作在为特定用户群所专门设计的系统中,它将通用处理器中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。如今,全世界嵌入式处理器已经超过1000多种,流行的体系结构有30多个系列,其中以ARM、PowerPC、MC 68000、MIPS等使用得最为广泛。
         
        外围设备是指嵌入式系统中用于完成存储、通信、调试、显示等辅助功能的其他部件。目前常用的嵌入式外围设备按功能可以分为存储设备(如RAM、SRAM、Flash等)、通信设备(如RS-232接口、SPI接口、以太网接口、USB接口、无线通信等)和显示设备(如显示屏等)3类。
         
                                                                        小知识
                       
                                                                        常见存储器概念辨析:RAM、SRAM、SDRAM、ROM、EPROM、E2PROM、Flash。
                                                                            存储器可以分为很多种类,其中根据掉电后数据是否丢失可以分为RAM(随机存取存储器)和ROM(只读存储器),其中RAM的访问速度比较快,但掉电后数据会丢失,而ROM掉电后数据不会丢失。人们通常所说的内存即指系统中的RAM。
                                                                            RAM又可分为SRAM(静态存储器)和DRAM(动态存储器)。SRAM是利用双稳态触发器来保存信息的,只要不掉电,信息是不会丢失的。DRAM是利用MOS(金属氧化物半导体)电容存储电荷来储存信息,因此必须通过不停地给电容充电来维持信息,所以DRAM的成本、集成度、功耗等明显优于SRAM。
                                                                            而通常人们所说的SDRAM是DRAM的一种,它是同步动态存储器,利用一个单一的系统时钟同步所有的地址数据和控制信号。使用SDRAM不但能提高系统表现,还能简化设计、提供高速的数据传输。在嵌入式系统中经常使用。
                                                                            EPROM、E2PROM都是ROM的一种,分别为可擦除可编程ROM和电可擦除ROM,但使用不是很方便。
                                                                            Flash也是一种非易失性存储器(掉电不会丢失),它擦写方便,访问速度快,已大大取代了传统的EPROM的地位。由于它具有和ROM一样掉电不会丢失的特性,因此很多人称其为Flash ROM。
                       
         
        嵌入式操作系统从嵌入式发展的第3阶段起开始引入。嵌入式操作系统不仅具有通用操作系统的一般功能,如向上提供对用户的接口(如图形界面、库函数API等),向下提供与硬件设备交互的接口(硬件驱动程序等),管理复杂的系统资源,同时,它还在系统实时性、硬件依赖性、软件固化性以及应用专用性等方面,具有更加鲜明的特点。
         
        应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期目标的计算机软件。由于嵌入式系统自身的特点,决定了嵌入式应用软件不仅要求做到准确性、安全性和稳定性等方面需要,而且还要尽可能地进行代码优化,以减少对系统资源的消耗,降低硬件成本。
         
        4.1.5  几种主流嵌入式操作系统分析

        1.嵌入式Linux

        嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB的存储器芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。这与它自身的优良特性是分不开的。
         
        嵌入式Linux同Linux一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式Linux还在Linux基础上做了部分改进,如下所示。
         
        n 改善的内核结构。
        Linux内核采用的是整体式结构(Monolithic),整个内核是一个单独的、非常大的程序,这样虽然能够使系统的各个部分直接沟通,提高系统响应速度,但与嵌入式系统存储容量小、资源有限的特点不相符合。因此,在嵌入式系统经常采用的是另一种称为微内核(Microkernel)的体系结构,即内核本身只提供一些最基本的操作系统功能,如任务调度、内存管理、中断处理等,而类似于设备驱动、文件系统和网络协议等附加功能则可以根据实际需要进行取舍。这样就大大减小了内核的体积,便于维护和移植。
         
        n 提高的系统实时性。
        由于现有的Linux是一个通用的操作系统,虽然它也采用了许多技术来加快系统的运行和响应速度,但从本质上来说并不是一个嵌入式实时操作系统。因此,利用Linux作为底层操作系统,在其上进行实时化改造,从而构建出一个具有实时处理能力的嵌入式系统,如RT-Linux已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等各种领域。
         
        嵌入式Linux同Linux一样,也有众多的版本,其中不同的版本分别针对不同的需要在内核等方面加入了特定的机制。嵌入式Linux的主要版本如表4.1所示。
         
        表4.1 嵌入式Linux主要版本
                                                                        版    本
                       
                                                                        简 单 介 绍
                       
                                                                        mCLinux
                       
                                                                        开放源码的嵌入式Linux的典范之作。它主要是针对目标处理器没有存储管理单元MMU,它运行稳定,具有良好的移植性和优秀的网络功能,对各种文件系统有完备的支持,并提供丰富的API
                       
                                                                        RT-Linux
                       
                                                                        由美国墨西哥理工学院开发的嵌入式Linux硬实时操作系统。它已有广泛的应用
                       
                                                                        Embedix
                       
                                                                        根据嵌入式应用系统的特点重新设计的Linux发行版本。它提供了超过25种的Linux系统服务,包括Web服务器等。此外还推出了Embedix的开发调试工具包、基于图形界面的浏览器等。可以说,Embedix是一种完整的嵌入式Linux解决方案
                       
                                                                        XLinux
                       
                                                                        采用了“超字元集”专利技术,使Linux内核不仅能与标准字符集相容,还涵盖了12个国家和地区的字符集。因此,XLinux在推广Linux的国际应用方面有独特的优势
                       
                                                                        PoketLinux
                       
                                                                        它可以提供跨操作系统并且构造统一的、标准化的和开放的信息通信基础结构,在此结构上实现端到端方案的完整平台
                       
                                                                        红旗嵌入式Linux
                       
                                                                        由北京中科院红旗软件公司推出的嵌入式Linux,它是国内做得较好的一款嵌入式操作系统。目前,中科院计算机研究所自行开发的开放源码的嵌入式操作系统——Easy Embedded OS(EEOS)也已经开始进入实用阶段了
                       
                                                                        Montavista linux
                       
                                                                        MontaVista Linux是MontaVista Software于1999 年开始推出的,专门面向嵌入式系统的商业级操作系统,基于Linux内核2.6,采用可抢占内核技术,集合了MontaVista硬实时技术,性能远远高于标准2.6内核,具有更短的抢占延迟,反应速度是标准内核的200倍;采用优先级线程实现中断服务程序的调度。与Linux 家族兼容的产品:VxWorks 和LynxOS已经有一些嵌入式操作系统产品,并非从Linux裁剪或者改造而来,但是已经基本实现POSIX 兼容,在接口级与嵌入式Linux系列产品达成一致。这些产品具有优良的传统和特定的实时性、可靠性实现,在嵌入式操作系统中具有重要地位。
                       
                                                                        风河linux
                       
                                                                        风河公司(著名的实时操作系统VxWorks的厂商)一直致力于嵌入式Linux方面的研究和开发。首个满足由Linux基金会(Linux Foundation)制定的电信级Linux(CGL)4.0规范要求的商用化Linux厂商。Wind River Platform for Network Equipment, Linux Edition 2.0是首个完全遵循最新CGL规范的网络通信与电信行业Linux平台产品。
                       
         
        为了不失一般性,本书说所用的嵌入式Linux是标准内核裁减的Linux,而不是上表中的任何一种。
         
        2.VxWorks

        VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它是在当前市场占有率很高的嵌入式操作系统之一。VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,使得它们造成的延迟很短。另外VxWorks提供的多任务机制,对任务的控制采用了优先级抢占(Linux 2.6内核也采用了优先级抢占的机制)和轮转调度机制,这充分保证了可靠的实时性,并使同样的硬件配置能满足更强的实时性要求。另外VxWorks具有高度的可靠性,从而保证了用户工作环境的稳定。同时,VxWorks还有完备强大的集成开发环境,这也大大方便了用户的使用。
        但是,由于VxWorks的开发和使用都需要交纳高额的专利费,因此大大增加了用户的开发成本。同时,由于VxWorks的源码不公开,造成它部分功能的更新(如网络功能模块)滞后。
         
        3.QNX

        QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一,它具有独一无二的微内核实时平台,是建立在微内核和完全地址空间保护基础之上的,它同样具有实时性强、稳定可靠的优点。
         
        4.Windows CE

        Windows CE是微软公司开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。它是精简的Windows 95。Windows CE的图形用户界面相当出色。Windows CE具有模块化、结构化和基干Win32应用程序接口以及与处理器无关等特点。它不仅继承了传统的Windows图形界面,并且用户在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Studio等)、也可以使用同样的函数、使用同样的界面风格,使绝大多数Windows上的应用软件只需简单地修改和移植就可以在Windows CE平台上继续使用。但与VxWorks相同,Windows CE也是比较昂贵的。
         
        5.Palm OS

        Paml OS在PDA和掌上电脑有着很庞大的用户群。Palm OS最明显的特点在精简,它的内核只有几千个字节,同时用户也可以方便地开发定制,具有较强的可操作性。




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2