蓬勃发展的嵌入式计算机结构
金惠华
金惠华 教授,博士生导师,北京航空航天大学容错计算机、分布式计算机研究方向的学术带头人。他主持研制的"四余度飞控容错计算机原理试验样机"及时提供给飞机总体所进行飞控原理性综合试验。主持研制的"非航空电子模拟综合装置(NASI)已用于NAMP验证和系统综合,并荣获航空科技进步二等奖,型号研制三等功。他在实时嵌入式应用硬软件方面的研究工作已用于航空、航天和工业控制的许多项目中。
说起嵌入式大家可能有点陌生,但提到单片机可能就无人不知了,实际上单片机是嵌入式应用的一种形式。嵌入式应用还包括单板机、多板机、工控机等,凡是将计算机的主机嵌埋在应用系统或设备之中,不为用户所知的计算机应用方式都是嵌入式应用。在这里计算机没有一般主机式应用的键盘、鼠标、显示器,但它们却是系统的核心、设备的智能部件。近30年来,在这个应用领域内技术蓬勃发展,市场迅猛扩大,应用深入到生产生活的每个角落。回顾嵌入式体系结构的发展可以说是风起云涌、波澜壮阔。
起于青萍之末
` 应当说把计算装置嵌埋在系统和设备之中,在电子数字计算机出现之前就有了。最早是将齿轮、凸轮、园盘等连接起来解微分方程的机械式模拟计算装置,到50年代是用电压电流表示数据,用加法器、乘法器、微分器、积分器等对模拟量进行操作,这些部件在50年代是用电子管实现,60年代用晶体管实现。第一代电子管计算机(1946~1957年)是像ENIAC那样占地170m2、重达30吨、耗电140千瓦的"庞然大物",无法满足嵌入式计算机所要求的体积小、重量轻、耗电少、可靠性高、实时性强等一系列要求。60年代以晶体管、磁芯存储为基础的计算机开始用于航空等军用领域。第一台机载专用数字计算机是奥托内蒂克斯公司为美国海军舰载轰炸机"民团团员"号研制的多功能数字分析器(Verdan),它由几个体积相当大的黑盒子组成,中央处理装置处理所有主要电子系统来的信号,开始有了数据总线的雏形。同时嵌入式计算机开始应用于工业控制。1962年一个美国乙烯厂实现了工业装置中的第一个直接数字控制(DDC)。
嵌入式计算机的兴起是在1965~1970年集成电路化的第三代计算机期间,在军事和空间领域的需求推动下,计算机的硬、软件技术达到了可以把人送上月球再返回地面的可靠性要求。第一次使用机载数字计算机控制的是1965年发射的Gemini3号,第一次通过容错来提高可靠性是1968年的阿波罗4号、土星5号。阿波罗计算机是嵌入式的,它又可以人机交互,靠机器和人的紧密结合来引导飞行。在这一时期计算机系统结构技术取得了许多重大发展,出现了并行、先行控制、流水线、操作系统等新技术,和影响广泛的IBM360系列机。而1963年DEC公司推出的第一台商用小型机由PDP8发展成PDP11系列。它的单总线结构、高速通用寄存器、强有力的中断系统、交叉存取技术,很好地适应了工业控制系统实时嵌入式应用的需求,成为工业生产集中控制的主力军。但在军用领域中,为了可靠和满足体积、重量的严格要求,还需为各个武器系统设计五花八门的专用的嵌入式计算机。
走向繁荣
嵌入式计算机的大发展是在微处理问世之后。1971年11月,Intel公司成功地把算术运算器和控制器电路集成在一起,推出了世界上第一片微处理器Intel 4004。它本来是专为袖珍计算器而设计的,由于体积小、重量轻、价格低廉和成功的设计促使Intel把它进一步通用化,推出了4位的4040、8位的8008。1973年至1977年间各厂家推出了许多8位的微处理器,包括Intel 8080/8085,Motorola 的6800/6802,Zilog的Z80和Rockwell的6502。微处理器不单用来组成微型计算机,而且用来制造仪器仪表、医疗设备、机器人、家用电器等。仅与8085代码兼容的8085/Z80微处理器的销售就超过7亿片,其中大部分是用于嵌入式工业控制应用。这时,人们再也不必为设计一台专用机而研制专用的电路、专用的运算器了,只需以微处理器为基础进行设计。为了适应高档嵌入式控制的要求,AMP推出了2900系列位片机,用多个位片组成任意字长的处理器。
微处理器的广泛应用形成了一个广阔的嵌入式应用市场,计算机厂家除了要继续以整机方式向用户提供工业控制计算机系统外,开始大量地以插件方式向用户提供OEM产品,再由用户根据自己的需要构成专用的工业控制微型计算机,嵌入到自己的系统设备中。
为了灵活兼容,形成了标准化、模块化的单板机系列。流行的单板计算机有Intel公司的iSBC系列、Zilog公司的MCB等。这时人们开始不必从选择芯片开始来设计一台专用的嵌入式计算机了,只要选择一套适合自己应用的CPU板、存储器板和各式I/O插件板,就可以组建一台专用计算机。用户和厂家都希望从不同的厂家选购最适合的OEM产品,插入外购或自制的机箱中就形成新的系统,即希望插件是互相兼容的,这就导致了工业控制微机系统总线的诞生。1976年Intel推出Multibus,1983年扩展为带宽达40MB/S的MultibusⅡ;1978年Prolog设计简单的STD总线广泛用于小型嵌入式系统;1981年Motorola推出的VME_Bus则与MultibusⅡ瓜分高端市场。
80年代可以说是各种总线层出不穷、群雄并起的时代。
随着微电子工艺水平的提高,集成电路制造商开始把嵌入式应用所需要的微处理器I/O接口、A/D、D/A转换串行接口以及RAM、ROM通通集成到一个VLSI中,制造出面向I/O设计的微控制器,就是我们俗称的单片机。最早的单片机Intel 8048出现在1976年,80年代初Intel在它的基础上发展成为著名的8051,Motorola推出68HC05,Zilog公司则转向专门生产他的Z80单片机。这些含有8位微处理器、256B RAM、4Kb ROM、4个8位并口、1个全双工串口、两个16位定时器的单片机,迅速地渗入到消费电子、医用电子、智能控制、通信电子、仪器仪表、交通运输等各种领域。根据各种不同的应用要求不断改进工艺,提高运行速度,降低功耗。把不同的外设接口配置到芯片内,衍生成几十个品种,各种各样的型号,可以说是"总有一款适合你"。如果8位处理器处理速度太慢,还有16位的单片机。还有一批专门用于高速实时信号处理的数字信号处理器DSP,像Texas公司推出的TMS32010系列通用DSP和广泛用于Modem、复印机、电话机等智能化产品,针对具体应用任务具有特定功能算法的DSP。
日臻完善
80年代后,嵌入式计算机的大发展还要归功于开发技术的进步。最初的嵌入式计算机都是非常专用的,软件也是专门配套用汇编甚至机器语言研制的。在微处理器出现的初期,为了保障嵌入式软件的时间、空间效率,软件也只能用汇编语言编写。这样嵌入式系统的开发只能由非常专业的计算机人才,用原始的工具来完成,其效率低、周期长。由于微电子技术的进步,对软件的时空效率的要求不再那么苛刻了,嵌入式计算机的工作软件开始使用PL/M、C等高级语言。在军工领域为改变各种武器系统使用五花八门的专用语言和软件使系统费用不断增加的状况,美国推行三军通用的Ada语言,开发可重用的通用软件,提高软件生产效率。
嵌入式系统都是实时系统,而且多是强实时多任务系统。70年代的小型计算机为了适应实时应用领域的需求,由计算机生产厂家为自己的机器配置实时操作系统(RTOS)。实时操作系统作为操作系统的一个重要分支已成为研究的一个热点,探讨实时多任务调度算法和可调度性、死锁解除等问题。这些实时操作系统或者是在Unix内核的基础上进行实时性修改,或者是独立设计的纯实时系统,但都是为厂家自己的系列机研制的。
80年代初开始出现了一批软件公司,推出商品化的嵌入式实时操作系统。像Ready System(后来的Microtec Research)公司的VRTX、Integrated System Incorporation(ISI)的PSOS与IMAG 公司的Vx_Works、QNX公司的QNX等。它们采用全抢占调度方案,响应时间很短;采用微内核技术,设计追求灵活性,可配置、可裁剪、可扩充、可移植;强实时和高可靠性,有适应各种主流CPU的版本,非常适合嵌入式应用。商用嵌入式实时多任务操作系统把嵌入式系统的开发工作从小范围内解放出来,促使嵌入式应用扩展到更广阔的领域。
应用走向纵深
90年代,在分布控制、柔性制造、数字化通信和数字化家电等巨大需求的牵引下,嵌入式应用进一步加速发展。面向实时信号处理算法的DSP向高速、高精度、低功耗发展,Texas推出第三代DSP单片TMS320C30,微控制器向32位高速智能化接口前进;Motorola推出了32位的683XX系列,广泛用于数字通信、程控交换机;Intel也把 80386CPU和PC AT的外围电路集成为一个80386EX嵌入式微处理器,可方便地将丰富的PC软件转向嵌入式应用。这时,以往那种8位微处理器和微控制器的开发手段已不适应人们对开发速度的要求,嵌入式系统软件生产成为新的一轮竞争的焦点,不少公司纷纷推出嵌入式系统的集成化的开发环境。像MR公司的XRAY,IMAG的Tornado等,它们都采用交叉开发方法,在Unix或Windows主机平台上开发与之连接的目标机。开发环境包括自己的可剪裁的微内核实时多任务操作系统,主机上的编译、调试、查看等工具,以及利用串口、网络、ICE等主机与目标机的连接工具。它们的特点是有各种第三方的开发工具可以选用,像"逻辑分析仪"、代码测试工具、源码分析工具等一应俱全,支持多种32位目标机体系结构,支持多处理器并行开发。使用这样的工具自然大大加快了产品的开发速度。
90年代末期,在计算机、控制、通信互相融合的基础上,开始了计算机和家电融合的新浪潮,DVD、数码相机、数码摄像机、数码彩电等数字化、智能化的家用电器走出实验室,走向商品货架。在跨入数字化社会的过程中,嵌入式体系结构,包括嵌入式硬件、嵌入式软件、嵌入式开发环境起着开路先锋的作用。在新的世纪里它将进一步发展,为人类做出更多的贡献。今天,在一架先进的飞机上可能有十几台嵌入式微机、上百个单片机,到下世纪你会在你的家里发现同样多的嵌入了电脑的产品在为你服务。