CN106970787A - 一种汽车控制器快速原型实现方法 - Google Patents

一种汽车控制器快速原型实现方法 Download PDF

Info

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
Application number
CN201710124862.9A
Other languages
English (en)
Inventor
夏洪涛
焦玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Automotive Polytron Technologies Inc
Original Assignee
Zhejiang Automotive Polytron Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Automotive Polytron Technologies Inc filed Critical Zhejiang Automotive Polytron Technologies Inc
Priority to CN201710124862.9A priority Critical patent/CN106970787A/zh
Publication of CN106970787A publication Critical patent/CN106970787A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/311Functional 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文件编写就完成了,就能将生成的代码下载到硬件平台上进行快速原型测试了。
CN201710124862.9A 2017-03-03 2017-03-03 一种汽车控制器快速原型实现方法 Withdrawn CN106970787A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 重庆邮电大学 一种通用汽车代码转换方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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