一种改进型UML在嵌入式系统中的应用

发布者:fengting最新更新时间:2007-01-12 来源: 单片机及嵌入式系统应用关键字:模块  逻辑  序列  模拟 手机看文章 扫描二维码
随时随地手机看文章

引言

  随着计算机技术、网络技术和通信技术的迅速发展,当前的信息社会已从当初传统的个人计算机时代进入了后PC时代;而后PC时代的主要特征就是以嵌入式系统的广泛应用与发展为标志的。

  关于嵌入式系统的定义虽然有很多种,不过国内普遍认可的定义是[1]: 以应用为中心,以计算机技术为基础,软硬件可裁剪,适合应用系统对功能、可靠性、成本、体积和功耗要求的专用计算机系统。

  嵌入式系统主要是使用微型的芯片及其固化的软件,嵌入在其他系统中,以达到对其他系统进行智能化或信息化实时控制等目的。

  当前,嵌入式系统已在工业控制、航空航天、国防以及信息家电等领域得到广泛的应用,并发挥了重要作用,而且越来越多的领域都迫切需要嵌入式系统的支持。然而,由于嵌入式系统的硬件、软件、应用环境的千差万别,因此当前有限的嵌入式技术人员的时间和精力主要花在熟悉不同的硬件、软件及其代码的开发上。这样不但造成嵌入式系统开发的效率和质量得不到保证,而且也严重束缚了嵌入式技术人员进行更高层次的研究与开发。这些都成为日益复杂的嵌入式系统迅速发展的瓶颈。

1 UML引入到嵌入式系统中的可行性

  20世纪六七十年代,软件产业遇到了危机。其原因就是软件越来越庞大和复杂,而软件的质量和生产率却越来越低。由此促进了软件工程的诞生,使得软件开发的规范化和效率都得到了很大提高。在20世纪90年代,随着面向对象技术的发展,软件工程向自动化、智能化方向发展,其突出的标志就是UML标准的出现与发展。随后,很多软硬件厂商相继开发出了许多基于UML标准的CASE工具。从此开发软件可以借助UML的CASE工具来完成从软件的分析、设计、实现到测试的一系列软件工程过程,大大提高了软件开发的复用性和效率,降低了软件开发过程中的返工率。

  UML突出的特点就是以面向对象的观点来分析和设计所开发的系统,它把系统的每个功能都作为一个模块(以“类”来表示)。在UML中,使用用例视图、逻辑视图、组件视图、并发视图和展开视图来分别对软件实现需求分析、设计、实现、集成和测试等过程;并且每个视图都包括一系列的图来具体实现,上面的5类视图包括了用例图、类图、对象图、状态图、序列图、协作图、活动图、组件图和展开图。其中,用例图、类图、对象图、组件图和展开图属于静态图,是从静态方面对系统进行分析和建模的;而状态图、序列图、协作图和活动图则是从动态方面对系统进行分析,模拟系统动态交互情况的。

  2001年,UML2.0的发布标志着UML技术进一步成熟,也得到了越来越多的硬件和软件厂商的支持,这也使得UML的发展前景更加广阔。面对基于软件工程的UML在软件领域所取得的巨大成就,是否可以把UML引入到嵌入式系统开发中来,用来改变当前嵌入式系统开发效率低下的局面呢?通过研究分析发现,UML应用到嵌入式系统主要存在以下几个方面困难:

① 嵌入式系统包括硬件和软件两部分,不同厂商的硬件千差万别,在某个嵌入式芯片中能正确运行的软件在另外一个嵌入式硬件平台上就不一定能正常运行。
② 嵌入式系统软件平台也千差万别,各自对开发的要求差异较大。
③ 大部分嵌入式系统对实时性要求严格。
④ 嵌入式平台的软件一般不是采用面向对象语言开发的,主要采用C语言甚至是汇编语言编写。

  所有以上这些特点,导致在实际的嵌入式系统中UML模型很难被构建。即使构建出模型,其正确性、实时性能也很难得到验证和保证。

  虽然如此,各国的研究者和开发商为把UML引入到嵌入式系统中都做出了不懈的努力,并取得了一些成果,主要包括:

