一种通信协议的变更方法及装置转让专利

申请号 : CN201710202436.2

文献号 : CN107171915B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 施敏捷王中照蔡乾宋久福

申请人 : 苏州精控能源科技有限公司

摘要 :

本发明公开了一种通信协议的变更方法及装置,其中一种方法由连接在目标CAN总线上的第一控制器执行,第一控制器还用于持续向目标CAN总线发送通信报文。该方法包括:获取目标CAN总线网络的通信协议的变更指令;变更指令用于变更目标CAN总线网络的通信协议;获取变更指令中的操作类型标识符及目标报文标识符;根据操作类型标识符确定对通信协议的操作类型,并根据目标报文标识符确定待变更的通信报文;根据操作类型对待变更的通信报文进行变更。通过本发明,在需要变更目标CAN总线网络的通信协议时,无需对CAN总线网络中的控制器的软件一一升级,只需向第一控制器发送变更指令即可,该变更通信协议的过程简单,不容易出错。

权利要求 :

1.一种通信协议的变更方法,其特征在于,由连接在目标CAN总线上的第一控制器执行,所述第一控制器还用于持续向所述目标CAN总线发送通信报文;所述目标CAN总线上还连接有多个第二控制器,所述第二控制器根据所接收到的通信报文确定其所执行的操作;

所述方法包括:

获取目标CAN总线网络的通信协议的变更指令;所述变更指令用于变更所述目标CAN总线网络的通信协议;所述目标CAN总线网络包括通过所述目标CAN总线连接的多个控制器;

获取所述变更指令中的操作类型标识符及目标报文标识符;所述目标报文标识符用于确定待变更的通信报文;

根据所述操作类型标识符确定对通信协议的操作类型,并根据所述目标报文标识符确定待变更的通信报文;

根据所述操作类型对所述待变更的通信报文进行变更;

其中,所述操作类型包括以下任意一者或多者:第一操作类型,用于向所述目标CAN总线网络中新增通信报文;第二操作类型,用于修改所述目标CAN总线网络中已有的通信报文;第三操作类型,用于删除所述目标CAN总线网络中已有的通信报文。

2.根据权利要求1所述的通信协议的变更方法,其特征在于,所述根据所述操作类型对所述待变更的通信报文进行变更的步骤,包括:当所述操作类型为所述第一操作类型时,开始向所述目标CAN总线持续发送新报文;所述新报文的报文标识符与所述变更指令中的目标报文标识符对应,所述新报文的数据域包括所述变更指令中所提供的数据内容;或者,当所述操作类型为所述第二操作类型或所述第三操作类型时,停止向所述目标CAN总线发送旧报文,开始向所述目标CAN总线持续发送新报文;所述旧报文是所述目标CAN总线网络中已有的、报文标识符与所述变更指令中的目标报文标识符对应的通信协议报文;所述新报文的报文标识符与所述变更指令中的目标报文标识符相同,所述新报文的数据域包括所述变更指令所提供的数据内容;或者,当所述操作类型为所述第三操作类型时,停止向所述目标CAN总线发送旧报文;所述旧报文是所述目标CAN总线网络中已有的、报文标识符与所述变更指令中的目标报文标识符对应的通信协议报文。

3.根据权利要求2所述的通信协议的变更方法,其特征在于,所述变更指令中包括报文类型标识符,所述报文类型包括以下任意一者或多者;标准数据帧、扩展数据帧、标准远程帧、扩展远程帧;所述开始向所述目标CAN总线网络持续发送新报文的步骤之前,还包括:当所述操作类型为所述第一操作类型或所述第二操作类型时,根据所述报文类型组织所要发送的新报文。

4.一种通信协议的变更方法,其特征在于,由上位机执行;所述方法包括:

获取对目标CAN总线网络的通信协议所要执行操作的操作类型标识符及目标报文标识符;

根据所述操作类型标识符及目标报文标识符,组织对所述目标CAN总线网络的通信协议的变更指令;

将组织好的变更指令发送至所述目标CAN总线网络中的第一控制器;所述第一控制器连接在目标CAN总线上,用于向所述目标CAN总线发送通信报文;所述目标CAN总线上还连接有多个第二控制器,所述第二控制器根据所接收到的通信报文确定其所执行的操作;

其中,所述操作类型包括以下任意一者或多者:第一操作类型,用于向所述目标CAN总线网络中新增通信报文;第二操作类型,用于修改所述目标CAN总线网络中已有的通信报文;第三操作类型,用于删除所述目标CAN总线网络中已有的通信报文。

5.根据权利要求4所述的通信协议的变更方法,其特征在于,所述组织对所述目标CAN总线网络的通信协议的变更指令的步骤之前,还包括:获取所需变更的通信报文的报文类型标识符,所述报文类型包括以下任意一者或多者:标准数据帧、扩展数据帧、标准远程帧、扩展远程帧。

6.根据权利要求5所述的通信协议的变更方法,其特征在于,当所述操作类型为所述第一操作类型时,且所述报文类型为所述标准数据帧或所述扩展数据帧时,所述组织对所述目标CAN总线网络的通信协议的变更指令的步骤之前,还包括:获取所要新增的通信报文中的数据。

