一种基于MATLAB生成控制器CAN交互层的方法及系统技术方案

技术编号:10008265 阅读:165 留言:0更新日期:2014-05-07 14:33
本发明专利技术提供了一种基于MATLAB自动生成控制器CAN交互层C代码的方法及系统,所述方法包括以下步骤:步骤S01,获取运行信号;步骤S02,根据运行信号,查找CAN数据库的文本信息;步骤S03,将查找到的CAN数据库的文本信息进行处理,得到生成交互层所需的CAN数据库信息;步骤S04,根据生成交互层所需的CAN数据库信息以及按照CAN数据库的格式,生成交互层代码文件。该方法和系统不需要手动编写交互层代码,从而减少开发代码的时间,提高了工作效率。

【技术实现步骤摘要】
一种基于MATLAB生成控制器CAN交互层的方法及系统
本专利技术涉及计算机和自动控制
,尤其涉及一种基于MATLAB生成控制器CAN交互层的方法及系统。
技术介绍
CAN(ControllerAreaNetwork)已经成为一种最为常用的车用控制器局域网通信协议,这种通信协议规定了每帧最长64位的数据包。在控制器软件应用中,需要将这种数据包根据事先定义好的数据库,解析成具有物理意义的实际信号。根据CAN数据库将数据包解析成实际物理信号,在控制器软件分层中称为“交互层”。交互层的软件开发复杂度,会随着CAN数据库的增大而增加。特别是车用局域网上的CAN信号量十分巨大,从而导致CAN信号的软件解析以及其它的相关软件处理工作量很大。如果采用手写代码方式,那么手动C语言编程需要消耗大量时间,而且如果CAN数据库做一些细小的修改,都需要软件工程师根据数据库的改动去手动修改代码,浪费大量人力物力,并且不能保证准确度。另外,在交互层代码中,只要指定了其中一帧CAN信号的解析方式,其它CAN信号的解析方式需要根据CAN数据库里的信息进行类似处理。因此如果采用手写代码的方式去编写CAN信息的交互层需要耗费大量时间和精力,并且维护和修改十分不方便。
技术实现思路
本专利技术的目的旨在至少解决上述技术缺陷之一,提供一种基于MATLAB自动生成控制器CAN交互层C代码的方法及系统。本专利技术提供一种基于MATLAB生成控制器CAN交互层的方法,所述方法包括以下步骤:步骤S01,获取运行信号;步骤S02,根据运行信号,查找CAN数据库的文本信息;步骤S03,将查找到的CAN数据库的文本信息进行处理,得到生成交互层所需的CAN数据库信息;步骤S04,根据生成交互层所需的CAN数据库信息以及按照CAN数据库的格式,生成交互层代码文件。本专利技术还提供一种基于MATLAB生成控制器CAN交互层的系统,所述系统与MATLAB工具连接,所述系统包括获取模块、查找模块、处理模块以及生成模块;获取模块,用于获取运行信号;查找模块,用于根据获取模块的运行信号,查找CAN数据库的文本信息;处理模块,用于将查找模块中CAN数据库的文本信息进行处理,得到生成交互层所需的CAN数据库信息;生成模块,用于根据处理模块的生成交互层所需的CAN数据库信息以及按照CAN数据库的格式,生成交互层代码文件。从上述的方案可以看出,通过获取到脚本程序的运行信号,使得从搜集CAN数据库的文本信息到生成交互层代码文件的过程都是自动生成的,不需要手动编写交互层代码,提高交互层代码的准确性以及开发代码的时间,从而减少控制器的开发时间,提高了工作效率且提高控制器的安全性,另外在软件修改和维护过程中,如果更改了CAN数据库的相关内容,只需修改CAN数据库,然后重新获取一次脚本程序的运行信号,便可以重新得到改动后CAN数据库的交互层代码了,缩短控制器的开发周期且提高控制器的安全性。附图说明图1为本专利技术基于MATLAB生成控制器CAN交互层的方法一种实施例的流程图;图2为本专利技术查找CAN数据库的文本信息的方法一种实施例的流程图;图3为本专利技术基于MATLAB生成控制器CAN交互层的方法另一种实施例的流程图;图4为本专利技术生成交互层代码文件的方法一种实施例的流程图;图5为本专利技术基于MATLAB生成控制器CAN交互层的系统一种实施例的结构框图。具体实施方式为了使本专利技术所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术提供一种实施例的基于MATLAB生成控制器CAN交互层的方法,如图1所示,所述方法包括以下步骤:步骤S01,获取运行信号;步骤S02,根据运行信号,查找CAN数据库的文本信息;步骤S03,将查找到的CAN数据库的文本信息进行处理,得到生成交互层所需的CAN数据库信息;步骤S04,根据生成交互层所需的CAN数据库信息以及按照CAN数据库的格式,生成交互层代码文件。在步骤S01中,所述运行信号即脚本程序的运行信号,其中脚本程序包括查找程序、调用程序等,MATALB软件中编写脚本程序,接着运行脚本程序,通过脚本程序过与MATALB软件进行信息交互,便可以自动生成交互层代码文件,然后将交互层代码文件保存到控制器中,控制器根据交互层的协议进行信号通讯。从上述的方案可以看出,通过获取到脚本程序的运行信号,使得从搜集CAN数据库的文本信息到生成交互层代码文件的过程都是自动生成的,不需要手动编写交互层代码,提高交互层代码的准确性以及开发代码的时间,从而减少控制器的开发时间,提高了工作效率且提高控制器的安全性,另外在软件修改和维护过程中,如果更改了CAN数据库的相关内容,只需修改CAN数据库,然后重新获取一次脚本程序的运行信号,便可以重新得到改动后CAN数据库的交互层代码了,从而缩短控制器的开发周期且提高控制器的安全性。在具体实施中,如图2所示,所述步骤S02具体包括:步骤S021,根据运行信号,以文本格式打开CAN数据库文件;步骤S022,根据CAN数据库文件的特定标记,查找CAN数据库的文本信息。在步骤S021,CAN数据库文件的存储类型为CAN.dbc,如果通过CANdbc++软件打开CAN数据库文件,得到的就是CAN数据库的图形化配置界面,但是在本专利技术中,需要获取CAN数据库文件的文本信息,因此利用MATLAB软件以文本格式打开CAN数据库文件,得到CAN数据库文件的文本代码信息。优选的,如图2所示,所述步骤S022具体包括:步骤S0221,逐行读取CAN数据库中的信息;步骤S0222,判断当前读取的行信息中是否包含特定标记,如果是,进入步骤S0224保存该信息的内容,如果否,进入步骤S0223;步骤S0223,判断当前读取的行信息是否为CAN数据库的最后一行,如果否,进入步骤S0221;步骤S0224,保存该行信息的内容,进入步骤S0223。在步骤S0223中,如果当前读取的行信息为CAN数据库的最后一行时,那么逐行读取CAN数据库中的信息的过程结束,即查找过程结束,已经查找到CAN数据库的文本信息。在步骤S022中,所述特定标记包括CAN消息的定义标记和信号属性标记,CAN消息的定义标记和信号属性标记在CAN数据库中已经事先设置好的。比如设置CAN消息的定义标记为“BO”,读取CAN数据库中的每一行的信息,当该行中存在“BO”标记时,该标记后的第一个字符为CAN消息的ID号,下一个字符为CAN消息的ID名,再下一个字符为CAN消息的长度,最后一个字符为发送节点名。而设置信号属性标记为“SG”,也是读取CAN数据库中的每一行的信息,当该行中存在“SG”标记时,该标记后的第一个字符为信号名,下一个字符为信号起始位置及长度,再下一个字符为偏移量和比例因子,再下一个字符为信号范围,最后一个字符为接收节点名。也就是说利用MATLAB的库函数,逐行读取CAN数据库中的信息,然后判断当前读取的行信息是否“BO”标记或“SG”标记,如果是就保存“BO”标记或“SG”标记之后的字符信息,即CAN数据库的文本信息。那么在步骤S03中,由于每一帧CAN消息实际上是一个8*8的矩本文档来自技高网...
一种基于MATLAB生成控制器CAN交互层的方法及系统

