嵌入式系统分析与设计

总述:嵌入式系统在这里主要是做了简单科普,然后根据嵌入式系统的特点重点讲嵌入式系统的需求分析、开发、设计等,特别是这些环节中落地时需要抓住的关键点。

 

1、嵌入式系统概述

答:嵌入式系统是一种以应用为中心,以计算机技术为基础,适应不同应用功能、可靠性、成本、梯级、功耗等方面的要求,集可配置、可裁剪的软硬件于一体的专用计算机系统。嵌入式、专用性、计算机系统是嵌入式系统的三个核心要素。嵌入式系统具有专用性强、实时性强、软硬件依赖性强、处理器专用、多种技术紧密结合、系统透明性、系统资源受限等特点。

嵌入式系统的硬件基础是由嵌入式处理器、存储器、外部设备组成。嵌入式的软件基础分为系统软件、应用支撑软件、应用软件三个层次。

 

2、嵌入式数据库系统

答:嵌入式数据库系统是一个包含EDBMS在内跨越移动通信设备、工作站或台式机、数据库服务器的综合系统,受系统使用环境影响较大。嵌入式数据库系统使用环境具有设备随时移动性、网络频繁断接、网络条件多样化、通信能力不对称的特点。一个完整的EDBMS由若干子系统组成,包括主数据库、同步服务器、嵌入式数据库、连接网络等。嵌入式移动数据库在实际应用中必须解决数据的一致性、高效的事务处理、数据安全性等关键问题。

 

3、嵌入式实时操作系统

答:嵌入式操作系统(EOS)是运行在嵌入式系统上,支持嵌入式应用程序的操作系统,是控制和管理嵌入式系统中硬件和软件资源,提供系统服务的软件集合。与通用操作系统相比,EOS具有微型化、代码质量高、专业化、实时性强、可裁剪配置等特点。

嵌入式操作系统的硬件抽象层结构根据抽象程度不同分为系统结构抽象层、处理器变种抽象层、平台抽象层三个层次。每个EOS都有一个内核,大多数内核都包含调度器、内核对象、内核服务三个公共构件。调度器是EOS的新仓,提供一组算法决定何时执行哪个任务;内核对象是特殊的内核构件,帮助创建嵌入式应用;内核服务是内核在对象上执行的操作或通用操作。

嵌入式系统的实时性能是由硬件、实时操作系统(RTOS)、应用程序共同决定的,其中RTOS内核的性能起关键性作用。评估RTOS设计性能时,时间是最重要的一个性能指标,常用的时间性能指标有任务切换时间、中断处理相关的时间指标中断延迟时间和中断响应时间、系统响应时间。

多任务调度算法根据时限的性质、周期性、可抢占性、静态或动态等准则,分为软时限算法和硬时限算法、周期性和非周期性算法、可抢占和非抢占算法、静态算法和动态算法、单处理器调度和多处理器调度算法、在线调度和离线调度算法等。大多数内核支持两种普遍的调度算法 ,基于优先级的抢占调度和时间轮转调度算法,优先级可以分为动态优先级和静态优先级。

对于一个实时系统,如果每个任务都能满足时限要求,则称该系统是可调度的或者该系统满足可调度性,也称该系统为健壮的系统。速率单调调度(RMS)算法是一个静态的固定优先级算法,任务的优先级与周期表现为单调函数关系,执行最频繁的任务优先级最高,及任务的周期越短,优先级越高。RMS是静态调度算法中最有效的算法。如果一组任务能够被任何一种静态调度算法调度,在RMS下也是可调度的。RMS是基于以下假设:1、所有任务都是周期性的;2、任务间不需要同步,没有资源共享,没有任务间的数据交换等问题;3、系统采用抢占式调度,总是优先级最高且就绪的任务被执行;4、任务的时限是其下一周期的开始;5、每个任务具有不随时间变化的定常时间;6、所有任务具有同等重要的关键性级别。要使具有n个任务的实时系统中所有任务都满足硬实时条件,必须使RMS定理成立:E1/T1+E2/T2+... ...+En/Tn <= n * (2的1/n次方-1) 。Ei/Ti是任务i所需的CPU时间。通常,作为实时系统设计的第一个原则,CPU利用率应当在60%到70%之间。

