模型驱动的嵌入式系统设计

合集下载

基于模型驱动的机载嵌入式软件应用

基于模型驱动的机载嵌入式软件应用
o d s a n d us e he t a u t o p i l o t l f i g h t c o n a ' o l s y s t e m’ S a u t o p i l o t mo d e c o n t r o l s o f t wa r e s a a e x a mp l e, c o mp a r e t h e e f ic f i e n c y o f S CADE c o d e
( F l i g h t A u t o ma i t c C o n t r o l R e s e a r c h I n s i t t u t e , X i ’ a l l 7 1 0 0 6 5 , C h i n a )
Abs t r a c t : 1 1 1 e t r a d i t i o n a l s o twa f r e d e v e l o p me n t t e c h n i q u e h a s b e e n t i n a b l e t o C ( 3 l p e wi t l l山e s e r i o u s c h a l l e n g e s t h e a i r b o r n e e mb e d d e d s o f t .
Ai r b o r n e Em be d de d So f t wa r e App l i c a t i o n Ba s e d o n M DA
W ANG We n—q ua n, S ONG Ke -p u, W ANG Yo n g, XI E We i
王文全 , 宋科 璞 , 王 勇 , 谢 卫
( 飞行 自动控 制研 究所 , 陕 西 西安 7 1 0 0 6 5 )

基于模型驱动的实时嵌入式系统

基于模型驱动的实时嵌入式系统

基于模型驱动的实时嵌入式系统赵勇;陈香兰【摘要】随着实时嵌入式系统的功能越来越复杂,现有的软硬件分离、软硬件协调等实时系统设计方法已经无法满足其系统实现的要求.本文根据模型驱动开发架构MDA和模型集成开发MIC的核心思想,将时间语义结合服务体/执行流(Servant/Exe-Flow Model,简称SEFM)模型,提出了一种基于模型驱动的实时系统设计方法.首先,本文给出了SEFM模型的元模型表达系统的抽象语义,同时使用XML语言和框图语言来描述SEFM模型的具体语法.结合XML解析技术,根据同一抽象语法的不同具体语法能够相互转化,实现了框图语言的代码生成,最后以实时跟车系统设计方案表明该系统实现方法的可行性和正确性.%As the real-time embedded systems are more and more complex,the existing RTOS design method,such as hardware and software separation,hardware and software coordination and so on,is unable to meet the requirements of its bined with the core idea of MDA and MIC,this paper proposes a method based on model-driven for the RTOS design,which combines the temporal semantics with the Servant / Exe-FlowModel.Firstly,the paper gives the abstract semantics of the meta model expressing SEFM,and describes the concrete syntax of SEFM using XML language and block diagram language.If a different specific syntax can express the same abstract syntax,then each of them can be transformed into the bined with XML parsing technology,the code generation of SEFM can be realized.Finally,the experiments of thefollowing vehicle system show that the method of system design is feasible and correct.【期刊名称】《计算机系统应用》【年(卷),期】2017(026)008【总页数】5页(P83-87)【关键词】实时;嵌入式;MDA;MIC;SEFM【作者】赵勇;陈香兰【作者单位】中国科学技术大学计算机学院,合肥230026;中国科学技术大学计算机学院,合肥230026【正文语种】中文嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、功耗、可靠性、体积、成本严格要求的专用计算机系统[1]. 当前嵌入式系统已被广泛地应用到航天航空、工业控制、消费类电子产品等领域,嵌入式系统设计也变得越来越复杂,一般会涉及硬件与软件,以及功能和时间等多个方面的要求.传统的嵌入式系统设计方法已经无法满足复杂嵌入式系统的设计需求了,主要表现在以下几个方面:(1)软硬件分离的设计方法,只能实现软硬件性能的各自优化,无法达到系统的整体性能最优. (2)软硬件协同设计方法对系统开发者提出了很高的要求——对系统统的软件和硬件熟悉程度到了苛刻的要求. (3)嵌入式系统不仅功能变得越来越复杂,而且对系统完成这些功能的响应时间也提出了更为严格的要求.近年来,随着软件工程和系统模型技术的发展,模型驱动开发的系统设计理念被越来越多的系统开发人员认可和使用. 模型驱动系统软件开发是对现实世界建立模型、转换模型,直到生成可执行代码. 在模型驱动系统开发过程中,模型是软件开发的核心. 软件的开发和更新过程就是以模型为载体,通过模型之间的映射机制来驱动的过程,也可以认为是高抽象级模型向低抽象级模型的逐层转化和实现的过程.2002年,对象管理组织OMG(object management group)提出了模型驱动架构MDA(Model Driven Architecture). MDA结合面向对象技术,利用统一建模语言UML对系统进行分析建模,再通过模型得到代码. MDA提倡将模型作为核心,贯穿于系统设计的整个开发周期,用模型描述系统的需求、设计、测试、维护等过程. 但是,MDA作为一个通用的软件开发标准,缺乏面向领域开发的支持. 范德堡大学的Janos Sztipanovits和Gabor Karsai提出了模型集成计算MIC(Model-Integrated Computing). MIC是一种以模型为中心的软件系统开发理论,其模型分为4个层次,从上到下依次为元元模型层、元模型层、模型层以及实现层.在嵌入式领域中,MIC已经得到广泛关注和应用. 目前,MIC在嵌入式系统的模型研究更多地局限于功能的设计,而缺乏时间语义的支持.本文在深入研究MDA和MIC方法的基础上,将时间语义结合SEFM模型,提出了一种基于模型驱动架构的实时嵌入式系统设计方法,重点表述了层次间模型的映射转化和代码生成的设计,最后以跟车系统案例建模仿真实现加以说明本设计方法的可行性和有效性.前面提到,传统的嵌入式实时系统设计的不足之处是,高层次的抽象阶段与目标环境中的开发编程阶段脱节. 这是因为各个抽象层次之间的映射关系不明确,高层次的应用抽象描述无法直接映射成抽象模型,抽象模型也无法直接转化成代码. 实际的系统设计还需要手动编写代码,系统的功能特性和时间特性都是经过代码的某种组合才能完成,这个过程是艰难而容易出错的.本文将嵌入式系统按照设计阶段分为5个层次.如图1所示,从上到下依次是应用描述层,抽象模型层,编程语言层,可执行代码层,硬件层. 模型驱动开发关键在于最上面的三个层次的研究,应用描述层位于整个开发过程的最顶层,它定义了模型的建模元素,一般是一种领域无关的通用模型描述语言. 该层不仅需要描述整个系统的行为,而且需要分析和验证系统,为后续开发打下基础. 抽象模型层采用领域内抽象模型对嵌入式实时系统进行抽象描述和刻画. 利用仿真平台对整个系统或局部系统进行仿真,并观察仿真结果. 当系统满足设计要求时,将领域抽象模型变换成代码. 最后,结合硬件平台代码,使用嵌入式集成开发工具,将生成的可执行软件代码移植到相关的硬件平台,完成系统实现.在实时嵌入式领域中,系统行为的正确性不仅取决于计算的逻辑结果,而且与产生这些结果的物理时间有关. 传统的实时系统模型无法保障任务释放时间的确定性,尽管可以通过反复测试使得系统具有可靠性,但这种方法存在缺陷,其根本原因在于: 实时系统模型中缺乏明确描述时间属性的语义.中国科学技术大学龚育昌教授等人提出了执行流/服务体(SEFM)模型,并在此基础上进行了时间可预测实时模型的深入研究. 执行流是对CPU执行能力的抽象,每个CPU对应一个执行流抽象; 服务(Service)是最基本的功能单元,也是调度的单位,任务由一组服务组合而成,服务描述了任务间的交互方式以及各任务的时间属性.根据MDA和MIC方法提出的元模型思想,可使用元模型刻画SEFM最核心的语义,也就是SEFM的抽象语法. 在元模型的基础上再实现时间约束和服务体组件刻画,可实现多种语言来描述SEFM的具体语法. 这样基于相同抽象语法的具体语法的不用语言可以实现相互转化.编程语言的语法和语义有着很重要的区别,语法为构造有效语言制定规则,语义则表示语言的含义. 模型也有着类似的区别,语法为模型如何表示制定规则,语义则表示模型意味着什么含义.模型的抽象语法代表着模型的结构,比如模型可以使用图的结构表示,由点和边构成,边连接着点. 或者使用树结构表示,可以定义层次结构. 相比较而言,模型的具体语法表达抽象语法的特殊符号,如框图语言. 具体语法代表的所有结构集合能够用来表示模型的抽象语法. 也就是抽象语法包含了模型的抽象结构,具体语法提供文本或者图描述模型.抽象语法比具体语法更加基础,如果针对同一个抽象语法表达的两个具体语法,那么一个转化成另一个往往是容易的. 通常,元模型是一种模型的建模语言或符号. 在建模过程中,工程师经常使用元模型来精确定义抽象语法. 元模型形式化地定义了语言的各种组成元素以及它们的抽象语法. 在MDA和MIC中,元模型一般使用UML类图表示. SEFM模型的UML元模型如图2.SEFM模型中的每个组件都是NamedObj类的实例. NamedObj有四个子类,分别是属性Parameter、实体Entities、端口Port和关系Relation. SEFM模型由顶层实例包含其他实例组成,这些实例通过端口进行交互. 所有的对象(实例,端口,关系)都可以分配属性,用来定义参数或者注释. 端口间通过链接来确定关系,表示元模型中关系类和端口类之间的关联关系.上文提到,具体语法是抽象语法的更高层次描述.抽象语法是定义数据结构来表示模型,具体语法则是捕获如何呈现机器间通信或与人类交互. 具体语法一般可使用编程语言表示,常用的替代具体语法的语言是可扩展标记语言XML. 从常见的元模型可以推导出建模语言的可视化语法,也可以是文档类型定义或XML文档. 每个元素的图形语言将对应于一个XML文件元素. 比如使用图形符号的输入端口IP0对应XML文件元素<inputport name=IP0>.区别模型的抽象语法和具体语法对于建模技术会产生一个深远的影响: 编辑和操作. 建模者与具体语法进行交互: 使用具体语法的“原始”概念来创建和修改模型结构. 如果开发环境是图形化的,那么开发人员可以直接对图形对象进行操作. 这些图形对象只是底层抽象语法对象的渲染; 因此,图形对象的变化将导致底层对象的更改.随着高层次抽象模型的发展,基于模型的代码生成技术(Model-Based CodeGeneration,简称MBDG)成为一个新的研究领域. 代码生成的核心思想就是将模型的建模语言转化成可执行语言. 代码生成能够从设计的模型中有效的综合实现代码. 理想情况下,在系统的设计阶段,代码生成可以实现模型在不同平台下的实现.生成编码社区(GPCE)着重推广了一种基于模板的元编程技术,编译器工具如AspectJ和AHEAD为这种编程范例提供标准,涉及模板语言、源建模语言的元模型的使用和目标语言和平台的描述. 基于模板的元编程技术采用一种编程语言操纵其他编程语言完成代码生成. 操纵语言称为元语言,被操纵语言称为对象语言. 对象语言使用模板作为语言的第一对象数据,在编译时模板会被解释为平台相关的可执行语言. 通过对基于模板的元编程技术研究,本文模型的代码生成思想如图4所示,代码生成过程可以等价为一个模型转换,它为模型生成其他平台语言提供了规范,呈现相同模型的不同语法实现,同时保留了模型的抽象语义.实时嵌入式系统一般使用C语言编写功能代码,本文也采用C语言作为对象语言,也就是模板. C语言模板是一个.c文件,这样可以保证文件的结构唯一. 适配器是代码生成框架的关键抽象,每个模型组件都与一个适配器. 为了实现可读性和可维护性的适配器,目标代码块的适配器被放置在同一目录下的不同文件中.对于每个适配器来说,对象代码包含的代码模板文件都是人工手写的,并且已经验证了代码的正确性(即语言功能上等价于SEFM模型组件). 代码模型存储在代码库中,针对相同模型的代码生成来说,代码模型是可重用的. 手动编写模板还保留了生成代码的可读性,同时使用宏处理组件实例的具有信息(如端口信息,参数变量等).本文提出的模型系统设计方法是面向框图语言、并行计算和仿真等技术在嵌入式系统设计中的综合应用,该方法将模型驱动架构的核心思想贯穿整个系统设计的全过程.如图5所示,是基于模型驱动的实时嵌入式系统方法实现框架. 在应用问题层使用框图语言来描述系统的功能属性,使用逻辑时间(时间戳)的语义来描述系统的时间属性.使用时间戳的时间语义可以有效的支持系统各个簇之间的事件同步和时间同步. 通过建模可以得到仿真的结果,如果仿真结果能够达到预期目标,利用代码生成技术,就可以生成相应的功能代码了.结合WCET和调度器算法分析功能代码的可调度性.如果产生的功能代码,不满足可调度性,就需要重新建模,直到产生的功能代码满足可调度性. 将功能代码和系统代码链接在一起,通过编译器写入到相关硬件.本文用两种方案实现了实时跟车系统: 1)使用SEFM模型实现,如图6所示; 2)在μC OS上进行实现.响应时间是衡量实时系统性能的一个重要指标,表1显示了不同方案中任务实际响应时间与实际需求时间的统计结果. 从实验结果可以看出SEFM能够较好的满足实际的时间需求,波动较小. 其主要原因是因为模型驱动在系统设计整个过程始终将功能和时间紧密的结合,确保模型映射和转换过程中,时间语义不发生改变,同时,也不随着硬件平台的变化而变化.本文结合MDA和MIC的模型驱动思想,将时间语义结合SEFM模型,提出了一种基于模型驱动架构的实时嵌入式系统设计方法. 将系统的功能设计和时间设计贯穿整个实时系统实现的全部过程. 使用元模型来表达SEFM的抽象语义,XML语义和框图语言来表达SEFM的具体语言,这样的设计可以确保系统在转化过程中语义的不变. 通过实验发现,这样的设计能够确保系统在实际运行时的物理时间满足系统需求.目前,建模平台功能比较单一,需要进一步完善建模平台的建模仿真功能.【相关文献】1Schirner G,Götz M,Rettberg A,et al. Embedded systems:Design,analysis and verification. Berlin Heidelberg:Springer,2013.2Henzinger TA,Sifakis J. The embedded systems design challenge. International Symposium on Formal Methods.Berlin Heidelberg,Germany. 2006. 1–15.3Miller J,Mukerji J,Belaunde M. MDA Guide V1.0.1. Object Management Group,2003.4Völter M,Stahl T,Bettin J,et al. Model-driven software development:Technology,engineering,management. New York: John Wiley & Sons,2013.5Sztipanovits J,Karsai G. Model-integrated puter,1997,30(4): 110–111. [doi: 10.1109/2.585163]6Iacovella CR,Varga G,Sallai J,et al. A model-integrated computing approach to nanomaterials simulation. Theoretical Chemistry Accounts,2013,132: 1315. [doi:10.1007/s00214-012-1315-7]7Atkinson C,Kühne T. Model-driven development: A metamodeling foundation. IEEE Software,2003,20(5):36–41. [doi: 10.1109/MS.2003.1231149]8Lee I,Leung JYT,Son SH. Handbook of real-time and embedded systems. Florida: CRC Press,2007.9Krahn H,Rumpe B,Völkel S. Roles in software development using domain specific modeling languages.Proc. of the 6th OOPSLA Workshop on Domain-Specific Modeling (DSM‘ 06). Portland,Oregon,USA,2014.10龚育昌,张晔,李曦,等. 一种新型的构件化操作系统的内核设计. 小型微型计算机系统,2009,30(1): 1–7.11吴明桥,陈香兰,张晔,等. 一种基于服务体/执行流的新型操作系统构造模型. 中国科学技术大学学报,2006,36(2):230–236.12Zhou Y,Lee EA. Causality interfaces for actor networks.ACM Trans. Embedded Computing Systems (TECS),2008,7(3): 29.13Jensen JC. Elements of model-based design. University of California,Berkeley,Technical Memorandum. UCB/EECS-2010-19,2010.14Ptolemaeus C. System design,modeling,and simulation:Using ptolemy II. Berkeley: Ptolemy,2014.15Marwedel P,Goossens G. Code generation for embedded processors. US: Springer Science & Business Media,2002.16Rajamani R,Choi SB,Law BK,et al. Design and experimental implementation of longitudinal control for a platoon of automated vehicles. Journal of Dynamic Systems,Measurement,and Control,2000,122(3): 470–476. [doi:10.1115/1.1286682]。

