《嵌入式系统设计技术.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统设计技术.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统设计技术 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 嵌入式系统设计的特点嵌入式系统设计的特点 n嵌入式系统通常是面向特定应用的系统;n嵌入式系统的硬件和软件都必须高效地设计,量体裁衣、去除冗余;n嵌入式系统设计需要交叉开发环境;n嵌入式系统的程序需要固化;n嵌入式系统的软件开发难度较大;n嵌入式系统还需要提供强大的硬件开发工具和软件包的支持,需要设计者从速度、功能和成本综合考虑。对稳定性、可靠性、功耗、抗干扰性、重量体积等方面的性能要求都比通用系统
2、的要求更为严格和苛刻。2 “宿主机宿主机/目标机目标机”方式方式 n嵌入式系统的开发通常采用“宿主机/目标机”方式。n宿主机(Host)是一台通用的计算机,一般是PC机。它通过串口或网络连接与目标机进行通信。n目标机(Target)常用在嵌入式系统的开发过程期间。目标机可以是嵌入式系统的实际运行环境,也可以是能替代实际环境的仿真系统。3 “宿主机宿主机/目标机目标机”方式方式首先,利用宿主机上丰富的设备资源以及良好的开发环境来开发和仿真调试目标机上的软件。然后,通过UART接口或Ethernet接口将交叉编译生成的目标代码传输并下载到目标机上,并用交叉调试器在实时内核/操作系统或监控程序的支持
3、下进行实时分析和调试。最后,目标机在特定的环境下运行。4 嵌入式系统的组成嵌入式系统的组成5 硬件层硬件层 n硬件层是由嵌入式微处理器、存储器系统、通用设备接口和I/O接口(A/D、D/A、I/O等)组成。在一片嵌入式微处理器基础上增加电源电路、时钟电路和存储器电路(ROM 和SDRAM等),就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。MP3随声听的硬件组成 6 中间层中间层n中 间 层 也 称 为 硬 件 抽 象 层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它把系统软件与底层硬
4、件部分隔离,使得系统的底层设备驱动程序与硬件无关。nBSP具有以下两个特点:1)操作系统相关性 2)硬件相关性 n 设计一个完整的BSP需要完成两部分工作:嵌入式系统的初始化:片级初始化、板级初始化和系统级初始化 设计硬件相关的设备驱动。7 软件层软件层n软件层由实时多任务操作系统(RTOS)、文件系统、图形用户接口(GUI)、网络系统及通用组件模块组成。nRTOS是嵌入式应用软件的基础和开发平台。RTOS实际上是一段嵌入式目标代码中的程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在RTOS之上。RTOS是一个标准的内核,它将CPU时钟、中断、I/O、定时器等资源都封装
5、起来,留给用户的是一个标准的API函数接口。8 功能层与执行装置功能层与执行装置n功能层:由基于RTOS开发的应用程序组成,用来完成对被控对象的控制功能。功能层是面向被控对象和用户的,为方便用户操作,往往需要提供一个友好的人机界面。n执行装置:是指那些可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务的设备和装置。在不同的应用领域中,嵌入式系统的执行装置一般是不同的,应该根据具体的应用场合和系统所要求实现的功能选择不同的设备和执行装置。9 嵌入式系统的设计流程嵌入式系统的设计流程 10 需求分析阶段需求分析阶段 n嵌入式系统的特点决定了系统在开发设计初期的需求分析过程中就要搞清需要
6、完成的任务。功能性需求:是系统的基本功能,如输入输出信号、操作方式等;非功能性需求:包括系统性能、成本、功耗、体积、重量等因素。n使用需求表格将系统的功能性需求和非功能性需求综合起来。11 规格说明阶段规格说明阶段n对需求进行提炼,得到系统的规格说明,这些规格说明里包含了进行系统体系结构设计所需要的足够信息。n规格说明作为分析结果,它是系统开发、验收和管理的依据。因此,规格说明必须足够的清晰和明白。通过验证规格说明检查它是否符合系统需求并且完全满足客户的期望和要求。规格说明不能有任何歧义,应该让系统的设计者明确地知道他们需要构造的是怎样的一个系统。n规格说明必须认真仔细地编写,以便能够精确详尽
7、地反映客户对系统各方面的需求,并且作为设计时必须明确遵循的要求和准则。12 体系结构设计体系结构设计n体系结构是系统整体结构的一个规划和描述,设计完成之后用于构建整个体系结构的构件。n体系结构描述了系统如何实现所述的功能和非功能的需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型等。n一个好的体系结构是设计成功与否的关键。n通常硬件和软件的选择包括:处理器、硬件部件、操作系统、编程语言、软件开发工具、硬件调试工具、软件组件等。其中,通常,处理器是最重要的,同时操作系统和编程语言也是非常关键的。处理器的选择往往同时会限制操作系统的选择,操作系统的选择又会限制开发工具的选择。13
8、硬件平台的选择硬件平台的选择n处理器选择要考虑的主要因素有:处理器的性能 处理器的技术指标。功耗。软件支持工具。处理器是否内置调试工具。供应商是否提供评估板。其它因素:生产规模、开发市场的目标、软件对硬件的依赖性。14 软件平台的选择软件平台的选择 n1.操作系统的选择需要考虑到以下几个方面:操作系统本身所提供的开发工具。操作系统向硬件接口移植的难度。操作系统的内存要求。开发人员是否熟悉此操作系统及其提供的系统API。操作系统是否提供硬件的驱动程序,如网卡驱动程序等。操作系统的是否具有可剪裁性。操作系统的实时性能。15 软件平台的选择软件平台的选择n2.编程语言的选择主要考虑以下因素:通用性。
9、可移植性程度。执行效率。可维护性。16 软件平台的选择软件平台的选择n3.集成开发环境IDE考虑的因素:系统调试器的功能。支持库函数。与选择硬件和操作系统的原则一样:除非必要,尽量采用标准的 glibc。编译器开发商是否持续升级编译器。连接程序是否支持所有的文件格式和符号格式。17 软件平台的选择软件平台的选择n4.硬件调试工具的选择:好的软件调试程序可以有效地发现大多数的错误,但是如果再选择一个好的硬件调试就会达到事半功倍的效果。常用的硬件调试工具有以下几种:实时在线仿真器(ICE,In-Circuit Emulator)。驻留监控软件。ROM仿真器。JTAG仿真器。是目前使用最广泛的调试手
10、段。18 软件组件的选择软件组件的选择n授权软件组件的费用一般都很高,但大都经过严格的测试,可靠性高,调试时间短。反之免费组件。n现在也有一些免费的自由软件组件,它们的性能、可靠性也很好。因此开发人员在选择的时候要加以权衡,确定哪种方案更好。19 实例:设计便携式网络电视实例:设计便携式网络电视 便携式网络电视的主体框架 便携式网络电视的硬件结构 20 实例:设计便携式网络电视实例:设计便携式网络电视 便携式网络电视的软件工作原理图 21 设计硬件构件和软件构件设计硬件构件和软件构件 n构件的设计应与体系结构和规格说明保持一致。n通常为了缩短产品的开发周期,往往硬件和软件的设计是并行的。n总的
11、来说,嵌入式系统设计的工作大部分集中在软件设计上,采用面向对象的技术、软件组件技术、模块化设计是现代软件工程当中经常采用的方法。22 系统集成和测试系统集成和测试n在系统的硬件构件和软件构件建立起来后,将硬件构件、软件构件和执行装置集成在一起才能得到一个可以运行的系统。n分阶段架构整个系统并且正确运行事先选择好的测试程序。n嵌入式系统集成过程中使用的调试工具很有限,常用的调试工具在前面已经介绍过。n嵌入式系统的软件测试与通用软件的测试相似,分为单元测试和系统的集成测试。常用有黑盒测试和白盒测试两种测试方法。23 统一建模语言统一建模语言UML概述概述 n统一建模语言UML是可视化建模语言中的一
12、种,属于第三代面向对象建模语言。它将模型中的信息用标准图形元素直观地表示出来,便于人员交流。n采用UML进行设计具有以下特点和优势:1)UML语言简单,易学、易用;2)UML采用可视化的图形描述,比较形象直观;3)可使不同技术背景的开发人员和设计人员很容易的相互交流;4)UML语言是第三代面向对象建模语言的标准,被绝大多数业内人士认同;5)UML采用图形化的设计,将系统的核心部分描述出来,可以供以后系统开发使用;6)有利于项目的回溯和测试。24 UML的组成部分的组成部分 n作为一种可视化建模语言,UML采用的是一种图形表示法,它的重要内容是由一些图来定义的。设计人员就是用这些图来描述整个系统
13、的功能和设计。(1)视图(View)(2)图(Diagram)(3)模型元素(Model Element)(4)通用机制(General Mechanism)25 UML中的视图中的视图 UML中提供的视图共有五种:用例视图描述系统应该交付的功能,也就是外部参与者(Actor)观察到的系统功能。逻辑视图从系统的静态结构和动态行为角度显示如何实现系统的功能。组件视图显示的是代码组件的组织结构。并发视图显示的是系统的并发性,解决在并发系统中存在的通信和同步问题。部署视图显示的是系统的具体部署。26 UML中的图中的图(1)nUML共有9种不同类型的图,包括用例图、类图、对象图、状态图、顺序图、协作
14、图、活动图、组件图和部署图。1.用例图(Use Case Diagram):显示多个外部参与者(Actor)以及它们与系统提供的用例之间的连接。图示见下页。一个用例是对系统提供的某个功能的描述,用例只是描述系统活动者从外部观察系统所得到的那些功能,并不描述这些功能在系统内部是如何实现的,也就是说,用例定义系统的功能需求。27 UML中的图中的图(2)一个评分系统的用例图 28 UML中的图中的图2.类图(Class Diagram):类图用来显示系统中各个类的静态结构。这些类可以以多种方式相互连接在一起:关联、依赖、特殊化或者打包。29 UML中的图中的图3.对象图(Object Diagra
15、m):对象图是类图的一个实体,它使用的符号与类图基本上相同。30 UML中的图中的图4.状态图(State Diagram):通常,状态图是对类的描述的补充。它用于显示类的对象可能具备的所有状态以及那些引起状态改变的事件。一个售票系统的状态图31 UML中的图中的图5.顺序图(Sequence Diagram):顺序图显示多个对象之间的动态协作。顺序图重点是显示对象之间发送的消息的时间顺序。32 UML中的图中的图6.协作图(Collaboration Diagram):协作图像顺序图一样显示动态协作。除了显示消息的交换(或交互)之外,协作图也显示对象以及它们之间的关系。通常选择顺序图还是协作
16、图的决定条件是:如果上下文是需要重点强调的方面,选择协作图,如果时间或顺序是需要重点强调的方面,那么选择顺序图。它们都用来显示对象之间的交互。打印服务器的协作图 33 UML中的图中的图7.活动图(Activity Diagram):活动图用于显示一系列顺序的活动,它主要用来描述在一个操作内执行的哪些活动。教师录入成绩的活动图 34 UML中的图中的图8.组件图(Component Diagram):组件图是用代码组件来显示代码物理结构的。其中,组件可以是二进制组件、源代码组件或一个可执行的组件。Visual C+工程文件的组件图 35 UML中的图中的图9.部署图(Deployment Di
17、agram):部署图用于显示系统中的硬件和软件的物理结构。这些部署图可以显示实际的计算机和设备(或者Node),同时还有它们之间的必要的连接,也可以显示这些连接的类型。客户端/服务器结构的部署图36 UML中的模型元素中的模型元素n在UML各种图中使用的概念都称为模型元素。一个模型元素是用语义、该元素的正式定义或者用一条明确的语句中该元素所代表的准确意义来定义的。n一个模型元素也有一个与之相对应的视图元素,这些视图元素是模型元素的图形表示或者在UML图中表示元素的图形符号。常用的模型元素有:类、对象、状态、节点、包和组件等等。37 UML中的模型元素中的模型元素 一些常用的模型元素:38 UM
18、L中的模型元素中的模型元素n模型元素中还包括关系。关系用于其它模型元素之间的相互连接。UML中定义了一些不同类型的关系:1)泛化(Generalization):这种关系的意思是一个元素是另一个元素的特化,也称为继承关系。2)关联(Association):就是类实例之间连接的描述。3)聚合(Aggregation):这是一种关联的形式,意思是一个元素包含其他一些元素。4)依赖(Dependency):两模型之间的关系,用于显示一个元素在某种程度上依赖于另一元素。39 UML中的模型元素中的模型元素一些关系图示:40 UML中的通用机制中的通用机制nUML在所有的图形中都使用一些通用机制来描述
19、图的附加信息。通用机制通常包括三个方面的内容:修饰、注解、规格说明。在此不再详细的介绍,可以参考其他的UML书籍。nUML提供的这些视图和图为系统的分析、设计、建模提供了多种图形表达形式,可应用于开发的不同阶段,它们的有机结合可以构建一个完整而一致的系统。n下面将针对于车载GPS终端这个具体实例来说明UML在嵌入式系统设计中的具体应用。41 车载车载GPS终端系统简介终端系统简介nGPS是指全球定位系统(Global Position System)。车载GPS终端是置于机动车内的实时定位装置,它的应用对象是需要定位、调度的车队。车辆可以通过终端和GPS卫星进行实时、准确的定位,并能够通过无线
20、通讯网络上报远程的车辆控制中心系统。42 车载车载GPS终端系统的设计终端系统的设计n1.需求分析 在对系统进行需求分析时,可以使用用例图进行功能上的需求分析。用例图分角色(Actor)和案例(Case)两部分。对于车载GPS终端系统来说,主要的角色有两个:车辆调度中心用户和车载终端用户。43 车载车载GPS终端系统的设计终端系统的设计(1)n2.规格说明 规格说明要求比需求分析更加详细,通过UML设计可以使规格说明更直观、更清晰。1)首先,使用类图描述系统所要处理的数据结构。44 车载车载GPS终端系统的设计终端系统的设计(2)2)其次,在规格说明阶段,还需要识别出系统的对象。首先以功能块划
21、分,广泛地找出系统的主要对象;然后使用协作图描述它们之间的关系。车载终端系统的主要对象(模块)45 车载车载GPS终端系统的设计终端系统的设计(3)3)最后,在规格说明阶段还需要进行系统的业务描述。即规范系统完成一定功能的主要流程。这可以利用活动图进行。GPS数据到达时的活动图46 车载车载GPS终端系统的设计终端系统的设计(1)n3.系统体系结构 规格说明完成后,需要对系统的各个模块及模块之间的关系仔细地分析,从而确定哪些部分使用硬件完成,哪些部分使用软件实现。在本例中,需要硬件实现的模块有:电源模块、GPS接收模块、LCD显示模块、用户控制模块和GSM通讯模块。所有的控制逻辑和数据计算全部
22、由主控制器模块的软件实现。随后,系统设计分为两个部分:硬件设计和软件设计。使UML的协作图(Collaboration Diagram)和组件图(Component Diagram)对系统的硬、软件分别进行系统设计。47 车载车载GPS终端系统的设计终端系统的设计(2)车载GPS终端系统的软件系统架构:48 车载车载GPS终端系统的设计终端系统的设计(1)n4.构件设计与测试:在构件设计中,以使用通常需要使用状态图、顺序图这两种图描述具体的系统流程细节。1)在本例中,GSM模块共有四个状态:通话当中、有问题、待命、短消息通讯中。使用状态图描述它们之间的转换关系。49 车载车载GPS终端系统的设
23、计终端系统的设计(2)2)顺序图从时间顺序上显示了一个特定对象进行特定操作时所遇到的流程。下图显示了车载终端用户在遇到特殊情况下通过车载电话或按键与调度中心保持通讯的系统的处理过程。50 车载车载GPS终端系统的设计终端系统的设计n5.系统集成与测试:系统的构件建立起来之后,在系统集成测试时,可以将以上所有的UML框图综合起来,认真分析每个构件的原理和结构,针对每一个系统功能、每一个可能发生错误的过程写出相应的测试程序,进行完整而可靠的程序测试。51 思考题思考题 1.嵌入式系统的设计与传统系统设计具有哪些异同点?2.结合嵌入式系统的典型组成,试分析常见的嵌入式产品(如PDA,手机等)大体的结构组成?3.统一建模语言(UML)包括那几部分,各个部分的组成又由那些?4.试画出UML中常用的几种图形,如用例图,类图,顺序图等等。5.试着给出电梯的状态转换图?6.结合嵌入式设计的具体流程和UML的相关知识,设计电梯调度系统。52
限制150内