嵌入式系统的需求获取与需求分析.ppt_第1页
嵌入式系统的需求获取与需求分析.ppt_第2页
嵌入式系统的需求获取与需求分析.ppt_第3页
嵌入式系统的需求获取与需求分析.ppt_第4页
嵌入式系统的需求获取与需求分析.ppt_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第二章嵌入式系统基本设计方法,2,第二章嵌入式系统基本设计方法,本章的主要内容2.1嵌入式系统设计概述2.2嵌入式系统软硬件协同设计概述2.3需求分析和概要设计2.4详细设计2.5实现阶段2.6测试阶段,3,2.1.1嵌入式系统设计的内容,嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。嵌入式系统的设计技术主要包括:硬件设计技术软件设计技术,4,2.1.1嵌入式系统设计的内容,1.硬件设计的技术包括:芯片级设计技术和电路板级设计技术芯片级设计技术:核心是编译/综合、库/IP、测试/验证。编译/综合技术使设计者用抽象的方式描述所需的功能,并自动分析和插入实现细节。库/IP技术将预先设计好的低抽象级实现用于高级。测试/验证技术确保每级功能正确,减少各级之间反复设计的成本。电路板级设计技术:完成电路板的规划,电路设计,在印制板上布局,布线,最终构成系统。,5,2.1.1嵌入式系统设计的内容,2.软件设计技术:软件语言软件语言经历了从低级语言(机器语言、汇编语言)到高级语言(如结构化设计语言、面向对象设计语言)的发展历程,推动其发展的是汇编技术、分析技术、编译/解释技术等诸多相关技术。,6,2.1.2嵌入式系统设计的技术背景,IT技术的发展推动嵌入式系统设计方法的演变,这些技术包括:1.微电子技术:大规模集成电路:微电子技术的发展,带来大规模集成电路的集成度和工艺水平不断提高,生产出了大批量的低成本、高可靠性和高精度的微电子结构模块器件可编程:在此基础上发展起来的器件可编程思想和微处理(器)技术可以用软件来改变和实现硬件的功能,实现了微处理器和各种可编程大规模集成专用电路、半定制器件的大量应用。,7,2.高性能的EDA(电子设计自动化)综合开发工具:高性能的EDA综合开发工具为复杂的嵌入式系统设计提供了易于学习和方便使用的集成开发环境,2.1.2嵌入式系统设计的技术背景,8,2.1.2嵌入式系统设计的技术背景,3.硬件描述语言HDL(HardwareDescriptionLanguage)硬件描述语言的发展为复杂电子系统设计提供了建立各种硬件模型的工作语言。,9,4.EOS技术:软件技术的进步,特别是嵌入式操作系统EOS(EmbeddedOperationSystem)的推出,为开发复杂嵌入式系统应用软件提供了底层支持和高效率开发平台。,10,2.1.2嵌入式系统设计的技术背景,名词解释:IP(IntellectualPropertyCore,知识产权核)是一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路、器件或部件。该模块有行为(behavior)、结构(structure)和物理(physical)3级不同程度的设计,对应有主要描述功能行为的“软IP内核(softIPcore)”、完成结构描述的“固IP内核(firmIPcore)”和基于物理描述并经过工艺验证的“硬IP内核(hardIPcore)”3个层次。,11,2.1.3嵌入式系统设计方法的分类,嵌入式系统设计分为三个不同的发展层次1.以CAD软件和ICE(InCircuitEmulator)为主要工具的设计方法这是过去直至现在我国单片机应用系统设计人员一直沿用的方法,其步骤是先抽象后具体。,12,抽象设计,主要是根据嵌入式应用系统要实现的功能要求,对系统功能细化,分成若干功能模块,画出系统功能框图,再对功能模块进行硬件和软件功能实现的划分。,13,具体设计,具体设计:包括硬件设计和软件设计。硬件设计主要是根据性能参数要求对各功能模块所需要使用的元器件进行选择和组合。软件设计主要包括任务分析、资源分配、模块划分、流程设计和细化、编码调试等。,14,2.1.3嵌入式系统设计方法的分类,嵌入式系统设计分为三个不同的发展层次2.以EDA工具软件和EOS为开发平台的设计方法随着微电子工艺技术的发展,各种通用的可编程半定制逻辑器件应运而生。硬件设计人员从过去选择和使用标准通用集成电路器件,逐步转向自己设计和制作部分专用的集成电路器件,而这些技术是由各种EDA工具软件提供支持的。,15,EDA工具软件,设计人员可以利用各种EDA工具和标准的复杂可编程逻辑器件CPLD和现场可编程门阵列FPGA等,设计和自制用户专用的大规模集成电路。然后再通过自下而上的设计方法,把用半定制器件设计自制的集成电路、可编程外围器件、所选择的ASIC与嵌入式微处理器或微控制器在印制板上布局、布线构成系统。,16,2.1.3嵌入式系统设计方法的分类,嵌入式系统设计分为三个不同的发展层次3.以IP内核库为设计基础,采用软硬件协同设计技术的设计方法20世纪90年代后,进一步开始了从“集成电路”级设计不断转向“集成系统”级设计。目前已进入片上系统SOC(SystemonaChip)设计阶段。,17,SOC,单片系统设计要从整个系统性能要求出发,把微处理器、模型算法、芯片结构、外围器件各层次电路直至器件的设计紧密结合起来,并通过建立在全新理念上的系统软件和硬件的协同设计,在单个芯片上完成整个系统的功能。有时也可能把系统做在几个芯片上。,18,2.1.3嵌入式系统设计方法的分类,三个发展层次的应用范围从应用开发角度看,在相当长的一段时间内,都是采用前两种方法。第3层次设计方法对一般具体应用人员来说,只能用来设计简单的单片系统。复杂的单片系统则是某些大的半导体厂商才能设计和实现的,并且用这种方法实现的单片系统,只可能是那些广泛使用、具有一定规模的应用系统才值得投入研制。,19,3个层次的设计方法会并存。初级应用设计人员会以第1种方法为主;富有经验的设计人员会以第2种方法为主;很专业的设计人员会用第3种方法进行简单单片系统的设计和应用。但所有的设计人员都可以应用半导体大厂商推出的用第3种方法设计的专用单片系统。,20,2.1.4嵌入式开发环境,嵌入式开发环境,是以开发嵌入式系统为目的的工程开发环境。包括办公环境支持、软件支持、硬件设备支持。软件支持:指集成开发环境与软件模拟器等。硬件支持:指仿真器、目标板、示波器、烧录器等。,21,PlatformBuilder,22,PB模拟器,23,开发板,24,仿真环境,25,2.1.4嵌入式开发环境,嵌入式开发环境如图,26,2.1.4嵌入式开发环境,集成开发系统嵌入式开发较多采用集成开发系统,一般包括编辑器、编译器、连接器、调试器、工程管理器和底层调试接口设备(BDM/JTAG仿真器)等。,27,2.1.532位嵌入式开发的新挑战,32位嵌入式开发引发的嵌入式技术发展趋势(1)高度集成化的SOC趋势(2)软核与硬核同步发展的SOPC技术(3)与DSP技术融合(4)开发和调试手段不断完善(5)软件工程思想融入嵌入式软件,28,2.2嵌入式系统软硬件协同设计概述,2.2.1软硬件协同设计的发展背景与过程2.2.2软硬件协同设计流程,29,2.2.1软硬件协同设计的发展背景与过程,软硬件协同设计的背景系统级芯片设计的发展要求广泛采用软硬件协同设计方法系统级芯片设计是一种高层次的电子设计方法,设计人员针对设计目标进行系统功能描述,定义系统的行为特性,生成系统级的规格描述。,30,2.2.1软硬件协同设计的发展背景与过程,软硬件协同设计的背景系统级芯片设计主要有3个关键的支撑技术:(1)软、硬件的协同设计技术。(2)IP模块复用技术。(3)模块以及模块界面间的综合分析和验证技术。,31,2.2.1软硬件协同设计的发展背景与过程,软硬件协同设计的发展过程1.嵌入式系统设计早期,主要有两种方式(1)针对一个特定的硬件进行软件开发,是一个软件开发问题。(2)根据一个已有的软件实现其具体的硬件结构,是一个软件固化的问题。,32,2.2.1软硬件协同设计的发展背景与过程,软硬件协同设计的发展过程早期两种方式的缺陷没有统一的软硬件协同表示方法,从而不能自动地进行不同的软硬件划分,并对不同的划分进行评估。不能从系统级进行验证,不容易发现软硬件边界的兼容问题。,33,2.2.1软硬件协同设计的发展背景与过程,软硬件协同设计的发展过程2.软硬件协同设计:采用软硬件协同设计后,从系统功能描述开始,将软硬件完成的功能作全盘考虑并进行均衡;在设计空间搜索技术的支持下,设计出不同的软硬件体系结构并进行评估,最终找到较理想的目标系统的软硬件体系结构;然后使用软硬件划分理论进行软硬件划分并设计实现。可以从根本解决了早期嵌入式系统设计的缺陷和不足。,34,2.2.2软硬件协同设计流程,软硬件协同设计,包括以下嵌入式系统的开发过程(1)嵌入式系统的需求获取与需求分析;(2)软硬件功能划分,设计系统的体系结构:选择处理器和相关外部设备,操作系统,开发平台以及软硬件的分割和总体系统集成;(3)硬件的结构设计、软件的系统设计;(4)软硬件详细设计;(5)软件代码开发,软件测试与调试;(6)软硬件的联调和系统集成;(7)系统的仿真验证和测试;(8)实现最终系统。,35,2.2.2软硬件协同设计流程,36,2.3需求分析和概要设计,2.3.1用户需求分析和确定项目约束条件2.3.2系统硬件和软件功能划分2.3.3概要设计,37,2.3.1用户需求分析和确定项目约束条件,用户需求分为以下几个方面业务需求:从根本上体现了客户和产品开发商的根本利益,规定了客户或组织机构对产品高层次的目标要求。用户需求:规定了用户使用产品必须完成的任务。功能需求:规定了提供给用户使用的产品所具有的基本功能,以满足用户的业务需要。对于嵌入式产品而言,通过硬件功能、软件功能的规定来体现系统整体将要完成的功能。非功能需求:规定了产品面向用户所展现的外部或内部的属性,以及执行的操作等。,38,2.3.1用户需求分析和确定项目约束条件,收集用户需求的过程中可能遇到的问题用户提出不符合实际的要求。用户不能将隐含的用户需求提供给开发人员。如何解决这些问题对于那些客户提出的不切实际的要求,开发人员应该及时的指出。要求有系统开发经验的开发人员尽可能多的提炼出用户隐含的需求,并且以书面的方式提交用户检查,同意后双方签字表示认同。,2019/12/13,39,可编辑,40,2.3.1用户需求分析和确定项目约束条件,对于嵌入式设备,比较关心的项目约束条件:性能:具体表现为系统的实时性,安全性,稳定性。体积和重量成本能耗其他:包括系统的完成时间、用户界面等。,41,2.3.2系统硬件和软件功能划分,软硬件功能的划分目的:就是确定系统功能哪一部分由硬件实现,那一部分由软件实现。通常一项基本的功能用软件可以实现,用硬件设计的方法同样可以实现。硬件实现可以较好的保证系统实时的处理能力,但是成本相对较高。而软件为系统功能的实现提供了灵活的方式,并且成本较低,但是系统响应时间不能得以保证。,42,2.3.2系统硬件和软件功能划分,在进行系统软硬件功能划分时,应该协调的考虑系统的性能,成本以及开发时间等要素,得到一个较合理的划分方案。在硬件和软件的划分阶段,通过逐步细化设计,可以将软硬件体系结构逐步模块化。采用软硬件协同设计的方式,定义软件和硬件模块间的接口,实现软硬件模块间的相互通信。,43,2.3.3概要设计,概要设计需要完成的任务总体设计。接口设计。数据结构设计。运行设计。出错设计。概要设计应该遵循以下的设计理念逐步细化,定性和定量相结合,分解和协调以及系统模型化。,44,2.4详细设计,2.4.1确定系统体系结构2.4.2硬件与软件的选型2.4.3微处理器选型和外围接口电路设计2.4.4嵌入式操作系统的选择,45,2.4.1确定系统体系结构,确定系统的体系结构,可以为整个系统构架提供基本的计划,为以后设计出系统软硬件的各项构件做充分的准备。系统体系结构的设计应该着眼于系统功能的实现,同时不应该过多地拘泥于具体的系统设计细节。,46,2.4.1确定系统体系结构,嵌入式设备而言,系统包含两种体系结构:硬件体系结构软件体系结构。进行系统体系结构设计时应该考虑因素完整性以及软件和硬件间的对应系统的体系结构的设计是否能够满足用户需求,47,2.4.1确定系统体系结构,举例:银行自动排队机系统用户交互功能表现为用户交互界面系统打印功能表现为打印输出,48,2.4.2硬件与软件的选型,嵌入式系统硬件和软件硬件架构上以嵌入式处理器为中心,配置存储器、I/O设备、通信模块等必要的外设软件部分以软件开发平台为核心,向上提供应用编程接口(API),向下屏蔽具体硬件特性的板级支持包(BSP),49,2.4.2硬件与软件的选型,硬件平台的选择芯片的选择:ARM,MIPS异常信号的处理能力和功能扩展以软件替代硬件,50,2.4.2硬件与软件的选型,嵌入式操作系统的选择商用型的实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵。免费型的实时操作系统在价格方面具有优势,目前主要有Linux和COS。需要考虑以下几点:操作系统的硬件支持;开发工具的支持程度;能否满足应用需求。,51,2.4.2硬件与软件的选型,仿真器和调试器的选择嵌入式系统开发调试方法有快速原型仿真法和实时在线调试法。快速原型仿真法用于硬件设备尚未完成时,直接在宿主机上对应用程序运行进行仿真分析。实时在线调试法在具体的目标机平台上调试应用程序。选用的调试器应该支持用户观察或修改嵌入式处理器的寄存器和存储器配置、数据变量的类型和数值,堆栈和寄存器的使用,支持程序断点设置,单步、断点或者全速运行等特性。,52,2.4.3微处理器选型和外围接口电路设计,微处理器选型确定内核:嵌入式处理器内核主要取决于应用的领域、用户的需求、成本问题、开发的难易程度等因素。外围设备接口:确定了使用的嵌入式处理器内核以后,接着综合实际情况,考虑系统外围设备的需求情况,选择一款合适的处理器。还要考虑处理器的寻址空间,有没有片上的Flash存储器,处理器是否容易调试,仿真调试工具的成本和易用性等相关的信息。,53,2.4.3微处理器选型和外围接口电路设计,微处理器选型开发人员选择面向具体应用,不同领域的应用市场需要不同款式和性能指标的处理器的两个前提条件:一是深入研究具体的嵌入式系统应用需求。二是分析研究市场上各大厂商提供的各款嵌入式处理器的性能指标。除此之外,还需要考虑开发人员对此系列处理器的熟悉程度。,54,2.4.3微处理器选型和外围接口电路设计,系统外围设备的需求(1)总线的需求;(2)有没有通用串行接口;(3)是否需要USB总线;(4)有没有以太网接口;(5)系统内部是否需要IIC总线、SPI总线;(6)音频DA连接的IIS总线;(7)外设接口;(8)系统是否需要AD或者DA转换器;(9)系统是否需要IO控制接口。,55,2.4.3微处理器选型和外围接口电路设计,外围接口电路设计嵌入式外围接口电路设计中,要注意区分处理器芯片引脚的类型,仔细分析研究关键引脚作用。举例:以ARM内核嵌入式微处理器为中心,具有完全相配接的Flash电路、SDRAM电路、JTAG电路、电源电路、晶振电路、复位信号电路和系统总线扩展等,保证嵌入式微处理器正常运行的系统。其硬件如下:(1)微处理器;(2)电源电路;(3)晶振电路;(4)Flash存储器;(5)SDRAM存储器;(6)串行接口;(7)JTAG接口;(8)系统总线扩展。,56,2.4.4嵌入式操作系统的选择,嵌入式操作系统选型的原则进入市场时间。可移植性。可利用资源。系统定制能力。成本。中文内核支持。,57,2.4.4嵌入式操作系统的选择,几种代表性嵌入式操作系统WindowsCE嵌入式LinuxVxWorksC/OS一,58,2.5实现阶段,2.5.1软件与硬件系统的实现2.5.2嵌入式系统的调试,59,2.5.1软件与硬件系统的实现,嵌入式系统软件的特点及其开发途径嵌入式系统软件的特点是软件复杂程度的多样性。简单系统可以用传统方法,从底层用汇编语言编写程序,利用在线仿真器(ICE)、在线调试器(ICD)等开发工具进行调试软件。复杂的嵌入式系统,需要利用实时操作系统和嵌入式系统开发平台进行开发。开发嵌入式系统软件,需要针对不同的硬件编写实时操作系统内核移植代码。通过编译、链接、定址将操作系统映像固化到EPROM或者Flash中。,60,2.5.1软件与硬件系统的实现,软件编程接口规范和标准化高级语言和汇编语言模块化:为了使系统具有高的可移植性,尽量使用C或者EmbeddedC+来开发系统软件。模块化:将系统功能分成模块。模块设定的合理方法是:根据硬件能力,自下而上的综合。提供标准接口:提供了POSIX1003.1规范的操作系统就具有了UNIX系统的标准接口。符合软件应用编程接口(API)规范,就可以比较容易地移植UNIX系统的应用软件。严格的体系结构层次:按层次划分,依次是应用软件操作系统功能级抽象寄存器级抽象硬件。,61,2.5.1软件与硬件系统的实现,应用开发嵌入式开发过程中有宿主机和目标机的角色之分宿主机是执行编译、链接、定址过程的计算机;目标机指运行嵌入式软件的硬件平台。首先须把应用程序转换成可以在目标机上运行的二进制代码。其次调试目标机上的应用程序。嵌入式调试采用交叉调试器,一般采用宿主机-目标机的调试方式。调试时需将宿主机上的应用程序和操作系统内核下载到目标机的RAM中或直接烧录到目标机的ROM或者FLASH中。,62,宿主机和目标机,63,2.5.1软件与硬件系统的实现,在PC机上编写软件,然后进行软件的移植过程中应该注意的问题软件的可移植性,选用具有较高移植性的编程语言(如C语言)。尽量少调用操作系统函数。注意屏蔽不同硬件平台带来的字节顺序、字节对齐等。,64,2.5.2嵌入式系统的调试,调试方法一般分为软件和硬件调试两个方面硬件调试,是指使用某种仿真调试器来协助调试过程。软件调试,是指使用特定的软件调试器来调试嵌入式系统。,65,2.5.2嵌入式系统的调试,硬件调试可以获得比软件调试功能优良得多的调试性能,仿真硬件的真正执行过程。硬件调试器主要有两大类:ICE(In-CircuitEmulator):ICE是完全仿造调试目标CPU设计的仪器,它可以真正的运行CPU的动作,并且可以在使用的内存上设置非常多的硬中断点,实时察看所需要的数据。ICD(In-CircuitDebugger):使用ICD和目标板的调试端口连接,发送调试命令和接受返回的调试信息可以完成相应的调试功能。,66,2.5.2嵌入式系统的调试,软件调试应用程序的调试:使用本地调试器和远程调试器两种方法。将需要的调试器移植到该系统中,在目标板上运行调试器调试应用程序。内核调试:调试比较困难,只能使用远程调试方法,通过串口和操作系统中内置的调试桩(Stub)进行通信来完成调试。,67,2.5.2嵌入式系统的调试,按照使用的设备,嵌入式系统的调试方式也可分为以下几种仿真器方式监控器方式源程序模拟方式,68,2.6测试阶段,2.6.1嵌入式软件测试方法2.6.2嵌入式软件测试工具2.6.3嵌入式软件测试过程2.6.4cross-test测试策略,69,2.6.1嵌入式软件测试方法,嵌入式软件测试也可叫做交叉测试,具体的软件测试过程如图,70,2.6.1嵌入式软件测试方法,软件测试方法有不同的划分方法。从软件开发过程中测试所处的不同阶段可分为模块测试、集成测试和系统测试。根据是否需要运行目标代码分为动态测试和静态测试。根据目标代码的可见性可分为白盒测试(结构测试)和黑盒测试(功能测试)。,71,2.6.1嵌入式软件测试方法,白盒测试与黑盒测试白盒测试或基本代码的测试检查程序的内部设计。根据源代码的组织结构查找软件缺陷,一股要求测试人员对软件的结构和作用有详细的了解。黑盒测试在某些情况下也称为功能测试。这类测试方法根据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论