汽车用数据异常判定装置的制作方法

文档序号:5258671阅读:314来源:国知局
专利名称:汽车用数据异常判定装置的制作方法
技术领域
本发明涉及对汽车控制所使用的数据的异常进行判定的汽车用数据异常判定装置。
背景技术
以往,例如在无刷电机式涡轮致动器中,作为控制内容的数据存储在微机ROM或EEPROM等存储装置中,按照该数据对无刷电机进行最佳控制,从而实现燃料消耗效率的提高和废气中有害物质的减少。因此,在存储装置中存储的数据如果发生改变或异常的话,会对燃料消耗效率和废气的成分等带来影响。 另外,在存储装置中存储的数据如果发生异常或改变的话,可能会执行原本不准备执行的控制,燃料消耗效率降低,废气中的有害物质增加,可能会对发动机带来不良影响。因此,需要应对CARB(California Air Resources Board :加利福尼亚州空气资源委员会)的HD OBD(On-Board Diagnostic System Requirements for2010 and SubsequentModel-Year Heavy-Duty Engines: 2010年及之后车型年份的重型发动机的车载诊断系统的要求)。其中之一是应对CVN(Calibration Verification Number :校准检定号码)。CVN是指“所有车辆必须使用运算算法来对在装载了可电重写的微机或存储器的各个自诊断单元或对排放有重要影响的单元上所装载的车载计算机的匹配性进行检查的单独的CVN进行计算。”。(但是,在最新的CARB的要求中,有着无论是否可重写都要进行应对的需求。)具体来说,有着对CVN这个固有的值进行运算并从外部读出的需求。该运算算法需要由各个元器件厂商进行探讨并得到CARB的承认,但是基本上像校验和这种容易类推的算法是不被承认的。在具有闪存微机或EEPROM这种可重写数据的设备的产品中,担心在出厂后因对数据内容进行不正当的重写、设备故障而导致数据发生变化。以往,为了防止这种情况,例如有着在闪存微机重写时设定密码,在程序上实施校验和的运算,启动时对校验和的值进行确认等方法。另外,对于EEPROM中的数据,在由微机读出时也用校验和进行确认。然而,一旦密码被知晓,那就无法作为对于窜改的对策起到作用。另外,对于校验和,存在如下问题比较容易带着使其校验和的值不变的恶意而对数据进行部分重写。作为这些情况的对策,如下算法是有效的从数据运算出一个对于数据的部分变化而言非常难以维持相同的值、且运算结果也难以类推的固有的值,以该固有的值不发生变化来对数据是否正常进行确认。作为现有例,例如,在专利文献I所揭示的现有技术“微机中程序区的数据保全方法”中,将存储器按数据块进行分割,通过按各数据块一起存放校验和数据及纠错码,能对每个数据块进行异常检测和修复。
现有技术文献专利文献专利文献I :日本专利特开2005 - 208958号公报

发明内容
然而,在该现有技术中,检测出数据的错误之后进行纠错,然后再重写纠正后的数据,存在着不希望使用修复后的数据作为汽车用控制数据来继续进行控制的问题。本发明是为了解决上述问题而完成的,目的在于以不易窜改的方式对数据进行运算,并且在运算出的数据被窜改的情况下,能简单且合适地检测出该窜改。本发明所涉及的汽车用数据异常判定装置具备存储部,该存储部将作为运算对 象区的CRC运算结果的2字节余项预先存储在规定的存储区;以及运算部,该运算部在进行CRC运算时,在进行对象区运算之后将所述2字节余项也包括在内进行CRC运算。根据本发明,由于在进行CRC运算时,在进行对象区运算之后将2字节余项也包括在内进行CRC运算,因此运算结果恒为0,能简单(是否为O)且合适地进行数据是否被窜改的判定操作。