7.一种通信协议的变更装置,其特征在于,用于连接在目标CAN总线上的第一控制器,所述第一控制器还用于持续向所述目标CAN总线发送通信报文;所述目标CAN总线上还连接有多个第二控制器,所述第二控制器根据所接收到的通信报文确定其所执行的操作;所述装置包括:第一获取单元,用于获取目标CAN总线网络的通信协议的变更指令;所述变更指令用于变更所述目标CAN总线网络的通信协议;所述目标CAN总线网络包括通过所述目标CAN总线连接的多个控制器;

第二获取单元,用于获取所述变更指令中的操作类型标识符及目标报文标识符;所述目标报文标识符用于确定待变更的通信报文;

确定单元,用于根据所述操作类型标识符确定对通信协议的操作类型,并根据所述目标报文标识符确定待变更的通信报文;

变更单元,用于根据所述操作类型对所述待变更的通信报文进行变更;

其中,所述操作类型包括以下任意一者或多者:第一操作类型,用于向所述目标CAN总线网络中新增通信报文;第二操作类型,用于修改所述目标CAN总线网络中已有的通信报文;第三操作类型,用于删除所述目标CAN总线网络中已有的通信报文。

8.一种通信协议的变更装置,其特征在于,由上位机执行;所述装置包括:

第三获取单元,用于获取对目标CAN总线网络的通信协议所要执行操作的操作类型标识符及目标报文标识符;

组织单元,用于根据所述操作类型标识符及目标报文标识符,组织对所述目标CAN总线网络的通信协议的变更指令;

发送单元,用于将组织好的变更指令发送至所述目标CAN总线网络中的第一控制器;所述第一控制器连接在目标CAN总线上,用于向所述目标CAN总线发送通信报文;所述目标CAN总线上还连接有多个第二控制器,所述第二控制器根据所接收到的通信报文确定其所执行的操作;

其中,所述操作类型包括以下任意一者或多者:第一操作类型,用于向所述目标CAN总线网络中新增通信报文;第二操作类型,用于修改所述目标CAN总线网络中已有的通信报文;第三操作类型,用于删除所述目标CAN总线网络中已有的通信报文。

说明书 :

一种通信协议的变更方法及装置

技术领域

[0001] 本发明涉及电池管理系统技术领域,具体涉及一种通信协议的变更方法及装置。

背景技术

[0002] 通信协议是指双方实体完成通信或服务所必须遵循的规则和约定,通信协议主要由语法、语义和定时规则(时序)三个要素组成。语法即如何通信,包括数据的格式、编码和信号等级(电平的高低)等;语义即通信内容,包括数据内容、含义以及控制信息等;定时规则即何时通信,包括通信的顺序、速率匹配和排序等。
[0003] 预先制定好的通信协议往往写入通信网络中的控制器软件中,从而在系统运行的过程中控制器A向控制器B所发送的报文能够被控制器B成功解析,控制器B能够获知该报文中的各个域是什么含义。BMS(Battery Management System,电池管理系统)通过CAN(Controller Area Network,控制器局域网络)总线接口与车载总控制器、电机控制器、能量控制系统、车载显示系统等进行实时通信的通信网络,电动汽车中与BMS相关的CAN总线网络按照功能可以分为整车CAN总线网络、充电CAN总线网络、放电总线CAN网络以及其他具有特定功能的CAN总线网络。CAN总线网络中的数据帧由SOF帧起始域、仲裁域、控制域、数据域、CRC校验域、ACK应答域和帧结束域组成。
[0004] 然而,在实际运行的过程中,通信网络的通信协议中的部分内容可能根据实际应用需要而做改变。例如,在电池管理系统中,随着电池技术的发展与进步,适用于充电CAN网络和放电CAN网络(即充电CAN网络和放电CAN网络中的控制器会根据这些参数执行相应的操作)的最大充电电流、最大放电电流、最高充电电压、最低充电电压等参数需要做变更;或者,CAN网络中控制器的所执行的某个操作需要变更……由于通信协议写入了通信网络中的控制器软件中,因此通常情况需要对该通信网络中的各个控制器的软件进行升级,才能够实现该通信网络的通信协议的更改。
[0005] 然而,这种方式需要逐个对通信网络中控制器的软件进行升级,该过程较为繁琐;而且通信网络中的控制器较多的情况下,还容易出错。

发明内容