在时间轮转调度中,当有两个或两个以上就绪任务具有相同优先级,且优先级是就绪任务最高优先级时,调度程序会依次调度每个任务运行一个小的时间片,然后在调度另一个任务运行一个小的时间片,依次进行。在时间轮转调度中,时间片的大小是至关重要的。通常纯粹的时间轮转调度无法满足实时系统的要求,取而代之的是基于优先级的抢占式时间轮转调度。截止时间优先(EDF)调度算法是指进程的优先级随执行时间变化,执行时限越靠近,则相对优先级越高,系统中进程的优先级随时调整。EDF是一种动态优先级调度算法,根据最大延迟最小化思想,遵循如下基本定理:给定一组n个独立任务和一组任意的到达时间,任务可调度的充要条件是E1/T1+E2/T2+... ...+En/Tn <=1 。EDF算法的优点是其可调度性上限为100%,对于任何一组任务,如果EDF不能满足其调度性要求,则没有其他算法满足这组任务的调度性要求。实际上,在实时系统中实现EDF的难度较大,主要是动态确定任务优先级有较大开销,达不到100%的上限。

优先级反转是由于资源竞争,低优先级的任务在执行而高优先级的任务在等待的现象。解决优先级反转问题的常用方法主要有两种:采用优先级继承协议与采用优先级天花板协议。优先级继承协议是当低优先级任务持有高优先级任务的资源时,其优先级提升到高优先级任务一样的优先级,到退出临界区释放完成资源后,优先级恢复到原先的低优先级。天花板优先级协议解决了优先级继承协议具有死锁和阻塞链问题,通过调整资源的优先级等同于需要它的最高优先级任务的优先级,当这个任务执行完成后,调整资源的优先级为需要它的任务中优先级最高任务的优先级。优先级天花板协议是控制访问临界资源的信号量的优先级天花板,信号量的优先级天花板是所有使用该信号量任务中有最高优先级的任务的优先级。

 

4、嵌入式系统开发

答:嵌入式系统的应用软件是面向特定用户和特定应用的软件系统,是实现嵌入式系统功能的关键。嵌入式系统的软件开发方法采用交叉式开发方法,即软件在一个通用平台上开发,在另一个嵌入式目标平台上运行。开发嵌入式软件的平台称为宿主机系统,被开发的嵌入式系统称为目标机系统,当软件执行环境和开发环境一致时,开发过程则称为本地开发。宿主机提供的基本开发工具是交叉编译器、交叉链接器、源代码调试器,作为目标机的嵌入式系统可能提供动态装载器、链接装载器、监视器和调试代理等。目标机和宿主机之间有一组连接,通过这组连接实现源代码、调试信息等关键信息的传输。

嵌入式系统软件的开发过程大体分为项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固化、测试、运行等几个阶段,各阶段不断反复,知道最终完成设计目标。实时嵌入式开发环境中,嵌入式系统快速面向对象过程(ROOPES)是使用非常多的一种模型。ROOPES是半螺旋式生命周期模型,主要是因为在开发初期有大量的硬件开发而且开始阶段需求并不明确。

