一种汽车控制器的自刷新方法及系统转让专利

申请号 : CN201510142225.5

文献号 : CN104898637B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张扬

申请人 : 北京经纬恒润科技有限公司

摘要 :

本申请公开了一种汽车控制器的自刷新方法及系统,应用程序在接收上位机发送的刷新指令之前,通过比较当前应用程序校验和与正确校验和来判断当前是否发生损坏;当引导程序对应用程序刷新完成后,引导程序通过比较刷新后的应用程序校验和与正确校验和来判断应用程序在刷新过程中是否出现损坏。可以看出,本发明采用校验和比较的方式实现对应用程序在刷新前和刷新后的诊断,从而可以及时发现应用程序出现损害的情况,避免应用程序执行未知操作,进而保证了产品的安全性。

权利要求 :

1.一种汽车控制器的自刷新方法,其特征在于,包括:应用程序计算当前应用程序校验和;

所述应用程序判断所述当前应用程序校验和与正确校验和是否相等;

若所述当前应用程序校验和与所述正确校验和相等,则所述应用程序接收上位机发送的刷新指令,将应用程序跳转位置位,并在自身复位后跳转至引导程序;

所述引导程序判断所述应用程序跳转位是否置位;

若所述引导程序判定所述应用程序跳转位置位,则所述引导程序等待接收所述上位机发送的刷新数据,对所述应用程序进行刷新;

当刷新完成后,所述引导程序计算刷新后的应用程序校验和;

所述引导程序判断所述刷新后的应用程序校验和与所述正确校验和是否相等;

若所述刷新后的应用程序校验和与所述正确校验和相等,则所述引导程序将应用程序完整位置位,并将所述应用程序跳转位复位;

若所述应用程序跳转位没有置位,则所述引导程序判断所述应用程序完整位是否置位;

如果是,则跳转至所述应用程序,并继续执行所述应用程序计算当前应用程序校验和;

如果否,则返回执行所述引导程序等待接收上位机发送的刷新数据,对所述应用程序进行刷新的步骤。

2.根据权利要求1所述的自刷新方法,其特征在于,还包括:若所述当前应用程序校验和与所述正确校验和不相等,则所述应用程序将自身复位并跳转至所述引导程序,并继续执行所述引导程序判断所述应用程序跳转位是否置位的步骤。

3.根据权利要求1所述的自刷新方法,其特征在于,还包括:若所述刷新后的应用程序校验和与所述正确校验和不相等,则所述引导程序向所述上位机返回失败报文。

4.一种汽车控制器的自刷新系统,其特征在于,包括:第一校验和计算单元,用于计算当前应用程序校验和;

第一判断单元,用于判断所述当前应用程序校验和与正确校验和是否相等;

接收跳转单元,用于在所述第一判断单元判断为是的情况下,接收上位机发送的刷新指令,将应用程序跳转位置位,并在应用程序复位后跳转至引导程序;

第二判断单元,用于判断所述应用程序跳转位是否置位;

刷新单元,用于在所述第二判断单元判断为是的情况下,等待接收所述上位机发送的刷新数据,对所述应用程序进行刷新;

第二校验和计算单元,用于当刷新完成后,计算刷新后的应用程序校验和;

第三判断单元,用于判断所述刷新后的应用程序校验和与所述正确校验和是否相等;

置位复位单元,用于在所述第三判断单元判断为是的情况下,将应用程序完整位置位,并将所述应用程序跳转位复位;

第四判断单元,用于在所述第二判断单元判断为否的情况下,判断所述应用程序完整位是否置位;

跳转单元,用于在所述第四判断单元判断为是的情况下,跳转至所述应用程序,并继续执行所述第一校验和计算单元;

第一返回单元,用于在所述第四判断单元判断为否的情况下,返回执行所述刷新单元。

5.根据权利要求4所述的自刷新系统,其特征在于,还包括:复位跳转单元,用于在所述第一判断单元判断为否的情况下,将所述应用程序复位并跳转至所述引导程序,并继续执行所述第二判断单元。

6.根据权利要求4所述的自刷新系统,其特征在于,还包括:第二返回单元,用于在所述第三判断单元判断为否的情况下,向所述上位机返回失败报文。

说明书 :

一种汽车控制器的自刷新方法及系统

技术领域

[0001] 本发明涉及汽车电子技术领域,更具体的说,涉及一种汽车控制器的自刷新方法及系统。

背景技术