嵌入式系统的设计和实现

嵌入式系统的设计和实现

嵌入式系统的设计和实现嵌入式系统是指集成了计算机芯片、控制器、传感器等硬件设备的特殊电子设备系统。

它通常运行在一些资源受限的嵌入式处理器上,具有实时性、可靠性、成本低廉等特点。

如今,随着信息技术的迅速发展,嵌入式系统已经广泛应用在各种领域,例如智能家居、智能交通、智能医疗等。

嵌入式系统设计开发的核心,在于硬件电路的设计和程序代码的编写。

本文将从嵌入式系统的设计和实现两个方面,探讨如何开发一款成功的嵌入式系统。

一、嵌入式系统的设计1.硬件电路设计嵌入式系统的硬件设计是系统整体性能的基础,是开发过程中必不可少的一步。

在设计硬件电路时,需要首先了解嵌入式系统所需的硬件组件,比如处理器、存储器、输入输出设备、传感器等。

其次,需要根据设计目标和系统要求,选择合适的硬件设备,并将其组合成合理的电路结构。

最后,需要完成电路设计的的绘制及原理图、PCB的布线等工作。

在这个过程中,设计者需要考虑功耗、散热、成本等多个因素。

2.软件设计嵌入式系统的软件设计是嵌入式系统开发的重中之重。

