《嵌入式系统设计方法.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统设计方法.ppt(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式系统设计方法 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 主要内容主要内容n嵌入式系统面临的挑战嵌入式系统面临的挑战n嵌入式系统的设计嵌入式系统的设计n嵌入式系统软硬件协同设计嵌入式系统软硬件协同设计n嵌入式系统节能设计嵌入式系统节能设计CC1991(92个主领域)个主领域)CC2001(14个主领域)个主领域)离散数学(预备知识)离散结构(DS)程序设计语言引论程序设计基础(程序设计基础(PF)算法与数据结构算法与复杂性(算法与复杂性(AL)计算机系统
2、结构系统结构(系统结构(AR)操作系统操作系统(操作系统(OS)网络计算(网络计算(NC)程序设计语言程序设计语言(程序设计语言(PL)人机通信人机交互(HC)图形学和可视化计算(GV)人工智能与机器人学智能系统(IS)数据库与信息检索信息管理(IM)软件方法学与工程软件工程(软件工程(SE)社会、道德和职业的问题社会和职业的问题(SP)数值与符号计算科学计算(SC)IEEE/ACM 课程大纲关于计算机学科主领域的划分课程大纲关于计算机学科主领域的划分嵌入式系统嵌入式系统n嵌入式系统:以应用为中心,以计算机技术为基础,以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可软件
3、硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗诸方面严格要求的靠性、成本、体积、功耗诸方面严格要求的专用计算机系统。专用计算机系统。嵌入式系统特点嵌入式系统特点嵌入式系统特点:嵌入式系统特点:n 软件硬件协同并行开发软件硬件协同并行开发n 多种多样的微处理器多种多样的微处理器n 实时操作系统的多样性实时操作系统的多样性(RTOS)(RTOS)n 与台式机相比,可利用系统资源不足与台式机相比,可利用系统资源不足n 应用支持很少应用支持很少n 要求特殊的开发工具要求特殊的开发工具n 调试很困难调试很困难n 软件硬件的鲁棒性(健壮性,软件硬件的鲁棒性(健壮性,RobustRobust)嵌入
4、式系统要解决的主要问题嵌入式系统要解决的主要问题 n需要用什么样的系统结构来实现?需要用什么样的系统结构来实现?n如何满足时限要求,如何处理多项功能在时间上的协如何满足时限要求,如何处理多项功能在时间上的协调一致关系?调一致关系?n如何保证系统可靠地工作?如何保证系统可靠地工作?n如何满足系统接口要求,嵌入式应用直接和系统接口如何满足系统接口要求,嵌入式应用直接和系统接口输入输出信息?输入输出信息?n如何降低系统的功耗?如何降低系统的功耗?n如何使系统可升级?如何使系统可升级?嵌入式系统设计的挑战性问题嵌入式系统设计的挑战性问题 n软硬件协同设计软硬件协同设计 n功耗的优化设计功耗的优化设计n
5、嵌入式操作系统嵌入式操作系统n开发环境开发环境 n成本和开发周期成本和开发周期n代码优化代码优化 n高效的输入和输出高效的输入和输出n测试环境测试环境 嵌入式系统软件技术面临的几大问题嵌入式系统软件技术面临的几大问题n嵌入式软件全生命周期开发工具链嵌入式软件全生命周期开发工具链n硬件与软件的硬件与软件的Co-Design:Verilog+C=?Co-Design:Verilog+C=?n驱动程序的设计和生成技术(嵌入式软件开发中驱动程序的设计和生成技术(嵌入式软件开发中最令人头疼的问题)最令人头疼的问题)n嵌入式软件的可靠性问题嵌入式软件的可靠性问题:正确性验证技术、测正确性验证技术、测试技术
6、、调试技术等(可靠性问题是嵌入式软件试技术、调试技术等(可靠性问题是嵌入式软件开发的基本问题)开发的基本问题)n可重构计算(可重构计算(Reconfigurable ComputingReconfigurable Computing)技术)技术n可构件化的嵌入式实时操作系统及其开发环境可构件化的嵌入式实时操作系统及其开发环境问题问题:功 能、性能要求价 格、开发 周 期 等约束设计:设计:选择 折衷 分析比较 计算 评价嵌入式系统嵌入式系统嵌入式系统的设计嵌入式系统的设计方法方法工具工具设计流程设计流程自顶向下或自底向上设计自顶向下或自底向上设计需求需求设计说明设计说明体系结构体系结构构件设计
7、构件设计系统集成系统集成自顶向下设计自底向上设计需求分析n作用作用n使用户和设计者有效交流、沟通,明确设计目标使用户和设计者有效交流、沟通,明确设计目标n设计者设计者 设计什么?有哪些要求?设计什么?有哪些要求?n用户用户 将得到的系统是什么样的?将得到的系统是什么样的?n目标目标n形成需求文档形成需求文档n内容内容n功能性需求功能性需求 做什么?做什么?n输入输入,输出输出,功能,功能,n非功能性需求非功能性需求 其他属性其他属性n可靠性,速度,功耗,可靠性,速度,功耗,n成本成本,大小大小,重量重量,设计时间,设计时间,评价标准n正确性n无二义性n完整性n可检验性n一致性n可修改性n可追踪
8、性需求分析的描述n自然语言n需求说明书n需求分析表n形式化描述n用例图等nDOORS例:GPS移动地图的需求 规格说明n规格说明与需求的比较n需求的提炼n是可用来创建体系结构的关于系统的更详尽、更精确、更一致的描述n目标n形成规格说明书n内容n包含系统体系结构设计的足够信息规格说明书的描述n自然语言n形式化描述nUMLnRSMLnSDL规格规格说明说明n需求的精确描述需求的精确描述n 描述明确,可理解描述明确,可理解n UML(Unified Modeling Language)UML(Unified Modeling Language)n统一建模语言是可视化的设计说明语言统一建模语言是可视化
9、的设计说明语言n统一描述系统的硬件和软件统一描述系统的硬件和软件n UML UML 可对系统的功能建模可对系统的功能建模n 可自动产生实际设计的可自动产生实际设计的HDL HDL 或或C+C+代码代码UML的应用的应用nI-Logix公司的Rhapsody系列产品n基于统一建模语言UML的可视化编程环境n把UML各类视图映射为具体目标机程序语言n用于复杂实时嵌入式应用软件从分析、设计一直到代码实现和软件测试的开发过程nNASA的火星探路者航天器就是运用Rhapsody在VxWorks上开发应用程序。系统结构设计系统结构设计n 系统如何实现设计说明书描述的功能系统如何实现设计说明书描述的功能n
10、基于组件的系统结构基于组件的系统结构n 软件软件/硬件划分硬件划分n 嵌入式系统中软件和硬件协同完成系统的嵌入式系统中软件和硬件协同完成系统的功能功能n软件硬件划分通常由速度、灵活性以及开销软件硬件划分通常由速度、灵活性以及开销来决策来决策嵌入式计算机系统基本结构嵌入式计算机系统基本结构嵌入式系统组成嵌入式系统组成系统结构设计系统结构设计系统结构设计n作用n实现系统的蓝图,系统整体结构的一个计划n目标n形成结构设计文档n内容n系统分析n系统软硬件整体结构的设计n软硬件划分n标准构件和自行设计构件的确定 评价标准n有弹性n简单n可实现n层次清晰n功能分布平衡n平衡技术和经济约束n满足功能需求和非
11、功能需求n可重用系统结构的描述n非形式化方式n自然语言n结构框图n形式化方法nUML建模系统结构的设计过程及方法n结构化设计方法 以算法为中心,从处理到处理的数据流n从输入、输出入手,根据操作和数据流,形成比较粗的系统大框架;n然后逐步细化框架内的每个部分,进一步确定内部模块的及模块之间的关系n设计过程应该是逐步细化和逐步完善的过程n面向对象的方法 以类及交互模式为中心系统软件结构的设计n结构化方法(SA/SD)n面向对象的方法(OOA/OOD)nUML建模结构设计的验证n结构设计的正确性非常关键n详细设计和实现的基础,对开发周期、成本有很大影响n验证所关心的问题n结构设计是否满足功能、性能要
12、求n能否实现n验证方法n形式化方法n仿真n系统结构n软件结构n硬件结构n其他方法n如基于开发板的原型系统系统引入错误和修改错误开销分布系统引入错误和修改错误开销分布引入错误数目引入错误数目修改错误开销修改错误开销开发周期系统结构设计软硬件详细设计软硬件实现软硬件的划分 嵌入式系统的设计涉及硬件与软件部件,设计中必须决定什么功能由硬件实现,什么功能由软件实现。n硬件和软件具有双重性n软硬件变动对系统的决策造成影响n划分和选择需要考虑多种因素n硬件和软件的双重性是划分决策的前提通常由软件实现的部分n操作系统功能n任务调度n资源管理n设备驱动n协议栈nTCPIPn应用软件框架n除基本系统、物理接口、
13、基本逻辑电路,许多由硬件实现的功能都可以由软件实现。双重性部分n算法n加密解密n编码解码n压缩解压nn数学运算n浮点运算,FFT,n标准构件和自行设计构件 n构件的实现n选择标准n自行设计n标准构件?现成构件n已经产品化n形成规模生产n标准构件 自行设计构件 用户系统n构件包括了硬件构件和软件构件n构件本身可以是层次性的,可以由子构件组成标准硬构件n硬构件的形式:硬构件的形式:nIC:集成电路:集成电路nPCB:印刷电路板:印刷电路板nIP:Intellectual Propertyn标准 IC nCPU,DSP,nRAM,ROM,接口控制器,nASIC,n标准 IPn CPU核,n标准模块n
14、GPRS模块,GSM模块,蓝牙模块,n显示模块,n标准计算平台n基于PC104的嵌入式计算机n基于Compact PCI的嵌入式计算机nSOC,标准软构件nOS/RTOSn协议栈nTCP/IPn路由协议nH.323nn图形开发包nVxWorks的ZINKnn驱动程序自研硬构件n内容n逻辑电路,专用加速器,n实现方式nPCB:nIC:PLD FPGA ASIC,nEDA设计工具n板级:n原理图设计工具nPCB设计工具nICn硬件描述语言:VHDL,Verilogn原理图描述工具n综合仿真工具n布线器,自研软构件nBSPn驱动程序n应用程序n 软硬件技术对系统结构的影响n硬软件设计的趋势融合、渗透
15、n硬件设计的软件化nVHDL,VerilognHANDL-Cn软件实现的硬件化n各种算法的ASICn对系统设计的影响协同设计n增加灵活性n增加了风险嵌入式系统设计者要求嵌入式系统设计者要求n 懂得系统的整个构架懂得系统的整个构架n 详细了解硬件的细节详细了解硬件的细节n 软件设计满足:软件设计满足:n 实时要求实时要求n 低功耗低功耗n 代码量小代码量小n 详细了解领域知识详细了解领域知识嵌入式系统软硬件协同设计嵌入式系统软硬件协同设计 软硬件协同设计软硬件协同设计软硬件协同设计软硬件协同设计n硬件设计工具(EDA工具)n系统级设计工具系统级设计工具nCadence的的SPWnSystem V
16、iewn模拟电路系统仿真工具模拟电路系统仿真工具nPspicenEWBnPCB设计工具设计工具nProtelnPADs 的的Power PCB&Tool KitnMentor的的Expedition&Tool Kitn可编程逻辑器件设计工具可编程逻辑器件设计工具nMentor FPGA Advantage&ModelSimnXilinx Foundation ISE&Tool Kitn各种综合和仿真第三方工具各种综合和仿真第三方工具软硬件协同设计定义与主要概念软硬件协同设计定义与主要概念n软硬件协同设计定义nThe meeting of system-level objectives by e
17、xploiting the trade-offs between hardware and software in a system through their concurrent designn主要概念nConcurrent(并发)(并发):hardware and software developed at the same time on parallel pathsnIntegrated(一体化)(一体化):interaction between hardware and software developments to produce designs that meet perfo
18、rmance criteria and functional specifications嵌入式系统嵌入式系统快速原型快速原型设计过程设计过程SYSTEMDEF.SWDESIGNVIRTUAL PROTOTYPEREUSE DESIGN LIBRARIES AND DATABASEPrimarilysoftwarePrimarilyhardwareSWCODEFUNCTIONDESIGNHW&SWPART.HWDESIGNHWFABINTEG.&TESTHW&SW CODESIGNHW&SW Partitioning&Codesign嵌入式系统快速原型开发的基本要素嵌入式系统快速原型开发的基本
19、要素n系统定义(需求分析)系统定义(需求分析)n软硬件划分软硬件划分n结构规划结构规划 处理器类型处理器类型,软硬件之间的接口类型软硬件之间的接口类型,等等.n划分目的划分目的 满足系统速度满足系统速度,延迟延迟,体积体积,成本等方面的要求成本等方面的要求.n划分策略划分策略-high level partitioning by hand,automated partitioning using various techniques,etc.n调度调度nOperation scheduling in hardwarenInstruction scheduling in compilersnPr
20、ocess scheduling in operating systemsn软硬件设计过程中的建模软硬件设计过程中的建模传统的嵌入式系统设计模型传统的嵌入式系统设计模型SystemConceptsSys/HWRequire.AnalysisSys/SWRequire.AnalysisOperation.Testing and Eval.SoftwareRequire.AnalysisPrelim.DesignDetailedDesignCoding,Unit test.,Integ.testSW DevelopmentHWCITestingCSCITestingSystemInteg.and
21、testHardwareRequire.AnalysisPrelim.DesignDetailedDesignFabric.HW DevelopmentDOD-STD-2167A传统的嵌入式系统设计过程传统的嵌入式系统设计过程n传统软硬件设计过程的基本特征传统软硬件设计过程的基本特征:n系统在一开始就被划分为软件和硬件两大部分系统在一开始就被划分为软件和硬件两大部分n软件和硬件独立进行开发设计软件和硬件独立进行开发设计n“Hardware first”approach often adoptedn隐含的一些问题隐含的一些问题:n软硬件之间的交互受到很大限制软硬件之间的交互受到很大限制n软硬件之
22、间的相互性能影响很难评估软硬件之间的相互性能影响很难评估n系统集成相对滞后,系统集成相对滞后,NRE较大较大n因此因此:nPoor quality designs(设计质量差)(设计质量差)nCostly modifications(设计修改难)(设计修改难)nSchedule slippages(研制周期不能有效保障)(研制周期不能有效保障)传统设计过程中的尖锐矛盾n随着设计复杂程度的提高,软硬件设计中随着设计复杂程度的提高,软硬件设计中的一些错误将使开发过程付出昂贵的代价的一些错误将使开发过程付出昂贵的代价 n“Hardware first”approach often compounds
23、(混合)software cost because software must compensate for(补偿)hardware inadequacies(不充分)软硬件设计过程发展方向协同设计软硬件设计过程发展方向协同设计SystemConceptsSys/HWRequire.AnalysisSys/SWRequire.AnalysisHardwareRequire.AnalysisSoftwareRequire.AnalysisOperation.Testing and EvaluationSW DevelopmentHW DevelopmentSystemInteg.and test
24、HWCITestingCSCITestingFranke91Integrated Modeling SubstrateIntegrated Modeling Substrate(一体化建模底层)(一体化建模底层)Prelim.DesignPrelim.DesignDetailedDesignDetailedDesignFabric.Coding,Unit test.,Integ.test IEEE 1991嵌入式软件的开发过程(瀑布模型)嵌入式软件的开发过程(瀑布模型)Requirement AnalysisSoftware DesignCodingTestingRelease软硬件协同设计的
25、基本需求软硬件协同设计的基本需求n统一的软硬件描述方式n软硬件支持统一的设计和分析工具(技术)n允许在一个集成环境中仿真(评估)系统软硬件设计n支持系统任务在软件和硬件设计之间的相互移植n交互式软硬件划分技术n允许多个不同的软硬件划分设计进行仿真和比较n辅助最优系统实现方式决策n将软硬件划分应用到模块设计,以便最佳地实现系统的设计指标。Partitioning applied to modules to best meet design criteria(功能和性能目标)软硬件协同设计的基本需求软硬件协同设计的基本需求(续续)n完整的软硬件模型基础n支持在设计过程中的几个阶段的综合评价n支持软
26、硬件逐步的开发和集成n正确的验证方法n确保系统设计达到的目标要求典型的软硬件协同设计过程典型的软硬件协同设计过程 SystemIntegrationInstruction set levelHW/SW evaluationUnified representation(Data/control flow)HW/SWPartitioning Interface Synthesis Software SynthesisSWHardware SynthesisHW System Description(Functional)Concurrent processesProgramming languag
27、es FSM-directed graphs Another HW/SWpartition经典的软硬件协同设计方法经典的软硬件协同设计方法Analysis of Constraintsand RequirementsSystem Specs.HW/SWPartitioningHardware Descript.Software Descript.HW Synth.andConfigurationInterface SynthesisSoftware Gen.&ParameterizationConfigurationModulesHardwareComponentsHW/SWInterface
28、sSoftwareModulesHW/SW Integrationand CosimulationIntegratedSystemSystem EvaluationDesign VerificationRozenblit94 IEEE 1994软硬件协同设计的优势软硬件协同设计的优势n在设计初始阶段就可进行软硬件交互设计和调整nProvides continual verification throughout the design cycle(贯穿整个设计周期)nSeparate HW/SW development paths(开发路线)can lead to costly modifica
29、tions and schedule slippages(导致代价昂贵的纠错成本和开发进度的下降)n关键技术(如可编程逻辑综合技术、器件接口和功能模型描述)的进步使得软硬件交互设计变得简单起来软硬件协同设计技术的现状软硬件协同设计技术的现状n主要问题:n缺乏标准化的表示方法n缺乏好的验证和评价方法n可能的解决方案:n扩展已有的硬件/软件语言工具并应用到不同种类情况n扩展形式验证技术并应用到硬件/软件领域n基于FPGA的嵌入式系统设计SOPC设计软硬件协同设计基本步骤软硬件协同设计基本步骤HW-SW system involvesnSpecification(设计描述)(设计描述)nmodeli
30、ng(设计建模)(设计建模)ndesign space exploration and partitioningnsynthesis and optimization(综合与优化)nValidation(设计验证)(设计验证)nimplementation(设计实现)(设计实现)软硬件协同设计基本步骤软硬件协同设计基本步骤Specification(设计描述)nList the functions of a system that describe the behavior of an abstraction clearly with out ambiguity.Modeling(设计建模)n
31、Process of conceptualizing and refining the specifications,and producing a hardware and software model.软硬件协同设计基本步骤软硬件协同设计基本步骤Validation:Process of achieving a reasonable level of confidence(置信度)that the system will work as designed.nTakes different flavors per application domain(根据应用领域而不同):cosimulat
32、ion for performance and correctness(性能与功能的协同仿真)软硬件协同设计基本步骤软硬件协同设计基本步骤Implementation:nPhysical realization of the hardware(through synthesis)nand of executable software(through compilation).协同设计中的软硬件划分与调度协同设计中的软硬件划分与调度 (where and when)nA hardware/software partitioning represents a physical partition
33、of system functionality into application-specific hardware and software.nScheduling is to assign an execution start time to each task in a set,where tasks are linked by some relations.嵌入式系统的节能设计嵌入式系统的节能设计 (硬件节能、软件节能)(硬件节能、软件节能)嵌入式系统的节能设计嵌入式系统的节能设计n节能计算成为嵌入式系统设计、系统软件重点考虑的基本方面:n节能计算包括:n硬件体系结构支持n在小巧外形尺
34、寸下,如何实现所需电源性能的工艺和技术n热管理、降噪、电池管理和功能整合n软件支持n节能编译n操作系统n节能策略现状现状n电源管理策略n面向PC、笔记本电脑、服务器、通信设备的刀片服务器nAPM:高级电源管理方案 nACPI:高级配置和电源接口 n根据嵌入式系统模型定制节能技术非常缺乏,甚至在某些方面是空白 手持设备电源管理手持设备电源管理n电池寿命不等同于电源管理的成效n性能、多媒体系统、数码摄像n新增功能增加系统的耗电量n缩短电池寿命 n影响因素nCPU 功能n系统软件n中间件n管理策略传统手持设备管理策略传统手持设备管理策略n处理器时钟变慢n操作系统转入待机、睡眠状态n动态电源管理(DP
35、M)n调整内核电压和频率 n高性能存储器n彩色显示器n无线接口 n固化为通用电源管理IC 软件节能策略软件节能策略n预测什么时候设备的未来使用状况或者使用率 n“time-out”策略预测特定的时间长度 n基于GSPN网络和HMM的技术 nMontavista n基于linuxn通用性强,但是嵌入式系统定制性强,效果不佳能耗测试能耗测试n测试出每条指令的能耗,估计测试程序运行完的总能耗n测试出每个函数的能耗,然后利用这些函数作为标准去估计其他函数运行的能耗节能操作系统节能操作系统n目的n保证操作系统实时性的前提下,完成能耗计算n调度算法的节能优化n中断处理优化n低功耗文件系统nCPU 电压和频
36、率调节会给实时性能带来了严峻挑战n可能造成不稳定n“重新锁定”锁相环路和其它动态时钟机制需要时间,造成了很长的等待时间(有时是毫秒级别)n锁定期间 CPU 既不能执行计算操作,又不能响应外部事件(中断)n每一软件n相应的手机最低电压nCPU频率n相应设备n通过动态的调节CPU的内核频率与内核电压,以及动态的关闭系统的某些设备和调整某些设备的状态 外设驱动外设驱动n针对不同功能部件的能耗,进行合理的功耗优化n从电池开始,严格和精确地电量测量n根据外设特征研究不同的电源管理策略下的驱动n现有情况n硬件产品有几种状态定义n状态提供不同的服务质量和消耗的能量 n提供各种状态之间的转换接口 n算法目标n实现状态转换的节能策略 n减少待机能耗n人工智能技术的应用n通过软件来动态的预测和控制某些部件的开关节能通讯协议栈节能通讯协议栈n连接干预n节能的传输调度算法n缓冲区技术n局部性原理与预取n低功耗压缩算法节能编译节能编译n对每条指令的能耗进行测试n对函数编译结果的能耗进行估计n错误处理代码的能耗设计n基于ICE进行函数执行代码统计