[发明专利]一种实时嵌入式系统的仿真方法有效
申请号: | 201410122430.0 | 申请日: | 2014-03-28 |
公开(公告)号: | CN103885816B | 公开(公告)日: | 2017-01-25 |
发明(设计)人: | 王林章;曹婉琼;陈志 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙)32249 | 代理人: | 杨晓玲 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实时 嵌入式 系统 仿真 方法 | ||
技术领域
本发明利用UML和Simulink实现实时嵌入式系统的仿真,对从序列图提取的时间约束进行测试,属于软件工程、模型驱动工程和系统仿真的交叉技术领域。
背景技术
实时嵌入式系统应用的开发常常涉及多个学科,如电子工程、机械工程和软件工程等。尽管在嵌入式系统中这些学科是紧密结合的,它们的开发却常常是串行过程。一般是首先设计机械部分,然后硬件设施被固定下来,最后开发嵌入式软件。这个方法会导致很多问题,尤其对于软件工程人员。例如,传感器的位置的选择、速率控制、延迟控制、硬件等,这些对于软件的复杂度有很大影响。而且,有很多隐含的假设条件在系统集成时候才会首次显现,这样会导致找不到最佳的方案。
UML(统一建模语言,Unified Modeling Language)是最为风行的建模语言,软件工程领域经常使用基于UML的模型驱动开发来尽早发现问题。Simulink是国际上十分流行的动态系统建模仿真工具,可以应用于涉及工程和数学的许多领域,其强大的图形建模功能极大地提高了仿真应用的开发效率。
Simulink Coder可以将Simulink模型转换为C/C++代码,并支持多种目标环境:当前主机、实时仿真器、嵌入式处理器,目标环境可以是单核或多核,可以是独立计算机也可以作为网络通信的一部分。
发明内容
技术问题:在实时系统中违反时间约束或者频繁地违反它们会导致严重的错误,进而会对人类的生活或者环境产生威胁。为了在早期有效地对嵌入式实时系统进行测试,急需一种对时间进行自动测试的策略。UML和Simulink表示一个产品的不同的视图,其中UML用于描述软件结构和行为,而Simulink用来获取系统行为的不同方面。现有的方法不能支持UML的类图、序列图模型与Simulink的模型进行通信并检测违反实时约束的错误,本发明的目的是解决上述问题,提供一种自动化的跨模型的实时嵌入式系统的仿真方法,以打破不同学科间的传统的串行开发方法,使在设计阶段便可以在一定程度上检测系统的可行性以及时间约束。
技术方案:本发明首先读取并解析基于XMI格式保存的、待仿真的实时嵌入式系统的UML模型,将它们转换为C++代码;然后使用工具将待仿真的实时嵌入式系统的Simulink模块转换为C++代码并加入时钟中断;最后再将上述C++代码自动融合进行仿真,给出仿真结果。
本发明提出的一种实时嵌入式系统的仿真方法包括以下步骤:
步骤1)从磁盘文件读入基于XMI格式保存的UML模型。
所述UML模型包括UML类图模型、UML序列图模型;所述UML类图模型是描述系统中的类以及它们之间的关系的模型;UML类图模型包括以下UML标准组成部分:包元素、类元素、接口元素、数据类型元素、基本数据类型元素、枚举元素、信号元素、注释元素,上述元素是UML类图模型转换为C++代码的最大单位;所述UML序列图模型是通过描述对象之间消息的发送和接收顺序以显示多个对象之间动态协作的模型;UML序列图模型包括以下UML标准组成部分:交互元素,该元素是UML序列图模型转换为C++代码的最大单位;所述XMI是使用XML交换元数据信息的一种面向对象组织OMG标准语言;所述XML是是一种用于标记电子文件使其具有结构性的可扩展标记语言。
步骤2)将UML模型中的元素划分到类图元素集合和序列图元素集合中。
步骤21)获取UML模型包含的所有元素。
步骤22)若是包元素、类元素、接口元素、数据类型元素、基本数据类型元素、枚举元素、信号元素、注释元素,则将其加入类图元素集合。
步骤23)若是交互元素,则加入序列图元素集合。
步骤3)将待仿真的实时嵌入式系统的UML类图模型转换为C++代码。
步骤31)当类图元素集合中还存在未转换的类图元素时,读取一个未转换的类图元素;否则转步骤4)。
步骤32)若当前类图元素是包元素,则生成一个.h文件,在其中声明一个命名空间,.h文件名和命名空间名均为该元素名称。
步骤33)若当前类图元素是类元素,则生成一个.h文件和一个.cpp文件,将该元素转换为C++中的一个类,转步骤310)。
步骤34)若当前类图元素是接口元素,则生成一个.h文件和一个.cpp文件,将该元素转换为C++中的一个公开方法均是纯虚函数的抽象类,转步骤310)。
步骤35)若当前类图元素是数据类型元素,则生成一个.h文件和一个.cpp文件,将该元素转换为C++中的一个类,转步骤310)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410122430.0/2.html,转载请声明来源钻瓜专利网。