[0002] 随着汽车技术的发展,汽车控制器经常面临应用程序升级的需求。为避免对汽车控制器的拆卸,方便其内部应用程序的刷新,现有技术采用的方法为:将汽车控制器的控制器程序分为应用程序和引导程序两部分,应用程序接收到上位机发送的刷新指令后跳转至引导程序,引导程序接收上位机发送的刷新数据对应用程序进行刷新,应用程序执行刷新后程序实现产品功能。
[0003] 但是当存储器出现损坏时,应用程序也会损坏,从而导致应用程序出现程序跑飞、执行错误指令或频繁复位等问题。
[0004] 因此,如何提供一种汽车控制器自刷新的方法及系统以及时发现应用程序损坏的情况,避免应用程序执行未知操作,保证产品的安全性是本领域技术人员亟待解决的技术问题。

发明内容

[0005] 有鉴于此,本发明提供一种汽车控制器的自刷新方法及系统,以实现对应用程序损坏情况的及时发现,避免应用程序执行未知操作,保证产品的安全性。
[0006] 一种汽车控制器的自刷新方法,包括:
[0007] 应用程序计算当前应用程序校验和;
[0008] 所述应用程序判断所述当前应用程序校验和与正确校验和是否相等;
[0009] 若所述当前应用程序校验和与所述正确校验和相等,则所述应用程序接收上位机发送的刷新指令,将应用程序跳转位置位,并在自身复位后跳转至引导程序;
[0010] 所述引导程序判断所述应用程序跳转位是否置位;
[0011] 若所述引导程序判定所述应用程序跳转位置位,则所述引导程序等待接收所述上位机发送的刷新数据,对所述应用程序进行刷新;
[0012] 当刷新完成后,所述引导程序计算刷新后的应用程序校验和;
[0013] 所述引导程序判断所述刷新后的应用程序校验和与所述正确校验和是否相等;
[0014] 若所述刷新后的应用程序校验和与所述正确校验和相等,则所述引导程序将应用程序完整位置位,并将所述应用程序跳转位复位。
[0015] 优选的,还包括:
[0016] 若所述当前应用程序校验和与所述正确校验和不相等,则所述应用程序将自身复位并跳转至所述引导程序,并继续执行所述引导程序判断所述应用程序跳转位是否置位的步骤。
[0017] 优选的,还包括:
[0018] 若所述应用程序跳转位没有置位,则所述引导程序判断所述应用程序完整位是否置位;
[0019] 如果是,则跳转至所述应用程序,并继续执行所述应用程序计算当前应用程序校验和;
[0020] 如果否,则返回执行所述引导程序等待接收上位机发送的刷新数据,对所述应用程序进行刷新的步骤。
[0021] 优选的,还包括:
[0022] 若所述刷新后的应用程序校验和与所述正确校验和不相等,则所述引导程序向所述上位机返回失败报文。
[0023] 一种汽车控制器的自刷新系统,包括:
[0024] 第一校验和计算单元,用于计算当前应用程序校验和;
[0025] 第一判断单元,用于判断所述当前应用程序校验和与正确校验和是否相等;
[0026] 接收跳转单元,用于在所述第一判断单元判断为是的情况下,接收上位机发送的刷新指令,将应用程序跳转位置位,并在应用程序复位后跳转至引导程序;
[0027] 第二判断单元,用于判断所述应用程序跳转位是否置位;
[0028] 刷新单元,用于在所述第二判断单元判断为是的情况下,等待接收所述上位机发送的刷新数据,对所述应用程序进行刷新;
[0029] 第二校验和计算单元,用于当刷新完成后,计算刷新后的应用程序校验和;
[0030] 第三判断单元,用于判断所述刷新后的应用程序校验和与所述正确校验和是否相等;
[0031] 置位复位单元,用于在所述第三判断单元判断为是的情况下,将应用程序完整位置位,并将所述应用程序跳转位复位。
[0032] 优选的,还包括:
[0033] 复位跳转单元,用于在所述第一判断单元判断为否的情况下,将所述应用程序复位并跳转至所述引导程序,并继续执行所述第二判断单元。
[0034] 优选的,还包括:
[0035] 第四判断单元,用于在所述第二判断单元判断为否的情况下,判断所述应用程序完整位是否置位;
[0036] 跳转单元,用于在所述第四判断单元判断为是的情况下,跳转至所述应用程序,并继续执行所述第一校验和计算单元;
[0037] 第一返回单元,用于在所述第四判断单元判断为否的情况下,返回执行所述刷新单元。
[0038] 优选的,还包括:
[0039] 第二返回单元,用于在所述第三判断单元判断为否的情况下,向所述上位机返回失败报文。
[0040] 从上述的技术方案可以看出,本发明提供了一种汽车控制器的自刷新方法及系统,应用程序在接收上位机发送的刷新指令之前,通过比较当前应用程序校验和与正确校验和来判断当前是否发生损坏;当引导程序对应用程序刷新完成后,引导程序通过比较刷新后的应用程序校验和与正确校验和来判断应用程序在刷新过程中是否出现损坏。可以看出,本发明采用校验和比较的方式实现对应用程序在刷新前和刷新后的诊断,从而可以及时发现应用程序出现损害的情况,避免应用程序执行未知操作,进而保证了产品的安全性。

