[0001]
本发明涉及通信技术领域,具体涉及一种上位机与下位机的数据传输方法、一种上位机与下位机的数据传输装置、一种计算机设备和一种非临时性计算机可读存储介质。
背景技术:[0002]
以pc机作为上位机,单片机等作为下位机的控制系统中,pc(personal computer,个人计算机)机通常以软件界面进行人机交互,以串行或者can(controller area network,控制器局域网络)通信方式与下位机进行积极交互,定期向上位机提供对象及本身的工作状态信息或上位机设置下位机运行过程中的一些调试参数等。其中,在配合模块的调试过程中,串口助手和can助手是不可或缺的一种调试工具。
[0003]
然而,相关技术中,上位机与下位机通信过程中,存在如下技术问题:
[0004]
1、串口和can助手设置和显示都需要自己对照特定的协议填写和解析,内容复杂还很容易出错;
[0005]
2、人工对照具体的报文的含义时间延迟比较多,不能对某个参数变化作出及时的处理;
[0006]
3、界面的直观性和可编辑性较差。
技术实现要素:[0007]
本发明为解决上述技术问题,提供了一种上位机与下位机的数据传输方法,该方法将串口和can通信结合在一起,满足更多项目的开发调试,数据内容可直接解析到名称对应位置,简单清晰明了,增加或减少数据时,只需要在excel表中增添和删除,再替换paradata.c(c语言源文件)和paradata.h文件(c语言头文件)即可,不需要修改程序,提高了开发的效率,且将解析后的报文保存下来,更加方便查找内容信息。
[0008]
本发明采用的技术方案如下:
[0009]
本发明第一方面实施例提出了一种上位机与下位机的数据传输方法,所述上位机与所述下位机通过串口和can通信,所述方法包括以下步骤:将参数变量的属性写入excel(电子表格软件)表格中,所述表格的每一行代表一个参数变量,每个参数变量对应至少一个属性;将所述excel表格生成一个与表格内容一一对应的paradata.c文件和paradata.h文件并存储至所述下位机中;上位机读取所述excel表,将所述excel表中的参数属性添加到串口和can通信协议中,以通过所述串口和can通信协议与所述下位机进行通信;所述下位机对所述paradata.c文件和所述paradata.h文件进行数据解析和参数变量的属性提取,实现数据传输。
[0010]
根据本发明的一个实施例,所述属性包括参数变量的名称、所在的组号、位号、单位、可读写性、最大值、最小值、参数变量名以及参数的数据类型。
[0011]
根据本发明的一个实施例,利用excel vba程序编程功能生成所述paradata.c文件和所述paradata.h文件。
[0012]
根据本发明的一个实施例,所述上位机为pc机,所述下位机为单片机。
[0013]
本发明的第二方面实施例提出了一种上位机与下位机的数据传输装置,所述上位机与所述下位机通过串口和can通信,所述装置包括:写入模块,所述写入模块用于将参数变量的属性写入excel表格中,所述表格的每一行代表一个参数变量,每个参数变量对应至少一个属性;生成模块,所述生成模块用于将所述excel表格生成一个与表格内容一一对应的paradata.c文件和paradata.h文件并存储至所述下位机中;上位机读取所述excel表,将所述excel表中的参数属性添加到串口和can通信协议中,以通过所述串口和can通信协议与所述下位机进行通信;所述下位机对所述paradata.c文件和所述paradata.h文件进行数据解析和参数变量的属性提取,实现数据传输。
[0014]
根据本发明的一个实施例,所述属性包括参数变量的名称、所在的组号、位号、单位、可读写性、最大值、最小值、参数变量名以及参数的数据类型。
[0015]
根据本发明的一个实施例,所述生成模块利用所述excel vba程序编程功能生成所述paradata.c文件和所述paradata.h文件。
[0016]
根据本发明的一个实施例,所述上位机为pc机,所述下位机为单片机。
[0017]
本发明的第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现本发明第一方面实施例所述的上位机与下位机的数据传输方法。
[0018]
本发明的第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明第一方面实施例所述的上位机与下位机的数据传输方法。
[0019]
本发明的有益效果:
[0020]
1、增加了参数的名称,数据内容直接解析到名称对应位置,简单清晰明了;
[0021]
2、增加或减少数据时,只需要在excel表中增添和删除,再替换paradata.c和paradata.h文件即可,不需要修改程序,提高了开发的效率;
[0022]
3、可将解析后的报文保存下来,更加方便查找内容信息;
[0023]
4、将串口和can通信结合在一起,满足更多项目的开发调试。
附图说明
[0024]
图1是根据本发明一个实施例的上位机与下位机的数据传输方法的流程图;
[0025]
图2是根据本发明一个实施例的上位机与下位机的数据传输装置的方框示意图。
具体实施方式
[0026]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027]
图1是根据本发明一个实施例的上位机与下位机的数据传输方法的流程图。上位机与下位机通过串口和can通信,如图1所示,数据传输方法包括以下步骤:
[0028]
s1,将参数变量的属性写入excel表格中,表格的每一行代表一个参数变量,每个
参数变量对应至少一个属性。
[0029]
其中,在本发明的一个实施例中,如表1所示,属性包括参数变量的名称、所在的组号(第几个表)、位号(所在表的第几行)、单位、可读写性、最大值、最小值、参数变量名以及参数的数据类型数据类型(布尔b、整型i、无符号整形ui,长整型l,无符号长整型ul,浮点f,字符串s)等。
[0030]
表1
[0031][0032]
可以理解,表1中示出的典型的参数变量的属性,参数变量的属性还可以包括其它属性,例如通讯系数、项目标识等,根据实际参数变量的情况预设即可,本发明中不再进行赘述。
[0033]
s2,根据excel表格生成一个与表格内容一一对应的paradata.c文件和paradata.h文件并存储至下位机中。
[0034]
进一步地,根据本发明的一个实施例,可以利用excel vba程序编程功能生成所述paradata.c文件和paradata.h文件。
[0035]
s3,上位机读取excel表,将excel表中的参数属性添加到串口和can通信协议中,以通过串口和can通信协议与下位机进行通信。
[0036]
s4,下位机对paradata.c文件和paradata.h文件进行数据解析和参数变量的属性提取,实现数据传输。
[0037]
具体的,预先将参数变量的属性全部写入excel表格中,每一行代表一个参数变量,包括参数的名称、所在的组号(第几个表)和位号(所在表的第几行)、单位、可读写性、设置的最大值和最小值、参数变量名以及参数的数据类型等。然后,利用excel自带的程序编程功能,将excel表格生成一个可以索引的与表格内容一一对应的paradata.c和paradata.h文件供下位机使用。上位机读取excel表中的内容显示并将表中的参数属性组成协议中的一部分用于串口和can通信的数据发送和接收后的解析;下位机将接收到的数据通过对paradata.c和paradata.h文件的索引写入或读取对应的变量。由此,完成上位机与下位机的数据传输。
[0038]
在根据需要增添或减少参数时,只需要在表格中增添或减少一条数据,再生成paradata.c和paradata.h文件替换即可,除此,上位机和下位机的程序不用再做修改。
[0039]
也就是说,先按照规则填写excel表格,生成下位机所需的源文件和头文件,上位机读取表格内容显示并添加到协议中,上位机根据包含组号和位号等信息的数据与下位机通信,下位机通过与表格对应的源文件和头文件进行数据解析和提取,从而达成数据交流。
[0040]
在本发明的实施例中,上位机可以为pc机,下位机可以为单片机。
[0041]
由上述可知,本发明提出的上位机与下位机的数据传输方法,具有如下的有益效果:
[0042]
1、增加了参数的名称,数据内容直接解析到名称对应位置,简单清晰明了;
[0043]
2、增加或减少数据时,只需要在excel表中增添和删除,再替换paradata.c和paradata.h文件即可,不需要修改程序,提高了开发的效率;
[0044]
3、可将解析后的报文保存下来,更加方便查找内容信息;
[0045]
4、将串口和can通信结合在一起,满足更多项目的开发调试。
[0046]
综上所述,根据本发明实施例的上位机与下位机的数据传输方法,将参数变量的属性写入excel表格中,根据excel表格生成一个与表格内容一一对应的paradata.c文件和paradata.h文件并存储至下位机中,上位机读取excel表,将excel表中的参数属性添加到串口和can通信协议中,以通过串口和can通信协议与下位机进行通信,下位机对paradata.c文件和paradata.h文件进行数据解析和参数变量的属性提取,实现数据传输。由此,可以将串口和can通信结合在一起,满足更多项目的开发调试,增加或减少数据时,只需要在excel表中增添或删除,再替换paradata.c和paradata.h文件即可,提高了开发的效率。
[0047]
与上述的上位机与下位机的数据传输方法相对应,本发明还提出一种上位机与下位机的数据传输装置。由于本发明的装置实施例与上述的方法实施例相对应,对于装置实施例中未披露的细节可参照上述的方法实施例,本发明中不再进行赘述。
[0048]
图2是根据本发明一个实施例的上位机与下位机的数据传输装置的方框示意图。如图2所示,该装置包括:写入模块1、生成模块2。
[0049]
其中,写入模块1用于将参数变量的属性写入excel表格中,表格的每一行代表一个参数变量,每个参数变量对应至少一个属性;生成模块2用于将excel表格生成一个与表格内容一一对应的paradata.c文件和paradata.h文件并存储至下位机3中。上位机4读取excel表,将excel表中的参数属性添加到串口和can通信协议中,以通过串口和can通信协议与下位机3进行通信;下位机3对paradata.c文件和paradata.h文件进行数据解析和参数变量的属性提取,实现数据传输。
[0050]
根据本发明的一个实施例,属性包括参数变量的名称、所在的组号、位号、单位、可读写性、最大值、最小值、参数变量名以及参数的数据类型。
[0051]
根据本发明的一个实施例,生成模块2利用excel vba程序编程功能生成paradata.c文件和paradata.h文件。
[0052]
根据本发明的一个实施例,上位机4可以为pc机,下位机3可以为单片机。
[0053]
根据本发明实施例的上位机与下位机的数据传输装置,通过写入模块将参数变量的属性写入excel表格中,表格的每一行代表一个参数变量,每个参数变量对应至少一个属性,生成模块根据excel表格生成一个与表格内容一一对应的paradata.c文件和paradata.h文件并存储至下位机中,上位机读取excel表,将excel表中的参数属性添加到
串口和can通信协议中,以通过串口和can通信协议与下位机进行通信,下位机对paradata.c文件和paradata.h文件进行数据解析和参数变量的属性提取,实现数据传输。由此,可以将串口和can通信结合在一起,满足更多项目的开发调试,增加或减少数据时,只需要在excel表中增添或删除,再替换paradata.c和paradata.h文件即可,提高了开发的效率。
[0054]
此外,本发明还提出一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时,实现上述的上位机与下位机的数据传输方法。
[0055]
根据本发明实施例的计算机设备,存储在存储器上的计算机程序被处理器执行时,将参数变量的属性写入excel表格中,根据excel表格生成一个与表格内容一一对应的paradata.c文件和paradata.h文件并存储至下位机中,上位机读取excel表,将excel表中的参数属性添加到串口和can通信协议中,以通过串口和can通信协议与下位机进行通信,下位机对paradata.c文件和paradata.h文件进行数据解析和参数变量的属性提取,实现数据传输,由此,可以将串口和can通信结合在一起,满足更多项目的开发调试,增加或减少数据时,只需要在excel表中增添或删除,再替换paradata.c和paradata.h文件即可,提高了开发的效率。
[0056]
此外,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的上位机与下位机的数据传输方法。
[0057]
根据本发明实施例的非临时性计算机可读存储介质,存储在其上的计算机程序被处理器执行时,将参数变量的属性写入excel表格中,根据excel表格生成一个与表格内容一一对应的paradata.c文件和paradata.h文件并存储至下位机中,上位机读取excel表,将excel表中的参数属性添加到串口和can通信协议中,以通过串口和can通信协议与下位机进行通信,下位机对paradata.c文件和paradata.h文件进行数据解析和参数变量的属性提取,实现数据传输,由此,可以将串口和can通信结合在一起,满足更多项目的开发调试,增加或减少数据时,只需要在excel表中增添或删除,再替换paradata.c和paradata.h文件即可,提高了开发的效率。
[0058]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0059]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。