(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024130868
(43)【公開日】2024-09-30
(54)【発明の名称】通信システム
(51)【国際特許分類】
H04L 43/08 20220101AFI20240920BHJP
H04L 12/28 20060101ALI20240920BHJP
【FI】
H04L43/08
H04L12/28
H04L12/28 100A
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023040813
(22)【出願日】2023-03-15
(71)【出願人】
【識別番号】000005348
【氏名又は名称】株式会社SUBARU
(74)【代理人】
【識別番号】110000936
【氏名又は名称】弁理士法人青海国際特許事務所
(72)【発明者】
【氏名】名倉 立統
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033AA05
5K033BA06
5K033DB16
5K033EA07
(57)【要約】
【課題】利便性の低下を抑制する。
【解決手段】通信ツールプロセッサは、第1所定データと第1パディング値とを含む所定情報を、対象ユニットに送信すること、を含む処理を実行する。対象ユニットプロセッサは、受信した所定情報に含まれる第1パディング値が、対象ユニットプロセッサ内で予め設定されている特定パディング値と一致するか否かを判定することと、第1パディング値が、特定パディング値と一致しないと判定された場合に、通信ツールに異常情報を送信することと、を含む処理を実行する。通信ツールプロセッサは、異常情報を受信した場合に、第1所定データと、第1パディング値と異なる第2パディング値とを含む所定情報を、対象ユニットに送信すること、を含む処理を実行する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
1つまたは複数の対象ユニットプロセッサと、前記対象ユニットプロセッサに接続される1つまたは複数の対象ユニットメモリと、を有し、車両に設けられる対象ユニットと、
1つまたは複数の通信ツールプロセッサと、前記通信ツールプロセッサに接続される1つまたは複数の通信ツールメモリと、を有し、前記対象ユニットに対して双方向に通信可能に接続される通信ツールと
を備え、
前記通信ツールプロセッサは、
第1所定データと第1パディング値とを含む所定情報を、前記対象ユニットに送信すること、
を含む処理を実行し、
前記対象ユニットプロセッサは、
受信した前記所定情報に含まれる前記第1パディング値が、前記対象ユニットプロセッサ内で予め設定されている特定パディング値と一致するか否かを判定することと、
前記第1パディング値が、前記特定パディング値と一致しないと判定された場合に、前記通信ツールに異常情報を送信することと、
を含む処理を実行し、
前記通信ツールプロセッサは、
前記異常情報を受信した場合に、前記第1所定データと、前記第1パディング値と異なる第2パディング値とを含む前記所定情報を、前記対象ユニットに送信すること、
を含む処理を実行する、通信システム。
【請求項2】
前記通信ツールプロセッサは、
前記異常情報を受信しなくなるまで、前記通信ツールプロセッサ内で予め設けられた複数のパディング値候補の中から選択した、いずれかのパディング値を含む前記所定情報を、前記対象ユニットに繰り返し送信すること、
を含む処理を実行する請求項1に記載の通信システム。
【請求項3】
前記通信ツールプロセッサは、
予め設定された優先順序にしたがって、前記パディング値候補の中からいずれかのパディング値を選択すること、
を含む処理を実行する請求項2に記載の通信システム。
【請求項4】
前記通信ツールプロセッサは、
前記異常情報を受信しなかった特別パディング値を記憶部に記憶することと、
第2所定データと、前記記憶部に記憶された前記特別パディング値とを含む前記所定情報を前記対象ユニットに送信することと、
を含む処理を実行する請求項2または3に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システムに関する。
【背景技術】
【0002】
特許文献1には、外部装置を車両に接続して、車両に設けられる各種電子機器のプログラムを更新したり、車両に設けられる各種電子機器の故障を診断する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、車両に接続される外部装置から、車両に搭載された各種電子機器に対して所望の通信データの送信を行う場合、外部装置は、当該通信データを、予め定められたブロックに区切って送信する場合がある。
【0005】
上記の通信データは、種別によってそのデータの大きさが可変である。したがって、最後に送信される1ブロックは、端数分を含むことが多い。そのため、最後に送信される1ブロック内に空き領域が出来てしまう。
【0006】
外部装置は、この空き領域に対して、通常、意味のない数値を埋めるパディング処理を実行して通信データを送信する。パディング処理の数値は、通常、通信網の中で予め決められている。
【0007】
しかしながら、送信側(車両に接続される外部装置)と受信側(車両に搭載された各種電子機器)との間で、設計仕様、設計者、設計時期の違い等に起因してパディングの数値に認識違い(不整合)が生じうる。この場合、受信側(車両に搭載された各種電子機器)は、通信不良と判定し、通信を停止または中断するおそれがある。このようにして通信が停止または中断してしまうと、所望の機能のアップデートや、故障診断が実施できなくなってしまい、ユーザの利便性が低下してしまうおそれがある。
【0008】
本発明は、利便性の低下を抑制することが可能となる通信システムを提供することを目的としている。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明の一実施形態に係る通信システムは、
1つまたは複数の対象ユニットプロセッサと、前記対象ユニットプロセッサに接続される1つまたは複数の対象ユニットメモリと、を有し、車両に設けられる対象ユニットと、
1つまたは複数の通信ツールプロセッサと、前記通信ツールプロセッサに接続される1つまたは複数の通信ツールメモリと、を有し、前記対象ユニットに対して双方向に通信可能に接続される通信ツールと
を備え、
前記通信ツールプロセッサは、
第1所定データと第1パディング値とを含む所定情報を、前記対象ユニットに送信すること、
を含む処理を実行し、
前記対象ユニットプロセッサは、
受信した前記所定情報に含まれる前記第1パディング値が、前記対象ユニットプロセッサ内で予め設定されている特定パディング値と一致するか否かを判定することと、
前記第1パディング値が、前記特定パディング値と一致しないと判定された場合に、前記通信ツールに異常情報を送信することと、
を含む処理を実行し、
前記通信ツールプロセッサは、
前記異常情報を受信した場合に、前記第1所定データと、前記第1パディング値と異なる第2パディング値とを含む前記所定情報を、前記対象ユニットに送信すること、
を含む処理を実行する。
【発明の効果】
【0010】
本発明によれば、利便性の低下を抑制することが可能となる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、本発明の一実施形態に係る通信システムを説明するための機能ブロック図である。
【
図2】
図2は、本発明の一実施形態に係る所定情報を説明するための図である。
【
図3】
図3は、本発明の一実施形態に係るパディング値候補優先順位テーブルを説明するための図である。
【
図4】
図4は、本発明の一実施形態に係る通信ツール側処理を示すフローチャートである。
【
図5】
図5は、本発明の一実施形態に係る対象ユニット側処理を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下に添付図面を参照しながら、本発明の実施形態について詳細に説明する。かかる実施形態に示す具体的な寸法、材料、数値等は、発明の理解を容易にするための例示に過ぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
【0013】
図1は、本実施形態に係る通信システム100を説明するための機能ブロック図である。
図1に示すように、通信システム100は、通信ツール200と、車両300とを備える。なお、車両300は、例えば、走行駆動源としてエンジンとモータとを備えるハイブリッド車である。
【0014】
車両300は、複数の対象ユニット(ECU-A310a、ECU-B310b、ECU-C310c)を備える。以下、ECU-A310a、ECU-B310b、ECU-C310cのいずれか1の対象ユニットを、抽象的に対象ユニット310と言う場合がある。これらの対象ユニット310は、それぞれ双方向に通信可能に接続されている。なお、本実施形態では、対象ユニット310として、ECU-A310a、ECU-B310b、ECU-C310cの3つが設けられている場合について示すが、対象ユニット310の数はこれに限定されるものではない。すなわち、対象ユニット310は、1個以上であれば何個でもよい。
【0015】
なお、これらの対象ユニット310は、車両300に搭載される各種電子機器の制御ユニットなどであってよい。具体的には、対象ユニット310は、例えば、エンジンの制御を行うエンジン制御部である。また、対象ユニット310は、例えば、モータの制御を行うモータ制御部である。また、対象ユニット310は、例えば、バッテリの制御を行うバッテリ制御部である。また、対象ユニット310は、例えば、車両300の外部のデータセンタと無線により通信を行う無線通信部である。また、対象ユニット310は、例えば、カーナビゲーションシステムの制御を行うカーナビゲーションシステム制御部である。また、対象ユニット310は、例えば、車両300の自動運転を制御する自動運転制御部等である。
【0016】
図1に示すように、通信ツール200は、通信ツール制御部220と、通信ツール記憶部240とを有する。なお、通信ツール200は、例えば、車両300の故障を診断するための故障診断装置等の専用端末である。また、通信ツール200は、例えば、車両300の所望の機能をアップデートするためのリプログラミング装置等の専用端末である。また、通信ツール200は、例えば、パーソナルコンピュータ等である。
【0017】
通信ツール制御部220は、1つまたは複数の通信ツールプロセッサ222と、通信ツールプロセッサ222に接続される1つまたは複数の通信ツールメモリ224と、を有する。通信ツールプロセッサ222は、例えば、CPU(Central Processing Unit)を含む。通信ツールメモリ224は、例えば、ROM(Read Only Memory)およびRAM(Random Access Memory)などを含む。ROMは、CPUが使用するプログラムおよび演算パラメータ等を記憶する記憶素子である。RAMは、CPUにより実行される処理に用いられる変数およびパラメータ等のデータを一時記憶する記憶素子である。
【0018】
また、通信ツール記憶部240は、ROMおよびRAMなどを含み、通信ツールメモリ224と実質的に同じ機能を有してもよい。また、通信ツール記憶部240には、パディング値テーブルが記憶されている。
【0019】
後述するように、通信ツール200は、複数の対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)に通信データを送信する。通信データは、種別によってそのデータの大きさが可変である。したがって、通信データにおいて最後に送信される1ブロックは、端数分を含むことがある。そうすると、最後に送信される1ブロック内に空き領域が出来てしまう。通信ツール200は、この空き領域に対して、通常、意味のない数値を埋めるパディング処理を実行する。ここでは、パディング処理において付される数値をパディング値という。通信ツール記憶部240に記憶されるパディング値テーブルには、それぞれの対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)に対応するパディング値が予め設定されている。なお、それぞれの対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)に対応するパディング値は、異なっていてもよいし、同一であってもよい。
【0020】
また、
図1に示すように、ECU-A310aは、ECU-A制御部320aと、ECU-A記憶部340aとを有する。同様に、ECU-B310bは、ECU-B制御部320bと、ECU-B記憶部340bとを有する。また、ECU-C310cは、ECU-C制御部320cと、ECU-C記憶部340cとを有する。
【0021】
ECU-A制御部320aは、1つまたは複数のECU-Aプロセッサ322aと、ECU-Aプロセッサ322aに接続される1つまたは複数のECU-Aメモリ324aと、を有する。同様に、ECU-B制御部320bは、1つまたは複数のECU-Bプロセッサ322bと、ECU-Bプロセッサ322bに接続される1つまたは複数のECU-Bメモリ324bと、を有する。また、ECU-C制御部320cは、1つまたは複数のECU-Cプロセッサ322cと、ECU-Cプロセッサ322cに接続される1つまたは複数のECU-Cメモリ324cと、を有する。
【0022】
ECU-Aプロセッサ322a、ECU-Bプロセッサ322b、および、ECU-Cプロセッサ322cは、例えば、CPUを含む。
【0023】
また、ECU-Aメモリ324a、ECU-Bメモリ324b、および、ECU-Cメモリ324cは、例えば、ROMおよびRAMなどを含む。
【0024】
また、ECU-A記憶部340a、ECU-B記憶部340b、および、ECU-C記憶部340cは、ROMおよびRAMなどを含む。また、ECU-A記憶部340a、ECU-B記憶部340b、および、ECU-C記憶部340cは、ECU-Aメモリ324a、ECU-Bメモリ324b、および、ECU-Cメモリ324cと実質的に同じ機能を有してもよい。また、それぞれの記憶部(ECU-A記憶部340a、ECU-B記憶部340b、ECU-C記憶部340c)は、対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)毎に予め設定されている特定パディング値が記憶されている。なお、それぞれの対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)の特定パディング値は、異なっていてもよいし、同一であってもよい。
【0025】
そして、
図1に示すように、通信ツール200は、車両300に接続される。そして、通信ツール200は、複数の対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)に対してそれぞれ双方向に通信可能に接続される。なお、通信ツール200は、有線で車両300に接続されてもよい。あるいは、通信ツール200は、無線で車両300に接続されていてもよい。
【0026】
通信ツール200と、複数の対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)とは、例えばCAN(Controller Area Network)400により接続され、通信を行う。また、ECU-Aプロセッサ322a、ECU-Bプロセッサ322b、および、ECU-Cプロセッサ322cは、例えばCAN400により接続され、通信を行う。
【0027】
図2は、本発明の一実施形態に係る所定情報を説明するための図である。以下では、通信ツール200が車両300に接続され、いずれかの対象ユニット310のプログラムの更新が実行される場合や、故障の診断を行う場合を示す。この場合、通信ツール200は、対象ユニット310に対して所望の通信データの送信を実行する。このとき、
図2(a)に示すように、通信ツール200は、所定情報の生成を行う。所定情報は、不図示のヘッダー情報と、第1所定データと、第1パディング値と、を含む。
【0028】
第1所定データは、通信ツール200からECU-A310aに送信する所望の通信データについて、32バイトを1ブロック=8バイトとなるように分割されたものである。
【0029】
そして、通信ツール200は、最後に送信される1ブロック内の空き領域を、第1パディング値を使用して埋めるパディング処理を実行する。このとき、通信ツール200は、通信ツール記憶部240に記憶されたパディング値テーブルを参照して、通信対象の対象ユニット310に対応するパディング値を第1パディング値として用いて上記のパディング処理を実行する。
【0030】
また、不図示のヘッダー情報には、総データの長さである総データ長(本実施形態では、32バイトで固定)を示す総データ長情報が含まれる。また、ヘッダー情報には、有効データの長さである有効データ長(
図2(a)の場合は、27バイト)を示す有効データ長情報が含まれる。
【0031】
そして、通信ツール200は、生成した所定情報を、通信対象の対象ユニット310へと送信する。このとき、通信ツール200は、所定情報の送信後、予め設定された所定時間が経過するまでの間、待機する。
【0032】
対象ユニット310は、通信ツール200から所定情報を受信した場合、受信した所定情報に含まれるパディング値の確認を行う。具体的には、対象ユニット310は、所定情報に含まれるヘッダー情報を参照して、総データ長情報および有効データ長情報を確認する。そして、対象ユニット310は、総データ長情報および有効データ長情報に基づいて、受信した所定情報のうち総データと有効データの差分に相当する領域に含まれるパディング値を特定する。なお、総データの一番最後の数値をパディング値とみなし、パディング値の連続性を考慮して、パディング値が途切れた箇所以前を有効データとみなしてもよい。すなわち、ヘッダー情報に含まれる有効データ長情報を用いずに、パディング値や有効データ長を特定することとしてもよい。
【0033】
そして、対象ユニット310は、上記のようにして確認したパディング値が、自身の記憶部に記憶された特定パディング値と異なるか否かの判定を行う。その結果、対象ユニット310は、自身の記憶部に記憶された特定パディング値と、上記のようにして確認したパディング値と異なる場合、通信ツール200に対して、所定情報に含まれるパディング値が正しくないことを示す異常情報の送信を行う。
【0034】
そして、所定情報の送信後、予め設定された所定時間が経過すると、通信ツール200は、異常情報を対象ユニット310から受信している否かの判定を行う。その結果、異常情報を受信している場合には、通信ツール200は、通信ツール記憶部240に記憶されたパディング値テーブルに設定されているパディング値が誤っていると判断する。そして、
図2(b)に示すように、通信ツール200は、パディング値を第1パディング値と異なる第2パディング値に変更して、上記のパディング処理を実行し、所定情報の再生成を行う。すなわち、この場合、再生成された所定情報には、不図示のヘッダー情報と、第1所定データと、第2パディング値と、が含まれることとなる。
【0035】
通信ツール200は、再度、異常情報を受信すると、パディング値を異ならせて、再度、通信データを送信するといった動作を繰り返す。そして、異常情報を対象ユニット310から受信しなくなるまで、パディング値を総当たりして、すなわち、前回まで送信していない値を順次参照して、正しい値の検出を行う。これにより、所望の機能のアップデートや、故障診断が実施できなくなってしまい、ユーザの利便性が低下してしまうおそれを抑制することが可能となる。
【0036】
なお、パディング値は、1バイトで構成されるため、総数は256種類となる。また、パディング値を設定しない場合(パディング値なし)も含めると、総当たりの総数は、257種類となる。なお、パディング値を設定しない場合には、ヘッダー情報に含まれる有効データ長情報が示すデータの長さと、総データ長情報が示すデータの長さとが一致することとなる。
【0037】
このとき、無秩序に総当たりを行うと、正しいパディング値が検出されるまでの時間が長期化してしまう場合がある。そこで、本実施形態では、異常情報を対象ユニット310から受信しなくなるまで、パディング値を総当たりする際の、優先順序が規定されたパディング値候補優先順位テーブルが通信ツール200の通信ツール記憶部240に記憶されている。ここで、優先順位は、パディング値として設定され得る可能性が高い順位、または、パディング値として利用頻度が高い順位を示す。
【0038】
図3は、本発明の一実施形態に係るパディング値候補優先順位テーブルを説明するための図である。
図3に示すように、パディング値候補優先順位テーブルには、パディング値を総当たりする際に用いるパディング値の候補の値(以下、パディング値候補と呼ぶ)の優先順序が規定されている。
【0039】
例えば、「0」と「F」は4ビットの連続性を有しており、「5」と「A」は0101や1010という識別性を有している。そのため、パディング値には、一般的に、「0」、「5」、「A」、「F」といった数値が用いられることが多い。そこで、パディング値候補優先順位テーブルでは、これらの値を組み合わせたパディング値候補の優先順位が高く設定されている。すなわち、上記したように、「0」、「5」、「A」、「F」の使用頻度が高いことが想定されるため、「0」、「5」、「A」、「F」の組み合わせの使用頻度も高いことが想定される。
【0040】
このようにパディング値候補の優先順位を設定することで、正しいパディング値が検出されるまでの時間を短縮することが可能となる。ただし、
図3に示すパディング値候補優先順位テーブルはあくまで一例であり、これに限定されるものではない。
【0041】
例えば、「00」、「55」、「AA」、「FF」といったゾロ目(同数)のパディング値候補の優先順位が高くなるように設定されてもよい。あるいは、「00」、「01」、「02」、…といった昇順で、パディング値候補の優先順位が設定されてもよい。あるいは、「FF」、「FE」、「FD」、…といった降順で、パディング値候補の優先順位が設定されてもよい。
【0042】
そして、通信ツール200は、異常情報が対象ユニット310から受信しなかったパディング値候補を、特別パディング値として通信ツール記憶部240に記憶する。
【0043】
このようにすることで、正しいパディング値を自動的に総当たりすることが可能となるため、ユーザの利便性の向上を図ることが可能となる。また、パディング値として設定され得る可能性が高い順にパディング値候補の優先順序を設定すれば、パディング値を自動的に総当たりする際の試行回数を少なくすることが可能となる。これにより、ユーザの利便性の向上を図ることが可能となる。また、通信に係る処理負荷の軽減を図ることが可能となる。
【0044】
そして、通信ツール200は、ヘッダー情報と、第2所定データと、通信ツール記憶部240に記憶した特別パディング値と、を含む次の所定情報を生成し、当該生成した所定情報を通信対象の対象ユニット310へと送信する。
【0045】
以降、通信ツール200は、所望の通信データの全ての送信を完了するまで、特別パディング値を用いた所定情報の生成、および、当該生成した所定情報の対象ユニット310への送信を繰り返し実行する。
【0046】
このようにすることで、異常情報を受信しなくなった特別パディング値を用いて、次回以降の所定情報の送信を行うことが可能となり、ユーザの利便性の向上を図ることが可能となる。
【0047】
なお、最初に所定情報の送信を行ってから所定時間が経過するまでの間に、異常情報を対象ユニット310から受信しなかった場合には、通信ツール200は、通信ツール記憶部240に記憶されたパディング値テーブルに設定されているパディング値が正しいと判断する。この場合、通信ツール200は、上記した第1パディング値を、特別パディング値として記憶することとなる。以下では、通信システム100が実行する処理について説明する。
【0048】
図4は、本発明の一実施形態に係る通信ツール側処理を示すフローチャートである。なお、以下で説明する処理を含む各種処理は、通信ツール200の通信ツールプロセッサ222によって実行され得る。詳細には、通信ツール200の通信ツールメモリ224に記憶されているプログラムを通信ツールプロセッサ222が実行することにより、各種処理が実行される。
【0049】
通信ツール側処理は、通信ツール200が車両300に接続された場合に実行される。具体的には、例えば、いずれかの対象ユニット310のプログラムの更新が実行される場合や、故障の診断を行う場合において、通信ツール200が、対象ユニット310に対して所望の通信データの送信を行う際に、通信ツール側処理が実行される。なお、以下では、一例として、通信ツール200と、ECU-A310aとの間で通信が行われる場合の通信ツール側処理について記載する。
【0050】
図4に示すように、通信ツール200は、通信ツール記憶部240に記憶されたパディング値テーブルを参照して、通信対象のECU-A310aに対応するパディング値を決定する(ステップS1-1)。上記したように、パディング値テーブルでは、各対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)毎に、予め所定の第1パディング値が定められている。
【0051】
次いで、通信ツール200は、ヘッダー情報と、第1所定データと、第1パディング値と、を含む送信用の所定情報を生成する(ステップS1-2)。第1所定データは、通信ツール200からECU-A310aに送信する所望の通信データについて、32バイトを1ブロック=8バイトとなるように分割されたものである。そして、通信ツール200は、最後に送信される1ブロック内の空き領域を、上記ステップS1-1で決定されたパディング値を使用して埋めるパディング処理を実行する。また、ヘッダー情報には、総データ長の長さを示す総データ長情報と、有効データ長の長さを示す有効データ長情報とが含まれる。
【0052】
そして、通信ツール200は、上記ステップS1-2で生成した所定情報を、通信対象の対象ユニット310であるECU-A310aへと送信する(ステップS1-3)。
【0053】
また、通信ツール200は、所定情報の送信後、予め設定された所定時間が経過するまでの間、待機する(ステップS1-4)。
【0054】
そして、所定情報の送信後、予め設定された所定時間が経過すると(ステップS1-4のYES)、通信ツール200は、所定情報に含まれるパディング値が正しくないことを示す異常情報をECU-A310aから受信している否かを判定する(ステップS1-5)。
【0055】
その結果、異常情報を受信している場合(ステップS1-5のYES)には、通信ツール200は、異常情報を受信した回数を示す異常検出回数カウンタの値をインクリメントする(ステップS1-6)。
【0056】
通信ツール200は、
図2に示すパディング値候補優先順位テーブルを参照して、異常検出回数カウンタの値に基づいて、パディング値候補を選択する(ステップS1-7)。例えば、通信ツール200は、異常検出回数カウンタの値が1であれば、優先順位が1に設定されるパディング値候補を選択し、異常検出回数カウンタの値が2であれば、優先順位が2に設定されるパディング値候補を選択する。
【0057】
そして、ステップS1-2に移行し、通信ツール200は、ヘッダー情報と、第1所定データと、第2パディング値と、を含む送信用の所定情報を再生成する(ステップS1-2)。通信ツール200は、この再生成した所定情報をECU-A310aへと再送信する(ステップS1-3)。このとき、第2パディング値には、上記ステップS1-7で選択されたパディング値候補を使用する。
【0058】
そして、通信ツール200は、以降、異常情報をECU-A310aから受信しなくなるまで、上記ステップS1-2~ステップS1-7の処理を繰り返し実行する。
【0059】
そして、所定情報の送信後、予め設定された所定時間が経過し(ステップS1-4のYES)、異常情報を受信していない場合(ステップS1-5のNO)には、通信ツール200は、異常検出回数カウンタの値のクリアを行う(ステップS1-8)。
【0060】
また、通信ツール200は、異常情報をECU-A310aから受信しなかったパディング値候補を、特別パディング値として通信ツール記憶部240に記憶する(ステップS1-9)。
【0061】
そして、通信ツール200は、上記ステップS1-9で記憶された特別パディング値を用いて、ヘッダー情報と、第2所定データと、特別パディング値と、を含む次の所定情報を生成する(ステップS1-10)。
【0062】
そして、通信ツール200は、上記ステップS1-11で生成した所定情報を、通信対象のECU-A310aへと送信する(ステップS1-11)。
【0063】
そして、通信ツール200は、以降、所望の通信データの全ての送信を完了するまで、上記ステップS1-10~ステップS1-12の処理を繰り返し実行する。
【0064】
そして、所望の通信データの全ての送信を完了すると(ステップS1-12のYES)、通信ツール200は、当該通信ツール側処理を終了する。
【0065】
図5は、本発明の一実施形態に係る対象ユニット側処理を示すフローチャートである。なお、以下で説明する処理を含む各種処理は、対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)の各プロセッサ(ECU-Aプロセッサ322a、ECU-Bプロセッサ322b、ECU-Cプロセッサ322c)によって実行され得る。詳細には、各メモリ(ECU-Aメモリ324a、ECU-Bメモリ324b、ECU-Cメモリ324c)に記憶されているプログラムを各プロセッサ(ECU-Aプロセッサ322a、ECU-Bプロセッサ322b、ECU-Cプロセッサ322c)が実行することにより、各種処理が実行される。なお、本実施形態では、対象ユニット側処理は、所定の時間間隔毎に生じる割込によって実行される。
【0066】
図5に示すように、ECU-A310aは、通信ツール200から所定情報を受信したか否かを判定する(ステップT1-1)。その結果、通信ツール200から所定情報を受信していない場合(ステップT1-1のNO)、ECU-A310aは、当該対象ユニット側処理を終了する。
【0067】
また、通信ツール200から所定情報を受信した場合(ステップT1-1のYES)、ECU-A310aは、受信した所定情報に含まれるパディング値を確認する(ステップT1-2)。具体的には、ECU-A310aは、所定情報に含まれるヘッダー情報を参照して、総データ長情報および有効データ長情報を確認する。そして、ECU-A310aは、総データ長情報および有効データ長情報に基づいて、受信した所定情報のうち総データと有効データの差分に相当する領域に含まれるパディング値を特定する。なお、ECU-A310aは、総データの一番最後の数値をパディング値とみなし、パディング値の連続性を考慮して、パディング値が途切れた箇所以前を有効データとみなしてもよい。すなわち、ECU-A310aは、ヘッダー情報に含まれる有効データ長情報を用いずに、パディング値や有効データ長を特定してもよい。
【0068】
そして、ECU-A310aは、上記ステップT1-2で確認したパディング値が、ECU-A記憶部340aに記憶された特定パディング値と異なるか否かの判定を行う(ステップT1-3)。その結果、上記ステップT1-2で確認したパディング値が、ECU-A記憶部340aに記憶された特定パディング値と異なる場合(ステップT1-3のYES)、ECU-A310aは、通信ツール200に対して異常情報を送信し、当該対象ユニット側処理を終了する。
【0069】
また、上記ステップT1-2で確認したパディング値が、ECU-A記憶部340aに記憶された特定パディング値と一致する場合(ステップT1-3のNO)、ECU-A310aは、上記ステップT1-1において受信した所定情報をECU-A記憶部340aに記憶し、当該対象ユニット側処理を終了する。
【0070】
上記のように、本実施形態の通信システム100は、1つまたは複数の対象ユニットプロセッサ(ECU-Aプロセッサ322a、ECU-Bプロセッサ322b、ECU-Cプロセッサ322c)と、対象ユニットプロセッサ(ECU-Aプロセッサ322a、ECU-Bプロセッサ322b、ECU-Cプロセッサ322c)に接続される1つまたは複数の対象ユニットメモリ(ECU-Aメモリ324a、ECU-Bメモリ324b、ECU-Cメモリ324c)と、を有し、車両300に設けられる対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)を備える。
【0071】
また、通信システム100は、1つまたは複数の通信ツールプロセッサ222と、通信ツールプロセッサ222に接続される1つまたは複数の通信ツールメモリ224と、を有し、対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)に対して双方向に通信可能に接続される通信ツール200を備える。
【0072】
通信ツールプロセッサ222は、第1所定データと第1パディング値とを含む所定情報を、対象ユニット310に送信すること(上記実施形態では一例として、ステップS1-1~ステップS1-3)、を含む処理を実行する。
【0073】
対象ユニットプロセッサ(ECU-Aプロセッサ322a、ECU-Bプロセッサ322b、ECU-Cプロセッサ322c)は、受信した所定情報に含まれる第1パディング値が、対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)内で予め設定されている特定パディング値と一致するか否かを判定すること(上記実施形態では一例として、ステップT1-2、ステップT1-3)を含む処理を実行する。
【0074】
対象ユニットプロセッサ(ECU-Aプロセッサ322a、ECU-Bプロセッサ322b、ECU-Cプロセッサ322c)は、第1パディング値が、特定パディング値と一致しないと判定された場合に、通信ツール200に異常情報を送信すること(上記実施形態では一例として、ステップT1-4)を含む処理を実行する。
【0075】
通信ツールプロセッサ222は、異常情報を受信した場合に、第1所定データと、第1パディング値と異なる第2パディング値と、を含む所定情報を、対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)に送信すること(上記実施形態では一例として、ステップS1-5~ステップS1-7、ステップS1-2~ステップS1-3)、を含む処理を実行する。
【0076】
上述したように、送信側の通信ツール200と受信側の対象ユニット310(ECU-A310a、ECU-B310b、ECU-C310c)との間では、設計仕様、設計者、設計時期の違い等に起因してパディングの数値に認識違い(不整合)が生じうる。このような本実施形態の通信システム100では、このような場合が生じたとしても、通信が停止または中断してしまうおそれを低減することが可能となる。これにより、本実施形態の通信システム100では、所望の機能のアップデートや、故障診断が実施できなくなってしまい、ユーザの利便性が低下してしまうおそれを抑制することが可能となる。
【0077】
また、通信ツールプロセッサ222は、異常情報を受信しなくなるまで、第1所定データと、予め設けられた複数のパディング値候補の中から選択した、いずれかのパディング値と、を含む所定情報を、対象ユニット310に繰り返し送信すること(上記実施形態では一例として、ステップS1-5~ステップS1-7、ステップS1-2~ステップS1-3)、を含む処理を実行してもよい。
【0078】
このようにすることで、例えば、パディング値を自動的に総当たりすることが可能となるため、ユーザの利便性の向上を図ることが可能となる。
【0079】
また、通信ツールプロセッサ222は、予め設定された優先順序にしたがって、パディング値候補の中からいずれかのパディング値を選択すること(上記実施形態では一例として、ステップS1-7)、を含む処理を実行してもよい。
【0080】
このようにすることで、例えば、パディング値として設定され得る可能性が高い順にパディング値候補の優先順序を設定すれば、パディング値を自動的に総当たりする際の試行回数を少なくすることが可能となる。これにより、本実施形態の通信システム100では、ユーザの利便性の向上を図ることが可能となる。また、本実施形態の通信システム100では、通信に係る処理負荷の軽減を図ることが可能となる。
【0081】
また、通信ツールプロセッサ222は、異常情報を受信しなくなった特別パディング値を記憶部に記憶すること(上記実施形態では一例として、ステップS1-9)を含む処理を実行してもよい。
【0082】
また、通信ツールプロセッサ222は、第2所定データと、記憶部に記憶された特別パディング値と、を含む所定情報を対象ユニット310に送信すること(上記実施形態では一例として、ステップS1-10~ステップS1-11)を含む処理を実行してもよい。
【0083】
このようにすることで、異常情報を受信しなくなった特別パディング値を用いて、次回以降の所定情報の送信を行うことが可能となり、ユーザの利便性の向上を図ることが可能となる。
【0084】
以上、添付図面を参照しながら本発明の実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【0085】
なお、上記実施形態では、車両300がハイブリッド方式の場合について説明したが、本発明はこれに限定されるものではない。本発明は、ガソリン車、電気自動車(EV)、プラグインハイブリッド車(PHEV)、非プラグインハイブリッド車(ハイブリッド車)等、様々な車種に適用することが可能である。
【0086】
また、上記実施形態では、通信ツール200が、車両300に対して接続される例について示したが、本発明はこの例に限定されるものではない。すなわち、上記実施形態において示した通信ツール200の機能を有するユニットを車両300に内蔵することとしてもよい。
【0087】
なお、上述した本実施形態に係る通信システム100による一連の処理は、ソフトウェア、ハードウェア、または、ソフトウェアとハードウェアとの組合せのうちいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部または外部に設けられる非一時的な記憶媒体(non-transitory media)に予め格納される。そして、プログラムは、例えば、非一時的な記憶媒体(例えば、ROM)から一時的な記憶媒体(例えば、RAM)に読み出され、CPUなどのプロセッサにより実行される。
【0088】
また、上述した実施形態によれば、上記通信システム100の各機能の処理を実行するためのプログラムを提供することができる。さらに、当該プログラムが格納された、コンピュータにより読み取り可能な非一時的な記録媒体を提供することもできる。非一時的な記録媒体は、例えば、光ディスク、磁気ディスク、光磁気ディスク等のディスク型記録媒体であってもよいし、または、フラッシュメモリ、USBメモリ等の半導体メモリであってもよい。
【符号の説明】
【0089】
100 通信システム
200 通信ツール
222 通信ツールプロセッサ
224 通信ツールメモリ
300 車両
310 対象ユニット
310a ECU-A(対象ユニット)
310b ECU-B(対象ユニット)
310c ECU-C(対象ユニット)
322a ECU-Aプロセッサ(対象ユニットプロセッサ)
322b ECU-Bプロセッサ(対象ユニットプロセッサ)
322c ECU-Cプロセッサ(対象ユニットプロセッサ)
324a ECU-Aメモリ(対象ユニットメモリ)
324b ECU-Bメモリ(対象ユニットメモリ)
324c ECU-Cメモリ(対象ユニットメモリ)