在软件设计方面,需要仔细考虑嵌入式系统的程序架构及程序设计模式,比如事件驱动模型或多任务模型。

同时,需要考虑系统的实时性和稳定性,确保系统代码的质量和可靠性。

在软件设计过程中,需要使用一些工具和开发环境,如Keil、IAR、Eclipse等集成开发环境。

3.测试与调试测试和调试是嵌入式系统开发的重要环节,只有将系统进行充分测试与调试,才能保证系统的正确性和稳定性。

在测试过程中,需要首先进行各个模块的单元测试,以验证系统的功能是否正常。

然后进行集成测试,交叉验证各个模块的协同工作是否正常。

最后进行耐久性测试和压力测试,确保系统能够在各种恶劣环境环境下正常运行。

二、嵌入式系统的实现1. 系统内核系统内核是嵌入式操作系统的核心,也是嵌入式系统的核心。

系统内核需要提供一个可靠的执行环境和一些重要的操作系统服务,如任务管理、内存管理、中断管理、设备驱动程序和通讯协议等。

嵌入式系统的软件架构设计

嵌入式系统的软件架构设计

嵌入式系统的软件架构设计一、嵌入式系统软件架构设计的原则1.单一职责原则:模块化设计,每个模块负责独立的功能或任务,使得系统具有高内聚性和低耦合性,易于维护和拓展。

2.低功耗原则:嵌入式系统通常运行在资源受限的环境中,所以在设计过程中应考虑功耗的优化,如合理使用睡眠模式、降低组件工作频率等。

3.实时性原则:对于需要实时响应的系统,需要保证任务的实时性和可靠性。

可以使用实时操作系统,合理分配任务优先级,提供正确的调度机制。

4.可靠性原则:嵌入式系统通常运行在无人值守的环境中,对于需要长时间运行的系统,需要考虑到系统的稳定性和错误处理机制,如保证数据一致性、异常处理等。

二、常用的嵌入式系统软件架构模式1.分层结构:将系统划分为若干层,每一层负责特定的功能或任务。

上层可以调用下层的服务,实现系统的复用和模块化设计。

常见的分层结构有应用层、服务层、驱动层等。

2.客户端-服务器模式:将系统拆分为客户端和服务器,客户端负责用户界面和输入输出处理,服务器负责核心业务逻辑和数据处理。

这种模式适用于需要分布式处理和网络通信的系统。

3.事件驱动模式:通过订阅和发布机制,实现模块之间的高效通信和数据传递。

当一个模块触发一个事件时,相关的订阅者可以接收并处理这个事件。

这种模式适用于需要实现松耦合的模块间通信的系统。

4.状态机模式:系统根据不同的状态进行不同的处理,通过定义状态转换规则,可以实现系统的复杂逻辑控制。

这种模式适用于需要根据不同状态处理不同事件的系统,如自动控制系统。

三、嵌入式系统软件架构设计的指导1.准确定义需求:在设计阶段之前,清楚地定义系统的功能需求、性能需求、可靠性需求等,并根据需求确定软件架构的基本模型和模式。

2.模块化设计和接口定义:将系统划分为若干独立的模块,并定义模块之间的接口和通信机制。

模块化设计可以提高系统的复用性、拓展性和维护性。

3.确定关键任务:对于需要实时响应的系统,需要确定关键任务,并按照优先级进行调度。

基于模型的嵌入式软件开发研究

基于模型的嵌入式软件开发研究

2020年第6期信息与电脑China Computer & Communication软件开发与应用基于模型的嵌入式软件开发研究王锐鑫 赵中华 沈国荣 黄 星(苏州长风航空电子有限公司,江苏 苏州 215151)摘 要:笔者通过对SCADE、Simulink以及UML的工具软件进行分析,提出了一种适用于嵌入式软件基于模型的开发方法。

