嵌入式系统
嵌入式系统是一种设计用来执行一种或几种功能的实时计算机系统。它被嵌入于一个完整的包括硬件和机械装置的设备中。与传统计算机,例如个人电脑相比,他的设计更灵活应用更广泛。在今天由嵌入式系统控制的设备很普遍。
历史
第一个被大家认可的现代嵌入式系统是麻省理工学院仪器研究室的查尔斯·斯塔克·德雷珀开发的阿波罗导航计算机。在两次月球飞行中他们在太空驾驶舱和月球登陆舱都是用了这种惯性导航系统。
在计划刚开始的时候,阿波罗导航计算机被认为是阿波罗计划风险最大的部分。为了减小尺寸和重量而使用的当时最新的单片集成电路加大了阿波罗计划的风险。
第一款大批量生产的嵌入式系统是1961年发布的民兵I导弹上的D-17自动导航控制计算机。它是由独立的晶体管逻辑电路建造的,它带有一个作为主内存的硬盘。当民兵II导弹在1966年开始生产的时候,D-17由第一次使用大量集成电路的更新计算机所替代。仅仅这个项目就将与非门集成电路模块的价格从每个1000美元降到低了每个3美元,使集成电路的商用成为可能。 民兵导弹的嵌入式计算机有一个重要的设计特性:它能够在项目后期对制导算法重新编程以获得更高的导弹精度,并且能够使用计算机测试导弹,从而减少测试用电缆和接头的重量。
这些二十世纪六十年代的早期应用,使嵌入式系统得到长足发展,它的价格开始下降,同时处理能力和功能也获得了巨大的提高。英特尔4004是第一款微处理器,它在计算器和其他小型系统中找到了用武之地。但是,它仍然需要外部存储设备和外部支持芯片。1978年,国家工程制造商协会发布了可编程微控制器的“标准”,包括几乎所有以计算机为基础的控制器,如单片机,数控设备,以及基于事件的控制器。
随着微控制器和微处理器的价格下降,一些消费性产品用使用微控制器的数字电路取代如分压计和可变电容这样的昂贵模拟组件成为可能。 到了二十世纪八十年代中期,许多以前是外部系统的组件被集成到了处理器芯片中,这种结构的微处理器得到了更广泛的应用。到了八十年代末期,微处理器已经出现在几乎所有的电子设备中。
集成化的微处理器使得嵌入式系统的应用扩展到传统计算机无法涉足的领域。对多用途和相对低成本的微控制器进行编程,往往可成为各种不同功能的组件。虽然要做到这一点,嵌入式系统比传统的解决方案要复杂,最复杂的是在微控制器本身。但是嵌入式系统很少有额外的组件,大部分设计工作是软件部分。而非物质性的软件不管是建立原型还是测试新修改相对于硬件来说,都要容易很多的,并且设计和建造一个新的电路不会修改嵌入式处理器。
特性
1. 嵌入式系统在广义上说就是计算机系统,它包括除了以通用为目的计算机
之外的所有计算机。从便携式音乐播放器到航天飞机的实时控制子系统都能见到嵌入式系统的应用。与通用计算机系统可以满足多种任务不同,嵌入式系统只能完成某些特定目的的任务。但有些也有实时性能的制约因素必须得到满足的原因,如安全性和可用性。除此之外其他功能可能要求较低或没有要求,使系统的硬件得以简化,以降低成本。对于大批量生产的系统来说,降低成本通常是设计的首要考虑。嵌入式系统通常需要简化去除不需要的功能以降低成本,设计师通常选择刚刚满足所需功能的硬件使目标最小化低成本的实现。
2. 嵌入式系统并非总是独立的设备。许多嵌入式系统是以一个部件存在于一
个较大的设备,它为设备提供更多的功能,使设备能完成更广泛的任务。例如,吉布森吉他机器人采用了嵌入式系统来调弦,但总的来说吉布森吉他机器人设计的目的绝不是调弦而是演奏音乐。同样的,车载电脑作为汽车的一个子系统,为它提供了导航,控制,车况反馈等功能。 3. 部分为嵌入式系统编写的程序被称为固件,他们存储在只读存储器或闪存
芯片。他们运行在资源有限的计算机硬件:小内存,没有键盘,甚至没有屏幕。
CPU平台
在嵌入式系统设计中有许多不同的CPU架构,如ARM、MIPS、Coldfire/68k、PowerPC、X86、PIC、Intel 8051、Atmel AVR、Renesas H8、SH、V850、FR-V、M32R、DMCU等。
这与桌面计算机市场有所不同,写这篇文章的2003年为止在那个领域只有少数几家竞争的架构,其中主要是英特尔/AMDx86和用于Apple Macintosh的Apple/Motorola/IBM PowerPC。在桌面计算机领域,随着对于Java接受程度的增长,软件对于特定运行环境的依赖越来越少。 PC/104标准是小型、小批量嵌入式和ruggedized系统设计的基础。这些系统通常使用DOS、Linux、NetBSD或者如QNX、Inferno这样的实时嵌入式操作系统。 大批量生产的嵌入式系统的通常配置是系统单芯片(en:System On Chip),它是一个专用集成电路,CPU是外购的知识产权并且添加到集成电路设计中。一个类似的常用机制是使用可编程门阵列,所有的逻辑包括CPU部分都可以编程实现。许多时髦的FPGA都是为这个目的设计的