[0006] 有鉴于此,本发明实施例提供了一种通信协议的变更方法及装置,以解决现有方式变更通信协议时需要逐个对控制器的软件升级时过程繁琐、容易出错的问题。
[0007] 根据第一方面,本发明实施例提供了一种通信协议的变更方法,由连接在目标CAN总线上的第一控制器执行,所述第一控制器还用于持续向所述目标CAN总线发送通信报文;所述目标CAN总线上还连接有多个第二控制器,所述第二控制器根据所接收到的通信报文确定其所执行的操作;所述方法包括:获取目标CAN总线网络的通信协议的变更指令;所述变更指令用于变更所述目标CAN总线网络的通信协议;所述目标CAN总线网络包括通过所述目标CAN总线连接的多个控制器;获取所述变更指令中的操作类型标识符及目标报文标识符;所述目标报文标识符用于确定待变更的通信报文;根据所述操作类型标识符确定对通信协议的操作类型,并根据所述目标报文标识符确定待变更的通信报文;根据所述操作类型对所述待变更的通信报文进行变更。
[0008] 可选地,所述操作类型包括以下任意一者或多者:第一操作类型,用于向所述目标CAN总线网络中新增通信报文;第二操作类型,用于修改所述目标CAN总线网络中已有的通信报文;第三操作类型,用于删除所述目标CAN总线网络中已有的通信报文。
[0009] 可选地,所述根据所述操作类型对所述待变更的通信报文进行变更的步骤,包括:当所述操作类型为所述第一操作类型时,开始向所述目标CAN总线持续发送新报文;所述新报文的报文标识符与所述变更指令中的目标报文标识符对应,所述新报文的数据域包括所述变更指令中所提供的数据内容;或者,当所述操作类型为所述第二操作类型或所述第三操作类型时,停止向所述目标CAN总线发送旧报文,开始向所述目标CAN总线持续发送新报文;所述旧报文是所述目标CAN总线网络中已有的、报文标识符与所述变更指令中的目标报文标识符对应的通信协议报文;所述新报文的报文标识符与所述变更指令中的目标报文标识符相同,所述新报文的数据域包括所述变更指令所提供的数据内容;或者,当所述操作类型为所述第三操作类型时,停止向所述目标CAN总线发送旧报文;所述旧报文是所述目标CAN总线网络中已有的、报文标识符与所述变更指令中的目标报文标识符对应的通信协议报文。
[0010] 可选地,所述变更指令中包括报文类型标识符,所述报文类型包括以下任意一者或多者;标准数据帧、扩展数据帧、标准远程帧、扩展远程帧;所述开始向所述目标CAN总线网络持续发送新报文的步骤之前,还包括:当所述操作类型为所述第一操作类型或所述第二操作类型时,根据所述报文类型组织所要发送的新报文。
[0011] 根据第二方面,本发明实施例提供了一种通信协议的变更方法,由上位机执行;所述方法包括:获取对目标CAN总线网络的通信协议所要执行操作的操作类型标识符及目标报文标识符;根据所述操作类型标识符及目标报文标识符,组织对所述目标CAN总线网络的通信协议的变更指令;将组织好的变更指令发送至所述目标CAN总线网络中的第一控制器;所述第一控制器连接在目标CAN总线上,用于向所述目标CAN总线发送通信报文;所述目标CAN总线上还连接有多个第二控制器,所述第二控制器根据所接收到的通信报文确定其所执行的操作。
[0012] 可选地,所述操作类型包括以下任意一者或多者:第一操作类型,用于向所述目标CAN总线网络中新增通信报文;第二操作类型,用于修改所述目标CAN总线网络中已有的通信报文;第三操作类型,用于删除所述目标CAN总线网络中已有的通信报文。
[0013] 可选地,所述组织对所述目标CAN总线网络的通信协议的变更指令的步骤之前,还包括:获取所需变更的通信报文的报文类型标识符,所述报文类型包括以下任意一者或多者:标准数据帧、扩展数据帧、标准远程帧、扩展远程帧。
[0014] 可选地,当所述操作类型为所述第一操作类型时,且所述报文类型为所述标准数据帧或所述扩展数据帧时,所述组织对所述目标CAN总线网络的通信协议的变更指令的步骤之前,还包括:获取所要新增的通信报文中的数据。
[0015] 可选地,所述组织对所述目标CAN总线网络的通信协议的变更指令的步骤之前,还包括:获取目标CAN总线网络标识符;所述将组织好的变更指令发送至所述目标CAN总线网络中的第一控制器的步骤,包括:根据所述目标CAN总线网络标识符确定目标CAN总线网络;将组织好的变更指令发送至所述目标CAN总线网络中的第一控制器。
[0016] 根据第三方面,本发明实施例提供了通信协议的变更装置,用于连接在目标CAN总线上的第一控制器,所述第一控制器还用于持续向所述目标CAN总线发送通信报文;所述目标CAN总线上还连接有多个第二控制器,所述第二控制器根据所接收到的通信报文确定其所执行的操作;所述装置包括:第一获取单元,用于获取所述目标CAN总线网络的通信协议的变更指令;所述变更指令用于变更所述目标CAN总线网络的通信协议;所述目标CAN总线网络包括通过所述目标CAN总线连接的多个控制器;第二获取单元,用于获取所述变更指令中的操作类型标识符及目标报文标识符;所述目标报文标识符用于确定待变更的通信报文;确定单元,用于根据所述操作类型标识符确定对通信协议的操作类型,并根据所述目标报文标识符确定待变更的通信报文;变更单元,用于根据所述操作类型对所述待变更的通信报文进行变更。
[0017] 可选地,所述操作类型包括以下任意一者或多者:第一操作类型,用于向所述目标CAN总线网络中新增通信报文;第二操作类型,用于修改所述目标CAN总线网络中已有的通信报文;第三操作类型,用于删除所述目标CAN总线网络中已有的通信报文。
[0018] 可选地,所述变更单元包括:第一变更子单元,用于当所述操作类型为所述第一操作类型时,开始向所述目标CAN总线持续发送新报文;所述新报文的报文标识符与所述变更指令中的目标报文标识符对应,所述新报文的数据域包括所述变更指令中所提供的数据内容;或者,第二变更子单元,用于当所述操作类型为所述第二操作类型或所述第三操作类型时,停止向所述目标CAN总线发送旧报文,开始向所述目标CAN总线持续发送新报文;所述旧报文是所述目标CAN总线网络中已有的、报文标识符与所述变更指令中的目标报文标识符对应的通信协议报文;所述新报文的报文标识符与所述变更指令中的目标报文标识符相同,所述新报文的数据域包括所述变更指令所提供的数据内容;或者,第三变更子单元,用于当所述操作类型为所述第三操作类型时,停止向所述目标CAN总线发送旧报文;所述旧报文是所述目标CAN总线网络中已有的、报文标识符与所述变更指令中的目标报文标识符对应的通信协议报文。
[0019] 可选地,所述变更指令中包括报文类型标识符,所述报文类型包括以下任意一者或多者;标准数据帧、扩展数据帧、标准远程帧、扩展远程帧;所述变更单元还包括:组织子单元,用于当所述操作类型为所述第一操作类型或所述第二操作类型时,开始向所述目标CAN总线网络持续发送新报文之前,根据所述报文类型组织所要发送的新报文。
[0020] 根据第四方面,本发明实施例提供了一种通信协议的变更装置,由上位机执行;所述装置包括:第三获取单元,用于获取对目标CAN总线网络的通信协议所要执行操作的操作类型标识符及目标报文标识符;组织单元,用于根据所述操作类型标识符及目标报文标识符,组织对所述目标CAN总线网络的通信协议的变更指令;发送单元,用于将组织好的变更指令发送至所述目标CAN总线网络中的第一控制器;所述第一控制器连接在目标CAN总线上,用于向所述目标CAN总线发送通信报文;所述目标CAN总线上还连接有多个第二控制器,所述第二控制器根据所接收到的通信报文确定其所执行的操作。
[0021] 可选地,所述操作类型包括以下任意一者或多者:第一操作类型,用于向所述目标CAN总线网络中新增通信报文;第二操作类型,用于修改所述目标CAN总线网络中已有的通信报文;第三操作类型,用于删除所述目标CAN总线网络中已有的通信报文。
[0022] 可选地,所述装置还包括:第四获取单元,用于获取所需变更的通信报文的报文类型标识符,所述报文类型包括以下任意一者或多者:标准数据帧、扩展数据帧、标准远程帧、扩展远程帧。
[0023] 可选地,所述装置还包括:第五获取单元,用于当所述操作类型为所述第一操作类型时,且所述报文类型为所述标准数据帧或所述扩展数据帧时,组织对所述目标CAN总线网络的通信协议的变更指令之前,获取所要新增的通信报文中的数据。
[0024] 可选地,所述装置还包括:第六获取单元,用于组织对所述目标CAN总线网络的通信协议的变更指令的步骤之前,获取目标CAN总线网络标识符;发送单元包括:第一确定子单元,用于根据所述目标CAN总线网络标识符确定目标CAN总线网络;发送子单元,用于将组织好的变更指令发送至所述目标CAN总线网络中的第一控制器。
[0025] 本发明实施例所提供的通信协议的变更方法及装置,在目标CAN总线上设置第一控制器,向目标CAN总线持续发送通信报文,当需要变更通信报文时,用户操作上位机,上位机获取对CAN总线网络的通信协议所要执行操作的操作类型标识符及目标报文标识符,根据操作类型标识符及目标报文标识符组织对CAN总线网络的通信协议的变更指令,将组织好的变更指令发送至CAN总线网络中的第一控制器。该第一控制器获取该变更指令,并获取该变更指令中的操作类型标识符及目标报文标识符,根据操作类型标识符确定对通信协议的操作类型,并根据目标报文标识符确定待变更的通信报文,然后根据操作类型对待变更的通信报文进行变更。通过该方法,在需要变更目标CAN总线网络的通信协议时,无需对CAN总线网络中的控制器的软件一一升级,只需向第一控制器发送变更指令即可,该变更通信协议的过程简单,不容易出错。

