第1章 嵌入式系统概述
1.1 嵌入式系统概论
1.1.1 嵌入式系统的定义
在科学技术高速发展的今天,从厨房的电饭煲、微波炉、电冰箱到客厅里的家庭媒体中心,各种智能化设备已经遍布我们的周围。此时,我们听到最多的一个词便是“嵌入式系统”。现在,嵌入式系统带来的工业年产值已超过了1万亿美元,它已经成为信息技术(IT)产业争夺的重点。目前,中国嵌入式系统的主要客户分布在电信、医疗、汽车、安全和消费类等行业。其中消费类电子领域占据了嵌入式最大的市场份额,约占36%,紧随其后的是安全占26%,其次是电信、医疗及其他各占20%、8%和10%。
那么,什么才是“嵌入式系统”呢?按照IEEE的定义:嵌入式系统是“用于监视、控制或者辅助操作机器和设备的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。这个定义是从应用角度考虑的,可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。
而目前我们最常见、最通用的一个定义是:嵌入式系统是以应用为中心,以计算机技术为基础,其软/硬件可裁剪,对功能、可靠性、成本、体积、功耗有严格约束的一种专用计算机系统。
这个定义是从技术角度来进行阐述的,因此更加全面。它不仅指出了嵌入式系统是一种专用计算机系统(非PC的智能电子设备),而且说明了嵌入式系统的几个基本要素,即面向应用、以计算机技术为基础、软/硬件可裁剪及在功能、可靠性、成本、体积和功耗上有严格约束。而“嵌入式系统”中“嵌入”一词,即指其软/硬件可裁剪的特性,它表示该系统通常是更大系统中的一个完整部分。嵌入的系统中可以共存多个嵌入式系统。
嵌入式系统几乎应用于所有电气设备:手机、机顶盒、个人数字助理(PDA)、汽车控制系统、微波炉控制器、电梯控制器、安全系统、医疗仪器、立体音响、自动售货机控制器、自动取款机等。即使是一台通用PC,也包括嵌入式系统。PC的外部设备包含了嵌入式微处理器的成分,如硬盘、软驱、显示器、键盘、鼠标、声卡、网卡、Modem和打印机、扫描仪等,都是由嵌入式处理器控制的。
嵌入式系统是面向用户、面向产品、面向应用的。如果独立于应用而自行发展,则会失去市场。因此,大多数嵌入式系统的开发者不是计算机专业的人才,而是各个行业的技术人员。例如开发数字医疗设备,往往是生物医学工程技术人员和计算机专业的技术人员一起来共同完成。
嵌入式系统是一种专用计算机系统,它和通用计算机系统使用的技术是一样的,都包含了硬件和软件部分,但对二者的性能评价指标是不同的。嵌入式系统往往只是一个大系统中的组成部分,控制大系统的工作,它的价值在于它所控制的大系统。例如,智能洗衣机的评价指标往往是洗净度、耗水、耗电、洗衣速度等,而不是控制它的处理器的速度、存储容量等。而通用计算机则不同,其更关注计算能力、处理速度、存储数据的能力等指标。
1.1.2 嵌入式系统的组成
由于嵌入式系统基于计算机技术,它的组成也与计算机组成类似,主要包括两个部分:嵌入式硬件系统和嵌入式软件系统。
嵌入式硬件系统主要包括:嵌入式处理器、存储器、接口控制器与接插件、模拟电路及电源等几个部分。目前针对嵌入式系统的外围硬件设备扩展有很多,常用的有串行口、以太网接口(网络设备)、USB接口(USB设备,如优盘、数码相机、移动硬盘等外部存储设备)、音频接口(如MP3)、液晶显示屏(如数码相机、数码摄像机、MP4播放器、PDA等)、摄像头(拍照手机)等。可以看到,不同的嵌入式系统的设计可能会用到不同的外围硬件设备。以数码相机为例,它需要使用到摄像头、液晶显示屏、USB、SD或MS卡,如果该数码相机还要有MP3功能,就还需要加上音频解码设备。没有外围设备的支持,嵌入式系统是不完整的。
嵌入式软件系统主要包括:底层驱动、操作系统软件(嵌入式操作系统)和应用程序(应用软件)几个部分。底层驱动实现嵌入式系统硬件和软件之间的接口,操作系统实现系统的进程调度、任务处理,应用程序实现系统功能的应用。由于嵌入式系统的应用领域十分广泛,应用程序(应用软件)的表现形式也千差万别。有时设计人员会把操作系统和应用软件两部分组合在一起:应用软件控制系统的运作和行为,操作系统控制应用程序编程与硬件的交互作用。
在嵌入式系统的组成中,其核心是嵌入式处理器。因此嵌入式处理器的技术指标如功耗、体积、成本、可靠性、速度、处理能力、电磁兼容性等均受到应用要求的制约,这些也是各半导体厂商之间竞争的热点。嵌入式处理器的应用软件是实现嵌入式系统功能的关键。一般来说,软件需要固化存储,有时称为固件(Firmware),软件代码要求高质量、高可靠性。
1.1.3 嵌入式系统的特点
与常见的通用计算机系统相比,嵌入式系统一般具有以下特点。
① 面向特定的应用。与通用CPU相比,嵌入式CPU是为特定用户群设计的。如ARM系列多用于手机中,Motorola的龙珠系统多用于中档PDA中。应用需求决定了嵌入式系统的设计。决定嵌入式CPU应用环境的主要因素在于其提供的接口功能和处理速度。
② 专用性强,可根据需要灵活定制。嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植。
③ 系统内核小。嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。例如,mC/OS系统内核只有5KB,而Windows的内核则要大得多。
④ 体积小、功耗低、成本低、效率高。由于嵌入式系统集成度高、体积小,所以其系统软件和应用软件一般有一些特殊要求,如:软件固化在ROM中、要求高质量高可靠性的软件代码、具有实时处理能力等。同时,由于嵌入式系统往往没有充足的电能(如电池供电),所以多为低功耗系统。而且系统功耗越低,温度越低,其可靠性和稳定性也就越高。
⑤ 具有较长的生命周期。嵌入式系统与具体应用有机结合在一起,它的升级和具体产品同步进行。
⑥ 通常有实时性要求,因此都要求要有高实时性操作系统(Real-Time Operating System,RTOS)。这是嵌入式软件的基本要求,用以实现任务调度、资源分配等功能。按照实时性的不同,嵌入式系统可以分为软实时系统和硬实时系统。软实时系统对实时要求不高,通常用于人机交互较多的领域;而硬实时系统主要应用于工控、航天、军事等领域。
⑦ 需要专门的软/硬件开发工具和环境。由于嵌入式系统的运行平台与开发平台是不同的,嵌入式系统本身不具备自主开发能力,需要专门的软/硬件开发工具和环境-交叉开发环境,开发较为困难。通常嵌入式系统的开发采用交叉开发环境:开发平台称为宿主机,有丰富的软/硬件资源;运行嵌入式软件的平台称为目标机,资源相对有限。在宿主机上进行软件的编辑、编译;然后下载到目标机上调试、运行。