图I是示出本发明所涉及的汽车用数据异常判定装置的整体结构的框图。图2-A是分开示出作为本发明所涉及的汽车用数据异常判定装置的一部分的结构要素的ECU的结构的框图。图2-B是分开示出作为本发明所涉及的汽车用数据异常判定装置的一部分的结构要素的ECU的结构的框图。图2-C是分开示出作为本发明所涉及的汽车用数据异常判定装置的一部分的结构要素的ECU的结构的框图。图2-D是分开示出作为本发明所涉及的汽车用数据异常判定装置的一部分的结构要素的ECU的结构的框图。图3是对CRC运算部的CRC运算处理工序进行说明的流程图。图4是试制阶段(快闪ROM)和量产阶段(掩膜ROM)的对比说明图。图5是对CRC运算部中进行CVN运算的处理工序进行说明的流程图。图6是从E⑶向外部通知CVN的通信控制部的结构图。图7是从E⑶向外部通知CVN的通信控制部的结构图。
具体实施例方式以下,为了对本发明进行详细说明,按照附图对实施本发明的方式进行说明。实施方式I图I是示出本发明所涉及的汽车用数据异常判定装置的整体结构的框图,包括作为数据异常判定装置的结构要素的E⑶I、经由通信线2与该E⑶I连接的外部工具(诊断工具)3及发动机E⑶4。E⑶I具备EEPR0M5和微机6。图2-A 图2-D是详细地分开示出作为本发明所涉及的汽车用数据异常判定装置的一部分的结构要素的ECU的结构的框图,各图中的符号a d和符号O R示出同一直线的连接处。作为该ECUl的功能,包括读出EEPR0M5的区51的数据并对该数据进行异常校验的CRC运算部63、读出区52的数据并对该数据进行异常校验的CRC运算部64、读出作为微机的ROM的区61的数据并对该数据进行异常校验的CRC运算部62、对CVN进行运算的CVN运算部65及与外部工具3进行通信的通信部66。EEPR0M5 (图2_B,图2_C)具有区51 (顾客使用块)、区52 (量产块)及CVN存放区53,各区51、52分别构成为将预先运算的CRC值存放到存储部51a、52a(步骤ST51-0)(步骤 ST52-0)。微机(图2-A 图2-D)具有作为ROM的区61,该区61构成为将预先运算的CRC值存放到存储部61a (步骤ST61-0)。然后,微机具有对于该区61的CRC运算部62、对于区51的CRC运算部63、对于区52的CRC运算部64、CRC运算部65及经由通信线2连接到外部工具3的通信部66。
CRC运算部62顺序读出区61的各块的数据并进行CRC运算(步骤ST62-1),求出全部的块的总CRC值(步骤ST62-2)。然后,判断该总CRC值是否为O (步骤ST62-3),如果为是的话,区61的数据为正常(步骤ST62-4),如果为否的话,区61的数据发生异常,因此进行发生异常时的处理,例如,向发动机E⑶4通知发生异常,发动机E⑶4通过点亮汽车的校验灯来向用户通知发生异常(步骤ST62-5)。由此,区61的校验结束(步骤ST62-6)。CRC运算部63顺序读出EEPROM的区51的各块的数据(步骤ST63-1),并进行CRC运算(步骤ST63-2),求出全部的块的总CRC值(步骤ST63-3)。接着,读出预先存储在存储部51a中的CRC值(步骤ST63-4),判断该CRC值与上述求出的总CRC值是否相等(步骤ST63-5)。判断的结果如果为是的话,区51的数据为正常(步骤ST63-6),如果为否的话,区51的数据发生异常,因此进行发生异常时的处理,例如,采用默认值向发动机ECU4通知发生异常,发动机E⑶4通过点亮汽车的校验灯来向用户通知发生异常(步骤ST62-5)。由此,区51的校验结束(步骤ST63-8)。CRC运算部64顺序读出EEPROM的区52的各块的数据(步骤ST64-1),并进行CRC运算(步骤ST64-2),求出全部的块的总CRC值(步骤ST64-3)。接着,读出预先存储在存储部52a中的CRC值(步骤ST64-4),判断该CRC值与上述求出的总CRC值是否相等(步骤ST64-5)。判断的结果如果为是的话,区52的数据为正常(步骤ST64-6),如果为否的话,区52的数据发生异常,因此进行发生异常时的处理,例如,采用默认值向发动机E⑶4通知发生异常,发动机E⑶4通过点亮汽车的校验灯来向用户通知发生异常(步骤ST62-5)。由此,区51的校验结束(步骤ST64-8)。如上所述,由于能利用CRC运算部62 64分别对区61、区51、区52的数据的对错进行单独判断,因此能简单且合适地获知数据是否被窜改,即数据是否改变。另外,在CRC运算部62 64进行运算时,将来自步骤ST62-2的区61的全部的块的总CRC值、来自步骤ST63-3的区51的全部的块的总CRC值、以及来自步骤ST64-3的区52的全部的块的总CRC值分别输入并储存到作为CRC运算部65的RAM的存储部7的块7_1、7-2、7-3中。然后,CRC运算部65从存储部7读出全部的总CRC值并进行CRC运算(步骤ST65-1),算出CVN(步骤ST65-2)。算出的CVN由写入部67写入到EEPR0M5的CVN存放区53。另外,通信部66将来自外部工具3的要求或者定期算出的CVN传送到该外部工具。这种情况下,进行CVN要求/CVN确认校验灯(未图示)的点亮等。图3是对从区51的各个块读出的数据进行CRC运算的图2_B中的步骤ST63-2的动作进行详细说明的图。以从区51的块51-1读出的存储值和预先设定的初始值(步骤ST63-21)进行CRC运算(步骤ST63-22)。接着,以所得到的CRC值(步骤ST63-23)和从区51的下一个块51-2读出的存储值进行CRC运算(步骤ST63-24)。以下,同样地以所得到的CRC值和从下一个块读出的存储值反复进行CRC运算(步骤ST63-24) (步骤ST63-n),对区51的全部的块中的数据的存储值进行CRC运算,得到总CRC值。以所得到的总CRC值和从区51的存储部51a读出的预先存储的CRC值进行比较(步骤ST63-3),如果两者一致的话,能判定区51所存储的数据没有被窜改。另外,对于区52也进行与区51同样的处理。图4是试制阶段(快闪ROM)和量产阶段(掩膜ROM)的对比说明图。在试制阶段和量产阶段使用ROM容量不同的微机。如果改变ROM容量的话,ROM的分配位置也不同。 如果在从试制阶段切换到量产阶段时以完全相同的源代码对ROM的分配位置进行改变而生成目标文件的话,由于ROM容量不同,因此ROM的各个块所存储的数据的CRC运算不一致。然后,一旦CRC值发生改变,由于必须再次将新的CVN发到当局,因此需要加入使CRC值在试制阶段和量产阶段不发生变化的结构。利用在对相同的值进行CRC运算时会算出O (相同的值的余数为O)这种CRC运算的特性,通过在ROM的各个块的运算块的末尾2字节中存放即将对末尾2字节进行运算之前的CRC值,能使ROM的各个数据块所存储的数据的CRC值为“O”。此外,由于ROM的各个块的末尾是复位向量地址,无法存放CRC值,因此改变运算顺序,使ROM的未使用块成为末尾。由此,在ROM的分配发生改变的情况下,只要对与控制完全无关的2字节的值进行重写来生成目标文件,就能使CRC值一致。在图4所示的试制阶段(快闪ROM)和量产阶段(掩膜ROM)的块I配置可变向量和引导程序所参照的数据(有无APL写入及密码),引导程序在块O配置ROM数据(程序)。因此,由于无法将数据不小心配置到块O和块1,因此将块2的最后2字节(OFBFFEh和OFBFFFh)作为CRC运算最后块,以如下的顺序进行CRC运算,试制阶段(128K):块I —块O —块5 —块4 —块2,量广阶段(96K):块I —块O —块4 —块3 —块2。另外,由于ROM中,块越大,运算所花费的时间就越长,因此一边进行E⑶I的控制,一边并行地进行CRC运算。在试制阶段(128K)的情况下,块5的头地址(OEOOOOh)成为起始地址,块3成为未使用块。在量产阶段(98K)的情况下,块4的头地址(0E8000h)成为起始地址。图5是示出CRC运算部65的详细情况的流程图。以从存储部7的块7_1读出的区61的全部的块的总CRC值和在步骤ST65-11中读出的预备的初始值进行CRC运算(步骤ST65-12),以该得到的CRC值(步骤ST65-13)和从存储部7的块7_2读出的区51的全部的块的总CRC值进行CRC运算(步骤ST65-14),以该得到的CRC值(步骤ST65-15)和从存储部7的块7-3读出的区52的全部的块的总CRC值进行CRC运算(步骤ST65-16)。然后,将所得到的CRC值(步骤ST65-17)作为CVN存放到存储部7的块7-0以及EEPR0M5的存储部53。
接着,对将算出的CVN向外部进行通知的单元进行说明。该单元有2个模式。其第I模式如图6所示,将算出的CVN以通信(CAN等)的方式定期发送。外部工具3接收E⑶I所发送的数据,对CVN进行确认。在E⑶I侧具备存储部7,该存储部7将CVN存储到块7-0 ;发送执行部12,该发送执行部12以一定周期执行从存储部7读出该CVN(步骤ST12-1)且将该读出的CVN进行发送(步骤ST12-2);以及通信控制部13,该通信控制部13通过通信线2向外部工具3发送从该发送执行部12发送来的CVN。外部工具3具备接收执行部32,该接收执行部32对通过通信线2从E⑶I侧发送来的CVN进行接收(步骤ST32-1),与预备的CVN进行比较(步骤ST32-2),来对CVN进行确认。第2模式如图7所示,从外部工具3向E⑶I发送CVN的要求命令,接收了命令的ECUl获取CVN并以命令进行回复。接收了命令的外部工具3对CVN进行确认。即,E⑶I具备CVN存储部7、通信控制部13、以及命令处理部14,命令处理部14对 从外部工具3发送来的CVN的要求命令进行接收(步骤ST14-1),基于该CVN的要求命令从存储部7读出CVN(步骤ST14-2),由通信控制部13将该读出的CVN以命令进行发送(步骤ST14-3)。外部工具3具备通信控制部31以及收发执行部32,收发执行部32向通信控制部31发送CVN的要求命令(步骤ST32-1),由通信控制部31通过通信线2对从E⑶I发送来的CVN的命令进行接收(步骤ST32-2),基于该接收到的命令对CVN和预备的CVN进行比较(步骤ST32-2),来对CVN进行确认。如上所述,根据该实施方式1,对作为ROM的区61、作为EEPROM的区51、52的数据进行CRC运算时,通过在进行对象区运算之后将所述2字节余项也包括在内进行CRC运算,从而在全部或者一部分的区实施CRC运算结果为0x0000的运算,因此具有如下效果能够以不易窜改的方式对数据进行运算,并且在运算出的数据被窜改的情况下,能简单地按各个区检测出该窜改。另外,由于进一步对各个区的运算结果进行CRC运算来算出CVN,因此具有如下效果通过对该算出的CVN与预先决定的CVN进行比较,如果一致的话,能合适地获知作为ROM的区61、作为EEPROM的区51、52的全部的数据都没有被窜改,如果不一致的话,能合适地获知作为ROM的区61、作为EEPROM的区51、52的某一方的数据被窜改。另外,在难以将2字节余项配置到运算对象区的末尾的情况下,通过改变运算顺序以最后实施2字节余项的运算,从而2字节余项的配置不受制约。另外,在快闪ROM和掩膜ROM的ROM容量不同的情况下,通过预先将ROM容量大的快闪ROM的未使用区域排除在CRC运算对象之外,使快闪ROM和掩膜ROM的运算对象大小相同,从而在从快闪ROM变为掩膜ROM时CRC的运算时间不会发生变化。另外,由于ROM在CRC运算上需要花费时间,因此通过采用一边进行通常控制、一边进行CRC运算的结构,从而能消除对通常控制的延迟影响。另外,由于CRC运算使用CRC-16标准、CRC-CCITT标准,因此即使部分数据被窜改,也能合适地获知该窜改,能提高数据的纠错精度。工业中的应用如上所述,本发明所涉及的汽车用数据异常判定装置由于能以不易窜改的方式对数据进行运算,并且在运算出的数据被窜改的情况下能简单且合适地检测出该窜改,因此适用于例如将对汽车用的无刷电机式涡轮致动器进行控制的控制内容存储在微机ROM或 EEPROM等存储装置中,按照该存储内容对无刷电机进行最佳控制。
权利要求
1.一种汽车用数据异常判定装置,对控制汽车的数据的异常进行判定,该汽车用数据异常判定装置的特征在于,具备 存储部,该存储部将作为运算对象区的所述数据的CRC运算结果的2字节余项预先存储在规定的存储区;以及 CRC运算部,该CRC运算部在进行CRC运算时,在进行对象区运算之后将所述2字节余项也包括在内进行CRC运算。
2.如权利要求I所述的汽车用数据异常判定装置,其特征在于, 运算部改变运算顺序以最后实施2字节余项的运算。
3.如权利要求I所述的汽车用数据异常判定装置,其特征在于, 在快闪ROM和掩膜ROM的ROM容量不同的情况下,预先将ROM容量大的快闪ROM的一部分排除在CRC运算对象之外,使该快闪ROM的ROM容量和掩膜ROM的ROM容量相匹配,从而能从快闪ROM切换至掩膜ROM。
4.如权利要求I所述的汽车用数据异常判定装置,其特征在于, 一边进行通常控制,一边对ROM中存储的数据进行CRC运算。
5.如权利要求I所述的汽车用数据异常判定装置,其特征在于, CRC 运算使用 CR-16 或 CRC-CCITT。
6.如权利要求I所述的汽车用数据异常判定装置,其特征在于, 具备CVN运算部,该CVN运算部对多个存储区中每个存储区的CRC运算结果进一步进行CRC运算来对CVN进行运算。
7.如权利要求6所述的汽车用数据异常判定装置,其特征在于, 还具备将运算出的CVN进行发送的通信控制部,通过所述通信控制部向外部工具发送CVN。
全文摘要
本发明的汽车用数据异常判定装置具备将作为运算对象区的CRC运算结果的2字节余项预先存储在规定的存储区的存储部、以及将2字节余项也包括在内进行CRC运算的运算部,从而在进行CRC运算时,在进行对象区的CRC运算之后将2字节余项包括在内进行CRC运算,因此,在数据没有被窜改时运算结果恒为0,能简单且合适地检测出数据是否被窜改。
文档编号F02D41/26GK102971515SQ20108006785
公开日2013年3月13日 申请日期2010年7月8日 优先权日2010年7月8日
发明者宫崎岳大 申请人:三菱电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1