大量的工程应用表明,基于模型驱动开发的软件设计方法能有效地提高嵌入式软件的开发效率。

关键词:嵌入式软件;模型;组件;开发环境中图分类号:TP311.1 文献标识码:A 文章编号:1003-9767(2020)06-109-03Research on Model-based Embedded Software DevelopmentWang Ruixin, Zhao Zhonghua, Shen Guorong, Huang Xing(Suzhou Changfeng Aviation Electronics Co., Ltd., Suzhou Jiangsu 215151, China) Abstract: Based on the analysis of the tools of scade, Simulink and UML, the author proposes a model-based development method for embedded software. A large number of engineering applications show that the software design method based on model driven development can effectively improve the development efficiency of embedded software.Key words: embedded software; model; subassembly; development environment0 引言随着计算机技术发展,嵌入式软件在各行各业都发挥着日益重要的作用,尤是在航天、高铁、通讯、航空等领域,对嵌入式软件的实时性、可靠性、安全性等要求更高。

模型驱动的实时嵌入式系统结构设计与属性分析

模型驱动的实时嵌入式系统结构设计与属性分析
20 0 8年第 1 2期 文章编号 : 0 - 7 (0 8 1-0 30 1 62 5 20 ) 20 6 -4 0 4
计 算 机 与 现 代 化 J U N IY I N h H A I A J U XA D iU S
总第 10期 6
模 型 驱动 的实 时嵌 人 式 系统结 构设 计 与属性 分 析
w t eS rhtcue a ayi n einln u g a e n mo e- r e e eo me tme o .T e sft e sg a g a eb sd o d l i n d vlp n t d h ae o t ytm s hh e l d v h y f h
Ab ta t Re - mecn tan fra— messe otnaie u fsft e urme t.T et dt n e eo me tmeh dn t sr c : a t o srit l t ytm f rsso to ae rq i li o e i e y e ns h a io a dv lp n to o r i l
a ay e i e p e i ae c c u .T e e iin y o e eo me t s rie . n z w t t r d c t a u s h f c e c fd v lp n as l d h h l l i d Ke r s e ・ me mb d e y t m ;mo e - r e y wo d :r a ・ l t ;e e d d s se i d ld i n;p e i ae c l u u - v r d c t ac l s
增多和公路交通的发展 , 人工看守的平交道 口事故频 繁 。事故 、 伤亡 和损 失统计 见表 I¨。

基于Matlab的模型驱动嵌入式应用开发方法

基于Matlab的模型驱动嵌入式应用开发方法

J n 0 7 u e2 o
基 于 Ma a t b的模 型驱 动 嵌 入 式应 用 开 发 方 法 l
张 丽凤 , 李 允
( 南 交通 大 学 信 息科 学与技 术 学 院 , 西 四川 成都 603 ) 10 1

(h nle g6 13 cm) za g fn6 @ 6 .o i 要 : 嵌 入 式 操 作 系统 与 系 统 建 模 仿 真 工 具 Ma a/ i l k R Ⅳ 相 结 合 , 将 t b Smu n / T l i 实现 了 由
中图分 类号 : P 1 T3l
文献 标识 码 : A
0 引言
传统 的嵌 入式 软件开发 流程 是经过 需求分析 后 , 嵌入 在
式操作 系统 相应的开发平 台上开发应 用程序 , 经过 编译链接
如图 。
I tb — —a l Ma
Re l Ti e o k h p a- m W rso s s e .m ytm t Re l Ti e or h p b id a- m W ks o u l
S函数C 代码
后, 下载到 目标机里运行 。然 而开发应 用程序 是一件重 要 而 又复杂 的过程 , 需耗费大 量时 间、 人力 和脑力 , 且在交 叉调 并 试过程更改程序参数也 比较麻烦 , 量的底层 接 口编程 使开 大
发者在嵌入式操作 系统 A I P 调用上花 费精力 。
本文是将基于 D l O e a S嵌入式操作 系统并 与系统建模仿 t 真工具 M t b Sm l k相结合 , Ma a/ iuik强大 的建 a a/ i ui l n 将 l fbS l m n 模功能与嵌入式应用开发 二者很好 的结合 , 实现 利用建立模 型的方式 开发嵌入 式应 用程序 , 究基 于 S uik的嵌 入式 研 ml n

模型驱动的嵌入式仿真系统设计

模型驱动的嵌入式仿真系统设计

—237—模型驱动的嵌入式仿真系统设计李秀萍,董云卫(西北工业大学计算机学院,西安710072)摘 要:为解决嵌入式系统仿真应用需求多样性的问题并提高系统的开发效率,设计一种通用嵌入式仿真系统。

该系统在Matlab/Simulink 开发环境的基础上,采用模型驱动的方法设计仿真模型并构建仿真组件库,实现了仿真系统模型的快速建立。

同时设计了多接口、可扩展的仿真器硬件结构,解决了嵌入式系统接口的多样性问题。

该仿真系统具有良好的可重用性和可移植性等特点,可用于多种嵌入式软件的开发,具有现实意义。

关键词:仿真系统;模型驱动架构;仿真模型;组件库Design of Model-Driven Embedded Simulation SystemLI Xiu-ping, DONG Yun-wei(College of Computer, Northwestern Polytechnical University, Xi’an 710072)【Abstract 】In order to solve the problem of diverse simulation application and improve the efficiency of development, a general simulation system for embedded software is designed, which adopts Model-Driven Architecture(MDA) development to construct simulation model for embedded system simulation based on the Matlab/Simulink. A simulation component library is built to achieve rapid establishment of the simulation system model. Extensible hardware of simulator is designed to fit variable I/O interfaces of the embedded system. The system has some strong advantages,such as reusability, portability, and can be used in the development of various embedded software.【Key words 】simulation system; Model-Driven Architecture(MDA); simulation model; component library计 算 机 工 程Computer Engineering 第36卷 第16期Vol.36 No.16 2010年8月August 2010·工程应用技术与实现·文章编号:1000—3428(2010)16—0237—03文献标识码:A中图分类号:TP391.91 概述嵌入式系统是面向具体应用领域的特定软硬件的紧密结合体。

基于模型驱动的嵌入式系统设计与实现技术研究

基于模型驱动的嵌入式系统设计与实现技术研究

基于模型驱动的嵌入式系统设计与实现技术研究近年来,随着科技的不断进步和嵌入式系统应用范围的不断扩大,模型驱动的嵌入式系统设计与实现技术逐渐受到人们的重视。

该技术在开发过程中,将系统设计和实现分离开来,提高了系统开发的效率和质量。

本文将着重探讨模型驱动的嵌入式系统设计与实现技术的原理、实现方法以及应用情况。

一、模型驱动技术的原理模型驱动技术是一种基于模型的软件设计方法,它将系统设计和开发过程中的实现环节解耦,将系统设计和实现分离开来。

模型驱动技术的基本原理是:通过生成或者转换模型来自动化生成代码和其他相关文档。

具体来说,模型驱动技术是通过创建、维护和使用抽象的模型来引导和实现应用程序系统的开发和维护。