附图说明

[0041] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0042] 图1为本发明实施例公开的一种汽车控制器的自刷新方法流程图;
[0043] 图2为本发明实施例公开的另一种汽车控制器的自刷新方法流程图;
[0044] 图3为本发明实施例公开的另一种汽车控制器的自刷新方法流程图;
[0045] 图4为本发明实施例公开的另一种汽车控制器的自刷新方法流程图;
[0046] 图5为本发明实施例公开的一种汽车控制器的自刷新系统的结构示意图;
[0047] 图6为本发明实施例公开的另一种汽车控制器的自刷新系统的结构示意图。

具体实施方式

[0048] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049] 本发明实施例公开了一种汽车控制器的自刷新方法及系统,以实现对应用程序损坏情况的及时发现,避免应用程序执行未知操作,保证产品的安全性。
[0050] 参见图1,本发明实施例提供的一种汽车控制器的自刷新方法流程图,包括步骤:
[0051] 步骤S11、应用程序计算当前应用程序校验和;
[0052] 步骤S12、所述应用程序判断所述当前应用程序校验和与正确校验和是否相等,如果是,则执行步骤S13;
[0053] 需要说明的是,应用程序通过将当前应用程序校验和与正确校验和进行比较来判断应用程序在当前是否发生损坏,从而可以及时采取有效措施,避免应用程序无法执行后续操作或是执行未知操作。
[0054] 步骤S13、所述应用程序接收上位机发送的刷新指令,将应用程序跳转位置位,并在自身复位后跳转至引导程序;
[0055] 需要说明的是,应用程序跳转位是表征应用程序是否接收到上位机发送的刷新指令的判定依据,假设应用程序跳转位为0时表示应用程序没有接收到上位机发送的刷新指令,应用程序跳转位为1时表示应用程序接收到上位机发送的刷新指令,则当应用程序接收到上位机发送的刷新指令后,应用程序跳转位会由0置为1。
[0056] 步骤S14、所述引导程序判断所述应用程序跳转位是否置位,如果是,则执行步骤S15;
[0057] 步骤S15、所述引导程序等待接收所述上位机发送的刷新数据,对所述应用程序进行刷新;
[0058] 步骤S16、当刷新完成后,所述引导程序计算刷新后的应用程序校验和;
[0059] 步骤S17、所述引导程序判断所述刷新后的应用程序校验和与所述正确校验和是否相等,如果是,则执行步骤S18;
[0060] 步骤S18、所述引导程序将应用程序完整位置位,并将所述应用程序跳转位复位。
[0061] 需要说明的是,应用程序完整位是表征应用程序是否完整的判定依据,假设应用程序完整位为0时表示应用程序在当前不完整,应用程序完整位为1时表示应用程序在当前完整,则当引导程序判定刷新后的应用程序校验和与正确校验和相等后,引导程序会将应用程序完整位由0置为1。
[0062] 综上可以看出,本发明提供的汽车控制器的自刷新方法,应用程序在接收上位机发送的刷新指令之前,通过比较当前应用程序校验和与正确校验和来判断当前是否发生损坏;当引导程序对应用程序刷新完成后,引导程序通过比较刷新后的应用程序校验和与正确校验和来判断应用程序在刷新过程中是否出现损坏。可以看出,本发明采用校验和比较的方式实现对应用程序在刷新前和刷新后的诊断,从而可以及时发现应用程序出现损害的情况,避免应用程序执行未知操作,进而保证了产品的安全性。
[0063] 为进一步优化上述实施例,参见图2,本发明另一实施例公开的一种汽车控制器的自刷新方法流程图,包括:
[0064] 步骤S21、应用程序计算当前应用程序校验和;
[0065] 步骤S22、所述应用程序判断所述当前应用程序校验和与正确校验和是否相等,如果否,则执行步骤S23,如果是,则执行步骤S24;
[0066] 步骤S23、所述应用程序将自身复位并跳转至所述引导程序,然后继续执行步骤S25;
[0067] 当应用程序通过比较校验和的方式判定在当前出现损坏时,应用程序会将自身复位,并跳转至引导程序,从而可以保证自身不进行错误操作,并可以由引导程序对出现损坏的应用程序进行重刷新,因此,相比现有技术而言,有效避免了应用程序出错导致的程序跑飞、执行错误指令或频繁复位等问题。
[0068] 步骤S24、所述应用程序接收上位机发送的刷新指令,将应用程序跳转位置位,并在自身复位后跳转至引导程序;
[0069] 步骤S25、所述引导程序判断所述应用程序跳转位是否置位,如果是,则执行步骤S26;
[0070] 步骤S26、所述引导程序接收所述上位机发送的刷新数据,对所述应用程序进行刷新;
[0071] 步骤S27、当刷新完成后,所述引导程序计算刷新后的应用程序校验和;
[0072] 步骤S28、所述引导程序判断所述刷新后的应用程序校验和与所述正确校验和是否相等,如果是,则执行步骤S29;
[0073] 步骤S29、所述引导程序将应用程序完整位置位,并将所述应用程序跳转位复位。
[0074] 综上可以看出,应用程序在接收上位机发送的刷新指令之前,通过比较当前应用程序校验和与正确校验和来判断当前是否发生损坏;当引导程序对应用程序刷新完成后,引导程序通过比较刷新后的应用程序校验和与正确校验和来判断应用程序在刷新过程中是否出现损坏。可以看出,本发明采用校验和比较的方式实现对应用程序在刷新前和刷新后的诊断,从而可以及时发现应用程序出现损害的情况,避免应用程序执行未知操作,进而保证了产品的安全性。
[0075] 为进一步优化上述实施例,参见图3,本发明另一实施例公开的一种汽车控制器的自刷新方法流程图,在图2所示实施例的基础上,在步骤S25之后,还包括:
[0076] 步骤S30、若所述应用程序跳转位没有置位,则所述引导程序判断所述应用程序完整位是否置位,如果是,则执行步骤S31,否则,返回执行步骤S26;
[0077] 步骤S31、跳转至所述应用程序,并继续执行步骤S21。
[0078] 为进一步优化上述实施例,参见图4,本发明另一实施例公开的一种汽车控制器的自刷新方法流程图,在图3所示实施例的基础上,在步骤S28之后,还包括:
[0079] 步骤S32、若所述刷新后的应用程序校验和与所述正确校验和不相等,则所述引导程序向所述上位机返回失败报文。
[0080] 可以看出,当刷新完成后的应用程序出现损坏时,引导程序并不会将应用程序完整位置位,而是采用向上位机返回失败报文的方式停止刷新后的应用程序的运行,从而有效避免了应用程序在出现损坏的情况下执行未知操作情况的出现,进而保证了产品的安全性。
[0081] 本发明采用LIN(Local Interconnect Network,串行通讯网络)总线通信代替现有采用CAN(Controller Area Network,控制器局域网络)总线或K线的通信方式,以适应采用LIN总线进行通信的汽车控制器使用需求。
[0082] 上位机向引导程序发送的刷新数据以LIN协议进行传输,LIN报文的数据帧中,第一个字节代表命令种类,第二、三个字节代表汽车控制器的ROM(Read-Only Memory,只读内存)地址,其他字节代表刷新数据,具体参见表1:
[0083] 表1
[0084]
[0085] 当引导程序将所有的地址写入到应用程序后,表明对应用程序刷新完毕,若刷新后的校验和与正确校验和相等,则引导程序会将应用程序完整位置位,将应用程序跳转位复位。
[0086] 引导程序复位后会跳转至应用程序,从而使应用程序执行刷新后的程序。
[0087] 与上述方法实施例相对应,本发明还提供了一种汽车控制器的自刷新系统。
[0088] 参见图5,本发明实施例公开的一种汽车控制器的自刷新系统的结构示意图,包括:
[0089] 第一校验和计算单元51,用于计算当前应用程序校验和;
[0090] 第一判断单元52,用于判断所述当前应用程序校验和与正确校验和是否相等,如果是,则执行接收跳转单元53;
[0091] 需要说明的是,通过将当前应用程序校验和与正确校验和进行比较来判断应用程序在当前是否发生损坏,从而可以及时采取有效措施,避免应用程序无法执行后续操作或是执行未知操作。
[0092] 接收跳转单元53,用于在第一判断单元52判断为是的情况下,接收上位机发送的刷新指令,将应用程序跳转位置位,并在应用程序复位后跳转至引导程序;
[0093] 应用程序跳转位是表征应用程序是否接收到上位机发送的刷新指令的判定依据,假设应用程序跳转位为0时表示应用程序没有接收到上位机发送的刷新指令,应用程序跳转位为1时表示应用程序接收到上位机发送的刷新指令,则当应用程序接收到上位机发送的刷新指令后,应用程序跳转位会由0置为1。
[0094] 第二判断单元54,用于判断所述应用程序跳转位是否置位,如果是,则执行刷新单元55;
[0095] 刷新单元55,用于在第二判断单元54判断为是的情况下,等待接收所述上位机发送的刷新数据,对所述应用程序进行刷新;
[0096] 第二校验和计算单元56,用于当刷新完成后,计算刷新后的应用程序校验和;
[0097] 第三判断单元57,用于判断所述刷新后的应用程序校验和与所述正确校验和是否相等,如果是,则执行置位复位单元58;
[0098] 置位复位单元58,用于在第三判断单元57判断为是的情况下,将应用程序完整位置位,并将所述应用程序跳转位复位。
[0099] 需要说明的是,应用程序完整位是表征应用程序是否完整的判定依据,假设应用程序完整位为0时表示应用程序在当前不完整,应用程序完整位为1时表示应用程序在当前完整,则当引导程序判定刷新后的应用程序校验和与正确校验和相等后,引导程序会将应用程序完整位由0置为1。
[0100] 综上可以看出,本发明提供的汽车控制器的自刷新系统,应用程序在接收上位机发送的刷新指令之前,通过比较当前应用程序校验和与正确校验和来判断当前是否发生损坏;当引导程序对应用程序刷新完成后,引导程序通过比较刷新后的应用程序校验和与正确校验和来判断应用程序在刷新过程中是否出现损坏。可以看出,本发明采用校验和比较的方式实现对应用程序在刷新前和刷新后的诊断,从而可以及时发现应用程序出现损害的情况,避免应用程序执行未知操作,进而保证了产品的安全性。
[0101] 为进一步优化上述实施例,参见图6,本发明另一实施例公开的一种汽车控制器的自刷新系统的结构示意图,在上述实施例的基础上,还包括:
[0102] 复位跳转单元61,用于在第一判断单元52判断为否的情况下,将所述应用程序复位并跳转至所述引导程序,并继续执行第二判断单元54。
[0103] 当通过比较校验和的方式判定应用程序在当前出现损坏时,会将应用程序复位,并跳转至引导程序,从而可以保证应用程序不进行错误操作,并可以由引导程序对出现损坏的应用程序进行重刷新,因此,相比现有技术而言,有效避免了应用程序出错导致的程序跑飞、执行错误指令或频繁复位等问题。
[0104] 为进一步优化上述实施例,在上述实施例的基础上,还包括:
[0105] 第四判断单元62,用于在第二判断单元54判断为否的情况下,判断所述应用程序完整位是否置位,如果是,则执行跳转单元63,否则,执行第一返回单元64;
[0106] 跳转单元63,用于在第四判断单元62判断为是的情况下,跳转至所述应用程序,并继续执行第一校验和计算单元51;
[0107] 第一返回单元64,用于在第四判断单元62判断为否的情况下,返回执行刷新单元55。
[0108] 为进一步优化上述实施例,在上述实施例的基础上,还包括:
[0109] 第二返回单元65,用于在第三判断单元57判断为否的情况下,向所述上位机返回失败报文。
[0110] 可以看出,当刷新完成后的应用程序出现损坏时,并不会将应用程序完整位置位,而是采用向上位机返回失败报文的方式停止刷新后的应用程序的运行,从而有效避免了应用程序在出现损坏的情况下执行未知操作情况的出现,进而保证了产品的安全性。
[0111] 本发明采用LIN(Local Interconnect Network,串行通讯网络)总线通信代替现有采用CAN(Controller Area Network,控制器局域网络)总线或K线的通信方式,以适应采用LIN总线进行通信的汽车控制器使用需求。
[0112] 上位机向引导程序发送的刷新数据以LIN协议进行传输,LIN报文的数据帧中,第一个字节代表命令种类,第二、三个字节代表汽车控制器的ROM(Read-Only Memory,只读内存)地址,其他字节代表刷新数据,具体参见表1:
[0113] 表1
[0114]
[0115] 当引导程序将所有的地址写入到应用程序后,表明对应用程序刷新完毕,若刷新后的校验和与正确校验和相等,则引导程序会将应用程序完整位置位,将应用程序跳转位复位。
[0116] 引导程序复位后会跳转至应用程序,从而使应用程序执行刷新后的程序。
[0117] 需要说明的是,系统实施例中,各组成部分的具体工作原理请参见方法实施例的对应部分,此处不再赘述。
[0118] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0119] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0120] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。