原创 嵌入式系统入门必读

2010-5-1 13:59 1705 5 5 分类: MCU/ 嵌入式

前言:本文主要参考何立民老师的两篇关于嵌入式系统的重要论文,因为这两篇论文实在是太经典,可以说是字字珠玑,所以本文也就基本照抄了那两篇论文,只是在内容结构上进行了整合,增加了嵌入式系统开发能力模型一处内容。
 
1  现代计算机的技术发展史
 
1.1  始于微型机时代的嵌入式应用
电子数字计算机诞生于1946年,在其后漫长的历史进程中,计算机始终是供养在特殊的机房中,实现数值计算的大型昂贵设备。直到20世纪70年代,微处理器的出现,计算机才出现了历史性的变化。以微处理器为核心的微型计算机以其小型、价廉、高可靠性特点,迅速走出机房;基于高速数值计算能力的微型机,表现出的智能化水平引起了控制专业人士的兴趣,要求将微型机嵌入到一个对象体系中,实现对象体系的智能化控制。例如,将微型计算机经电气加固、机械加固,并配置各种外围接口电路,安装到大型舰船中构成自动驾驶仪或轮机状态监测系统。计算机便失去了原来的形态与通用的计算机功能。为了区别于原有的通用计算机系统,把嵌入到对象体系中,实现对象体系智能化控制的计算机,称作嵌入式计算机系统。因此,嵌入式系统诞生于微型机时代,嵌入式系统的嵌入性本质是将一个计算机嵌入到一个对象体系中去,这些是理解嵌入式系统的基本出发点。
 
1.2  现代计算机技术的两大分支
由于嵌入式计算机系统要嵌入到对象体系中,实现的是对象的智能化控制,因此,它有着与通用计算机系统完全不同的技术要求与技术发展方向。
通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。 而嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可靠性。
早期,人们勉为其难地将通用计算机系统进行改装,在大型设备中实现嵌入式应用。然而,对于众多的对象系统(如家用电器、仪器仪表、工控单元……),无法嵌入通用计算机系统,况且嵌入式系统与通用计算机系统的技术发展方向完全不同,因此,必须独立地发展通用计算机系统与嵌入式计算机系统,这就形成了现代计算机技术发展的两大分支。
如果说微型机的出现,使计算机进入到现代计算机发展阶段,那么嵌入式计算机系统的诞生,则标志了计算机进入了通用计算机系统与嵌入式计算机系统两大分支并行发展时代,从而导致20世纪末,计算机的高速发展时期。
 
1.3  两大分支发展的里程碑事件
通用计算机系统与嵌入式计算机系统的专业化分工发展,导致20世纪末21世纪初,计算机技术的飞速发展。计算机专业领域集中精力发展通用计算机系统的软、硬件技术,不必兼顾嵌入式应用要求,通用微处理器迅速从286、386、486到奔腾系列;操作系统则迅速扩张计算机基于高速海量的数据文件处理能力,使通用计算机系统进入到尽善尽美阶段。
嵌入式计算机系统则走上了一条完全不同的道路,这条独立发展的道路就是单芯片化道路。它动员了原有的传统电子系统领域的厂家与专业人士,接过起源于计算机领域的嵌入式系统,承担起发展与普及嵌入式系统的历史任务,迅速地将传统的电子系统发展到智能化的现代电子系统时代。
因此,现代计算机技术发展的两大分支的里程碑意义在于:它不仅形成了计算机发展的专业化分工,而且将发展计算机技术的任务扩展到传统的电子系统领域,使计算机成为进入人类社会全面智能化时代的有力工具。
 
2  嵌入式系统的定义与特点
 
如果我们了解了嵌入式(计算机)系统的由来与发展,对嵌入式系统就不会产生过多的误解,而能历史地、本质地、普遍适用地定义嵌入式系统。
 
2.1  嵌入式系统的定义
按照历史性、本质性、普遍性要求,嵌入式系统应定义为:“嵌入到对象体系中的专用计算机系统”。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。对象系统则是指嵌入式系统所嵌入的宿主系统。
 
2.2  嵌入式系统的特点
嵌入式系统的特点与定义不同,它是由定义中的三个基本要素衍生出来的。不同的嵌入式系统其特点会有所差异。
与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。
与“专用性”的相关特点:软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。
与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。
另外,在理解嵌入式系统定义时,不要与嵌入式设备相混淆。嵌入式设备是指内部有嵌入式系统的产品、设备,例如,内含单片机的家用电器、仪器仪表、工控单元、机器人、手机、PDA等。
 
