CN106970787A - 一种汽车控制器快速原型实现方法 - Google Patents
一种汽车控制器快速原型实现方法 Download PDFInfo
- Publication number
- CN106970787A CN106970787A CN201710124862.9A CN201710124862A CN106970787A CN 106970787 A CN106970787 A CN 106970787A CN 201710124862 A CN201710124862 A CN 201710124862A CN 106970787 A CN106970787 A CN 106970787A
- Authority
- CN
- China
- Prior art keywords
- function
- mask
- rapid prototyping
- module
- driving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/311—Functional or applicative languages; Rewrite languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明为一种汽车控制器快速原型实现方法,其特征是包括:在快速原型(RCP)过程中,对底层驱动进行封装,把底层驱动封装成模块的形式添加到simulink库就可以在模型中直接调用,利用MATLAB RTW工具将模型直接生成源代码,相应的单片机驱动模块也会生成源代码,从而避免手写驱动代码,而直接使用模型,使开发更方便,在不同项目中也可以实现复用,从而可以节省更多的资源,主要包括:利用MATLAB中S‑function及Mask对底层驱动进行封装;编写Block TLC文件。本发明可以避免手写驱动代码,并且使平台有更好的复用性,使控制器快速原型(RCP)更加方便快捷,从而可以节省项目成本及开发周期。
Description
技术领域
本发明涉及汽车电子领域,尤其是涉及在汽车控制器开发过程中使用S-function实现在特定平台上控制器快速原型(RCP)的方法。
背景技术
在汽车控制器开发过程中,在MATLAB环境下对算法浮点模型定点化完成后,利用MATLAB软件中的自动代码生成工具(Real Time Workshop,RTW)对模型自动代码生成,然后自动生成的代码与***软件进行集成编译后下载到目标平台上,达到产品快速实现验证的目的,即快速原型(RCP)的目的。
由于在实际开发过程中,不同的项目可能使用相同的目标平台,这就需要有一种快速复用底层代码的方法,以缩短项目周期和开发成本。传统的实现快速原型的的方法及不足主要有:
1.使用MATLAB自带的目标平台库。由于目标库的有限性,无疑会使目标平台的选择受到限制,而且目标库本身也需要收费购买,这样也会带来成本的增加;
2.手写底层代码。这样就需要投入人力,也会带来项目周期及成本的增加。而且由于项目本身的区别,即使复用底层代码,但底层的配置可能并不一致,这样就需要重新配置和调试,这样也会带来项目周期的增加。
发明内容
本发明的目的是解决在在汽车控制器开发过程中,传统的控制器快速原型对目标平台限制较多,自动化及复用度较低的问题。
为了达到上述目的,本发明的一种汽车控制器快速原型实现方法,其特征是包括:在快速原型(RCP)过程中,对底层驱动进行封装,把底层驱动封装成模块的形式添加到simulink库就可以在模型中直接调用,利用MATLAB RTW工具将模型直接生成源代码,相应的单片机驱动模块也会生成源代码,从而避免手写驱动代码,而直接使用模型,使开发更方便,在不同项目中也可以实现复用,从而可以节省更多的资源,主要包括:
(1)利用MATLAB中S-function及Mask对底层驱动进行封装;
(2)编写Block TLC文件。
上述具体方法是:
(1)对底层驱动进行Mask封装:
①使用Simulink库中的S-function模块,双击打开后写入S-function名字,如msp430f2132_di,该文件为s-function的C文件,能够定义包括模块的输入输出端口、端口类型的参数,S-function parameters为RTDParameters;
②根据S-function parameters的个数来进行GUI界面的封装,即Mask,S-function的Mask需要点击右键选择Mask S-Function来进行编辑,在这个模块中,共有四个输出端口,类型为checkbox,当某个checkbox处于选中状态时,输出端口才有效;
③在Initialization中填写界面封转初始化脚本,使用的是m语言,
(2)编写相应的S-function文件,Simulink与一个C MEX S-Function之间的相互作用是通过调用S-Function中的回调函数来实现的;每个函数完成一个预先定义的任务,这些任务是S-Function定义的仿真块功能必需的;
(3)Block TLC文件编写:
驱动模块的s-function及mask之后,编写模块的TLC文件来进行代码生成;
至此,驱动模块的编写、mask封装、TLC文件编写就完成了,就能将生成的代码下载到硬件平台上进行快速原型测试了。
采用本发明后,在MATLAB环境下对平台的底层驱动进行封装,并编写相应的BlockTLC文件,从而封装的模块直接用于建模开发,并可以自动生成底层驱动代码,这样就可以避免手写驱动代码,并且使平台有更好的复用性,使控制器快速原型(RCP)更加方便快捷,从而可以节省项目成本及开发周期。
附图说明
图1是汽车控制器快速原型实现方法的路径框图。
具体实施方式
下面结合附图并通过实施例对本发明作进一步的描述。
图1为汽车控制器快速原型实现方法的路径框图。
在快速原型(RCP)过程中,对底层驱动进行封装,如单片机的输入输出、AD、串口等,把此类驱动封装成模块的形式添加到simulink库就可以在模型中直接调用,利用MATLAB RTW工具将模型直接生成源代码,相应的单片机驱动模块也会生成源代码,这样就可以避免手写驱动代码,而直接使用模型,使开发更方便,在不同项目中也可以实现复用,从而可以节省更多的资源,主要包括:
1.利用MATLAB中S-function及Mask对底层驱动进行封装;
2.编写Block TLC文件。
下面是利用上述汽车控制器快速原型实现方法,对驱动模块的编写、mask封装、TLC文件编写为例加以说明,其依次是:
1.对底层驱动进行Mask封装,如单片机MSP430F2132DI模块的封装:
①使用Simulink库中的S-function模块,双击打开后写入S-function名字,如msp430f2132_di,该文件为s-function的C文件,能够定义模块的输入输出端口、端口类型等参数,S-function parameters为RTDParameters;
②根据S-function parameters的个数来进行GUI界面的封装,即Mask。S-function的Mask需要点击右键选择Mask S-Function来进行编辑,在这个模块中,共有四个输出端口,类型为checkbox,当某个checkbox处于选中状态时,输出端口才有效;
③在Initialization中填写界面封转初始化脚本,使用的是m语言
(2)编写相应的S-function文件,Simulink与一个C MEX S-Function之间的相互作用是通过调用S-Function中的回调函数来实现的;每个函数完成一个预先定义的任务,这些任务是S-Function定义的仿真块功能必需的;一个C MEX S-function的一般格式如下:
#define S_FUNCTION_NAME your_sfunction_name_here
#define S_FUNCTION_LEVEL 2
#include"simstruc.h"
static void mdlInitializeSizes(SimStruct*S)
{
}
<附加的S-function程序/代码>
static void mdlTerminate(SimStruct*S)
{
}
#ifdef MATLAB_MEX_FILE/*This is file being compiled as a MEX-file*/
#include"simulink.c"/*MEX-file interface mechanism*/
#else
#include"cg_sfun.h"/*Code generation registration function*/
#endif
当Simulink与S-function相互作用时,Simulink所调用的第一个程序是
mdlInitializeSizes,随后调用的是其它S-function函数(所有的函数名均以mdl开头);
在仿真结束时,Simulink调用mdlTerminate函数;
3.Block TLC文件编写:
驱动模块的s-function及mask之后,就可以编写模块的tlc文件来进行代码生成了,如下:
至此,驱动模块的编写、mask封装、TLC文件编写就完成了,就能将生成的代码下载到硬件平台上进行快速原型测试了。
Claims (2)
1.一种汽车控制器快速原型实现方法,其特征是包括:在快速原型(RCP)过程中,对底层驱动进行封装,把底层驱动封装成模块的形式添加到simulink库就可以在模型中直接调用,利用MATLAB RTW工具将模型直接生成源代码,相应的单片机驱动模块也会生成源代码,从而避免手写驱动代码,而直接使用模型,使开发更方便,在不同项目中也可以实现复用,从而可以节省更多的资源,主要包括:
(1)利用MATLAB中S-function及Mask对底层驱动进行封装;
(2)编写Block TLC文件。
2.根据权利要求1所述的一种汽车控制器快速原型实现方法,其特征是所述的利用MATLAB中S-function及Mask对底层驱动进行封装和Block TLC文件的编写,其具体方法依次是:
(1)对底层驱动进行Mask封装:
①使用Simulink库中的S-function模块,双击打开后写入S-function名字,该文件为s-function的C文件,能够定义包括模块的输入输出端口、端口类型的参数,S-functionparameters为RTDParameters;
②根据S-function parameters的个数来进行GUI界面的封装,即Mask,S-function的Mask需要点击右键选择Mask S-Function来进行编辑,在这个模块中,共有四个输出端口,类型为checkbox,当某个checkbox处于选中状态时,输出端口才有效;
③在Initialization中填写界面封转初始化脚本,使用的是m语言;
(2)编写相应的S-function文件,Simulink与一个C MEX S-Function之间的相互作用是通过调用S-Function中的回调函数来实现的;每个函数完成一个预先定义的任务,这些任务是S-Function定义的仿真块功能必需的;
(3)Block TLC文件编写:
驱动模块的s-function及mask之后,编写模块的TLC文件来进行代码生成;
至此,驱动模块的编写、mask封装、TLC文件编写就完成了,就能将生成的代码下载到硬件平台上进行快速原型测试了。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710124862.9A CN106970787A (zh) | 2017-03-03 | 2017-03-03 | 一种汽车控制器快速原型实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710124862.9A CN106970787A (zh) | 2017-03-03 | 2017-03-03 | 一种汽车控制器快速原型实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106970787A true CN106970787A (zh) | 2017-07-21 |
Family
ID=59330138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710124862.9A Withdrawn CN106970787A (zh) | 2017-03-03 | 2017-03-03 | 一种汽车控制器快速原型实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106970787A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634584A (zh) * | 2018-11-22 | 2019-04-16 | 南京航空航天大学 | 一种基于代码生成的驱动封装和通信机制 |
CN109683865A (zh) * | 2018-12-26 | 2019-04-26 | 中车青岛四方车辆研究所有限公司 | 动车组车载控制软件生成***及方法 |
CN112748904A (zh) * | 2019-10-29 | 2021-05-04 | 卓品智能科技无锡有限公司 | 基于matlab平台的控制器快速原型开发方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087610A (zh) * | 2009-12-08 | 2011-06-08 | 联创汽车电子有限公司 | 利用Simulink对定制硬件进行模型仿真及代码生成的方法 |
CN102537316A (zh) * | 2012-01-11 | 2012-07-04 | 北京经纬恒润科技有限公司 | 一种用于自动变速控制及整车动力分配的原型控制器 |
CN102622470A (zh) * | 2012-02-21 | 2012-08-01 | 重庆邮电大学 | 一种通用汽车代码转换方法 |
-
2017
- 2017-03-03 CN CN201710124862.9A patent/CN106970787A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087610A (zh) * | 2009-12-08 | 2011-06-08 | 联创汽车电子有限公司 | 利用Simulink对定制硬件进行模型仿真及代码生成的方法 |
CN102537316A (zh) * | 2012-01-11 | 2012-07-04 | 北京经纬恒润科技有限公司 | 一种用于自动变速控制及整车动力分配的原型控制器 |
CN102622470A (zh) * | 2012-02-21 | 2012-08-01 | 重庆邮电大学 | 一种通用汽车代码转换方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634584A (zh) * | 2018-11-22 | 2019-04-16 | 南京航空航天大学 | 一种基于代码生成的驱动封装和通信机制 |
CN109683865A (zh) * | 2018-12-26 | 2019-04-26 | 中车青岛四方车辆研究所有限公司 | 动车组车载控制软件生成***及方法 |
CN112748904A (zh) * | 2019-10-29 | 2021-05-04 | 卓品智能科技无锡有限公司 | 基于matlab平台的控制器快速原型开发方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106371813B (zh) | 一种基于Simulink的电动汽车电机控制器软件生成方法 | |
CN105843630B (zh) | 一种基于机器人图形化编程开发的方法 | |
US7487080B1 (en) | Partitioning a model in modeling environments | |
Singh et al. | Kiwi: Synthesis of FPGA circuits from parallel programs | |
CN104965750B (zh) | 基于Python语言的Rapidio切换器逻辑仿真验证平台及方法 | |
CN102662648B (zh) | 一种通讯终端的嵌入式软件开发仿真平台及其应用 | |
CN101630258A (zh) | Windows平台上嵌入式Linux软件集成开发***及其构建方法 | |
CN107346249A (zh) | 一种基于模型的计算机软件开发方法 | |
CN104915297B (zh) | 一种android设备的APP耗电量的自动化测试方法 | |
CN107122219A (zh) | 安装文件的获取方法和装置 | |
CN106970787A (zh) | 一种汽车控制器快速原型实现方法 | |
CN103678075B (zh) | 基于自动矢量生成技术的复杂微处理器测试方法 | |
CN105591779A (zh) | 网元巡检方法及装置 | |
KR20240047468A (ko) | Ecu 업그레이드 방법 및 디바이스, 및 판독 가능 저장 매체 | |
CN106293687A (zh) | 一种打包流程的控制方法,及装置 | |
CN103294482B (zh) | 用于PWscf并行计算***的Web服务封装方法以及*** | |
CN102033751B (zh) | Osd屏显的软件适配方法、***及多媒体终端 | |
CN104657136B (zh) | Simulink组件的集成*** | |
CN116090376B (zh) | 芯片集成验证组件开发方法、装置及计算机设备 | |
CN105183485A (zh) | 一种可视化软硬件协同开发方法 | |
CN102043628A (zh) | Osd应用软件的开发方法、***及多媒体终端 | |
Lee et al. | A New Integrated Software Development Environment Based on SDL, MSC, and CHILL for Large‐scale Switching Systems | |
Posadas et al. | System synthesis from UML/MARTE models: The PHARAON approach | |
CN102567187B (zh) | 一种利用C++test执行SCADE测试对象的方法 | |
Allan et al. | Ccaffeine framework: composing and debugging applications iteratively and running them statically |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170721 |