在现在日益信息化的社会中,计算机和网络已经全面渗透到日常生活的每一个角落。对于我们每个人,需要的已经不再仅仅是那种放在桌上处理文档,进行工作管理和生产控制的计算机"机器";各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用计算机,任何一个普通人可能拥有从大到小的各种使用嵌入式技术的电子产品,小到mp3,PDA等微型数字化产品,大到网络家电,智能家电,车载电子设备。而在工业和服务领域中,使用嵌入式技术的数字机床,智能工具,工业机器人,服务机器人也将逐渐改变传统的工业和服务方式。
目前嵌入式系统技术已经成为了最热门的技术之一,吸引了大批的优秀人才投入其中。但是对于何为嵌入式系统,什么样的技术又可以称之为嵌入式技术,仍在讨论之中,有关嵌入式系统定义的问题,已经在很多论坛社区引发了多次争论。就这个问题我们可以分别从广义上和狭义上讲:
广而化之,可以认为凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。作为系统核心的微处理器又包括三类:微控制器(MCU)、数字信号处理器(DSP)、嵌入式微处理器(MPU)。所以有人简单的说:"嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。"还有人认为嵌入式系统就是"以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统"。应该说后者从功能应用特征上比较好的给出了嵌入式系统的定义,嵌入式的概念的分析根本上应该从应用上加以切入。
从狭义上讲,我们更加强调那些使用嵌入式微处理器构成独立系统,具有自己的操作系统并且具有某些特定功能的系统,这里的微处理器专指32位以上的微处理器。按照这种定义,典型的嵌入式系统有使用x86的小型嵌入式工控主板,在各种自动化设备,数字机械产品中有非常广阔的应用空间;另外一大类是使用Intel,Motorola等专用芯片构成的小系统,它不仅仅在新兴的消费电子和通讯仪表等方面获得了巨大的发展应用空间,而且甚至有趋势取代传统的工控机。现在大家更加清楚的看到:嵌入式技术的春天已经来了。所以也就难怪嵌入式系统成为当前最热门的技术之一。(以下我所说的嵌入式系统特指采用32位,64位微处理器的系统)
嵌入式系统可以称为后PC时代和后网络时代的新秀。与传统的通用计算机,数字产品相比,利用嵌入式技术的产品有其自己的特点:
1. 由于嵌入式系统采用的是微处理器,实现相对单一的功能,采用独立的操作系统,所以往往不需要大量的外围器件。因而在体积上,功耗上有其自身的优势。相比之下,一个使用Windows CE的PDA,仅靠机内电源就可以使用几天,而任何一台笔记本仅仅能够支持3小时左右。
2. 嵌入式系统是将计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,是一门综合技术学科。由于空间和各种资源相对不足,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。
3. 嵌入式系统是一个软硬件高度结合的产物。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。片上系统,板上系统的实现,使得以pda等为代表的这类产品拥有更加熟悉的操作界面和操作方式,比着传统的商务通等功能更加完善,实用。
4. 为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCP/IP协议簇软件支持;由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。
5. 因为嵌入式系统往往和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
虽然嵌入式系统这一名词在最近几年才成为流行。但早在80年代,国际上就有一些IT组织、公司,开始进行商用嵌入式系统和专用操作系统的研发。从硬件方面讲,32,64位微处理器是目前嵌入式系统的核心,它们的使用同样也是未来发展的一大趋势。 为了抢占这个无限广阔的市场,各大硬件厂商竞相推出产品,包括Intel,Motorola,Philip,AMD等等均不甘示弱,几乎每个月都有新产品出现。进入十一月以来,Microchip推出具有数字信号处理能力的微控制器(DSC),Atmel也推出针对消费市场的可编程系统芯片(PsoC)。市场之争日益激烈,同时也给嵌入式技术的发展带来了无限活力。
从软件方面讲,目前的几大软件平分天下。VxWorks 是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,但是由于很多API是这个系统本身独有的,使得开发的兼容性受到较大影响。Os-9是主要为高科技产品设计的,提高了很好的安全和容错性,并且有很好的升级能力和灵活性。Palm Os,是Palm公司的操作系统,和微软的Windows CE是PDA操作系统的两大巨头。由于Windows CE的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制,以及微软公司强大的技术力量,虽然目前Palm还占有大部分的市场份额,但是有理由相信Win CE,必将成为PDA系统软件的一个霸主。由于国际PDA市场的快速增长,目前基于Palm和基于Win CE的应用软件有着大量的需求。这类软件由于系统功能的单一,所以软件功能也趋向专一化。而掌上设备的各种通讯,管理软件需求量极大。同时开发环境齐备,可以完全在PC机上进行,通过软件模拟调试,等到模拟通过再下载入机器,而且因为可以使用大量的pc机的API函数,SDK,所以开发过程是在已有的成熟技术基础上进行,相对简单,吸引了大量的软件开发人员进入这一领域。
未来的几年内,随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。美国著名未来学家尼葛洛庞帝99年1月访华时预言,4~5年后嵌入式智能(电脑) 工具将是PC和因特网之后最伟大的发明。我国著名嵌入式系统专家沈绪榜院士98年11月在武汉全国第11次微机学术交流会上发表的《计算机的发展与技术》一文中,对未来10年以嵌入式芯片为基础的计算机工业进行了科学的阐述和展望。1999年世界电子产品产值已超过12000亿美元,2000年达到13000亿美元,预计2005年,销售额将达18000亿美元。
进入20世纪90年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。在通信领域,数字技术正在全面取代模拟技术。在广播电视领域,美国已开始由模拟电视向数字电视转变,欧洲的DVB(数字电视广播)技术已在全球大多数国家推广。数字音频广播(DAB)也已进入商品化试播阶段。而软件、集成电路和新型元器件在产业发展中的作用日益重要。所有上述产品中,都离不开嵌入式系统技术。象前途无可计量的维纳斯计划生产机顶盒,核心技术就是采用32位以上芯片级的嵌入式技术。在个人领域中,嵌入式产品将主要是个人商用,作为个人移动的数据处理和通讯软件。由于嵌入式设备具有自然的人机交互界面,GUI屏幕为中心的多媒体界面给人很大的亲和力。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像已取得初步成效。
目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,日用范围也将日益广阔。对于企业专用解决方案,如物流管理、条码扫描、移动信息采集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于ATM机,自动售货机,工业控制等专用设备,和移动通讯设备结合、GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。近期长虹推出的ADSL产品,结合网络,控制,信息,这种智能化,网络化将是家电发展的新趋势。由此可见,嵌入式系统技术发展的空间真是无比广大。
嵌入式系统是研究的热点。促使我们投入到这个广阔的事业中去。在研究的同时,我门也可以发现由于嵌入式系统并不是突然出现的,对于微处理器应用的研究和硬件系统的研究已经有了一个很长时间的发展历史。所以无论是从硬件方面还是软件方面我们都很容易获得研发的资料。
硬件方面,不仅有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。目前低层系统和硬件平台经过若干年的研究,已经相对比较成熟,实现各种功能的芯片应有尽有。而且巨大的市场需求给我们提供了学习研发的资金和技术力量。从软件方面讲,也有相当部分的成熟软件系统。国外商品化的嵌入式实时操作系统,已进入我国市场的有WindRiver、Microsoft、QNX和Nuclear等产品。我国自主开发的嵌入式系统软件产品如科银(CoreTek)公司的嵌入式软件开发平台DeltaSystem,它不仅包括DeltaCore嵌入式实时操作系统,而且还包括LamdaTools交叉开发工具套件、测试工具、应用组件等;此外,中科院也推出了Hopen嵌入式操作系统(虽然还不够完善)。同时由于是研究热点,所以我们可以在网上找到各种各样的免费资源,从各大厂商的开发文档,到各种驱动,程序源代码,甚至很多厂商还提供微处理器的样片。这对于我们从事这方面的研发,无疑是个资源宝库。对于软件设计来说,不管是上手还是进一步开发,都相对来说比较容易。这就使得很多生手能够比较快的进入研究状态,利于发挥大家的积极创造性。
嵌入式系统是这个后PC时代的擎天之柱。我们有理由相信,未来的电子技术就是嵌入式系统技术的天下。
Re: 嵌入式系统
顶!嵌入式系统的应用实在是太广泛了
Re: 嵌入式系统
那我就来说说嵌入式系统中的关键技术
现在许多嵌入式系统要胜任的工作越来越复杂,需要采用32位的嵌入式处理器,这样嵌入式操作系统就成为嵌入式系统设计中必不可少的一个环节。众所周知通用操作系统(如Microsoft Windows系列的操作系统)并不适合直接应用在嵌入式操作系统上,为了适应嵌入式系统的需要,必须在整个系统的软件架构中引入嵌入式操作系统。
在嵌入式系统应用中,早期的16位及16位以下的微处理器计算能力有限,要处理的任务一般比较简单,因而程序员可以在应用程序中自己管理微处理器的工作流程,很少需要用到嵌入式操作系统。当系统变得较为复杂后,对系统中断的处理以及多个功能模块之间的协调需要由程序员自己来控制和解决,这样做的结果是,随着程序内部的逻辑关系变得越来越复杂,软件开发小组对于驾驭复杂的功能模块逐渐显得力不从心,为了保证中断相关处理的正确性和完整性,为了保证不同模块之间对硬件资源的共享和互斥,为了保证系统能定期执行各种任务,软件开发小组不得不编写和维护一个复杂的专用操作系统和应用程序的结合体,这样做使得系统的开发和维护成本加大,也不利于系统的升级。所以在逐渐变得复杂的嵌入式系统中采用成熟的嵌入式操作系统成为更好的解决方案,如嵌入式Linux,VxWorks、pSOS、WinCE、DeltaOS、uCOS、TinyOS等等。
为了实现一个支持各种硬件体系结构、运行稳定高效的嵌入式操作系统需要付出很多的心血,嵌入式操作系统本身包含大量的代码,而且这些代码非常精巧、相应的数据结构非常复杂,即使是读懂这些代码也要花费很多时间。比如最简单的μCOS-II嵌入式操作系统的最小实现也需近千行代码,而普通的嵌入式Linux内核则有近百万行代码。在嵌入式开发中推荐采用一种通用的嵌入式操作系统,而不是自己从头编写一个专用的嵌入式操作系统,因为通甩的嵌入式操作系统经过多年的发展一般来说稳定性,性能、功能等各方面都会比自己重写一个专用的操作系统要好,而且购买它们的成本也比自己从头开发要低得多;另外,通用嵌入式操作系统一般都遵循操作系统接口标准——POSIX,使用这些系统调用接口进行开发可以大大方便上层应用软件在不同嵌入式操作系统、不同操作系统版本之间的移植,系统升级换代方便、成本低、速度快。 总结来说采用嵌入式操作系统的原因是:解决多任务所带来的复杂性;提高应用程序的可移植性;降低系统开发和维护成本。
嵌入式操作系统中的关键技术
在一个完整的嵌入式系统中,嵌入式操作系统介于底层硬件和上层应用程序之间,如图1所示,它是整个系统中不可缺少的重要组成部分。
嵌入式操作系统与传统操作系统的基本功能是一致的,即:首先嵌入式操作系统必须能正确、高效地访问和管理底层的各种硬件资源,很好地处理资源管理中的冲突;其次嵌入式操作系统要能为应用程序提供功能完备、使用方便、与底层硬件细节无关的系统调用接口。
但嵌入式操作系统也有其独特的需求和技术特点,主要区别是:
1)许多嵌入式系统应用有实时性要求,因此多数嵌入式操作系统都具备实时性的技术指标,能保障系统的实时响应速度;
2)为适应嵌入式系统计算资源的限制,嵌入式操作系统核心部分的体积必须尽可能的小;
3)为了适应各种应用需求的变化,嵌入式操作系统还应该具有可裁减性、可伸缩性、易移植性的特点,让开发人员可以根据需要对嵌入式操作系统进行剪裁和移植;
4)嵌入式操作系统往往是长期连续运行的,因此要求要有很高的可靠性,不能“死机”;
5)针对特定的应用需求,嵌入式操作系统往往还要对某些模块做特别的性能优化和功能增强。
实时性
许多应用场合对嵌入式系统有实时性的要求,比如汽车的安全气囊要求能在一个极短的时间内侦测到汽车碰撞事件的发生并控制打开安全气囊。为了实现上述目标,一方面硬件的传感器和安全气囊要有足够快的响应速度,另一方面就是微处理器、嵌入式操作系统和相应的事件响应程序要能处理得足够快。
普通操作系统为了实现在多进程并发执行时进行正确的资源管理,往往会对某段代码通过关中断的方式进行保护,而且由于多个进程并发执行后情况变得异常复杂,关中断的时间可能被拖得很长且不确定,中断的关闭就会使得实时请求不能通过中断信号迅速告知CPU,因此系统可能出现的最长关中断时间决定着操作系统的实时性的指标。嵌入式操作系统为了提高实时性能,就必须尽量缩短操作系统代码中的关闭中断过程,并通过精心的设计确定关中断的时间长短。这些设计包括:
1)操作系统中的进程必须是具有严格优先级差异的,而且应该是抢占式的操作系统内核,即最高优先级的进程即使是最后出现,也应该最先获得运行,而且是无条件立即停止当前进程的运行来切换到具有最高优先级的进程。如图2所示。
2)与实时处理相关的函数应尽量都是可重入的,即函数中均使用局部变量。如果使用全局变量,为保证程序的正确性必须对全局变量的访问加锁,而这样的保护措施有可能导致进程堵塞,从而影响操作系统的实时性。
3)高效的克服优先级反转问题,防止高优先级的进程由于等待某些被低优先级进程已占用的资源,从而被其他低优先级的进程抢先运行,影响系统的实时性能。
4)其他实时操作系统内核的设计,如解决周期性任务的调度和时间抖动问题等。
在实时性方面,VxWorks、uC/OS-II,QNX,国内的DeltaOS等操作系统都具有较好的实时性能,其中VxWorks是性能稳定的商用实时操作系统,有较长的使用历史和广泛的用户群;uC/OS-II操作系统是开放源码的小型实验性操作系统,实时性很强,而且代码简单,便于分析、学习与改造,应用范围也很广;DeltaOS是国内自主研发的实时操作系统,广泛地应用于工业、军事等领域;普通的Linux操作系统在经过实时性改造后也可以具有较强的实时性而成为实时操作系统,如RTAI-Linux等。
当然,需要说明的是并不是所有的嵌入式系统都有实时性的要求,因此也并不是所有的嵌入式操作系统都必需是实时操作系统,在智能手机、PDA等嵌入式应用中就广泛地采用了嵌入式Linux, WinCE等非实时的操作系统。
小内核、可配置与易移植
嵌入式系统往往只具备较小的存储资源,而且存储器的大小往往与嵌入式系统的制造成本紧密相关,因此必须采用尽量小的操作系统基本内核,同时让其他各种非必须的部分通过开发人员需要进行配置并加入到操作系统的基本内核中,这样可以使得嵌入式操作系统内核的尺寸保持得较小。嵌入式操作系统的尺寸包括静态的尺寸(内核二进制文件占用非易失存储器的大小)和动态的尺寸(系统运行起来后占用内存的大小)。这两者都很重要,静态尺寸反映了对Fla-sh等非易失存储器的占用情况,动态尺寸反映了对SDRAM等系统内存的消耗情况。
可配置性是嵌入式操作系统的又一个重要特征,也是区别于通用操作系统的一个重要特点。在嵌入式领域,底层硬件和应用需求往往变化多端,有的系统需要存储管理单元来在虚拟地址空间上运行程序;有的嵌入式系统希望具有优先级抢先调度机制;有的嵌入式系统希望实时时钟的周期为20ms,有的希望是1ms;有的嵌入式系统的底层硬件有多级中断,有的只有一级中断等等。所有这些变化使一个嵌入式操作系统要想占据更大的市场份额,就必须自身具备可配置性,并且配置功能方便易用,使得同一个嵌入式操作系统的代码在经过较为方便的配置后,可以在特定的石更件平台和应用需求下获得最佳的性能。eCos嵌入式操作系统是可配置性的典型代表,它在操作系统内部设计了大量可以调节操作系统特性和性能的参数,并为配置这些参数设计了专门的配置工具,该工具具有Windows和Linux等多种版本,可以在开发主机(Host机)上方便地进行配置,如图3所示。除eCos操作系统外,其他嵌入式操作系统如OSKit、Lin-ux, VxWorks、WinCE等操作系统也具备不同程度的可配置性。
可移植性是指同一个嵌入式操作系统在进行适当修改后可以在不同的硬件平台上成功运行。由于移植的目的是希望在不同的底层硬件平台(或者说是不同的嵌入式处理器)上运行,因此嵌入式操作系统为了获得良好的可移植性,一般都将移植时一需要修改的代码集中在少数几个与硬件操作相关的C程序或汇编程序中,或者将相关代码独立成外设驱动程序,以方便系统开发人员的移植工作,比如嵌入式操作系统中提到的硬-件抽象层(HAL、板级支持包(BSP)等概念都是为加快移植工作效率而提出的;同时为方便移植,嵌入式操作系统的开发和维护团队还应该提供完整的文档来详细说明移植的过程和步骤,帮助系统设计人员完成移植工作;此外虽然嵌入式处理器多种多样,但同一系列的处理器还是非常相近的,通过提供尽可能多的已有硬件平台上的移植结果,或者由系统开发人员在Internet上搜索尽可能多的已有工作成果,也是加快移植速度、提高嵌入式操作系统可移植性的有效途径。
可靠性
任何软件都有可能存在错误,嵌入式操作系统也不例外。运行在桌面上的操作系统有时会“死机”,使用者还可以通过手工重启计算机来予以容忍,但是嵌入式系统往往要长期在无人值守的环境下运行,甚至是常年运行,因此对可靠性的要求就成为嵌入式操作系统的一个重要特点。现在已有的一些嵌入式操作系统,如嵌入式Linux, VxWorks、uC/OS等等都已经经过了多年应用的考验,也有无数的工程师对它们的代码进行了检查,一般来说这些操作系统都是较为稳定和安全的,以Linux内核为例,有研究估计570万行的Linux内核源码中约包含不到1000个程序设计错误,错误率为不到万分之二。但是没有任何方法可以证明它们是绝对安全可靠的,也许在普通应用(如手机等消费类电子产品)中这些系统还可以接受,但是在一些特殊应用场合下,如军用、医用、核电站、航空航天、工业控制、汽车制动等,系统的一个错误就可能造成很大的损失,因此针对这些领域的需求,在嵌入式系统的设计中还应该对操作系统内核的代码进行详细的检查,并进行大量的测试,保证嵌入式操作系统的可靠性。为实现这一目标,迄今为止还没有行之有效的方法,而主要依靠设计人员的丰富经验、认真仔细的作风、大量时间和人力成本的投入、广泛实际应用的检验来实现。
结语
本文探讨了嵌入式操作系统与通用的台式计算机操作系统的异同,介绍了嵌入式操作系统所具备的特点。未来随着嵌入式系统的应用需求越来越多样化、越来越复杂,嵌入式操作系统必将在上述这些特点上(如实时性、可配置性、可移植性等)越来越具有特色,分别适用于不同的嵌入式应用需求,不断加快嵌入式系统的开发周期,同时又能降低嵌入式系统的研发和生产成本。
Re: 嵌入式系统
qiangliezhichi
南京璞晓电子 www.cpx0.com需要
msn:njlianjian@hotmail.com
回复:嵌入式系统
楼主对嵌入式系统了解的这么透彻,我是一名从事嵌入式板卡销售的新手,对于这块的销售,您能给些好的建议吗?
wanglin@fy-ic.com MSN
fangyuanming2188@hotmail.com 西安方元明科技发展有限公司
www.fy-ic.com www.gocct.cn