① 为了使所建立模型的正确性能够得到验证,有人提出采用形式化的方法。例如William和H. C. Cheng使用VHDL作为模型的形式化描述语言,通过分析UML模型中的类图和状态图得到嵌入式系统的VHDL描述,确定系统的结构和行为,并进行模型验证[2]。还有学者使用有限状态自动机与UML相结合来完成系统的分析、设计和验证[3]。
② 对于实时性要求,提供的解决方法主要包括: 使用标准的UML及其构造型概念设计实时系统[4],以及扩充UML或改造UML以使其满足实时系统的要求[5]。
③ 对于语言的问题,主要有以下两种解决方法: 一种是使用面向对象的C++语言开发,如SystemC[6];另一种是使用可以与C语言结合的UML开发环境,如美国ILogix公司推出的Rhapsody。

  由以上3种解决方案可知,UML应用在嵌入式系统所产生的可验证性、实时性以及语言的问题,都是可以解决的,因而有可能广泛使用UML来分析、设计与指导嵌入式系统开发,以解决嵌入式系统开发效率低下的问题。

2 一种改进的通用嵌入式系统UML方案

  由于目前对UML应用在嵌入式系统中的研究往往都是侧重于解决嵌入式系统的某一方面,因而不具有通用性,很难成为嵌入式系统建模的标准。为了解决UML在嵌入式系统中的建模问题,本文提出了一种通用的UML嵌入式系统设计解决方案。

  为了给嵌入式系统建模必须考虑以下方面:

  ◆ 时间。在序列图中描述时间及其约束信息。
  ◆ 并发性。用活动类来描述并发。活动类的属性(如优先级)可以定义成类的标签值,可通过组件版类﹤﹤Process﹥﹥和﹤﹤Thread﹥﹥将它们映射到实现环境中。
  ◆ 异步通信。UML支持线程间发送异步消息。
  ◆ 同步通信。定义信号量、监视器或关键区的类/版类来描述同步。

  由此,可以得出嵌入式系统建模的一般过程如下:

① 首先确定系统需求。在此阶段既不考虑哪部分是软件,也不考虑哪部分是硬件,只根据调研和与用户的交流得出系统应具有的功能,并通过角色与用例的关系表现出来,从而得出用例图和系统最终需求。
② 进入系统设计阶段,也就是根据用例图得出的需求来设计类图。这个阶段需要确定哪些功能由硬件完成,哪些功能由软件完成。软件类图的设计与纯软件建模方法基本一样,在此不再赘述。对硬件的处理一般由硬件包装类来实现,硬件包装类提供访问硬件的接口。这些硬件包装类处理到设备的通信和设备产生的中断,通过这样的硬件类可以隐藏低级协议的细节,并且很方便、快速地将低级中断转换为系统中其余部分的高级事件。包装类是属于活动的还是静态的类,主要取决于硬件的属性。
③ 如果类图中所描述的软件类或硬件类比较复杂,难以描述清楚,那么可以采用对象图来细化,使之更加具体和明确。
④ 对于实时性要求,需要在序列图中进行定义和描述;如果想知道不同对象之间的链接,以及链接对象间如何发送消息,可以建立协作图;通过建立状态图,可以了解到某个对象所能到达的所有状态,以及对象收到的事件对该对象状态的影响等。
⑤ 最后,使用组件图和展开图来实现系统的集成与验证。

  以上过程可以在Rhapsody软件环境下实现,因为该软件可以产生嵌入式系统常用的C语言,更接近通常的嵌入式开发环境。

3 实例分析与讨论

  这里以一个报警系统为例,说明如何使用UML来设计嵌入式系统。一个报警系统一般由传感器(包括声音传感器、图像传感器和热传感器),报警器(包括声音报警器、电话报警器和光报警器),键盘,LCD显示器,系统处理器,以及用于存储系统配置信息和日志信息的存储器等部件组成。

  当传感器接收到某个信号,通过模/数转换把信息送到系统处理器中后,系统处理器根据设定的配置信息条件,判断是否需要报警。若需要,则会向报警器发出报警命令。键盘和LCD显示器用于人机对话,可以根据实际需要设定报警条件和方式。

  该系统的序列图如图1所示。从图1中可以看出,该系统要求从传感器返回信息到发出报警的时间间隔小于3 s。这就是序列图中对嵌入式实时系统时间要求的一个例子。

  在类图中,把系统处理器设计成活动类,负责处理通过带有LCD 显示的控制面板与用户的交互。通过控制面板,可以配置、激活和关闭系统。所有的配置变化均保存在系统配置信息类中。系统处理器接收传感器的信息,并把它与系统配置信息比较,从而决定是否报警。为了查询和了解报警系统历史信息,系统处理器将所有事件保存在日志中。系统处理器、传感器和报警器的类图的简单关系如图2所示。


