1第二章嵌入式系统基本设计方法2第二章嵌入式系统基本设计方法本章的主要内容2.1嵌入式系统设计概述2.2嵌入式系统软硬件协同设计概述2.3需求分析和概要设计2.4详细设计2.5实现阶段2.6测试阶段32.1.1嵌入式系统设计的内容嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。嵌入式系统的设计技术主要包括:–硬件设计技术–软件设计技术42.1.1嵌入式系统设计的内容1.硬件设计的技术包括:芯片级设计技术和电路板级设计技术–芯片级设计技术:核心是编译/综合、库/IP、测试/验证。编译/综合技术使设计者用抽象的方式描述所需的功能,并自动分析和插入实现细节。库/IP技术将预先设计好的低抽象级实现用于高级。测试/验证技术确保每级功能正确,减少各级之间反复设计的成本。–电路板级设计技术:完成电路板的规划,电路设计,在印制板上布局,布线,最终构成系统。52.1.1嵌入式系统设计的内容2.软件设计技术:软件语言–软件语言经历了从低级语言(机器语言、汇编语言)到高级语言(如结构化设计语言、面向对象设计语言)的发展历程,推动其发展的是汇编技术、分析技术、编译/解释技术等诸多相关技术。62.1.2嵌入式系统设计的技术背景IT技术的发展推动嵌入式系统设计方法的演变,这些技术包括:–1.微电子技术:大规模集成电路:微电子技术的发展,带来大规模集成电路的集成度和工艺水平不断提高,生产出了大批量的低成本、高可靠性和高精度的微电子结构模块器件可编程:在此基础上发展起来的器件可编程思想和微处理(器)技术可以用软件来改变和实现硬件的功能,实现了微处理器和各种可编程大规模集成专用电路、半定制器件的大量应用。7–2.高性能的EDA(电子设计自动化)综合开发工具:高性能的EDA综合开发工具为复杂的嵌入式系统设计提供了易于学习和方便使用的集成开发环境2.1.2嵌入式系统设计的技术背景82.1.2嵌入式系统设计的技术背景–3.硬件描述语言HDL(HardwareDescriptionLanguage)硬件描述语言的发展为复杂电子系统设计提供了建立各种硬件模型的工作语言。9–4.EOS技术:软件技术的进步,特别是嵌入式操作系统EOS(EmbeddedOperationSystem)的推出,为开发复杂嵌入式系统应用软件提供了底层支持和高效率开发平台。102.1.2嵌入式系统设计的技术背景名词解释:–IP(IntellectualPropertyCore,知识产权核)是一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路、器件或部件。该模块有行为(behavior)、结构(structure)和物理(physical)3级不同程度的设计,对应有主要描述功能行为的“软IP内核(softIPcore)”、完成结构描述的“固IP内核(firmIPcore)”和基于物理描述并经过工艺验证的“硬IP内核(hardIPcore)”3个层次。112.1.3嵌入式系统设计方法的分类嵌入式系统设计分为三个不同的发展层次1.以CAD软件和ICE(InCircuitEmulator)为主要工具的设计方法这是过去直至现在我国单片机应用系统设计人员一直沿用的方法,其步骤是先抽象后具体。12抽象设计主要是根据嵌入式应用系统要实现的功能要求,对系统功能细化,分成若干功能模块,画出系统功能框图,再对功能模块进行硬件和软件功能实现的划分。13具体设计具体设计:包括硬件设计和软件设计。硬件设计主要是根据性能参数要求对各功能模块所需要使用的元器件进行选择和组合。软件设计主要包括任务分析、资源分配、模块划分、流程设计和细化、编码调试等。142.1.3嵌入式系统设计方法的分类嵌入式系统设计分为三个不同的发展层次2.以EDA工具软件和EOS为开发平台的设计方法随着微电子工艺技术的发展,各种通用的可编程半定制逻辑器件应运而生。硬件设计人员从过去选择和使用标准通用集成电路器件,逐步转向自己设计和制作部分专用的集成电路器件,而这些技术是由各种EDA工具软件提供支持的。15EDA工具软件设计人员可以利用各种EDA工具和标准的复杂可编程逻辑器件CPLD和现场可编程门阵列FPGA等,设计和自制用户专用的大规模集成电路。然后再通过自下而上的设计方法,把用半定制器件设计自制的集成电路、可编程外围器件、所选择的ASIC与嵌入式微处理器或微控制器在印制板上布局、布线构成系统。162.1.3嵌入式系统设计方法的分类嵌入式系统设计分为三个不同的发展层次3.以IP内核库为设计基础,采用软硬件协同设计技术的设计方法20世纪90年代后,进一步开始了从“集成电路”级设计不断转向“集成系统”级设计。目前已进入片上系统SOC(SystemonaChip)设计阶段。17SOC单片系统设计要从整个系统性能要求出发,把微处理器、模型算法、芯片结构、外围器件各层次电路直至器件的设计紧密结合起来,并通过建立在全新理念上的系统软件和硬件的协同设计,在单个芯片上完成整个系统的功能。有时也可能把系统做在几个芯片上。182.1.3嵌入式系统设计方法的分类三个发展层次的应用范围–从应用开发角度看,在相当长的一段时间内,都是采用前两种方法。–第3层次设计方法对一般具体应用人员来说,只能用来设计简单的单片系统。–复杂的单片系统则是某些大的半导体厂商才能设计和实现的,并且用这种方法实现的单片系统,只可能是那些广泛使用、具有一定规模的应用系统才值得投入研制。193个层次的设计方法会并存。–初级应用设计人员会以第1种方法为主;–富有经验的设计人员会以第2种方法为主;–很专业的设计人员会用第3种方法进行简单单片系统的设计和应用。–但所有的设计人员都可以应用半导体大厂商推出的用第3种方法设计的专用单片系统。202.1.4嵌入式开发环境嵌入式开发环境,是以开发嵌入式系统为目的的工程开发环境。包括办公环境支持、软件支持、硬件设备支持。–软件支持:指集成开发环境与软件模拟器等。–硬件支持:指仿真器、目标板、示波器、烧录器等。21PlatformBuilder22PB模拟器23开发板24仿真环境252.1.4嵌入式开发环境嵌入式开发环境如图262.1.4嵌入式开发环境集成开发系统嵌入式开发较多采用集成开发系统,一般包括编辑器、编译器、连接器、调试器、工程管理器和底层调试接口设备(BDM/JTAG仿真器)等。272.1.532位嵌入式开发的新挑战32位嵌入式开发引发的嵌入式技术发展趋势(1)高度集成化的SOC趋势(2)软核与硬核同步发展的SOPC技术(3)与DSP技术融合(4)开发和调试手段不断完善(5)软件工程思想融入嵌入式软件282.2嵌入式系统软硬件协同设计概述2.2.1软硬件协同设计的发展背景与过程2.2.2软硬件协同设计流程292.2.1软硬件协同设计的发展背景与过程软硬件协同设计的背景系统级芯片设计的发展要求广泛采用软硬件协同设计方法系统级芯片设计是一种高层次的电子设计方法,设计人员针对设计目标进行系统功能描述,定义系统的行为特性,生成系统级的规格描述。302.2.1软硬件协同设计的发展背景与过程软硬件协同设计的背景系统级芯片设计主要有3个关键的支撑技术:(1)软、硬件的协同设计技术。(2)IP模块复用技术。(3)模块以及模块界面间的综合分析和验证技术。312.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展过程1.嵌入式系统设计早期,主要有两种方式(1)针对一个特定的硬件进行软件开发,是一个软件开发问题。(2)根据一个已有的软件实现其具体的硬件结构,是一个软件固化的问题。322.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展过程早期两种方式的缺陷没有统一的软硬件协同表示方法,从而不能自动地进行不同的软硬件划分,并对不同的划分进行评估。不能从系统级进行验证,不容易发现软硬件边界的兼容问题。332.2.1软硬件协同设计的发展背景与过程软硬件协同设计的发展过程2.软硬件协同设计:采用软硬件协同设计后,从系统功能描述开始,将软硬件完成的功能作全盘考虑并进行均衡;在设计空间搜索技术的支持下,设计出不同的软硬件体系结构并进行评估,最终找到较理想的目标系统的软硬件体系结构;然后使用软硬件划分理论进行软硬件划分并设计实现。可以从根本解决了早期嵌入式系统设计的缺陷和不足。342.2.2软硬件协同设计流程软硬件协同设计,包括以下嵌入式系统的开发过程(1)嵌入式系统的需求获取与需求分析;(2)软硬件功能划分,设计系统的体系结构:选择处理器和相关外部设备,操作系统,开发平台以及软硬件的分割和总体系统集成;(3)硬件的结构设计、软件的系统设计;(4)软硬件详细设计;(5)软件代码开发,软件测试与调试;(6)软硬件的联调和系统集成;(7)系统的仿真验证和测试;(8)实现最终系统。352.2.2软硬件协同设计流程362.3需求分析和概要设计2.3.1用户需求分析和确定项目约束条件2.3.2系统硬件和软件功能划分2.3.3概要设计372.3.1用户需求分析和确定项目约束条件用户需求分为以下几个方面业务需求:从根本上体现了客户和产品开发商的根本利益,规定了客户或组织机构对产品高层次的目标要求。用户需求:规定了用户使用产品必须完成的任务。功能需求:规定了提供给用户使用的产品所具有的基本功能,以满足用户的业务需要。对于嵌入式产品而言,通过硬件功能、软件功能的规定来体现系统整体将要完成的功能。非功能需求:规定了产品面向用户所展现的外部或内部的属性,以及执行的操作等。382.3.1用户需求分析和确定项目约束条件收集用户需求的过程中可能遇到的问题用户提出不符合实际的要求。用户不能将隐含的用户需求提供给开发人员。如何解决这些问题对于那些客户提出的不切实际的要求,开发人员应该及时的指出。要求有系统开发经验的开发人员尽可能多的提炼出用户隐含的需求,并且以书面的方式提交用户检查,同意后双方签字表示认同。392.3.1用户需求分析和确定项目约束条件对于嵌入式设备,比较关心的项目约束条件:性能:具体表现为系统的实时性,安全性,稳定性。体积和重量成本能耗其他:包括系统的完成时间、用户界面等。402.3.2系统硬件和软件功能划分软硬件功能的划分目的:就是确定系统功能哪一部分由硬件实现,那一部分由软件实现。通常一项基本的功能用软件可以实现,用硬件设计的方法同样可以实现。–硬件实现可以较好的保证系统实时的处理能力,但是成本相对较高。–而软件为系统功能的实现提供了灵活的方式,并且成本较低,但是系统响应时间不能得以保证。412.3.2系统硬件和软件功能划分在进行系统软硬件功能划分时,应该协调的考虑系统的性能,成本以及开发时间等要素,得到一个较合理的划分方案。在硬件和软件的划分阶段,通过逐步细化设计,可以将软硬件体系结构逐步模块化。采用软硬件协同设计的方式,定义软件和硬件模块间的接口,实现软硬件模块间的相互通信。422.3.3概要设计概要设计需要完成的任务总体设计。接口设计。数据结构设计。运行设计。出错设计。概要设计应该遵循以下的设计理念逐步细化,定性和定量相结合,分解和协调以及系统模型化。432.4详细设计2.4.1确定系统体系结构2.4.2硬件与软件的选型2.4.3微处理器选型和外围接口电路设计2.4.4嵌入式操作系统的选择442.4.1确定系统体系结构确定系统的体系结构,可以为整个系统构架提供基本的计划,为以后设计出系统软硬件的各项构件做充分的准备。系统体系结构的设计应该着眼于系统功能的实现,同时不应该过多地拘泥于具体的系统设计细节。452.4.1确定系统体系结构嵌入式设备而言,系统包含两种体系结构:–硬件体系结构–软件体系结构。进行系统体系结构设计时应该考虑因素完整性以及软件和硬件间的对应系统的体系结构的设