2.3  嵌入式系统的种类与发展
按照上述嵌入式系统的定义,只要满足定义中三要素的计算机系统,都可称为嵌入式系统。嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。
有些人把嵌入式处理器当作嵌入式系统,但由于嵌入式系统是一个嵌入式计算机系统,因此,只有将嵌入式处理器构成一个计算机系统,并作为嵌入式应用时,这样的计算机系统才可称作嵌入式系统。
嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。因此,嵌入式系统作为一个专用计算机系统,要不断向计算机应用系统发展。因此,可以把定义中的专用计算机系统引伸成,满足对象系统要求的计算机应用系统。
 
3  嵌入式系统的发展历程
 
嵌入式系统诞生于微型机时代,经过微型计算机的嵌入式专用化的短暂探索后,便进入到嵌入式系统独立的微控制器发展时代。直接在嵌入式处理器与外围集成电路技术基础上发展的带处理器内核的单片机,即称为微控制器的智能化电子系统。在探索单片机的发展道路时,有过两种模式,即“Σ模式”与“创新模式”。“Σ模式”本质上是通用计算机直接芯片化的模式,它将通用计算机系统中的基本单元进行裁剪后,集成在一个芯片上,构成单片微型计算机;“创新模式”则完全按嵌入式应用要求设计全新的,满足嵌入式应用要求的体系结构、微处理器、指令系统、总线方式、管理模式等。下面用图1来解释嵌入式系统不是专用计算机。


e76ea4b5-8b77-4fcc-873d-29d0fc6578f1.jpg                                                                            


图1  嵌入式系统的诞生、探索与发展
 
3.1  专用计算机探索的失败之路
嵌入式系统诞生后,为了满足对象系统最广泛的嵌入式应用要求,不断探索嵌入式系统的应用模式,早期都是按照专用计算机的工控机、单板机、微机单片化的思路发展。
工控机是将微型计算机进行机械加固、电气加固后,作为嵌入式系统应用,无法满足嵌入式系统的微小体积、极低价位、高可靠、对象耦合性好的基本要求。随后,出现了板级状态的微型计算机(单板机),减小了计算机体积、降低了价位,迅速掀起了传统电子系统的智能化改造热潮。
无论是工控机,还是单板机,都无法彻底地满足嵌入式系统的微小体积、极低价位、高可靠性的要求。人们便直接将微型计算机体系结构进行简化,集成到一个半导体芯片中,做成单片微型计算机。Motolora公司的6801系列就是由6800系列微型机简化后集成的单片微型计算机。单片微型计算机彻底解决了嵌入式系统的极小体积、极低价位,但在高可靠性及对象可控性方面没有本质上的改进。国外将芯片化的微型计算机称作Single Chip Microcomputer(简称SCM)。
作为工业控制的嵌入式应用,高可靠性、对象耦合性至关重要,它已跳出传统计算机的应用要求。例如,嵌入式系统从一开始就把“死机”、“实时性”作为重要的技术问题,把与对象系统电气连接的总线、接口、系统配置作为重要的技术发展方向。因此,嵌入式系统必须摆脱“专用计算机”的羁绊,走独立的“微控制器”道路。实践证明,通用微控制器基础上的工控机、单板机、单芯片化的专用计算机的发展道路是行不通的。


3.2  嵌入式系统独立发展道路
SCM阶段主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”的成功奠定了嵌入式系统与通用计算机完全不同的发展道路,Intel公司功不可没。Intel MCS51是一个在微电子学、集成电路基础上,按照嵌入式应用要求,原创的嵌入式处理器。MCS51原创的体系结构、控制型的指令系统与布尔空间、外部总线方式、特殊功能寄存器(SFR)的管理模式,奠定了嵌入式系统的硬件结构基础;iDCX51是专门与MCS51单片机配置,满足嵌入式应用要求原创的实时多任务操作系统。MCS51开创了嵌入式系统独立发展的单片机时代。这是一个微控制器时代,国外及时、准确地将Single Chip Microcomputer改称为Microcontroller Unit(简称MCU)。这不是文字游戏。
MCU阶段主要的技术发展方向是:全面满足嵌入式应用要求的扩展总线、通信总线;软件的实时性要求;不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力,如与对象体系相连接的传感器接口、伺服驱动接口、人机接口与通信接口;满足低功耗管理要求的时钟系统、电源管理系统与低功耗方式;可以满足多种状态激励的中断系统等。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。在单片机时代,嵌入式系统主要用于传统电子系统的智能化改造,形成了半导体厂家与对象系统电子工程师的应用时代。更贴切地说,单片机应用系统是一个智能化的现代电子系统。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
由于嵌入式系统的广泛应用,以及半导体集成电路提供的多种支持,在嵌入式系统领域又出现了DSP及PLD的解决方案(见图1)。DSP突出信号处理功能,与嵌入式处理器相结合,成为嵌入式系统的一个重要分支;PLD则提供了门阵列半定制的嵌入式应用系统的解决方案,并形成了SoPC、FPGA/CPLD的两大分支。MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
 
