嵌入式系统设计开发流程.ppt
第二讲 嵌入式系统开发流程,授课教师:谭毅电邮地址:课件密码:12345,2023/9/30,2,内容提纲,项目开发生命周期嵌入式系统的开发流程,2023/9/30,3,项目开发生命周期,概述识别需求提出方案执行项目结束项目,2023/9/30,4,概述,可以把嵌入式系统的开发看作对一个项目的实施;项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4个阶段;,2023/9/30,5,识别需求,是项目生命周期的最初阶段,主要任务是确认需求,分析投资收益比,研究项目的可行性,分析所需条件;,2023/9/30,6,提出方案,向客户提交标书、介绍解决方案,赢得项目合同,既要展示实力又要合理报价;如果竞标成功则签定合同,厂商开始承担项目成败的责任;,2023/9/30,7,执行项目,由项目经理负责,细化方案,制定计划,协调人力和其他资源,监控进展,分析项目偏差;,2023/9/30,8,结束项目,主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项;,2023/9/30,9,嵌入式系统的开发流程,概述需求分析、规格说明系统结构设计、硬件和软件的选择构件技术、构件设计与实现系统集成、测试与验收,2023/9/30,10,概述,嵌入式系统是软硬件综合体:硬件架构上以嵌入式处理器为中心,配置存储器、I/O设备、通信模块等必要的外设;软件部分以软件开发平台为核心,向上提供应用编程接口(API);嵌入式系统中,软件和硬件紧密配合,协调工作,共同完成系统预定的功能;,2023/9/30,11,方法,工具,嵌入式系统设计,2023/9/30,12,(嵌入式系统工程)设计方法简介,由上而下是一个正统的设计方式,也就是说,所有的设计皆是遵循系统工程的流程来进行;由下而上表示一个系统是由已经有的基础(或组件)为起点,开始往上延伸,最后将系统完成;,2023/9/30,13,由上而下,由下而上,2023/9/30,14,系统设计一般流程,2023/9/30,15,需求分析,需求分析的内容评价标准需求分析的描述例:GPS移动地图的需求,2023/9/30,16,需求分析的内容,作用使用户和设计者有效交流、沟通,明确设计目标设计者 设计什么?有哪些要求?用户 将得到的系统是什么样的?目标形成需求文档内容功能性需求 做什么?输入,输出,功能,非功能性需求 其他属性可靠性,速度,功耗,成本,大小,重量,设计时间,,2023/9/30,17,评价标准,正确性无二义性完整性可检验性一致性可追踪性,2023/9/30,18,需求分析的描述,自然语言需求说明书需求分析表形式化描述用例图等DOORS,2023/9/30,19,例:GPS移动地图的需求,2023/9/30,20,规格说明,规格说明的目标规格说明书的描述例:GPS系统规格说明书内容,2023/9/30,21,规格说明的目标,规格说明与需求的比较需求的提炼是可用来创建体系结构的关于系统的更详尽、更精确、更一致的描述目标形成规格说明书内容包含系统体系结构设计的足够信息,2023/9/30,22,规格说明书的描述,自然语言形式化描述UMLRSMLSDL,2023/9/30,23,例:GPS系统规格说明书内容,从GPS卫星接收到的数据地图数据用户界面必须执行的满足客户需求的操作保持系统运行所需的后备动作,如操纵GPS接收机,2023/9/30,24,系统结构设计,系统结构设计的内容评价标准系统结构的描述系统结构设计的验证软硬件的划分,2023/9/30,25,系统结构设计的内容,作用实现系统的蓝图,系统整体结构的一个计划目标形成结构设计文档内容系统分析系统软硬件整体结构的设计软硬件划分软硬件平台的确定标准构件和自行设计构件的确定,2023/9/30,26,2023/9/30,27,评价标准,有弹性简单可实现层次清晰功能分布平衡平衡技术和经济约束满足功能需求和非功能需求可重用,2023/9/30,28,系统结构的描述,非形式化方式自然语言结构框图形式化方法UML建模,2023/9/30,29,系统结构设计的验证,结构设计的正确性非常关键详细设计和实现的基础,对开发周期、成本有很大影响验证所关心的问题结构设计是否满足功能、性能要求、能否实现验证方法形式化方法仿真系统结构、软件结构、硬件结构其他方法如基于开发板的原型系统,2023/9/30,30,引入错误数目,修改错误开销,开发周期,系统结构设计,软硬件详细设计,软硬件实现,系统引入错误和修改错误开销分布,2023/9/30,31,软硬件的划分,设计中涉及硬件、软件部件,必须决定什么功能由硬件实现或软件实现硬件和软件具有双重性软硬件变动对系统的决策造成影响划分和选择需要考虑多种因素硬件和软件的双重性是划分决策的前提,2023/9/30,32,通常由软件实现的部分,操作系统功能任务调度资源管理设备驱动协议栈TCPIP应用软件框架除基本系统、物理接口、基本逻辑电路外,许多由硬件实现的功能都可以由软件实现,2023/9/30,33,双重性部分(既可软件又可硬件实现),算法加密解密编码解码压缩解压数学运算浮点运算,FFT,,2023/9/30,34,硬件和软件的选择,概述处理器选择操作系统选择编程语言选择硬件调试工具选择集成开发环境IDE选择,2023/9/30,35,概述,包括:处理器、硬件部件、操作系统、编程语言、软件开发工具、硬件调试工具、软件组件等处理器是最重要的,同时操作系统和编程语言也是非常关键的处理器的选择往往同时会限制操作系统的选择,操作系统的选择又会限制开发工具的选择,2023/9/30,36,处理器选择,处理器选择要考虑的主要因素有:处理器的性能 处理器的技术指标功耗软件支持工具处理器是否内置调试工具供应商是否提供评估板其它因素:生产规模、软件对硬件的依赖性,2023/9/30,37,操作系统选择,操作系统本身所提供的开发工具操作系统向硬件接口移植的难度操作系统的内存要求开发人员是否熟悉此操作系统及其提供的API操作系统是否提供硬件的驱动程序操作系统的是否具有可剪裁性操作系统的实时性能收费情况,技术支持情况,2023/9/30,38,编程语言选择,编程语言的选择主要考虑以下因素通用性可移植性程度执行效率可维护性,2023/9/30,39,硬件调试工具选择,常用的硬件调试工具有以下几种:实时在线仿真器(ICE,In-Circuit Emulator)驻留监控软件ROM仿真器 JTAG仿真器,是目前使用最广泛的调试手段,2023/9/30,40,集成开发环境IDE选择,集成开发环境IDE考虑的因素系统调试器的功能支持库函数与选择硬件和操作系统的原则一样:除非必要,尽量采用标准的 glibc编译器开发商是否持续升级编译器连接程序是否支持所有的文件格式和符号格式,2023/9/30,41,构件技术,标准构件和自行设计构件标准硬构件标准软构件自研硬构件自研软构件构件的选择,2023/9/30,42,标准构件和自行设计构件,构件的实现选择标准自行设计标准构件?现成构件已经产品化形成规模生产标准构件 自行设计构件 用户系统构件包括了硬件构件和软件构件构件本身可以是层次性的,可以由子构件组成,2023/9/30,43,标准硬构件,标准 IC RAM,ROM,接口控制器,ASIC,标准 IP CPU核,标准模块GPRS模块,GSM模块,蓝牙模块,标准计算平台基于PC104的嵌入式计算机,2023/9/30,44,标准软构件,OS/RTOS协议栈TCP/IP路由协议H.323图形开发包VxWorks的ZINK驱动程序,2023/9/30,45,自研硬构件,内容逻辑电路,专用加速器,实现方式PCB:IC:PLD FPGA ASIC,EDA设计工具板级:原理图设计工具PCB设计工具IC硬件描述语言:VHDL,Verilog,2023/9/30,46,自研软构件,驱动程序应用程序,2023/9/30,47,构件的选择,授权构件的费用一般都较高,但大都经过严格的测试,可靠性高,调试时间短,而免费构件相反;现在也有一些免费的自由(软件)构件,它们的性能、可靠性也很好;因此在构件选择的时候要加以权衡,确定哪种方案更好;,2023/9/30,48,软硬件技术对系统结构的影响,硬软件设计的趋势融合、渗透硬件设计的软件化VHDL,VerilogHANDL-C软件实现的硬件化各种算法的ASIC对系统设计的影响协同设计增加灵活性增加了风险,2023/9/30,49,构件设计与实现,硬件构件设计硬件构件设计流程软件构件设计软件构件设计流程,2023/9/30,50,硬件构件设计,设计硬件子系统功能电源子系统;最小系统;复位电路;定义硬件子系统间接口确定硬件各子系统原理图硬件子系统布版硬件子系统测试,2023/9/30,51,硬件构件设计流程,2023/9/30,52,例:嵌入式系统硬件系统构件,2023/9/30,53,软件构件设计,设计软件构件功能定义软件构件接口规定构件之间的调用关系规定软件构件出错处理方案,2023/9/30,54,软件构件设计流程,2023/9/30,55,系统集成、测试与验收,系统集成系统测试系统验收,2023/9/30,56,系统集成,系统集成:把系统的软件、硬件集成在一起,进行调试,发现并改进构件设计过程中的错误;集成可分两步:在宿主机上模拟集成(软集成)在目标机上集成各构件设计阶段尽可能地按阶段组装系统和相对独立地测试系统功能;如果每次只对一部分模块排错,很可能更容易发现和识别简单的错误;,2023/9/30,57,系统测试,系统测试:对系统进行测试,看是否满足规格说明书中给定的功能要求;选择测试实例:功能测试极限情况测试、边界测试、异常测试、错误测试、随机测试、性能测试覆盖测试语句测试、判定或分支覆盖、条件覆盖灰盒测试,2023/9/30,58,系统验收,系统经过测试,确定实现规格说明书功能时停止测试;整理开发文档和资料,提交开发报告;组织系统验收,开发结束,2023/9/30,59,例:验收阶段提交的文档样例,技术文件目录技术任务书技术方案报告产品标准(草案)技术条件可靠性技术设计技术设计说明书试产总结测试报告,2023/9/30,60,想一想,如何选择嵌入式处理器和嵌入式操作系统简述嵌入式系统的设计过程,2023/9/30,61,本章内容小结,需求分析、规格说明系统结构设计、硬件和软件的选择构件技术、构件设计与实现系统集成、测试与验收,2023/9/30,62,本章课后作业,