本发明涉及电池管理系统技术领域,具体涉及一种控制器的软件升级方法、装置及系统。
背景技术:
电动汽车的核心部件之一的电池管理系统(batterymanagementsystem,bms)往往包括多个控制器。电动汽车在出厂前,电池管理系统的控制器预先烧录了软件以实现系统功能。随着电池管理技术的进步,在电动汽车出厂后还需要对电池管理系统中的控制器的软件进行升级。
现有技术需要专业的售后维护人员利用专用连接线(如串口总线)连接笔记本电脑和控制器,从而将笔记本电脑中的软件升级程序发送至控制器,实现对控制器的软件升级。
然而,由于电动汽车售出后其分布较为分散,而且位置不确定,售后维护人员逐个去往车辆现场升级控制器导致人力资源成本及时间成本较高。
技术实现要素:
有鉴于此,本发明实施例提供了一种控制器的软件升级方法、装置及系统,以解决现有对电池管理系统中的控制器进行软件升级的方法所导致的人力资源成本及时间成本较高的问题。
根据第一方面,本发明实施例提供了一种控制器的软件升级方法,由连接在can总线上的预设控制器执行,所述预设控制器与服务器通信连接;所述方法包括:接收所述服务器所发送的软件升级程序;所述软件升级程序用于升级电动汽车的电池管理系统中至少一个待升级的目标控制器的软件,所述目标控制器连接在所述can总线上;向所述can总线转发所述软件升级程序;所述软件升级程序被连接在所述can总线上的目标控制器接收并执行以升级所述目标控制器的软件。
可选地,所述软件升级程序携带有至少一个控制器标识,所述控制器标识用于标记所述软件升级程序所对应的目标控制器。
可选地,所述向所述can总线发送所述软件升级程序的步骤之后,还包括:接收目标控制器所发送的升级成功通知;所述升级成功通知用于确认所述目标控制器已成功执行所述软件升级程序;将所述升级成功通知发送至所述服务器。
根据第二方面,本发明实施例提供了一种控制器的软件升级方法,由待升级的目标控制器执行,所述目标控制器连接在can总线上;所述方法包括:判断电动汽车的电池是否处于充电状态或放电状态;当所述电动汽车的电池既不处于充电状态也不处于放电状态时,从所述can总线接收软件升级程序;所述软件升级程序用于升级电动汽车的电池管理系统中至少一个待升级的目标控制器的软件,所述目标控制器连接在所述can总线上;执行所述软件升级程序。
可选地,所述软件升级程序携带有至少一个控制器标识,所述控制器标识用于标记所述软件升级程序所对应的目标控制器;在所述执行所述软件升级程序的步骤之前,还包括:获取所述软件升级程序所携带的控制器标识;判断所述控制器标识是否为自身所对应的标识;当所述控制器标识是自身所对应的标识时,执行所述软件升级程序。
根据第三方面,本发明实施例提供了一种控制器的软件升级装置,用于连接在can总线上的预设控制器,所述预设控制器与服务器通信连接;所述装置包括:第一接收单元,用于接收所述服务器所发送的软件升级程序;所述软件升级程序用于升级电动汽车的电池管理系统中至少一个待升级的目标控制器的软件,所述目标控制器连接在所述can总线上;第一发送单元,用于向所述can总线转发所述软件升级程序;所述软件升级程序被连接在所述can总线上的目标控制器接收并执行以升级所述目标控制器的软件。
可选地,所述软件升级程序携带有至少一个控制器标识,所述控制器标识用于标记所述软件升级程序所对应的目标控制器。
可选地,该控制器的软件升级装置还包括:第二接收单元,用于接收目标控制器所发送的升级成功通知;所述升级成功通知用于确认所述目标控制器已成功执行所述软件升级程序;第二发送单元,用于将所述升级成功通知发送至所述服务器。
根据第四方面,本发明实施例提供了一种控制器的软件升级装置,用于待升级的目标控制器,所述目标控制器连接在can总线上;所述装置包括:第一判断单元,用于判断电动汽车的电池是否处于充电状态或放电状态;第三接收单元,用于当所述电动汽车的电池既不处于充电状态也不处于放电状态时,从所述can总线接收软件升级程序;所述软件升级程序用于升级电动汽车的电池管理系统中至少一个待升级的目标控制器的软件,所述目标控制器连接在所述can总线上;执行单元,用于执行所述软件升级程序。
可选地,所述软件升级程序携带有至少一个控制器标识,所述控制器标识用于标记所述软件升级程序所对应的目标控制器;所述装置还包括:获取单元,用于获取所述软件升级程序所携带的控制器标识;第二判断单元,用于判断所述控制器标识是否为自身所对应的标识;当所述控制器标识是自身所对应的标识时,所述执行单元执行所述软件升级程序。
根据第五方面,本发明实施例提供了一种控制器的软件升级系统,包括:至少一个软件待升级的目标控制器,每个所述目标控制器连接在can总线上;预设控制器,连接在所述can总线上;所述预设控制器包括第三方面或第三方面的任意一种可选实施方式所述的控制器的软件升级装置;服务器,与所述预设控制器通信连接,用于向所述预设控制器发送软件升级程序;所述软件升级程序用于升级电动汽车的电池管理系统中至少一个控制器的软件,所述控制器连接在所述can总线上。
本发明实施例所提供的控制器的软件升级方法、装置及系统,由can总线上的预设控制器先接收服务器所发送的软件升级程序,然后向can总线转发该软件升级程序,从而can总线上的其他控制器可以从can总线获取软件升级程序以升级自身软件。通过上述控制器的软件升级方法,服务器无需将软件升级程序直接一一发送给各个控制器,从而减少系统的成本以及系统维护的人力资源成本和时间成本。
本发明实施例所提供的控制器的软件升级方法,控制器先判断电动汽车的电池是否处于充电状态或放电状态,当既不处于充电状态也不处于放电状态时,从can总线接收软件升级程序,继而执行该软件升级程序。通过上述控制器的软件升级方法,服务器无需将软件升级程序直接一一发送给各个控制器,从而减少系统的成本以及系统维护的人力资源成本和时间成本。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了根据本发明实施例的控制器升级方法的实施环境的示意图;
图2示出了根据本发明实施例的控制器的软件升级方法的流程图;
图3示出了根据本发明又一实施例的控制器的软件升级方法的流程图;
图4示出了根据本发明再一实施例的控制器的软件升级方法的流程图;
图5示出了根据本发明再一实施例的控制器的软件升级方法的流程图;
图6示出了根据本发明再一实施例的控制器的软件升级方法的流程图;
图7示出了根据本发明实施例的控制器的软件升级装置的原理框图;
图8示出了根据本发明又一实施例的控制器的软件升级装置的原理框图;
图9示出了根据本发明实施例的控制器的软件升级系统的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了根据本发明实施例的控制器升级方法的实施环境的示意图,该实施环境具体为电动汽车的电池管理系统(batterymanagementsystem,bms)。如图1所示,该电池管理系统包括多个节点,每个节点有一个控制器,例如控制器a、b、c、d、e,这些控制器通过can收发器(图中未示出收发器)连接在can总线上。当连接在can总线上的控制器要向can总线上的其他控制器发送信息时,该控制器将需要发送的信息传送给本节点的收发器,收发器先处于准备状态;收发器接收到分配的总线资源时,转为发送报文状态,将需要发送的信息发送至can总线。这时can总线上的其他节点处于接收状态。对can总线上的其他控制器来说,无论信息是否是发送给自己的,都对其进行接收,并对接收到的信息进行检测,判断信息是否是发送给自己的,以确定是否对其进行处理。
需要补充说明的是,本发明中所述的控制器为具有软件的器件,不仅仅是用于控制的器件,也可以是用户数据处理的器件,也即本发明实施例所提供的软件升级方法也可以用于处理器。
实施例一
图2示出了根据本发明实施例的控制器的软件升级方法的流程图,由图1所示的实施环境中的预设控制器执行,该预设控制器与服务器通信连接,例如图1中所示的控制器a。根据图2所示,该控制器的软件升级方法包括如下步骤:
s110:接收服务器所发送的软件升级程序。该软件升级程序用于升级电动汽车的电池管理系统中至少一个待升级的目标控制器的软件,该目标控制器连接在can总线上。
当需要对采用can总线的电池管理系统中的控制器的软件进行升级时,服务器需要将软件升级程序发送给待升级的目标控制器。然而,当can总线上的目标控制器较多时,如果服务器直接一一发送给各个目标控制器,则每个目标控制器都需要连接一个通信模块,各个目标控制器通过通信模块与服务器建立通信连接,服务器才能直接将软件升级程序发送给各个目标控制器。由此,电池管理系统中便需要增加多个通信模块,一方面增加电池管理系统的成本,另一方面,增加的通信模块会使电池管理系统布线更加复杂、所占用空间加大。
对此,本发明实施例在电池管理系统的can总线网络中设置一个预设控制器,该预设控制器与服务器通信连接。当需要对can总线上的目标控制器的软件进行升级时,服务器仅需要将软件升级程序发送给该预设控制器;预设控制器会接收服务器所发送的软件升级程序,并将软件升级程序发送到can总线;can总线上的目标控制器从can总线接收并执行软件升级程序,从而升级目标控制器的软件。
与上述服务器将软件升级程序直接一一发送给各个目标控制器的技术方案相比,本发明实施例所提供的技术方案仅需要增加一个用于与服务器通信的通信模块。
s120:向can总线转发软件升级程序。软件升级程序被连接在can总线上的目标控制器接收并执行以升级该目标控制器的软件。
上述控制器的软件升级方法,由can总线上的预设控制器先接收服务器所发送的软件升级程序,然后向can总线转发该软件升级程序,从而can总线上待升级的目标控制器可以从can总线获取软件升级程序以升级自身软件。通过上述控制器的软件升级方法,服务器无需将软件升级程序直接一一发送给各个目标控制器,从而减少系统的成本以及系统维护的人力资源成本和时间成本。
实施例二
图3示出了根据本发明又一实施例的控制器的软件升级方法的流程图,由图1所示的实施环境中的预设控制器执行,该预设控制器与服务器通信连接,例如图1中所示的控制器a。根据图3所示,该控制器的软件升级方法包括如下步骤:
s210:接收服务器所发送的软件升级程序。该步骤与图2所示的步骤s110类似,在此不再赘述。
可选地,该软件升级程序携带有至少一个控制器标识,控制器标识用于标记软件升级程序所对应的目标控制器。例如,软件升级程序仅用于升级控制器b和c的软件,则该软件升级程序中携带有控制器b和c的标识符。当预设控制器a将该软件升级程序发送至can总线后,目标控制器b和c接收到该软件升级程序时,可以根据该软件升级程序中所携带的控制器标识判断该软件升级程序是否用于自身软件的升级,进而做相应的处理。
s220:判断所接收到的软件升级程序是否完整。
预设控制器在接收到服务器所发送的软件升级程序之后,会判断所接收到的软件升级程序是否完整,当所接收到的软件升级程序完整时,执行步骤s230;否则无操作。
如果预设控制器所接收到的软件升级程序不完整,则其向can总线所发送的软件升级程序也不完整,目标控制器执行不完整的软件升级程序将无法使该目标控制器的软件正确升级。
s230:向can总线发送软件升级通知。软件升级通知用于通知控制器有软件新版本可升级。预设控制器在向can总线发送软件升级程序之前,先向can总线发送软件升级通知,以确定当前是否有目标控制器可以进行软件升级,在电池进行充电或放电时,目标控制器通常不能够进行软件升级。在目标控制器不能够进行软件升级的情况下,若接收该软件升级程序,则会浪费内存。步骤s230可以防止can总线上没有任何目标控制器可以进行软件升级时,预设控制器向can总线发送软件升级程序所导致的浪费内存的问题。
s240:在接收到目标控制器所返回的升级确认信息后,向can总线发送软件升级程序。升级确认信息为目标控制器在接收到软件升级通知后所返回的应答信息。“向can总线发送软件升级程序”的步骤与图2所示的步骤s120类似,在此不再赘述。
需要补充说明的是,在步骤s220之后,当所接收到的软件升级程序完整时,也可以直接执行步骤s240中“向can总线发送软件升级程序”的步骤。
s250:接收目标控制器所发送的升级成功通知。升级成功通知用于确认该目标控制器已成功执行软件升级程序。
s260:将升级成功通知发送至服务器。
通过执行软件升级程序使软件成功升级的控制器会向can总线发送升级成功通知,预设控制器接收该软件升级通知,并将其发送至服务器,从而通过步骤s250和步骤s260便可以在服务器侧获知待升级的目标控制器是否已完成软件升级。
实施例三
图4示出了根据本发明再一实施例的控制器的软件升级方法的流程图,由图1所示的实施环境中的待升级的目标控制器执行,该目标控制器连接在can总线上,例如图1中所示的控制器b、c、d、e。该方法与实施例一所述的控制器的软件升级方法相对应。根据图4所示,该控制器的软件升级方法包括如下步骤:
s310:判断电动汽车的电池是否处于充电状态或放电状态。当电动汽车的电池既不处于充电状态也不处于放电状态时,执行步骤s320;否则无操作。
当电动汽车的电池处于充电或放电状态时,若对相关控制器的软件进行升级导致控制器当前无法正常实现充电或放电功能,从而造成系统故障。
s320:从can总线接收软件升级程序。软件升级程序用于升级电动汽车的电池管理系统中至少一个待升级的目标控制器的软件,该目标控制器连接在can总线上。
s330:执行软件升级程序。
上述控制器的软件升级方法,待升级的目标控制器先判断电动汽车的电池是否处于充电状态或放电状态,当既不处于充电状态也不处于放电状态时,从can总线接收软件升级程序,继而执行该软件升级程序。通过上述控制器的软件升级方法,服务器无需将软件升级程序直接一一发送给各个目标控制器,从而减少系统的成本以及系统维护的人力资源成本和时间成本。
实施例四
图5示出了根据本发明再一实施例的控制器的软件升级方法的流程图,由图1所示的实施环境中的待升级的目标控制器执行,该目标控制器连接在can总线上,例如图1中所示的控制器b、c、d、e。该方法与图3所示的控制器的软件升级方法相对应。根据图5所示,该控制器的软件升级方法包括如下步骤:
s410:从can总线获取软件升级通知;所述软件升级通知用于通知电动汽车的电池管理系统中至少一个待升级的目标控制器有软件新版本可升级。
s420:判断电动汽车的电池是否处于充电状态或放电状态。当电动汽车的电池既不处于充电状态也不处于放电状态时,执行步骤s430;否则无操作。
s430:向can总线发送升级确认信息,升级确认信息用于确认发送该升级确认信息的目标控制器可以进行软件升级。升级确认信息被连接在can总线上的预设节点控制器接收并返回软件升级程序。
预设控制器在向can总线发送软件升级程序之前,会先向can总线发送软件升级通知,以确定当前是否有目标控制器可以进行软件升级,在电池进行充电或放电时,目标控制器通常不能够进行软件升级。若接收到软件升级通知的目标控制器判断自身既不处于充电状态也不处于放电状态,则会向can总线发送升级确认信息,以便预设控制器获知该目标控制器可以进行软件升级。
s440:从can总线接收软件升级程序。软件升级程序用于升级电动汽车的电池管理系统中至少一个待升级的目标控制器的软件,目标控制器连接在can总线上。软件升级程序携带有至少一个控制器标识,控制器标识用于标记软件升级程序所对应的目标控制器。
s450:获取软件升级程序所携带的控制器标识。
s460:判断控制器标识是否为自身所对应的标识。当控制器标识是自身所对应的标识时,执行步骤s470;否则无操作。
s470:执行软件升级程序。
s480:向can总线发送升级成功通知,以便预设控制器确认该目标控制器已完成软件升级。
通过步骤s450、s460和s470,升级程序可以仅使其所对应的目标控制器的软件得以升级,不会使其他控制器的软件被错误升级。例如,软件升级程序中携带有目标控制器b和c的标识符,则只有目标控制器b和c才会执行该软件升级程序,其他控制器如d和e则不会执行该软件升级程序。
需要补充说明的是,步骤s440可以是接收该软件升级程序的全部内容,也可以是先接收包括控制器标识的部分内容,而在步骤s460和步骤s470之间再接收该软件升级程序的其他内容或全部内容。
实施例五
图6示出了根据本发明再一实施例的控制器的软件升级方法的流程图,用于图1所示的实施环境中的控制器。根据图6所示,该控制器的软件升级方法包括如下步骤:
s510:接收服务器所发送的软件升级程序。该步骤请参阅步骤s210。
s520:判断所接收到的软件升级程序是否完整。当所接收到的软件升级程序完整时,执行步骤s530;否则无操作。该步骤请参阅步骤s220。
s530:向can总线发送软件升级通知。该步骤请参阅步骤s230。
s540:从can总线获取软件升级通知。该步骤请参阅步骤s410。
s550:判断电动汽车的电池是否处于充电状态或放电状态。当电动汽车的电池既不处于充电状态也不处于放电状态时,执行步骤s560;否则无操作。该步骤请参阅步骤s420。
s560:向can总线发送升级确认信息。该步骤请参阅步骤s430。
s570:在接收到目标控制器所返回的升级确认信息后,向can总线发送软件升级程序。该步骤请参阅步骤s240。
s580:从can总线接收软件升级程序。该步骤请参阅步骤s440。
s590:获取软件升级程序所携带的控制器标识。该步骤请参阅步骤s450。
s5100:判断控制器标识是否为自身所对应的标识。当控制器标识是自身所对应的标识时,执行步骤s5110;否则无操作。该步骤请参阅步骤s460。
s5110:执行软件升级程序。该步骤请参阅步骤s470。
s5120:向can总线发送升级成功通知。该步骤请参阅步骤s480。
s5130:接收目标控制器所发送的升级成功通知。该步骤请参阅步骤s250。
s5140:将升级成功通知发送至服务器。该步骤请参阅步骤s260。
需要补充说明的是,上述步骤s510、s520、s530、s570、s5130和s5140由图1中所示的实施环境中的预设控制器执行,该预设控制器与服务器通信连接,例如图1中所示的控制器a;上述步骤s540、s550、s560、s580、s590、s5100、s5110和s5120由图1中所示的实施环境中待升级的目标控制器执行,例如图1中所示的控制器b、c、d或e。
此外,待升级的目标控制(例如图1中所示的控制器b、c、d或e)还可以向预设控制器(例如图1中所示的控制器a)发送所采集到的信息(例如图1中所示的控制器a);预设控制器接收到这些信息后,转发至服务器,服务器对这些信息进行显示、存储以及对比分析。
实施例六
图7示出了根据本发明实施例的控制器的软件升级装置的原理框图,该控制器的软件升级装置用于连接在can总线上的预设控制器,可用于执行上述实施例一或二所述的控制器的软件升级方法。其中,该预设控制器与服务器通信连接。根据图7所示,该控制器的升级装置包括第一接收单元10和第一发送单元20。
第一接收单元10,用于接收服务器所发送的软件升级程序。软件升级程序用于升级电动汽车的电池管理系统中至少一个待升级的目标控制器的软件,该目标控制器连接在can总线上。
第一发送单元20,用于向can总线转发软件升级程序。软件升级程序被连接在can总线上的目标控制器接收并执行以升级该目标控制器的软件。
可选地,软件升级程序携带有至少一个控制器标识,控制器标识用于标记软件升级程序所对应的目标控制器。
作为本实施例的一种可选实施方式,该控制器的升级装置还包括第二接收单元30和第二发送单元40。
第二接收单元30,用于接收目标控制器所发送的升级成功通知。升级成功通知用于确认目标控制器已成功执行软件升级程序。
第二发送单元40,用于将升级成功通知发送至服务器。
上述控制器的软件升级装置,由can总线上的预设控制器先接收服务器所发送的软件升级程序,然后向can总线转发该软件升级程序,从而连接在can总线上的目标控制器可以从can总线获取软件升级程序以升级自身软件。通过上述控制器的软件升级方法,服务器无需将软件升级程序直接一一发送给各个目标控制器,从而减少系统的成本以及系统维护的人力资源成本和时间成本。
实施例七
图8示出了根据本发明又一实施例的控制器的软件升级装置的原理框图,该控制器的软件升级装置用于待升级的目标控制器,可用于执行实施例三或四所述的控制器的软件升级方法。其中,该目标控制器连接在can总线上,例如图1中所示的控制器b、c、d、e。根据图8所示,该控制器的软件升级装置,包括:
第一判断单元50,用于判断电动汽车的电池是否处于充电状态或放电状态。
第三接收单元60,用于当电动汽车的电池既不处于充电状态也不处于放电状态时,从can总线接收软件升级程序。软件升级程序用于升级电动汽车的电池管理系统中至少一个待升级的目标控制器的软件,该目标控制器连接在can总线上。
执行单元70,用于执行软件升级程序。
作为本实施例的一种可选实施方式,软件升级程序携带有至少一个控制器标识,控制器标识用于标记软件升级程序所对应的目标控制器。该控制器的软件升级装置还包括获取单元80和第二判断单元90。
获取单元80,用于获取软件升级程序所携带的控制器标识。
第二判断单元90,用于判断控制器标识是否为自身所对应的标识。
当控制器标识是自身所对应的标识时,执行单元执行软件升级程序。
上述控制器的软件升级装置,目标控制器先判断电动汽车的电池是否处于充电状态或放电状态,当既不处于充电状态也不处于放电状态时,从can总线接收并执行该软件升级程序。通过上述控制器的软件升级方法,服务器无需将软件升级程序直接一一发送给各个目标控制器,从而减少系统的成本以及系统维护的人力资源成本和时间成本。
实施例八
图9示出了根据本发明实施例的控制器的软件升级系统的示意图,该系统包括:目标控制器、服务器和预设控制器;其中,
预设控制器与服务器通信连接,并连接在can总线上;目标控制器也连接在can总线上。
预设控制器用于接收服务器所发送的软件升级程序,并向can总线转发软件升级程序。软件升级程序用于升级电动汽车的电池管理系统中至少一个待升级的目标控制器的软件。
软件升级程序被连接在can总线上的目标控制器接收并执行以升级目标控制器的软件。
当预设控制器执行实施例一所述的控制器的软件升级方法时,目标控制器执行实施例三所述的控制器的软件升级方法;当预设控制器执行实施例二所述的控制器的软件升级方法时,目标控制器执行实施例四所述的控制器的软件升级方法
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。