一种基于单片机can协议可视化配置和自动解析方法
技术领域
1.本发明涉及单片机can通信技术领域,更具体的说是涉及一种基于单片机can协议可视化配置和自动解析方法。
背景技术:2.当前的单片机can通信程序一般将通信协议内嵌到程序当中,这种方法会存在以下缺点:1.当没有获取到准确协议的时候无法完成编码工作;2.对于功能相同协议不同的单片机程序,需要开发多份程序,加大软件开发工作量,且不利于版本管理;3.对于功能相同协议不同的单片机程序的二次开发,需要重新编码,可能会引入未知错误;4.在程序中嵌入协议不够直观,容易发生配置错误。部分单片机使用文件系统对协议以文本的方式进行存储,文件系统本身占据一定空间,文本方式存储效率也不够高,导致对系统存储的大量占用,影响程序执行效率,不适合传统的小容量单片机开发。
3.因此,如何实现单片机中协议与配置的分离是本领域技术人员亟需解决的问题。
技术实现要素:4.有鉴于此,为了至少解决上述部分问题,本发明提供了一种基于单片机can协议可视化配置和自动解析方法,实现了在小容量单片机中协议与配置的分离,适用于基于小型单片机的can通信程序的快速开发。
5.为了实现上述目的,本发明采用如下技术方案:
6.一种基于单片机can协议可视化配置和自动解析方法,包括:
7.编写can通讯应用程序,完成can协议解析程序开发;
8.可视化配置工具配置can通讯协议,并保存至配置文件中;
9.将can协议解析程序和配置文件写入单片机;
10.单片机基于can协议解析程序和配置在配置文件中的can通讯协议完成对can数据自动解析。
11.优选的,可视化配置工具配置can通讯协议,并保存至配置文件中具体包括:
12.可视化配置工具配置can通信协议,生成协议配置信息;
13.根据协议配置信息生成文件头,对文件头和协议配置信息进行运算得到md5码,将文件头、协议配置信息和md5码组合后保存至配置文件中。
14.优选的,协议配置信息包括发送can帧协议的配置区和接收can帧协议的配置区;
15.文件头包括配置文件字节数、要发送can帧的数量、发送can帧协议的配置区在配置文件中的偏移量、要接收can帧的数量和接收can帧协议的配置区在配置文件中的偏移量。
16.优选的,发送can帧协议的配置区包括发送can帧的id、定时发送的时间间隔、发送can帧中各信息在can帧和程序变量中的位置信息及信号长度信息。
17.优选的,接收can帧协议的配置区包括接收can帧的id、can帧上一次接收的时间信
息、接收can帧中各信息在can帧和程序变量中的位置信息及信号长度信息。
18.优选的,单片机基于can协议解析程序和配置在配置文件中的can通讯协议完成对can数据自动解析包括:初始化、接收解析和发送解析。
19.优选的,can协议解析程序包括接收解析信息的程序变量和待发送信息的程序变量。
20.优选的,初始化包括:
21.基于配置区读取配置文件字节数,根据文件起始位置和配置文件字节数获取配置区域;
22.基于配置区域获取协议配置信息,根据文件头和协议配置信息计算md5码,并与存储在配置文件中的md5码进行校验,相等则校验成功,否则校验失败。
23.优选的,接收解析包括:
24.can接收解析程序从接收缓冲区获取接收到的can帧,将该can帧分别与接收can帧协议的配置区中的接收can帧分别进行can id匹配,匹配成功则将接收can帧的所有信息映射至接收解析信息的程序变量,同时更新接收时间信息到时间戳。
25.优选的,发送解析包括:
26.can发送解析程序获取当前工作时间;
27.从协议配置信息获取一个发送can帧;
28.根据当前工作时间和定时发送的时间间隔判断发送can帧的发送时间是否到达,时间到达则根据发送can帧中各信息在can帧和程序变量中的位置信息及信号长度信息的对应关系将待发送信息程序变量中的所有信息映射至发送can帧中,进行can帧的发送,直至所有发送can帧全部发送。
29.经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于单片机can协议可视化配置和自动解析方法,实现了在小容量单片机中协议与配置的分离方法,解决了在小容量单片机中can协议配置存储困难的问题。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
31.图1附图为本发明提供的基于单片机can协议可视化配置和自动解析方法流程示意图。
32.图2附图为本发明提供的can协议初始化流程图。
33.图3附图为本发明提供的can协议接收解析流程图。
34.图4附图为本发明提供的can协议发送解析流程图。
35.图5附图为本发明提供的可视化工具配置流程图。
具体实施方式
36.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.本发明实施例公开了一种基于单片机can协议可视化配置和自动解析方法,如图1所示,包括:
38.a.编写包含协议中所有可能存在信息的程序变量,包括接收解析信息的程序变量和待发送信息的程序变量,将协议解析代码嵌入到应用程序,在应用程序中操作程序变量完成can协议解析程序开发;
39.b.获取can通信协议,在可视化工具中配置can通信协议得到配置文件;
40.c.使用isp工具将配置文件和can协议解析程序写入单片机,程序正常工作;
41.当can通信协议发生变化,重新在可视化工具中配置协议得到配置文件,然后使用isp工具将配置文件写入单片机即可。
42.d.单片机基于can协议解析程序和配置在配置文件中的can通讯协议完成对can数据自动解析。
43.can通讯协议的配置存储结构:
44.在可视化配置工具和can通讯协议解析算法中采用表1所示的can通讯协议配置存储结构:
45.表1can通讯协议配置存储结构
46.fileheadersendframecfgrecvframecfgmd5
47.其中,fileheader为配置文件总览信息,sendframecfg为发送can帧协议的配置区,recvframecfg为接收can帧协议的配置区。
48.其中,fileheader存储结构设计如表2:
49.表2fileheader存储结构
50.filesizesendframecountsendframeoffsetrecvframecountrecvframeoffset
51.filesize为配置文件字节数,sendframecount为要发送can帧的数量,sendframoffset为sendframecfg在配置文件中的偏移量,recvframecount为要接收can帧的数量,recvframoffset为recvframecfg在配置文件中的偏移量。通过fileheader可以方便地获取相应的配置信息。
52.sendframecfg存储结构设计如表3:sendframecfg配置区中包含sendframecount个发送数据帧的配置信息。
53.表3sendframecfg存储结构
[0054][0055]
其中can id为发送can帧的id,timeinterval为定时发送的时间间隔,signalcfg1~signalcfg8为发送can帧中各信号在can帧和程序变量中的位置信息及信号长度信息,最大支持8个信号配置。
[0056]
recvframecfg存储结构设计如表4:recvframecfg配置区中包含recvframecount个发送数据帧的配置信息。
[0057]
图4recvframecfg存储结构
[0058][0059]
其中can id为接收can帧的id,timestamp为can帧上一次接收的时间信息,signalcfg1~signalcfg8为接收can帧中各信号在can帧和程序变量中的位置信息及信号长度信息,最大支持8个信号配置。
[0060]
进一步,本发明can协议解析程序包含初始化、发送解析和接收解析三部分:
[0061]
初始化具体如图2所示,包括:
[0062]
从配置区读取配置完成初始化,首先冲配置区头部读取配置文件字节数,根据配置文件字节数和文件起始位置获取整个配置区域,配置区域包括配置信息和和md5码,配置信息包括文件头、协议配置信息,配置区尾部为存储的md5码,md5码前边为协议配置信息。根据文件头、协议配置信息计算md5码并与存储的md5码校验,两者相等则校验成功,程序继续执行。否则校验失败,程序退出。
[0063]
can接收解析具体如图3所示,包括:
[0064]
程序运行之后,can接收解析程序从接收缓冲区中获取接收到的can帧,将该can帧与接收can帧协议的配置区中的接收can帧分别进行can id匹配,如果匹配失败,无需进一步处理;否则根据配置区域中存储的映射关系,将接收can帧中的所有信息(包括接收can帧中各信息在can帧和程序变量中的位置信息及信号长度信息)映射到接收解析信息的程序变量,同时更新接收时间信息到时戳,在上层应用程序可以通过操作接收解析信息的程序变量获取can帧中的信息。
[0065]
can发送解析具体如图4所示,包括:
[0066]
程序运行之后,can发送解析程序首先获取当前工作时间,遍历配置区中的发送can帧,对于从协议配置信息获取的每一个can帧,根据当前工作时间和发送时间间隔判断发送时间是否到达,如果发送时间到,根据发送can帧中各信息在can帧和程序变量中的位置信息及信号长度信息的对应关系将待发送信息程序变量中的信息映射到发送can帧,并执行can帧的发送。
[0067]
本发明可视化配置工具配置can通讯协议,并保存至配置文件中具体包括以下步骤,如图5所示:
[0068]
本发明使用可视化协议配置工具生成配置文件。首先在可视化配置工具中配置can通讯协议,配置完成后点击生成配置按钮。可视化工具首先根据表1中的格式生成协议配置信息,根据协议配置信息生成文件头,对文件头和协议配置信息运算得到md5码,将文件头、协议配置信息、md5码组合后保存到配置文件中。为方便下一次修改,将可视化页面保存到数据库中。
[0069]
本发明具有以下优点:
[0070]
在can协议解析算法和可视化工具中采用特殊的can协议配置的存储结构,设计了如图1所示的协议数据组织方法,可以有效地节省单片机存储空间;采用可视化的配置工具提升了can协议和参数的配置速度;完成后的配置保存在可视化工具中,便于后期修改和维护;通过在文件头部存储二进制文件长度、在二进制文件末尾添加32位的md5码,保证配置文件存储的正确性;实现软件和can协议、配置的分离,有效地保持软件的相对稳定,能够更好的适应协议的变更需求;在协议确定之前即可完成软件的开发,提升了软件开发的速度。
[0071]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0072]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。