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

空间控制技术与应用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)。
基于嵌入式计算机原理仿真系统设计

基于嵌入式计算机原理仿真系统设计嵌入式计算机是目前应用最广泛的一种计算机系统,其在电子设备、通信设备、智能家居等领域中有着广泛的应用。
为了更好地理解嵌入式计算机的原理和内部结构,设计一个嵌入式计算机原理仿真系统是很有必要的。
下面将详细介绍这个仿真系统的设计。
首先,设计嵌入式计算机原理仿真系统需要明确仿真的目标和原则。
考虑到嵌入式计算机的应用广泛性,仿真系统应该具备一定的通用性,能够模拟多种常见的嵌入式计算机结构和原理。
同时,仿真系统应该具备直观的图形界面和友好的用户体验,方便用户进行交互和操作。
为了实现这一目标,可以选择使用面向对象的软件开发方法,设计出一个模块化的系统结构。
其次,仿真系统应该模拟嵌入式计算机的硬件结构和指令执行过程。
对于硬件结构的模拟,包括中央处理器(CPU)、存储器、输入输出设备等的模拟。
可以使用虚拟化技术来实现这种模拟,通过软件层面上的虚拟硬件来模拟真实的硬件设备。
在模拟CPU时,需要考虑指令集和指令执行过程,包括指令的解码、寄存器的读写、数据的传输等。
第三,仿真系统应该提供嵌入式开发环境的支持。
嵌入式计算机的开发需要使用特定的软件开发工具集,如编译器、汇编器、调试器等。
仿真系统可以提供一个集成了这些工具的软件开发环境,方便用户进行嵌入式软件的开发和调试。
此外,仿真系统还应该支持嵌入式操作系统的模拟,比如Linux、FreeRTOS等。
用户可以在仿真环境中运行和调试嵌入式操作系统,测试其在不同硬件平台上的性能和稳定性。
最后,仿真系统还应该提供一些实验案例和教学材料,帮助用户更好地学习和理解嵌入式计算机的原理。
这些案例可以涵盖嵌入式软件开发、嵌入式操作系统、嵌入式应用等方面的内容,通过具体的实验操作和教学材料,帮助用户深入了解嵌入式计算机的原理和应用。
总结起来,基于嵌入式计算机原理的仿真系统设计需要考虑系统的通用性、模拟的准确性和用户体验。
通过模拟硬件结构和指令执行过程,提供嵌入式开发环境的支持,以及提供实验案例和教学材料,可以帮助用户更好地学习和理解嵌入式计算机的原理,并在实际应用中能够熟练运用。
嵌入式系统驱动软件的设计与实现

嵌入式系统驱动软件的设计与实现嵌入式系统驱动软件的设计与实现是在嵌入式系统开发过程中非常重要的一环。
嵌入式系统驱动软件负责控制硬件设备,并与操作系统和应用程序交互,为系统提供各种功能和服务。
本文将重点介绍嵌入式驱动软件的设计原则和实现方法,并探讨几个实际案例。
在设计嵌入式系统驱动软件时,首先需要考虑硬件设备的特性和功能需求。
了解硬件设备的工作原理、通信接口和规格要求,对于驱动软件的设计至关重要。
此外,在设计过程中还应考虑到系统的性能和资源利用效率,以实现系统的高效运行。
接下来,需要选择适合的驱动软件架构。
常见的嵌入式系统驱动软件架构包括简单驱动程序、控制器驱动程序和设备驱动程序等。
在简单驱动程序架构下,驱动程序主要由处理硬件设备的基本功能和数据传输等操作组成。
这种架构适用于硬件设备功能较简单、驱动程序规模较小的情况。
控制器驱动程序架构在简单驱动程序的基础上增加了对硬件设备的控制逻辑。
驱动程序负责处理硬件设备的各种状态、配置和控制信息,以实现设备的灵活控制。
这种架构适用于硬件设备功能较为复杂、需要进行详细配置和控制的情况。
设备驱动程序架构是一种分层设计的方法,将硬件设备的各个功能模块分别封装成不同的驱动程序。
每个驱动程序负责处理特定的功能或服务,通过通信接口进行数据传输和交互。
这种架构适用于硬件设备功能较为复杂、需要分时共享资源的情况。
在实现嵌入式系统驱动软件时,可以采用面向对象的设计方法。
面向对象的设计具有模块化、可重用性和易于维护的优点。
通过将驱动软件划分为不同的对象、类和函数,可以提高软件的可扩展性和可重用性。
同时,使用适当的设计模式和规范的编码风格,有助于提高代码的可读性和可靠性。
此外,在实际的开发过程中,还应注意以下几点:1. 严格遵守硬件设备的规格和接口要求,确保驱动软件与硬件设备完全兼容。
2. 优化代码结构和算法,提高软件的执行效率和性能。
3. 进行充分的测试和验证,确保驱动软件的功能和稳定性。
基于模型驱动的实时嵌入式系统

