一种用于混合动力汽车整车控制软件的实时校验方法

文档序号:6283508阅读:484来源:国知局
专利名称:一种用于混合动力汽车整车控制软件的实时校验方法
技术领域
本发明涉及一种用在混合动力汽车上的代码安全校验方法,用来 提高混合动力汽车整车控制软件代码的安全性,从而提高混合动力汽 车的安全性。
背景技术
随着汽车产品质量的不断提高,越来越多的汽车电子被应用到汽 车领域,随着大量的可编程控制电子器件在汽车和混合动力汽车上的 广泛应用。控制软件代码的安全一直以来成为影响整车安全的重要因 素之一。为此,从事相关方面的工程师对此进行了探索,先后提出一
些用于整车通讯和内存检查的校验方法,如CRC,奇偶校验,格雷码 校验等等。但是这些校验方法都有其局限性,不能满足大内存容量的 闪存执行代码的实时校验要求。而且传统的校验方法执行需要的时间 长,不能满足校验的要求。

发明内容
由于存储在闪存中的是执行代码,为了确保执行代码的安全需要 对内存区中代码进行实时校验,同时不能够占用混合动力汽车控制软 件过多的执行时间,而且保障该程序代码在执行之前,该段执行码已 经被校验。本发明在结合大容量的闪存的实时校验的要求,采用分任 务实时校验的方法有效的解决这个问题。具体技术方案如下。
一种用于混合动力汽车整车控制软件的实时校验方法,将闪存的 内存分成不同的存储区,每一个存储区的校验作为一个任务,在每一
3个循环中只执行一个任务,对一个相应的存储区进行校验,只有存储区 的每一行校验都通过的时候,该段存储区校验才是通过的,每个任务 都可以根据主循环时间的许可情况,完成该任务的执行。每一个校验
任务的执行时间小于主循环时间的30%。
进一步,对每一个校验任务都通过任务校验处理函数进行处理, 在任务校验处理函数中,实时行扫描需要校验的闪存内存区,通过计 算查看每一行的计算数值是否与存储在该行结尾的校验码相等,来判 断该行执行代码是否在执行以前遭到破坏。如果判断该行执行代码没 有遭到破坏,退出该任务,继续执行主循环;如果判断该行执行代码 遭到破坏,将禁用混合动力的所有功能,进入刷新模式。
对非摩托罗拉数据格式的二进制文件需要首先通过转换文件转换 成摩托罗拉数据格式的二进制文件。
本发明采用分任务校验的方法,将需要校验的闪存按不同的存储 页分解成不同的任务,在每一个时间片许可的情况下,执行一个校验 任务,在该校验任务中实时的读取每一行可执行代码的数值并且与行 尾的校验码进行比对,检查该行代码是否正确。
本发明在通过实时的行扫描计算,验证执行代码的可靠性。符合 汽车或者混合动力汽车控制软件代码安全的要求。


图1 :文件格式转换;
图2 :校验任务占用的主循环时间片的数值; 图3 :校-验任务的处理流程图。
具体实施例方式
下面结合附图介绍本发明的具体实施方式

本发明仅适用于执行文件为摩托罗拉数据格式的二进制文件。因 此,如图l所示,对非摩托罗拉数据格式的二进制文件H12文件通过转换文件SRecCvt. exe转换成摩托罗拉数据格式的二进制文件S19文 件。该文件行数据格式固定,且行宽字节数固定,为后续的行扫描处 理提供定义规范,同时方便后面的程序处理。
在S19文件中,将每一个行执行代码的数值进行校验计算,并且 将计算的结果放在该行结尾的最后一个字节,作为后面内存中执行代 码校验计算的校验码。
这样处理的好处
可以到每一行固定的地址上,扫描查询到具有特定含义的数据, 比如校验值,方便后续程序处理。
本发明主要是针对大容量的存储介质进行校验检查。如对256k 的闪存一次性检查需要的时间大于25ms,该段程序的执行时间将会超 过基本时间片的执行时间,为此,根据motorola芯片闪存的特点,将 闪存的内存分成不同的存储区,每一个存储区的校验作为 一个任务, 在每一个循环中只执行一个任务对一个相应的存储区进行校验,只有 每一行校验都通过时候,该段存储区校验才是通过的,每个任务都可 以根据主循环时间的许可情况,完成该任务的执行。这样既然能够对
闪存所有的存储介质进行检查,同时又能够满足程序代码执行时间的 限制要求。
如图2所示,同时考虑整车控制软件主程序时间片执行时间的限 制要求,将闪存按照可许可执行时间划分为不同的任务,每一主时间 片只执行其中 一个任务,每一个校验任务的执行时间小于主时间片的 30%。
如图3所示,本发明根据不同闪存容量大小的不同,将闪存分解 成不同大小的任务单元。然后,多个不同的任务将由任务校验分配管 理函数进行该任务的管理和分配;对每一个校验任务都可以通过任务 校验处理函数进行处理,在任务校验处理函数中,实时行扫描需要校 验的闪存内存区,通过计算查看每一行的计算数值是否与存储在该行 结尾的校验码是否相等,来判断该行执行代码是否在执行以前遭到破坏。如果没有遭到破坏,退出该任务,继续执行主循环,如果遭到破 坏,程序将禁用混合动力的所有功能,进入刷新模式,保护混合动力 汽车的安全。
权利要求
1、一种用于混合动力汽车整车控制软件的实时校验方法,将闪存的内存分成不同的存储区,每一个存储区的校验作为一个任务,在每一个循环中只执行一个任务,对一个相应的存储区进行校验,只有存储区的每一行校验都通过的时候,该段存储区校验才是通过的,每个任务都根据主循环时间的许可情况,完成该任务的执行。
2、 如权利要求1所述的实时校验方法,其特征在于每一个校验 任务的执行时间小于主循环时间的30%。
3、 如权利要求1或2所述的实时校验方法,其特征在于对每一 个校验任务都通过任务校验处理函数进行处理,在任务校验处理函数 中,实时行扫描需要校验的闪存内存区,通过计算查看每一行的计算 数值是否与存储在该行结尾的校验码相等,来判断该行执行代码是否 在执行以前遭到破坏。
4、 如权利要求1或2所述的实时校验方法,其特征在于如果判 断该行执行代码没有遭到破坏,退出该任务,继续执行主循环;如果 判断该行执行代码遭到破坏,将禁用混合动力的所有功能,进入刷新 模式。
5、 如权利要求l-4任一项所述的实时校验方法,其特征在于 对非摩托罗拉数据格式的二进制文件需要首先通过转换文件转换成摩 托罗拉数据格式的二进制文件。
全文摘要
本发明公开了一种用于混合动力汽车整车控制软件的实时校验方法,将闪存的内存分成不同的存储区,每一个存储区的校验作为一个任务,在每一个循环中只执行一个任务,对一个相应的存储区进行校验,只有存储区的每一行校验都通过的时候,该段存储区校验才是通过的,如果校验到某行执行代码遭到破坏,将禁用混合动力的所有功能,进入刷新模式。本发明采用分任务校验的方法,通过实时的行扫描计算,验证执行代码的可靠性,这样既能够对闪存所有的存储介质进行检查,同时又能够满足程序代码执行时间的限制要求,符合混合动力汽车控制软件代码安全的要求。
文档编号G05B19/048GK101441453SQ20081018626
公开日2009年5月27日 申请日期2008年12月22日 优先权日2008年12月22日
发明者柳士江 申请人:奇瑞汽车股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1