嵌入式系统
嵌入式系统(Embedded System)是为了特定应用而专门构建且将信息处理过程和物理过程紧密结合为一体的专用计算机系统。
嵌入式软件则是指可运行在嵌入式系统中的程序代码和帮助这些软件开发所用的工具或环境软件的总称。
嵌入式系统的组成及特点
嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁减的软、硬件集成于一体的专用计算机系统,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。嵌入式系统通常通过外部接口采集相关输入信息或人机接口输入的命令,对输入数据进行加工和计算,并将计算结果通过外部接口输出,以控制受控对象。
从计算机角度看,嵌入式系统是指嵌入各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能,体积小、结构紧凑,可作为一个部件埋藏于所控制的装置中。它提供用户接口,管理有关信息的输入输出和设备监控工作,使设备及应用系统有较高智能和性价比。
从技术角度看,嵌入式系统是计算机技术、通信技术、半导体技术、微电子技术、语音图像、数据传输技术,以及传感器等先进技术和具体应用对象相结合后的换代产品,是技术密集、投资规模大、高度分散、不断创新的知识密集型系统,反映了当代最新技术的先进水平。从综合角度看,嵌入式系统定义为现代科学多学科相互融合的以应用技术产品为核心,以计算机技术为基础,以通信技术为载体,以消费类产品为对象,引入各类传感器,引入Interet网络技术的连接,从而适应应用环境的产品。
嵌入式系统的组成
一般嵌入式系统由嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成。
- 嵌入式处理器
由于嵌入式系统一般是在恶劣的环境条件下工作,与一般处理器相比,嵌入式处理器应可抵抗恶劣环境的影响,比如高温、寒冷、电磁、加速度等环境因素。为适应恶劣环境,嵌入式处理器芯片除满足低功耗、体积小等需求外,根据不同环境需求,其工艺可分为民用、工业和军用等三个档次。 - 相关支撑硬件
相关支撑硬件是指除嵌入式处理器以外的构成系统的其他硬件,包括存储器、定时器、总线、IO接口以及相关专用硬件。 - 嵌入式操作系统
嵌入式操作系统是指运行在嵌入式系统中的基础软件,主要用于管理计算机资源和应用软件。与通用操作系统不同,嵌入式操作系统应具备实时性、可剪裁性和安全性等特征。 - 支撑软件
支撑软件是指为应用软件开发与运行提供公共服务、软件开发、调试能力的软件,支撑软件的公共服务通常运行在操作系统之上,以库的方式被应用软件所引用。 - 应用软件
应用软件是指为完成嵌入式系统的某一特定目标所开发的软件。
嵌入式系统的特点
根据嵌入式系统的应用背景及其在应用中所起作用,嵌入式系统应具备以下特性。
- 专用性强
联入式系统面向特定应用需求,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统的小型化。 - 技术融合
嵌入式系统将先进的计算机技术、通信技术、半导体技术和电子技术与各个行业的具体应用相结合,是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 - 软硬一体软件为主
软件是嵌入式系统的主体,有IP核。嵌入式系统的硬件和软件都可以高效地设计,量体裁衣,去除冗余,可以在同样的硅片面积上实现更高的性能。 - 比通用计算机资源少
由于嵌入式系统通常只完成少数几个任务。设计时考虑到其经济性,不能使用通用CPU,这就意味着管理的资源少,成本低,结构更简单。 - 程序代码固化在非易失存储器中
为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存在磁盘中。 - 需专门开发工具和环境
嵌入式系统本身不具备开发能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。 - 体积小、价格低、工艺先进、性能价格比高、系统配置要求低、实时性强。
- 对安全性和可靠性的要求高。
嵌人式系统的分类
根据不同用途可将嵌入式系统划分为嵌入式实时系统和嵌入式非实时系统两种,而实时系统又可分为强实时(HardReal-Time)系统和弱实时(WeakReal-Time)系统。如果从安全性要求看,系统还可分为安全攸关(Safety-Critical或Life-Critical)系统和非安全攸关系统
实时系统(Real-Time System,RTS)。
实时系统是指能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出相应的系统。也就是说,系统计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统错误。
安全攸关系统(Safety-Critical System)。
安全攸关系统也称为安全关键系统或者安全生命关键系统(Life-CriticalSystem),是指其不正确的功能或者失效会导致人员伤亡、财产损失等严重后果的计算机系统。
嵌入式软件的组成及特点
嵌入式系统的最大特点就是系统的运行和开发是在不同环境中进行的,通常将运行环境称为“目标机”环境,称开发环境为“宿主机”环境。
嵌入式系统的能力与应用需求密不可分,同时也与硬件配罝存在着紧密的耦合性。通常,嵌入式系统软件组成架构采用层次化结构,并且具备可配置、可剪裁能力。从现代嵌入式系统观看,人们把嵌入式系统分为硬件层、抽象层、操
作系统层、中间件层和应用层等5层。其中、中间件可分为服务中间件、集成中间件、数据中间件、消息中间件和安全中间件等5类。
嵌入式软件的主要特点如下。
- 可剪裁性。嵌入式软件能够根据系统功能需求,通过工具进行适应性功能的加或减,删除掉系统不需要的软件模块,使得系统更加紧凑。可剪裁性通常采用的设计方法包括静态编译、动态库和控制函数流程实现功能控制等。
- 可配置性。嵌入式软件需要具备根据系统运行功能或性能需要而被配置的能力,使得嵌入式软件能够根据系统的不同状态、不同容量和不同流程,对软件工作状况进行能力的扩展、变更和增量服务。可配置通常采用的设计方法包括数据驱动、静态编译和配置表等。
- 强实时性。嵌入式系统中的大多数都属于强实时性系统,要求任务必须在规定的时限(Deadline)内处理完成,因此,嵌入式软件采用的算法优劣是影响实时性的主要原因。强实时性通常采用的设计方法包括表驱动、配置、静/动态结合、汇编语言等。
- 安全性(Safety)。安全性是指系统在规定的条件下和规定的时间内不发生事故的能力。安全性是判断、评价系统性能的一个重要指标,可直接反映系统失效后所带来损失大小。
- 可靠性。可靠性是指系统在规定的条件下和规定的时间周期内程序执行所要求的功能的能力。可靠性也是判断、评价系统性能的一个重要指标。软件可靠性与硬件可靠性的衡量指标是完全不同的,软件是不可能随着时间发生变化。提高安全性通常采用的设计方法包括容错技术、余度技术(冗余技术)和鲁棒性设计等。
- 高确定性。嵌入式系统运行的时间、状态和行为是预先设计规划好的,其行为不能随时间、状态的变迁而变化。确保软件确定性通常采用的设计方法包括静态分配资源、越界检查、状态机、静态任务调度等。
此外,嵌入式软件的开发也与传统的软件开发方法存在比较大的差异,主要表现在以下方面。
- 嵌入式软件开发是在宿主机(PC机或工作站)上使用专门的嵌入式工具开发,生成二进制代码后,需要使用工具卸载到目标机或固化在目标机储存器上运行。
- 嵌入式软件开发时更强调软/硬件协同工作的效率和稳定性。
- 般入式软件开发的结果通常需要固化在目标系统的储存器或处理器内部储存器资源中。
- 嵌入式软件的开发一般需要专门的开发工具、目标系统和测试设备。
- 嵌入式软件对实时性的要求更高。
- 嵌入式软件对安全性和可靠性的要求较高。
- 嵌入式软件开发是要充分考虑代码规模。
- 在安全攸关系统中的嵌入式软件,其开发还应满足某些领域对设计和代码审定。
- 模块化设计即将一个较大的程序按功能划分成若干程序模块,每个模块实现特定的功能。