4  嵌入式系统的知识结构
  
目前,嵌入式系统尚未形成独立的学科体系。从“嵌入式系统”的诞生、独立的单片机发展道路、微控制器技术发展的内涵、嵌入式系统的多种解决方案来看,“嵌入式系统”是四个支柱学科的交叉与融合,并以平台模式进行学科定位与分工。
 
4.1  四个支柱学科的关系图解
嵌入式系统的四个支柱学科是微电子学科、计算机学科、电子技术学科、对象学科,它们的关系如图2所示。微电子学科是嵌入式系统发展的基础,对象学科是嵌入式系统应用的归宿学科,计算机学科与电子技术学科是嵌入式系统技术发展的重要保证。


b4c4d5fd-c67b-41e5-a676-6213b6c4c2c3.jpg


图2  嵌入式系统四个支柱学科的交叉与融合
 
4.2  领衔的微电子学科
微电子学科与半导体集成电路的领衔作用,在于它为嵌入式系统的应用提供了集成电路基础。电子技术学科、计算机学科的许多重要成果,最终都会体现在集成电路中,从早期的数字电路集成,到如今的模数混合、软/硬件结合、以IP为基础的知识与知识行为集成。
 
4.3  为平台服务的计算机学科
现代计算机出现后,在计算机学科中形成了两大学科分支,即通用计算机学科与嵌入式计算机学科。通用计算机学科与嵌入式计算机学科有不同的技术发展方向与技术内涵。由于嵌入式计算机学科与对象学科、微电子学科紧密相关,而嵌入式计算机学科与原有计算机学科内容有较大差异,不能用通用计算机的概念来诠释嵌入式系统,因此、嵌入式计算机要加强与微电子学科、电子学科、对象学科的沟通,共同承担起嵌入式系统新学科的建设任务。
在嵌入式系统中,计算机学科要承担起嵌入式系统应用平台的构建任务,它包括嵌入式系统的集成开发环境、计算机工程方法、编程语言、程序设计方法等内容。
 
4.4  广泛服务的电子技术学科
在嵌入式系统中,电子技术学科提供了最广泛的技术服务。电子技术将微电子领域的集成电路设计,迅速从电路集成、功能集成、技术集成发展到知识集成;为计算机学科提供嵌入式系统的硬件设计技术支持;在对象学科中,广大的应用工程师在嵌入式软硬件平台上实现最广泛的应用。
 
4.5  对象学科的最终出路
对象学科是嵌入式系统的最终用户学科。对象学科几乎囊括了所有的科技领域,形成了嵌入式系统一个无限大的应用领域。至今,嵌入式系统行家不再会回答“嵌入式系统用在什么地方?”这样的问题。
对于对象学科来说,嵌入式系统只是一个智能化的工具,对象学科要在嵌入式系统上构建本领域的一个嵌入式应用系统。嵌入式应用系统的技术基础是本学科的基础理论与应用环境、应用要求。同时,在应用中要不断给微电子、集成电路设计、嵌入式计算机学科提出技术要求,以便不断提升嵌入式系统平台的技术水平。
 
4.6 开发能力模型
基于上述支柱学科分析总结嵌入式系统开发能力模型分下面四层境界。
基础原理、基础知识:包括电路、模拟/数字电路、信号处理、计算机原理、数据结构、编译原理、操作系统等多学科课程内容;具体技术、语言和工具:包括MCU技术、编程语言、嵌入式操作系统、通信协议、开发环境、仿真调试工具、测试测量仪器等;方法、思想和理论:包括面向对象思想、设计原理、设计模式、实时概念、UML等;过程控制和管理:通常涉及时间跨度和团队协作,包括项目管理的能力,软件过程的控制能力、版本控制的能力、需求管理的能力等。
 
