(57)【要約】【課題】エンジンＥＣＵにＶＩＮコードを書き込むための効率的な方法を提供する。【解決手段】車両識別コード記憶装置２００にＶＩＮコードを記憶させるに際しては、書込部２１２は外部のダイアグノーシススキャンツールなどからＶＩＮコードの書き込みを受け付ける。受け付けられたＶＩＮコードは変換部２２０により保存用コードに圧縮して符号化され、保存用コード格納部２３０に格納される。ＶＩＮコードを読み出すに際しては、復号部２２４は保存用コード格納部２３０が格納する保存用コードを復号し、読出部２１４により読み出される。ＶＩＮコードが圧縮して格納されるために、車両識別コード記憶装置２００中のメモリ領域を節約できる。【選択図】        図２
2004348441.tif 000002
【特許請求の範囲】
【請求項１】
車両識別コードの書込要求を検出する書込要求検出部と、
前記書込要求が検出された車両識別コードを、保存用コードに圧縮して符号化する符号化部と、
前記符号化された保存用コードを記憶する保存用コード記憶部と、
前記車両識別コードの読出要求を検出する読出要求検出部と、
前記読出要求に応じて、前記記憶された保存用コードを、元の車両識別コードに復号する復号部と、
前記復号された車両識別コードを送出する車両識別コード送出部と、
を含むことを特徴とする車両識別コード記憶装置。
【請求項２】
前記符号化部は、前記車両識別コードのうち、数値を示す桁を抽出し、抽出した桁を並べて得られる数列を、単一の数と見なした上で、前記保存用コードに圧縮して符号化することを特徴とする請求項１に記載の車両識別コード記憶装置。
【請求項３】
前記符号化部は、前記車両識別コードをバイナリコードに変換し、前記バイナリコードに所定の論理演算を施して、前記保存用コードに圧縮して符号化することを特徴とする請求項１に記載の車両識別コード記憶装置。
【請求項４】
車両識別コードの書込要求を検出するステップと、
前記書込要求が検出された車両識別コードを、保存用コードに圧縮して符号化するステップと、
前記符号化された保存用コードを記憶媒体に記憶するステップと、
を含むことを特徴とする車両識別コード記憶方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、車両識別コードを車載電子制御装置に記憶する技術に関する。
【０００２】
【従来の技術】
車両を識別するための規格としてＶＩＮ（Ｖｅｈｉｃｌｅ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ）コードがある。ＶＩＮコードは、車の仕様やオプション、製造工場などを示す文字列について規格化されたものであり、車両を識別するためのユニークなコードである。このＶＩＮコードは、車両を構成する様々な部品に記される。これにより、たとえば、車両が解体されたあとでも、部品のＶＩＮコードから、その部品がどの車両の部品であったのかを辿ることができる。
【０００３】
このＶＩＮコードは、エンジンの制御を司るエンジンＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｉｎｔ）にも記される。この場合、通常、ＶＩＮコードは、車両メーカの車両組み付け工程においてエンジンＥＣＵの有するＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの不揮発性メモリに書き込まれる（特許文献１、特許文献２、特許文献３、特許文献４）。
【０００４】
【特許文献１】
特開２００１−３０１５７２号公報
【特許文献２】
特開２０００−１８５６０６号公報
【特許文献３】
特開平１１−２５５０７９号公報
【特許文献４】
特開平５−１７２７０２号公報
【０００５】
【発明が解決しようとする課題】
ＥＥＰＲＯＭは、１バイトごとの書き込みができないものも多い。ＥＥＰＲＯＭによっては、４バイトや８バイト、あるいは１６バイトの単位でしか書き込みができない場合もある。ＶＩＮコードは１７桁の文字列により構成されるため、このＥＥＰＲＯＭの書き込み単位が問題となる。
【０００６】
８バイト単位でしか書き込みができないＥＥＰＲＯＭにＶＩＮコードを書き込む場合には、８×３で２４バイトのメモリ領域が必要とされる。なぜならば、８バイト単位の書き込み二回では、１６バイト分の書き込みしかできない。ＶＩＮコードは１７桁、すなわちそのサイズは通常１７バイトである。それゆえ、これを完全にＥＥＰＲＯＭに書き込むためには、さらにもう一回の書き込み処理が必要である。結果として、ＥＥＰＲＯＭのメモリ領域は合計２４バイト必要とされる。この際、ＥＥＰＲＯＭに書き込まれた２４バイトのうち、２４−１７の７バイトは無駄なメモリ消費となる。同様の理由から、１６バイト単位でしか書き込みができないＥＥＰＲＯＭの場合には、書き込みは二回、メモリ領域は３２バイト分が必要とされる。この場合は、３２−１７で１５バイトのメモリ領域が無駄に消費される。
【０００７】
また、汎用のＥＥＰＲＯＭは読み書きの方式が公開されている。そのため、ＥＥＰＲＯＭへＶＩＮコードをそのまま書き込むと、ＶＩＮコードの内容を誰でも簡単に読み出すことができる。したがって、盗難されたエンジンＥＣＵのＶＩＮコードを改竄しやすくなることから、耐盗難性の面で問題が残る。
【０００８】
本発明は上記課題に鑑みてなされたものであり、その目的は、不揮発性メモリにＶＩＮコードを効率的に記憶させるための技術の提供、にある。
【０００９】
【課題を解決するための手段】
本発明のある態様は、車両識別コード記憶装置である。この装置は、車両識別コードの書込要求を検出する書込要求検出部と、書込要求が検出された車両識別コードを、保存用コードに圧縮して符号化する符号化部と、符号化された保存用コードを記憶する保存用コード記憶部と、車両識別コードの読出要求を検出する読出要求検出部と、読出要求に応じて、記憶された保存用コードを、元の車両識別コードに復号する復号部と、復号された車両識別コードを送出する車両識別コード送出部を含むことを特徴とする。
【００１０】
「車両識別コード」とはＶＩＮコードであってもよい。車両識別コードを保存用コードに圧縮して格納することにより、エンジンＥＣＵの不揮発性メモリを節約できる。
【００１１】
この装置の符号化部は、車両識別コードのうち、数値を示す桁を抽出し、抽出した桁を並べて得られる数列を、単一の数と見なした上で、保存用コードに圧縮して符号化してもよい。
【００１２】
車両識別コードの数値を示す桁（以下、「数値桁」とよぶ）も通常はアスキーコードなどの文字コードとして変換されている。すなわち、車両識別コード中の数値桁は「数」ではなく「数に対応した文字コード」として表されている。この数値桁を文字コードではなくバイナリの数として取り扱うことにより、車両識別コードのサイズを圧縮することができる。抽出する数値桁は車両識別コード中のすべての数値桁であってもよいし、その一部であってもよい。また、抽出する数値桁が車両識別コード中で隣り合うものである必要はない。
【００１３】
また、この装置の符号化部は、車両識別コードをバイナリコードに変換し、このバイナリコードに所定の論理演算を施して、保存用コードに圧縮して符号化してもよい。
【００１４】
本発明の別の態様は、車両識別コード記憶方法である。この方法は、車両識別コードの書込要求を検出するステップと、書込要求が検出された車両識別コードを、保存用コードに圧縮して符号化するステップと、符号化された保存用コードを記憶媒体に記憶するステップを含むことを特徴とする。
【００１５】
【発明の実施の形態】
図１は、エンジンＥＣＵ１００のハードウェアの基本構成を示す図である。エンジンＥＣＵ１００は、入出力インタフェース１０２、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０４、メモリ１１０を含む。また、メモリ１１０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１４およびＥＥＰＲＯＭを含む。メモリ１１０には、入出力インタフェース１０２を介して回転センサ、エアフロメータ、水温センサ等による各種外部装置からの検出信号が逐次入力される。ＣＰＵ１０４は、これら各種検出信号に基づいてエンジンが最適状態で運転されるようインジェクタによる燃料噴射量やイグナイタによる点火時期を制御する。ＥＥＰＲＯＭ１１６には車両識別コードとしてのＶＩＮコードなどが記憶される。
【００１６】
図２は、車両識別コード記憶装置２００の機能ブロック図を示す。車両識別コード記憶装置２００はエンジンＥＣＵ１００のうち、ＶＩＮコードを記憶する機能につき、ハードウェア単位ではなく、機能単位でブロック化して表したものである。車両識別コード記憶装置２００の各構成要素は、ハードウエアとソフトウエアの任意の組み合わせによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。同図は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。
【００１７】
車両識別コード記憶装置２００は、入出力部２１０、変換部２２０および保存用コード格納部２３０を含む。入出力部２１０は、ＶＩＮコードの入出力を行うインタフェース機能を担当する。入出力部２１０は、外部のダイアグノーシススキャンツールなどの機器からＶＩＮコードの書き込みや読出し要求を受け付ける。入出力部２１０は、ＶＩＮコードの書込処理を担当する書込部２１２と、読出処理を担当する読出部２１４を含む。変換部２２０は、ＶＩＮコードとこれを圧縮して符号化した保存用コードとを相互に変換する。変換部２２０は符号化部２２２と復号部２２４を含む。符号化部２２２は、ＶＩＮコードから保存用コードへの符号化を行う。一方、復号部２２４は、保存用コードからＶＩＮコードへの復号を行う。保存用コード格納部２３０は保存用コードを格納する。
【００１８】
図３はＶＩＮコード２４０の構成を示す。ＶＩＮコードのタイプは、グローバルＶＩＮ、ＵＳＶＩＮなど複数の種類がある。しかし、いずれの形式も合計１７桁のローマ字と数字の混成であり、その大要については同等である。同図のＶＩＮコード２４０はグローバルＶＩＮ規格における構成を示す。
【００１９】
ＶＩＮコード２４０はいくつかに区分することができる。そのうち、ＷＭＩ（Ｗｏｒｌｄ  Ｍａｎｕｆａｃｔｕｒｅｒ  Ｉｄｅｎｔｉｆｉｅｒ）２４２は、車両の製造業者や車両のタイプを表すための区分である。ＶＤＳ（Ｖｅｈｉｃｌｅ  Ｄｅｓｃｒｉｐｔｏｒ  Ｓｅｃｔｉｏｎ）２４４は、車両の仕様を単一に識別するための区分である。チェックデジット２４６は、ＶＩＮコードの読み書き時におけるエラー検出のために設けられる桁である。ＶＩＳ（Ｖｅｈｉｃｌｅ  Ｉｎｄｉｃａｔｏｒ  Ｓｅｃｔｉｏｎ）２４８は、同じＶＤＳの車両を識別するために設けられた区分である。ＶＩＮコードをＥＥＰＲＯＭなどの不揮発性メモリに記憶させる場合には、各桁をアスキーコードなどの文字コードに対応させて記憶させる。このとき、各桁のサイズとして１バイトが割り当てられるのが通常である。
【００２０】
図４は、ＶＩＮコード２５０をＥＥＰＲＯＭ２５２に書き込む場合に生じる問題を模式的に示す図である。同図では、ＥＥＰＲＯＭ２５２は１６バイト単位での書き込みに対応している。同図に示すように、ＥＥＰＲＯＭ２５２は一回の書き込み処理で１６バイトまで書き込まれる。この際、ＶＩＮコード２５０の１７バイト分のうち、１バイト分が書き残される。したがって、ＶＩＮコード２５０の残った１バイトをＥＥＰＲＯＭ２５２に書き込むために、再び、１６バイト分の書き込み処理が行われる。結果として、ＥＥＰＲＯＭ２５２のメモリ領域は３２バイト必要とされることになる。しかし、そのうちの１５バイト分のメモリ領域は無駄に消費される。
【００２１】
［実施の形態１］
図５は、本実施の形態におけるＶＩＮコードの圧縮方式を模式的に示す図である。同図では、ＶＩＮコード中にローマ字「Ｒ」が含まれており、その文字を表すためのビットサイズの圧縮を試みている。通常、アスキーコードは７ビットサイズで文字を表記する（図６参照）。ローマ字「Ｒ」のアスキーコードは２進数で表記すると「１０１００１０」である。図２に示したダイアグノーシススキャンツールから、書込部２１２にＶＩＮコードを送信する場合には、各桁のサイズは１バイト、すなわち８ビットに正規化される。この正規化に際し、各桁の最上位のビットには「０」がパディングされる。しかし、この最上位のビットの「０」は、送信時の正規化のために付加されているにすぎない。したがって、符号化部２２２がこの最上位ビットにパディングされた「０」を削除することにより、ＶＩＮコードの各桁のサイズは８ビットから７ビットに縮小される。
【００２２】
ＶＩＮコードの各桁のサイズが８ビットである場合には、メモリ領域は１７桁×８ビットで１３６ビット、すなわち１７バイトが必要とされる。しかし、各桁のサイズが７ビットとなれば、メモリ領域は１７文字×７ビットで１１９ビット、すなわち１５バイト以内しか必要とされなくなる。これによって、書き込みの単位が１６バイトであるＥＥＰＲＯＭの場合、一回の書き込み処理でＶＩＮコードを記憶させることができる。併せて、本実施の形態における処理を行わない場合に比べて、ＥＥＰＲＯＭのメモリ領域を大幅に節約できる。なお、以下、２進数の数字は「０１１（２）」、１０進数の数字は「３（１０）」、１６進数の数字は「３（１６）」の様に表記するものとする。また、ＶＩＮコード中の数値桁の様に、数字をキャラクターとして示す場合には、「３（Ｃ）」のように表記するものとする。
【００２３】
［実施の形態２］
図６は、アスキーコード表である。本実施の形態では、ＶＩＮコードの各桁を示すアスキーコードに対して、所定の論理演算を施すことにより、ＶＩＮコードのサイズの圧縮を試みている。これについて図６を用いて説明する。同図によれば、ＶＩＮコード中に使用される全ての文字は上位ビットが３ビット、下位ビットが４ビットで表される。ここで、ＶＩＮコード中に使用される文字のアスキーコードはすべて「３０（１６）」以上の数で表される。したがって、ＶＩＮコード中の各桁から「３０（１６）」を一律に減算することにより、各桁のサイズを圧縮することができる。たとえば、数字の「３（Ｃ）」を表すアスキーコードは、「３３（１６）」であるが、ここから「３０（１６）」を減じると、「０００００１１（２）」となる。また、「Ｚ（Ｃ）」のアスキーコードは、ＶＩＮコードの桁に使用される文字の中で最大の「５Ａ（１６）」である。同じく、ここから「３０（１６）」を減じると、「０１０１０１０（２）」となる。したがって、ＶＩＮコードの各桁をすべて６ビット以内で表記させることができる。実施の形態１で示した方法と併用すれば、メモリ領域は、１７文字×６ビットで１０２ビット、すなわち１３バイト以内しか必要とされなくなるため、さらなる圧縮が可能である。
【００２４】
［実施の形態３］
図７は、ＶＩＮコード中の数値桁を抽出して圧縮する方法を模式的に示す図である。同図では、ＶＩＮコード中の数値桁から「１（Ｃ）」、「２（Ｃ）」、「３（Ｃ）」を抽出して圧縮を試みている。通常、数値桁の「１（Ｃ）」、「２（Ｃ）」、「３（Ｃ）」もそれぞれ１バイトの文字コードで表される。このため、このままではこの３桁の合計で３文字×８ビットで２４ビット、すなわち３バイトのメモリ領域を必要とする。
【００２５】
本実施の形態においては、「１（Ｃ）」「２（Ｃ）」「３（Ｃ）」を連結し、「１２３（１０）」という数として表す。「１２３（１０）」は「１１１１０１１（２）」である。３桁の１０進数を表記するためには、最大１０ビットあればよいので、「１２３（１０）」を１０ビット表記するならば「０００１１１１０１１（２）」となる。すなわち、「１（Ｃ）」、「２（Ｃ）」、「３（Ｃ）」を別々に表記していたときには２４ビットのサイズが必要であったが、これを１０ビットのサイズにまで圧縮することができる。
【００２６】
［実施の形態４］
図８は、ＶＩＮコード中の各桁を独自の変換テーブルに則ってコード化することにより、ＶＩＮコードを圧縮して符号化する方法を模式的に示す図である。ＶＩＮコードで使用する文字はローマ字で２３文字、数字で１０文字の合計３３種類である。３３種類の文字は６ビット以内で表記可能である。本実施の形態においては、ＶＩＮコードの各桁を、一般的に使用されるアスキーコードではなく独自に作成した６ビットサイズのコードに対応させる。同図では、これらＶＩＮコードに使用される３３種類の文字に、「０（１０）」から「３２（１０）」までのコードを一意に割り当てている。たとえば、同図では、「４（Ｃ）」に対しては「０１０００１（２）」というコードが割り当てられている。ＶＩＮコードとこの独自に生成したコードは変換部２２０を通さなければ符号化や復号ができないようにすれば、ＥＥＰＲＯＭから直接的にＶＩＮコードを読み取ったり、あるいはそれを改竄するのは困難となる。
【００２７】
なお、請求項１の読出要求検出部と車両識別コード送出部は、図２の読出部２１４に対応する。また、請求項１の書込要求検出部は、図２の書込部２１２に対応する。
【００２８】
以上、実施の形態においては、ＶＩＮコードのサイズを圧縮してＥＥＰＲＯＭに書き込むことができる。また、特に実施の形態４で示した様にＶＩＮコードをアスキーコードではなく、独自のコード体系で書き込むことにより、ＥＥＰＲＯＭを直接読みとってもＶＩＮコードを簡単に推測しえなくすることができる。すなわち、いわゆる暗号化の効果がある。これにより、耐盗難性が向上する。特に、本実施の形態においてはエンジンＥＣＵに読み書き方式が公開されている汎用のＥＥＰＲＯＭを使用する場合に効果が大きい。なお、実施の形態１から４に示した方法を組み合わせて使用しても良い。これにより、さらにメモリ領域を節約できる。
【００２９】
以上、本発明を実施の形態をもとに説明した。以上の実施の形態は例示であり、その様々な変形例もまた本発明の範囲に含まれることは当業者には理解されるところである。
【００３０】
【発明の効果】
本発明によれば、不揮発性メモリにＶＩＮコードを効率的に記憶させることができる。
【図面の簡単な説明】
【図１】実施の形態に係るエンジンＥＣＵのハードウェア構成を模式的に表した図である。
【図２】車両識別コード記憶装置の機能ブロックを示す図である。
【図３】グローバルＶＩＮコードの構成を示す図である。
【図４】ＶＩＮコードをＥＥＰＲＯＭに書き込む場合に生じる問題を模式的に示す図である。
【図５】実施の形態１におけるＶＩＮコードのサイズ圧縮方法を示す模式図である。
【図６】アスキーコード表である。
【図７】実施の形態３におけるＶＩＮコード中の数値桁の圧縮方法を示す模式図である。
【図８】実施の形態４におけるＶＩＮコードの各桁のコード変換方法を示す図である。
【符号の説明】
１０２  入出力インタフェース、２００  車両識別コード記憶装置、２１０  入出力部、２１２  書込部、２１４  読出部、２２０  変換部、２２２  符号化部、２２４  復号部、２３０  保存用コード格納部。
【図１】
2004348441.tif 000003
【図２】
2004348441.tif 000004
【図３】
2004348441.tif 000005
【図４】
2004348441.tif 000006
【図５】
2004348441.tif 000007
【図６】
2004348441.tif 000008
【図７】
2004348441.tif 000009
【図８】
2004348441.tif 000010