图1 报警系统序列图



图2 报警器系统组成的类图

结语

  为嵌入式系统引入一个通用、完善的UML技术,必将对当前高速发展的嵌入式系统的研究与开发产生积极的影响。而本文所提出的思想和方法,对于摆脱UML技术在嵌入式领域的困境起到了有益的探索和建议作用。

参考文献

[1] 王田苗. 嵌入式系统设计与实例开发——基于ARM微处理器与μC/OSII实时操作系统[M].第2版. 北京:清华大学出版社,2003:530.
[2] William E McUmber,Betty HC Cheng. UMLBased Analysis of Embedded Systems Using a Mapping to VHDL[J]. IEEE High Assurance Software Engineering,1999(11):5663.
[3] 石柯阳,富民,胡贯荣.基于UML的嵌入式系统模型验证机制的研究[J].计算机工程与应用,2001,37(23):13111.
[4] 何海,钟毅芳,蔡池兰. 基于UMLRT的复杂嵌入式系统建模方法及其应用[J]. 计算机应用,2005,25(6):14271429.
[5] Bikander M. Graphical Programming Using UML and SDL[J]. IEEE Computer,2000(12):3035.
[6] 石柯. 基于UML和SystemC的嵌入式系统集成开发的研究[J]. 高技术通讯,2003(11):4447.

关键字:模块  逻辑  序列  模拟 引用地址:一种改进型UML在嵌入式系统中的应用

上一篇:关于嵌入式U盘读写器接口技术和系统设计
下一篇:基于uClinux的GPSOne/GPS双定位信息接收

推荐阅读最新更新时间:2024-05-13 18:16

初步认识51单片机-2.2单片机控制LCD1602液晶显示模块
上面学的两招,控制IO和延时,在这里要举的第一个例子就是LCD1602。LCD1602什么意思,表示一行可以显示16个字符,一共有两行。先来个LCD1602的简单介绍,1602LCD主要技术参数: 显示容量:16 2个字符 芯片工作电压:4.5 5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.95 4.35(W H)mm 引脚功能说明 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表1所示: 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产
[单片机]
初步认识51单片机-2.2单片机控制LCD1602液晶显示<font color='red'>模块</font>
Altera 推出具有530K逻辑元件FPGA 的开发套件
Altera 公司 (NASDAQ: ALTR) 今天宣布推出其面向 Stratix® IV FPGA 的最新开发套件。Stratix IV E FPGA 开发套件具有业界最高密度、最高性能的 FPGA。该套件为用户提供了全面的设计环境,其中包括迅速开始其高密度原型产品设计所需的硬件和软件。 Stratix IV E FPGA 开发套件基于高性能、高密度的 Stratix IV EP4SE530 FPGA。该 FPGA 具有 530K 逻辑单元 (LE),比当前市场上同类竞争产品的 FPGA 性能平均高 25%。Stratix IV EP4SE530 FPGA 所具有的性能和密度优势,让使用 Stratix IV
[嵌入式]
Altera 推出具有530K<font color='red'>逻辑</font>元件FPGA 的开发套件
英飞凌分立式功率器件和模块市场全球第一
2007 年,英飞凌科技股份公司在功率电子分立式半导体器件和模块领域表现抢眼,进一步巩固了其全球第一的位置。 根据全球市场研究公司 IMS Research 的最新调查,英飞凌在全球分立式功率器件和模块市场的份额提高至 9.7% 。英飞凌在 2007 年大约增长了 23% ,而全球市场的增长为 9.3% ,达到 136 亿美元( 2006 年为 125 亿美元)。该市场研究公司预测今后五年,分立式功率半导体器件与模块市场的年平均增速将达到 8% 至 9% 。 IMS 研究公司研究总监兼“ 2008 年分立式功率半导体器件与模块”报告联合编撰者
[安防电子]
从财报来看模拟IC厂商的国产替代进程
近年来,中美贸易摩擦愈演愈烈,促使国内终端厂商担忧供应链的安全,而随着美国政府将华为、海康威视、大华科技等一系列国内杰出的终端厂商列入出口管制实体清单之中,导致国内终端厂商“人人自危”,“去A化”进程大幅提速,持续调整供应链以规避风险。 尽管国产替代的号角早已经在各行各业中吹响,但各个领域进度不一,其中国产模拟IC进展迅速。 2019年,在中美贸易摩擦、全球半导体景气度下降等因素的影响下,模拟IC巨头德州仪器和亚德诺营收净利均出现下滑,而在国产替代的加持下,国内模拟IC厂商却迎来了业绩的高速发展期。 德州仪器、亚德诺业绩持续下滑 资料显示,模拟电路分为信号链和电源链,信号链主要是指用于处理信号的电路,而电源链主要是指管理电池与电能
[手机便携]
iFixit拆解新Macbook Air:模块化设计 可修复性大幅提高
10月30日苹果正式发布新的Macbook Air,这款一直被苹果”遗忘”掉的设备终于得到了一次脱胎换骨的升级,包括外界呼声最高的视网膜屏幕,同时依旧保持整机的楔形设备,而键盘设计、触摸板设计跟上了现在Macbook Pro的潮流。 在这机开卖不久后,iFixit网站便对该机进行了拆解分析。首先他们确认Macbook Air的键盘硅胶保护膜和最新的Macbook Pro是一样的,因为两者都是采用了第三代的蝴蝶键盘。         第一步,他们把笔记本翻转到底部,然后需要用特殊的螺丝刀拆下苹果常用的五角螺丝。新款Macbook Air内部采用了紧凑的组件阵列,包括小逻辑板,一个风扇(主动三人),一对大尺寸的喇叭和一个辐
[手机便携]
基于CAN总线的数控系统测控模块设计
1 引言 用计算机或微控制器通过一种或多种总线方式,实现与现场各种设备的通信,并通过总线实现对现场设备进行必要控制的计算机网络系统称为底层测控通信网络系统,简称底层测控网络。本文是针对数控系统方面来展开研究的,提出了一种基于CAN总线的数控系统底层测控网络, 现场设备就是数控机床等数控设备。 2 CAN总线的基本工作原理 CAN总线的拓扑结构是一个典型的串行总线的结构形式。CAN总线中一个节点发送信息,多个节点接收信息;但CAN总线的信息存取方式采用的是一种广播式的存取工作方式。在CAN总线的通信协议中支持的是基于报文的工作方式。也就是说加入或撤销节点设备都不会影响网络的工作,十分适用于控制系统要求快速、可靠、
[工业控制]
手机设计集成的关键——IP模块的简介
设有Bluetooth功能的SoC设计通常是由几个高度复杂分系统组成的。每个分系统兼备有硬件组件和软件组件两个方面,总体设计环境中实现专用功能。理想地,这些分系统应这样设计,其硬件和软件两者边界的定义是十分清晰的,让各个独立功能得到充分的验证,便于集成到SoC设计中。这些分系统的商品化IP产品已在进行中。 模块化IP结构充分考虑了硬件/软件设计、软件应用设计、以及快速原型的需要,因而便于集成和系统的验证。本文以现成的无线SoC设计(如GSM手机)中增加一个复杂的无线功能,即Bluetooth功能的实例来说明这一原理。Bluetooth实例充分体现确切地定义了硬件与软件接口模块化协议的优势,带来了诸多灵活性,且可优化每个组件的成本和
[嵌入式]
STM32单片机的ADS1115通过模拟I2C驱动
注意:本部分代码需要只是ADS1115的部分程序(一些用到的数组在此没有写),模拟II2C的各程序并未给出,大家根据需要进行裁剪,代码完全开源,希望能帮到大家,也希望大家乐于分享。 调试时需特别注意I2C的通信问题,特别是应答信号的使用需要特别关注,本人的程序之前出错全是因为从机的应答信号的未使用造成。 收获:对于I2C通信协议的理解更加深刻,对ADS1115也能进行单通道的使用。I2C的开始、发送/读写、应答、结束等一定要严格按照时序操作,ADS的操作还有所欠缺,仅仅会配置单通道,对于其他配置并没有关注,最近要把多通道的和阈值的配置也写好,到时再更新 附录代码: #define CMD_Write 0x90 ////写
[单片机]
STM32单片机的ADS1115通过<font color='red'>模拟</font>I2C驱动
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved