一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法技术

技术编号:15878540 阅读:315 留言:0更新日期:2017-07-25 16:31
本发明专利技术公开了一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,其特征在于,在模型开发初期准备底层变量和CAN报文与上层模型程序的接口,通过调用build.m程序实现上层逻辑与底层代码的集成,并生成可刷写的mot文件,用于测试标定的map文件以及a2l文件。提出了一种上层变量和CAN报文与底层的变量接口方案:通过MATLAB/Simulink模块库中的DataStoreMemory模块建立上层逻辑中的变量与报文,并在底层开发环境中建立变量对应的C代码,无需在后续开发中修改MATLAB/RTW自动生成的代码。

An integration method of upper layer logic and lower level code based on MATLAB/Simulink

The invention discloses an integrated method of MATLAB/Simulink code based on the upper and bottom logic, which is characterized in that the preparation of the underlying variables and CAN message and the upper model program in the early development of the interface model, by calling the build.m program to achieve the integration of upper logic and the underlying code, and generate the brush to write mot files, for testing calibration of the map file and A2L file. Put forward a scheme of variable interface variables in the upper level and CAN message with the underlying variables and message: the establishment of upper logic in DataStoreMemory by MATLAB/Simulink module in the library, and the establishment of the development environment in the underlying variables corresponding to the C code, no need to modify the MATLAB/RTW automatically generated code in the following development.

【技术实现步骤摘要】
一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法
本专利技术属于汽车电子控制
,具体涉及一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法。
技术介绍
目前,基于MATLAB/Simulink模型的设计开发流程,已在汽车电子领域得到广泛应用与认可。该开发流程的代码由模型生成,模型与需求挂接,在仿真中一经验证即可直接生成嵌入式代码。而基于模型的上层逻辑代码与底层开发环境代码的集成,则需要手动完成,容易造成bug,不方便不熟悉C代码集成的用户使用,且降低嵌入式开发效率。
技术实现思路
本专利技术所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,避免了手动集成可能造成的bug,并且为不熟悉C代码集成的工程师提供了方便,提高了嵌入式开发效率。本专利技术采用以下技术方案:一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,在模型开发初期准备底层变量和CAN报文与上层模型程序的接口,通过调用build.m程序实现上层逻辑与底层代码的集成,并生成可刷写的mot文件,用于测试标定的map文件以及a2l文件。进一步的,包括以下步骤:S1、在底层程序中对系统变量及报文做接口程序,并在Simulink程序中建立相应变量;S2、在MATLAB/Simulink环境下对系统CAN报文进行解析与反解析;S3、编写dos命令行,依次运行build模型生成代码;集成生成代码与底层程序;调用makefile集成编译;生成可刷写文件;运行刷写软件完成上层逻辑与底层代码的集成。进一步的,步骤S1中,将底层程序中对应于pin脚的系统变量和对应于CAN报文的数组以赋值的形式与MATLAB/Simulink层面以DataStoreMemory模块建立的变量进行一一对应,变量的声明由自动生成代码实现,建立底层与Simulink层的接口程序。进一步的,所述接口程序包括signal_in、signal_out、can_in和can_out,所述signal_in表示底层变量的输入,所述signal_out表示底层变量的输出,所述can_in表示报文的接收,所述can_out表示报文的发送。进一步的,步骤S2中,以Simulink模块库中的Demux模块将一个八位的报文数组分解为八个信号,再分别进行移位、比例放大/缩小以及减去偏移量操作,完成报文解析。进一步的,步骤S2中,所述反解析具体为:对信号进行移位、比例放大/缩小以及减去偏移量操作,以Mux模块将八个信号组合成一个报文数组,完成报文的反解析。进一步的,所述步骤S3中,将simulink模型自动生成代码与底层开发环境代码集成,通过调用编写的makefile文件实现MATLAB环境下集成编译全系统文件,再以命令行的方式实现一键刷写,将生成的map文件以及a2l文件自动拷贝至指定路径,实现一键build工作。进一步的,所述map文件以及a2l文件的生成过程为:在MATLAB环境下通过dos命令运行文件,调用底层编译器;将所述dos命令与文件复制、修改等命令整合为一个bat文件,并在build.m文件中运行,实现一键完成编译、刷写、生成map文件以及a2l文件工作。与现有技术相比,本专利技术至少具有以下有益效果:本专利技术一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,提出了一种上层变量和CAN报文与底层的变量接口方案:通过MATLAB/Simulink模块库中的DataStoreMemory模块建立上层逻辑中的变量与报文,并在底层开发环境中建立变量对应的C代码,无需在后续开发中修改MATLAB/RTW自动生成的代码;进一步的,在底层程序中对系统变量及报文做接口程序,并在Simulink程序中建立相应变量,该接口方案,避免了变量的重复定义造成的编译错误,也不需要对MATLAB自动生成的代码进行任何修改;在MATLAB/Simulink环境下对系统CAN报文进行解析与反解析,将CAN报文的解析与反解析程序建立在Simulink层面,便于开发人员理解解析规则,也避免了与底层进行更多信号的交互;一键build程序为研发工程师提供了极大的便利,上层逻辑开发工程师,无需关心底层代码如何运行,如何集成编译等问题,甚至无需读懂C代码,这样可以集中精力进行算法逻辑的开发,提高了工作效率,有效避免了代码移植过程中可能造成的各种问题。进一步的,CAN报文解析采用搭建Simulink模块的方式:将底层收(发)的报文通过接口变量以数组的形式读取至上层模型中的DataStoreRead模块,借助模块库中的移位、或(与)等模块建立报文解析程序;进一步的,基于dos命令建立一键build程序:只需运行该程序即可实现build模型、生成代码并与底层环境集成,编写底层编译器的makefile文件,在MATLAB环境下调用该文件即可实现联合编译,最终生成可刷写文件以及标定文件,并且可直接调用刷写工具开始刷写,将生成的文件copy重命名至指定文件夹,便于文件管理,实现了高效率的软件开发与测试。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。【附图说明】图1为本专利技术底层变量与Simulink接口程序界面图;图2为本专利技术CAN报文解析程序界面图;图3为本专利技术一键build程序流程图。【具体实施方式】本专利技术提供了一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,在模型开发初期做好底层变量和CAN报文与上层模型程序的接口,通过调用该开发平台的build.m程序,即可一键实现上层逻辑与底层代码的集成,并生成可刷写的mot文件,用于测试标定的map文件以及a2l文件。本专利技术公开了一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,包括以下步骤:S1、在底层程序中对系统变量及报文做接口程序,并在Simulink程序中建立相应变量;在底层程序中分别建立signal_in/out和can_in/out四个c程序文件,对应于底层变量的输入输出与CAN报文的接收发送。将底层程序中对应于pin脚的系统变量和对应于CAN报文的数组以赋值的形式与MATLAB/Simulink层面以DataStoreMemory模块建立的变量进行一一对应,变量的声明由自动生成代码实现,至此便建立了底层与Simulink层的接口程序。S2、在MATLAB/Simulink环境下对系统CAN报文进行解析与反解析;报文的解析,以Simulink模块库中的Demux模块将一个八位的报文数组分解为八个信号,再分别进行移位、比例放大或缩小、减去偏移量等操作,完成报文解析。报文的反解析则是进行与上述操作相反的过程,最后以Mux模块将八个信号组合成一个报文数组。S3、编写dos命令行,将simulink模型自动生成代码与底层开发环境代码集成,通过调用编写的makefile文件实现MATLAB环境下集成编译全系统文件,再以命令行的方式调用刷写工具软件,实现一键刷写,同时将生成的map文件以及a2l文件自动拷贝至指定路径,最终实现一键build工作,完成该二次开发平台的设计。makefi本文档来自技高网...
一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法

【技术保护点】
一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,其特征在于,在模型开发初期准备底层变量和CAN报文与上层模型程序的接口,通过调用build.m程序实现上层逻辑与底层代码的集成,并生成可刷写的mot文件,用于测试标定的map文件以及a2l文件。

【技术特征摘要】
1.一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,其特征在于,在模型开发初期准备底层变量和CAN报文与上层模型程序的接口,通过调用build.m程序实现上层逻辑与底层代码的集成,并生成可刷写的mot文件,用于测试标定的map文件以及a2l文件。2.根据权利要求1所述的一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,其特征在于,包括以下步骤:S1、在底层程序中对系统变量及报文做接口程序,并在Simulink程序中建立相应变量;S2、在MATLAB/Simulink环境下对系统CAN报文进行解析与反解析;S3、编写dos命令行,依次运行build模型生成代码;集成生成代码与底层程序;调用makefile集成编译;生成可刷写文件;运行刷写软件完成上层逻辑与底层代码的集成。3.根据权利要求2所述的一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,其特征在于,步骤S1中,将底层程序中对应于pin脚的系统变量和对应于CAN报文的数组以赋值的形式与MATLAB/Simulink层面以DataStoreMemory模块建立的变量进行一一对应,变量的声明由自动生成代码实现,建立底层与Simulink层的接口程序。4.根据权利要求3所述的一种基于MATLAB/Simulink实现上层逻辑与底层代码的集成方法,其特征在于,所述接口程序包括signal_in、signal_out、can_in和can_out,所述signal_in表示底层变量的输入,所述sig...

【专利技术属性】
技术研发人员:王婧宇杨子轩
申请(专利权)人:陕西法士特齿轮有限责任公司
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1