具体地说,模型驱动技术的模型是基于建模语言描述的,一种建模语言最小的元素是元模型,元模型是该语言的一种元语言,包括了该语言的基本概念、结构、关系和语法等。

模型驱动开发过程中的模型可以通过模型框架、模型转换、模型合成等技术来进行处理,而且这些技术的实现是基于模型驱动的,与具体模型语言无关。

二、嵌入式系统设计与实现技术的原理嵌入式系统是指嵌入在其他设备中的一种计算机系统。

嵌入在其他设备中的计算机系统都是需要专门进行设计和开发的,其关键问题之一是如何提高开发效率和降低开发成本。

模型驱动技术正是解决这类问题的一种有力方法。

嵌入式系统设计与实现技术主要包括以下几个方面:(1)应用领域:嵌入式系统设计与实现技术广泛应用于工业控制、汽车电子等领域。

(2)应用设备:嵌入式系统设计与实现技术主要应用于单片机、微处理器等嵌入式设备。

(3)开发环境:嵌入式系统设计与实现技术采用特定的模型语言和工具支撑开发环境。

嵌入式系统设计与实现技术所使用的模型语言通常是特定的领域语言(DSL),这些语言具有专门为嵌入式系统设计和实现所优化的特性。

(4)开发流程:嵌入式系统设计与实现技术的流程通常包括建模、代码生成、测试等步骤。

其中,模型建立是嵌入式系统设计与实现技术最为关键的一步,通过模型建立,可以将所要实现的嵌入式系统描述成一系列的模型,从而为后续的代码生成和测试等工作提供必要的信息和支持。

基于Rhapsody的8 bit MCU嵌入式系统软件设计

基于Rhapsody的8 bit MCU嵌入式系统软件设计

00 l 一 _ __i
( 2) 作 为 示 意 图 和 蓝 图 的 模 型 利 用 模 型 来设 计软 件 是 一个 公 认 的 实 践 。 目前 ,模 型大 多 用 于 通 俗 地 传 达 系统 某 个 方 面 的 示 意 图 ,或 用 于 描 述 手 动 实现 的 详 细 设 计 的 蓝 图 。将 模 型 作 为 文 档 和 规 范是 有价 值 的 , 是这 需 要 严 格 的 规 程 来 但
M D 能 够 极 大 地 减 少 解 决 方 案 的 成 D
本 ,通过 自动 化带 有转 换的 实现 模式 来 形 成 的 ,它消 除 了重复 的低 层次 开发 工 作 ,并 且 提 高 解 决 方 案 的 一 致 性 和 质
的模 型表 现方 式 ,在 模型的 代码 生 成阶 段根 据配 置属性的 不同生成不 同的代码 。
持 UML . rf e 关 键 特 性 。 2 0 P oi 等 l
1 2应 用 I .
动开 发生成代码连接 I P c a e DF a k g 。 ( 操 作 系 统 方 式 ( Pe t n 3) O a i r 0
S s m rme r ) yt e F a wo k
( 4)MDD项 目估计任务
M DD 对 我 仃构 建 业 务 应 用 软 件 的 方 J 式 有 着 深 远 的 影 响 。 由 于 大 量 的 低 层 次 编 码 工 作 已 经 自动 化 了, 所 以 开 发 的 成
和交流 。适 合做 系统 建模 ,增 强了 实时 建模在 调度 、性 能 、时 间上 的扩 展 ,支
确保模型与实现进度保持一致 。通常时 间
约 束 意 思 是 在 没 有 首 先 变 更 模 型 的 情 况 下 ,对 实 现 进 行 了更 新 。 ( )利 用 准 确 的 模 型 进 行 自动 生 成 3

模型驱动的嵌入式系统设计