【技术保护点】
一种基于MATLAB生成控制器CAN交互层的方法,其特征在于:所述方法包括以下步骤:步骤S01,获取运行信号;步骤S02,根据运行信号,查找CAN数据库的文本信息;步骤S03,将查找到的CAN数据库的文本信息进行处理,得到生成交互层所需的CAN数据库信息;步骤S04,根据生成交互层所需的CAN数据库信息以及按照CAN数据库的格式,生成交互层代码文件。

【技术特征摘要】
1.一种基于MATLAB生成控制器CAN交互层的方法,其特征在于:所述方法包括以下步骤:步骤S01,获取MATALB软件中编写的脚本程序的运行信号;步骤S02,根据运行信号,查找CAN数据库的文本信息;步骤S03,将查找到的CAN数据库的文本信息进行处理,得到生成交互层所需的CAN数据库信息;步骤S04,根据生成交互层所需的CAN数据库信息以及按照CAN数据库的格式,生成交互层代码文件。2.如权利要求1所述的方法,其特征在于:所述步骤S02具体包括:步骤S021,根据运行信号,以文本格式打开CAN数据库文件;步骤S022,根据CAN数据库文件的特定标记,查找CAN数据库的文本信息。3.如权利要求2所述的方法,其特征在于:所述步骤S022具体包括:步骤S0221,逐行读取CAN数据库中的信息;步骤S0222,判断当前读取的行信息中是否包含特定标记,如果是,进入步骤S0224保存该信息的内容,如果否,进入步骤S0223;步骤S0223,判断当前读取的行信息是否为CAN数据库的最后一行,如果否,进入步骤S0221;步骤S0224,保存该行信息的内容,进入步骤S0223。4.如权利要求3所述的方法,其特征在于:所述特定标记包括CAN消息的定义标记和信号属性标记。5.如权利要求1所述的方法,其特征在于:在步骤S02之后,所述方法还包括以下步骤:步骤S05,以表格形式对CAN数据库的文本信息进行存储。6.如权利要求1所述的方法,其特征在于:在步骤S03之后,所述方法还包括以下步骤:步骤S06,以表格形式对生成交互层所需的CAN数据库信息进行存储。7....

【专利技术属性】
技术研发人员:何涛徐吉汉江建山伊海霞甘新华范刚罗宇亮杨春雷
申请(专利权)人:广州汽车集团股份有限公司
类型:发明
国别省市:广东;44

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

1