(57)【要約】  演算対象エリアのＣＲＣ演算結果である２バイト剰余項を予め所定のメモリエリアに記憶する記憶部と、２バイト剰余項も含めてＣＲＣ演算する演算部とを備えることで、ＣＲＣ演算時には対象エリアのＣＲＣ演算に続き２バイト剰余項を含めてＣＲＣ演算することで、データが改竄されていないときは演算結果が常に０になり、データが改竄されているか否かを簡単且つ適格に検出できる。
2012004836.tif 000002
【特許請求の範囲】
【請求項１】
自動車を制御するデータの異常を判定する自動車用データ異常判定装置において、演算対象エリアの前記データのＣＲＣ演算結果である２バイト剰余項を予め所定のメモリエリアに記憶する記憶部と、ＣＲＣ演算時には対象エリア演算に続き前記２バイト剰余項も含めてＣＲＣ演算するＣＲＣ演算部とを備えた自動車用データ異常判定装置。
【請求項２】
演算部は２バイト剰余項の演算を最後に実施するように演算順序を変えることを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項３】
フラッシュＲＯＭとマスクＲＯＭでＲＯＭ容量が異なる場合、ＲＯＭ容量が大きなフラッシュＲＯＭの一部を予めＣＲＣ演算対象外として該フラッシュＲＯＭのＲＯＭ容量をマスクＲＯＭのＲＯＭ容量と合わせ、フラッシュＲＯＭからマスクＲＯＭに切り替わり可能としたことを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項４】
通常制御を行いながらＲＯＭに記憶されたデータのＣＲＣ演算を行うことを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項５】
ＣＲＣ演算はＣＲ−１６またはＣＲＣ−ＣＣＩＴＴを使用することを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項６】
複数の記憶エリア毎のＣＲＣ演算結果同士をさらにＣＲＣ演算してＣＶＮを演算するＣＶＮ演算部を備えたことを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項７】
演算されたＣＶＮを送信する通信制御部を備え、前記通信制御部を通じて外部ツールにＣＶＮを送信することを特徴とする請求項６記載の自動車用データ異常判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自動車の制御に使用するデータの異常を判定する自動車用データ異常判定装置に関する。
【背景技術】
【０００２】
従来、例えばブラシレスモータ式ターボアクチュエータにおいては、制御内容としてのデータがマイコンＲＯＭあるいはＥＥＰＲＯＭ等の記憶装置に記憶され、そのデータに応じてブラシレスモータを最適に制御することで燃費向上や排気ガス中の有害物質の低減を実現している。したがって、記憶装置に記憶されたデータに変更または異常があると燃費や排気ガスの成分等に影響する。【０００３】
また、記憶装置に記憶されたデータに異常または変更があると本来意図していない制御が実行される可能性があり、燃費悪化、排気ガス中の有害物質の増大となり、エンジンに悪影響が及ぶ可能性がある。【０００４】
そのため、ＣＡＲＢ（Ｃａｌｉｆｏｒｎｉａ  Ａｉｒ  Ｒｅｓｏｕｒｃｅｓ  Ｂｏａｒｄ：カルフォルニア州大気資源局）のＨＤ  ＯＢＤ（Ｏｎ−Ｂｏａｒｄ  Ｄｉａｇｎｏｓｔｉｃ  Ｓｙｓｔｅｍ  Ｒｅｑｕｉｒｅｍｅｎｔｓ  ｆｏｒ  ２０１０  ａｎｄ  Ｓｕｂｓｅｑｕｅｎｔ  Ｍｏｄｅｌ−Ｙｅａｒ  Ｈｅａｖｙ−Ｄｕｔｙ  Ｅｎｇｉｎｅｓ）への対応を求められている。【０００５】
その中のひとつにＣＶＮ（Ｃａｌｉｂｒａｔｉｏｎ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ）への対応がある。ＣＶＮとは「すべての車両は、電気的に書き換え可能なマイコンまたはメモリを搭載した各自己診断ユニットやエミッションに重要な影響を及ぼすユニットに搭載されるオンボードコンピュータの整合性を点検する単独のＣＶＮを計算する演算アルゴリズムを使用しなければならない。」というものである。（ただし最新のＣＡＲＢの要求では書き換え可能・不可能にかかわらず対応が求められている。）【０００６】
具体的にはＣＶＮという固有の値を演算し、外部から読み出せるようにすることが求められている。この演算アルゴリズムは各部品メーカにて検討しＣＡＲＢの承認を得る必要があるが、基本的にはチェックサムのように容易に類推できるものは承認されないとされている。【０００７】
フラッシュマイコンやＥＥＰＲＯＭのようにデータの書き換え可能なデバイスを有する製品においては、出荷後にデータ内容の不正な書き換え、デバイスの故障によってデータが変化する恐れがある。【０００８】
従来、このようなことを防止するために、例えば、フラッシュマイコンの書き換え時に対してパスワードを設定し、プログラム上でチェックサムの演算を実施して、起動時にチェックサム値の確認を行うなどの方法がある。また、ＥＥＰＲＯＭのデータについてもマイコンが読み出したときにチェックサムによる確認を行ったりしている。【０００９】
ところがパスワードは一旦知られてしまうと改竄の対策としては役に立たない。また、チェックサムはそのチェックサム値が変わらないような悪意を持ってデータを部分的に書き換えることが比較的容易に出来るという課題があった。【００１０】
これらの対策としては、データの部分的な変化に対して同一の値を維持することが極めて困難で、かつ演算結果を類推することも困難である固有の値をデータから演算し、その固有の値が変化していないことを以ってデータが正常であることを確認するアルゴリズムが有効である。【００１１】
従来例として、例えば、特許文献１に開示された先行技術である「マイコンにおけるプログラムエリアのデータ保全方法」は、メモリをデータブロック毎に分割し、それぞれのデータブロック毎にサムチェックデータと誤り訂正符号を合わせて格納することで、データブロック毎に異常検出と修復を可能にしている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００５−２０８９５８号公報
【発明の概要】
【００１３】
しかし、この先行技術では、データの誤りを検出し、誤りを訂正し、改めて訂正したデータをリライトするもので、自動車用制御データとしては修復したデータを使って制御を継続することは好ましくないという課題があった。
【００１４】
この発明は、上記のような課題を解決するためになされたもので、データを改竄しにくく演算し、かつ、演算されたデータが改竄されている場合、その改竄を簡単かつ適格に検出できるようにすることを目的とする。
【００１５】
この発明に係る自動車用データ異常判定装置は、演算対象エリアのＣＲＣ演算結果である２バイト剰余項を予め所定のメモリエリアに記憶する記憶部と、ＣＲＣ演算時には対象エリア演算に続き前記２バイト剰余項も含めてＣＲＣ演算する演算部とを備えたものである。
【００１６】
この発明によれば、ＣＲＣ演算時には対象エリア演算に続き２バイト剰余項も含めてＣＲＣ演算するので、演算結果が常に０になり、データが改竄されているか否かの判定作業を簡単（０か否か）かつ適格に行うことができる効果がある。
【図面の簡単な説明】
【００１７】
【図１】この発明に係る自動車用データ異常判定装置の全体構成を示すブロック図である。
【図２−Ａ】この発明に係る自動車用データ異常判定装置の一部の構成要素であるＥＣＵの構成を分離して示すブロック図である。
【図２−Ｂ】この発明に係る自動車用データ異常判定装置の一部の構成要素であるＥＣＵの構成を分離して示すブロック図である。
【図２−Ｃ】この発明に係る自動車用データ異常判定装置の一部の構成要素であるＥＣＵの構成を分離して示すブロック図である。
【図２−Ｄ】この発明に係る自動車用データ異常判定装置の一部の構成要素であるＥＣＵの構成を分離して示すブロック図である。
【図３】ＣＲＣ演算部のＣＲＣ演算処理工程を説明するフローチャートである。
【図４】試作ステージ（フラッシュＲＯＭ）と量産ステージ（マスクＲＯＭ）の対比説明図である。
【図５】ＣＲＣ演算部においてＣＶＮ演算を行う処理工程を説明するフローチャートである。
【図６】ＥＣＵからＣＶＮを外部に通知する通信制御部の構成図である。
【図７】ＥＣＵからＣＶＮを外部に通知する通信制御部の構成図である。
【発明を実施するための形態】
【００１８】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１はこの発明に係る自動車用データ異常判定装置の全体構成を示すブロック図であり、データ異常判定装置の構成要素であるＥＣＵ１と、このＥＣＵ１に通信ライン２を介して接続された外部ツール（ダイアグツール）３とエンジンＥＣＵ４からなる。ＥＣＵ１はＥＥＰＲＯＭ５とマイクロコンピュータ６を備えている。
【００１９】
図２−Ａ〜図２−Ｄはこの発明に係る自動車用データ異常判定装置の一部の構成要素であるＥＣＵの構成を、分離して詳細に示すブロック図であり、各図における符号ａ〜ｄおよび符号Ｏ〜Ｒは同一線の連結箇所を示している。このＥＣＵ１の機能としては、ＥＥＰＲＯＭ５のエリア５１のデータを読み出し該データの異常チェックを行うＣＲＣ演算部６３，エリア５２のデータを読み出し該データの異常チェックを行うＣＲＣ演算部６４、マイクロコンピュータのＲＯＭであるエリア６１のデータを読み出し該データの異常チェックを行うＣＲＣ演算部６２、ＣＶＮを演算するＣＶＮ演算部６５および外部ツール３と通信を行う通信部６６で構成されている。
ＥＥＰＲＯＭ５（図２−Ｂ、図２−Ｃ）はエリア５１（客先使用ブロック）とエリア５２（量産ブロック）およびＣＶＮ格納エリア５３を有し、各エリア５１，５２はそれぞれ予め演算されたＣＲＣ値を記憶部５１ａ，５２ａに格納する（ステップＳＴ５１−０）、（ステップＳＴ５２−０）ように構成されている。
【００２０】
マイクロコンピュータ（図２−Ａ〜図２−Ｄ）は、ＲＯＭであるエリア６１を有し、このエリア６１は予め演算されたＣＲＣ値を記憶部６１ａに格納する（ステップＳＴ６１−０）ように構成されている。そして、このエリア６１に対するＣＲＣ演算部６２、エリア５１に対するＣＲＣ演算部６３、エリア５２に対するＣＲＣ演算部６４、ＣＲＣ演算部６５、外部ツール３と通信ライン２を介して接続された通信部６６とを有する。
【００２１】
ＣＲＣ演算部６２は、エリア６１の各ブロックのデータを順次読み出してＣＲＣ演算を行い、（ステップＳＴ６２−１）、全てのブロックのトータルＣＲＣ値を求める（ステップＳＴ６２−２）。そして、そのトータルＣＲＣ値が０であるかを判断し（ステップＳＴ６２−３）、ＹＥＳであれば、エリア６１のデータは正常（ステップＳＴ６２−４）、ＮＯであれば、エリア６１のデータは異常であるので、異常時の処理、例えばエンジンＥＣＵ４へ異常を通知し、エンジンＥＣＵ４が自動車のチェックランプを点灯することでユーザーに異常を通知する（ステップＳＴ６２−５）。これにより、エリア６１のチェックを完了する（ステップＳＴ６２−６）。
【００２２】
ＣＲＣ演算部６３は、ＥＥＰＲＯＭのエリア５１の各ブロックのデータを順次読み出し（ステップＳＴ６３−１）、ＣＲＣ演算を行い（ステップＳＴ６３−２）、全てのブロックのトータルＣＲＣ値を求める（ステップＳＴ６３−３）。ついで、予め記憶部５１ａに記憶されているＣＲＣ値を読み出し（ステップＳＴ６３−４）、このＣＲＣ値と上記の求めたトータルＣＲＣ値が等しいかを判断する（ステップＳＴ６３−５）。判断の結果、ＹＥＳであれば、エリア５１のデータは正常（ステップＳＴ６３−６）、ＮＯであれば、エリア５１のデータは異常であるので、異常時の処理、例えばデフォルト値採用、エンジンＥＣＵ４へ異常を通知し、エンジンＥＣＵ４が自動車のチェックランプを点灯することでユーザーに異常を通知する（ステップＳＴ６２−５）。これにより、エリア５１のチェックを完了する（ステップＳＴ６３−８）。
【００２３】
ＣＲＣ演算部６４は、ＥＥＰＲＯＭのエリア５２の各ブロックのデータを順次読み出し（ステップＳＴ６４−１）、ＣＲＣ演算を行い（ステップＳＴ６４−２）、全てのブロックのトータルＣＲＣ値を求める（ステップＳＴ６４−３）。ついで、予め記憶部５２ａに記憶されているＣＲＣ値を読み出し（ステップＳＴ６４−４）、このＣＲＣ値と上記の求めたトータルＣＲＣ値が等しいかを判断する（ステップＳＴ６４−５）。判断の結果、ＹＥＳであれば、エリア５２のデータは正常（ステップＳＴ６４−６）、ＮＯであれば、エリア５２のデータは異常であるので、異常時の処理、例えばデフォルト値採用、エンジンＥＣＵ４へ異常を通知し、エンジンＥＣＵ４が自動車のチェックランプを点灯することでユーザーに異常を通知する（ステップＳＴ６２−５）。これにより、エリア５１のチェックを完了する（ステップＳＴ６４−８）。
上記のように、ＣＲＣ演算部６２〜６４のそれぞれで、エリア６１、エリア５１、エリア５２のデータの良否を個別に判断することができるので、データが改竄、つまり、変わっているかを簡単かつ適格に知ることができる。
【００２４】
また、ＣＲＣ演算部６２〜６４における演算時に、ステップＳＴ６２−２からエリア６１の全てのブロックのトータルＣＲＣ値を、ステップＳＴ６３−３からエリア５１の全てのブロックのトータルＣＲＣ値を、ステップＳＴ６４−３からエリア５２の全てのブロックのトータルＣＲＣ値を、ＣＲＣ演算部６５のＲＡＭである記憶部７のブロック７−１，７−２，７−３にそれぞれ入力して記憶する。そして、ＣＲＣ演算部６５は全てのトータルＣＲＣ値を記憶部７から読み出してＣＲＣ演算し（ステップＳＴ６５−１）、ＣＶＮを算出する（ステップＳＴ６５−２）。算出したＣＶＮは書き込み部６７によって、ＥＥＰＲＯＭ５のＣＶＮ格納エリア５３に書き込まれる。また、通信部６６は、外部ツール３からの要求または定期的に算出したＣＶＮを該外部ツールに伝送する。この場合、ＣＶＮ要求／ＣＶＮ確認チェックランプ（図示せず）の点灯等を行う。
【００２５】
図３はエリア５１の各ブロックから読み出したデータに対するＣＲＣ演算を行う図２−ＢにおけるステップＳＴ６３−２の動作を詳細に説明する図である。エリア５１のブロック５１−１から読み出した記憶値と予め設定された初期値（ステップＳＴ６３−２１）とでＣＲＣ演算を行う（ステップＳＴ６３−２２）。ついで、得られたＣＲＣ値（ステップＳＴ６３−２３）とエリア５１の次のブロック５１−２から読み出した記憶値とでＣＲＣ演算を行う（ステップＳＴ６３−２４）。
【００２６】
以下、同様に得られたＣＲＣ値と次のブロックから読み出した記憶値とでＣＲＣ演算を繰り返し（ステップＳＴ６３−２４）〜（ステップＳＴ６３−ｎ）、エリア５１の全てのブロックにおけるデータの記憶値についてＣＲＣ演算を行い、トータルＣＲＣ値を得る。得られたトータルＣＲＣ値とエリア５１の記憶部５１ａから読み出した予め記憶しているＣＲＣ値と比較し（ステップＳＴ６３−３）、両者が一致すれば、エリア５１に記憶されたデータは改竄されていないと判定できる。また、エリア５２についてもエリア５１と同様の処理を行う。
【００２７】
図４は試作ステージ（フラッシュＲＯＭ）と量産ステージ（マスクＲＯＭ）の対比説明図である。試作ステージと量産ステージでは、ＲＯＭ容量の異なるマイコンを使用することになっている。ＲＯＭ容量を変更するとＲＯＭの割り付け位置も異なる。
【００２８】
試作ステージから量産ステージに切り替わるときに全く同じソースコードでＲＯＭの割り付け位置を変更してオブジェクトファイルを生成すると、ＲＯＭ容量が異なるため、ＲＯＭの各ブロックに記憶されたデータのＣＲＣ演算が一致しない。そして、ＣＲＣ値が変更になると、再度新しいＣＶＮを当局に届け出なければいけないため、試作ステージと量産ステージでＣＲＣ値が変化しない仕組みを入れる必要がある。
【００２９】
ＣＲＣ演算の特性として同じ値をＣＲＣ演算すると“０”が算出される（同じ値の余剰は“０”）ことを利用して、ＲＯＭの各ブロックの演算ブロック末尾２バイトに末尾２バイトを演算する直前のＣＲＣ値を格納することにより、ＲＯＭの各データブロックに記憶されたデータのＣＲＣ値を“０”にすることができる。なお、ＲＯＭの各ブロックの末尾はリセットベクタアドレスとなっており、ＣＲＣ値を格納することができないため、ＲＯＭの未使用ブロックが末尾となるよう演算順序を変更する。これにより、ＲＯＭの割り付けが変更になった場合、制御に全く関係のない２バイトの値を書き換えてオブジェクトファイルを生成するだけでＣＲＣ値を一致させることができる。
【００３０】
図４に示す試作ステージ（フラッシュＲＯＭ）と量産ステージ（マスクＲＯＭ）のブロック１は可変ベクタ及びプートプログラムが参照するデータ（ＡＰＬ書き込み有無・パスワード）が配置され、ブロック０は、プートプログラムがＲＯＭデータ（プログラム）を配置される。
【００３１】
従って、ブロック０・１には不用意にデータを配置することはできないので、ブロック２の最終２バイト（０ＦＢＦＦＥｈ・０ＦＢＦＦＦｈ）をＣＲＣ演算最終ブロックとし、ＣＲＣの演算は以下の順序とする。
試作ステージ（１２８Ｋ）：ブロック１→ブロック０→ブロック５→ブロック４→ブロック２
量産ステージ（９６Ｋ）：ブロック１→ブロック０→ブロック４→ブロック３→ブロック２
また、ＲＯＭはブロックが大きく演算に時間がかかるため、ＥＣＵ１の制御を行いながら並行してＣＲＣ演算を行う。
【００３２】
試作ステージ（１２８Ｋ）の場合、ブロック５の先頭アドレス（０Ｅ００００ｈ）がスタートアドレスとなり、ブロック３は未使用ブロックとなる。量産ステージ（９８Ｋ）場合、ブロック４の先頭アドレス（０Ｅ８０００ｈ）スタートアドレスとなる。
【００３３】
図５はＣＲＣ演算部６５の詳細を示すフローチャートである。記憶部７のブロック７−１から読み出したエリア６１の全てのブロックのトータルＣＲＣ値とステップＳＴ６５−１１で読み出した予め備えている初期値とでＣＲＣ演算を行い（ステップＳＴ６５−１２）、この得られたＣＲＣ値（ステップＳＴ６５−１３）と、記憶部７のブロック７−２から読み出したエリア５１の全てのブロックのトータルＣＲＣ値とでＣＲＣ演算を行い（ステップＳＴ６５−１４）、この得られたＣＲＣ値（ステップＳＴ６５−１５）と記憶部７のブロック７−３から読み出したエリア５２の全てのブロックのトータルＣＲＣ値とでＣＲＣ演算を行う（ステップＳＴ６５−１６）。そして、得られたＣＲＣ値（ステップＳＴ６５−１７）をＣＶＮとして記憶部７のブロック７−０及びＥＥＰＲＯＭ５の記憶部５３に格納する。
【００３４】
次に、算出したＣＶＮを外部に通知する手段について説明する。この手段には２つのパターンがある。その第１のパターンは、図６に示すように、算出したＣＶＮを通信（ＣＡＮなど）にて定期送信を行う。外部ツール３はＥＣＵ１が送信するデータを受信してＣＶＮを確認する。
【００３５】
ＥＣＵ１側は、ＣＶＮをブロック７−０に記憶した記憶部７と、このＣＶＮを記憶部７から読み出し（ステップＳＴ１２−１）、この読み出したＣＶＮを送信（ステップＳＴ１２−２）することを一定周期で実行する送信実行部１２と、この送信実行部１２から送信されたＣＶＮを通信ライン２を通じて外部ツール３に送信する通信制御部１３とを備えている。外部ツール３は、通信ライン２を通じてＥＣＵ１側から送信されてきたＣＶＮを受信し（ステップＳＴ３２−１）、予め備えているＣＶＮと比較（ステップＳＴ３２−２）してＣＶＮを確認する受信実行部３２を備えている。
【００３６】
第２のパターンは、図７に示すように、外部ツール３よりＣＶＮの要求コマンドをＥＣＵ１に送信し、コマンドを受信したＥＣＵ１はＣＶＮを取得してコマンドにて返信する。コマンドを受信した外部ツール３はＣＶＮを確認する。
【００３７】
即ち、ＥＣＵ１は、ＣＶＮ記憶部７、通信制御部１３、コマンド処理部１４を備え、コマンド処理部１４は外部ツール３から送信されてきたＣＶＮの要求コマンドを受信し（ステップＳＴ１４−１）、このＣＶＮの要求コマンドに基づき記憶部７からＣＶＮを読み出し（ステップＳＴ１４−２）、この読み出したＣＶＮを通信制御部１３にコマンドにて送信する（ステップＳＴ１４−３）。
外部ツール３は、通信制御部３１、送受信実行部３２を備え、送受信実行部３２は通信制御部３１にＣＶＮの要求コマンドの送信を行い（ステップＳＴ３２−１）、通信制御部３１で通信ライン２を通じてＥＣＵ１から送信されたＣＶＮのコマンドを受信し（ステップＳＴ３２−２）、この受信したコマンドに基づくＣＶＮと予め備えているＣＶＮと比較（ステップＳＴ３２−２）してＣＶＮを確認する。
【００３８】
以上のように、この実施の形態１によれば、ＲＯＭであるエリア６１、ＥＥＰＲＯＭであるエリア５１，５２のデータのＣＲＣ演算時には、対象エリア演算に続き前記２バイト剰余項も含めてＣＲＣ演算することで、すべてまたは一部のエリアでＣＲＣ演算結果が０ｘ００００になる演算を実施するので、データを改竄しにくく演算することができ、かつ、演算されたデータが改竄されている場合、各エリア別にその改竄を簡単に検出できる効果がある。
また、各エリアの演算結果を、さらに、ＣＲＣ演算することでＣＶＮを算出するので、この算出したＣＶＮを予め決めていたＣＶＮと比較することで、一致しておれば、ＲＯＭであるエリア６１、ＥＥＰＲＯＭであるエリア５１，５２の全てのデータは改竄されていないことが、不一致であれば、ＲＯＭであるエリア６１、ＥＥＰＲＯＭであるエリア５１，５２のいずれかのデータが改竄されていることを適格に知ることができる効果がある。
【００３９】
また、２バイト剰余項を演算対象エリアの末尾に配置することが困難な場合は、２バイト剰余項の演算を最後に実施するように演算順序を変えることにより、２バイト剰余項の配置に制約を受けることがない。
【００４０】
また、フラッシュＲＯＭとマスクＲＯＭでＲＯＭ容量が異なる場合、ＲＯＭ容量が大きなフラッシュＲＯＭの未使用領域を予めＣＲＣ演算対象外としてフラッシュＲＯＭとマスクＲＯＭのＣＲＣ演算対象サイズを同じにすることにより、フラッシュＲＯＭからマスクＲＯＭに変更した時にＣＲＣの演算時間が変化しないようにしている。
【００４１】
また、ＲＯＭはＣＲＣ演算に時間がかかるので、通常制御を行いながらＣＲＣ演算する構成とすることにより、通常制御への遅れ影響をなすることができる。
また、ＣＲＣ演算はＣＲＣ−１６規格、ＣＲＣ−ＣＣＩＴＴ規格を使用するので、部分的なデータの改竄があっても、その改竄を適格に知ることができ、データの誤り検出精度を向上させることができる。
【産業上の利用可能性】
【００４２】
以上のようにこの発明に係る自動車用データ異常判定装置は、データを改竄しにくく演算し、かつ、演算されたデータが改竄されている場合、その改竄を簡単かつ適格に検出できるので、例えば自動車用のブラシレスモータ式ターボアクチュエータを制御する制御内容を、マイコンＲＯＭあるいはＥＥＰＲＯＭ等の記憶装置に記憶し、その記憶内容に応じてブラシレスモータを最適に制御するのに適している。
【図１】
2012004836.tif 000003
【図２−Ａ】
2012004836.tif 000004
【図２−Ｂ】
2012004836.tif 000005
【図２−Ｃ】
2012004836.tif 000006
【図２−Ｄ】
2012004836.tif 000007
【図３】
2012004836.tif 000008
【図４】
2012004836.tif 000009
【図５】
2012004836.tif 000010
【図６】
2012004836.tif 000011
【図７】
2012004836.tif 000012
【手続補正書】
【提出日】平成24年6月26日(2012.6.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自動車の制御に使用するデータの異常を判定する自動車用データ異常判定装置に関する。
【背景技術】
【０００２】
従来、例えばブラシレスモータ式ターボアクチュエータにおいては、制御内容としてのデータがマイコンＲＯＭあるいはＥＥＰＲＯＭ等の記憶装置に記憶され、そのデータに応じてブラシレスモータを最適に制御することで燃費向上や排気ガス中の有害物質の低減を実現している。したがって、記憶装置に記憶されたデータに変更または異常があると燃費や排気ガスの成分等に影響する。
【０００３】
また、記憶装置に記憶されたデータに異常または変更があると本来意図していない制御が実行される可能性があり、燃費悪化、排気ガス中の有害物質の増大となり、エンジンに悪影響が及ぶ可能性がある。
【０００４】
そのため、ＣＡＲＢ（Ｃａｌｉｆｏｒｎｉａ  Ａｉｒ  Ｒｅｓｏｕｒｃｅｓ  Ｂｏａｒｄ：カルフォルニア州大気資源局）のＨＤ  ＯＢＤ（Ｏｎ−Ｂｏａｒｄ  Ｄｉａｇｎｏｓｔｉｃ  Ｓｙｓｔｅｍ  Ｒｅｑｕｉｒｅｍｅｎｔｓ  ｆｏｒ  ２０１０  ａｎｄ  Ｓｕｂｓｅｑｕｅｎｔ  Ｍｏｄｅｌ−Ｙｅａｒ  Ｈｅａｖｙ−Ｄｕｔｙ  Ｅｎｇｉｎｅｓ）への対応を求められている。
【０００５】
その中のひとつにＣＶＮ（Ｃａｌｉｂｒａｔｉｏｎ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ）への対応がある。ＣＶＮとは「すべての車両は、電気的に書き換え可能なマイコンまたはメモリを搭載した各自己診断ユニットやエミッションに重要な影響を及ぼすユニットに搭載されるオンボードコンピュータの整合性を点検する単独のＣＶＮを計算する演算アルゴリズムを使用しなければならない。」というものである。（ただし最新のＣＡＲＢの要求では書き換え可能・不可能にかかわらず対応が求められている。）
【０００６】
具体的にはＣＶＮという固有の値を演算し、外部から読み出せるようにすることが求められている。この演算アルゴリズムは各部品メーカにて検討しＣＡＲＢの承認を得る必要があるが、基本的にはチェックサムのように容易に類推できるものは承認されないとされている。
【０００７】
フラッシュマイコンやＥＥＰＲＯＭのようにデータの書き換え可能なデバイスを有する製品においては、出荷後にデータ内容の不正な書き換え、デバイスの故障によってデータが変化する恐れがある。
【０００８】
従来、このようなことを防止するために、例えば、フラッシュマイコンの書き換え時に対してパスワードを設定し、プログラム上でチェックサムの演算を実施して、起動時にチェックサム値の確認を行うなどの方法がある。また、ＥＥＰＲＯＭのデータについてもマイコンが読み出したときにチェックサムによる確認を行ったりしている。
【０００９】
ところがパスワードは一旦知られてしまうと改竄の対策としては役に立たない。また、チェックサムはそのチェックサム値が変わらないような悪意を持ってデータを部分的に書き換えることが比較的容易に出来るという課題があった。
【００１０】
これらの対策としては、データの部分的な変化に対して同一の値を維持することが極めて困難で、かつ演算結果を類推することも困難である固有の値をデータから演算し、その固有の値が変化していないことを以ってデータが正常であることを確認するアルゴリズムが有効である。
【００１１】
従来例として、例えば、特許文献１に開示された先行技術である「マイコンにおけるプログラムエリアのデータ保全方法」は、メモリをデータブロック毎に分割し、それぞれのデータブロック毎にサムチェックデータと誤り訂正符号を合わせて格納することで、データブロック毎に異常検出と修復を可能にしている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００５−２０８９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかし、この先行技術では、データの誤りを検出し、誤りを訂正し、改めて訂正したデータをリライトするもので、自動車用制御データとしては修復したデータを使って制御を継続することは好ましくないという課題があった。
【００１４】
この発明は、上記のような課題を解決するためになされたもので、データを改竄しにくく演算し、かつ、演算されたデータが改竄されている場合、その改竄を簡単かつ適格に検出できるようにすることを目的とする。
【課題を解決するための手段】
【００１５】
この発明に係る自動車用データ異常判定装置は、演算対象エリアのデータのＣＲＣ演算結果である２バイト剰余項を予め所定のメモリエリアに記憶する記憶部と、ＣＲＣ演算時には対象エリア演算に続き２バイト剰余項も含めてＣＲＣ演算するＣＲＣ演算部とを備え、フラッシュＲＯＭとマスクＲＯＭでＲＯＭ容量が異なる場合、ＲＯＭ容量が大きなフラッシュＲＯＭの一部を予めＣＲＣ演算対象外として該フラッシュＲＯＭのＲＯＭ容量をマスクＲＯＭのＲＯＭ容量と合わせ、フラッシュＲＯＭからマスクＲＯＭに切り替わり可能としたことを特徴とするものである。
【発明の効果】
【００１６】
この発明によれば、ＣＲＣ演算時には対象エリア演算に続き２バイト剰余項も含めてＣＲＣ演算するので、演算結果が常に０になり、データが改竄されているか否かの判定作業を簡単（０か否か）かつ適格に行うことができる効果がある。
【図面の簡単な説明】
【００１７】
【図１】この発明に係る自動車用データ異常判定装置の全体構成を示すブロック図である。
【図２−Ａ】この発明に係る自動車用データ異常判定装置の一部の構成要素であるＥＣＵの構成を分離して示すブロック図である。
【図２−Ｂ】この発明に係る自動車用データ異常判定装置の一部の構成要素であるＥＣＵの構成を分離して示すブロック図である。
【図２−Ｃ】この発明に係る自動車用データ異常判定装置の一部の構成要素であるＥＣＵの構成を分離して示すブロック図である。
【図２−Ｄ】この発明に係る自動車用データ異常判定装置の一部の構成要素であるＥＣＵの構成を分離して示すブロック図である。
【図３】ＣＲＣ演算部のＣＲＣ演算処理工程を説明するフローチャートである。
【図４】試作ステージ（フラッシュＲＯＭ）と量産ステージ（マスクＲＯＭ）の対比説明図である。
【図５】ＣＲＣ演算部においてＣＶＮ演算を行う処理工程を説明するフローチャートである。
【図６】ＥＣＵからＣＶＮを外部に通知する通信制御部の構成図である。
【図７】ＥＣＵからＣＶＮを外部に通知する通信制御部の構成図である。
【発明を実施するための形態】
【００１８】
実施の形態１．
図１はこの発明に係る自動車用データ異常判定装置の全体構成を示すブロック図であり、データ異常判定装置の構成要素であるＥＣＵ１と、このＥＣＵ１に通信ライン２を介して接続された外部ツール（ダイアグツール）３とエンジンＥＣＵ４からなる。ＥＣＵ１はＥＥＰＲＯＭ５とマイクロコンピュータ６を備えている。
【００１９】
図２−Ａ〜図２−Ｄはこの発明に係る自動車用データ異常判定装置の一部の構成要素であるＥＣＵの構成を、分離して詳細に示すブロック図であり、各図における符号ａ〜ｄおよび符号Ｏ〜Ｒは同一線の連結箇所を示している。このＥＣＵ１の機能としては、ＥＥＰＲＯＭ５のエリア５１のデータを読み出し該データの異常チェックを行うＣＲＣ演算部６３，エリア５２のデータを読み出し該データの異常チェックを行うＣＲＣ演算部６４、マイクロコンピュータのＲＯＭであるエリア６１のデータを読み出し該データの異常チェックを行うＣＲＣ演算部６２、ＣＶＮを演算するＣＶＮ演算部６５および外部ツール３と通信を行う通信部６６で構成されている。
ＥＥＰＲＯＭ５（図２−Ｂ、図２−Ｃ）はエリア５１（客先使用ブロック）とエリア５２（量産ブロック）およびＣＶＮ格納エリア５３を有し、各エリア５１，５２はそれぞれ予め演算されたＣＲＣ値を記憶部５１ａ，５２ａに格納する（ステップＳＴ５１−０）、（ステップＳＴ５２−０）ように構成されている。
【００２０】
マイクロコンピュータ（図２−Ａ〜図２−Ｄ）は、ＲＯＭであるエリア６１を有し、このエリア６１は予め演算されたＣＲＣ値を記憶部６１ａに格納する（ステップＳＴ６１−０）ように構成されている。そして、このエリア６１に対するＣＲＣ演算部６２、エリア５１に対するＣＲＣ演算部６３、エリア５２に対するＣＲＣ演算部６４、ＣＲＣ演算部６５、外部ツール３と通信ライン２を介して接続された通信部６６とを有する。
【００２１】
ＣＲＣ演算部６２は、エリア６１の各ブロックのデータを順次読み出してＣＲＣ演算を行い、（ステップＳＴ６２−１）、全てのブロックのトータルＣＲＣ値を求める（ステップＳＴ６２−２）。そして、そのトータルＣＲＣ値が０であるかを判断し（ステップＳＴ６２−３）、ＹＥＳであれば、エリア６１のデータは正常（ステップＳＴ６２−４）、ＮＯであれば、エリア６１のデータは異常であるので、異常時の処理、例えばエンジンＥＣＵ４へ異常を通知し、エンジンＥＣＵ４が自動車のチェックランプを点灯することでユーザーに異常を通知する（ステップＳＴ６２−５）。これにより、エリア６１のチェックを完了する（ステップＳＴ６２−６）。
【００２２】
ＣＲＣ演算部６３は、ＥＥＰＲＯＭのエリア５１の各ブロックのデータを順次読み出し（ステップＳＴ６３−１）、ＣＲＣ演算を行い（ステップＳＴ６３−２）、全てのブロックのトータルＣＲＣ値を求める（ステップＳＴ６３−３）。ついで、予め記憶部５１ａに記憶されているＣＲＣ値を読み出し（ステップＳＴ６３−４）、このＣＲＣ値と上記の求めたトータルＣＲＣ値が等しいかを判断する（ステップＳＴ６３−５）。判断の結果、ＹＥＳであれば、エリア５１のデータは正常（ステップＳＴ６３−６）、ＮＯであれば、エリア５１のデータは異常であるので、異常時の処理、例えばデフォルト値採用、エンジンＥＣＵ４へ異常を通知し、エンジンＥＣＵ４が自動車のチェックランプを点灯することでユーザーに異常を通知する（ステップＳＴ６２−５）。これにより、エリア５１のチェックを完了する（ステップＳＴ６３−８）。
【００２３】
ＣＲＣ演算部６４は、ＥＥＰＲＯＭのエリア５２の各ブロックのデータを順次読み出し（ステップＳＴ６４−１）、ＣＲＣ演算を行い（ステップＳＴ６４−２）、全てのブロックのトータルＣＲＣ値を求める（ステップＳＴ６４−３）。ついで、予め記憶部５２ａに記憶されているＣＲＣ値を読み出し（ステップＳＴ６４−４）、このＣＲＣ値と上記の求めたトータルＣＲＣ値が等しいかを判断する（ステップＳＴ６４−５）。判断の結果、ＹＥＳであれば、エリア５２のデータは正常（ステップＳＴ６４−６）、ＮＯであれば、エリア５２のデータは異常であるので、異常時の処理、例えばデフォルト値採用、エンジンＥＣＵ４へ異常を通知し、エンジンＥＣＵ４が自動車のチェックランプを点灯することでユーザーに異常を通知する（ステップＳＴ６２−５）。これにより、エリア５１のチェックを完了する（ステップＳＴ６４−８）。
上記のように、ＣＲＣ演算部６２〜６４のそれぞれで、エリア６１、エリア５１、エリア５２のデータの良否を個別に判断することができるので、データが改竄、つまり、変わっているかを簡単かつ適格に知ることができる。
【００２４】
また、ＣＲＣ演算部６２〜６４における演算時に、ステップＳＴ６２−２からエリア６１の全てのブロックのトータルＣＲＣ値を、ステップＳＴ６３−３からエリア５１の全てのブロックのトータルＣＲＣ値を、ステップＳＴ６４−３からエリア５２の全てのブロックのトータルＣＲＣ値を、ＣＲＣ演算部６５のＲＡＭである記憶部７のブロック７−１，７−２，７−３にそれぞれ入力して記憶する。そして、ＣＲＣ演算部６５は全てのトータルＣＲＣ値を記憶部７から読み出してＣＲＣ演算し（ステップＳＴ６５−１）、ＣＶＮを算出する（ステップＳＴ６５−２）。算出したＣＶＮは書き込み部６７によって、ＥＥＰＲＯＭ５のＣＶＮ格納エリア５３に書き込まれる。また、通信部６６は、外部ツール３からの要求または定期的に算出したＣＶＮを該外部ツールに伝送する。この場合、ＣＶＮ要求／ＣＶＮ確認チェックランプ（図示せず）の点灯等を行う。
【００２５】
図３はエリア５１の各ブロックから読み出したデータに対するＣＲＣ演算を行う図２−ＢにおけるステップＳＴ６３−２の動作を詳細に説明する図である。エリア５１のブロック５１−１から読み出した記憶値と予め設定された初期値（ステップＳＴ６３−２１）とでＣＲＣ演算を行う（ステップＳＴ６３−２２）。ついで、得られたＣＲＣ値（ステップＳＴ６３−２３）とエリア５１の次のブロック５１−２から読み出した記憶値とでＣＲＣ演算を行う（ステップＳＴ６３−２４）。
【００２６】
以下、同様に得られたＣＲＣ値と次のブロックから読み出した記憶値とでＣＲＣ演算を繰り返し（ステップＳＴ６３−２４）〜（ステップＳＴ６３−ｎ）、エリア５１の全てのブロックにおけるデータの記憶値についてＣＲＣ演算を行い、トータルＣＲＣ値を得る。得られたトータルＣＲＣ値とエリア５１の記憶部５１ａから読み出した予め記憶しているＣＲＣ値と比較し（ステップＳＴ６３−３）、両者が一致すれば、エリア５１に記憶されたデータは改竄されていないと判定できる。また、エリア５２についてもエリア５１と同様の処理を行う。
【００２７】
図４は試作ステージ（フラッシュＲＯＭ）と量産ステージ（マスクＲＯＭ）の対比説明図である。試作ステージと量産ステージでは、ＲＯＭ容量の異なるマイコンを使用することになっている。ＲＯＭ容量を変更するとＲＯＭの割り付け位置も異なる。
【００２８】
試作ステージから量産ステージに切り替わるときに全く同じソースコードでＲＯＭの割り付け位置を変更してオブジェクトファイルを生成すると、ＲＯＭ容量が異なるため、ＲＯＭの各ブロックに記憶されたデータのＣＲＣ演算が一致しない。そして、ＣＲＣ値が変更になると、再度新しいＣＶＮを当局に届け出なければいけないため、試作ステージと量産ステージでＣＲＣ値が変化しない仕組みを入れる必要がある。
【００２９】
ＣＲＣ演算の特性として同じ値をＣＲＣ演算すると“０”が算出される（同じ値の余剰は“０”）ことを利用して、ＲＯＭの各ブロックの演算ブロック末尾２バイトに末尾２バイトを演算する直前のＣＲＣ値を格納することにより、ＲＯＭの各データブロックに記憶されたデータのＣＲＣ値を“０”にすることができる。なお、ＲＯＭの各ブロックの末尾はリセットベクタアドレスとなっており、ＣＲＣ値を格納することができないため、ＲＯＭの未使用ブロックが末尾となるよう演算順序を変更する。これにより、ＲＯＭの割り付けが変更になった場合、制御に全く関係のない２バイトの値を書き換えてオブジェクトファイルを生成するだけでＣＲＣ値を一致させることができる。
【００３０】
図４に示す試作ステージ（フラッシュＲＯＭ）と量産ステージ（マスクＲＯＭ）のブロック１は可変ベクタ及びプートプログラムが参照するデータ（ＡＰＬ書き込み有無・パスワード）が配置され、ブロック０は、プートプログラムがＲＯＭデータ（プログラム）を配置される。
【００３１】
従って、ブロック０・１には不用意にデータを配置することはできないので、ブロック２の最終２バイト（０ＦＢＦＦＥｈ・０ＦＢＦＦＦｈ）をＣＲＣ演算最終ブロックとし、ＣＲＣの演算は以下の順序とする。
試作ステージ（１２８Ｋ）：ブロック１→ブロック０→ブロック５→ブロック４→ブロック２
量産ステージ（９６Ｋ）：ブロック１→ブロック０→ブロック４→ブロック３→ブロック２
また、ＲＯＭはブロックが大きく演算に時間がかかるため、ＥＣＵ１の制御を行いながら並行してＣＲＣ演算を行う。
【００３２】
試作ステージ（１２８Ｋ）の場合、ブロック５の先頭アドレス（０Ｅ００００ｈ）がスタートアドレスとなり、ブロック３は未使用ブロックとなる。量産ステージ（９８Ｋ）場合、ブロック４の先頭アドレス（０Ｅ８０００ｈ）スタートアドレスとなる。
【００３３】
図５はＣＲＣ演算部６５の詳細を示すフローチャートである。記憶部７のブロック７−１から読み出したエリア６１の全てのブロックのトータルＣＲＣ値とステップＳＴ６５−１１で読み出した予め備えている初期値とでＣＲＣ演算を行い（ステップＳＴ６５−１２）、この得られたＣＲＣ値（ステップＳＴ６５−１３）と、記憶部７のブロック７−２から読み出したエリア５１の全てのブロックのトータルＣＲＣ値とでＣＲＣ演算を行い（ステップＳＴ６５−１４）、この得られたＣＲＣ値（ステップＳＴ６５−１５）と記憶部７のブロック７−３から読み出したエリア５２の全てのブロックのトータルＣＲＣ値とでＣＲＣ演算を行う（ステップＳＴ６５−１６）。そして、得られたＣＲＣ値（ステップＳＴ６５−１７）をＣＶＮとして記憶部７のブロック７−０及びＥＥＰＲＯＭ５の記憶部５３に格納する。
【００３４】
次に、算出したＣＶＮを外部に通知する手段について説明する。この手段には２つのパターンがある。その第１のパターンは、図６に示すように、算出したＣＶＮを通信（ＣＡＮなど）にて定期送信を行う。外部ツール３はＥＣＵ１が送信するデータを受信してＣＶＮを確認する。
【００３５】
ＥＣＵ１側は、ＣＶＮをブロック７−０に記憶した記憶部７と、このＣＶＮを記憶部７から読み出し（ステップＳＴ１２−１）、この読み出したＣＶＮを送信（ステップＳＴ１２−２）することを一定周期で実行する送信実行部１２と、この送信実行部１２から送信されたＣＶＮを通信ライン２を通じて外部ツール３に送信する通信制御部１３とを備えている。外部ツール３は、通信ライン２を通じてＥＣＵ１側から送信されてきたＣＶＮを受信し（ステップＳＴ３２−１）、予め備えているＣＶＮと比較（ステップＳＴ３２−２）してＣＶＮを確認する受信実行部３２を備えている。
【００３６】
第２のパターンは、図７に示すように、外部ツール３よりＣＶＮの要求コマンドをＥＣＵ１に送信し、コマンドを受信したＥＣＵ１はＣＶＮを取得してコマンドにて返信する。コマンドを受信した外部ツール３はＣＶＮを確認する。
【００３７】
即ち、ＥＣＵ１は、ＣＶＮ記憶部７、通信制御部１３、コマンド処理部１４を備え、コマンド処理部１４は外部ツール３から送信されてきたＣＶＮの要求コマンドを受信し（ステップＳＴ１４−１）、このＣＶＮの要求コマンドに基づき記憶部７からＣＶＮを読み出し（ステップＳＴ１４−２）、この読み出したＣＶＮを通信制御部１３にコマンドにて送信する（ステップＳＴ１４−３）。
外部ツール３は、通信制御部３１、送受信実行部３２を備え、送受信実行部３２は通信制御部３１にＣＶＮの要求コマンドの送信を行い（ステップＳＴ３２−１）、通信制御部３１で通信ライン２を通じてＥＣＵ１から送信されたＣＶＮのコマンドを受信し（ステップＳＴ３２−２）、この受信したコマンドに基づくＣＶＮと予め備えているＣＶＮと比較（ステップＳＴ３２−２）してＣＶＮを確認する。
【００３８】
以上のように、この実施の形態１によれば、ＲＯＭであるエリア６１、ＥＥＰＲＯＭであるエリア５１，５２のデータのＣＲＣ演算時には、対象エリア演算に続き前記２バイト剰余項も含めてＣＲＣ演算することで、すべてまたは一部のエリアでＣＲＣ演算結果が０ｘ００００になる演算を実施するので、データを改竄しにくく演算することができ、かつ、演算されたデータが改竄されている場合、各エリア別にその改竄を簡単に検出できる効果がある。
また、各エリアの演算結果を、さらに、ＣＲＣ演算することでＣＶＮを算出するので、この算出したＣＶＮを予め決めていたＣＶＮと比較することで、一致しておれば、ＲＯＭであるエリア６１、ＥＥＰＲＯＭであるエリア５１，５２の全てのデータは改竄されていないことが、不一致であれば、ＲＯＭであるエリア６１、ＥＥＰＲＯＭであるエリア５１，５２のいずれかのデータが改竄されていることを適格に知ることができる効果がある。
【００３９】
また、２バイト剰余項を演算対象エリアの末尾に配置することが困難な場合は、２バイト剰余項の演算を最後に実施するように演算順序を変えることにより、２バイト剰余項の配置に制約を受けることがない。
【００４０】
また、フラッシュＲＯＭとマスクＲＯＭでＲＯＭ容量が異なる場合、ＲＯＭ容量が大きなフラッシュＲＯＭの未使用領域を予めＣＲＣ演算対象外としてフラッシュＲＯＭとマスクＲＯＭのＣＲＣ演算対象サイズを同じにすることにより、フラッシュＲＯＭからマスクＲＯＭに変更した時にＣＲＣの演算時間が変化しないようにしている。
【００４１】
また、ＲＯＭはＣＲＣ演算に時間がかかるので、通常制御を行いながらＣＲＣ演算する構成とすることにより、通常制御への遅れ影響をなすることができる。
また、ＣＲＣ演算はＣＲＣ−１６規格、ＣＲＣ−ＣＣＩＴＴ規格を使用するので、部分的なデータの改竄があっても、その改竄を適格に知ることができ、データの誤り検出精度を向上させることができる。
【００４２】
なお、本願発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自動車を制御するデータの異常を判定する自動車用データ異常判定装置において、演算対象エリアの前記データのＣＲＣ演算結果である２バイト剰余項を予め所定のメモリエリアに記憶する記憶部と、ＣＲＣ演算時には対象エリア演算に続き前記２バイト剰余項も含めてＣＲＣ演算するＣＲＣ演算部とを備え、フラッシュＲＯＭとマスクＲＯＭでＲＯＭ容量が異なる場合、ＲＯＭ容量が大きなフラッシュＲＯＭの一部を予めＣＲＣ演算対象外として該フラッシュＲＯＭのＲＯＭ容量をマスクＲＯＭのＲＯＭ容量と合わせ、フラッシュＲＯＭからマスクＲＯＭに切り替わり可能としたことを特徴とする自動車用データ異常判定装置。
【請求項２】
自動車を制御するデータの異常を判定する自動車用データ異常判定装置において、演算対象エリアの前記データのＣＲＣ演算結果である２バイト剰余項を予め所定のメモリエリアに記憶する記憶部と、ＣＲＣ演算時には対象エリア演算に続き前記２バイト剰余項も含めてＣＲＣ演算するＣＲＣ演算部とを備え、複数の記憶エリア毎のＣＲＣ演算結果同士をさらにＣＲＣ演算してＣＶＮを演算するＣＶＮ演算部を備えたことを特徴とする自動車用データ異常判定装置。
【請求項３】
演算部は２バイト剰余項の演算を最後に実施するように演算順序を変えることを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項４】
通常制御を行いながらＲＯＭに記憶されたデータのＣＲＣ演算を行うことを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項５】
ＣＲＣ演算はＣＲ−１６またはＣＲＣ−ＣＣＩＴＴを使用することを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項６】
演算されたＣＶＮを送信する通信制御部を備え、前記通信制御部を通じて外部ツールにＣＶＮを送信することを特徴とする請求項２記載の自動車用データ異常判定装置。
【手続補正書】
【提出日】平成24年10月5日(2012.10.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
この発明に係る自動車用データ異常判定装置は、演算対象エリアのデータのＣＲＣ演算結果である２バイト剰余項を予め所定のメモリエリアに記憶する記憶部と、ＣＲＣ演算時には対象エリア演算に続き２バイト剰余項も含めてＣＲＣ演算するＣＲＣ演算部とを備え、フラッシュＲＯＭとマスクＲＯＭでＲＯＭ容量が異なる場合、該フラッシュＲＯＭと該マスクＲＯＭ間で対応する各ブロックの記憶されたデータのＣＲＣ値が一致するように、ＲＯＭ容量が大きな該フラッシュＲＯＭの一部を予めＣＲＣ演算対象外として該フラッシュＲＯＭのＲＯＭ容量をマスクＲＯＭのＲＯＭ容量と同じＲＯＭ容量にして、該フラッシュＲＯＭから該マスクＲＯＭに切り替えてＣＲＣ演算することを特徴とするものである。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自動車を制御するデータの異常を判定する自動車用データ異常判定装置において、演算対象エリアの前記データのＣＲＣ演算結果である２バイト剰余項を予め所定のメモリエリアに記憶する記憶部と、ＣＲＣ演算時には対象エリア演算に続き前記２バイト剰余項も含めてＣＲＣ演算するＣＲＣ演算部とを備え、フラッシュＲＯＭとマスクＲＯＭでＲＯＭ容量が異なる場合、該フラッシュＲＯＭと該マスクＲＯＭ間で対応する各ブロックの記憶されたデータのＣＲＣ値が一致するように、ＲＯＭ容量が大きな該フラッシュＲＯＭの一部を予めＣＲＣ演算対象外として該フラッシュＲＯＭのＲＯＭ容量をマスクＲＯＭのＲＯＭ容量と同じＲＯＭ容量にして、該フラッシュＲＯＭから該マスクＲＯＭに切り替えてＣＲＣ演算することを特徴とする自動車用データ異常判定装置。
【請求項２】
自動車を制御するデータの異常を判定する自動車用データ異常判定装置において、演算対象エリアの前記データのＣＲＣ演算結果である２バイト剰余項を予め所定のメモリエリアに記憶する記憶部と、ＣＲＣ演算時には対象エリア演算に続き前記２バイト剰余項も含めてＣＲＣ演算するＣＲＣ演算部とを備え、複数の記憶エリア毎のＣＲＣ演算結果同士をさらにＣＲＣ演算してＣＶＮを演算するＣＶＮ演算部を備えたことを特徴とする自動車用データ異常判定装置。
【請求項３】
演算部は２バイト剰余項の演算を最後に実施するように演算順序を変えることを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項４】
通常制御を行いながらＲＯＭに記憶されたデータのＣＲＣ演算を行うことを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項５】
ＣＲＣ演算はＣＲ−１６またはＣＲＣ−ＣＣＩＴＴを使用することを特徴とする請求項１記載の自動車用データ異常判定装置。
【請求項６】
演算されたＣＶＮを送信する通信制御部を備え、前記通信制御部を通じて外部ツールにＣＶＮを送信することを特徴とする請求項２記載の自動車用データ異常判定装置。
【国際調査報告】
2012004836.tif 000013
2012004836.tif 000014