5  嵌入式系统的应用现状
  
嵌入式系统的嵌入式应用特点,决定了它的多学科交叉特点。作为计算机的内含,要求计算机领域人员介入其体系结构、软件技术、工程应用方面的研究。然而,了解对象系统的控制要求,实现系统控制模式必须具备对象领域的专业知识。因此,从嵌入式系统发展的历史过程,以及嵌入式应用的多样性中,可以了解到客观上形成的两种应用模式。
 
5.1  客观存在的两种应用现状
嵌入式计算机系统起源于微型机时代,但很快就进入到独立发展的单片机时代。在单片机时代,嵌入式系统以器件形态迅速进入到传统电子技术领域中,以电子技术应用工程师为主体,实现传统电子系统的智能化,而计算机专业队伍并没有真正进入单片机应用领域。因此,电子技术应用工程师以自己习惯性的电子技术应用模式,从事单片机的应用开发。这种应用模式最重要的特点是:软、硬件的底层性和随意性;对象系统专业技术的密切相关性;缺少计算机工程设计方法。
虽然在单片机时代,计算机专业淡出了嵌入式系统领域,但随着后PC时代的到来,网络、通信技术得以发展;同时,嵌入式系统软、硬件技术有了很大的提升,为计算机专业人士介入嵌入式系统应用开辟了广阔天地。计算机专业人士的介入,形成的计算机应用模式带有明显的计算机的工程应用特点,即基于嵌入式系统软、硬件平台,以网络、通信为主的非嵌入式底层应用。
 
5.2  两种应用的并存与互补
由于嵌入式系统最大、最广、最底层的应用是传统电子技术领域的智能化改造,因此,以通晓对象专业的电子技术队伍为主,用最少的嵌入式系统软、硬件开销,以8位机为主,带有浓重的电子系统设计色彩的电子系统应用模式会长期存在下去。另外,计算机专业人士会愈来愈多地介入嵌入式系统应用,但囿于对象专业知识的隔阂,其应用领域会集中在网络、通信、多媒体、商务电子等方面,不可能替代原来电子工程师在控制、仪器仪表、机械电子等方面的嵌入式应用。因此,客观存在的两种应用模式会长期并存下去,在不同的领域中相互补充。电子系统设计模式应从计算机应用设计模式中,学习计算机工程方法和嵌入式系统软件技术;计算机应用设计模式应从电子系统设计模式中,了解嵌入式系统应用的电路系统特性、基本的外围电路设计方法和对象系统的基本要求等。
 
5.3  嵌入式系统应用的高低端
由于嵌入式系统有过很长的一段单片机的独立发展道路,大多是基于8位单片机,实现最底层的嵌入式系统应用,带有明显的电子系统设计模式特点。大多数从事单片机应用开发人员,都是对象系统领域中的电子系统工程师,加之单片机的出现,立即脱离了计算机专业领域,以“智能化”器件身份进入电子系统领域,没有带入“嵌入式系统”概念。因此,不少从事单片机应用的人,不了解单片机与嵌入式系统的关系,在谈到“嵌入式系统”领域时,往往理解成计算机专业领域的,基于32位嵌入式处理器,从事网络、通信、多媒体等的应用。这样,“单片机”与“嵌入式系统”形成了嵌入式系统中常见的两个独立的名词。但由于“单片机”是典型的、独立发展起来的嵌入式系统,从学科建设的角度出发,应该把它统一成“嵌入式系统”。考虑到原来单片机的电子系统底层应用特点,可以把嵌入式系统应用分成高端与低端,把原来的单片机应用理解成嵌入式系统的低端应用,含义为它的底层性以及与对象系统的紧耦合。
 
6 嵌入式系统的未来平台模式
 