基于模型驱动的实时嵌入式系统赵勇;陈香兰【摘要】随着实时嵌入式系统的功能越来越复杂,现有的软硬件分离、软硬件协调等实时系统设计方法已经无法满足其系统实现的要求.本文根据模型驱动开发架构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]。
基于嵌入式操作系统的机器人驱动控制模型算法设计

基于嵌入式操作系统的机器人驱动控制模型算法设计机器人运动系统式一套高复杂性、高耦合性、驱动力小于机体物理自由度的非线性系统,为了实现机器人在空间中稳定的运动姿态控制,本设计把机器人运动系统在空间中的运动形式等效成了旋转倒立摆模型,基于该模型的运动特点,分别设计了速度闭环控制算法和角度闭环控制算法,通过双闭环控制算法来实现对空间中旋转倒立摆的稳定控制。
开发环境硬件:该设计硬件依托于ART-PI开发平台,主控芯片采用STM32H750高性能单片机,同时采用TB6612芯片作为旋转倒立摆的 动力驱动,采用霍尔传感器作为速度采集,采用高 电位器作为摆臂角度采集传感器,采用OLED屏幕来进行参数的显示,与实时调整。
RT-Thread版本:RT-Thread版本采用4.0.2开发工具及版本:mdk5.32版本RT-Thread使用情况概述本设计采用rt-thread4.0.2master版本,用到了该操作系统的全内核、FinSH控制台交互,SPI驱动、ADC驱动、编码器驱动、PWM驱动等相关系统驱动,并且编写了双闭环PID控制算法。
软件框架说明本设计硬件平台基于ART-PI, 部分已经固定,针对旋转倒立摆机械部分,其结构如下图所示:软件模块说明本设计 关键的部分是PID算法的实现,针对倒立摆的运动特点,进行了优化与调整,PID算法的实现基于经典控制理论中线性控制的理论基础: 在工程实际中,应用 为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节[6]。
PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
当被控对象的结构和参数不能完全掌握,或得不到 的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,在积分控制中,控制器的输出与输入误差信号的积分成正比关系。
对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。
基于模型驱动的嵌入式软件自动化测试平台实现的开题报告

基于模型驱动的嵌入式软件自动化测试平台实现的开题报告一、选题背景现代嵌入式系统普遍采用了复杂的软件框架和算法,为了保证嵌入式软件的正确性和可靠性,需要进行大量的软件测试工作。
传统的手动测试方式存在测试效率低、测试难度大、测试结果不一致等问题,为了解决这些问题,基于模型驱动的嵌入式软件自动化测试平台应运而生。
二、研究目的与意义本研究的主要目的是设计一种基于模型驱动的嵌入式软件自动化测试平台,通过对嵌入式软件进行自动化测试,提高测试效率、保证测试质量、减少测试成本。
具体来说,本研究将探索以下几个方面:1.研究基于模型驱动的嵌入式软件设计方法,建立软件模型,为测试工作提供基础。
2.设计嵌入式软件测试用例生成和执行系统,自动化执行测试用例,收集测试结果。
3.依据测试结果,设计嵌入式软件测试报告生成系统,提供测试结果分析,并推出改进意见。
三、技术路线针对以上研究目的,本研究将采取以下技术路线:1.采用模型驱动设计方法,建立模型化的嵌入式软件设计框架。
2.设计测试用例生成和执行系统,通过对软件模型的分析,自动生成测试用例,并将测试用例自动化执行。
3.设计测试结果收集和分析系统,收集测试结果,针对测试结果分析,推出改进意见。
4.设计测试报告生成系统,将测试结果分析进行整合,生成测试报告。
四、研究预期成果通过本研究,将实现一个基于模型驱动的嵌入式软件自动化测试平台。
该平台将具有以下特点:1.支持模型驱动的嵌入式软件开发方法。
2.自动化生成嵌入式软件的测试用例和执行流程。
3.自动化收集和分析测试结果,并生成测试报告。
4.提高嵌入式软件测试效率、保障测试质量、降低测试成本。
五、研究难点1.如何将模型驱动方法应用到嵌入式软件设计中,建立模型化的嵌入式软件设计框架。
2.如何设计测试用例生成和执行系统,保证测试用例的全面性和准确性。
3.如何设计测试结果收集和分析系统,进行测试结果的有效分析,推出改进意见。
4.如何设计测试报告生成系统,将测试结果整合并生成测试报告。
嵌入式系统的设计和实现

嵌入式系统的设计和实现嵌入式系统是指集成了计算机芯片、控制器、传感器等硬件设备的特殊电子设备系统。
它通常运行在一些资源受限的嵌入式处理器上,具有实时性、可靠性、成本低廉等特点。
如今,随着信息技术的迅速发展,嵌入式系统已经广泛应用在各种领域,例如智能家居、智能交通、智能医疗等。
嵌入式系统设计开发的核心,在于硬件电路的设计和程序代码的编写。
本文将从嵌入式系统的设计和实现两个方面,探讨如何开发一款成功的嵌入式系统。
一、嵌入式系统的设计1.硬件电路设计嵌入式系统的硬件设计是系统整体性能的基础,是开发过程中必不可少的一步。
在设计硬件电路时,需要首先了解嵌入式系统所需的硬件组件,比如处理器、存储器、输入输出设备、传感器等。
其次,需要根据设计目标和系统要求,选择合适的硬件设备,并将其组合成合理的电路结构。
最后,需要完成电路设计的的绘制及原理图、PCB的布线等工作。
在这个过程中,设计者需要考虑功耗、散热、成本等多个因素。
2.软件设计嵌入式系统的软件设计是嵌入式系统开发的重中之重。
在软件设计方面,需要仔细考虑嵌入式系统的程序架构及程序设计模式,比如事件驱动模型或多任务模型。
同时,需要考虑系统的实时性和稳定性,确保系统代码的质量和可靠性。
在软件设计过程中,需要使用一些工具和开发环境,如Keil、IAR、Eclipse等集成开发环境。
3.测试与调试测试和调试是嵌入式系统开发的重要环节,只有将系统进行充分测试与调试,才能保证系统的正确性和稳定性。
在测试过程中,需要首先进行各个模块的单元测试,以验证系统的功能是否正常。
然后进行集成测试,交叉验证各个模块的协同工作是否正常。
最后进行耐久性测试和压力测试,确保系统能够在各种恶劣环境环境下正常运行。
二、嵌入式系统的实现1. 系统内核系统内核是嵌入式操作系统的核心,也是嵌入式系统的核心。
系统内核需要提供一个可靠的执行环境和一些重要的操作系统服务,如任务管理、内存管理、中断管理、设备驱动程序和通讯协议等。
基于模型驱动的实时嵌入式系统

引用格 式: 赵 勇, 陈香兰. 基于模 型驱 动的实时嵌入式系统. 计算机系统应用, 2 0 1 7 ; 2 6 ( 8 ) : 8 3 — 8 7 : h  ̄: / / w w w
Re a l — Ti me Embe dde d S ys t e m De s i g n M e t ho d Ba s e d o n Mo de l - Dr i ve n
h a r d wa r e a n d s o f t wa rea re a n d s o f t wa r e c o o r d i n a t i o n a n d S O o n , i s u n a bl e t o me e t t h e r e q u i r e me n t s of i t s
t h e RTOS d e s i g n, wh i c h c o mb i ne s t he t e m po r a l s e ma n t i c s wi t h t h e S e r v a n t /Exe — Fl o w Mo d e 1 . Fi r s t l y, t h e p a pe r gi v e s t h e a bs t r a c t s e ma n t i c s o f t he me t a mo de l e x p r e s s i n g SEFM , a n d d e s c r i be s t h e c o nc r e t e s y n t a x o f S EFM u s i n g X M L
i mp l e me n t a t i o n. Co mb i n e d wi t h t h e c o r e i d e a of M DA a n d MI C, t h i s pa p e r p r o po s e s a me t ho d b a s e d o n mo d e l - d r i v e n f o r
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
—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],以提高嵌入式系统的开发效率、缩短开发周期、减少开发成本。
仿真平台是嵌入式系统开发的重要支持工具,在嵌入式系统开发的很多领域得到广泛应用,但也出现了一些问题:(1)用户应用需求的多样性要求仿真平台具有可配置、可定制的能力;(2)由于开发时间越短越好,因此要求能够在现有仿真硬件的基础上快速地开发出一套仿真软件。
为解决上述问题,本文运用模型驱动架构(Model-Driven Architecture, MDA)的思想并基于Matlab/Simulink 开发平台,设计了通用的嵌入式仿真系统。
该系统由硬件和软件2个部分组成,硬件提供了多种I/O 接口,实现了平台的可扩展性,能够适应嵌入式系统接口多样性的需求;仿真软件使用模型驱动的开发方法使仿真软件具有可定制、可重用等特点。
该仿真系统可以大幅度提高嵌入式系统的开发效率,能够对嵌入式系统的实时性、可靠性等进行验证,具有较高的实用价值。
2 理论基础MDA 的提出为通用嵌入式仿真系统的实现提供了很好的解决方法。
MDA [2]是软件工程领域近年来的重要研究成果,MDA 方法使设计者能够独立于具体平台进行系统设计,而最终又能够在某个具体平台中实现系统,从根本上解决了软件模型与实现代码之间难以同步的问题,实现系统的可重用性,使系统具有良好的可配置性和可移植性。
MDA 软件设计方法已经在现实的软件工程中得到了广泛应用,在仿真领域也得到了应用。
Matlab/Simulink [3]是一种对动态系统进行建模、仿真和分析的软件包,可以快速创建与系统交互的物理对象的动态行为模型。
Simulink 使用图形化的编程方式,操作方便直观,允许用户用S 函数自定义模块。
S 函数扩展了Simulink 的功能;Matlab 工具RTW(Real-Time Workshop)可用Simulink 模型生成优化的、可定制的、可移植的代码,此程序可以在实时系统和非实时系统等众多目标环境中运行仿真。
因此,Matlab/Simulink 为模型驱动的仿真系统开发提供了工具 支持。
3 通用嵌入式仿真系统设计3.1 嵌入式仿真系统组成嵌入式仿真系统由仿真主控计算机、仿真器、嵌入式目标机、作动器等组成,如图1所示。
目标机和作动器是进行具体仿真的连接对象,这里不作介绍。
其中,仿真主控计算机是一台普通PC ,具有C++ Compiler 、Matlab/Simulink 、RTW 等软件,通过以太网或串口与仿真器相连,在其上进行组件库开发、仿真模型开发、仿真参数设置、代码生成和下载、仿真控制、仿真数据回显和仿真结果分析等。
为了满足嵌入式系统的实时性要求,仿真器上运行xPC 目标、VxWorks 等基金项目:国家自然科学基金资助重点项目“高可靠构件化嵌入式软件设计与验证技术及其支撑环境研究”(60736017) ;国家“863”计划基金资助项目“高可信嵌入式软件生产线”(2007AA010304) 作者简介:李秀萍(1985-),女,硕士研究生,主研方向:嵌入式系统设计与仿真;董云卫,教授、博士生导师收稿日期:2010-02-11 E-mail :lixiuping0322@—238—实时环境。
仿真系统硬件要求具有通用性和较强的可定制功能,能够仿真嵌入式系统所需的常见外部接口。
仿真器提供多种接口,在嵌入式仿真应用中连接目标机和作动器。
图1 仿真系统组成3.2 仿真系统硬件设计仿真器由基于PCI 总线的便携式工控机和扩展模块组成。
丰富的I/O 接口满足了仿真回路中硬件设备多样性的需求。
根据特定仿真应用的需要,可以通过增加板卡或级联增加I/O 数目,或者通过更换板卡来支持特殊I/O 接口,满足了半实物仿真对硬件I/O 接口多样性、可扩展的需求[4]。
仿真器硬件结构由Ethernet 、串口、并口、CAN 接口、AD 卡、DA 卡、DIO 卡、隔离DIO 卡、信号调理板组成。
为了延长传输距离,除了基本的RS232以外还有RS422和RS485信号。
这些接口满足了一般嵌入式系统的接口需求。
硬件自检工具在进行仿真之前检测仿真器硬件能否正常工作,避免在仿真过程中带来不必要的麻烦。
信号调理主要完成对模拟量输入输出、数字量输入输出的调理。
由于AD 、DA 模拟信号的最大范围为±10 V ,而外界模拟信号的范围可能是几十伏,因此需要通过电平变换来匹配。
工控系统中数字信号常用的电压幅值有5 V 、12 V 、24 V 、48 V 4种,数字信号调理通过对数字输入输出信号设置跳线可以很方便地切换到上述4种电压中的一种,满足常用信号的需求。
另外,在设计时还应考虑电源隔离、阻抗匹配、抗干扰滤波、多路复用等因素。
3.3 通用嵌入式仿真系统仿真软件设计通用嵌入式仿真系统能够为多种嵌入式系统开发提供数字仿真和半实物仿真的环境。
基于模型驱动方法开发的通用嵌入式仿真系统的功能结构如图2所示。
图2 仿真系统功能结构系统功能分为2个部分:仿真模型开发和代码生成及仿真运行。
仿真模型开发包括仿真模型开发系统、组件库管理系统。
仿真模型开发系统包括模型编辑、参数设置、子系统封装等。
组件库管理系统支持组件添加、组件查找、组件删除等操作。
代码生成及仿真运行阶段包括目标代码生成工具和监控系统。
目标代码生成工具完成仿真器目标环境配置、代码生成并下载到仿真器上的功能。
监控系统能够在仿真主控计算机上对仿真模型参数进行调整,控制仿真的运行情况,实时显示仿真数据,保存数据,并对仿真结果进行分析。
3.3.1 仿真模型开发由于被测嵌入式软件的运行环境非常复杂,目标系统和外围设备种类千差万别,因此必须针对具体设备开发相应的仿真模型,但工作量非常大。
实现通用嵌入式仿真系统最重要的是能够快速建立仿真模型[5]。
组件是具有标准对外接口和明确功能的对象,由组件构造的软件系统具有很高的可重用性和良好的可扩展性,因此,组件技术在仿真系统中得到了广泛的应用。
仿真模型采用基于组件的设计方法,这也是在仿真系统中应用MDA 需要解决的关键技术之一,重用仿真组件模型,提高开发效率。
如图3所示,仿真模型是在仿真主控计算机的Simulink 环境下建立的,Simulink 的模型组件库中存放了系统组件库、自定义组件库和仿真模型库,仿真模型可以从仿真模型库中直接加载,或者利用组件模型库中的组件搭建一个新的仿真模型,将该仿真模型存入仿真模型库中供以后使用。
仿真模型加载以后,通过RTW 编译生成在仿真器上可执行的文件,以完成模型的实例化和下载工作,这时可以设置仿真参数开始运行仿真。
图3 仿真模型开发系统3.3.2 代码生成工具Matlab/RTW 为模型驱动的嵌入式仿真系统开发提供了由模型到代码的转换工具。
RTW 支持多种快速原型化的目标机类型。
RTW 的代码生成过程分为4个步骤:(1)分析模型并对模型描述文件进行编译。
TRW 首先读取模型文件(model.mdl)并对其进行编译,形成模型的中间描述文件model.rtw ,它包含了Simulink 模型的每一个模块的记录。
(2)由目标语言编译器(TLC)从模型中生成代码。
TLC 读取model.rtw 文件,通过指定的目标编译工具对各个模块编译、链接成该模型的C 源代码。