CN115934054A - 一种基于卡车车身控制器的嵌入式软件生成方法 - Google Patents
一种基于卡车车身控制器的嵌入式软件生成方法 Download PDFInfo
- Publication number
- CN115934054A CN115934054A CN202211667240.8A CN202211667240A CN115934054A CN 115934054 A CN115934054 A CN 115934054A CN 202211667240 A CN202211667240 A CN 202211667240A CN 115934054 A CN115934054 A CN 115934054A
- Authority
- CN
- China
- Prior art keywords
- truck body
- module
- function
- interface
- body controller
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Stored Programmes (AREA)
Abstract
本发明属于电子信息领域,具体涉及一种基于卡车车身控制器的嵌入式软件生成方法,包括将应用层功能模块与驱动层、协议层之间的交互抽象成各函数接口;为各函数接口的参数输入设计可视化配置界面,在界面上设计参数输入框和供参数选择的取值范围内的各值,得到对应的各可配置函数接口并存入simulink Brower;在设计卡车车身控制器的应用层功能模块时,依据需求从simulink Brower中拖拽出对应的可配置函数接口并配置,以实现与驱动层、协议层之间的交互,得到卡车车身控制模块,并进行编译,得到卡车车身控制器的嵌入式软件。由此,本发明解决了现有simulink嵌入式代码生成方法开发效率低和成本高的问题。
Description
技术领域
本发明属于电子信息技术领域,具体涉及一种基于卡车车身控制器的嵌入式软件生成方法。
背景技术
目前汽车领域大多采用基于模型设计的开发方法设计软件。该软件一般分为底层驱动软件和应用层软件。其中,底层驱动软件是一行一行敲代码完成,应用层软件是利用Simulink或者Matlab工具以图形化方式建立的模型,然后再利用工具将图形化的模型转换为嵌入式适用的C代码。
传统基于simulink的嵌入式代码生成方法由变量完成simulink与驱动层的对接,并由simulink生成代码,而后由基于各个MCU的IDE(开发平台)完成可刷写代码的生成。此种方式提取了控制逻辑部分到模型中,完成了部分与底层驱动的解耦,但实际应用中车身模块除了自身功能外,与其他零部件的通讯任务繁多,特别是卡车车身模块,还包含NM网络管理,UDS,J1939等功能接口。而实际应用中,客户的需求经常需要反复修改,如果仍按传统代码生成方式由变量完成驱动和应用层对接的话,并由IDE进行最终可刷写文件生成的话,需要反复修改驱动层代码和图形化模块,对软件的快速开发来说是一项巨大挑战。
总之,现有技术中使用基于simulink的嵌入式代码生成方法,驱动层和对应的Simulink建立的图形化模块也需要跟随需求而修改,工作量大,开发效率低,需要开发人员多且开发成本高。
发明内容
本发明的目的在于提供一种基于卡车车身控制器的嵌入式软件生成方法,用以解决现有技术中simulink的嵌入式代码生成方法,开发效率低和开发成本高的问题。
为解决上述技术问题,本发明所提供的技术方案以及技术方案对应的有益效果如下:
本发明的一种基于卡车车身控制器的嵌入式软件生成方法,包括以下步骤:
1)在实现车身控制模块功能时,将应用层功能模块与驱动层和/或协议层之间的交互抽象成各函数接口;
2)为各函数接口的参数输入设计可视化配置界面,在界面上设计参数输入框和/或供参数选择的取值范围内的各值,得到对应的各可配置函数接口并存入simulinkBrower中;
3)在设计卡车车身控制器的应用层功能模块时,依据需求从simulink Brower中拖拽出对应的可配置函数接口并配置,以实现与驱动层和/或协议层之间的交互,得到卡车车身控制模块;
4)对卡车车身控制模块进行编译,得到卡车车身控制器的嵌入式软件。
上述技术方案的有益效果为:本发明将应用层功能模块与驱动层和/或协议层之间的交互接口抽象成函数接口,并通过GUI设计成可视化配置界面,在界面上设计参数输入框和供参数选择的取值范围内的各值,得到对应的各可配置函数接口并存入simulinkBrower中;然后,在设计卡车车身控制器的应用层功能模块时,依据需求的业务逻辑,拖拽调用对应的可配置函数接口并配置,实现对应的需求功能,当客户需求变更时,只需在可配置函数接口界面修改配置即可,无需再修改底层代码,避免了驱动部分因为客户的需求反复修改,降低了公司人员成本,提升工作效率。
进一步地,步骤1)中在sfunction模块中编辑得到函数接口。
进一步地,步骤1)中得到的函数接口经过mask封装。
进一步地,为了涵盖更多应用层模块,提高工作效率,应用层功能模块包括输入输出引脚模块、CAN通信、LIN通信、NM网络管理、UDS和J1939模块中至少两项功能模块。
进一步地,步骤2)中通过自定义库的方式将各可配置函数接口存入simulinkBrower中。
进一步地,为了节省编译时间,提高工作效率,步骤4)中依据makefile模板进行编译。
附图说明
图1是本发明的一种基于卡车车身控制器的嵌入式软件生成方法流程图;
图2是本发明的方法实施例中涉及到的各文件的示意图。
具体实施方式
本发明的一种基于卡车车身控制器的嵌入式软件生成方法,基于函数接口的静态库及simulink实现,将所有的应用层功能包括输入输出引脚相关、CAN通信、LIN通信、NM网络管理、UDS、J1939常用功能与驱动层和协议层的交互均抽象成函数接口并simulink模块封装进行调用。避免了客户反复修改需求时修改驱动部分,降低了开发成本,提升了工作效率。
为了使本发明的目的、技术方案及优点更加清楚明了,以下结合附图及实施例,对本发明进行进一步详细说明。
方法实施例:
本发明的一种基于卡车车身控制器的嵌入式软件生成方法实施例,本方法基于simulink和静态库文件、适用于卡车车身控制模块的嵌入式软件生成。本方法对驱动层及协议层函数接口进行静态库封装,并可以基于产品特点提供simulink定制操作界面,可大大提高卡车车身控制器的开发效率和准确度。
下面结合本发明步骤进行详细介绍,如图1所示:
第一步:常用功能抽象,并生成静态库件。
将与输入输出引脚配置、CAN通信、LIN通信、NM网络管理、UDS和J1939等应用层常用功能模块的交互接口抽象成各函数接口,而后编写头文件并生成静态库。本实施例中采用Matlab语言通过编辑sfunction的方式实现函数接口。其他实施例中也可以采用C、C++和Fortrans编写sfunction。本实施例中,simulink模块设计为:设计sfunction功能模块,并对其进行mask封装。首先,创建sfunction,修改sfunction中相应的参数信息,编写接口功能,最后保存为.m文件。
具体地在常用功能抽象时,在实现CAN通信功能时,将配置CAN通道、接收报文、设置参数信息等功能抽象成函数接口;例如将设置CAN通道功能抽象成set接口,通过设置set函数的参数(如波特率、CAN节点号),供后续实现客户需求功能时快速使用。将Lin通信中需要设置的波特率、周期信息抽象成相关的函数接口;将UDS和J1939中获取故障状态、处理故障问题的功能抽象成相关的函数接口,比如获取故障状态抽象成get接口。将NM网络管理中NM节点管理和获取节点状态等常用功能进行抽象。比如,将NM节点管理功能抽象为函数接口,输入参数为NM网络节点状态,输出为设置结果。
第二步:对应的simulink模块功能设计。
本实施例中使用simulink图形用户界面GUI功能制作可视化配置界面,为第一步得到的各函数接口设计可视化配置界面,在界面上设计供参数选择的取值范围内的各值,得到可配置函数接口。本步骤还包括设计人机交互接口。本步骤通过simulink对其中的子模块创建MASK封装,添加与函数接口输入需要的UI控件,最后得到可配置的多个接口配置模块。比如,将CAN通信时设置CAN通道抽象得到的set接口的可视化编辑界面具体实现为多个下拉框CAN波特率的选择、多个CAN滤波掩码的填写、多个CAN通道号下拉框的选择、CAN接收方式下拉框的选择等。
第三步:_make_rtw_hook程序生成脚本设计。
_make_rtw_hook程序脚本设计为:_make_rtw_hook.m、_code_template.cgt、sl_customization.m、slblocks.m、slx库文件设计,所列文件均为代码生成流程控制文件及模块库文件,各文件如图2所示。
本步骤中将第二步中得到多个可配置函数接口模块使用自定义模块库显示到Simulink Brower中,作为库模块便于拖拽到新建模型中。
具体建立自定义模块库包括:
1)创建library的slx库文件,将接口配置模块(自定义模块)添加到文件中保存。
2)创建名为slblocks的M函数,定义模块库显示到SimulinkBrower中的规格,得到slblocks.m文件;
3)slblocks.m与library模型库文件放到同一路径下,并将路径添加到MATLAB的Set Path中。
4)将接口配置模块拖到库文件中保存。将库文件存为Lib_entertainment.slx,并将存储路径添加到MATLAB的搜索路径中。
5)编写slblocks.m文件。
6)编辑sl_customization.m文件。创建自定义库,并将其添加到SimulinkLibrary Browser中,可以像对待模型一样将自定库另存为.SLX文件。
通常需要调用自己编写的脚本文件以实现自定义功能,本实施例中为调用第二步中得到的模块。Matlab提供了在编辑器中添加菜单项的方法,将建模过程中需要使用的功能添加到编辑器中,可以不用退出编辑器直接使用自定义工具,提高建模的效率。实现方法如下:在sl_customization.m文件中注册用户自定义的菜单。通过在sl_customization.m文件中编辑自定义管理器对象属性实现注册自定义菜单的目的,指定添加自定义的位置:SimulinkEditor或者Stateflow Editor和菜单标识,以及自定义函数句柄。
7)刷新SimulinkBrowser,即可看到该库及其中的各可配置函数接口模块。
配置代码生成模板。_code_template.cgt:cgt文件的全程Code GeneraionTemplate,就是代码生成的模板,在该文件其中规定了代码生成的注释形式,以及代码的区块划分,本实施例中将该文件另存为spdc_code_template.cgt。在Simulink配置界面中点击“Template”分类栏,就会显示配置的模板,在该配置模板中配置时选择spdc_code_template.cgt,完成配置以便于后续生成代码。
第四步:设计卡车车身控制器。
依据客户需求,在设计卡车车身控制器的应用层功能模块时,依据需求从simulink Brower中拖拽出对应的可配置函数接口并配置,以实现与驱动层和/或协议层之间的交互,得到卡车车身控制模块。具体地包括设计卡车车身自身功能,以及与其他零部件的通讯功能。比如,与输入输出引脚相关、CAN通信、LIN通信、NM网络管理、UDS、J1939常用功能的通信。在和CAN通信、LIN通信、NM网络管理、UDS、J1939通信时接口采用抽象得到的函数接口。具体为从Simulink Brower中的拖拽处对应的可配置函数接口模块,并选择参数选项。在客户需求更改时,只需要更改可配置函数接口模块中的参数选项即可。最后得到卡车车身控制模块的simulink模型。
卡车车身控制模块的simulink模型通过RTW编译得到rtw文件,将rtw文件依据simulink***TLC文件、模块TLC文件等进行TLC编译,得到MakeFile文件。MakeFile文件包括.c文件和.h文件。
第五步:makefile模板文件夹设计。
makefile模板文件夹包括simulink生成可刷写文件时需要的库文件、makefile文件、h头文件及基于windows编译需要的bat脚本等。该步骤中使用的编译工具指IAR、ARM-NONE-GCC等编译工具。
makefile模板文件夹根据具体项目需要设计以下内容:
1)设定编译器。如为NXP S32K系列单片机则获取arm-none-gcc编译器后,在makefile模块文件中配置该编译器路径。
2)设定输入文件及输出文件路径,即前章节中根据具体项目生成文件的路径,为方便引用,可复制到便于引用地方。
3)TARGET_TYPE设置为静态库(a)。
4)根据项目所需文件设计具体的build、clean等具体make规则。
最后,通过Ctrl+B一键编译得到MCU可执行的.srec文件。本步骤一键编译,无需使用IDE编译代码,实现流程简单,进一步提高了工作效率。
本发明将应用层功能模块与驱动层和/或协议层之间的交互接口抽象成函数接口,并通过GUI设计成可视化配置界面,在界面上设计参数输入框和供参数选择的取值范围内的各值,得到对应的各可配置函数接口并存入simulink Brower中;然后,在设计卡车车身控制器的应用层功能模块时,依据需求的业务逻辑,拖拽调用对应的可配置函数接口并配置,实现对应的需求功能,当客户需求变更时,只需在可配置函数接口界面修改配置即可,无需再修改底层代码,避免了驱动部分因为客户的需求反复修改,降低了公司人员成本,提升工作效率。
Claims (6)
1.一种基于卡车车身控制器的嵌入式软件生成方法,其特征在于:包括以下步骤:
1)在实现车身控制模块功能时,将应用层功能模块与驱动层和/或协议层之间的交互抽象成各函数接口;
2)为各函数接口的参数输入设计可视化配置界面,在界面上设计参数输入框和/或供参数选择的取值范围内的各值,得到对应的各可配置函数接口并存入simulink Brower中;
3)在设计卡车车身控制器的应用层功能模块时,依据需求从simulink Brower中拖拽出对应的可配置函数接口并配置,以实现与驱动层和/或协议层之间的交互,得到卡车车身控制模块;
4)对卡车车身控制模块进行编译,得到卡车车身控制器的嵌入式软件。
2.根据权利要求1所述的基于卡车车身控制器的嵌入式软件生成方法,其特征在于:步骤1)中在sfunction模块中编辑得到函数接口。
3.根据权利要求1所述的基于卡车车身控制器的嵌入式软件生成方法,其特征在于:步骤1)中得到的函数接口经过mask封装。
4.根据权利要求1所述的基于卡车车身控制器的嵌入式软件生成方法,其特征在于:应用层功能模块包括输入输出引脚模块、CAN通信、LIN通信、NM网络管理、UDS和J1939模块中至少两项功能模块。
5.根据权利要求1所述的基于卡车车身控制器的嵌入式软件生成方法,其特征在于:步骤2)中通过自定义库的方式将各可配置函数接口存入simulink Brower中。
6.根据权利要求1至5任一项所述的基于卡车车身控制器的嵌入式软件生成方法,其特征在于:步骤4)中依据makefile模板进行编译。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211667240.8A CN115934054A (zh) | 2022-12-23 | 2022-12-23 | 一种基于卡车车身控制器的嵌入式软件生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211667240.8A CN115934054A (zh) | 2022-12-23 | 2022-12-23 | 一种基于卡车车身控制器的嵌入式软件生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934054A true CN115934054A (zh) | 2023-04-07 |
Family
ID=86555491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211667240.8A Pending CN115934054A (zh) | 2022-12-23 | 2022-12-23 | 一种基于卡车车身控制器的嵌入式软件生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934054A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663502A (zh) * | 2023-06-01 | 2023-08-29 | 上海同星智能科技有限公司 | 汽车开发用文本代码与图形代码的转换方法及转换*** |
CN118151917A (zh) * | 2024-05-09 | 2024-06-07 | 青岛国创智能家电研究院有限公司 | 用于嵌入式产品开发的方法、装置、电子设备和存储介质 |
-
2022
- 2022-12-23 CN CN202211667240.8A patent/CN115934054A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663502A (zh) * | 2023-06-01 | 2023-08-29 | 上海同星智能科技有限公司 | 汽车开发用文本代码与图形代码的转换方法及转换*** |
CN116663502B (zh) * | 2023-06-01 | 2023-11-28 | 上海同星智能科技有限公司 | 汽车开发用文本代码与图形代码的转换方法及转换*** |
CN118151917A (zh) * | 2024-05-09 | 2024-06-07 | 青岛国创智能家电研究院有限公司 | 用于嵌入式产品开发的方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115934054A (zh) | 一种基于卡车车身控制器的嵌入式软件生成方法 | |
US8150673B1 (en) | Partitioning a model in modeling environments | |
US7793273B2 (en) | Type propagation for automatic casting of output types in a data flow program | |
CN106021816B (zh) | 一种基于行为树的分布式***行为仿真分析工具的实现方法 | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN101777004A (zh) | 面向服务环境中基于模板实现bpel子流程复用的方法及*** | |
CN112199086A (zh) | 自动编程控制***、方法、装置、电子设备及存储介质 | |
CN103744647A (zh) | 一种基于工作流GPD的Java工作流开发***及其方法 | |
CN111290954B (zh) | 一种基于uvm的fpga构件可视化测试框架和方法 | |
CN111624965A (zh) | 一种工业智能制造的组态*** | |
CN110209389A (zh) | 一种基于xml的数据生成工具开发*** | |
CN104063231B (zh) | 一种基于hit‑tena的试验资源快速接入方法 | |
CN114460925B (zh) | 一种电动汽车控制器can接口hil自动化测试方法 | |
CN106096159B (zh) | 一种云平台下的分布式***行为仿真分析***的实现方法 | |
Handley et al. | Maintaining the consistency of sysml model exports to XML metadata interchange (XMI) | |
CN110989549A (zh) | 用于列车控制***的软件测试通用自动化控制方法及装置 | |
CN111399829B (zh) | 一种基于模型驱动的波形建模方法及终端 | |
CN110989554B (zh) | 新能源整车集成控制器硬件在环测试用例库建立方法 | |
CN101976196B (zh) | 一种面向“服务质量”的代码自动生成方法 | |
CN105446883B (zh) | 一种基于数据配置工具的模型验证分析方法 | |
CN115357300A (zh) | 一种assetbundle资源的批量打包与分步加载***及方法 | |
CN115562634A (zh) | 面向雷达业务流程的可视化开发平台 | |
Maschotta et al. | Model-driven aspect-specific systems engineering in the automotive domain | |
CN114357672A (zh) | 一种基于模型的航电***的仿真验证方法 | |
CN115686439A (zh) | 一种车辆的电子电气架构变型管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |