Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGY第6章嵌入式系统设计技术•嵌入式系统设计的特点•嵌入式系统的组成•嵌入式系统的设计流程•统一建模语言UML•设计示例:车载GPS终端系统的设计Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGY嵌入式系统设计的特点•嵌入式系统通常是面向特定应用的系统;•嵌入式系统的硬件和软件都必须高效地设计,量体裁衣、去除冗余;•嵌入式系统设计需要交叉开发环境;•嵌入式系统的程序需要固化;•嵌入式系统的软件开发难度较大;•嵌入式系统还需要提供强大的硬件开发工具和软件包的支持,需要设计者从速度、功能和成本综合考虑。对稳定性、可靠性、功耗、抗干扰性、重量体积等方面的性能要求都比通用系统的要求更为严格和苛刻。Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGY“宿主机/目标机”方式•嵌入式系统的开发通常采用“宿主机/目标机”方式。•宿主机(Host):一台通用的计算机,一般是PC机。它通过串口或网络连接与目标机进行通信。•目标机(Target):常用在嵌入式系统的开发过程期间。目标机可以是嵌入式系统的实际运行环境,也可以是能替代实际环境的仿真系统。硬件调试器(如JTAG仿真器)目标机(嵌入式开发系统)宿主机(通用个人计算机PC)RS232/以太网RS232/以太网Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGY嵌入式系统的组成人机交互接口D/AA/DI/O嵌入式微处理器(MCU)通用接口ROMSDRAM硬件层中间层HAL/BSP硬件抽象层/板级支持包软件层实时操作系统(RTOS)应用程序文件系统图形用户接口(GUI)任务管理功能层被控对象(如微型电机)执行装置嵌入式计算机系统Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGY硬件层ARM7TDMIMP3解码/DAC/音频放大器LCDUSBIDE连接器SDRAMRS232用户输入(如键盘)•硬件层:由嵌入式微处理器、存储器系统、通用设备接口和I/O接口(A/D、D/A、I/O等)组成。•在一片嵌入式微处理器基础上增加电源电路、时钟电路和存储器电路(ROM和SDRAM等),就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGY中间层•中间层:也称为硬件抽象层(HardwareAbstractLayer,HAL)或板极支持包(BoardSupportPackage,BSP),它把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关。•BSP的特点:1)操作系统相关性2)硬件相关性•设计一个完整的BSP需要完成两部分工作:1)嵌入式系统的初始化:片级初始化、板级初始化和系统级初始化2)设计硬件相关的设备驱动。Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGY软件层•软件层:由实时多任务操作系统(RTOS)、文件系统、图形用户接口(GUI)、网络系统及通用组件模块组成。•RTOS是嵌入式应用软件的基础和开发平台。•RTOS实际上是一段嵌入式目标代码中的程序,系统复位后首先执行,相当于用户的主程序,用户的其他应用程序都建立在RTOS之上。•RTOS是一个标准的内核,它将CPU时钟、中断、I/O、定时器等资源都封装起来,留给用户的是一个标准的API函数接口。Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGY功能层与执行装置•功能层:由基于RTOS开发的应用程序组成,用来完成对被控对象的控制功能。•功能层是面向被控对象和用户的,为方便用户操作,往往需要提供一个友好的人机界面。•执行装置:是指那些可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务的设备和装置。•在不同的应用领域中,嵌入式系统的执行装置一般是不同的,应该根据具体的应用场合和系统所要求实现的功能选择不同的设备和执行装置。Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGY嵌入式系统的设计流程系统需求分析阶段规格说明阶段开始体系结构设计阶段硬件构件设计软件构件设计执行装置设计系统集成系统测试嵌入式产品发布结束Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGY统一建模语言UML概述•统一建模语言UML:可视化建模语言,属于第三代面向对象建模语言。它将模型中的信息用标准图形元素直观地表示出来,便于人员交流。•特点:•1)UML语言简单,易学、易用;•2)UML采用可视化的图形描述,比较形象直观;•3)可使不同技术背景的开发人员和设计人员很容易的相互交流;•4)UML语言是第三代面向对象建模语言的标准,被绝大多数业内人士认同;•5)UML采用图形化的设计,将系统的核心部分描述出来,可以供以后系统开发使用;•6)有利于项目的回溯和测试。Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGYUML组成•UML采用图形表示法,它的重要内容是由一些图来定义的。设计人员就是用这些图来描述整个系统的功能和设计。•UML包括4部分:(1)视图(View):UML的视图并不是图形,而是由许多图(Diagram)组成的一个抽象,视图显示表达系统的各个不同方面。(2)图(Diagram):描述UML视图内容的图形。UML共有9种不同类型的图,通过它们的相互组合来表示出被建模系统的所有的视图。(3)模型元素(ModelElement):UML图中使用的概念就是模型元素。模型元素代表普通的面向对象的概念,例如类、对象、消息以及这些概念之间的关系。(4)通用机制(GeneralMechanism):UML提供的通用机制为模型元素提供一些附加的信息、注释、语义。这些通用机制也提供扩展机制,允许用户对UML进行扩展,以便适应一个特定的方法/过程、组织或用户。Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGYUML中的视图•5种视图:(1)用例视图(UseCaseView):描述系统应该交付的功能,是外部参与者(Actor)观察到的系统功能。用例视图利用用例图、活动图进行描述。•一个用例就是对系统的一个功能的通用描述。•用例视图是核心。系统的最终目标,系统提供的功能在用例视图中被描述。用例视图会对所有其他的视图产生影响。(2)逻辑视图(LogicalView):从系统的静态结构和动态行为角度显示如何实现系统的功能,描述如何实现用例视图中提出的那些系统功能,逻辑视图注重的是系统的内部。(3)组件视图(ComponentView):显示代码组件的组织结构,描述模块以及它们之间的依赖关系。组件是不同类型的代码模块,通过代码模块的结构和依赖关系来表示。(4)并发视图(ConcurrencyView):显示系统的并发性,解决并发系统中存在的通信和同步问题。主要考虑资源的有效利用、代码的并行执行以及系统环境中异步事件的处理。(5)部署视图(DeploymentView):显示系统的具体部署,将系统部署到有计算机和设备(称之为Node)组成的物理结构上。Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGYUML中的图1•9种图:用例图、类图、对象图、状态图、顺序图、协作图、活动图、组件图和部署图。(1)用例图(UseCaseDiagram)•显示多个外部参与者(Actor)以及它们与系统提供的用例之间的连接,定义系统的功能需求。•一个用例是对系统提供的某个功能的描述,用例只是描述系统活动者从外部观察系统所得到的那些功能,并不描述这些功能在系统内部是如何实现的。•一个评分系统的用例图:记录成绩浏览成绩分发报告卡学生教师Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGYUML中的图2(2)类图(ClassDiagram)•显示系统中各个类的静态结构。类图是静态图。•类代表系统内处理的事务,这些类可以多种方式连接:关联、依赖、特殊化或者打包。•一个类的内部结构使用该类的属性和操作表示。•一个系统一般有几个类图,并不是所有的类都放在一个类图中,一个类可以参与到多个类图中去。•评分系统的类图:教师成绩成绩报告卡网站在线用户(学生)Login()View()Query()RecordGrade()UpdateGrade()DeleteGrade()QueryGrade()Generate()MaintainsContains^DisplaysUses11…*1…*1Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGYUML中的图3(3)对象图(ObjectDiagram)•类图的一个实体。对象图中,对象名带下划线。•与类图的区别:对象图显示的不是实际的类,而是类的多个对象的实例。因此,对象图就是类图的一个例子,显示系统执行时的一个可能的快照。作者Name:StringAge:Integer计算机Name:StringMemory:IntegerUses类图张三:作者Name=“张三”Age=40张三的个人电脑Name=”lenovo”Memory=512张三办公电脑Name=”Dell”Memory=256对象图Zhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGYUML中的图4(4)状态图(StateDiagram)•显示类的对象可能具备的所有状态,以及那些引起状态改变的事件。状态图是对类的描述的补充。•对象的一个事件可以是另一个对象向其发送的消息,例如到了某个指定的时刻,或者已经满足了某个条件。•状态的变化称之为转换,一个转换也可以有一个与之相连的动作,后者用以指定完成该状态转换应该执行的操作。AvailableLockedSold初始状态AssigntosubscriptionTimeoutLockUnlockExchangeBuyZhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGYUML中的图5(5)顺序图(SequenceDiagram)•显示多个对象之间的动态协作。•重点是显示对象之间发送消息的时间顺序。•由多个用垂直线显示的对象组成,图中时间从上到下推移,并且顺序图显示对象之间随着时间的推移而交换的消息或函数。•消息用带消息箭头的直线表示,位于垂直对象线之间。网站的接口电子邮件教师LoginteacherLookupstudentDistributeGradeLogoutteahcerSendEmailwithgradeZhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGYUML中的图6(6)协作图(CollaborationDiagram)•显示动态协作。•选择顺序图还是协作图的决定条件:(1)重点强调上下文,选择协作图。(2)重点强调时间或顺序,选择顺序图。:FileQueue:Computer:Printer:PrintSever1:Printfile(Printerfree)1.1:Printfile(Printerbusy)1.2:StorefileZhaohw@jlu.edu.cnCOMPUTERSCIENCEANDTECHNOLOGYUML中的图7(7)活动图(ActivityDiagram)•显示一系列顺序的活动,主要描述在一个操作内执行的那些活动。•由多个动作状态组成,这些动作状态包含将被执行的活动(一个动作)的规格说明。•当动作完成后,动作状态将会改变,转换为一个新的状态,从而控制就在这些互相连接的动作状态之间流动。教师录入成绩准备