模型驱动的嵌入式系统设计
所 有设计 人 员通过 观察 嵌 入 式 系 统 对 外部 的反 应 , 都 可 以了 解 基 本 的任 务 内 容 。 因 此 在 这 个 层 面 上
合 失误 或 者 接 口出 现 偏 差 等 是 出 现 很 多 问 题 的
根源。
目前 O MG( 制订 U L标 准 的组织 ) I C S M 和 N O E合作
基于 U ML制 订 了系 统 建 模 语 言 S s ( 本 上 是 yML 基
如 果想 控制 好嵌 入 式 系统 的整 个 研 制 过 程 , 就 需 要控 制 好 各 个 部 分 的 研 制 过 程 。各 专 业 领 域 人
域 的设 计 师 相 互 配 合 才 能 够 完 成 。如 果设 计 过 程 完 全采用 瀑布 模式 的开 发 方 式 , 些设 计 师 的设 计 这 成果 只 会在最 后 的 系统 实 现 阶 段 进行 系统 集 成 , 这
时 大量 系 统 集 成 的 问 题 才 能 出 现 。而 上 层 需 求 定 义不明、 理解 偏 差 、 求 遗 漏 以及 不 同 领 域 之 间 配 需
于非 功 能 的 描 述 , 如 一 些 系 统 约 束 , ML 和 例 U
Ss yML的机 制还很 难 支持 。 本 文 中 , 述 了在 嵌 入 式 系 统 的 自顶 而下 的设 描 计 中, 如何 采用 模 型 辅助 产 品 的开 发 。其 中最 重 要 的一 点 就 是 , 何 将 模 型 、 求 规 格 以 及 I D结 合 如 需 C 起来 驱动嵌 入式 系统 的设 计 。
维普资讯
维普资讯
第 1 期
吴 一 帆 等 : 型 驱 动 的嵌 入 式 系 统 设 计 模
・6 1・
尽 管部 分 领 域 能 够 建 立 模 型 进 行 早 期 验 证 或 者提供 平 台进行 交 流 , 是 嵌 入 式 系统 的 大部 分 设 但

嵌入式软件模型化开发

嵌入式软件模型化开发

嵌入式软件模型化开发随着现今社会的进步和发展,嵌入式系统开发经逐步面临着市场需求多样性与开发实现快速性之间的矛盾。

然而传统的嵌入式系统开发模式,从需求分析、设计、实现到测试的顺序开发过程中由于开发环节较多、中间文档较多,常导致各开发环节之间的衔接存在很大的不确定性和潜在的遗漏危机,一旦在最终实现和测试阶段出现了明显的错误或是需求不满足的情况,则无法进行跨越阶段的重复设计,只能从头开始设计和实现,这样将无法满足市场对产品开发周期的快速性需求,使嵌入式系统开发陷入设计瓶颈。

目前,依靠手工编程的设计流程已经很难胜任新的开发需求,而且通过手工编写的代码容易产生程序缺陷。

查找和解决这些问题不仅要花费大量的人力和时间,有时甚至会导致软件的重新开发。

特别是在对安全系数要求较高产品上,出现程序缺陷会直接关系到人身安全。

因此,近几年汽车电子行业的一些龙头企业已经通过代码自动生成的方法逐步取代了传统开发模式下的手工编程,收到了良好的效果[1],这就是模型化的嵌入式软件开发方法。

一、基于模型的设计方法1.1基于模型设计思想简介基于模型的设计(Model Based Design),就是在系统的设计过程之中,所有信息传递、工作的核心与基础都是若干模型,所有工程师都利用同一的模型完成自己关注的开发任务。

如今基于模型的设计思想已经被大家广泛的认可,基于模型的设计流程使用的是框图化开发环境,系统开发工程师在这个环境中构建嵌入式系统的可执行模型。

1.2 传统设计方法与基于模型设计方法的对比1 传统设计方法的缺陷传统的开发手段是自顶向下、逐步细化的“瀑布式”开发手段,如图1所示。

图1嵌入式系统传统设计方法在传统的设计过程中,不同类型的工程师彼此交换自己的设计成果,逐步细化设计任务,直到完成最后的产品。

这种自顶向下的开发流程具有快速便捷、易于实现的特点。

但是,随着嵌入式系统本身复杂程度的增加以及设计研发周期缩短和市场的压力等诸多原因,传统的设计开发手段逐渐暴露出许多问题。

软件工程中的模型驱动开发

软件工程中的模型驱动开发

软件工程中的模型驱动开发软件工程领域中,模型驱动开发(Model-Driven Development,MDD)是一种以模型为核心的开发方法。

该方法通过将软件系统的不同视图以及各个层次的抽象模型进行统一管理和描述,从而提高开发过程中的效率和可靠性。

本文将介绍模型驱动开发的基本概念、核心原理以及应用情况。

一、基本概念在软件工程中,模型是对软件系统的抽象描述。

模型具有层次性、可扩展性和形式化等特点,是对现实世界或系统的简化和抽象。

模型驱动开发通过建立和维护模型来推动软件开发过程。

1. 模型模型是对系统进行抽象和描述的产物,可以是概念模型、业务模型、数据模型、功能模型等。

模型可以用图形、符号、代码等形式进行表示,其中类图、时序图、活动图、状态图等是常用的建模语言和工具。

2. 驱动驱动是指通过模型推动软件开发过程的过程和手段。

驱动可以是模型转换、代码生成、验证验证等,它们通过自动化工具和技术实现对模型的转换和计算。

二、核心原理模型驱动开发的核心原理是通过对模型的定义、转换和生成来实现软件的开发。

具体来说,模型驱动开发包括模型定义语言(Model Definition Language,MDL)、模型转换技术和模型生成技术。

1. 模型定义语言(MDL)模型定义语言是一种形式化语言,用于描述系统的各个视图和层次的模型。

MDL可以是通用的建模语言,如UML,也可以是领域专用语言(Domain-Specific Language,DSL),如MATLAB、Simulink等。

2. 模型转换技术模型转换是将一个模型转换为另一个模型或者代码的过程。

模型转换技术包括模型变换、模型合成、模型映射等,可以通过模型转换规则和模板来实现。

模型转换技术可以实现模型之间的相互转换和模型到代码的转换。

3. 模型生成技术模型生成是将模型转换为可执行的软件系统的过程。

模型生成技术通过模型到代码的转换,可以自动生成软件系统的源代码、配置文件、数据库脚本等。

基于模型驱动的软件开发方法

基于模型驱动的软件开发方法

基于模型驱动的软件开发方法随着软件开发的不断进步和发展,人们越来越需要更为高效和有效的软件开发方法来提高生产效率和软件质量。

基于模型驱动的软件开发方法就是一种现代化的技术方法,以模型为基础,通过一系列自动化的工具和技术,实现软件开发过程的自动化和可重用,提高软件开发效率和质量。

一、模型驱动方法的概念和特点模型驱动的软件开发方法是基于模型的一种开发模式和技术方法,该方法将软件开发过程中的所有信息和数据抽象为模型,然后通过自动化的工具和技术,将这些模型转换为实际代码和软件结构。

模型驱动方法的主要特点是能够高度模块化和可重用,使得软件开发人员可以快速的创建和组合模型,从而搭建出各种自动化软件开发流程和开发工具,避免人为的重复劳动和浪费。

二、模型驱动方法的应用场景现在,越来越多的企业开始采用模型驱动的软件开发方法,这种方法在不同场景下有着广泛的应用,如:1、嵌入式软件:在嵌入式软件开发中,模型驱动的开发方法可以大大提高开发效率和质量。

嵌入式系统通常涉及到的硬件和软件交织在一起,工作在特定的硬件平台上,采用模型驱动的方法可以更好地管理这些相互之间的依赖关系。

2、Web应用程序:在Web开发中,模型驱动的方法可以使开发人员快速生成所需要的代码和相关资源。

模型驱动方法将所有必须的信息和数据都封装在模型中,使得开发人员能够更好地控制代码的工作流程和结构。

3、企业信息系统:企业信息系统通常集成了多个应用,包括财务、人力资源、营销和销售等多个方面。

模型驱动的方法可以更好地管理这些复杂系统,并更快地实现与不同业务部门的交互。

三、模型驱动的软件开发方法的优势模型驱动的开发方法具有以下优势:1、快速生成代码:模型驱动的方法可以将模型转换为代码,从而大大缩短了开发时间并提高了软件质量。

2、快速重构:在传统的软件开发过程中,如果需要重构代码,必须耗费人员和时间。

但在模型驱动的方法中,只需要更改模型,就可以快速地生成所需的代码。

基于AADL和SCADE的模型驱动软件设计

基于AADL和SCADE的模型驱动软件设计

第18卷 第6期太赫兹科学与电子信息学报Vo1.18,No.6 2020年12月 Journal of Terahertz Science and Electronic Information Technology Dec.,2020文章编号:2095-4980(2020)06-1117-05基于AADL和SCADE的模型驱动软件设计刘芮滦,邓杨,龚彬(中国工程物理研究院电子工程研究所,四川绵阳 621999)摘 要:模型驱动开发逐渐应用于嵌入式系统的软件设计,在软件设计阶段重点关注的是软件的架构模型和详细功能模型。

用于嵌入式系统软件建模的语言和工具很多,其中结构分析与设计语言(AADL)模型可以构建嵌入式软件的架构,高安全性应用开发环境(SCADE)模型可以描述嵌入式软件的逻辑功能,将两者统一使用可以满足嵌入式软件概要设计和详细设计的建模需求。

针对某飞行器控制系统,本文分别使用AADL和SCADE对飞行器控制系统软件架构和功能进行建模,利用KCG工具从SCADE模型自动生成C代码,通过手工代码和自动生成代码的集成完成控制系统部分软件设计。

实际应用表明,采用AADL和SCADE相结合的建模方法适用于模型驱动开发在嵌入式软件设计中应用。

关键词:AADL模型;SCADE模型;模型驱动开发;嵌入式系统;自动代码生成中图分类号:TN967.6;TP391.9文献标志码:A doi:10.11805/TKYDA2019233Model driven software development based on AADL and SCADELIU Ruiluan,DENG Yang,GONG Bin(Institute of Electronic Engineering,China Academy of Engineering Physics,Mianyang Sichuan 621999,China)Abstract:Model-driven design has been used in embedded system software design. The software architecture model and detailed functional model are the focuses in the software design stage. There aremany languages and tools for the embedded system software modeling. The architecture of embeddedsoftware can be built by the Architectural Analysis and Design Language(AADL) model, and the logicfunction of embedded software can be described by the Safety Critical Application DevelopmentEnvironment(SCADE) model. The integration of the two models can meet the modeling requirements ofoutline design and detailed design of embedded software. AADL and SCADE are adopted to model thearchitecture and function of the software of an aircraft control system, KCG tool is utilized to auto generateC code from SCADE model, and the aircraft control system software is partly designed through theintegration of handmade and auto-generated codes. Actual application indicates that AADL associatedwith SCADE is suitable for model-driven design applied in the embedded software design.Keywords:AADL;SCADE;model-driven design;embedded system;auto code generation随着科技的进步,嵌入式系统的应用已无处不在,嵌入式软件开发方式也得到长足发展。

嵌入式系统设计方法

嵌入式系统设计方法

嵌入式系统设计方法以下是几种常见的嵌入式系统设计方法:1. 瀑布模型(Waterfall Model):瀑布模型是一种经典的软件开发方法。

在嵌入式系统设计中,瀑布模型的关键是明确规定系统需求,并将其分解为各个开发阶段。

这些阶段包括需求分析、系统设计、编码、测试和维护等。

瀑布模型适用于需求明确、稳定的项目。

2. 快速原型模型(Rapid Prototyping Model):嵌入式系统的设计往往需要尽快验证概念和功能。

快速原型模型是一种迭代的开发方法,通过建立原型系统来尽快探索设计空间。

在快速原型模型中,开发人员可以快速实现和验证系统的关键功能和特性。

3. 面向对象方法(Object-Oriented Method):面向对象方法是一种基于对象和类的软件设计方法。

在嵌入式系统中,面向对象方法可以更好地组织和管理系统组件,提高代码的重用性和可维护性。

通过使用面向对象方法,设计人员可以更好地实现系统的模块化和抽象。

4. 面向模型方法(Model-Based Method):面向模型方法是一种通过建立和分析系统模型来设计系统的方法。

这些模型可以提供对系统性能、资源利用率和可靠性的预测。

常用的面向模型方法包括系统仿真、模型检验和优化等。

面向模型方法可以提早发现和解决系统设计中的问题。

6. 实时系统设计方法(Real-Time System Design Method):实时系统的设计要求系统能够在给定的时间约束下完成任务。

实时系统设计方法主要关注系统的时间性能,包括任务调度、事件处理和资源管理等。

常用的实时系统设计方法包括周期调度、优先级调度和事件驱动调度等。

7. 面向服务方法(Service-Oriented Method):面向服务方法是一种基于服务的系统设计方法,将系统功能划分为多个服务,并通过服务接口进行通信和交互。

面向服务方法可以提高系统的可扩展性和灵活性,适用于大规模和分布式嵌入式系统的设计。

嵌入式系统的通用网络驱动模型设计与实现

嵌入式系统的通用网络驱动模型设计与实现

De i n a d I p e e t to fGe e a t r i e sg n m l m n a i n o n r l Ne wo k Drv r M o e d l n Em b d e y t m s i e d d S se
Ⅵ NG M i n
供 一 个较 为 完整 的 网络 驱 动模 型 。从 而 使得 网络 驱 动 程 序 的设 计 较 为 复 杂 ,每 次 开 发 的代 码 其 可 重 用 性较 差 。本 文 基 于 P ip S 网络 驱 动 程 序 开 发 的 基 础 上 , 尝试 提 出 了一 种 独 立 于操 作 系统 的 网络 驱 动 程序 设 计 通 用模 型 ,以 hl sD P i
Ab ta t T eeaen r vso so rlt eyitgae rv r d l ymot f mb d e p rto y tmsi mb — sr c : h r r op o iin f ai l e rtddie ae v n mo e s e d do eains se e e b oe n
V O. O N 0 4 13 . De . 0 c 20 7
嵌入式 系统 的通用 网络驱 动模型设计 与实现
王敏
( 南京 邮电大学 图像处理与 图像通信 江苏省重点实验室 ,南 京 2 0 ) 03 1 0

要 :在嵌入 式 系统设计 时,不 同厂 家的 DS P通常对应有不 同的操作 系统 ,而 大多数嵌入 式操作 系统都没有提
(rvne e a n m g P oes g& ma e o u i t n N ni nvri f P oic K yL b I a e rcsi I g C mm nc i , ajn o n ao gU iesyo t P s n lcmm n ain N ni 10 3 ota dT eo u i t , ajn 2 0 0 ) s e c o g
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

空间控制技术与应用Aerospace Con tro l and Applicati o n 第34卷 第1期2008年2月模型驱动的嵌入式系统设计吴一帆,张毅玲,周世安(北京控制工程研究所,北京100080)摘 要:随着嵌入式系统设计周期越来越短,功能越来越复杂,越来越多领域的设计人员参与设计,市场需求导向致使需求变更越来越多,以传统文档形式的需求来驱动开发已根本不能满足时间和成本方面的要求。

本文提出了采用可执行模型、动态需求规格和接口控制文档共同作用的驱动嵌入式系统设计方法,它能够较好地满足目前系统设计的要求。

在文中,我们首先介绍了当前嵌入式系统设计中存在的一些问题,然后介绍了模型驱动设计的方法、语言和优点,并对动态需求规格和接口控制文档的执行给出了建议,最后得出模型驱动的嵌入式系统设计是一种行之有效途径的结论。

关键词:模型驱动;统一建模语言;动态需求规格;接口控制文档中图分类号:TP3 文献标识码:A 文章编号:1674 1579(2008)01 0060 05M ode lD ri ven Em bedded Sy ste m D eve l op m entWU Y ifan,Z HANG Y ili n g ,ZHOU Sh ian(B eijing Institute o f Control Engineeri n g,B eijing 100080,China)Abst ract :This paper presen ts a m e t h od for developm ent of e m bedded syste m s .It addresses issues ho w to desi g n a m ulti technolog ies syste m w ith he l p o fm ode,l specs and interface contro l docum ents(I C D ).Theex isti n g proble m s w ith the desi g n are first analyzed .Then the paper addresses the issues that m ode,l acti v e specs and I CD can drive the deve l o pm ent o f e m bedded syste m s effectively during t h e design phase .F i n all y ,so m e usef u l conclusions for t h e e m bedded syste m developm en t driven by m odel are g i v en .K eyw ords :m ode l dri v en ;UM L ;active spec ;I CD收稿日期:2007 12 09作者简介:吴一帆(1972-),男,四川人,高级工程师,研究方向为电子线路设计(e ma i:l w uy @f bice .org .cn)。

1 引 言目前嵌入式系统设计越来越复杂,已经涉及到计算机系统、电子、电气、信号处理、自动控制、软件以及机械设计等多个领域。

这些领域的设计师共同合作才能完成任务,同时还要兼顾成本、时间和可靠性等多个方面的约束。

对于这类涉及到多个专业领域的系统研制,其中一个很大的风险就是各个专业领域的设计人员往往只擅长本领域的知识,而却对其他专业领域了解较少,因此各个接口之间很容易出现错误,尤其在系统设计经常出现变更的情况下,这种问题更为严重。

针对这些问题,在嵌入式系统设计中往往采用迭代的开发方式,这些方式采用基于模型的方法进行预先验证。

例如硬件设计师采用saber 、pSpice 等仿真器或者面包板等工具对硬件产品或部分电路进行预先实现和测试。

机械设计师采用支持三维模型的设计工具进行设计,并通过三维模型与其他领域设计师进行交流。

通过这种方式,设计师预先就可验证并且同时提供用于共同交流的平台,能够有效地降低研制过程的风险。

60第1期吴一帆等:模型驱动的嵌入式系统设计尽管部分领域能够建立模型进行早期验证或者提供平台进行交流,但是嵌入式系统的大部分设计领域却缺少实现这种方式行之有效的途径。

文献[1]中提到可以借助统一建模语言(UML)或系统建模语言(Sys ML)的高度抽象能力建立系统模型,但似乎过于重视这种模型的应用,实际上对于非功能的描述,例如一些系统约束,UML和Sys M L的机制还很难支持。

本文中,描述了在嵌入式系统的自顶而下的设计中,如何采用模型辅助产品的开发。

其中最重要的一点就是,如何将模型、需求规格以及I CD结合起来驱动嵌入式系统的设计。

2 问题描述与定义实现一个复杂的嵌入式系统,需要多个设计领域的设计师相互配合才能够完成。

如果设计过程完全采用瀑布模式的开发方式,这些设计师的设计成果只会在最后的系统实现阶段进行系统集成,这时大量系统集成的问题才能出现。

而上层需求定义不明、理解偏差、需求遗漏以及不同领域之间配合失误或者接口出现偏差等是出现很多问题的根源。

如果想控制好嵌入式系统的整个研制过程,就需要控制好各个部分的研制过程。

各专业领域人员对于一个嵌入式系统理解是不同的(视图不同)。

硬件设计人员熟悉的嵌入式系统是硬件电路;软件设计人员熟悉的嵌入式系统即嵌入式软件;而系统设计者熟悉的则是各种算法以及各种控制逻辑的结合体。

所有设计人员都认可的是系统物理外观及动态行为 嵌入式系统通过外部事件作用和条件变化,改变自身状态,并完成对外部的反应。

所有设计人员通过观察嵌入式系统对外部的反应,都可以了解基本的任务内容。

因此在这个层面上视图是统一的,进行交流是最有效率的。

3 模型驱动设计从以上分析可以看到,嵌入式系统在顶层进行建模十分必要。

实际上很长时间以来,在顶层设计中,针对自动控制和信号处理应用都会采用算法工具建立模型,验证设计方案是否正确。

但是一个嵌入式系统一般不会仅仅由算法构成,往往是算法(顺序工作方式)和逻辑(应激工作方式)的结合体,需要用静态结构和动态行为对模型进行描述。

目前的顶层模型往往仅是基于算法和静态结构模型,针对系统动态行为 例如控制逻辑缺乏有效的方法进行描述。

在顶层利用语言描述任务,这种语言需要具备两个特点:一是需要有较高的抽象能力;一是应当具备相当严格的语义。

具备较高的抽象能力才能帮助设计人员对系统和问题进行有效地描述,例如采用C++/HDL这样的语言描述系统不但繁琐,而且涉及到实现细节以至于干扰正常设计工作。

采用自然语言描述系统,尽管其抽象的能力可以很高,但是语义却很难做到严格,因此完全采用自然语言描述系统往往存在二义性或者不完备性,并且难以验证,对系统设计的合理性帮助不大。

完全采用形式化的语言如Z语言提出需求规格,尽管语义严格,但是较为晦涩,推广有较大的难度。

UML从1997年确立为标准以来,经过10年的发展已经升级至UML2.1。

尽管最初其应用的主要对象是软件设计,但是随着应用越来越广泛和逐渐发展成熟,已经开始进入到硬件及系统设计领域。

目前OMG(制订UM L标准的组织)和I NCOSE合作基于UM L制订了系统建模语言Sys ML(基本上是UML的子集)语言,UM L/Sys M L俨然成为了系统设计主流语言之一。

UML是一种基于图形的语言,包含了13种形式化和非形式化的图形,可以用来描述静态结构和动态行为。

例如设计者可以采用UM L中的用例图(U se Case)对需求分析的结果进行规格化说明;采用类图、复合结构图和部署图进行系统级静态结构描述;此外可以采用活动图、时序图以及状态图进行系统的动态行为描述。

UM L具有很高的抽象能力,例如如果采用文字对某一个通讯方式进行描述,可以写成如下方式:系统每30m s进行一次通讯,通讯成功后,错误计数器清零,设置速率更新标志为真;如果通讯失败,在错误计数器计数为零的情况下,进行串口初始化,并且计数器计数递增一次,如果计数器不为零,则计数器计数同样递增一次,0.5m s后再次通讯,当错误计数器计数大于5时,系统不再进行通讯,同时关闭时钟中断。

图1为采用UML中的状态图描述系统进行通讯的动态行为。

采用状态图形式的模型可视性!61空间控制技术与应用34卷大大增强,而且由于状态图是一种形式化的描述方式,因此可以相当严格地描述系统动态行为。

同时由于是形式化描述,就可以采用形式化验证技术和工具,在不输入任何测试向量的情况下对系统进行测试,可以发现逻辑上出现的死锁或者未达状态等问题。

图1 通讯状态图再以状态图为例说明UM L的描述能力,状态图支持并发!和层次!,状态并发!可以降低状态爆炸的可能性,而层次!则可以隐藏底层复杂的逻 辑,因此可以描述非常复杂的动态行为。

如图2所示,它描述的是一个电子控制系统中某一个部件的一个工作状态,这个控制逻辑如果采用文字形式进行描述,要表达清楚则非常困难。

UML不适合描述算法,因此将擅长描述算法的语言与UML结合构建模型是一种极佳的选择。

文献[2]采用s语言(si m uli n k支持)和UM L以及快速原型工具进行联合完成电机控制器顶层的建模工作。

在模型中由si m ulink完成闭环算法,而采用基于UML的工具rhapsody完成控制以及故障处理逻辑的设计,快速原型工具提供命令面板和仪表。

电机控制器模型虽然包含算法和控制逻辑,但是都已经通过快速原型工具封装在一起,通过面板接受外部的命令,通过仪表向外部设计人员显示电机工作状态。

通过这种方式建立模型,就可以以一种整体概念面向设计者,从而使所有参与工作的设计人员从中获得感性认识,并和顶层设计人员就各种问题进行有效的沟通。

顶层设计人员实际上建立的是一个与平台无关的模型(PI M),通过模型可以进行各种方案的尝试,划分子系统,同时向子系统提出需求。

图2 复杂状态图例在一个复杂的嵌入式系统研制过程中,为了便于管理和实现,往往需要将系统分解为多个子系统并行开发。

在进行系统划分的过程中,一般会根据系统功能以及专业进行划分,而此时由于出现跨域的策划和需求,如果仅依据文档即便是进行交流,其效率仍然比较低。

因此顶层设计人员将模型分配给各个专业领域的设计人员,由他们对模型进行细化,实际上这也正是子系统的设计人员进行需求分析和设计的过程。

子系统的设计人员可以根据经验、需求和各种约束,进一步细化模型的静态结62第1期吴一帆等:模型驱动的嵌入式系统设计构和动态行为,将完成细化后的这一 虚拟产品!重新提交给顶层设计人员所构造的模型环境中进行验证。

这样不但可以尽早发现过去可能只在集成时发现的问题,并且在需求或设计发生变更时,设计人员还可以快速对影响域进行评估。

相关文档
最新文档