附图说明

[0026] 通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
[0027] 图1示出了根据本发明实施例的通信协议的变更方法的实施环境的示意图;
[0028] 图2示出了根据本发明实施例的通信协议的变更方法的流程图;
[0029] 图3示出了根据本发明另一实施例的通信协议的变更方法的流程图;
[0030] 图4示出了根据本发明实施例的通信协议的变更装置的原理框图;
[0031] 图5示出了根据本发明另一实施例的通信协议的变更装置的原理框图;
[0032] 图6示出了根据本发明再一实施例的通信协议的变更装置的原理框图;
[0033] 图7示出了根据本发明又一实施例的通信协议的变更装置的原理框图。

具体实施方式

[0034] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035] 图1示出了根据本发明实施例的通信协议的变更方法的实施环境的示意图,该实施环境具体可以为电动汽车的电池管理系统(Battery Management System,BMS)。如图1所示,该电池管理系统包括多个节点,每个节点有一个控制器,例如控制器A、B、C、D、E,这些控制器通过CAN收发器(图中未示出收发器)连接在CAN总线上。当连接在CAN总线上的控制器要向CAN总线上的其他控制器发送信息时,该控制器将需要发送的信息传送给本节点的收发器,收发器先处于准备状态;收发器接收到分配的总线资源时,转为发送报文状态,将需要发送的信息发送至CAN总线。这时CAN总线上的其他节点处于接收状态。对CAN总线上的其他控制器来说,无论信息是否是发送给自己的,都对其进行接收,并对接收到的信息进行检测,判断信息是否是发送给自己的,以确定是否对其进行处理。
[0036] 需要补充说明的是,本发明中所述的控制器为具有软件程序的器件,不仅仅是用于控制的器件,也可以是用户数据处理的器件,也即本发明实施例所提供的通信协议的变更方法也可以用于处理器。
[0037] 实施例一
[0038] 图2示出了根据本发明实施例的通信协议的变更方法的流程图。该通信协议的变更方法由连接在目标CAN总线上的第一控制器执行,该第一控制器与上位机连接,还用于持续向目标CAN总线发送通信报文,例如图1中所示的控制器A。目标CAN总线上还连接有多个第二控制器,例如图1中所示的控制器B、C、D、E。
[0039] 第二控制器根据所接收到的通信报文确定其所执行的操作,例如,通信报文a1用于告知目标CAN总线网络中的控制器:最大充电电流为1A,则第二控制器会执行最大充电电流为1A的程序指令,即当遇到最大充电电流时均以1A来处理。若通信报文a1被修改用于告知目标CAN总线网络中的控制器:最大充电电流为2A,则第二控制器会执行最大充电电流为2A的程序指令,即当遇到最大充电电流时均以2A来处理。
[0040] 或者,再例如,目标CAN总线网络中的控制器中预先写入了程序send()函数指令,通信报文b1用于告知目标CAN总线网络中的控制器:send()函数指令的具体操作为X-Y-Z(其中X、Y、Z分别表示一个操作步骤),则第二控制器执行send()函数指令时,便会执行依次上述X-Y-Z操作。若通信报文b1被修改用于告知目标CAN总线网络中的控制器:send()函数指令的具体操作为A-B-C(其中A、B、C分别表示一个操作步骤),则第二控制器执行send()函数指令时,便会执行依次上述A-B-C操作(其中A、B、C分别表示一个操作步骤)。
[0041] 通过上述两例可以见,本方案通过修改通信报文能够改变第二控制器所执行的操作。
[0042] 根据图2所示,该通信协议的变更方法包括如下步骤:
[0043] S110:获取目标CAN总线网络的通信协议的变更指令。例如,可以是服务器或终端等上位机,或者其他设备向第一控制器发送变更指令,第一控制器接收该变更指令。
[0044] 该变更指令用于变更目标CAN总线网络的通信协议。此处所述的目标CAN总线网络包括通过所述目标CAN总线相连的多个控制器。例如,图1所示的目标CAN总线网络包括第一控制器A,以及第二控制器B、C、D、E。
[0045] S120:获取变更指令中的操作类型标识符及目标报文标识符。
[0046] 即变更指令中包括操作类型标识符和目标报文标识符,操作类型标识符用于标识对通信协议的操作类型,目标报文标识符用于标识目标报文,目标CAN总线网络中的每个报文可以通过其标识符唯一确定。
[0047] S130:根据操作类型标识符确定对通信协议的操作类型,并根据目标报文标识符确定待变更的通信报文。
[0048] S140:根据操作类型对待变更的通信报文进行变更。
[0049] 第一控制器内预先存储了各个操作类型及某个操作类型下第一控制器所要执行的操作,不同的操作类型都对应有相应的操作,根据操作类型执行相应的操作便可以对待变更的通信报文进行变更。
[0050] 上述通信协议的变更方法,在目标CAN总线上设置第一控制器,向目标CAN总线持续发送通信报文,当需要变更通信报文时,上位机向该第一控制器发送目标CAN总线网络的通信协议的变更指令,该第一控制器获取该变更指令,并获取该变更指令中的操作类型标识符及目标报文标识符,根据操作类型标识符确定对通信协议的操作类型,并根据目标报文标识符确定待变更的通信报文,然后根据操作类型对待变更的通信报文进行变更。通过该方法,在需要变更目标CAN总线网络的通信协议时,无需对CAN总线网络中的控制器的软件一一升级,只需向第一控制器发送变更指令即可,该变更通信协议的过程简单,不容易出错。
[0051] 通常对于通信协议报文的操作主要有增加、修改和删除三种,本发明实施例相应提供三种操作类型,步骤S120中的操作类型可以采用以下任意一者或多者:第一操作类型、第二操作类型和第三操作类型。
[0052] 第一操作类型,用于向目标CAN总线网络中新增通信报文。
[0053] 例如,在目标CAN总线网络中新增通信报文c1,用于告知目标CAN总线网络中的控制器:最大放电电压为4V,则第二控制器在执行程序时遇到最大放电电压时均以4V来处理。再例如,在目标CAN总线网络中新增报文d1,用于告知目标CAN总线网络中的控制器:新增加一个处理操作process。又例如,在目标CAN总线网络中新增报文e1,用于告知目标CAN总线网络中的控制器:在上述send()函数指令中的步骤C后增加一个操作步骤D,即修改后的send()函数指令的具体操作为A-B-C-D。
[0054] 在上述步骤S140中,当操作类型为第一操作类型时,第一控制器开始向目标CAN总线持续发送新报文;新报文的报文标识符与变更指令中的目标报文标识符对应,新报文的数据域包括变更指令中所提供的数据内容。也即,在操作类型为第一操作类型时,变更指令除了具有操作类型标识符和目标报文标识符之外,还提供了新报文中的数据,沿用上例,变更指令给出:操作类型为第一操作类型、目标报文标识符为c1、最大放电电压为4V;再例如,变更指令给出:操作类型为第一操作类型、目标报文标识符为d1、处理操作process;又例如,变更指令给出:操作类型为第一操作类型、目标报文标识符为e1、在send()函数指令中的步骤C后增加一个操作步骤D。
[0055] 需要指出的是,此处的数据既可以指具体的数值或标识符,也可以指上述的处理操作process或者步骤D,即数据也可以是用于执行某操作的指令代码。
[0056] 由于在步骤S140之前,第一控制器没有向目标CAN总线发送具有目标报文标识符的通信报文,而在步骤S140之后开始向目标CAN总线发送具有该目标报文标识符的通信报文,从而从总体效果上来看,目标CAN总线网络中新增了具有该目标报文标识符的通信报文。
[0057] 第二操作类型用于修改目标CAN总线网络中已有的通信报文。沿用上例,修改上述通信报文a1,将最大充电电流由1A修改为2A;再例如,修改上述通信报文b1,将send()函数指令中的具体操作由X-Y-Z修改为A-B-C;又例如,修改上述通信报文e1中在send()函数指令中步骤C后所增加的操作D该为操作E。
[0058] 在上述步骤S140中,当操作类型为第二操作类型时,第一控制器停止向目标CAN总线发送旧报文,开始向目标CAN总线持续发送新报文;旧报文是目标CAN总线网络中已有的、报文标识符与变更指令中的目标报文标识符对应的通信协议报文;新报文的报文标识符与变更指令中的目标报文标识符相同,新报文的数据域包括变更指令所提供的数据内容。也即,在操作类型为第二操作类型时,变更指令除了具有操作类型标识符和目标报文标识符之外,还提供了新通信报文修改后的目标数据,沿用上例,变更指令给出:操作类型为第二操作类型、目标报文标识符为c1、最大放电电压为5V;再例如,变更指令给出:操作类型为第二操作类型、目标报文标识符为d1、处理操作process2;又例如,变更指令给出:操作类型为第二操作类型、目标报文标识符为e1、在send()函数指令中的步骤C后增加一个操作步骤E。
[0059] 需要指出的是,此处的数据既可以指具体的数值或标识符,也可以指上述的处理操作process2或者步骤E,即数据也可以是用于执行某操作的指令代码。
[0060] 由于在步骤S140前后,具有同一目标报文标识符的通信报文的数据域内数据内容不同,从总体效果上看,即修改了目标CAN总线网络中具有该目标报文标识符的通信报文。
[0061] 第三操作类型用于删除目标CAN总线网络中已有的通信报文,目标报文标识符用于确定待变更的通信报文。继续沿用上例,删除上述通信报文a1,即不向目标CAN总线网络中的控制器告知最大充电电流为多少;再例如,删除上述通信报文d1,即删除处理操作process2;又例如,上述通信报文e1,即不再向send()函数指令中的步骤C后增加操作步骤。
[0062] 在上述步骤S140中,当操作类型为第三操作类型时,停止向目标CAN总线网络发送旧报文;旧报文是目标CAN总线网络中已有的、报文标识符与变更指令中的目标报文标识符对应的通信协议报文。沿用上例,不再发送通信报文a1、d1、e1。
[0063] 由于在步骤S140之前,第一控制器向目标CAN总线发送具有目标报文标识符的通信报文,而在步骤S140之后便不再发送,从总体效果上看,即删除了目标CAN总线网络中具有该目标报文标识符的通信报文。
[0064] 或者,当操作类型为第三操作类型时,作为上述实施方式的一种并列可选实施方式,在上述步骤S140中,当操作类型为第三操作类型时,停止向目标CAN总线发送旧报文,开始向目标CAN总线持续发送新报文;旧报文是目标CAN总线网络中已有的、报文标识符与变更指令中的目标报文标识符对应的通信协议报文;新报文的报文标识符与变更指令中的目标报文标识符相同,新报文的数据域包括变更指令所提供的数据内容。此时,新报文的数据域为预定值,正常情况下数据域不可能为该预定值,或者为空。
[0065] 由于在步骤S140之前,具有目标报文标识符的通信报文数据域为正常值,而在步骤S140之后,具有该目标报文标识符的通信报文数据域为异常值(包括空值),从总体效果上看,即删除了目标CAN总线网络中具有该目标报文标识符的通信报文数据域。
[0066] CAN网络中的报文按照功能分为数据帧、远程帧、错误帧、过载帧、帧间隔等五种类型。其中,数据帧为发送节点向接收节点传送数据的帧,远程帧为接收节点向具有相同ID的发送节点请求数据的帧。通过发送远程帧,一个需要数据的节点可以请求另一个节点发送相应的数据帧,称为远程数据请求。数据帧和远程帧都可以使用标准帧格式或者扩展帧格式。数据帧由SOF帧起始域、仲裁域、控制域、数据域、CRC校验域、ACK应答域和帧结束域组成。远程帧由帧起始域、仲裁域、控制欲、CRC校验域、ACK应答域和帧结束域组成。由此可见,远程帧没有数据域。上述标准帧格式和扩展帧格式的数据帧或远程帧的各个域都有固定的位数。
[0067] 作为本实施例的一种可选实施方式,进一步地,变更指令中包括报文类型标识符,报文类型包括以下任意一者或多者;标准数据帧、扩展数据帧、标准远程帧、扩展远程帧;上述开始向目标CAN总线网络持续发送新报文的步骤之前,还包括:当操作类型为第一操作类型或第二操作类型时,根据报文类型组织所要发送的新报文。
[0068] 可选地,变更指令中还可以包括报文发送周期,即每隔多长时间发送一次通信报文,第一控制器在向目标CAN总线网络中发送报文时,根据该报文发送周期发送报文。
[0069] 实施例二
[0070] 图3示出了根据本发明另一实施例的通信协议的变更方法的流程图。该通信协议的变更方法由上位机执行。该上位机用于向图1所示的实施环境中(也即实施例一中)的第一控制器发送目标CAN总线网络的通信协议的变更指令。根据图3所示,该通信协议的变更方法包括如下步骤:
[0071] S210:获取对目标CAN总线网络的通信协议所要执行操作的操作类型标识符及目标报文标识符。
[0072] 用户需要对目标CAN总线网络的通信协议执行操作时,操作上位机,选择操作类型,输入或选择目标报文标识符。上位机接收获取所要执行操作的操作类型标识符及目标报文标识符。
[0073] S220:根据操作类型标识符及目标报文标识符,组织对目标CAN总线网络的通信协议的变更指令。
[0074] S230:将组织好的变更指令发送至目标CAN总线网络中的第一控制器。该第一控制器连接在目标CAN总线上,用于向目标CAN总线发送通信报文,例如图1中所示的控制器A。目标CAN总线上还连接有多个第二控制器,第二控制器根据所接收到的通信报文确定其所执行的操作,例如图1中所示的控制器B、C、D、E,具体内容请参照实施例一。
[0075] 上述通信协议的变更方法,在目标CAN总线上设置第一控制器,向目标CAN总线持续发送通信报文,当需要变更通信报文时,用户操作上位机,上位机获取对CAN总线网络的通信协议所要执行操作的操作类型标识符及目标报文标识符,根据操作类型标识符及目标报文标识符组织对CAN总线网络的通信协议的变更指令,将组织好的变更指令发送至CAN总线网络中的第一控制器。通过该方法,在需要变更目标CAN总线网络的通信协议时,无需对目标CAN总线网络中的控制器的软件一一升级,只需操作上位机向第一控制器发送变更指令即可,该变更通信协议的过程简单,不容易出错。
[0076] 通常对于通信协议报文的操作主要有增加、修改和删除三种,本发明实施例相应提供三种操作类型,上述步骤中可以采用以下任意一者或多者:第一操作类型、第二操作类型和第三操作类型。其中,第一操作类型用于向目标CAN总线网络中新增通信报文;第二操作类型用于修改目标CAN总线网络中已有的通信报文;第三操作类型用于删除目标CAN总线网络中已有的通信报文。具体内容请参照实施例二。
[0077] 作为本实施例的一种可选实施方式,在步骤S220之前还包括步骤S240:获取所需变更的通信报文的报文类型标识符,该报文类型包括以下任意一者或多者:标准数据帧、扩展数据帧、标准远程帧、扩展远程帧。报文类型具体请参照实施例一。
[0078] 用户需要对目标CAN总线网络的通信协议执行操作时,操作上位机,还会选择所需变更的通信报文的报文类型,如选择标准数据帧。上位机获取该报文类型标识符,用于组织变更报文。
[0079] 需要补充说明的是,上位机也可以不用执行步骤S240,而设置用户仅可以对某一报文类型的通信报文进行操作。
[0080] 进一步地,当操作类型为第一操作类型,且报文类型为标准数据帧或扩展数据帧时,还获取所要新增的通信报文中的数据。请参照实施例一,当操作类型为第一操作类型时,第一控制器需要向目标CAN总线网络发送新报文,该新报文为数据帧(标准数据帧或扩展数据帧)时,其数据域需要填充数据。对此,当用户在上位机输入操作类型为第一操作类型,且报文类型为标准数据帧或扩展数据帧时,还会输入数据用于填充数据帧的数据域。上位机获取该数据,用于组织变更报文。
[0081] 上位机可以设定仅可以向某一特定CAN总线网络的第一控制器发送变更指令,即仅可以变更一个CAN总线网络的通信协议。或者,作为本实施例的一种可选实施方式,上位机可以与多个CAN总线网络中的第一控制器通信连接,步骤S220之前还包括步骤S250:获取目标CAN总线网络标识符。相应地,步骤S230包括S231和S232。
[0082] S231:根据目标CAN总线网络标识符确定目标CAN总线网络。
[0083] S232:将组织好的变更指令发送至目标CAN总线网络中的第一控制器。
[0084] 通过上述步骤S250、S231和S232,上位机可以向多个CAN总线网络发送变更指令,变更多个CAN总线网络的通信协议。
[0085] 实施例三
[0086] 图4示出了根据本发明实施例的通信协议的变更装置的原理框图。该通信协议的变更装置用于执行实施例一所述的通信协议的变更方法,用于连接在目标CAN总线上的第一控制器,第一控制器还用于持续向目标CAN总线发送通信报文。目标CAN总线上还连接有多个第二控制器,第二控制器根据所接收到的通信报文确定其所执行的操作。根据图4所示,该通信协议的变更装置包括第一获取单元10、第二获取单元20、确定单元30和变更单元40。
[0087] 第一获取单元10,用于获取目标CAN总线网络的通信协议的变更指令。变更指令用于变更目标CAN总线网络的通信协议。目标CAN总线网络包括通过目标CAN总线连接的多个控制器。
[0088] 第二获取单元20,用于获取变更指令中的操作类型标识符及目标报文标识符。目标报文标识符用于确定待变更的通信报文。
[0089] 确定单元30,用于根据操作类型标识符确定对通信协议的操作类型,并根据目标报文标识符确定待变更的通信报文。
[0090] 变更单元40,用于根据操作类型对待变更的通信报文进行变更。
[0091] 上述通信协议的变更装置,在目标CAN总线上设置第一控制器,向目标CAN总线持续发送通信报文,当需要变更通信报文时,上位机向该第一控制器发送目标CAN总线网络的通信协议的变更指令,该第一控制器获取该变更指令,并获取该变更指令中的操作类型标识符及目标报文标识符,根据操作类型标识符确定对通信协议的操作类型,并根据目标报文标识符确定待变更的通信报文,然后根据操作类型对待变更的通信报文进行变更。通过该方法,在需要变更目标CAN总线网络的通信协议时,无需对CAN总线网络中的控制器的软件一一升级,只需向第一控制器发送变更指令即可,该变更通信协议的过程简单,不容易出错。
[0092] 可选地,操作类型包括以下任意一者或多者:第一操作类型,用于向目标CAN总线网络中新增通信报文。第二操作类型,用于修改目标CAN总线网络中已有的通信报文。第三操作类型,用于删除目标CAN总线网络中已有的通信报文。
[0093] 作为本实施例的一种可选实施方式,如图5所示,变更单元40包括第一变更子单元41、第二变更子单元42和第三变更子单元43。
[0094] 第一变更子单元41,用于当操作类型为第一操作类型时,开始向目标CAN总线持续发送新报文。新报文的报文标识符与变更指令中的目标报文标识符对应,新报文的数据域包括变更指令中所提供的数据内容。或者,
[0095] 第二变更子单元42,用于当操作类型为第二操作类型或第三操作类型时,停止向目标CAN总线发送旧报文,开始向目标CAN总线持续发送新报文。旧报文是目标CAN总线网络中已有的、报文标识符与变更指令中的目标报文标识符对应的通信协议报文。新报文的报文标识符与变更指令中的目标报文标识符相同,新报文的数据域包括变更指令所提供的数据内容。或者,
[0096] 第三变更子单元43,用于当操作类型为第三操作类型时,停止向目标CAN总线发送旧报文。旧报文是目标CAN总线网络中已有的、报文标识符与变更指令中的目标报文标识符对应的通信协议报文。
[0097] 可选地,变更指令中包括报文类型标识符,报文类型包括以下任意一者或多者。标准数据帧、扩展数据帧、标准远程帧、扩展远程帧。如图5所示,变更单元40还包括组织子单元44,用于当操作类型为第一操作类型或第二操作类型时,开始向目标CAN总线网络持续发送新报文之前,根据报文类型组织所要发送的新报文。
[0098] 实施例四
[0099] 图6示出了根据本发明另一实施例的通信协议的变更装置的原理框图,该通信协议的变更装置用于执行实施例一所述的通信协议的变更方法,用于上位机。根据图6所示,该通信协议的变更装置包括第三获取单元50、组织单元60和发送单元70。
[0100] 第三获取单元50,用于获取对目标CAN总线网络的通信协议所要执行操作的操作类型标识符及目标报文标识符。
[0101] 组织单元60,用于根据操作类型标识符及目标报文标识符,组织对目标CAN总线网络的通信协议的变更指令。
[0102] 发送单元70,用于将组织好的变更指令发送至目标CAN总线网络中的第一控制器。第一控制器连接在目标CAN总线上,用于向目标CAN总线发送通信报文。目标CAN总线上还连接有多个第二控制器,第二控制器根据所接收到的通信报文确定其所执行的操作。
[0103] 上述通信协议的变更装置,在目标CAN总线上设置第一控制器,向目标CAN总线持续发送通信报文,当需要变更通信报文时,用户操作上位机,上位机获取对CAN总线网络的通信协议所要执行操作的操作类型标识符及目标报文标识符,根据操作类型标识符及目标报文标识符组织对CAN总线网络的通信协议的变更指令,将组织好的变更指令发送至CAN总线网络中的第一控制器。通过该方法,在需要变更目标CAN总线网络的通信协议时,无需对CAN总线网络中的控制器的软件一一升级,只需操作上位机向第一控制器发送变更指令即可,该变更通信协议的过程简单,不容易出错。
[0104] 可选地,操作类型包括以下任意一者或多者:第一操作类型,用于向目标CAN总线网络中新增通信报文。第二操作类型,用于修改目标CAN总线网络中已有的通信报文。第三操作类型,用于删除目标CAN总线网络中已有的通信报文。
[0105] 作为本实施例的一种可选实施方式,该通信协议的变更装置还包括第四获取单元80,用于获取所需变更的通信报文的报文类型标识符,报文类型包括以下任意一者或多者:
标准数据帧、扩展数据帧、标准远程帧、扩展远程帧。
[0106] 作为本实施例的一种可选实施方式,该通信协议的变更装置还包括第五获取单元90,用于当操作类型为第一操作类型时,且报文类型为标准数据帧或扩展数据帧时,组织对目标CAN总线网络的通信协议的变更指令之前,获取所要新增的通信报文中的数据。
[0107] 作为本实施例的一种可选实施方式,该通信协议的变更装置还包括第六获取单元100,用于组织对目标CAN总线网络的通信协议的变更指令的步骤之前,获取目标CAN总线网络标识符。相应地,发送单元70包括第一确定子单元71和发送子单元72。
[0108] 第一确定子单元71,用于根据目标CAN总线网络标识符确定目标CAN总线网络。
[0109] 发送子单元72,用于将组织好的变更指令发送至目标CAN总线网络中的第一控制器。
[0110] 虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。