汽车嵌入式系统的开发流程(汽车电子技术)
- 格式:ppt
- 大小:10.11 MB
- 文档页数:77


符合ISO 26262的汽车电子软件开发流程董淑成**************************MathWorks中国ISO 26262(2011)高完整性软件开发标准和基于模型的设计01219901995200020052010基于模型设计的应用标准生效的年份DO-178B (1992)NASA-GB-8719.13(2004)IEC 61508(1998)DO-178C(2011)IEC 61508(2010)EN 50128(2001)EN 50128(2011)IEC 61511(2003)软件开发标准里出现基于模型的设计为什么?大纲▪ISO 26262软件开发项目的启动▪符合ISO 26262的软件开发过程软件开发ISO 26262定义的软件开发过程系统集成和测试系统设计软件需求验证软件集成和测试软件单元测试软件单元设计及实现软件需求定义软件架构设计系统测试软件测试软件测试软件测试设计验证设计验证设计验证软件开发ISO 26262的软件项目启动系统集成和测试系统设计软件需求验证软件集成和测试软件单元测试软件单元设计及实现软件需求定义软件架构设计系统测试软件测试软件测试软件测试设计验证设计验证设计验证1.软件开发计划2.软件验证计划3.编程、建模语言的选择4.编码、建模标准5.工具的选择6.工具应用指南建模/编程语言的选择及相关标准▪建模或者编程语言的选择标准–明确的定义–支持嵌入式实时软件和运行时错误处理–支持模块化、抽象及结构化▪语言本身不能涵盖的上述标准应通过相应的指导或开发环境涵盖TopicsASILA B C D 1a Enforcement of low complexity++++++++ 1b Use of Language subsets++++++++ 1c Enforcement of strong typing++++++++ 1d Use of defensive implementation technique O+++++ 1e Use of established design principles+++++ 1f Use of unambiguous graphical representation+++++++ 1g Use of style guides+++++++ 1h Use of naming conventions++++++++▪通常,汽车电子软件选择C语言–基础软件手工编写C代码–控制策略软件通过Simulink建模并自动生成代码C代码•建模/编码标准要涵盖的内容Simulink/Stateflow建模标准▪汽车行业建模标准(MAAB)–专门为汽车行业Simulink用户制定▪高完整性系统建模标准–专门为民航、火车、汽车等高完整性系统建模制定设计工具/验证工具的选择 工具的分类及资质审核TI 2TI 1TD 3TD 1TD 2TCL 3TCL 2TCL 1工具错误的检测工具置信水平高中无/ 低增加审核需求工具的影响ASIL 为TCL2级的资质审核无需额外的资质审核为TCL3级的资质审核工具分类工具资质审核UC 1..n 软件工具有引入错误或者不能检出错误的可能工具的功能/用例TÜV SÜD认证的工具▪Embedded Coder™功能:生产针对嵌入式优化的C和C++代码▪Simulink® Verification and Validation™功能:验证模型和模型生成的代码▪Simulink® Design Verifier™功能:定位设计错误,生成测试用例,并根据需求对设计进行验证▪Polyspace® Client™ for C/C++功能:证明源代码没有运行期错误▪Polyspace® Server™ for C/C++功能:在计算机集群执行代码验证并发布度量开发工具的应用指南▪除了选择开发工具之外,还要提供开发工具的应用指南▪Embedded Coder等工具具有非常详实的用户手册需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成汽车电子软件的现状和复杂软件开发的困境▪GM汽车上的代码量▪软件工程师的工作效率▪解决复杂软件开发效率低下的途径–模块化开发模块化的原则和目标▪模块划分的一般原则–从功能上–高内聚–低耦合▪模块划分的目标–简化设计–便于分工–便于测试–便于后期维护▪In order to avoid failures resulting from high complexity, the software architecture design shall exhibit the following properties,–Modularity;–Encapsulation; and–Simplicity.ISO 26262软件架构设计原则▪软件架构设计原则MethodsASILA B C D1a Hierarchical structure of software components++++++++ 1b Restricted size of software components++++++++ 1c Restricted size of interfaces++++ 1d High cohesion within each software component+++++++ 1e Restricted coupling between software components+++++++ 1f Appropriate scheduling properties++++++++ 1g Restricted use of interrupts+++++软件的层次化结构设计▪模块如何划分–从功能上划分组件▪以发动机为例,分为:点火、进气、油量计算、怠速、巡航等▪模型实现上model reference发动机控制点火控制进气计算燃油控制怠速控制巡航控制其他–对复杂组件进一步划分为单元模块▪以发动机的怠速控制为例,分为暖机怠速、闭环速度控制、扭矩请求等单元▪模型实现上model reference系统级组件级单元级单元模块的设计不建议使用Model Reference.基于模型的嵌入式软件开发需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成Simulink建模语言▪使用建模语言的子集▪Simulink和Stateflow之间的选择–如果算法是复杂的逻辑运算,使用Stateflow;–如果算法主要是数据运算,使用Simulink;▪Stateflow的flow chart和state chart之间的选择–如果算法本质上是计算工作状态或者离散状态,使用state chart;–如果算法本质上是if-then-else结构,使用flow chart或者真值表;ISO 26262软件单元的设计原则▪Example: Parallel states should not appear at the top level of a state-chart.--Misra Modeling GuidelineMethodsASILABCD1a One entry and one exit point in subprograms and functions++++++++1b No dynamic objects or variables, or else online test during their creation +++++++1c Initialization of variables++++++++1d No multiple use of variable names+++++++1e Avoid global variables or else justify their usage ++++++………1h No hidden data flow or control flow +++++++1jNo recursions++++++▪软件单元的设计和实现原则模型复杂度监测对单元模块进行复杂度监测–Model advisor–圈复杂度Simulink模型的平台化开发▪Model Variants–通过配置不同的参数选择不同的被引用模型–比如,K_Param== CLASS_A,选择Model_A.mdl;K_Param== CLASS_B,选择Model_B.mdl–支持生成条件编译的代码▪System Variants基于模型的嵌入式软件开发需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成软件开发ISO 26262定义的软件开发过程系统集成和测试系统设计软件需求验证软件集成和测试软件单元测试软件单元设计及实现软件需求定义软件架构设计系统测试软件测试软件测试软件测试设计验证设计验证设计验证MAAB及相关规范的检查▪Model Advisor实现建模规范检查▪定制检查集▪定制检查项模型评审▪模型和需求的双向追溯–模型→需求–需求→模型▪Simulink Report Generator生成报告–为非Simulink用户生成报告▪Simulink Report Generator实现不同版本模型比较使用Simulink Design Verifier检查逻辑错误▪设定生成测试用例目标为MC/DC100%覆盖▪生成测试用例▪逻辑错误导致无法生成100%覆盖的测试用例,并提示错误逻辑使用Simulink Design Verifier检查数据错误▪通过算术运算分析定位错误–数据溢出–被零除▪证明没有错误的运算演示Simulink Design Verifier检查错误单元模块的功能测试▪仿真测试▪覆盖率分析模型测试的覆盖率要求▪对单元软件测试的结构覆盖率要求–覆盖率达到分支覆盖率100%–MC/DC 要求▪对软件架构测试的覆盖率要求MethodsASILABCD1a Statement coverage ++++++1b Branch coverage+++++++1cMC/DC (Modified Conditional/Decision Coverage)+++++MethodsASILABCD1a Function coverage ++++++1bCall coverage++++++模型的集成测试▪模型的组件级集成测试▪模型的系统级测试–模型在环测试–快速原型▪不同组件之间的接口测试▪不同组件功能上是否冲突基于模型的嵌入式软件开发需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成代码生成的前提条件 模型经过充分验证模型符合建模标准功能测试覆盖率足够高模型不含有无效逻辑模型不含有数据错误GenerateCode数据对象和数据字典▪使用数据对象定义数据属性Properties (属性)Classes (类)Package (包)SimulinkSignal DataTypeData Storage ClassMin/Max ParameterData TypeData Storage ClassmodelName = 'f14';dictionaryName = 'myNewDictionary.sldd ‘;dictionaryObj =Simulink.data.dictionary.create(dictionaryName);set_param(modelName,'DataDictionary',dictionaryName);▪使用数据字典管理数据对象数据字典管理数据按照组件划分进行数据管理代码生成工具配置1. 通过系统目标文件设定回调函数2. 在代码生成设置的回调函数里固化设置软件工具除确定id 和版本号之外,还需要确定配置等效性测试▪SIL测试/PIL测试都是等效性测试–验证生成的代码和用于代码生成的模型具有相同的行为属性–PIL除等效性验证之外,还可以用来测量运行时间▪等效性测试的测试用例–功能测试的测试用例–Simulink Design Verifier自动生成▪模型覆盖率和代码覆盖率的比较代码的集成和集成测试▪代码集成的两种方式–单元模型的代码生成,代码级别做集成–模型级别集成,然后生成代码▪软硬件的系统级集成–硬件在环测试–台架测试–实车测试Plant model uController models1s2s3+Plant Model in PC uControllers1s2s3+基于模型的嵌入式软件开发需求分析•模型架构•可实现性•可测性•可追溯•可配置模型建立•建模语言•建模标准•模型复杂度•平台化开发模型验证•建模标准•模型评审•形式化方法验证•功能测试代码实现•数据管理•等效性测试•代码验证•代码集成MathWorksChange the world byAccelerating the paceof discovery, innovation, development, and learningin engineering and science。
嵌入式系统基础理论与实践考试试卷(答案见尾页)一、选择题1. 嵌入式系统的定义是什么?A. 一种专门的计算机系统,具有面向特定应用领域的处理器和内存B. 一种特殊的计算机系统,具有实时处理能力C. 一种集成了操作系统和编程语言的计算机系统D. 一种专为移动设备设计的计算机系统2. 嵌入式系统的主要特点包括哪些?A. 实时性B. 可靠性C. 低功耗D. 高度集成化3. 嵌入式系统通常应用于哪些领域?A. 消费电子B. 工业控制C. 汽车电子D. 医疗设备4. 嵌入式系统中常用的处理器架构有哪些?A. ARM架构B. x86架构C. PowerPC架构D. MIPS架构5. 嵌入式系统中常用的编程语言有哪些?A. C语言B. C++语言C. Java语言D. Python语言6. 嵌入式系统开发通常分为几个阶段?A. 系统需求分析B. 硬件设计C. 软件开发和调试D. 系统测试和优化7. 嵌入式系统中的实时操作系统(RTOS)具有哪些特点?A. 任务调度的高优先级B. 任务之间的通信和协作C. 内存管理D. 系统安全8. 嵌入式系统中的嵌入式软件主要包括哪些类型?A. 应用软件B. 系统软件C. 支持软件D. 驱动软件9. 嵌入式系统的设计原则包括哪些?A. 可靠性B. 实时性C. 安全性D. 低成本10. 嵌入式系统的发展趋势是什么?A. 处理器性能的提升B. 通信技术的进步C. 微型化的设备D. 人工智能的融合11. 嵌入式系统的定义是什么?A. 一种特殊的计算机系统,具有面向特定应用领域的处理器和存储器B. 一种在微控制器基础上进行二次开发的系统C. 一种集成了操作系统和应用程序的专用计算机系统D. 一种基于实时操作系统(RTOS)的计算机系统12. 嵌入式系统的主要特点包括哪些?A. 低功耗、低成本B. 高可靠性、高稳定性C. 实时处理能力D. 易于编程和调试13. 嵌入式系统中常用的处理器类型有哪些?A. 微处理器(CPU)B. 微控制器(MCU)C. 嵌入式DSP处理器D. 嵌入式FPGA处理器14. 嵌入式系统的软件架构通常包括哪几个层次?A. 操作系统层B. 应用软件层C. 服务软件层D. 硬件抽象层(HAL)15. 嵌入式系统中的实时操作系统(RTOS)有哪些特点?A. 多任务处理能力B. 优先级调度C. 时间限制保证D. 资源利用率高16. 嵌入式系统开发中常用的编程语言有哪些?A. C语言B. C++语言C.汇编语言D. Java语言17. 嵌入式系统的硬件描述语言(HDL)有哪些?A. VerilogB. VHDLC. VHSICD. SystemC18. 嵌入式系统中的总线协议有哪些?A. I2CB. SPIC. UARTD. PCIe19. 嵌入式系统的调试方法有哪些?A. 内部调试B. 外部调试C. 在线仿真D. 物理原型调试20. 嵌入式系统的设计流程通常包括哪些步骤?A. 需求分析B. 方案设计C. 硬件开发D. 软件编写和调试E. 系统集成和测试F. 生产和部署21. 嵌入式系统的定义是什么?A. 一种特殊的计算机系统,具有高度集成和低功耗特点B. 一种在工业控制领域广泛应用的计算机系统C. 一种用于实现各种自动化设备的计算机系统D. 一种专门用于存储和处理程序的计算机系统22. 嵌入式系统的组成通常包括哪些部分?A. CPU、内存和外部设备B. CPU、内存和操作系统C. CPU、内存和应用程序D. CPU、内存和硬件抽象层23. 嵌入式系统的工作原理是基于什么?A. 硬件电路B. 软件程序C. 微控制器D. 操作系统24. 嵌入式系统的开发过程通常包含哪些步骤?A. 需求分析、设计、编码、测试和部署B. 需求分析、设计、编码、调试和测试C. 需求分析、设计、编码、优化和测试D. 需求分析、设计、编码、维护和升级25. 嵌入式系统通常用于哪些领域?A. 消费电子产品B. 工业控制系统C. 汽车电子D. 医疗设备26. 嵌入式系统的实时性要求如何?A. 高实时性,可以容忍一定程度的延迟B. 中实时性,需要在较短时间内完成任务C. 低实时性,对延迟非常敏感D. 无实时性要求27. 嵌入式系统的数据处理方式通常是什么?A. 基于文件的处理方式B. 基于数据库的处理方式C. 基于事件驱动的处理方式D. 基于进程的处理方式28. 嵌入式系统的安全性考虑因素主要包括哪些方面?A. 设备安全、数据安全和通信安全B. 设备安全、软件安全和数据安全C. 设备安全、软件安全和通信安全D. 设备安全、数据安全和硬件安全29. 嵌入式系统的设计原则通常包括哪些方面?A. 可靠性、可扩展性和可维护性B. 可靠性、高效性和可维护性C. 可靠性、可扩展性和高性能D. 可靠性、高效性和高性能30. 嵌入式系统的未来发展趋势可能包括哪些方面?A. 人工智能和机器学习的融合B. 5G和物联网的发展C. 绿色环保和节能技术D. 容错性和自愈能力31. 嵌入式系统的定义是什么?A. 一种专门的计算机系统,具有面向特定应用领域的特性。
汽车产品设计开发流程汽车产品设计开发流程Product Development Procedure许妮2009-12前言中国汽车市场已经成为全球发展最快的市场。
整车企业间的竞争日趋激烈3>.面对激烈的市场竞争,各国汽车企业都在认真研究怎样才能在最短的时间内,把高质量、低成本的产品推向瞬息万变的市场,满足顾客的需求和赢得市场竞争的胜利。
自主品牌轿车要赢得市场,必须推出安全、可靠、美观大方、舒适、适应中国的高品质车。
汽车产品的研发是一项系统而复杂的工程。
它的开发流程包括创意、造型、设计、工程分析、样车实验、工装设计及加工、调试、生产、装配等工作。
为达到我们的目标,就必需要建立具有竞争力的产品开发管理流程,发挥团队合作精神.课程的目的Course Objectives帮助学员了解:国际通用的汽车开发流程供应商的选择与管理产品设计和生产过程的质量管理。
产品开发流程Product Development Procedure轿车开发五个阶段一、前期开发形成产品战略意向二、概念设计和可行性研究阶段三、产品设计阶段四、产品验证阶段五、定型生产阶段一、前期开发形成产品战略意向Kick Off前期研究启动市场调研筹划(Program Commencement)决策者必须有确定的目标调研人员作市场调研整个汽车市场的现状、发展趋势、经济、文化、宏观1/31页经济现状、公路交通概况、汽车产业现状等市场情况(价格经销商新车销售,二手车,进口车情况) 汽车发展规划及相关政策* 汽车进口手续,我国汽车产品,当地主要经销商二、概念设计和可行性研究阶段Concept Design andFeasibility Study造型开发(Styling)CAD 数模建立CAE 可行性分析概念设计和可行性研究阶段开发周期(Timing ):新车开发一般都是32个月或36个月(平台开发)。
整车开发(包括底盘的)厂家上市周期其中设计冻结周期 hoda 22月 18月 toyota 38月15月 nissan28月 19月 renault 49月 26月 mazda 38月 18月 DC 39月 28月 GM36月 30月三、产品设计阶段Product Design详细设计( Detail Design)车身(Body)底盘 (Chassis)动力总成(Powertrain)电子电器 (8>EE)仿真 (CAE)工艺的同步工程(Process Simultaneous Engineering) 产品设计阶段Detail Design车身(,,,,)1. 材料:车身专用钢板具有深拉延时不易产生裂纹的特点。