CN110135198B - 程序流监控方法、系统及车辆 - Google Patents

程序流监控方法、系统及车辆 Download PDF

Info

Publication number
CN110135198B
CN110135198B CN201910120865.4A CN201910120865A CN110135198B CN 110135198 B CN110135198 B CN 110135198B CN 201910120865 A CN201910120865 A CN 201910120865A CN 110135198 B CN110135198 B CN 110135198B
Authority
CN
China
Prior art keywords
key
subprogram
target
program flow
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910120865.4A
Other languages
English (en)
Other versions
CN110135198A (zh
Inventor
马东辉
李子谦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing CHJ Automotive Information Technology Co Ltd
Original Assignee
Beijing CHJ Automotive Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing CHJ Automotive Information Technology Co Ltd filed Critical Beijing CHJ Automotive Information Technology Co Ltd
Priority to CN201910120865.4A priority Critical patent/CN110135198B/zh
Publication of CN110135198A publication Critical patent/CN110135198A/zh
Application granted granted Critical
Publication of CN110135198B publication Critical patent/CN110135198B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种程序流监控方法、系统及车辆,该方法包括:获取随机码,作为初始密钥;为目标监控程序流配置密钥更新函数,密钥更新函数包含子程序因子,目标监控程序流的每个子程序对应不同的子程序因子;在目标监控程序流执行结束的情况下,获取目标监控程序流的最后一个子程序携带的第一密钥;判断第一密钥与目标密钥是否一致;若第一密钥与目标密钥一致,则确定目标监控程序流的执行顺序正确,若第一密钥与目标密钥不一致,则确定目标监控程序流的执行顺序异常。这样,通过所述程序流监控方法能够及时发现目标监控程序流的执行异常情况,便于系统采取相应的措施来避免因执行异常而引发的安全事故。

Description

程序流监控方法、系统及车辆
技术领域
本发明涉及汽车技术领域,尤其涉及一种程序流监控方法、系统及车辆。
背景技术
控制器中应用程序模块按照一定的顺序,在一定的时间范围内依次被调用,才能保证程序安全,可靠的运行。如果应用程序模块不能按照一定的顺序依次执行,或者某些程序根本没有执行,则有可能导致数据错误,数据损坏甚至其他软件模块的失效,可能对系统安全造成灾难性的破坏。
在当前控制器技术中,大多是采用微控制器的片内看门狗或外部看门狗模块来监测软件的运行,看门狗电路要求软件在间隔一个预设好的时间之内对特定寄存器进行访问(这个特定的操作称为喂狗操作)。如在规定时间内软件没有发起喂狗操作,则认定软件执行进入某种异常状态,此时看门狗电路会输出中断或复位信号。但传统看门狗电路不能对程序流进行有效的监控,当程序流的执行顺序出现异常时,可能会引发控制器故障或造成执行机构损坏,严重时甚至会引发重大安全事故。
发明内容
本发明实施例的目的在于提供一种程序流监控方法、系统及车辆,解决了传统看门狗电路不能对软件的运行顺序(即程序流)进行有效监控的问题。
为了达到上述目的,本发明实施例提供一种程序流监控方法,应用于程序流监控系统,所述方法包括:
获取随机码,作为初始密钥;
为目标监控程序流配置密钥更新函数,所述密钥更新函数包含子程序因子,所述目标监控程序流的每个子程序对应不同的子程序因子;
在所述目标监控程序流执行结束的情况下,获取所述目标监控程序流的最后一个子程序携带的第一密钥;
判断所述第一密钥与目标密钥是否一致;所述目标密钥为根据所述初始密钥和所述密钥更新函数,计算所述目标监控程序流在执行正确的情况下,最后一个子程序携带的密钥;
若所述第一密钥与所述目标密钥一致,则确定所述目标监控程序流的执行顺序正确,若所述第一密钥与所述目标密钥不一致,则确定所述目标监控程序流的执行顺序异常。
可选的,所述程序流监控系统包括控制器或独立设置于所述控制器外部的看门狗,所述获取随机码,包括:
获取由所述控制器的软件程序或所述看门狗产生的随机码。
可选的,所述子程序因子与子程序序列号相关联。
可选的,每个子程序对应的子程序因子等于其子程序序列号;
所述密钥更新函数为Yn=(Yn-1+Kn)Kn,其中,Yn为所述目标监控程序流的第n个子程序所携带的密钥,Yn-1为执行第n个子程序前的密钥,Y0为所述初始密钥,Kn为第n个子程序的序列号,n为大于0的整数。
可选的,所述在所述目标监控程序流执行结束的情况下,获取所述目标监控程序流的最后一个子程序携带的第一密钥,包括:
每执行一个所述目标监控程序流的子程序,根据该子程序的前一个子程序所携带的密钥和所述密钥更新函数,计算该子程序执行完后所携带的密钥,直至计算得到所述目标监控程序流的最后一个子程序所携带的所述第一密钥,其中,所述目标监控程序流的第一个子程序所携带的密钥是根据所述初始密钥和所述密钥更新函数计算得到的。
可选的,所述方法还包括:
在所述目标监控程序流的执行顺序正确的情况下,执行喂狗操作;
在所述目标监控程序流的执行顺序异常的情况下,执行复位操作。
可选的,所述在所述目标监控程序流的执行顺序正确的情况下,执行喂狗操作,包括:
在所述目标监控程序流的执行顺序正确且执行时长未超过预设时长的情况下,执行喂狗操作。
本发明实施例还提供一种程序流监控系统,包括:
第一获取模块,用于获取随机码,作为初始密钥;
配置模块,用于为目标监控程序流配置密钥更新函数,所述密钥更新函数包含子程序因子,所述目标监控程序流的每个子程序对应不同的子程序因子;
第二获取模块,用于在所述目标监控程序流执行结束的情况下,获取所述目标监控程序流的最后一个子程序携带的第一密钥;
判断模块,用于判断所述第一密钥与目标密钥是否一致;所述目标密钥为根据所述初始密钥和所述密钥更新函数,计算所述目标监控程序流在执行正确的情况下,最后一个子程序携带的密钥;
确定模块,用于若所述第一密钥与所述目标密钥一致,则确定所述目标监控程序流的执行顺序正确,若所述第一密钥与所述目标密钥不一致,则确定所述目标监控程序流的执行顺序异常。
可选的,所述程序流监控系统包括控制器或独立设置于所述控制器外部的看门狗,所述第一获取模块用于获取由所述控制器的软件程序或所述看门狗产生的随机码。
可选的,所述子程序因子与子程序序列号相关联。
可选的,每个子程序对应的子程序因子等于其子程序序列号;
所述密钥更新函数为Yn=(Yn-1+Kn)Kn,其中,Yn为所述目标监控程序流的第n个子程序所携带的密钥,Yn-1为执行第n个子程序前的密钥,Y0为所述初始密钥,Kn为第n个子程序的序列号,n为大于0的整数。
可选的,所述第二获取模块用于:每执行一个所述目标监控程序流的子程序,根据该子程序的前一个子程序所携带的密钥和所述密钥更新函数,计算该子程序执行完后所携带的密钥,直至计算得到所述目标监控程序流的最后一个子程序所携带的所述第一密钥,其中,所述目标监控程序流的第一个子程序所携带的密钥是根据所述初始密钥和所述密钥更新函数计算得到的。
可选的,所述程序流监控系统还包括:
喂狗模块,用于在所述目标监控程序流的执行顺序正确的情况下,执行喂狗操作;
复位模块,用于在所述目标监控程序流的执行顺序异常的情况下,执行复位操作。
可选的,所述喂狗模块用于在所述目标监控程序流的执行顺序正确且执行时长未超过预设时长的情况下,执行喂狗操作。
本发明实施例还提供一种车辆,包括本发明实施例装置所提供的程序流监控系统。
本发明实施例中,通过为目标监控程序流配置包含子程序因子的密钥更新函数,并在目标监控程序流运行时,利用所配置的密钥更新函数来监控目标监控程序流的执行顺序,从而可以确定目标监控程序流的执行顺序是否存在异常,进而能够及时发现目标监控程序流的执行异常情况,便于系统采取相应的措施来避免因程序执行异常而引发的安全事故。
附图说明
图1为本发明实施例提供的一种程序流监控方法的流程图;
图2为本发明实施例提供的一种控制器与外部看门狗的连接示意图;
图3为本发明实施例提供的一种程序流监控方法的举例示意图;
图4为本发明实施例提供的一种程序流监控系统的结构示意图;
图5为本发明实施例提供的另一种程序流监控系统的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
参见图1,图1是本发明实施例提供一种程序流监控方法的流程图,应用于程序流监控系统,如图1所示,所述方法包括以下步骤:
步骤101、获取随机码,作为初始密钥。
上述随机码可以是随机产生的用作初始密钥的数值,具体可以是由所述程序流监控系统内部或外部程序随机生成的。
可选的,所述程序流监控系统包括控制器或独立设置于所述控制器外部的看门狗,所述获取随机码,可以是获取由所述控制器的软件程序或所述看门狗产生的随机码,即可以由所述控制器的软件程序产生一个随机码或由与所述控制器连接的外部看门狗产生一个随机码,其中,所述看门狗与所述控制器的连接图可以如图2所示,所述看门狗与所述控制器通过通讯总线连接,所述看门狗可以在喂狗异常的情况下向所述控制器输出复位信号或中断信号来通知所述控制器程序流的执行异常情况。
步骤102、为目标监控程序流配置密钥更新函数,所述密钥更新函数包含子程序因子,所述目标监控程序流的每个子程序对应不同的子程序因子。
上述目标监控程序流可以是需要监控执行异常情况的程序流,例如,所述目标监控程序流可以是电机控制器的场定向控制(Field Oriented Control,FOC)程序流。上述密钥更新函数可以是用于更新所述目标监控程序流所携带的密钥的函数,上述为目标监控程序流配置密钥更新函数,可以是先确定密钥更新函数的结构,然后为所述目标监控程序流的每个子程序分别配置一个密钥更新函数,其中,每个子程序所配置的密钥更新函数具有相同或相似的结构,但每个子程序所配置的密钥更新函数分别具有不同的子程序因子。
这样,每执行一个所述目标监控程序流的子程序,便通过该子程序所配置的密钥更新函数更新其所携带的密钥,若所述目标监控程序流的执行顺序出现错乱,则会出现至少一个子程序所携带的密钥与执行正确情况下所携带的密钥不同,从而可以通过所述目标监控程序流的最后一个子程序所携带的密钥来发现所述目标监控程序流的执行异常情况。
例如,所述密钥更新函数可以为yn=knfn+b,其中,n可以为大于或等于1的整数,其表示子程序的序号,kn为第n个子程序的子程序因子,k1、k2、k3…kn均不同,yn可表示第n个子程序所携带的密钥,fn为上一个执行的子程序所携带的密钥,f1为初始密钥,这样,当所述目标监控程序流执行完第一个子程序后,其所携带的密钥被更新为y1=k1f1+b,且y1可用作下一个子程序的初始密钥,即f2=y1,y2=k2y1+b。
这样,以目标监控程序流包括3个子程序为例,所述目标监控程序流在执行正常的情况下,最后一个子程序即第3个子程序所携带的密钥Y=y3=k3y2+b=k3(k2y1+b)+b=k3(k2(k1f1+b)+b)+b=k3k2k1f1+k3k2b+k3b+b,而若所述目标监控程序流的执行顺序出现异常,如先执行第1个子程序,再执行第3个子程序,最后执行第2个子程序,则最后一个子程序即为第2个子程序所携带的密钥为Y′=y2=k2y3+b=k2(k3y1+b)+b=k2(k3(k1f1+b)+b)+b=k3k2k1f1+k3k2b+k2b+b,可见,Y′与Y不一致,即表示所述目标监控程序流的执行顺序存在异常。
可选的,所述子程序因子与子程序序列号相关联,其中,所述目标监控程序流中的每个子程序均分配有序列号,具体地,可以按照所述目标监控程序流的每个子程序的执行顺序分配序列号,例如,所述目标监控程序流的第一个子程序的序列号为1,第二个子程序的序列号为2,第三个子程序的序列号为3,等等。
所述密钥更新函数的子程序因子可以与子程序序列号相关联,如各子程序对应的子程序因子可以等于其序列号或等于其序列号乘以固定系数,例如,所述密钥更新函数为yn=knfn+b,其中,kn为子程序因子,各子程序对应的子程序因子等于其序列号,即k1=1,k2=2,k3=3,…,这样,所述目标监控程序流的第一个子程序所携带的密钥为y1=f1+b,第二个子程序所携带的密钥为y2=2y1+b=2(f1+b)+b=2f1+3b,等等。
这样,根据子程序序列号来确定密钥更新函数的子程序因子,不仅可使得所述密钥更新函数的结构简单,还便于所述程序流监控系统快速计算子程序携带的密钥。
可选的,每个子程序对应的子程序因子等于其子程序序列号;
所述密钥更新函数为Yn=(Yn-1+Kn)Kn,其中,Yn为所述目标监控程序流的第n个子程序所携带的密钥,Yn-1为执行第n个子程序前的密钥,Y0为所述初始密钥,Kn为第n个子程序的序列号,n为大于0的整数。
该实施方式中,为所述目标监控程序流配置的密钥更新函数的结构可以是Yn=(Yn-1+Kn)Kn,其中,Yn和Kn分别为第n个子程序所携带的密钥和其序列号,Kn即为子程序因子,这样,每个子程序所对应的密钥更新函数中的子程序因子等于其序列号,Yn-1可理解为在执行第n个子程序之前所述目标监控程序流被更新的密钥,即在第n个子程序的前一个执行的子程序所携带的密钥。
这样,在计算每个子程序所携带的密钥时,只需根据前一个执行的子程序所携带的密钥、当前执行的子程序的序列号和所述密钥更新函数,计算出当前子程序执行完毕后所携带的密钥。且由于所述密钥更新函数的结构较为简单,参数容易获得,从而可以随所述目标监控程序流的执行,快速准确地计算出最新的密钥,进而确定所述目标监控程序流的执行顺序是否存在异常。
例如,目标监控程序流包括3个子程序,所述目标监控程序流在执行正常的情况下,最后一个子程序即第3个子程序所携带的密钥Y=Y3=(Y2+3)3=((Y1+2)2+3)3=(((Y0+1)1+2)2+3)3=6Y0+27,而若所述目标监控程序流的执行顺序出现异常,如先执行第1个子程序,再执行第3个子程序,最后执行第2个子程序,则最后一个子程序即为第2个子程序所携带的密钥为Y′=Y2=(Y3+2)2=((Y1+3)3+2)2=(((Y0+1)1+3)3+2)2=6Y0+28,可见,Y′与Y不一致,即表示所述目标监控程序流的执行顺序存在异常。
步骤103、在所述目标监控程序流执行结束的情况下,获取所述目标监控程序流的最后一个子程序携带的第一密钥。
由于每个子程序在执行完后,其所携带的密钥都会被其配置的密钥更新函数所更新,因此,当所述目标监控程序流执行结束后,便可以获取所述目标监控程序流的最后一个子程序携带的第一密钥,其中,所述目标监控程序流的最后一个子程序为所述目标监控程序流按照当前执行顺序执行时的最后一个子程序。
具体地,可以是每执行一个所述目标监控程序流的子程序,便根据该子程序的前一个子程序所携带的密钥和所述密钥更新函数,计算该子程序执行完后所携带的密钥,直至计算得到所述目标监控程序流的最后一个子程序所携带的所述第一密钥,其中,所述目标监控程序流的第一个子程序所携带的密钥是根据所述初始密钥和所述密钥更新函数计算得到的。
例如,所述目标监控程序流包括3个子程序A1、A2和A3,且子程序A1、A2和A3的序列号依次为1、2、3,初始密钥为m,密钥更新函数为yn=knfn+b,若所述目标监控程序流的执行顺序为A1、A2和A3,则执行完子程序A1后,其所携带的密钥为y1=k1f1+b=m+b,执行完子程序A2后,其所携带的密钥为y2=k2f2+b=2(m+b)+b=2m+3b,执行完子程序A3后,其所携带的密钥为y3=k3f3+b=3(2m+3b)+b=6m+10b,这样,当所述目标监控程序流执行完后,可以获取所述目标监控程序流的最后一个子程序携带的第一密钥为6m+10b。
步骤104、判断所述第一密钥与目标密钥是否一致;所述目标密钥为根据所述初始密钥和所述密钥更新函数,计算所述目标监控程序流在执行正确的情况下,最后一个子程序携带的密钥。
步骤105、若所述第一密钥与所述目标密钥一致,则确定所述目标监控程序流的执行顺序正确,若所述第一密钥与所述目标密钥不一致,则确定所述目标监控程序流的执行顺序异常。
在获取到所述第一密钥后,便可以通过所述第一密钥的值验证所述目标监控程序流是否存在异常,具体地,可以将所述第一密钥与目标密钥进行比较,看其是否与所述目标密钥相一致,其中,所述目标密钥是根据所述初始密钥和所述密钥更新函数,计算所述目标监控程序流在执行正确的情况下,最后一个子程序携带的密钥,这样,若所述目标监控程序流的执行顺序正确,则获取到的所述第一密钥应与所述目标密钥一致,若不一致,则可以确定所述目标监控程序流的执行顺序存在异常。
例如,所述目标监控程序流包括3个子程序A1、A2和A3,且子程序A1、A2和A3的序列号依次为1、2、3,初始密钥为m,密钥更新函数为yn=knfn+b,所述目标监控程序流的正确执行顺序为A1、A2和A3,则可以计算所述目标密钥应为6m+10b;假设所述目标监控程序流的执行顺序存在异常,如所述目标监控程序流的执行顺序为A1、A3和A2,则执行完子程序A1后,其所携带的密钥为y1=k1f1+b=m+b,执行完子程序A3后,其所携带的密钥为y3=k3f3+b=3(m+b)+b=3m+4b,执行完子程序A2后,其所携带的密钥为y2=k2f2+b=2(3m+4b)+b=6m+9b,可见,当所述目标监控程序流的执行顺序存在异常时,执行的最后一个子程序所携带的第一密钥将与目标密钥不一致,因此,可以通过比较所述第一密钥与所述目标密钥,来确定所述目标监控程序流的执行是否存在异常。
可选的,所述方法还包括:
在所述目标程序流的执行顺序正确的情况下,执行喂狗操作;
在所述目标程序流的执行顺序异常的情况下,执行复位操作。
该实施方式中,在确定所述目标程序流的执行顺序正确时,可以执行喂狗操作,即可以输出一个信号到喂狗端,给看门狗清零,在确定所述目标程序流的执行顺序异常时,则可以执行复位操作,即可以输出一个复位信号给控制器,使控制器复位而进入安全状态,防止程序发生死循环。
例如,在车辆电机控制器的FOC控制流中,正常的执行流程为先采集旋变解码芯片提供的位置信号,然后采集电机的三相电流,最后执行矢量控制算法输出占空比信号控制电机;若通过所述程序流监控方法监控到所述FOC控制流未按照上述顺序执行(如先执行矢量控制算法输出占空比信号控制电机,再采集旋变解码芯片提供的位置信号,最后采集电机的三相电流),则将输出复位信号以将车载电子控制单元(Electronic Control Unit,ECU)复位或者进入安全状态,从而防止车载ECU因没有预先获得旋变解码芯片提供的位置信号和电机的三相电流,而输出一个异常的占空比来控制电机,造成车辆出现非预期的加速或减速而导致车辆动力异常,进而影响车辆内人员安全。
进一步的,所述在所述目标监控程序流的执行顺序正确的情况下,执行喂狗操作,包括:
在所述目标监控程序流的执行顺序正确且执行时长未超过预设时长的情况下,执行喂狗操作。
该实施方式中,在判断所述目标监控程序流的执行顺序是否异常的同时,还可以监测所述目标监控程序流的执行时间是否存在超时的情况,例如,可以通过看门狗计时,判断所述目标监控程序流在预设时长内是否执行完毕。
若确定所述目标监控程序流的执行顺序正常,且所述目标监控程序流在预设时长内执行完毕,即执行时长未超过预设时长,则可以确定所述目标监控程序流的执行无异常,此时可以执行喂狗操作,即可以输出一个信号到喂狗端,给看门狗清零。
需说明的是,若确定所述目标监控程序流的执行顺序异常,或所述目标监控程序流在预设时长内未执行完毕,即执行时长超过预设时长,则可以确定所述目标监控程序流的执行存在异常,此时可以执行复位操作,即可以输出一个复位信号给控制器,使控制器复位而进入安全状态,防止程序发生死循环。
下面结合图3,以举例的方式对本发明实施例的具体实施方式进行说明:
在执行目标程序流之前,先进行初始化,设置看门狗喂狗时间,然后获取看门狗产生的随机码作为初始密钥,为目标程序流配置密钥更新函数,开始执行目标程序流,每执行一个子程序,按照所述密钥更新函数更新其所携带的密钥,当所述目标程序流执行完毕后,获取最后一个子程序所携带的第一密钥,并校验所述第一密钥是否与系统计算得到的所述目标程序流按照正常顺序执行时最后一个子程序所携带的目标密钥一致,若所述第一密钥与所述目标密钥一致,则确定所述目标程序流的执行顺序正确,并在喂狗时间到达时执行喂狗操作,若所述第一密钥与所述目标密钥不一致,则确定所述目标程序流的执行顺序异常,并输出复位信号,以使系统复位进入安全状态。
本实施例中的程序流监控方法,通过为目标监控程序流配置包含子程序因子的密钥更新函数,并在目标监控程序流运行时,利用所配置的密钥更新函数来监控目标监控程序流的执行顺序,从而可以确定目标监控程序流的执行顺序是否存在异常,进而能够及时发现目标监控程序流的执行异常情况,便于系统采取相应的措施来避免因程序执行异常而引发的安全事故。
参见图4,图4是本发明实施例提供一种程序流监控系统的结构示意图,如图4所示,程序流监控系统400包括:
第一获取模块401,用于获取随机码,作为初始密钥;
配置模块402,用于为目标监控程序流配置密钥更新函数,所述密钥更新函数包含子程序因子,所述目标监控程序流的每个子程序对应不同的子程序因子;
第二获取模块403,用于在所述目标监控程序流执行结束的情况下,获取所述目标监控程序流的最后一个子程序携带的第一密钥;
判断模块404,用于判断所述第一密钥与目标密钥是否一致;所述目标密钥为根据所述初始密钥和所述密钥更新函数,计算所述目标监控程序流在执行正确的情况下,最后一个子程序携带的密钥;
确定模块405,用于若所述第一密钥与所述目标密钥一致,则确定所述目标监控程序流的执行顺序正确,若所述第一密钥与所述目标密钥不一致,则确定所述目标监控程序流的执行顺序异常。
可选的,所述程序流监控系统包括控制器或独立设置于所述控制器外部的看门狗,第一获取模块401用于获取由所述控制器的软件程序或所述看门狗产生的随机码。
可选的,所述密钥更新函数包含子程序因子,所述子程序因子与子程序序列号相关联。
可选的,每个子程序对应的子程序因子等于其子程序序列号;
所述密钥更新函数为Yn=(Yn-1+Kn)Kn,其中,Yn为所述目标监控程序流的第n个子程序所携带的密钥,Yn-1为执行第n个子程序前的密钥,Y0为所述初始密钥,Kn为第n个子程序的序列号,n为大于0的整数。
可选的,第二获取模块403用于:每执行一个所述目标监控程序流的子程序,根据该子程序的前一个子程序所携带的密钥和所述密钥更新函数,计算该子程序执行完后所携带的密钥,直至计算得到所述目标监控程序流的最后一个子程序所携带的所述第一密钥,其中,所述目标监控程序流的第一个子程序所携带的密钥是根据所述初始密钥和所述密钥更新函数计算得到的。
可选的,如图5所示,程序流监控系统400还包括:
喂狗模块406,用于在所述目标监控程序流的执行顺序正确的情况下,执行喂狗操作;
复位模块407,用于在所述目标监控程序流的执行顺序异常的情况下,执行复位操作。
可选的,喂狗模块406用于在所述目标监控程序流的执行顺序正确且执行时长未超过预设时长的情况下,执行喂狗操作。
程序流监控系统400能够实现图1的方法实施例中程序流监控系统实现的各个过程,为避免重复,这里不再赘述。本发明实施例中的程序流监控系统通过为目标监控程序流配置包含子程序因子的密钥更新函数,并在目标监控程序流运行时,利用所配置的密钥更新函数来监控目标监控程序流的执行顺序,从而可以确定目标监控程序流的执行顺序是否存在异常,进而能够及时发现目标监控程序流的执行异常情况,便于系统采取相应的措施来避免因执行异常而引发的安全事故。
本发明实施例还提供一种车辆,包括图4或图5所述的程序流监控系统,本实施例中,所述车辆能达到和图4、图5所示的实施例相同的有益效果,为避免重复,这里不再赘述。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (11)

1.一种程序流监控方法,应用于程序流监控系统,其特征在于,所述方法包括:
获取随机码,作为初始密钥;
为目标监控程序流配置密钥更新函数,所述密钥更新函数包含子程序因子,所述目标监控程序流的每个子程序对应不同的子程序因子;
在所述目标监控程序流执行结束的情况下,获取所述目标监控程序流的最后一个子程序携带的第一密钥;
判断所述第一密钥与目标密钥是否一致;所述目标密钥为根据所述初始密钥和所述密钥更新函数,计算所述目标监控程序流在执行正确的情况下,最后一个子程序携带的密钥;
若所述第一密钥与所述目标密钥一致,则确定所述目标监控程序流的执行顺序正确,若所述第一密钥与所述目标密钥不一致,则确定所述目标监控程序流的执行顺序异常;
每个子程序对应的子程序因子等于其子程序序列号;所述密钥更新函数为Yn=(Yn-1+Kn)Kn,其中,Yn为所述目标监控程序流的第n个子程序所携带的密钥,Yn-1为执行第n个子程序前的密钥,Y0为所述初始密钥,Kn为第n个子程序的序列号,n为大于0的整数;
或者,
所述密钥更新函数为yn=knfn+b,其中,yn为第n个子程序所携带的密钥,kn为第n个子程序的子程序因子,fn为上一个执行的子程序所携带的密钥,f1为初始密钥,n为子程序的序号,n为大于0的整数。
2.根据权利要求1所述的方法,其特征在于,所述程序流监控系统包括控制器或独立设置于所述控制器外部的看门狗,所述获取随机码,包括:
获取由所述控制器的软件程序或所述看门狗产生的随机码。
3.根据权利要求1所述的方法,其特征在于,所述在所述目标监控程序流执行结束的情况下,获取所述目标监控程序流的最后一个子程序携带的第一密钥,包括:
每执行一个所述目标监控程序流的子程序,根据该子程序的前一个子程序所携带的密钥和所述密钥更新函数,计算该子程序执行完后所携带的密钥,直至计算得到所述目标监控程序流的最后一个子程序所携带的所述第一密钥,其中,所述目标监控程序流的第一个子程序所携带的密钥是根据所述初始密钥和所述密钥更新函数计算得到的。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
在所述目标监控程序流的执行顺序正确的情况下,执行喂狗操作;
在所述目标监控程序流的执行顺序异常的情况下,执行复位操作。
5.根据权利要求4所述的方法,其特征在于,所述在所述目标监控程序流的执行顺序正确的情况下,执行喂狗操作,包括:
在所述目标监控程序流的执行顺序正确且执行时长未超过预设时长的情况下,执行喂狗操作。
6.一种程序流监控系统,其特征在于,包括:
第一获取模块,用于获取随机码,作为初始密钥;
配置模块,用于为目标监控程序流配置密钥更新函数,所述密钥更新函数包含子程序因子,所述目标监控程序流的每个子程序对应不同的子程序因子;
第二获取模块,用于在所述目标监控程序流执行结束的情况下,获取所述目标监控程序流的最后一个子程序携带的第一密钥;
判断模块,用于判断所述第一密钥与目标密钥是否一致;所述目标密钥为根据所述初始密钥和所述密钥更新函数,计算所述目标监控程序流在执行正确的情况下,最后一个子程序携带的密钥;
确定模块,用于若所述第一密钥与所述目标密钥一致,则确定所述目标监控程序流的执行顺序正确,若所述第一密钥与所述目标密钥不一致,则确定所述目标监控程序流的执行顺序异常;
其中,每个子程序对应的子程序因子等于其子程序序列号;所述密钥更新函数为Yn=(Yn-1+Kn)Kn,其中,Yn为所述目标监控程序流的第n个子程序所携带的密钥,Yn-1为执行第n个子程序前的密钥,Y0为所述初始密钥,Kn为第n个子程序的序列号,n为大于0的整数;
或者,
所述密钥更新函数为yn=knfn+b,其中,yn为第n个子程序所携带的密钥,kn为第n个子程序的子程序因子,fn为上一个执行的子程序所携带的密钥,f1为初始密钥,n为子程序的序号,n为大于0的整数。
7.根据权利要求6所述的程序流监控系统,其特征在于,所述程序流监控系统包括控制器或独立设置于所述控制器外部的看门狗,所述第一获取模块用于获取由所述控制器的软件程序或所述看门狗产生的随机码。
8.根据权利要求6所述的程序流监控系统,其特征在于,所述第二获取模块用于:每执行一个所述目标监控程序流的子程序,根据该子程序的前一个子程序所携带的密钥和所述密钥更新函数,计算该子程序执行完后所携带的密钥,直至计算得到所述目标监控程序流的最后一个子程序所携带的所述第一密钥,其中,所述目标监控程序流的第一个子程序所携带的密钥是根据所述初始密钥和所述密钥更新函数计算得到的。
9.根据权利要求6-8中任一项所述的程序流监控系统,其特征在于,所述程序流监控系统还包括:
喂狗模块,用于在所述目标监控程序流的执行顺序正确的情况下,执行喂狗操作;
复位模块,用于在所述目标监控程序流的执行顺序异常的情况下,执行复位操作。
10.根据权利要求9所述的程序流监控系统,其特征在于,所述喂狗模块用于在所述目标监控程序流的执行顺序正确且执行时长未超过预设时长的情况下,执行喂狗操作。
11.一种车辆,其特征在于,包括权利要求6-10中任一项所述的程序流监控系统。
CN201910120865.4A 2019-02-18 2019-02-18 程序流监控方法、系统及车辆 Active CN110135198B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910120865.4A CN110135198B (zh) 2019-02-18 2019-02-18 程序流监控方法、系统及车辆

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910120865.4A CN110135198B (zh) 2019-02-18 2019-02-18 程序流监控方法、系统及车辆

Publications (2)

Publication Number Publication Date
CN110135198A CN110135198A (zh) 2019-08-16
CN110135198B true CN110135198B (zh) 2021-06-22

Family

ID=67568462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910120865.4A Active CN110135198B (zh) 2019-02-18 2019-02-18 程序流监控方法、系统及车辆

Country Status (1)

Country Link
CN (1) CN110135198B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111427723B (zh) * 2020-03-19 2023-05-30 阳光电源股份有限公司 基于AutoSAR的程序流监控方法及应用装置
CN115422555B (zh) * 2022-11-04 2023-02-28 北京华云安信息技术有限公司 后门程序检测方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103383566A (zh) * 2013-06-24 2013-11-06 奇瑞汽车股份有限公司 一种程序流监控方法
CN108646708A (zh) * 2018-05-02 2018-10-12 阳光电源股份有限公司 一种程序流监控方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI355582B (en) * 2008-03-05 2012-01-01 Inventec Corp Method for analyzing program with error, and metho
US8649521B2 (en) * 2010-01-28 2014-02-11 Cleversafe, Inc. Obfuscation of sequenced encoded data slices
CN103869804A (zh) * 2014-03-11 2014-06-18 中国汽车工程研究院股份有限公司 程序流监控方法
CN104052681B (zh) * 2014-06-25 2018-09-21 中国联合网络通信集团有限公司 流量控制方法和装置
CN104914815A (zh) * 2015-04-15 2015-09-16 北汽福田汽车股份有限公司 处理器监控方法、装置及系统
CN105955115A (zh) * 2016-05-10 2016-09-21 重庆长安汽车股份有限公司 一种汽车整车控制器的程序流监控方法和装置
CN108388230B (zh) * 2018-02-11 2020-08-07 北京车和家信息技术有限公司 任务调度方法、任务调度系统、车辆电子控制单元及车辆

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103383566A (zh) * 2013-06-24 2013-11-06 奇瑞汽车股份有限公司 一种程序流监控方法
CN108646708A (zh) * 2018-05-02 2018-10-12 阳光电源股份有限公司 一种程序流监控方法及系统

Also Published As

Publication number Publication date
CN110135198A (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN110135198B (zh) 程序流监控方法、系统及车辆
US20180111626A1 (en) Method and device for handling safety critical errors
US20040078731A1 (en) Method for operating a processor-controlled system
JP5244981B2 (ja) マイクロコンピュータ及びその動作方法
DE112016000153T5 (de) Antriebssteuerungsvorrichtung
CN108322357B (zh) 一种车辆can网络通信节点的心跳检测方法
US20100192052A1 (en) Method for the Operation of a Microcontroller and an Execution Unit and Microcontroller and an Execution Unit
CN113946148B (zh) 一种基于多ecu协同控制的mcu芯片唤醒系统
WO2013164224A2 (de) Verfahren und vorrichtung zur überwachung von funktionen eines rechnersystems, vorzugsweise eines motorsteuersystems eines kraftfahrzeuges
DE102015202326A1 (de) Verfahren zum Betreiben einer Datenverarbeitungseinheit eines Fahrerassistenzsystems und Datenverarbeitungseinheit
US20100213964A1 (en) Timer unit, system, computer program product and method for testing a logic circuit
US20100235055A1 (en) Monitoring Device for the Function of an Electronic Control Device, and Method for this Purpose
EP3629176B1 (en) Fault detection circuit with progress register and status register
US10633018B2 (en) External watchdog with integrated backward regeneration support
JP3991782B2 (ja) 電子制御装置
DE102011087063A1 (de) Kontrollrechnersystem und Verfahren zur beschleunigten Initialisierung einzelner Module
US10514970B2 (en) Method of ensuring operation of calculator
JP5683191B2 (ja) 監視装置、及び電子制御システム
CN110832459B (zh) 车辆控制装置
CN112740123B (zh) 用于监视安全关键过程的自动化系统
EP4275123A1 (en) Program flow monitoring for gateway applications
JP2004519059A (ja) 分配された安全上重要なシステムのコンポーネントの駆動方法
US20030093725A1 (en) Method and circuit for monitoring microcomputer for onboard electronic control device
WO2023223940A1 (ja) 車載装置、プログラム及び情報処理方法
US11321163B2 (en) Device and method for monitoring functional safety in integrated circuits (ICS)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant