摘要:嵌入式系统诞生于微型机时代,经历了漫长的独立发展的单片机道路。给嵌入式系统寻求科学的定义,必须了解嵌入式系统的发展历史,按照历史性、本质性、普遍通用性来定义嵌入式系统,并把定义与特点相区分。由于嵌入式系统应用中,对象系统的广泛性与单片机的独主发展道路,使嵌入式系统应用在客观上存在两种模式,从学科建设上,可统一成嵌入式系统应用的高低端。
关键词:嵌入式系统发展史 嵌入式系统定义 应用模式 高低端应用
目前,在嵌入式系统应用领域中,不少人对什么是嵌入式系统不甚了解。有些人搞了十多年的单
片机应用,不知道单片机就是一个最典型的嵌入式系统;也有些人在解释什么是嵌入式系统时,不是从定义出发,而是列举了嵌入式系统的一些特点,往往不知所
云。因此,有必要从现代计算的发展历史,了解嵌入式系统的由来,从学科建设的角度来探讨嵌入式系统较为准确的定义。
1 现代计算机的技术发展史
(1)始于微型机时代的嵌入式应用
电子数字计算机诞生于1946年,在其后漫长的历史进程中,计算机始终是供养在特殊的机房
中,实现数值计算的大型昂贵设备。直到20世纪70年代,微处理器的出现,计算机才出现了历史性的变化。以微处理器为核心的微型计算机以其小型、价廉、高
可靠性特点,迅速走出机房;基于高速数值解算能力的微型机,表现出的智能化水平引起了控制专业人士的兴趣,要求将微型机嵌入到一个对象体系中,实现对象体
系的智能化控制。例如,将微型计算机经电气加固、机械加固,并配置各种外围接口电路,安装到大型舰船中构成自动驾驶仪或轮机状态监测系统。这样一来,计算
机便失去了原来的形态与通用的计算机功能。为了区别于原有的通用计算机系统,把嵌入到对象体系中,实现对象体系智能化控制的计算机,称作嵌入式计算机系
统。因此,嵌入式系统诞生于微型机时代,嵌入式系统的嵌入性本质是将一个计算机嵌入到一个对象体系中去,这些是理解嵌入式系统的基本出发点。
(2)现代计算机技术的两大分支
由于嵌入式计算机系统要嵌入到对象体系中,实现的是对象的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。
通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。 而嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。
早期,人们勉为其难地将通用计算机系统进行改装,在大型设备中实现嵌入式应用。然而,对于
众多的对象系统(如家用电器、仪器仪表、工控单元……),无法嵌入通用计算机系统,况且嵌入式系统与通用计算机系统的技术发展方向完全不同,因此,必须独
立地发展通用计算机系统与嵌入式计算机系统,这就形成了现代计算机技术发展的两大分支。
如果说微型机的出现,使计算机进入到现代计算机发展阶段,那么嵌入式计算机系统的诞生,则标志了计算机进入了通用计算机系统与嵌入式计算机系统两大分支并行发展时代,从而导致20世纪末,计算机的高速发展时期。
(3) 两大分支发展的里程碑事件
通用计算机系统与嵌入式计算机系统的专业化分工发展,导致20世纪末、21世纪初,计算机
技术的飞速发展。计算机专业领域集中精力发展通用计算机系统的软、硬件技术,不必兼顾嵌入式应用要求,通用微处理器迅速从286、386、486到奔腾系
列;操作系统则迅速扩张计算机基于高速海量的数据文件处理能力,使通用计算机系统进入到尽善尽美阶段。
嵌入式计算机系统则走上了一条完全不同的道路,这条独立发展的道路就是单芯片化道路。它动员了原有的传统电子系统领域的厂家与专业人士,接过起源于计算机领域的嵌入式系统,承担起发展与普及嵌入式系统的历史任务,迅速地将传统的电子系统发展到智能化的现代电子系统时代。
因此,现代计算机技术发展的两大分支的里程碑意义在于:它不仅形成了计算机发展的专业化分工,而且将发展计算机技术的任务扩展到传统的电子系统领域,使计算机成为进入人类社会全面智能化时代的有力工具。
2 嵌入式系统的定义与特点
如果我们了解了嵌入式(计算机)系统的由来与发展,对嵌入式系统就不会产生过多的误解,而能历史地、本质地、普遍适用地定义嵌入式系统。
(1) 嵌入式系统的定义
按照历史性、本质性、普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计算机系统”。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。对象系统则是指嵌入式系统所嵌入的宿主系统。
(2) 嵌入式系统的特点
嵌入式系统的特点与定义不同,它是由定义中的三个基本要素衍生出来的。不同的嵌入式系统其特点会有所差异。
与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。
与“专用性”的相关特点:软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。
与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。
另外,在理解嵌入式系统定义时,不要与嵌入式设备相混淆。嵌入式设备是指内部有嵌入式系统的产品、设备,例如,内含单片机的家用电器、仪器仪表、工控单元、机器人、手机、PDA等。
(3)嵌入式系统的种类与发展
按照上述嵌入式系统的定义,只要满足定义中三要素的计算机系统,都可称为嵌入式系统。嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。
有些人把嵌入式处理器当作嵌入式系统,但由于嵌入式系统是一个嵌入式计算机系统,因此,只有将嵌入式处理器构成一个计算机系统,并作为嵌入式应用时,这样的计算机系统才可称作嵌入式系统。
嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系
统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。因此,嵌入式系统作为一个专
用计算机系统,要不断向计算机应用系统发展。因此,可以把定义中的专用计算机系统引伸成,满足对象系统要求的计算机应用系统。
3 嵌入式系统的独立发展道路
(1)单片机开创了嵌入式系统独立发展道路
嵌入式系统虽然起源于微型计算机时代,然而,微型计算机的体积、价位、可靠性都无法满足广大对象系统的嵌入式应用要求,因此,嵌入式系统必须走独立发展道路。这条道路就是芯片化道路。将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。
在探索单片机的发展道路时,有过两种模式,即“Σ模式”与“创新模式”。“Σ模式”本质上
是通用计算机直接芯片化的模式,它将通用计算机系统中的基本单元进行裁剪后,集成在一个芯片上,构成单片微型计算机;“创新模式”则完全按嵌入式应用要求
设计全新的,满足嵌入式应用要求的体系结构、微处理器、指令系统、总线方式、管理模式等。Intel公司的MCS-48、MCS-51就是按照创新模式发
展起来的单片形态的嵌入式系统(单片微型计算机)。MCS-51是在MCS-48探索基础上,进行全面完善的嵌入式系统。历史证明,“创新模式”是嵌入式
系统独立发展的正确道路,MCS-51的体系结构也因此成为单片嵌入式系统的典型结构体系。
(2)单片机的技术发展史
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
SCM即单片微型计算机(Single Chip
Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展
道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。
MCU即微控制器(Micro Controller
Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域
都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展
MCU方面,最著名的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
单片机是嵌入式系统的独立发展之路,向
MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工
具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
4 嵌入式系统的两种应用模式
嵌入式系统的嵌入式应用特点,决定了它的多学科交叉特点。作为计算机的内含,要求计算机领
域人员介入其体系结构、软件技术、工程应用方面的研究。然而,了解对象系统的控制要求,实现系统控制模式必须具备对象领域的专业知识。因此,从嵌入式系统
发展的历史过程,以及嵌入式应用的多样性中,可以了解到客观上形成的两种应用模式。
(1) 客观存在的两种应用模式
嵌入式计算机系统起源于微型机时代,但很快就进入到独立发展的单片机时代。在单片机时代,
嵌入式系统以器件形态迅速进入到传统电子技术领域中,以电子技术应用工程师为主体,实现传统电子系统的智能化,而计算机专业队伍并没有真正进入单片机应用
领域。因此,电子技术应用工程师以自己习惯性的电子技术应用模式,从事单片机的应用开发。这种应用模式最重要的特点是:软、硬件的底层性和随意性;对象系
统专业技术的密切相关性;缺少计算机工程设计方法。
虽然在单片机时代,计算机专业淡出了嵌入式系统领域,但随着后PC时代的到来,网络、通信
技术得以发展;同时,嵌入式系统软、硬件技术有了很大的提升,为计算机专业人士介入嵌入式系统应用开辟了广阔天地。计算机专业人士的介入,形成的计算机应
用模式带有明显的计算机的工程应用特点,即基于嵌入式系统软、硬件平台,以网络、通信为主的非嵌入式底层应用。
(2)两种应用模式的并存与互补
由于嵌入式系统最大、最广、最底层的应用是传统电子技术领域的智能化改造,因此,以通晓对
象专业的电子技术队伍为主,用最少的嵌入式系统软、硬件开销,以8位机为主,带有浓重的电子系统设计色彩的电子系统应用模式会长期存在下去。另外,计算机
专业人士会愈来愈多地介入嵌入式系统应用,但囿于对象专业知识的隔阂,其应用领域会集中在网络、通信、多媒体、商务电子等方面,不可能替代原来电子工程师
在控制、仪器仪表、机械电子等方面的嵌入式应用。因此,客观存在的两种应用模式会长期并存下去,在不同的领
域中相互补充。电子系统设计模式应从计算机应用设计模式中,学习计算机工程方法和嵌入式系统软件技术;计算机应用设计模式应从电子系统设计模式中,了解嵌
入式系统应用的电路系统特性、基本的外围电路设计方法和对象系统的基本要求等。
(3) 嵌入式系统应用的高低端
由于嵌入式系统有过很长的一段单片机的独立
发展道路,大多是基于8位单片机,实现最底层的嵌入式系统应用,带有明显的电子系统设计模式特点。大多数从事单片机应用开发人员,都是对象系统领域中的电
子系统工程师,加之单片机的出现,立即脱离了计算机专业领域,以“智能化”器件身份进入电子系统领域,没有带入“嵌入式系统”概念。因此,不少从事单片机应用的人,不了解单片机与嵌入式系统的关系,在谈到“嵌入式系统”领域时,往往理解成计算机专业领域的,基于32位嵌入式处理器,从事网络、通信、多媒体等的应用。这
样,“单片机”与“嵌入式系统”形成了嵌入式系统中常见的两个独立的名词。但由于“单片机”是典型的、独立发展起来的嵌入式系统,从学科建设的角度出发,
应该把它统一成“嵌入式系统”。考虑到原来单片机的电子系统底层应用特点,可以把嵌入式系统应用分成高端与低端,把原来的单片机应用理解成嵌入式系统的低
端应用,含义为它的底层性以及与对象系统的紧耦合。
来源:单片机与嵌入式系统应用 作者:北京航空航天大学 何立民
思考:一直对很多概念存有疑惑,想要探究本质。这种想法应该说是好的,但是往往很多没有明确的
统一的定义。只能在实践和学习过程中,不断总结,加深认识。何教授这篇文章从历史发展的角度去探讨这些概念的定义,是一种比较合理的方法。但是,应该说,
这些仍然没有一个统一的认可。
不过,就何教授的分类模型,可以合理解决很多疑惑。
比如,现在的单片机与嵌入式系统的概念,其实应该统一为嵌入式系统。也就是说,单片机只是嵌入式系统的低端应用(这里的低端并非说技术低,层次低,而是
说,更接近底层),有明显的电子技术应用模式;以网络、通信为主的非嵌入式底层应用则是嵌入式系统的高端应用,有明显的计算机工程应用模式。这两种模式应
该互为补充,通常所说的软硬结合也就是基于此了。
平时所说的SoC,有两层含义。一层是技术设计方法,一层是对应的物理实现。SoC,是个整体的设计方法概念,它指的是一种芯片设计方法,集成了各种功能
模块,每一种功能都是由硬件描述语言设计程序,然后在SoC内由电路实现的;每一个模块不是一个已经设计成熟的ASIC“器件”,只是利用芯片的一部分资
源去实现某种传统的功能。这种功能是没有限定的,可以是存储器,当然也可以是处理器,如果这片SoC的系统目标就是处理器,那么做成的SoC就是一个
MCU;如果要做的是一个完整的带有处理器的系统,那么MCU就是整个SoC中的一个模块,一个IP。SoC可以做成批量生产的通用器件,如MCU;也可
以针对某一对象专门设计,可以集成任何功能,不像MCU那样有自身架构的限定。它的体积可以很少,特殊设计的芯片可以根据需要减少体积、降低功耗,在比较
大的范围内不受硬件架构的限制(当然,它也是会受芯片自身物理结构的限制,如晶圆类型、大小等)。
SoC的一大特点就是其在仿真时可以连同硬件环境一起仿真,仿真工具不只支持对软件程序的编译调试,同时也支持对硬件架构的编译调试,如果不满意硬件架构
设计,想要加一个存储器,或是减少一个接口都可以通过程序直接更改,这一点,MCU的设计方法是无法实现的,MCU的方法中,硬件架构是固定的,是不可更
改的,多了只能浪费,少了也只能在软件上想办法或是再加,存储空间不够可以再加,如果是接口不够则只能在软件上想办法复用。仿真之后可以通过将软、硬件程
序下载到FPGA上进行实际硬件调试,以便更真实地进行器件测试。如果硬件调试成功后直接投片生产成“固定结构的芯片”,则其为普通的SoC;如果其硬件
就是基于FPGA的,也就是说它是“用FPGA做为最终实现”
的,它在以后也可以随时进行硬件升级与调试的,我们就叫它为SOPC的设计方法,所以说SOPC是SoC的一种解决方案。SOPC设计灵活、高效,且具有
成品的硬件可重构特性(SoC在调试过程中也可硬件重构),它的适用性可以很广,针对不同的对象,它可以进行实时的结构调整,如减少程序存储空间、增加接
口数目等,这一附加价值是任何固定结构IC所无法具备的,但它的价格可能会比批量生产的固定结构IC要贵得多!
广义的单片机与ARM也不应该放在一起比较。因为这是从不同的角度上定义的两个概念,不具有可比性。ARM是英国公司,是商标,是一种架构,也是IP核。
在应用层次上,我们说ARM MCU,就是说基于ARM核构建的MCU。而广义的单片机是从应用角度来定义的,参考上面的论断。所以我觉得,ARM
MCU如果不加OS,只是作为原先单片机的替代,那么可以认为是单片机。而ARM
MCU因为强大的功能更多的用于网络通信等复杂场合,所以这是就可以认为是嵌入式系统的高端应用的载体了,也就不认识是单片机了。
当然,可以不过分苛求。但是了解历史,了解这些常识还是非常重要的。对自己的学习规划和认识,都有非常重要的帮助。学习,不但要知其然,知其所以然,而且要知其所以为然。