剑三深入敌营:什么是嵌入式系统?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/02 20:50:06

比如说手机上的操作系统。

嵌入式系统的定义: 根据英国电机工程师协会的定义,嵌入式系统为控制、监视或辅助设备、机器或甚至工厂运作的装置。它具备了下列的特性: <BR>通常执行特定功能,与一般桌上型办公设备或数据库伺服系统有很大的区别。 <BR>以微电脑与周边构成核心,其规模可由如8051单芯片到先进的x86芯片系统不等。 <BR>严格的时序与稳定度要求,例如在机器控制上,稍有不慎则可能失去控制,酿成灾害。 <BR>全自动操作循环,例如断电时的紧急处理,使复电后仍能回复原有的状态。 <BR>嵌入式系统几乎涵盖所有微电脑控制的装置,例如个人计算机中的磁盘驱动器或光驱的伺服控制与数据存取接口等。在美国工程发展的历史上,1949年由J. Presper Eckrt及John Mauchly完成的BINVAC ( BINary Automatic Computer ) ,其中一项目的为操控长程飞弹,1944年由Jay W. Forrest 开始的WHIRLWIND计划 ( 于1951年完成 ),则制作出全美第一台实时计算机 ( real-time computer ),其目的为指挥军用飞行器的训练设备。我们可以说,嵌入式系统设计的技术发展与微电脑技术的演进是相辅相成的,其中嵌入式系统的需求刺激,更是微电脑今日成功的主要动力。<BR>您如果想要知道世界上顶尖的嵌入式系统设计族群在说甚么语言,或是目前热衷于追求甚么,请参阅Embedded System Programming。<BR>嵌入式系统设计的等级<BR>嵌入式系统的设计可说是小规模的系统整合,较偏重于技术层面,不若系统整合,往往人的整合因素取决系统的成败。以今日电子信息的版图而言,嵌入式系统的设计概分为几个层次。我们以制作一个MP3 Player/Recorder来说明。假设此一装置包含MP3压缩/解压缩技术,MP3数据储存及读取,音乐拨放与录音,以及使用者接口四大部分。之所以取此例子,是因为音乐不能间断,因此有一定程度的时序要求。 <BR>以现有的MP3压缩/解压缩芯片为主轴。此时所设计的微电脑,大部分的时间在作数据储存及搬运的动作,其目的在"服侍″该MP3芯片及收集使用者命令。虽有实时性需求。但只要时间来得及就够,微电脑本身无须复杂。 <BR>以韧体实现MP3功能。这时候设计的变化就相当多了。简单的设计是使用如 1. 之Master-Slave架构,以一计算功能较强的芯片执行MP3计算。进一步的设计是使用单芯片。完全以韧体作到所述的四项功能。 <BR>MP3韧体实现的差异。由于MP3并无规范如何执行压缩及解压缩。因此韧体的实现端看设计者的功力,如程序最佳化、定点数与浮点数的问题,以及可否运用一些技巧简化计算流程等。注意嵌入式系统设计并非重新发明轮子,但必须遵守工程设计的原则——以最少的资源达到最大的效能。 <BR>是否使用实时多任务核心。虽说这样的一个小装置牵涉的工作不多,但各项工作间有一定程度的interlock,也就是时序与优先权的关系。使用多任务核心的目的,是将CPU资源的分配,与实际工作内容分开,并利用核心将韧体模块化,便于维护及管理。 <BR>是否朝SOC ( System On Chip ) 的方向发展。由于ASIC的设计制造日趋成熟,嵌入式系统的整合功能,在一定生产规模下,也可是ASIC的一部份,由于ASIC的设计弹性及初期成本仍不如使用微电脑,因此目前在较复杂概念系统的实现上,仍有些困难。 <BR>由这一例子可见,嵌入式系统的设计包含核心技术部分及整合部分。核心技术为其灵魂,但整合部分为其肉体。没有核心技术实现能力,则没有竞争力;缺乏有效的整合,则造成无谓的时间及成本的浪费,同样的没有竞争力。我们说一个人有三头六臂,一组好的嵌入式系统设计团队,就是要具备三头六臂。<BR>网络世代下的嵌入式系统<BR>人们或许忙着注意因特网对人的生活及消费行为的革命。但网络的发达将使几乎所有具备微电脑的设备变成名符其实的嵌入式系统。想象一下你家里的电冰箱微电脑系统与网络超级市场的计算机联机,在牛奶不足的时候自动订货;又如实际一点的,我们已经可以透过同步网络,使相距数百公尺的两颗伺服马达同步运转。 <BR>从嵌入式系统的设计上,这意味着我们将可以轻易的透过网络,实现并行处理的功能。也同时代表嵌入式的特定功能,将因网络的发达而可随时更改 ( 如工业机台的远程维修与更新 )。 </P><P>从许多微控制器将网络功能 ( 不一定是以太网络 ) 内建的趋势看,嵌入式系统设计工程师若不具备网络的观念,将无法赶上这一波的革命嵌入式系统的管家——实时多任务核心实时多任务核心 (real-time multi-tasking kernel) 是实时多任务操作系统(Real-time Multi-tasking Operating System, 简称 RTOS) 的心脏部分。它主要负责的工作是掌管CPU时间的分配,内存的管理,以及操作系统下各工作之间的连系。讲到操作系统,一般人通常习惯于微软的作业平台。但以专业的眼光来看,微软的作业平台并非RTOS,对大多数的嵌入式应用而言是不够的。其次,操作系统的一般设计理念是针对一般性的使用,因此附加许多如档案系统模块等,使其大小动辄上百Mb。这对需精简有效的嵌入式系统而言是庞大负担。因此直接取实时多任务操作系统的核心来整合是最直接的办法。事实上除了微软的作业平台外,其它大部分实时多任务操作系统均已具有scalable的功能,也就是说视应用需求,该系统大小可由数百Kb至数百Mb。 <BR>以Intel系列芯片而言,目前成长最快的非微软操作系统首推Linux,由于是免费且open source,已有数个团队将其核心修改以具备real-time能力。同时熟悉其安装程序及核心运作机制后,可将其缩小至数百Kb还具备网络功能。对嵌入式系统而言,无疑是最理想的作业平台。至于非Intel系列芯片,其实时多任务核心目前仍为百家争鸣(相信未来也是),根据经验,由于非Intel系列芯片嵌入式系统硬件变化太大,无法有一个实时多任务核心敢号称不用修改即可任意安装使用。因此嵌入式系统设计团队必须有能力修改或甚至创造实时多任务核心,以强化竞争力。本实验室于1995年即出版全台湾第一本以C/C++建构实时多任务核心的专书。并实际在PC上实现此核心。同时亦针对德州仪器公司TMS320系列DSP芯片撰写实用之micro kernel。 </P><P>对实时多任务核心有兴趣的同学可参考下列书籍, <BR> </P><P>Jean J. Labrosse, uC/OS The Real-time Kernel, R&D Publications, 1992. <BR> <BR>胡竹生、尹燕陶,实时多任务核心程序设计,第二版,全华图书公司,1995年9月。 <BR> <BR>胡竹生,“嵌入式系统之软件设计平台 - 实时多任务微核心”,电子月刊,第二十五期,第88至95页,1997 年 8 月。 </P><P>对于嵌入式系统programming, 可参考: <BR> </P><P>Michael Barr, Programming Embedded Systems in C/C++, O'Reilly & Associates. <BR>后PC时代的来临<BR>不容讳言的,由于个人计算机(PC)的强势发展,在80与90年代,只要是稍微复杂的系统如工业控制器或甚至POS(point-of-sale)等,没有人不会想到用PC为整合平台。这个潮流下,对嵌入式系统的发展有两个重要的限制,一是Intel系列芯片的倚赖,其次是微软作业平台的迁就(compromise)。许多嵌入式系统的发展均以具创意的小规模市场为起点,在"西瓜效应"下,很难抵抗潮流的强大压力。像是近亲繁衍般,Intel系列芯片与微软作业平台不断制造出来的应用,就像同一家族的后代,长相相似。从技术的发展来说,这往往是创意的杀手。 <BR>这不是单就使用习惯与资源而言,想象有一个人设计了一种非微软、非Intel的嵌入式系统,虽然具有创意,但由于其市场规模无法与个人计算机相比,其使用的操作系统,微处理器及外围芯片,甚至整个电路板的成本,均较为昂贵。因此在后续发展上,前途暗淡。现实一点的会说,这个人是傻子,螳臂如何挡车? </P><P>事实上世界上存在许多这种傻子,而后PC时代的来临,当Intel与微软的组合不再是垄断性的解决方案时,绚烂的嵌入式系统,才算诞生。这些傻子,不论是操作系统提供者(如 Linux, QNX, Psos, OS9, VRTXoc, JAVA等等),微芯片制造商(如 java chip, DSP),研发单位,技术服务,甚至名不见经传的garage company,都将有大展身手的机会。 </P><P>但由于PC-based的仰赖已深,短期内当你打开一个嵌入式系统,仍然会发现Intel的标志,而其Flash ROM内烧录的是Windows CE。但在更开放,更公平的竞争环境下,未来期待是百家争鸣的时代,也使嵌入式系统设计的技术更上一层楼。