6.1  平台模式的由来
平台模式是知识经济时代的一种基本的产业、科技模式,是人类知识分离性规律、集成性规律发展到高级阶段上的必然现象。它将一体化的产业、科技模式变革为知识平台媒介下的平台模式。只要对比上世纪60年代收音机产业与90年代的VCD/DVD产业,就会发现一体化产业模式与平台产业模式的本质差异。
上世纪60年代收音机行业中的所有企业,无一例外地都承担起从创意、产品研发、样机设计、样机生产、批量投产的全过程,遵循着封闭的一体化产业模式。到了90年代的VCD/DVD时代,出现了半导体厂家与乡镇企业社会化分工的产业模式:半导体厂家将VCD/DVD创意转化成VCD/DVD的软硬件套件,乡镇企业购买VCD/DVD的软硬件套件,并在半导体厂家的技术支持下实现VCD/DVD机的大批量生产。半导体厂家绝不生产VCD/DVD机,乡镇企业绝不从事VCD/DVD的技术研究。VCD/DVD的软硬件套件就是VCD/DVD技术的知识平台。以知识平台为中心,实现了知识产业与制造产业的社会化分工。知识产业从事知识创新,将知识创新成果转化为知识平台,不从事知识成果的最终应用;制造产业则在知识平台基础上完成创新成果的最终应用。
 
6.2  嵌入式系统的平台模式
按照知识的分离性发展规律,知识创新者不从事知识应用,知识应用者不需要了解创新知识原理;按照集成性发展规律要求,知识创新者应该将创新知识成果集成到工具之中,转化为知识平台,知识应用者应该在知识平台基础上实现创新知识应用。
在早期的嵌入式系统中,集成电路芯片(单片机和外围电路)、开发装置是半导体厂家提供给用户的应用平台,对象领域的电子工程师在这样的平台上完成嵌入式系统的应用。当前,在四个支柱学科支持下的嵌入式系统,必然形成一个按平台模式分工发展的产业、科研生态系统。
对象学科领域是嵌入式系统的最终用户,对象学科领域的电子技术应用工程师应该在一个现成的嵌入式系统平台上实现嵌入式应用系统设计。
微电子学科、嵌入式计算机学科、电子技术学科(非对象学科领域中的应用工程师)不是嵌入式系统最终用户,这些学科的重要任务是将创新科技成果转化成形形色色的知识平台,如微电子领域的集成电路提供先进的MCU、外围芯片、SoC等IC平台;嵌入式计算机学科提供集成开发环境、编程语言、算法、计算机工程方法平台;电子工程师与微电子设计、嵌入式计算机学科、OEM厂家配合,完成嵌入式系统的产品平台,以及产品平台的技术服务。
从平台观念出发,一个优秀的嵌入式系统产品,必须在一个优秀的嵌入式系统平台基础上开发。
 
6.3  平台模式下的学科定位与分工
由于嵌入式系统有四个支柱学科的跨学科特点,每个学科在嵌入式系统中都会体现出它的优势与弱势,因此,嵌入式系统中有一个学科定位与交叉融合问题。“学科定位”体现在每个学科利用自己的学科优势,在自己的学科基础上,介入嵌入式系统的发展;“交叉融合”是在学科定位的基础上,不断了解其他学科对嵌入式系统的技术发展要求,以便为嵌入式系统构筑最佳的知识平台,实现最佳的嵌入式系统应用。
嵌入式系统中四个支柱学科的定位,除了学科知识结构的定位外,还要体现出在知识平台模式中的定位。这种平台模式的定位,是一种3+1的定位。即微电子学科、计算机学科、电子技术学科为嵌入式应用构筑各种类型的应用平台,不介入嵌入式系统的具体应用;对象学科一定要在嵌入式系统应用平台基础上,实现嵌入式系统在本学科领域中的产品化应用,不必介入嵌入式系统的平台构建。例如,就嵌入式操作系统而言,操作系统的构建应该定位在计算机学科领域,但是要构建一个优秀的嵌入式操作系统,必须了解嵌入式的应用特点与应用环境,同时能够预见未来的MCU芯片中的固件化趋势;在对象领域中,把操作系统视为工具,只须了解操作系统性能与应用界面;微电子技术专家要了解嵌入式操作系统与应用软件特点,以便芯片技术到达一定阶段后,纳入集成电路设计中。
  
嵌入式系统是一个无限大的空间,不论是嵌入式系统平台构建还是嵌入式系统平台应用,都有无限广阔的发展空间,关键是把握好自己的“定位”与“分工”,了解学科的“交叉”与“融合”。
 
参考文献:
1. 嵌入式系统的定义与发展历史,何立民
2. 嵌入式系统支柱学科的交叉与融合,何立民

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /3 下一条