版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 嵌入式系统设计方法 嵌入式系统嵌入式系统 主要内容主要内容 嵌入式系统面临的挑战嵌入式系统面临的挑战 嵌入式系统的设计嵌入式系统的设计 嵌入式系统软硬件协同设计嵌入式系统软硬件协同设计 嵌入式系统节能设计嵌入式系统节能设计 CC1991(92个主领域)个主领域) CC2001(14个主领域)个主领域) 离散数学(预备知识) 离散结构(DS) 程序设计语言引论程序设计基础(程序设计基础(PF) 算法与数据结构算法与复杂性(算法与复杂性(AL) 计算机系统结构系统结构(系统结构(AR) 操作系统 操作系统(操作系统(OS) 网络计算(网络计算(NC) 程序设计语言程序设计语言(程序设计语言(PL
2、) 人机通信 人机交互(HC) 图形学和可视化计算(GV) 人工智能与机器人学智能系统(IS) 数据库与信息检索信息管理(IM) 软件方法学与工程软件工程(软件工程(SE) 社会、道德和职业的问题社会和职业的问题(SP) 数值与符号计算科学计算(SC) IEEE/ACM 课程大纲关于计算机学科主领域的划分课程大纲关于计算机学科主领域的划分 嵌入式系统嵌入式系统 嵌入式系统: 以应用为中心,以计算机技术为基础,以应用为中心,以计算机技术为基础, 软件硬件可裁剪,适应应用系统对功能、可软件硬件可裁剪,适应应用系统对功能、可 靠性、成本、体积、功耗诸方面严格要求的靠性、成本、体积、功耗诸方面严格要求
3、的 专用计算机系统。专用计算机系统。 嵌入式系统特点嵌入式系统特点 嵌入式系统特点:嵌入式系统特点: 软件硬件协同并行开发软件硬件协同并行开发 多种多样的微处理器多种多样的微处理器 实时操作系统的多样性实时操作系统的多样性 (RTOS)(RTOS) 与台式机相比,可利用系统资源不足与台式机相比,可利用系统资源不足 应用支持很少应用支持很少 要求特殊的开发工具要求特殊的开发工具 调试很困难调试很困难 软件硬件的鲁棒性(健壮性,软件硬件的鲁棒性(健壮性,RobustRobust) 嵌入式系统要解决的主要问题嵌入式系统要解决的主要问题 需要用什么样的系统结构来实现?需要用什么样的系统结构来实现? 如
4、何满足时限要求,如何处理多项功能在时间上的协如何满足时限要求,如何处理多项功能在时间上的协 调一致关系?调一致关系? 如何保证系统可靠地工作?如何保证系统可靠地工作? 如何满足系统接口要求,嵌入式应用直接和系统接口如何满足系统接口要求,嵌入式应用直接和系统接口 输入输出信息?输入输出信息? 如何降低系统的功耗?如何降低系统的功耗? 如何使系统可升级?如何使系统可升级? 嵌入式系统设计的挑战性问题嵌入式系统设计的挑战性问题 软硬件协同设计软硬件协同设计 功耗的优化设计功耗的优化设计 嵌入式操作系统嵌入式操作系统 开发环境开发环境 成本和开发周期成本和开发周期 代码优化代码优化 高效的输入和输出高
5、效的输入和输出 测试环境测试环境 嵌入式系统软件技术面临的几大问题嵌入式系统软件技术面临的几大问题 嵌入式软件全生命周期开发工具链嵌入式软件全生命周期开发工具链 硬件与软件的硬件与软件的Co-Design: Verilog + C = ?Co-Design: Verilog + C = ? 驱动程序的设计和生成技术(嵌入式软件开发中驱动程序的设计和生成技术(嵌入式软件开发中 最令人头疼的问题)最令人头疼的问题) 嵌入式软件的可靠性问题嵌入式软件的可靠性问题: : 正确性验证技术、测正确性验证技术、测 试技术、调试技术等(可靠性问题是嵌入式软件试技术、调试技术等(可靠性问题是嵌入式软件 开发的基
6、本问题)开发的基本问题) 可重构计算(可重构计算(Reconfigurable ComputingReconfigurable Computing)技术)技术 可构件化的嵌入式实时操作系统及其开发环境可构件化的嵌入式实时操作系统及其开发环境 问题问题: 功 能 、 性 能要求 价 格 、 开 发 周 期 等 约束 设计:设计: 选择 折衷 分析比较 计算 评价 嵌入式系统嵌入式系统 嵌入式系统的设计嵌入式系统的设计 方法方法 工具工具 设计流程设计流程自顶向下或自底向上设计自顶向下或自底向上设计 需求需求 设计说明设计说明 体系结构体系结构 构件设计构件设计 系统集成系统集成 自顶向下 设计
7、自底向上 设计 需求分析 作用作用 使用户和设计者有效交流、沟通,明确设计目标使用户和设计者有效交流、沟通,明确设计目标 设计者设计者 设计什么?有哪些要求?设计什么?有哪些要求? 用户用户 将得到的系统是什么样的?将得到的系统是什么样的? 目标目标 形成需求文档形成需求文档 内容内容 功能性需求功能性需求 做什么?做什么? 输入输入, ,输出输出, ,功能,功能, 非功能性需求非功能性需求 其他属性其他属性 可靠性,速度,功耗,可靠性,速度,功耗, 成本成本, ,大小大小, ,重量重量, ,设计时间,设计时间, 评价标准 正确性 无二义性 完整性 可检验性 一致性 可修改性 可追踪性 需求分
8、析的描述 自然语言 需求说明书 需求分析表 形式化描述 用例图等 DOORS 例:GPS移动地图的需求 规格说明 规格说明与需求的比较 需求的提炼 是可用来创建体系结构的关于系统的更详尽、 更精确、更一致的描述 目标 形成规格说明书 内容 包含系统体系结构设计的足够信息 规格说明书的描述 自然语言 形式化描述 UML RSML SDL 规格规格说明说明 需求的精确描述需求的精确描述 描述明确,可理解描述明确,可理解 UML (Unified Modeling Language) UML (Unified Modeling Language) 统一建模语言是可视化的设计说明语言统一建模语言是可视
9、化的设计说明语言 统一描述系统的硬件和软件统一描述系统的硬件和软件 UML UML 可对系统的功能建模可对系统的功能建模 可自动产生实际设计的可自动产生实际设计的HDL HDL 或或C+ C+ 代码代码 UML的应用的应用 I-Logix公司的Rhapsody系列产品 基于统一建模语言UML的可视化编程环境 把UML各类视图映射为具体目标机程序语言 用于复杂实时嵌入式应用软件从分析、设计一 直到代码实现和软件测试的开发过程 NASA的火星探路者航天器就是运用Rhapsody在 VxWorks上开发应用程序。 系统结构设计系统结构设计 系统如何实现设计说明书描述的功能系统如何实现设计说明书描述的
10、功能 基于组件的系统结构基于组件的系统结构 软件软件/硬件划分硬件划分 嵌入式系统中软件和硬件协同完成系统的嵌入式系统中软件和硬件协同完成系统的 功能功能 软件硬件划分通常由速度、灵活性以及开销软件硬件划分通常由速度、灵活性以及开销 来决策来决策 硬件硬件 单片机单片机, X86, PowerPC, ARM, MIPS, 板级支持程序板级支持程序 嵌入式操作系统嵌入式操作系统 应用软件应用软件 监控程序监控程序 嵌入式计算机系统基本结构嵌入式计算机系统基本结构 嵌入式系统组成嵌入式系统组成 系统结构设计系统结构设计 系统结构设计 作用 实现系统的蓝图,系统整体结构的一个计划 目标 形成结构设计
11、文档 内容 系统分析 系统软硬件整体结构的设计 软硬件划分 标准构件和自行设计构件的确定 评价标准 有弹性 简单 可实现 层次清晰 功能分布平衡 平衡技术和经济约束 满足功能需求和非功能需求 可重用 系统结构的描述 非形式化方式 自然语言 结构框图 形式化方法 UML建模 系统结构的设计过程及方法 结构化设计方法 以算法为中心,从处理到处理的 数据流 从输入、输出入手,根据操作和数据流,形成 比较粗的系统大框架; 然后逐步细化框架内的每个部分,进一步确定 内部模块的及模块之间的关系 设计过程应该是逐步细化和逐步完善的过程 面向对象的方法 以类及交互模式为中心 系统软件结构的设计 结构化方法(S
12、A/SD) 面向对象的方法(OOA/OOD) UML建模 结构设计的验证 结构设计的正确性非常关键 详细设计和实现的基础,对开发周期、成本有很大影响 验证所关心的问题 结构设计是否满足功能、性能要求 能否实现 验证方法 形式化方法 仿真 系统结构 软件结构 硬件结构 其他方法 如基于开发板的原型系统 系统引入错误和修改错误开销分布系统引入错误和修改错误开销分布 引入错误数目引入错误数目 修改错误开销修改错误开销 开发周期系统结构 设计 软硬件 详细设计 软硬件 实现 软硬件的划分 嵌入式系统的设计涉及硬件与软件部件,设计中必 须决定什么功能由硬件实现,什么功能由软件实现。 硬件和软件具有双重性
13、 软硬件变动对系统的决策造成影响 划分和选择需要考虑多种因素 硬件和软件的双重性是划分决策的前提 通常由软件实现的部分 操作系统功能 任务调度 资源管理 设备驱动 协议栈 TCPIP 应用软件框架 除基本系统、物理接口、基本逻辑电路, 许多由硬件实现的功能都可以由软件实 现。 双重性部分 算法 加密解密 编码解码 压缩解压 数学运算 浮点运算, FFT, 标准构件和自行设计构件 构件的实现 选择标准 自行设计 标准构件 ?现成构件 已经产品化 形成规模生产 标准构件 自行设计构件 用户系统 构件包括了硬件构件和软件构件 构件本身可以是层次性的,可以由子构件组成 标准硬构件 硬构件的形式:硬构件
14、的形式: IC:集成电路:集成电路 PCB:印刷电路板:印刷电路板 IP:Intellectual Property 标准 IC CPU, DSP, RAM, ROM, 接口控制器, ASIC, 标准 IP CPU核, 标准模块 GPRS模块,GSM模块,蓝牙模块, 显示模块, 标准计算平台 基于PC104的嵌入式计算机 基于Compact PCI的嵌入式计算机 SOC, 标准软构件 OS / RTOS 协议栈 TCP/IP 路由协议 H.323 图形开发包 VxWorks的ZINK 驱动程序 自研硬构件 内容 逻辑电路,专用加速器, 实现方式 PCB: IC:PLD FPGA ASIC, E
15、DA设计工具 板级: 原理图设计工具 PCB设计工具 IC 硬件描述语言: VHDL,Verilog 原理图描述工具 综合仿真工具 布线器, 自研软构件 BSP 驱动程序 应用程序 软硬件技术对系统结构的影响 硬软件设计的趋势融合、渗透 硬件设计的软件化 VHDL, Verilog HANDL-C 软件实现的硬件化 各种算法的ASIC 对系统设计的影响协同设计 增加灵活性 增加了风险 嵌入式系统设计者要求嵌入式系统设计者要求 懂得系统的整个构架懂得系统的整个构架 详细了解硬件的细节详细了解硬件的细节 软件设计满足:软件设计满足: 实时要求实时要求 低功耗低功耗 代码量小代码量小 详细了解领域知
16、识详细了解领域知识 嵌入式系统软硬件协同设计嵌入式系统软硬件协同设计 软硬件协同设计软硬件协同设计 软硬件协同设计软硬件协同设计 硬件设计工具(EDA工具) 系统级设计工具系统级设计工具 Cadence的的SPW System View 模拟电路系统仿真工具模拟电路系统仿真工具 Pspice EWB PCB设计工具设计工具 Protel PADs 的的Power PCB & Tool Kit Mentor的的Expedition & Tool Kit 可编程逻辑器件设计工具可编程逻辑器件设计工具 Mentor FPGA Advantage & ModelSim Xilinx Foundatio
17、n ISE & Tool Kit 各种综合和仿真第三方工具各种综合和仿真第三方工具 软硬件协同设计定义与主要概念软硬件协同设计定义与主要概念 软硬件协同设计定义 The meeting of system-level objectives by exploiting the trade-offs between hardware and software in a system through their concurrent design 主要概念 Concurrent(并发)(并发): hardware and software developed at the same time on
18、parallel paths Integrated(一体化)(一体化): interaction between hardware and software developments to produce designs that meet performance criteria and functional specifications 嵌入式系统嵌入式系统快速原型快速原型设计过程设计过程 SYSTEM DEF. SW DESIGN VIRTUAL PROTOTYPE REUSE DESIGN LIBRARIES AND DATABASE Primarily software Primar
19、ily hardware SW CODE FUNCTION DESIGN HW & SW PART. HW DESIGN HW FAB INTEG. & TEST HW & SW CODESIGN HW & SW Partitioning & Codesign 嵌入式系统快速原型开发的基本要素嵌入式系统快速原型开发的基本要素 系统定义(需求分析)系统定义(需求分析) 软硬件划分软硬件划分 结构规划结构规划 处理器类型处理器类型, 软硬件之间的接口类型软硬件之间的接口类型, 等等. 划分目的划分目的 满足系统速度满足系统速度,延迟延迟, 体积体积,成本等方面的要求成本等方面的要求. 划分策略划分
20、策略 - high level partitioning by hand, automated partitioning using various techniques, etc. 调度调度 Operation scheduling in hardware Instruction scheduling in compilers Process scheduling in operating systems 软硬件设计过程中的建模软硬件设计过程中的建模 传统的嵌入式系统设计模型传统的嵌入式系统设计模型 SystemSystem ConceptsConcepts Sys/HWSys/HW Req
21、uire.Require. AnalysisAnalysis Sys/SWSys/SW Require.Require. AnalysisAnalysis Operation.Operation. Testing and Testing and Eval.Eval. SoftwareSoftware Require.Require. AnalysisAnalysis Prelim.Prelim. DesignDesign DetailedDetailed DesignDesign Coding,Coding, Unit test.,Unit test., Integ. testInteg. t
22、est SW DevelopmentSW Development HWCIHWCI TestingTesting CSCICSCI TestingTesting SystemSystem Integ. and Integ. and testtest HardwareHardware Require.Require. AnalysisAnalysis Prelim.Prelim. DesignDesign DetailedDetailed DesignDesign Fabric.Fabric. HW DevelopmentHW Development DOD-STD-2167A 传统的嵌入式系统
23、设计过程传统的嵌入式系统设计过程 传统软硬件设计过程的基本特征传统软硬件设计过程的基本特征: 系统在一开始就被划分为软件和硬件两大部分系统在一开始就被划分为软件和硬件两大部分 软件和硬件独立进行开发设计软件和硬件独立进行开发设计 “Hardware first” approach often adopted 隐含的一些问题隐含的一些问题: 软硬件之间的交互受到很大限制软硬件之间的交互受到很大限制 软硬件之间的相互性能影响很难评估软硬件之间的相互性能影响很难评估 系统集成相对滞后,系统集成相对滞后,NRE较大较大 因此因此: Poor quality designs(设计质量差)(设计质量差)
24、Costly modifications(设计修改难)(设计修改难) Schedule slippages(研制周期不能有效保障)(研制周期不能有效保障) 传统设计过程中的尖锐矛盾 随着设计复杂程度的提高,软硬件设计中随着设计复杂程度的提高,软硬件设计中 的一些错误将使开发过程付出昂贵的代价的一些错误将使开发过程付出昂贵的代价 “Hardware first” approach often compounds(混合) software cost because software must compensate for (补偿) hardware inadequacies(不充分) 软硬件设计过
25、程发展方向协同设计软硬件设计过程发展方向协同设计 SystemSystem ConceptsConcepts Sys/HWSys/HW Require.Require. AnalysisAnalysis Sys/SWSys/SW Require.Require. AnalysisAnalysis HardwareHardware Require.Require. AnalysisAnalysis SoftwareSoftware Require.Require. AnalysisAnalysis Operation.Operation. Testing and Testing and Eval
26、uationEvaluation SW DevelopmentSW Development HW DevelopmentHW Development SystemSystem Integ. and Integ. and testtest HWCIHWCI TestingTesting CSCICSCI TestingTesting Franke91 Integrated Modeling Substrate Integrated Modeling Substrate(一体化建模底层)(一体化建模底层) Prelim.Prelim. DesignDesign Prelim.Prelim. Des
27、ignDesign DetailedDetailed DesignDesign DetailedDetailed DesignDesign Fabric.Fabric. Coding,Coding, Unit test.,Unit test., Integ. testInteg. test IEEE 1991 嵌入式软件的开发过程(瀑布模型)嵌入式软件的开发过程(瀑布模型) Requirement Analysis Software Design Coding Testing Release 软硬件协同设计的基本需求软硬件协同设计的基本需求 统一的软硬件描述方式 软硬件支持统一的设计和分析工具
28、(技术) 允许在一个集成环境中仿真(评估)系统软硬件设计 支持系统任务在软件和硬件设计之间的相互移植 交互式软硬件划分技术 允许多个不同的软硬件划分设计进行仿真和比较 辅助最优系统实现方式决策 将软硬件划分应用到模块设计,以便最佳地实现系统的 设计指标。Partitioning applied to modules to best meet design criteria (功能和性能目标) 软硬件协同设计的基本需求软硬件协同设计的基本需求 (续续) 完整的软硬件模型基础 支持在设计过程中的几个阶段的综合评价 支持软硬件逐步的开发和集成 正确的验证方法 确保系统设计达到的目标要求 典型的软硬件
29、协同设计过程典型的软硬件协同设计过程 System Integration Instruction set level HW/SW evaluation Unified representation (Data/control flow) HW/SW Partitioning Interface Synthesis Software Synthesis SW Hardware Synthesis HW System Description (Functional) Concurrent processes Programming languages FSM- directed graphs A
30、nother HW/SW partition 经典的软硬件协同设计方法经典的软硬件协同设计方法 Analysis of Constraints and Requirements System Specs. HW/SW Partitioning Hardware Descript.Software Descript. HW Synth. and Configuration Interface Synthesis Software Gen. & Parameterization Configuration Modules Hardware Components HW/SW Interfaces S
31、oftware Modules HW/SW Integration and Cosimulation Integrated System System EvaluationDesign Verification Rozenblit94 IEEE 1994 软硬件协同设计的优势软硬件协同设计的优势 在设计初始阶段就可进行软硬件交互设计和调整 Provides continual verification throughout the design cycle(贯穿整个设计周期) Separate HW/SW development paths(开发路 线) can lead to costly
32、modifications and schedule slippages(导致代价昂贵的纠错成本 和开发进度的下降) 关键技术(如可编程逻辑综合技术、器件接口和功 能模型描述)的进步使得软硬件交互设计变得简单 起来 软硬件协同设计技术的现状软硬件协同设计技术的现状 主要问题: 缺乏标准化的表示方法 缺乏好的验证和评价方法 可能的解决方案: 扩展已有的硬件/软件语言工具并应用到不同种类情况 扩展形式验证技术并应用到硬件/软件领域 基于FPGA的嵌入式系统设计SOPC设计 软硬件协同设计基本步骤软硬件协同设计基本步骤 HW-SW system involves Specification(设计描述
33、)(设计描述) modeling (设计建模)(设计建模) design space exploration and partitioning synthesis and optimization(综合与优化) Validation(设计验证)(设计验证) implementation (设计实现)(设计实现) 软硬件协同设计基本步骤软硬件协同设计基本步骤 Specification(设计描述) List the functions of a system that describe the behavior of an abstraction clearly with out ambigui
34、ty. Modeling(设计建模) 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. Takes different flavors per application dom
35、ain(根据 应用领域而不同): cosimulation for performance and correctness(性能与功能的协同仿真) 软硬件协同设计基本步骤软硬件协同设计基本步骤 Implementation: Physical realization of the hardware (through synthesis) and of executable software (through compilation). 协同设计中的软硬件划分与调度协同设计中的软硬件划分与调度 (where and when) A hardware/software partitioning represents a physical partition of system functionality into application-specific hardware and software. Scheduling is to assign an execution start time to each task in a set, where tasks are linked by some relations
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年新款出租车租赁协议模板
- 2024年专职驾驶员劳动协议范本
- 2024年专业设计服务外包协议模板
- 增资协议书面模板
- 房产贷款协议模板2024年度
- 2024化场地共享合作协议
- 2024年度建筑班组劳务协作协议
- 虚拟商品购买协议
- 特殊儿童医疗支持免责协议书
- 2024年度瓷砖供货及服务协议
- 2023学年完整公开课版夜黑黑
- 优雅小主妇的美容养颜经
- 初中艺术鄂教七年级上册漫步艺术长廊舞剧欣赏《永不消逝的电波》
- 第章WindowsServer网络应用服务器
- 诗情画意谈力学知到章节答案智慧树2023年天津大学
- 中国古代史-隋唐五代
- 【移动应用开发技术】Android开发中实现一个弹出框的方法
- 幽门螺旋杆菌的认识与治疗
- 景区解说系统
- 注册电子邮箱PT课件
- 小学劳动教育五年级下册第二单元布艺制作大单元设计《挂袋》教学设计
评论
0/150
提交评论