嵌入式系统常用的分析与设计方法主要有改进的结构化方法、面向对象方法、基于构件方法。这些分析和设计方法都因为嵌入式系统的特殊性作出一些改变。嵌入式系统的设计包含硬件设计和软件设计两个方面,其中前端活动(如规格说明和系统架构)需要同时考虑硬件和软件两个方面。协同设计是一种在设计的最初阶段就将软件与硬件两方面结合起来,权衡功能的分配,在软件与硬件并行设计过程中实现软硬件的交互,满足系统功能与性能要求的设计方法。协同设计是嵌入系统设计的主要设计方法。嵌入式系统的协同设计工具分为协同合成工具和协同模拟工具两大类。协同合成工具主要有POLIS、COSYMA、Chinook等,协同模拟工具有PTOLEMY、TSS两种。POLIS是开发交互式嵌入式系统的软硬件协同设计框架,适用小型控制系统的设计,系统描述支持基于有限状态机的语言。POLIS主要关注高级语言转换、规则检查、软硬件界面综合等技术,比较适合实时控制领域的嵌入式系统设计。COSYMA是一种探索软硬件协同设计综合进程的平台,面向软件系统,支持自动分割和协同处理器综合,在综合时期可以对设计空间进行探索。Chinook是专门处理控制系统设计的工具,它将整个系统的描述作为一个输入,内部模式基于类似等级状态的模式,不对代码进行分割,为整个设计提供单一的模拟环境。PTOLEMY混合使用面向对象内核的计算模型,可用于模拟多种系统。TSS是系统模拟工具,可模拟复杂硬件,采用C编写,单个模块的提取可由用户控制,支持多核系统模拟。

5、嵌入式系统分析与设计的要点

答:嵌入式操作系统一般是面向产品开发的,需求分析阶段的系统规格说明书中需要描述物理尺寸、操作环境、存放环境、指示灯装置、无线电标准、无线电功率和频率、数据传输率、存储器、平均无故障时间、工号、电源适配器、散热、系统复位、协议等内容。

嵌入式系统架构有硬件架构和软件架构组成,通常先考虑系统的软件架构,再考虑硬件实现。系统架构需要满足性能和功能的要求,还要满足成本、速度、功耗等约束。

在系统实时性方面,对硬实时系统,必须进行严格的时序分析。对于简单的中小型嵌入式系统,可以采用先硬件后软件的方法;对于复杂、大型嵌入式系统,必须采用软硬件协同设计的方法,还要考虑软件和硬件互相制约和影响。对于复杂的和日后需要继续开发和移植的系统,最好采用EOS来增强系统的可扩展性。在所有满足系统功能和性能要求的方案中,应先选用最简单的架构。

嵌入式系统开发环境由目标硬件平台、EOS、编程语言、开发工具组成,其中处理器和操作系统的选择应该考虑更多因素,避免错误决策影响项目进度。嵌入式系统设计的主要挑战是如何使互相竞争的设计指标同时达到最佳化。在硬件子系统的设计中,先将硬件划分为部件或模块,并绘制部件连接框图;其次对每个部件进行细化,继续分解为可单独实现的部件。在具体实现过程中,同样的功能分配到软件还是硬件去实现需要具体的实现人员来决定,同时在实现过程中还要平衡性能和成本。嵌入式系统中接口电路的设计需要考虑电平匹配问题、驱动能力问题、干扰问题。

嵌入式系统的软件设计需要根据应用的实时性要求、应用场合、可用资源情况等约束下进行任务划分,是嵌入式系统应用软件设计的关键。在软件设计过程中,首先明确系统的实时性指标,然后确认任务大体的数目,接下来是可调度性分析,最后再具体实现上根据系统特点确定任务优先级。任务优先级分配一般考虑与中断的关联性、紧迫性、任务的频繁性、传递性等方面的原则。

在选择EOS时,需要考虑EOS的功能、配套开发工具、可移植性、内存需求、附加软件包、实时性、灵活性等方面的信息,综合判定。

嵌入式系统编程语言的选择需要考虑通用性、可移植性、执行效率、可维护性等方面进行判定。

低功耗设计是嵌入式系统设计的难点,是一个系统化的综合问题,需要从软件和硬件两个方面上进行考虑。常用的典型CMOS集成电路,功耗由静态功耗、静态漏电流功耗、内部短路功耗、动态功耗组成,其中动态功耗占比在70%到90%,内部短路功耗在10%到30%。在硬件方面降低功耗是从降低器件工作时功耗为主,解决思路是降低工作电压。嵌入式系统设计人员基于硬件的低功耗设计会从板机电路低功耗设计、低功耗处理器选择、总线低功耗设计、接口驱动电路设计、分区分时供电技术等方面下手。嵌入式系统软件低功耗设计的主要措施有编译优化、软件与硬件协同设计、算法优化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章