(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-23
(45)【発行日】2023-05-31
(54)【発明の名称】変換装置、変換方法、および変換プログラム
(51)【国際特許分類】
G06F 11/34 20060101AFI20230524BHJP
G06F 11/30 20060101ALI20230524BHJP
【FI】
G06F11/34 176
G06F11/30 140D
G06F11/30 168
(21)【出願番号】P 2019168168
(22)【出願日】2019-09-17
【審査請求日】2021-12-13
(73)【特許権者】
【識別番号】000233055
【氏名又は名称】株式会社日立ソリューションズ
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】下澤 昌史
(72)【発明者】
【氏名】齋藤 信
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開2011-039834(JP,A)
【文献】特開2005-148779(JP,A)
【文献】特開2019-022174(JP,A)
【文献】特開平10-213525(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
G06F 11/30
(57)【特許請求の範囲】
【請求項1】
演算器に受信されたデータ内における信号の値の位置を示す位置情報と前記信号の種類とを前記演算器の識別情報ごとに対応付けた定義情報を、前記演算器により制御される制御対象ごとに記憶する記憶部と、
第1制御対象が制御される第1演算器に受信された第1受信データが入力されると、前記第1制御対象の定義情報を参照して、前記第1受信データ内の第1位置における第1信号の種類を特定し、当該特定した前記第1信号の種類と前記第1受信データ内の前記第1信号の値とを関連付けた第1入力データを出力するデコーダと、
前記デコーダから出力された第1入力データが入力されると、前記第1制御対象とは異なる第2制御対象の定義情報を参照して、前記第1入力データ内の前記第1信号の種類に対応する第2演算器の識別情報と、前記第2演算器に受信される第2受信データ内の前記第1信号の第2位置を示す位置情報と、前記第2位置における前記第1信号の値と、を関連付けた第2入力データを出力するエンコーダと、
を有することを特徴とする変換装置。
【請求項2】
請求項1に記載の変換装置であって、
前記デコーダは、前記第1受信データにおいて、前記第1信号の値が前記第1制御対象の定義情報に定義されていない前記演算器の識別情報に関連付けられている場合、前記第1入力データを出力しない、
ことを特徴とする変換装置。
【請求項3】
請求項1に記載の変換装置であって、
前記定義情報は、前記データの受信周期を前記演算器の識別情報ごとに記憶しており、
前記第1受信データは、前記第1演算器での第1受信時間を含み、
前記デコーダは、前記第2制御対象の定義情報を参照して、前記第2演算器ごとの第2受信周期の公約数となる特定の周期を算出し、前記特定の周期と前記第1受信時間とに基づいて、特定の第1受信データを取得し、前記特定の第1受信データ
が取得されると、前記第1入力データを出力する、
ことを特徴とする変換装置。
【請求項4】
請求項3に記載の変換装置であって、
前記デコーダは、前記特定の周期単位で繰り返し前記特定の第1受信データを取得する、
ことを特徴とする変換装置。
【請求項5】
請求項3に記載の変換装置であって、
前記デコーダは、前記第1受信時間と前記特定の周期とに基づいて前記第2演算器による前記第2受信データの第2受信時間を算出し、前記第1信号の第2位置を示す位置情報と、前記第2位置における前記第1信号の値と、前記第2受信時間と、を関連付けた第2入力データを出力する、
ことを特徴とする変換装置。
【請求項6】
請求項3に記載の変換装置であって、
前記エンコーダは、前記特定の周期と一致した前記受信周期に対応する前記第2演算器の識別情報と、前記第2演算器に受信される第2受信データ内の前記第1信号の第2位置を示す位置情報と、前記第2位置における前記第1信号の値と、を関連付けた第2入力データを出力する、
ことを特徴とする変換装置。
【請求項7】
請求項5に記載の変換装置であって、
前記第2演算器ごとに前記特定の周期を計数値として記憶する周期カウンタを有し、
前記エンコーダは、前記特定の周期と一致した前記受信周期に対応する前記第2演算器の前記計数値を前記特定の周期で上書きする、
ことを特徴とする変換装置。
【請求項8】
請求項5に記載の変換装置であって、
前記第2演算器ごとに前記特定の周期を計数値として記憶する周期カウンタを有し、
前記エンコーダは、前記特定の周期と一致しなかった前記受信周期に対応する前記第2演算器の前記計数値に前記特定の周期を加算する、
ことを特徴とする変換装置。
【請求項9】
記憶部にアクセス可能な変換装置が実行する変換方法であって、
前記記憶部は、演算器に受信されたデータ内における信号の値の位置を示す位置情報と前記信号の種類とを前記演算器の識別情報ごとに対応付けた定義情報を、前記演算器により制御される制御対象ごとに記憶しており、
前記変換装置は、
第1制御対象が制御される第1演算器に受信された第1受信データが入力されると、前記第1制御対象の定義情報を参照して、前記第1受信データ内の第1位置における第1信号の種類を特定し、当該特定した前記第1信号の種類と前記第1受信データ内の前記第1信号の値とを関連付けた第1入力データを出力し、
前記第1入力データが入力されると、前記第1制御対象とは異なる第2制御対象の定義情報を参照して、前記第1入力データ内の前記第1信号の種類に対応する第2演算器の識別情報と、前記第2演算器に受信される第2受信データ内の前記第1信号の第2位置を示す位置情報と、前記第2位置における前記第1信号の値と、を関連付けた第2入力データを出力する、
をことを特徴とする変換方法。
【請求項10】
記憶部にアクセス可能なプロセッサに実行させる変換プログラムであって、
前記記憶部は、演算器に受信されたデータ内における信号の値の位置を示す位置情報と前記信号の種類とを前記演算器の識別情報ごとに対応付けた定義情報を、前記演算器により制御される制御対象ごとに記憶しており、
前記プロセッサに、
第1制御対象が制御される第1演算器に受信された第1受信データが入力されると、前記第1制御対象の定義情報を参照して、前記第1受信データ内の第1位置における第1信号の種類を特定し、当該特定した前記第1信号の種類と前記第1受信データ内の前記第1信号の値とを関連付けた第1入力データを出力させ、
前記第1入力データが入力されると、前記第1制御対象とは異なる第2制御対象の定義情報を参照して、前記第1入力データ内の前記第1信号の種類に対応する第2演算器の識別情報と、前記第2演算器に受信される第2受信データ内の前記第1信号の第2位置を示す位置情報と、前記第2位置における前記第1信号の値と、を関連付けた第2入力データを出力させる、
をことを特徴とする変換プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを変換する変換装置、変換方法、および変換プログラムに関する。
【背景技術】
【0002】
車載ネットワーク(車両内ネットワークとも呼ばれる)は、車両に搭載される機器の制御に用いられるネットワークである。具体的には、たとえば、車載ネットワークは、ACC(Adaptive Cruise Control)システムやエンジンといった車両自体を制御する車両制御系ネットワークと、ドアやスイッチ、ステアリングといった車体を制御するボディ系ネットワークと、ディスプレイやオーディオ、エアコン、カーナビゲーションといった情報系の機器を制御する情報系ネットワークと、という3系統のネットワークを有する。3系統のネットワークは、各ネットワーク内のECU(Electronic Control Unit)のような演算器を介して相互に接続されて、ECUの高度化と配線の複雑化に対応するため、CAN(Controller Area Network)、LIN(Local Interconnect Network)、FlexRayといった通信規格に基づいてデータ通信される。
【0003】
車載ネットワークログとは、車載ネットワークから得られるログデータである。車載ネットワークは車種により異なるため、当然、車載ネットワークログも車種により異なる。具体的には、たとえば、たとえば、ECUのID、パラメータの割り当て、受信周期が車種により異なる。
【0004】
特許文献1は、自車両についての各種診断処理を行うと共に、該システムを構成する判定用ECUを開示する。この判定用ECUは、他のECUに搭載されたセンサからの信号や、車内LAN50を介して他のECUから取得した情報に基づき、自車両の車両状態を検出する。そして、判定用ECUは、車両状態や診断処理の結果等に基づき、各診断処理の実行が可能か否かの判定(実行可否判定)を行い、判定結果を各ECUに通知する。
【0005】
特許文献2は、車両制御に関し極力必要な学習値のみを再利用する車両用学習データ再利用判断装置を開示する。この車両用学習データ再利用判断装置は、交換前のECUが搭載された車両中で現に発生したダイアグ情報の指標コードと、新たなECUの判断テーブルに記憶されるダイアグコードとが少なくとも一つ以上一致していると判定されると、このダイアグコードに対応した学習値の再利用を不可と判断し、新たなECUに予め設定される初期値に書き換える。すなわち、車両用学習データ再利用判断装置は、書き換えられる学習値に代えて新たなECUに設定される初期値を使用する。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2013‐3010号公報
【文献】特開2014‐40781号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、車種により車載ネットワークログが異なるため、車種Aの車両(以下、車両A)の車載ネットワークログを車種Aとは異なる車種Bの車両(以下、車両B)に適用しても、車両Bは動作しない。また、車両Aの車載ネットワークログの時系列データを置換しただけで車両Bに適用しても、同様である。
【0008】
このように、異なる車種間で車載ネットワークログを使い回すことができないため、車種ごとに車載ネットワークログを取得して開発に活用しているのが現状であり、ECU開発の効率低下の要因の一つとなっている。
【0009】
本発明は、ECUのような演算器の開発の効率化を図ることを目的とする。
【課題を解決するための手段】
【0010】
本願において開示される発明の一側面となる変換装置は、演算器に受信されたデータ内における信号の値の位置を示す位置情報と前記信号の種類とを前記演算器の識別情報ごとに対応付けた定義情報を、前記演算器により制御される制御対象ごとに記憶する記憶部と、第1制御対象が制御される第1演算器に受信された第1受信データが入力されると、前記第1制御対象の定義情報を参照して、前記第1受信データ内の第1位置における第1信号の種類を特定し、当該特定した前記第1信号の種類と前記第1受信データ内の前記第1信号の値とを関連付けた第1入力データを出力するデコーダと、前記デコーダから出力された第1入力データが入力されると、前記第1制御対象とは異なる第2制御対象の定義情報を参照して、前記第1入力データ内の前記第1信号の種類に対応する第2演算器の識別情報と、前記第2演算器に受信される第2受信データ内の前記第1信号の第2位置を示す位置情報と、前記第2位置における前記第1信号の値と、を関連付けた第2入力データを出力するエンコーダと、を有することを特徴とする。
【発明の効果】
【0011】
本発明の代表的な実施の形態によれば、ECUのような演算器の開発の効率化を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、車載ネットワークログファイル再活用例を示す説明図である。
【
図2】
図2は、変換装置のハードウェア構成例を示すブロック図である。
【
図3】
図3は、車両A車載ネットワークログファイルの一例を示す説明図である。
【
図4】
図4は、車両B車載ネットワーク受信ログファイルの一例を示す説明図である。
【
図5】
図5は、車両A車載ネットワーク受信台帳の記憶内容の一例を示す説明図である。
【
図6】
図6は、車両B車載ネットワーク受信台帳の一例を示す説明図である。
【
図7】
図7は、車両B受信ID周期カウンタの一例を示す説明図である。
【
図8】
図8は、受信車両Bパラメータの一例を示す説明図である。
【
図9】
図9は、デコーダによるデコード処理の詳細な処理手順例を示すフローチャートである。
【
図10】
図10は、
図9に示した車両A車載ネットワーク受信ログデータの作成例(ステップS902)を示す説明図である。
【
図11】
図11は、
図9に示した最小ステップ時間の設定例(ステップS903)を示す説明図である。
【
図12】
図12は、
図9に示した車両B受信ID周期カウンタの設定例(ステップS904)を示す説明図である。
【
図13】
図13は、車両A車載ネットワーク受信ログデータの読み込み例1(ステップS905)を示す説明図である。
【
図14】
図14は、車両パラメータ値の更新例1(ステップS906)を示す説明図である。
【
図15】
図15は、エンコーダによるエンコード処理の詳細な処理手順例を示すフローチャートである。
【
図16】
図16は、置換データの生成例1を示す説明図である。
【
図17】
図17は、車両B受信ID周期カウンタの更新例1を示す説明図である。
【
図18】
図18は、車両A車載ネットワーク受信ログデータの読み込み例2(ステップS905)を示す説明図である。
【
図19】
図19は、車両パラメータ値の更新例2(ステップS906)を示す説明図である。
【
図20】
図20は、置換データの生成例2を示す説明図である。
【
図21】
図21は、車両B受信ID周期カウンタの更新例2を示す説明図である。
【発明を実施するための形態】
【0013】
<車載ネットワークログファイル再活用例>
図1は、車載ネットワークログファイル再活用例を示す説明図である。
図1では、車両AのECU群110から得られた車両A車載ネットワークログファイル112を、車両Aとは異なる車種の車両Bに活用する例である。車両A車載ネットワークログファイル112は、車両Aの車載ネットワークを構成するECU群110から得られた車載ネットワークログを記録したファイルである。
【0014】
変換装置100が、車両A車載ネットワークログファイル112を車両Bに適した車両B車載ネットワーク受信ログファイル122に変換する。車両B車載ネットワーク受信ログファイル122は、車両Bの車載ネットワークで受信可能なログを記録したファイルである。車両B車載ネットワーク受信ログファイル122が車両BのECU群120に適用されると、車両Bは車両Aと同様の動作をおこなう。なお、ECU群110は車両Aを制御対象として制御し、ECU群120は車両Bを制御対象として制御する。
【0015】
変換装置100は、デコーダ101とエンコーダ102とを有する。デコーダ101は、車両A車載ネットワーク受信台帳111を参照して、車両A車載ネットワークログファイル112をデコードし、受信車両Bパラメータ103を出力する。車両A車載ネットワーク受信台帳111とは、車両Aの車載ネットワークで受信可能なデータの仕様を定義した定義情報であり、たとえば、テーブル形式で表現される。
【0016】
受信車両Bパラメータ103は、車両AのECU群110と車両BのECU群120との相違に依存しない、車両Aおよび車両Bで受信される信号の種類(信号名)とその物理値を関連づけたデータである。
【0017】
エンコーダ102は、車両B車載ネットワーク受信台帳121を参照して、受信車両Bパラメータ103をエンコードし、車両B車載ネットワーク受信ログファイル122を出力する。車両B車載ネットワーク受信台帳121とは、車両Bの車載ネットワークで受信可能なデータの仕様を定義した定義情報であり、たとえば、テーブル形式で表現される。車両B車載ネットワーク受信ログファイル122は、車両BのECU群120に読み込まれる。
【0018】
このように、変換装置100により車両A車載ネットワークログファイル112を車両B車載ネットワーク受信ログファイル122に自動変換することができるため、車両A車載ネットワークログファイル112を車両Bで使い回すことができ、ECU開発の効率化を図ることができる。なお、本実施例では、車両A車載ネットワークログファイル112を車両Bに適用する場合の変換例を示すが、車両Bの車載ネットワークログファイルを車両Aに適用する場合の変換例も同様に実行される。したがって、車種A,B間での車載ネットワークログの使い回しが可能となり、ECU開発の効率化を図ることができる。
【0019】
<変換装置100のハードウェア構成例>
図2は、変換装置100のハードウェア構成例を示すブロック図である。変換装置100は、プロセッサ201と、記憶デバイス202と、入力デバイス203と、出力デバイス204と、通信インターフェース(通信IF)205と、を有する。プロセッサ201、記憶デバイス202、入力デバイス203、出力デバイス204、および通信IF205は、バス206により接続される。プロセッサ201は、変換装置100を制御する。記憶デバイス202は、プロセッサ201の作業エリアとなる。また、記憶デバイス202は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス202としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス203は、データを入力する。入力デバイス203としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス204は、データを出力する。出力デバイス204としては、たとえば、ディスプレイ、プリンタがある。通信IF205は、ネットワークと接続し、データを送受信する。
【0020】
図1に示したデコーダ101およびエンコーダ102は、具体的には、たとえば、記憶デバイス202に記憶されたプログラムをプロセッサ201に実行させることにより実現される機能である。
【0021】
また、記憶デバイス202は、車両AのECU群110から取得した車両A車載ネットワークログファイル112を記憶する。また、記憶デバイス202は、デコーダ101およびエンコーダ102で生成、更新される受信車両Bパラメータ103を記憶する。また、記憶デバイス202は、エンコーダ102で生成された車両B車載ネットワーク受信ログファイル122を記憶する。また、記憶デバイス202は、
図1に示した車両A車載ネットワーク受信台帳111、車両B車載ネットワーク受信台帳121および車両B受信ID周期カウンタ221を記憶する。
【0022】
なお、車両A車載ネットワークログファイル112、受信車両Bパラメータ103、車両B車載ネットワーク受信ログファイル122、車両A車載ネットワーク受信台帳111、車両B車載ネットワーク受信台帳121および車両B受信ID周期カウンタ221は、変換装置100外で変換装置100がアクセス可能な他のコンピュータの記憶デバイス202に記憶されてもよい。
【0023】
<ログファイル>
つぎに、車両ごとのログファイルの記憶内容について
図3および
図4を用いて説明する。
【0024】
図3は、車両A車載ネットワークログファイル112の一例を示す説明図である。車両A車載ネットワークログファイル112は、車両A車載ネットワークログを記録したファイルである。車両A車載ネットワークログファイル112は、フィールドとして、送受信時間301と、ID302と、送信/受信303と、データ304と、を有する。同一行の各フィールド301~304の値の組み合わせが、1つの車両A車載ネットワークログとなる。
【0025】
送受信時間301は、値として、その車両A車載ネットワークログを送信または受信した時刻を記憶するフィールドである。なお、以降、AAフィールドbbb(AAはフィールド名、bbbは符号)の値を、AAbbbと表記する場合がある。たとえば、送受信時間301の値を、送受信時間301と表記する。
【0026】
ID302は、値として、その車両A車載ネットワークログを示すデータを送信または受信したECUの識別情報を記憶するフィールドである。送信/受信303は、値として、その車両A車載ネットワークログを示すデータを送信したか受信したかを示す情報を記憶するフィールドである。「送信」であれば、そのエントリは、ID302で特定されるECUから送信されるデータであり、「受信」であれば、そのエントリは、ID302で特定されるECUに受信されるデータである。データ304は、値として、その車両A車載ネットワークログを示すデータの値とその位置(1Byte、2Byte、…、NByte)をバイト単位で記憶するフィールドである。
【0027】
図4は、車両B車載ネットワーク受信ログファイル122の一例を示す説明図である。車両B車載ネットワーク受信ログファイル122は、車両A車載ネットワークログファイル112と同一フィールド301~304を有する。ただし、各フィールド301~304の値は、変換装置100による変換後の値、すなわち、車両Bに適した値となる。同一行の各フィールド301~304の値の組み合わせが、1つの車両B車載ネットワーク受信ログとなる。
【0028】
<車載ネットワーク受信台帳>
つぎに、車両ごとの車載ネットワーク受信台帳の記憶内容について
図5および
図6を用いて説明する。
【0029】
図5は、車両A車載ネットワーク受信台帳111の記憶内容の一例を示す説明図である。
図6は、車両B車載ネットワーク受信台帳121の一例を示す説明図である。車両A車載ネットワーク受信台帳111は、フィールドとして、ID302と、受信周期501と、位置502と、ビット幅503と、信号名504と、ファクター505と、単位506と、最大値507と、最小値508と、を有する。同一行の各フィールド302,501~508の値の組み合わせが、信号名504で特定される1つの信号の仕様をエントリとして規定する。
【0030】
ID302は、ECUを一意に特定する識別情報であるため、当該ECUが受信可能な信号が複数あれば、1つのID302は複数のエントリに含まれる。受信周期501は、値として、そのECUがその信号を含むデータを受信する周期を記憶するフィールドである。位置502は、フィールドとして、その信号がその信号を含む受信データのどの位置502(バイト位置およびビット位置)に格納されているかを示す位置情報を記憶するフィールドである。
【0031】
ビット幅503は、値として、その信号を含む受信データ内でのその信号を示すビット列の幅を記憶するフィールドである。信号名504は、値として、その信号の種類をあらわす名称を記憶するフィールドである。
【0032】
ファクター505は、値として、信号の物理値を正規化するための数値である。たとえば、信号の物理値の単位506が[km/s]で、かつ、デコーダ101から[m/s]で当該物理量を出力させたい場合に、車両A車載ネットワーク受信台帳111の当該信号のファクター505に「0.001」が設定される。これにより、物理量の正規化が可能となる。したがって、エンコーダ102は、[km/s]ではなく[m/s]の単位506で物理量を受信することができる。
【0033】
また、たとえば、信号の物理値の単位506が[km/s]で、かつ、デコーダ101から[m/s]で当該物理量が入力される場合に、車両B車載ネットワーク受信台帳121の当該信号のファクター505に「1000」が設定される。これにより、物理量の正規化が可能となる。したがって、エンコーダ102は、[m/s]ではなく[km/s]の単位506で物理量を処理することができる。
【0034】
単位506は、値として、その信号をあらわす物理量の測定基準(rpm、%、m/sなど)を記憶するフィールドである。最大値507は、値として、その信号が採りうる最大の値(上限値)を記憶するフィールドである。最小値508は、値として、その信号が採りうる最小の値(下限値)を記憶するフィールドである。
【0035】
<車両B受信ID周期カウンタ221>
図7は、車両B受信ID周期カウンタ221の一例を示す説明図である。車両B受信ID周期カウンタ221は、車両Bの車載ネットワーク内の各ECUが信号を受信するための周期カウンタである。車両B受信ID周期カウンタ221は、フィールドとして、受信ID701と、周期カウンタ702と、を有する。同一行の各フィールド701,702の値の組み合わせが1つのECUの周期を計数する計数値を規定する。
【0036】
受信ID302は、値として、信号を受信するECUを一意に特定するID302の値を記憶するフィールドである。周期カウンタ702は、値として、そのECUが信号を受信する周期を計数する値を記憶するフィールドである。周期カウンタ702の値が「10」msであれば、そのECUは、10[ms]ごとにその信号を受信する。
【0037】
<受信車両Bパラメータ103>
図8は、受信車両Bパラメータ103の一例を示す説明図である。受信車両Bパラメータ103は、フィールドとして、信号名504と、車両パラメータ値801と、を有する。同一行の各フィールド504,801の値の組み合わせが、その信号の車両パラメータの物理値を規定する。車両パラメータ値801は、値として、その信号の車両パラメータの値(物理値)を記憶するフィールドである。
【0038】
<デコーダ101によるデコード処理>
図9は、デコーダ101によるデコード処理の詳細な処理手順例を示すフローチャートである。デコーダ101は、車両A車載ネットワーク受信台帳111および車両B車載ネットワーク受信台帳121を記憶デバイス202から読み込む(ステップS901)。
【0039】
つぎに、デコーダ101は、車両A車載ネットワークログファイル112から受信データを抽出し、車両A車載ネットワーク受信ログデータを作成する(ステップS902)。ステップS902の具体例を
図10に示す。
【0040】
図10は、
図9に示した車両A車載ネットワーク受信ログデータ1000の作成例(ステップS902)を示す説明図である。
図10では、説明を簡略化するため、車両A車載ネットワークログファイル112のうち一部のフィールドを抜粋して表記する。なお、符号304-1は、データ304内の「1Byte」のフィールドを示す。
【0041】
ステップS902では、デコーダ101は、車両A車載ネットワーク受信台帳111を参照して、車両A車載ネットワークログファイル112から、車両A車載ネットワーク受信台帳111に存在しないID302を特定する。
図10では、車両A車載ネットワーク受信台帳111に存在しないID302を「XXX」および「YYY」とする。
【0042】
デコーダ101は、車両A車載ネットワークログファイル112から、ID302が「XXX」および「YYY」のエントリを削除する。車両A車載ネットワークログファイル112内の残余のエントリが、車両A車載ネットワーク受信ログデータ1000となる。これにより、不要なデータ変換を抑制し、ECU開発効率の向上を図ることができる。
【0043】
図9に戻り、デコーダ101は、車両B車載ネットワーク受信台帳121の各周期を抽出し、抽出した周期の公約数を算出し、最小ステップ時間として記憶デバイス202に格納する(ステップS903)。ステップS903の具体例を
図11に示す。
【0044】
図11は、
図9に示した最小ステップ時間の設定例(ステップS903)を示す説明図である。車両B車載ネットワーク受信台帳121において、受信周期501は、「10」と「20」の2種類である。デコーダ101は、「10」と「20」の公約数{1,2,5,10}を算出する。デコーダ101は、公約数{1,2,5,10}のうちいずれかを選択して最小ステップ時間に設定する。
【0045】
なお、
図11では、デコーダ101は、公約数{1,2,5,10}のうち最大公約数である「10」を最小ステップ時間に設定したが、最大公約数以外の他の公約数でもよい。これにより、変換装置100は、受信周期501がばらばらな信号を最小ステップ時間でまとめて変換することができ、ECU開発効率の向上を図ることができる。
【0046】
図9に戻り、デコーダ101は、ステップS902で作成された車両A車載ネットワーク受信ログデータ1000の送受信時間301の先頭の値(以下、先頭送受信時間301)を抽出し、最小ステップ時間と加算した時間を読込み時間として記憶デバイス202に格納し、かつ、最小ステップ時間を車両B受信ID周期カウンタ221に設定する(ステップS904)。ステップS904の具体例を
図12に示す。
【0047】
図12は、
図9に示した車両B受信ID周期カウンタ221の設定例(ステップS904)を示す説明図である。まず、デコーダ101は、車両A車載ネットワーク受信ログデータ1000の先頭送受信時間301として「1.001」を抽出する(
図12中、太枠)。つぎに、デコーダ101は、抽出した先頭送受信時間301である1.001[s]に、ステップS903で設定された最小ステップ時間である10[ms]を加算して、1.011[s]を算出する。
【0048】
デコーダ101は、この算出された1.011[s]を読込み時間として記憶デバイス202に格納する。そして、デコーダ101は、車両B受信ID周期カウンタ221の周期カウンタ702のすべての値を、最小ステップ時間である10[ms]に設定する。
図17および
図21で後述するが、ECU群120のうち周期カウンタ702と一致する受信周期501のID302のデータが車両B車載ネットワーク受信ログファイル122に追加される。したがって、受信タイミングが時系列なデータ群が生成される。このため、時系列でデータを車両BのECU群120に与えることができ、再現性の向上を図ることができる。
【0049】
図9に戻り、デコーダ101は、読込み時間までの車両A車載ネットワーク受信ログデータ1000にあるエントリを逐次読み込む(ステップS905)。ステップS905の具体例1を
図13に示す。
【0050】
図13は、車両A車載ネットワーク受信ログデータ1000の読み込み例1(ステップS905)を示す説明図である。デコーダ101は、車両A車載ネットワーク受信ログデータ1000から、先頭送受信時間301である1.001[s]からステップS904で設定された読込み時間1.011[s]までの期間(1.011[s]は含まない)に存在するエントリを読み込む。
図13では、送受信時間301が「1.001」、「1.003」および「1.005」のエントリが読み込まれる。なお、送受信時間301が「1.011」および「1.013」のエントリは、次回のステップS904では読込み時間が「1.021」に設定されるため、次回のステップS905の処理で読み込まれる。
【0051】
図9に戻り、デコーダ101は、車両A車載ネットワークログファイル112において車両A車載ネットワーク受信台帳111のID302と一致し、かつ、送信/受信303が「受信」であるエントリをキーにして、車両A車載ネットワーク受信ログデータ1000を、車両A車載ネットワーク受信ログデータ1000の位置502に該当する信号名504の変数に置き換え、受信車両Bパラメータ103の該当する信号名504の車両パラメータ値801を更新する(ステップS906)。ステップS906の具体例を
図14に示す。
【0052】
図14は、車両パラメータ値801の更新例1(ステップS906)を示す説明図である。読込みデータ1400は、ステップS905で読み込まれたエントリである。デコーダ101は、読込みデータ1400を、読込みデータ1400の1Byte目の位置502を示す1Byteデータ304-1の値を、対応する信号名504の変数に置き換える。
【0053】
本例の場合、読込みデータ1400の1行目のエントリ(ID302:AAA)に対応する信号名504は、「エンジン回転数」であるため、16進数である1Byteデータ304-1の値「01」を10進数に変換し、かつファクター505(本例では「1」とする)を乗じて、変数「1」に置換する。そして、デコーダ101は、受信車両Bパラメータ103において、置換した変数「1」の信号名504である「エンジン回転数」と同一の信号名504を有するエントリの車両パラメータ値801である「0」を、置換した変数「1」に更新する。
【0054】
読込みデータ1400の2行目のエントリ(ID302:BBB)に対応する信号名504は、「車速」であるため、16進数である1Byteデータ304-1の値「10」を10進数に変換し、かつファクター505の値(本例では「1」とする)を乗じて、変数「16」に置換する。そして、デコーダ101は、受信車両Bパラメータ103において、置換した変数「16」の信号名504である「車速」と同一の信号名504を有するエントリの車両パラメータ値801である「0」を、置換した変数「16」に更新する。
【0055】
読込みデータ1400の3行目のエントリ(ID302:CCC)に対応する信号名504は、「アクセル開度」であるため、16進数である1Byteデータ304-1の値「02」を10進数に変換し、かつファクター505(本例では「1」とする)を乗じて、変数「2」に置換する。そして、デコーダ101は、受信車両Bパラメータ103において、置換した変数「2」の信号名504である「アクセル開度」と同一の信号名504を有するエントリの車両パラメータ値801である「0」を、置換した変数「2」に更新する。
【0056】
これにより、更新後の受信車両Bパラメータ103がデコーダ101からエンコーダ102に出力され、デコード処理が終了する。
【0057】
<エンコーダ102によるエンコード処理>
図15は、エンコーダ102によるエンコード処理の詳細な処理手順例を示すフローチャートである。エンコーダ102は、デコーダ101から受信車両Bパラメータ103が入力されると、エンコード処理を開始する。
【0058】
まず、エンコーダ102は、車両B車載ネットワーク受信台帳121の信号名504をキーにして、受信車両Bパラメータ103をID302と位置502とを組み合わせたデータに置換する(ステップS1501)。ステップS1501で置換されたデータを置換データと称す。ステップS1501の具体例を
図16に示す。
【0059】
図16は、置換データの生成例1を示す説明図である。エンコーダ102は、車両B車載ネットワーク受信台帳121を参照して、受信車両Bパラメータ103の信号名504に該当するID302の値を特定する。たとえば、信号名504の値「エンジン回転数」に対応するID302の値は、「CCC」である。信号名504の値「車速」に対応するID302の値は、「DDD」である。信号名504の値「アクセル開度」に対応するID302の値は、「EEE」である。
【0060】
また、エンコーダ102は、受信車両Bパラメータ103の車両パラメータ値801にファクター505(本例では「1」とする)を乗じてから、10進数から16進数に変換し、受信車両Bパラメータ103の信号名504に該当するID302に関連付ける。たとえば、エンジン回転数の車両パラメータ値801の値「1」は、ID302が「CCC」である1Byteデータ304-1の値「01」に置換される。車速の車両パラメータ値801の値「16」は、ID302が「DDD」である1Byteデータ304-1の値「10」に置換される。アクセル開度の車両パラメータ値801の値「2」は、ID302が「EEE」である1Byteデータ304-1の値「02」に置換される。これにより、置換データ1600が生成される。
【0061】
図15に戻り、エンコーダ102は、車両B受信ID周期カウンタ221内の各受信ID302の周期カウンタ702を抽出し、車両B車載ネットワーク受信台帳121の受信周期501と合致したID302のみ、車両B車載ネットワーク受信ログファイル122に逐次書き出す(ステップS1502)。
【0062】
そして、エンコーダ102は、ステップS1502で書き出したID302の車両B受信ID周期カウンタ221の周期カウンタ702を最小ステップ時間で上書きし、書き出しを行っていないID302の車両B受信ID周期カウンタ221の周期カウンタ702に最小ステップ時間を加算して更新する(ステップS1503)。ステップS1502およびステップS1503の具体例を
図17に示す。
【0063】
図17は、車両B受信ID周期カウンタ221の更新例1を示す説明図である。エンコーダ102は、車両B受信ID周期カウンタ221内の受信ID701の値「CCC」、「DDD」、「EEE」の周期カウンタ702の値「10」、「10」、「10」を抽出する。エンコーダ102は、受信ID701および周期カウンタ702の値の組み合わせが、それぞれ車両B車載ネットワーク受信台帳121のID302および受信周期501の値の組み合わせと一致するか否かを判断する。
【0064】
この場合、受信ID701の値「CCC」および周期カウンタ702の値「10」の組み合わせと、受信ID701の値「EEE」および周期カウンタ702の値「10」の組み合わせが、車両B車載ネットワーク受信台帳121のID302および受信周期501の値の組み合わせと一致する。したがって、エンコーダ102は、一致した組み合わせを、車両B車載ネットワーク受信ログファイル122に書き出す(ステップS1502)。これにより、受信時間がばらばらな信号を最小ステップ時間でまとめて変換することができる。
【0065】
また、エンコーダ102は、一致した組み合わせを、読込み時間「1.011」までの期間の先頭送受信時間301である「1.001」に関連付けて、車両B車載ネットワーク受信ログファイル122に書き出す(ステップS1502)。これにより、エンコーダ102は、車両B車載ネットワーク受信ログを時系列に記録することができる。
【0066】
また、エンコーダ102は、ステップS1502で車両B車載ネットワーク受信ログファイル122に書き出したID302を受信ID302とする車両B受信ID周期カウンタ221の周期カウンタ702の値を最小ステップ時間で上書きする。ステップS1502で車両B車載ネットワーク受信ログファイル122に書き出したID302の値は、「CCC」および「EEE」である。
【0067】
エンコーダ102は、車両B受信ID周期カウンタ221において、受信ID302の値が「CCC」および「EEE」であるエントリの周期カウンタ702の値「10」を、最小ステップ時間である「10」(ms)で上書きする。これにより、受信ID302の値が「CCC」および「EEE」であるエントリの周期カウンタ702の値は、「10」から「10」に更新される。これにより、受信ID302の値が「CCC」および「EEE」であるエントリの周期カウンタ702の値を「10」に維持することができる。
【0068】
また、エンコーダ102は、ステップS1502で車両B車載ネットワーク受信ログファイル122に書き出されていないID302を受信ID302とする車両B受信ID周期カウンタ221の周期カウンタ702の値に最小ステップ時間を加算して更新する。ステップS1502で車両B車載ネットワーク受信ログファイル122に書き出されていないID302の値は、「DDD」である。
【0069】
エンコーダ102は、車両B受信ID周期カウンタ221において、受信ID302の値が「DDD」であるエントリの周期カウンタ702の値「10」に、最小ステップ時間である「10」(ms)を加算することにより、周期カウンタ702の値「10」を更新する(ステップS1503)。これにより、受信ID302の値が「DDD」であるエントリの周期カウンタ702の値は、「10」から「20」に更新される。これにより、受信タイミングを車両A車載ネットワークログのように揃えることができ、再現性の向上を図ることができる。
【0070】
図15に戻り、エンコーダ102は、車両A車載ネットワーク受信ログデータ1000内のログがすべて処理されたか否かを判断する(ステップS1504)。車両A車載ネットワーク受信ログデータ1000内のログがすべて処理されていない場合(ステップS1504:No)、エンコーダ102は、現在の読込み時間に最小ステップ時間を加算し、読込み時間を更新して(ステップS1505)、
図9のステップS905に戻る。
【0071】
たとえば、現在の読込み時間が1.011[s]である場合、エンコーダ102は、最小ステップ時間である10[ms]を加算して、読込み時間を1.021[s]に更新し、ステップS905で、更新後の読込み時間までの車両A車載ネットワーク受信ログデータにあるエントリを逐次読み込む(ステップS905)。ステップS905の具体例2を
図18に示す。
【0072】
図18は、車両A車載ネットワーク受信ログデータの読み込み例2(ステップS905)を示す説明図である。デコーダ101は、車両A車載ネットワーク受信ログデータ1000から、更新直前の区間の最終時刻である1.011[s]から更新後の読込み時間である1.021[s]までの期間(1.021[s]は含まない)に存在するエントリを読み込む。
図18では、送受信時間301の値が「1.011」および「1.013」のエントリが読み出される。
【0073】
図19は、車両パラメータ値801の更新例2(ステップS906)を示す説明図である。読込みデータ1900は、ステップS905で読み込まれたエントリである(
図18を参照。)。デコーダ101は、読込みデータ1900を、読込みデータ1900の1Byte目の位置502を示す1Byteデータ304-1の値を、対応する信号名504の変数に置き換える。
【0074】
本例の場合、読込みデータ1900の1行目のエントリ(ID302:AAA)に対応する信号名504は、「エンジン回転数」であるため、16進数である1Byteデータ304-1の値「03」を10進数に変換し、かつファクター505(本例では「1」とする)を乗じて、変数「3」に置換する。そして、デコーダ101は、受信車両Bパラメータ103において、置換した変数「3」の信号名504である「エンジン回転数」と同一の信号名504を有するエントリの車両パラメータ値801である「1」を、置換した変数「3」に更新する。
【0075】
読込みデータ1900の2行目のエントリ(ID302:BBB)に対応する信号名504は、「車速」であるため、16進数である1Byteデータ304-1の値「20」を10進数に変換し、かつファクター505(本例では「1」とする)を乗じて、変数「32」に置換する。そして、デコーダ101は、受信車両Bパラメータ103において、置換した変数「32」の信号名504である「車速」と同一の信号名504を有するエントリの車両パラメータ値801である「16」を、置換した変数「32」に更新する。
【0076】
読込みデータ1900には、信号名504の値「アクセル開度」に対応するID302が存在しないため、受信車両Bパラメータ103の信号名504である「アクセル開度」についての車両パラメータ値801の値「2」は更新されない。これにより、更新後の受信車両Bパラメータ103がデコーダ101からエンコーダ102に出力され、デコード処理が終了する。
【0077】
エンコーダ102は、デコーダ101から受信車両Bパラメータ103が入力されると、エンコード処理を開始し、
図19の更新後の受信車両Bパラメータ103を用いてステップS1501を実行する。
【0078】
図20は、置換データの生成例2を示す説明図である。エンコーダ102は、車両B車載ネットワーク受信台帳121を参照して、受信車両Bパラメータ103の信号名504の値に該当するID302の値を特定する。たとえば、信号名504の値「エンジン回転数」に対応するID302の値は、「CCC」である。信号名504の値「車速」に対応するID302の値は、「DDD」である。信号名504の値「アクセル開度」に対応するID302の値は、「EEE」である。
【0079】
また、エンコーダ102は、受信車両Bパラメータ103の車両パラメータ値801にファクター505(本例では「1」とする)を乗じてから、10進数から16進数に変換し、受信車両Bパラメータ103の信号名504に該当するID302に関連付ける。たとえば、エンジン回転数の車両パラメータ値801の値「3」は、ID302が「CCC」である1Byteデータ304-1の値「03」に置換される。
【0080】
車速の車両パラメータ値801の値「32」は、ID302が「DDD」である1Byteデータ304-1の値「20」に置換される。アクセル開度の車両パラメータ値801の値「2」は、ID302が「EEE」である1Byteデータ304-1の値「02」に置換される。これにより、置換データ2000が生成される。
【0081】
図21は、車両B受信ID周期カウンタ221の更新例2を示す説明図である。エンコーダ102は、車両B受信ID周期カウンタ221内の受信ID701の値「CCC」、「DDD」、「EEE」の周期カウンタ702の値「10」、「20」、「10」を抽出する。
【0082】
エンコーダ102は、受信ID701および周期カウンタ702の値の組み合わせが、それぞれ車両B車載ネットワーク受信台帳121のID302および受信周期501の値の組み合わせと一致するか否かを判断する。この場合、すべて一致する。したがって、エンコーダ102は、一致した組み合わせを、最新の読込み時間「1.021」までの期間の先頭送受信時間302である「1.011」に関連付けて、車両B車載ネットワーク受信ログファイル122に書き出す(ステップS1502)。
【0083】
また、エンコーダ102は、ステップS1502で車両B車載ネットワーク受信ログファイル122に書き出したID302の値を受信ID302の値とする車両B受信ID周期カウンタ221の周期カウンタ702の値を最小ステップ時間で上書きする。ステップS1502で車両B車載ネットワーク受信ログファイル122に書き出したID302の値は、「CCC」、「DDD」および「EEE」である。
【0084】
エンコーダ102は、車両B受信ID周期カウンタ221において、受信ID302の値が「CCC」および「EEE」であるエントリの周期カウンタ702の値「10」を、最小ステップ時間である「10」(ms)で上書きする。これにより、受信ID302の値が「CCC」および「EEE」であるエントリの周期カウンタ702の値は、「10」に更新される。受信ID302の値が「DDD」であるエントリの周期カウンタ702の値「20」を、最小ステップ時間である「10」(ms)で上書きする。
【0085】
これにより、受信ID302の値が「DDD」であるエントリの周期カウンタ702の値も、「10」に更新される。したがって、つぎのステップS1502の処理では、ID302が「DDD」の周期カウンタ702と受信周期501との一致、すなわち、ステップS1503での書き込みを回避することができる。したがって、受信タイミングを車両A車載ネットワークログのように揃えることができ、再現性の向上を図ることができる。
【0086】
このように、本実施例によれば、車両AのECUに入力されたデータを、車両AにおけるECUのIDを取得することなく、信号の値および位置を適切に割り当てることで車両Bに適合する入力データに変換することができる。したがって、異なる車種A,B間で当該データの車載ネットワークログを使い回すことができるため、車種A,Bごとに車載ネットワークログを取得する必要がなく、ECU開発効率の向上を図ることができる。
【0087】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【0088】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサ201がそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0089】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(SolID302 State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
【0090】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0091】
100 変換装置
101 デコーダ
102 エンコーダ
103 パラメータ
110 ECU群
111 車載ネットワーク受信台帳
112 車載ネットワークログファイル
120 ECU群
121 車載ネットワーク受信台帳
122 車載ネットワーク受信ログファイル
221 周期カウンタ
301 送受信時間
302 ID
501 受信周期
502 位置
504 信号名
702 周期カウンタ
801 車両パラメータ値
1000 車両A車載ネットワーク受信ログデータ
1400 読込みデータ
1600 置換データ
1900 読込みデータ
2000 置換データ