IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ自動車株式会社の特許一覧

<>
  • 特許-情報処理装置、及び、情報処理方法 図1
  • 特許-情報処理装置、及び、情報処理方法 図2
  • 特許-情報処理装置、及び、情報処理方法 図3
  • 特許-情報処理装置、及び、情報処理方法 図4
  • 特許-情報処理装置、及び、情報処理方法 図5
  • 特許-情報処理装置、及び、情報処理方法 図6
  • 特許-情報処理装置、及び、情報処理方法 図7
  • 特許-情報処理装置、及び、情報処理方法 図8
  • 特許-情報処理装置、及び、情報処理方法 図9
  • 特許-情報処理装置、及び、情報処理方法 図10
  • 特許-情報処理装置、及び、情報処理方法 図11
  • 特許-情報処理装置、及び、情報処理方法 図12
  • 特許-情報処理装置、及び、情報処理方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-07-22
(45)【発行日】2025-07-30
(54)【発明の名称】情報処理装置、及び、情報処理方法
(51)【国際特許分類】
   H03M 7/30 20060101AFI20250723BHJP
【FI】
H03M7/30 Z
【請求項の数】 16
(21)【出願番号】P 2022042332
(22)【出願日】2022-03-17
(65)【公開番号】P2023136580
(43)【公開日】2023-09-29
【審査請求日】2024-04-11
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】根山 亮
【審査官】原田 聖子
(56)【参考文献】
【文献】特開2007-221280(JP,A)
【文献】特開2012-235289(JP,A)
【文献】特開2007-214813(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 7/30
(57)【特許請求の範囲】
【請求項1】
第1の時間長の間において受信された複数のメッセージそれぞれに含まれる第1の情報を種別で分類して、1又は複数の第1の情報群を作成し、
前記1又は複数の第1の情報群を第1の圧縮方法で圧縮する、
制御部、
を備え
前記制御部は、
前記1又は複数の第1の情報群それぞれについて、メッセージの受信時刻を示す時間情報の複数を、第1の情報群に含まれる1又は複数の前記第1の情報の並びに対応させて並べて時間情報群を作成し、前記第1の情報群に含め、
前記第1の時間長の間には、連続する所定数の、第2の時間長の時間窓が含まれており、
前記時間情報は、メッセージが受信された第1の時間窓の識別情報と、前記第1の時間窓の開始時刻からの前記メッセージの受信時刻の差分時間長と、を含み、
前記制御部は、前記時間情報群として、第1の情報群に含まれる1又は複数の前記第1の情報それぞれに対応する、第1の時間窓の識別情報を含む第1の時間情報群と、前記差分時間長を含む第2の時間情報群と、を作成する、情報処理装置。
【請求項2】
前記制御部は、
前記1又は複数の第1の情報群それぞれにおいて、第1の情報群に含まれている1又は複数の前記第1の情報を受信順に並べて連続させて列にする、
請求項1に記載の情報処理装置。
【請求項3】
前記制御部は、
前記第1の情報を、前記第1の圧縮方法における圧縮の移動窓のサイズ単位のサイズになるように加工して、前記列にする、
請求項2に記載の情報処理装置。
【請求項4】
前記制御部は、
電文における前記1又は複数の第1の情報群それぞれの位置を示す情報を含むインデックスを生成し、
圧縮された前記1又は複数の第1の情報群とともに前記インデックスを送信する、
請求項1から3のいずれか一項に記載の情報処理装置。
【請求項5】
前記第1の情報は、1又は複数の第2の情報を含み、
前記制御部は、前記1又は複数の第1の情報群それぞれにおいて、第1の情報群に含まれる1又は複数の前記第1の情報に含まれる1又は複数の第2の情報を種別で分類して、1又は複数の第2の情報群を作成する、
請求項1に記載の情報処理装置。
【請求項6】
前記制御部は、前記1又は複数の第2の情報群それぞれにおいて、第2の情報群に含まれる1又は複数の第2の情報を、対応する第1の情報の受信順に並べて連続させて列にする、
請求項5に記載の情報処理装置。
【請求項7】
前記制御部は、
前記第2の情報群に含まれる1又は複数の第2の情報それぞれを、前記第1の圧縮方法における圧縮の移動窓のサイズ単位のサイズになるように加工して、前記列にする、
請求項6に記載の情報処理装置。
【請求項8】
前記制御部は、
電文における前記1又は複数の第1の情報群それぞれの位置を示す情報と、前記1又は複数の第1の情報群それぞれにおける前記1又は複数の第2の情報群の位置を示す情報と、を含むインデックスを生成し、
圧縮された前記1又は複数の第1の情報群とともに前記インデックスを送信する、
請求項5から7のいずれか一項に記載の情報処理装置。
【請求項9】
前記制御部は、
前記第1の時間長の間に含まれる前記所定数の時間窓それぞれの開始時刻を時刻順に並べて第3の情報群を作成し、
前記1又は複数の第1の情報群とともに第3の情報群を圧縮する、
請求項1から8のいずれか一項に記載の情報処理装置。
【請求項10】
コンピュータが、
第1の時間長の間において受信された複数のメッセージそれぞれに含まれる第1の情報を種別で分類して、1又は複数の第1の情報群を作成し、
前記1又は複数の第1の情報群を第1の圧縮方法で圧縮
前記コンピュータが、
前記1又は複数の第1の情報群それぞれについて、メッセージの受信時刻を示す時間情報の複数を、第1の情報群に含まれる1又は複数の前記第1の情報の並びに対応させて並べて時間情報群を作成し、前記第1の情報群に含め、
前記第1の時間長の間には、連続する所定数の、第2の時間長の時間窓が含まれており、
前記時間情報は、メッセージが受信された第1の時間窓の識別情報と、前記第1の時間窓の開始時刻からの前記メッセージの受信時刻の差分時間長と、を含み、
前記コンピュータが、前記時間情報群として、第1の情報群に含まれる1又は複数の前記第1の情報それぞれに対応する、第1の時間窓の識別情報を含む第1の時間情報群と、前記差分時間長を含む第2の時間情報群と、を作成する、
情報処理方法。
【請求項11】
前記コンピュータが、
前記1又は複数の第1の情報群それぞれにおいて、第1の情報群に含まれている1又は複数の前記第1の情報を受信順に並べて連続させて列にする、
請求項10に記載の情報処理方法。
【請求項12】
前記コンピュータが、
前記第1の情報を、前記第1の圧縮方法における圧縮の移動窓のサイズ単位のサイズになるように加工して、前記列にする、
請求項11に記載の情報処理方法。
【請求項13】
前記コンピュータが、
電文における前記1又は複数の第1の情報群それぞれの位置を示す情報を含むインデックスを生成し、
圧縮された前記1又は複数の第1の情報群とともに前記インデックスを送信する、
請求項10から12のいずれか一項に記載の情報処理方法。
【請求項14】
前記第1の情報は、1又は複数の第2の情報を含み、
前記コンピュータが、前記1又は複数の第1の情報群それぞれにおいて、第1の情報群に含まれる1又は複数の前記第1の情報に含まれる1又は複数の第2の情報を種別で分類して、1又は複数の第2の情報群を作成する、
請求項10から12のいずれか一項に記載の情報処理方法。
【請求項15】
前記コンピュータが、
電文における前記1又は複数の第1の情報群それぞれの位置を示す情報と、前記1又は複数の第1の情報群それぞれにおける前記1又は複数の第2の情報群の位置を示す情報と、を含むインデックスを生成し、
圧縮された前記1又は複数の第1の情報群とともに前記インデックスを送信する、
請求項14に記載の情報処理方法。
【請求項16】
前記コンピュータが、
前記第1の時間長の間に含まれる前記所定数の時間窓それぞれの開始時刻を時刻順に並べて情報群を作成し、
前記1又は複数の第1の情報群とともに第2の情報群を圧縮する、
請求項10から15のいずれか一項に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、及び、情報処理方法に関するものである。
【背景技術】
【0002】
車両の複数の機器から取得され、変更頻度で分類された第1の情報から第4の情報それぞれを取得時刻と紐づけて、変更頻度の高い順からサーバに送信することで、車両情報を効率的に収集する車両情報収集システムが開示されている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2021-060843号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
開示の態様の一つは、情報収集に係る負荷を軽減可能な情報処理装置、及び、情報処理方法を提供することを課題とする。
【課題を解決するための手段】
【0005】
本開示の態様の一つは、
第1の時間長の間において受信された複数のメッセージそれぞれに含まれる第1の情報を種別で分類して、1又は複数の第1の情報群を作成し、
前記1又は複数の第1の情報群を第1の圧縮方法で圧縮する、
制御部、
を備える情報処理装置である。
【0006】
本開示の他の態様の一つは、
コンピュータが、
第1の時間長の間において受信された複数のメッセージそれぞれに含まれる第1の情報を種別で分類して、1又は複数の第1の情報群を作成し、
前記1又は複数の第1の情報群を第1の圧縮方法で圧縮する、
情報処理方法である。
【発明の効果】
【0007】
本開示の態様の一つによれば、情報収集に係る負荷を軽減することができる。
【図面の簡単な説明】
【0008】
図1図1は、第1実施形態に係る走行データ収集システムのシステム構成の一例を示す図である。
図2図2は、車両のハードウェア構成の一例である。
図3図3は、ECUの機能構成の一例を示す図である。
図4図4は、受信バッファ内のCANフレームの一例を示す図である。
図5図5は、第1実施形態に係る列化電文のフォーマットの一例を示す図である。
図6図6は、電文本体の各フィールドへの値の格納方法の一例を示す図である。
図7図7は、第1実施形態に係るインデックスのフォーマットの一例を示す図である。
図8図8は、第1実施形態に係るECUの走行データ収集処理のフローチャートの一例である。
図9図9は、時間窓生成処理のフローチャートの一例である。
図10図10は、ラベル値処理のフローチャートの一例である。
図11図11は、インデックス作成処理のフローチャートの一例である。
図12図12は、変形例に係る列化電文のフォーマットの一例を示す図である。
図13図13は、変形例に係るインデックスのフォーマットの一例でである。
【発明を実施するための形態】
【0009】
本開示の態様の一つは、制御部を備える情報処理装置である。当該制御部は、第1の時間長の間において受信された複数のメッセージそれぞれに含まれる第1の情報を種別で分類して、1又は複数の第1の情報群を作成し、当該1又は複数の第1の情報群を第1の圧縮方法で圧縮する。情報処理装置は、例えば、他の複数の装置から送信される情報を集約して送信する装置である。より具体的には、情報処理装置は、車両に搭載されたECU(Electronic Control Unit)、車両に搭載されたDCM(Data Communication Module)、エッジコンピューティングにおけるエッジサーバ、及び、センサネットワークにおける中継ノード等のコンピュータである。制御部は、例えば、CPU(Central Processing Unit)、及び、DSP(Digital Signal Processor)等のプロセッサである。
【0010】
例えば、情報処理装置がECU及びDCM等の車両に搭載された装置である場合には、メッセージの一例として、CAN(Controller Area Network)メッセージが挙げられる
。メッセージがCANメッセージである場合には、第1の情報の種別はCAN IDである。メッセージがCANメッセージである場合には、第1の情報群は、同一のCAN IDを有するCANメッセージに含まれるデータの集まりと言える。情報処理装置が、センサネットワークにおける中継ノード又はエッジサーバ等である場合には、メッセージの種類及び情報の種別は、それぞれ、情報処理装置が接続されるネットワークの種類に応じたものとなる。
【0011】
第1の圧縮方法は、例えば、LZ77、LZSS、及び、Deflate等のLZ法、及び、ランレングス法等の圧縮アルゴリズムを用いた方法がある。第1の圧縮方法では、似通ったパターンの値が局所的に出現するほど圧縮率が向上する。1又は複数の第1の情報群の圧縮は、例えば、1又は複数の第1の情報群の全体に対して1回行われてもよいし、各第1の情報群について個別に複数回行われてもよい。また、一部の複数の第1の情報群はまとめて圧縮され、残りの第1の情報群は個別に圧縮されてもよい。
【0012】
本開示の態様の一つによれば、第1の時間長の間に受信される複数のメッセージを種別ごとに分類して1又は複数の第1の情報群を作成することで、似通った複数の値をまとめることができる。似通った複数の値とは、互いに共通するビット列を一部に有する値である。似通った値の集まりである第1の情報群を第1の圧縮方法で圧縮することによって、圧縮率を向上させることができる。圧縮率が向上することによって、データ量が削減される。したがって、本開示の態様の一つによれば、第1の時間長の間において受信された複数のメッセージを送信する場合の通信量を低減させることができ、当該データの送信に係る処理負荷、当該データの受信に係る処理負荷、及び、ネットワークの帯域の消費を低減させることができる。
【0013】
本開示の態様の一つでは、制御部は、1又は複数の第1の情報群それぞれにおいて、第1の情報群に含まれている1又は複数の第1の情報を受信順に並べて連続させて列にするようにしてもよい。列とは、複数の値を連続させたひとかたまりのデータのことである。第1の情報群において、第1の情報を受信順に並べることによって、複数の第1の情報を時系列順で連続的に取得しやすくすることができる。また、第1の情報群において、第1の情報を受信順に連続させて列にすることによって、時系列データにおいて連続する値の
変化は小さいことが一般的であるので、結果として、圧縮率を向上させることができる。
【0014】
本開示の態様の一つでは、制御部は、第1の情報を、第1の圧縮方法における圧縮の移動窓のサイズ単位のサイズになるように加工して、列にするようにしてもよい。これによって、圧縮の移動窓の単位で似通った値の出現率を向上させることができ、圧縮率を向上させることができる。
【0015】
本開示の態様の一つでは、電文における1又は複数の第1の情報群それぞれの位置を示す情報を含むインデックスを生成し、圧縮された1又は複数の第1の情報群とともにインデックスを送信するようにしてもよい。インデックスに含まれる各第1の情報群の位置は、圧縮される前の位置であってもよいし、圧縮後の位置であってもよい。例えば、全ての第1の情報群の全体に対して圧縮が行われる場合には、インデックスには圧縮される前の各第1の情報群の位置を示す情報が含められてもよい。例えば、各第1の情報群が個別に圧縮される場合には、インデックスには圧縮後の各第1の情報群の位置を示す情報が含められてもよい。この場合には、所望する第1の情報群の位置をインデックスから特定することで、電文本体全体を復号することなく、所望する第1の情報群について局所的に復号することができる。
【0016】
本開示の態様の一つでは、第1の情報は、1又は複数の第2の情報を含んでもよい。制御部は、各第1の情報群において、1又は複数の第2の情報を種別で分類して、1又は複数の第2の情報群を作成してもよい。その後、1又は複数の第2の情報群を含む第1の情報群は第1の圧縮方法によって圧縮されてもよい。各第1の情報群において、第2の情報の種別ごとに第2の情報群を作成することによって、第1の情報群の中でもより似通った値の第2の情報をまとめることができ、これによって、圧縮率を向上させることができる。また、同じ種別の第2の情報がまとめられることによって、電文の受信側の装置は、所望の種別の第2の情報をまとめて読み出すことができる。
【0017】
本開示の態様の一つでは、制御部は、各第2の情報群において、第2の情報群に含まれる1又は複数の第2の情報を、対応する第1の情報の受信順に並べて連続させて列にしてもよい。第2の情報群において第2の情報が対応する第1の情報の受信順、すなわち、時系列順に並べられることによって、同じ種別の第2の情報を時系列順で連続した集まりで取得することができたり、圧縮率を向上させたりすることができる。
【0018】
本開示の態様の一つでは、制御部は、第2の情報を、第1の圧縮方法における圧縮の移動窓のサイズ単位のサイズになるように加工して、列にしてもよい。これによって、圧縮の移動窓において同じパターンの値の出現率が向上し、圧縮率を向上させることができる。
【0019】
本開示の態様の一つでは、制御部は、電文における1又は複数の第1の情報群それぞれの位置を示す情報と、各第1の情報群における1又は複数の第2の情報群の位置を示す情報と、を含むインデックスを生成してもよい。制御部は、圧縮された1又は複数の第1の情報群とともに当該インデックスを送信してもよい。第1の情報群の位置を示す情報、及び、第2の情報群の位置を示す情報を含むインデックスがともに送信されることによって、受信側では、第1の情報群及び第2の情報群をピンポイントで検索しやすくなる。
【0020】
本開示の態様の一つでは、制御部は、1又は複数の第1の情報群それぞれについて、メッセージの受信時刻を示す時間情報の複数を、第1の情報群に含まれる1又は複数の第1の情報の並びに対応させて並べて時間情報群を作成し、第1の情報群に含めてもよい。その後、時間情報群は第1情報群として第1の圧縮方法で圧縮される。これによって、第1の情報の受信時刻を示す情報を圧縮でき、送信データ量を低減することができる。
【0021】
本開示の態様の一つでは、第1の時間長の間には、連続する所定数の、第2の時間長の時間窓が含まれていてもよい。この場合には、メッセージの受信時刻を示す時間情報は、当該メッセージが受信された第1の時間窓の識別情報と、第1の時間窓の開始時刻からのメッセージの受信時刻の差分時間長と、を含んでもよい。制御部は、時間情報群として、第1の情報群に含まれる1又は複数の第1の情報それぞれに対応する、第1の時間窓の識別情報を含む第1の時間情報群と、差分時間長を含む第2の時間情報群と、を作成してもよい。
【0022】
時間窓の時間長である第2の時間長は、例えば、0.1秒~1秒等の範囲である。したがって、メッセージが受信された第1の時間窓の開始時刻からの当該メッセージの受信時刻の差分時間長は、0から1秒までの限られた範囲の値となる。また、第1の時間長は、例えば、10秒~1分等の範囲である。したがって、第1の時間長に含まれる第1の時間窓の上限は、第1の時間長を第2の時間長で割った値となる。すなわち、メッセージの受信時刻を年月日日時秒等で示すよりも、メッセージが受信された第1の時間窓と差分時間長とで示す方が、使用データ量は小さくなる。さらに、第1の情報群に含まれる1又は複数の第1の情報について、第1の時間窓の識別情報と、当該差分時間長とでまとめることで、圧縮率が向上するので、さらに送信データ量を小さくすることができる。
【0023】
本開示の態様の一つでは、制御部は、第1の時間長の間に含まれる所定数の時間窓それぞれの開始時刻を時刻順に並べて第3の情報群を作成し、1又は複数の第1の情報群とともに第3の情報群を圧縮してもよい。時間窓の開始時刻と、メッセージが受信された第1の時間窓の識別情報と、第1の時間窓の開始時刻からのメッセージの受信時刻の差分時間長と、によって、当該メッセージの受信時刻を特定できる。
【0024】
本開示の他の態様の一つは、上記情報処理装置の処理をコンピュータが実行する方法としても特定することができる。当該方法は、コンピュータが、第1の時間長の間において受信された複数のメッセージそれぞれに含まれる第1の情報を種別で分類して、1又は複数の第1の情報群を作成し、1又は複数の第1の情報群を第1の圧縮方法で圧縮する情報処理方法である。また、本開示の他の態様の一つは、上記情報処理装置の処理をコンピュータに実行させるためのプログラムとしても特定することができる。本開示の他の態様の一つは、当該プログラムについて、コンピュータ読み取り可能で且つ非一時的な記録媒体としても特定することができる。
【0025】
以下、図面に基づいて、本開示の実施の形態を説明する。以下の実施形態の構成は例示であり、本開示は実施形態の構成に限定されない。
【0026】
<第1実施形態>
図1は、第1実施形態に係る走行データ収集システム100のシステム構成の一例を示す図である。走行データ収集システム100は、車両の走行データを収集するシステムである。走行データ収集システム100は、車両10及びサーバ2を含む。走行データ収集システム100は、複数の車両10を含むが、便宜上、図1では車両10は1台のみ示されている。車両10及びサーバ2は、ネットワークN1に接続しており、ネットワークN1を通じて通信可能である。ネットワークN1は、例えば、インターネット等の公衆回線網である。
【0027】
車両10は、所定の周期で走行データを含む電文をサーバ2へ送信する。走行データには、例えば、位置情報、速度に関する情報、操舵角に関する情報、及び、走行距離に関する情報等が含まれている。車両10内では、走行データに含まれる各種情報を取得する各装置はCANネットワークで接続されており、各装置からCANメッセージによって各種
情報が収集される。車両10は、所定の時間長の間に収集された複数のCANメッセージを集約して、走行データとしてサーバ2へ送信する。
【0028】
車両10は、複数のCANメッセージを種別ごとに並び替えて集約して電文を作成し、電文を所定の圧縮方法で圧縮する。これによって、例えば、受信順に複数のCANメッセージを並べて圧縮するよりも、より似通った値を集約して並べることによって、圧縮率が向上し、送信データ量を低減させることができる。
【0029】
また、車両10は、電文における各CANメッセージの位置を示す情報を含むインデックスを作成し、電文とともにサーバ2へ送信する。これによって、電文の受信側であるサーバ2の、所望の情報の検索に係る処理負荷を軽減することができる。
【0030】
図2は、車両10のハードウェア構成の一例である。ただし、図2では、走行データ収集システム100の処理に係るハードウェア構成要素のみが抽出されて示されている。車両10は、ハードウェア構成として、ECU 1、ECU 110-1、ECU 110-2、...、ECU 110-Xを備える。ECU 1、ECU 110-1、ECU
110-2、...、ECU 110-Xは、それぞれ、CANネットワーク150に接続
している。
【0031】
ECU 110-1、ECU 110-2、...、ECU 110-Xは、それぞれ、
ブレーキ及びステアリングを制御するECU、速度計等のセンサを制御するECU等である。ECU 110-1、ECU 110-2、...、ECU 110-Xを区別しない
場合には、単に、ECU 110、と表記する。ECU 110は、所定の周期で情報を取得し、CANメッセージによってECU 1へ送信する。ECU 110が取得する情報は、位置情報、速度に関する情報、及び、操舵角に関する情報等がある。位置情報は、例えば、緯度、経度、及び、高度等の情報を含む。速度に関する情報は、例えば、速度、及び、速度の補正情報等を含む。
【0032】
ECU 1は、第1実施形態では、カーナビゲーションシステムのマルチメディアECUである。ただし、これに限られず、ECU 1の代わりに、DCMが用いられてもよい。ECU 1は、ハードウェア構成として、CPU 101、メモリ102、補助記憶装置103、通信部104、及び、CANインタフェース105を備える。メモリ102および補助記憶装置103は、それぞれ、コンピュータで読み取り可能な記録媒体の一例である。
【0033】
補助記憶装置103は、様々なプログラムや、各プログラムの実行に際してCPU 101が使用するデータを格納する。補助記憶装置103は、例えば、HDD(Hard Disk Deive)、SSD(Solid State Drive)、及び、フラッシュメモリ等である。補助記憶装置103に保持されるプログラムには、例えば、OS(Operation System)、圧縮プログラム、及び、走行データ収集システム100の制御プログラム等がある。走行データ収集システム100の制御プログラムは、サーバ2への走行データの送信に係る制御処理のためのプログラムである。
【0034】
メモリ102は、CPU 101に、補助記憶装置103に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする記憶装置である。メモリ102は、例えば、ROM(Read Only Memory)、RAM(Random
Access Memory)のような半導体メモリを含む。
【0035】
CPU 101は、補助記憶装置103に保持されたOS、及び、その他様々なプログラムをメモリ102にロードして実行することによって、様々な処理を実行する。CPU
101は、1つに限られず、複数備えられてもよい。CPU 101は「制御部」の一例である。
【0036】
通信部104は、例えば、5G(5th Generation)、6G、4G、及び、LTE(Long
Term Evolution)等の移動体通信方式、WiMAX、及び、WiFi等の無線通信方式
に従った無線通信回路である。通信部104は、無線通信によってアクセスネットワークに接続し、アクセスネットワークを通じてインターネットに接続し、サーバ2等の外部の装置との通信を可能にする。
【0037】
CANインタフェース105は、CANネットワーク150とのインタフェースである。CANインタフェース105は、ECU 110からCANメッセージを受信し、CPU 101へ出力する。なお、図2に示される車両10及びECU 1のハードウェア構成は一例であって、車両10及びECU 1のハードウェア構成は図2に示される例に限定されない。
【0038】
図3は、ECU 1の機能構成の一例を示す図である。ECU 1は、機能構成として、受信部11、受信バッファ12、制御部13、送信バッファ14、及び、送信部15を備える。これらの機能構成要素の処理は、ECU 1のCPU 101が補助記憶装置103に保持される1又は複数の所定のプログラムを実行することによって達成される処理である。
【0039】
受信部11は、CANネットワーク150を通じて、各ECU 110からCANメッセージを受信する。各ECU 110からは、それぞれの周期でCANメッセージが送信される。受信部11は、CANメッセージを受信すると、受信時刻を取得し、受信時刻とともに受信バッファ12に格納する。
【0040】
受信バッファ12は、例えば、CPU 101の記憶領域に作成される。受信バッファ12は、例えば、走行データの収集周期の1周期の間に受信されるCANメッセージを十分に格納できるだけのサイズの第1のバッファを複数有する。走行データの収集周期は、例えば、30秒~1分の範囲である。また、受信バッファ12内の第1のバッファは、所定時間長の時間窓ごとに区切られる。時間窓の時間長は、例えば、0.1秒~1秒の範囲である。受信バッファ12には、受信部11によって、受信順でCANメッセージが格納される。1つの時間窓の時間長が経過すると次の時間窓の領域にCANメッセージが格納される。また、走行データの収集周期の1周期が経過すると、次の第1のバッファにCANメッセージが格納される。
【0041】
送信バッファ14は、例えば、CPU 101の記憶領域に作成される。送信バッファ14は、例えば、1収集周期の間に受信されるCANメッセージを十分に格納できるだけのサイズの第2のバッファを少なくとも1つ有する。送信バッファ14内の第2のバッファには、送信されるデータ、すなわち、電文が格納される。
【0042】
制御部13は、走行データの収集周期ごとに受信バッファ12から直前の収集周期分のCANメッセージを読み出し、所定のルールに従ってCANメッセージを並び替えて送信バッファ14に格納する。制御部13によってCANメッセージが読み出されると、当該CANメッセージが格納されていた受信バッファ12内の第1のバッファはクリアされる。
【0043】
CANメッセージは、CAN IDごとに格納されている情報の種類が予め決められている。また、1つのCAN IDが示す情報の種類には、さらに細分化された種類の情報が存在する。例えば、位置情報である場合には、緯度、経度、及び、高度のさらに3つの
種類の情報が存在する。例えば、速度に関する情報である場合には、速度、及び、速度の補正情報のさらに2つの種類の情報が存在する。なお、位置情報、及び、速度に関する情報の細分化された種類はこれらに限定されない。
【0044】
制御部13は、CAN IDごとにCANメッセージを集約する。制御部13は、さらに、細分化された種類ごとに情報を集約する。集約された情報は、受信順に並べられる。なお、CANメッセージの集約処理の詳細は後述される。
【0045】
制御部13は、送信バッファ14に格納された電文を所定の圧縮方法で圧縮する。制御部13が用いる圧縮方法には、例えば、LZ77、LZSS、及び、Deflate等のLZ法、及び、ランレングス法等の圧縮アルゴリズムを用いた方法がある。制御部13が用いる圧縮方法は、これらに限定されず、局所的に繰り返し出現するパターンを効率よく圧縮できる方法であればよい。また、送信部15は、第1実施形態では、送信バッファ14に格納された電文を、CAN IDで集約した複数のCANメッセージ単位で圧縮する。
【0046】
また、制御部13は、1収集周期分のCANメッセージを含む電文のインデックスを生成し、送信バッファ14に格納する。電文のインデックスには、各CAN IDで集約されたCANメッセージの集まりの格納位置を示す情報が格納される。電文のインデックスの詳細は、後述される。以下、1収集周期分のCANメッセージの格納部分を電文本体と称する。すなわち、電文は、本体とインデックスとを含む。制御部13は、電文を送信部15へ出力する。
【0047】
送信部15は、制御部13から入力される電文を、サーバ2へ送信する。電文は、例えば、アプリケーション層のデータであるので、送信部15は、電文に対して、アプリケーション層よりも下層のプロトコルに準じた所定の処理を実行して送信する。例えば、送信部15は、電文を所定のサイズのデータブロックに分割し、各分割したデータブロックに、各層のヘッダを付与してカプセル化して、ビット列に変換した後電気信号に変換して、ネットワークへ出力する。なお、ECU 1の機能構成は、図3に示される例に限定されない。
【0048】
図4は、受信バッファ内のCANフレームの一例を示す図である。フレームとは、例えば、データリンク層において扱われるデータの単位である。CANメッセージはCANフレームに格納されてCANネットワーク150を流れ、ECU 1のCANインタフェース105に受信される。CANフレームは、受信部11によって受信時刻が付与されて、受信バッファ12に格納される。受信時刻のデータ長は、例えば、4バイトから8バイトである。
【0049】
図4では、CANフレームのフォーマットのうちの走行データ収集システム100に係る一部のフィールドが抽出されて示されている。図4では、CANフレームのフィールドの一部として、CAN IDのフィールドとデータフィールドとが示されている。
【0050】
CAN IDのフィールドには、CAN IDが格納される。CAN IDは、CANフレーム自体又はCANメッセージ自体を識別するものではなく、CANメッセージが含む情報の種別を識別するためのものである。すなわち、CAN IDによって、CANメッセージに含まれる情報の種別を判別することができる。なお、CAN IDとCANメッセージに含まれる情報の種別との対応付けは、例えば、予め、車両製造事業者によって決められており、送信側のECU 1及び受信側のx2で共通するものが保持されている。CAN IDのフィールドのデータ長は、11ビットである。
【0051】
CANフレームのデータフィールドには、CANメッセージが格納されている。CANメッセージには、CANラベルとCANラベル値とのフィールドが含まれている。CANラベルのフィールドには、CANラベル値の情報の種別を示すキーまたはコードが格納される。CANラベル値の情報の種別とキーとの対応付けは、予め送信側の車両10及び受信側のサーバ2は共通するものを予め保持している。CANラベルのフィールドのデータ長は可変長である。CANラベル値のフィールドには、CANラベルのフィールドに格納されるキーが示す種別の情報の値が格納される。CANラベル値のフィールドのデータ長は、例えば、1ビットから64ビットである。
【0052】
CANラベルとCANラベル値のフィールドは、2つで一つのセットである。CANメッセージには、CANラベルとCANラベル値のセットが0個から64個含まれる。なお、図4では、CANフレーム及びCANメッセージのフィーマットの一例を示すが、CANに代えてCAN FD等が用いられる場合でも、各フィールドのデータ長が異なる程度で、基本的な構成は同様である。
【0053】
図5は、第1実施形態に係る列化電文のフォーマットの一例を示す図である。列とは、複数のデータを時系列順を維持したまま集約した塊のことである。列では、複数のデータが連続して並べられている。第1実施形態において、複数のCANメッセージについて、所定のフィールドの値を集約させて並び替えることを、列化という。すなわち、列化電文とは、送信バッファ14内に保持される送信データの形態である。
【0054】
図5では、受信バッファ#Xと送信バッファ#Yとが示されている。受信バッファ#X及び送信バッファ#Yは、それぞれ、1収集周期の間に受信されるCANフレーム又はCANメッセージを十分に格納可能なサイズである。受信バッファ#Xは、受信バッファ12内の複数の第1のバッファのうちの一つである。送信バッファ#Yは、送信バッファ14内の少なくとも一つの第2のバッファのうちの一つである。
【0055】
受信バッファ#Xには、1収集周期の間に受信されたCANフレームが受信順に格納されている。また、受信バッファ#Xでは、所定の時間長の時間窓#0~#N-1にそれぞれ受信順にCANフレームが格納されている。Nは、1収集周期に含まれる時間窓の数である。以下、図5の説明において、CANフレーム、及び、CANメッセージと称する場合には、受信バッファ#X内に格納されているCANフレーム、及び、CANメッセージであるとする。
【0056】
送信バッファ#Yには、時刻情報と、CANメッセージ列のフィールド用に予め領域が確保されている。時刻情報のフィールドには、受信バッファ#X内の各時間窓の開始時刻が時系列順で列化されて格納される。時間窓の開始時刻の時系列順は、時間窓のIDの昇順と同じ並びになる。時間窓のIDは、例えば、1収集周期における時間窓の順番である。
【0057】
CANメッセージ列のフィールドには、同じCAN IDを有するCANメッセージに含まれる情報の集まりが格納される。したがって、CANメッセージ列のフィールドは、受信バッファ#X内に格納されているCANメッセージのCAN IDの数だけ含まれる。CANメッセージ列のフールドは、例えば、CAN IDの昇順または降順で並べられる。CANメッセージ列のフィールドの数は、収集周期ごとに可変である。そのため、CAN ID個別のCANメッセージ列のフィールドの領域は、予め確保されておらず、その都度、送信バッファ#Y内のCANメッセージ列のフィールド用に確保された領域内で、確保される。
【0058】
CANメッセージ列のフィールドには、時間窓ID情報、差分時間情報、及び、CAN
ラベル値列のフィールドが含まれる。時間窓ID情報のフィールドには、該当するCAN
IDを有するCANメッセージそれぞれの、受信された時間窓のIDが、CANメッセージの受信順で格納される。差分時間情報のフィールドには、該当するCAN IDを有するCANメッセージそれぞれの、受信された時間窓の開始時刻から当該CANメッセージの受信時刻までの差分時間長が、CANメッセージの受信順で格納される。送信バッファ#Yにおいて、CAN ID個別のCANメッセージ列のフィールド用に確保されるとともに、当該確保された領域内に、時間窓ID情報及び差分時間情報のフィールド用の領域が確保されてもよい。
【0059】
CANラベル値列のフィールドは、該当するCAN IDを有するCANメッセージに含まれるCANラベルごとに用意される。各CANラベル値列のフィールドには、該当するCAN IDを有するCANメッセージに含まれる該当するCANラベルのCANラベル値が、CANメッセージの受信順で格納される。CANラベル値列のフィールドは、例えば、CANラベルのキーの順で並べられる。例えば、CANメッセージ内ではCANラベル及びCANラベル値のフィールドのセットは、CANラベルのキーの順で並んでいる。したがって、CANメッセージ内のCANラベル及びCANラベル値のフィールドのセットの並び順と、当該CANメッセージのCAN IDに該当するCANメッセージ列のフィールド内のCANラベル値列のフィールドの並び順と、は一致している。なお、CANメッセージ中に含まれるCANラベル及びCANラベル値のセットの数は、CAN IDによって可変である。そのため、各CANラベル個別のCANラベル値列のフィールド用の領域は、予め確保されておらず、その都度、送信バッファ#Y内の該当のCANメッセージ列のフィールド用に確保された領域内で、確保される。
【0060】
時刻情報、時間窓ID情報、差分時間情報、及び、各CANラベル値列の各フィールド内において、複数の値は一つの列をなしている。
【0061】
図5の例においては、CANメッセージ列#Aのフィールド内の時間窓ID情報、差分時間情報、及び、各CANラベル値列のフィールドには、それぞれ、時間窓#0内のCANメッセージ#A、時間窓#1内のCANメッセージ#A、...の順で、値が格納される
。CANメッセージ列#Aのフィールドの次は、CANメッセージ列#Bのフィールドとなる。図5に示される列化電文を、以下、電文本体、又は、単に本体、とも言う。なお、電文本体のフォーマットは、図5に示される例に限定されない。
【0062】
例えば、電文本体は、時間窓情報のフィールドを含まず、差分時間情報のフィールドには、当該収集周期の開始時刻からのCANメッセージの受信時刻までの差分時間長が格納されてもよい。この場合には、時刻情報には、時間窓開始時刻ではなく、当該収集周期の開始時刻が含まれる。または、電文本体は、時間窓情報と差分時間情報のフィールドを含まず、その代わりに、各CANメッセージの受信時刻を含むフィールドを備えてもよい。この場合には、電文は、時刻情報のフィールドは含まない。
【0063】
1収集周期の時間長は、「第1の時間長」の一例である。CANメッセージは、「メッセージ」の一例である。CANメッセージに含まれるデータは、「第1の情報」の一例である。CAN IDは、「第1の情報の種別」の一例である。CANメッセージ列のフィールド内に含まれる値は、「第1の情報群」の一例である。CANラベル値は、「第2の情報」の一例である。「CANラベル」は、「第2の情報の種別」の一例である。CANラベル値列のフィールドに含まれるラベル値の列は、「第2の情報群」の一例である。
【0064】
時間窓IDと差分時間長とは、「メッセージの受信時刻を示す時間情報」の一例である。時間窓ID情報のフィールド内の時間窓IDの列は、「第1の時間情報群」の一例である。差分時間情報のフィールド内の差分時間長の列は、「第2の時間情報群」の一例であ
る。時刻情報のフィールド内の時間窓の開始時刻の列は、「第3の情報群」の一例である。
【0065】
図6は、電文本体の各フィールドへの値の格納方法の一例を示す図である。制御部13が用いる圧縮方法では、所定サイズの移動窓を用いて既出のパターンと同じパターンの値が有るか否かが検索される。したがって、圧縮対象の値が複数ある場合には、各値のデータ長が圧縮方法で用いられる移動窓のサイズの単位で揃えられている方が、移動窓内で同じパターンの値の出現率が向上するので、圧縮率が向上する可能性が高い。
【0066】
しかしながら、例えば、CANメッセージに含まれるCANラベル値は、種別によってデータ長が異なる。そこで、制御部13は、圧縮方法の移動窓のサイズの単位となるように、CANラベル値のデータ長を調整してから電文本体の各フィールドに格納する。第1実施形態では、圧縮方法の移動窓のサイズを1バイトと想定し、制御部13は、CANラベル値が1バイト単位のデータ長となるように調整する。制御部13は、CANラベル値のデータ長が1バイト単位の値でない場合には、1バイト単位とするために不足する下位ビットに0を追加して、ラベル値のデータ長が1バイト単位となるようにする。使用されないビットに0を格納することを、パディングという。
【0067】
なお、CANラベル値以外の時間窓開始時刻、時間窓ID、及び、差分時間のデータ長は、固定長に設定されている。時間窓開始時刻、時間窓ID、及び、差分時間のデータ長は、第1実施形態では、1バイト単位に設定されている。なお、圧縮方法の移動窓のサイズが1バイトでない場合には、CANラベル値以外の時間窓開始時刻、時間窓ID、及び、差分時間のデータ長は、移動窓のサイズの単位に設定されてもよい。
【0068】
電文の圧縮は、時刻情報及びCANメッセージ列のフィールドごとに個別に複数回に分けて行われるのであってもよいし、電文本体の全体に対して1回で行われるのであってもよい。電文の圧縮が、時刻情報及びCANメッセージ列のフィールドごとに個別に複数回に分けて行われることを、以下、個別圧縮、と称する。電文の圧縮が、電文本体の全体に対して1回で行われることを、以下、全体圧縮、と称する。電文の圧縮を、個別圧縮で行うか、全体圧縮で行うかは、例えば、電文のサイズに応じて決定されてもよい。例えば、電文本体のサイズが所定の閾値未満である場合には、制御部13は、個別圧縮を行ってもよい。電文本体のサイズが所定の閾値以上である場合には、制御部13は、全体圧縮を行ってもよい。また、電文本体のうちの一部の複数のフィールドをまとめて圧縮し、残りの各フィールドを個別に圧縮する、ハイブリッド方式の圧縮が行われてもよい。
【0069】
図7は、第1実施形態に係るインデックスのフォーマットの一例を示す図である。インデックスには、各CANメッセージ列の列化電文における位置を示す情報が格納される。具体的には、インデックスには、CANメッセージ列情報のフィールドが含まれる。CANメッセージ列情報のフィールドは、列化電文に含まれるCANメッセージ列のフィールドと対応して、同じ数及び同じ並び順で含まれる。すなわち、インデックスにおけるCANメッセージ列情報のフィールドは、CAN IDの順で格納される。
【0070】
CANメッセージ列情報のフィールドには、オフセット、サイズ、及び、ラベル値情報のフィールドが含まれている。オフセットは、該当のCANメッセージ列のフィールドの列化電文における開始位置のアドレスである。サイズは、該当のCANメッセージ列のフィールドのサイズである。
【0071】
ラベル値情報のフィールドには、例えば、列化電文における該当のCANメッセージ列のフィールドにおける、該当の種別のCANラベル値の開始位置のアドレスが格納される。ラベル値情報のフィールドは、列化電文におけるCANメッセージ列のフィールドにお
けるラベル値列のフィールドと同じ順で格納される。また、列化電文におけるCANメッセージ列のフィールドにおけるラベル値列のフィールドは、CANメッセージにおけるCANラベル及びCANラベル値と同じ順で並べられている。したがって、受信側のサーバ2は、CANメッセージにおけるCANラベル及びCANラベル値の並びの情報を予め保持しているので、インデックス内のラベル値情報のフィールドの値がいずれのラベルに対応しているかを把握することができる。
【0072】
受信側のサーバ2は、インデックスを読み込むことで、所望のCAN IDのCANメッセージの位置を特定できるようになり、列化電文における所望のCAN IDのCANメッセージの検索を容易することができる。
【0073】
また、インデックスは、列化電文に比べてサイズが小さいため、受信側のサーバ2においてメモリ202に一度に読み込むことができる。インデックス内のCANメッセージ列情報のフィールドは、CAN IDの順で並んでいる。したがって、受信側のサーバ2では、インデックスについて、例えば、二分探索を行うことができ、インデックス内でも所望のCAN IDを特定しやすくなっている。CANラベルについても同様に、ラベル値情報は、CANラベルのキーの順で並んでいるので、インデックス内において所望の種別のラベル値の位置を探索しやすい。
【0074】
なお、列化電文におけるCANメッセージ列のフィールドと、インデックスにおけるCANメッセージ列情報のフィールドと、が対応して同じ順で並んでいる場合には、CANメッセージ列情報のフィールドにおいて、オフセットとサイズが含まれなくてもよい。
【0075】
なお、インデックス内のオフセット及びラベル値情報に格納される値が示すアドレスは、個別圧縮が行われる場合には、圧縮後の電文本体における位置を示す。これによって、受信側のサーバ2では、電文本体を復号せずに、電文本体における所望のCAN IDのCANメッセージ列の部分だけ復号すればよく、処理負荷が軽減する。
【0076】
一方、全体圧縮が行われる場合には、インデックス内のオフセット及びラベル値情報に格納される値が示すアドレスは、圧縮前の電文本体における位置である。全体圧縮では、圧縮の前後で各フィールドの位置が変化し、且つ、部分的に復号することができないためである。なお、インデックスのフォーマットは、図7に示される例に限定されない。
【0077】
インデックスにおけるCANメッセージ列情報フィールドに格納されるオフセット及びサイズは、「電文における第1の情報群の位置を示す情報」の一例である。インデックスにおけるCANメッセージ列情報フィールド内のラベル値情報に格納される値は、「第1の情報群における1又は複数の第2の情報群の位置を示す情報」の一例である。
【0078】
<処理の流れ>
図8は、第1実施形態に係るECU 1の走行データ収集処理のフローチャートの一例である。図8に示される例は、例えば、車両10の走行中、すなわち、イグニッションがONである間、繰り返し実行される。なお、図8に示される処理の実行主体は、ECU 1のCPU 101であるが、便宜上、機能構成要素を主体として説明する。図8以降のECU 1の処理に係るフローチャートについても同様である。
【0079】
OP101では、制御部13は、収集周期タイマを開始させる。収集周期タイマの時間長は、1収集周期分の時間長と同じである。OP102では、制御部13は、収集周期タイマが満了したか否かを判定する。収集周期タイマが満了した場合には(OP102:YES)、処理がOP103へ進む。収集周期タイマが満了するまでの間(OP102:NO)、制御部13は待機状態となる。
【0080】
OP103では、制御部13は、時間窓生成処理を実行する。時間窓生成処理は、1つの時間窓について、当該時間窓内のCANメッセージに含まれる情報を並び替えて送信バッファ14に格納する処理である。制御部13は、時間窓生成処理を1収集周期に含まれる時間窓それぞれについて繰り返し実行する。これによって、1収集周期の間に受信されたCANメッセージが、CAN IDごと、及び、CANラベルごとに集約される。より具体的には、時間窓生成処理を1収集周期に含まれる時間窓それぞれについて繰り返し実行することで、図5に示される時刻情報と各CANメッセージ列とのフィールドが生成される。ただし、この時点では、CANメッセージ列の並びはCAN ID順になっていない可能性がある。時間窓生成処理の詳細は後述される。
【0081】
OP104では、制御部13は、送信バッファ14内の電文において、CANメッセージ列のフィールドをCAN IDの順に並び替える。OP105では、制御部13は、送信バッファ14内の電文を所定の圧縮方法で圧縮する。図8に示される例において、電文の圧縮は個別圧縮で行われることとする。
【0082】
OP106では、制御部13は、インデックス作成処理を実行する。インデックス作成処理は、電文本体のインデックスを生成する処理である。OP107では、制御部13は、圧縮された電文本体とインデックスとを、送信部15を通じて、サーバ2へ送信する。その後、図8に示される処理が終了する。
【0083】
なお、走行データ収集処理は図8に示される例に限定されない。例えば、OP106のインデックス作成処理の後に、インデックスが所定の圧縮方式で圧縮されてもよい。また、例えば、電文本体の圧縮が全体圧縮で行われる場合には、インデックス作成処理は、OP105における電文本体の圧縮の前に行われてもよい。
【0084】
図9は、時間窓生成処理のフローチャートの一例である。図9に示される処理は、図8のOP103において実行される処理である。図9に示される処理は、時間窓#0から順番に各時間窓に対して実行される。したがって、図9において、処理対象の時間窓を、対象の時間窓、と称する。
【0085】
OP201では、制御部13は、時刻情報のフィールドに、対象の時間窓の開始時刻を追加する。対象の時間窓の開始時刻は、時刻情報のフィールド内の時間窓の開始時刻の列の末尾に追加される。
【0086】
OP202では、制御部13は、受信バッファ12において、対象の時間窓内にCANフレームが存在するか否かを判定する。対象の時間窓内にCANフレームが存在する場合には(OP202:YES)、処理がOP203へ進む。OP203では、制御部13は、受信バッファ12から、対象の時間窓内のCANフレームを取得する。
【0087】
対象の時間窓内にCANフレームが存在しない場合には(OP202:NO)、図9に示される処理が終了し、次の時間窓について図9の処理が開始される、又は、全ての時間窓について図9の処理が終了した場合には処理が図8のOP104へ進む。
【0088】
OP204からOP209の処理は、対象の時間窓内に存在する各CANメッセージついて受信順に繰り返し実行される。処理対象のCANメッセージを、対象のCANメッセージと称する。
【0089】
OP204では、制御部13は、対象のCANメッセージのCAN IDに該当するCANメッセージ列のフィールド用の領域が送信バッファ14内にあるか否かを判定する。
当該CAN IDに該当するCANメッセージ列のフィールド用の領域が送信バッファ14内にある場合には(OP204:YES)、処理がOP206へ進む。当該CAN IDに該当するCANメッセージ列のフィールド用の領域が送信バッファ14内に存在しない場合には(OP204:NO)、処理がOP205へ進む。
【0090】
OP205では、制御部13は、送信バッファ14内に、対象のCANメッセージのCAN IDに該当するCANメッセージ列のフィールド用の領域を確保する。OP206では、制御部13は、対象のCANメッセージのCAN IDに該当するCANメッセージ列のフィールドの時間窓ID情報のフィールドに、対象のCANメッセージが含まれる時間窓のIDを追加する。なお、対象のCANメッセージが含まれる時間窓は、時間窓生成処理の対象の時間窓である。対象のCANメッセージが含まれる時間窓のIDは、当該時間窓ID情報のフィールド内の時間窓のIDの列の末尾に追加される。
【0091】
OP207では、制御部13は、対象のCANメッセージのCAN IDに該当するCANメッセージ列のフィールドの差分時間情報のフィールドに、対象の時間窓の開始時刻から対象のCANメッセージの受信時刻までの差分時間長を追加する。当該差分時間長は、当該差分時間情報のフィールド内の差分時間長のIDの列の末尾に追加される。
【0092】
OP208では、制御部13は、対象のCANメッセージ内に未処理のCANラベル及びCANラベル値のセットが有るか否かを判定する。対象のCANメッセージ内に未処理のCANラベル及びCANラベル値のセットが有る場合には(OP208:YES)、処理がOP209へ進む。対象のCANメッセージ内に未処理のCANラベル及びCANラベル値のセットがない場合には(OP208:NO)、対象のCANメッセージについての処理が終了する。その後、対象の時間窓内の対象のCANメッセージの次に受信されたCANメッセージについて、OP204から処理が繰り返し実行される、又は、対象の時間窓内のすべてのCANメッセージについて処理が終了すると、処理が図8のOP104へ進む。
【0093】
OP209では、制御部13は、CANラベル値処理を実行する。CANラベル値処理は、CANメッセージ内のラベル値を送信バッファ14に格納する処理である。CANラベル値の処理の詳細は後述される。CANラベル値処理が終了すると、処理がOP208へ進む。
【0094】
なお、図9に示される時間窓生成処理では、受信バッファ12内の時間窓の順に、受信順でCANメッセージが処理されるので、CANメッセージ列のフィールドがCAN IDの順で並ぶとは限らない。その為、図8のOP104では、CANメッセージ列のフィールドをCAN IDの順に並び替える処理が行われる。ただし、これに限られず、時間窓生成処理が、CANメッセージ列のフィールドがCAN IDの順で並ぶようなロジックである場合には、図8のOP104の処理は実行されなくてもよい。また、OP201、OP206、及び、OP207において、時間窓の開始時刻、時間窓のID、及び、差分時間長は、それぞれのフィールド内の値の列の末尾に追加される。したがって、時間窓の開始時刻、時間窓のID、及び、差分時間長は、それぞれのフィールドで受信順、すなわち、時系列順に並べられる。
【0095】
図10は、ラベル値処理のフローチャートの一例である。ラベル値処理は、図9のOP209において実行される処理である。なお、図10において“対象のCANメッセージ”と称する場合には、図9に示されるOP204からOP209の処理の対象のCANメッセージを示す。
【0096】
OP301では、制御部13は、対象のCANメッセージ内の未処理のCANラベル及
びCANラベル値のセットのうち、先頭のCANラベル及びCANラベル値を処理対象とする。OP302では、制御部13は、処理対象のCANラベルに該当するCANラベル値列のフィールド用の領域が送信バッファ14内にあるか否かを判定する。処理対象のCANラベルに該当するCANラベル値列のフィールド用の領域が送信バッファ14内にある場合には(OP302:YES)、処理がOP304へ進む。処理対象のCANラベルに該当するCANラベル値列のフィールド用の領域が送信バッファ14内にない場合には(OP302:NO)、処理がOP303へ進む。
【0097】
OP303では、制御部13は、送信バッファ14内の該当するCAN ID個別のCANメッセージ列のフィールド用の領域内に、処理対象のCANラベルに該当するCANラベル値列のフィールド用の領域を確保する。OP304では、制御部13は、処理対象のCANラベルに該当するCANラベル値列のフィールド用の領域に、処理対象のCANラベル値を追加する。処理対象のCANラベル値は、該当フィールド内のCANラベル値列の末尾に追加される。その後、図10の処理が終了し、処理が図9のOP208へ進む。
【0098】
CANメッセージ内のCANラベル及びCANラベル値のセットについては、図9及び図10に示される処理において、CANメッセージに含まれる順で処理される。これによって、CANラベル値列のフィールドの送信バッファ14への格納順もCANメッセージ内のCANラベル及びCANラベル値の並び順と同じになる。
【0099】
図11は、インデックス作成処理のフローチャートの一例である。図11に示される処理は、図8のOP106において実行される処理である。OP401からOP403の処理は、電文本体に含まれるCANメッセージ列の各フィールドについて格納順に繰り返し実行される。図11では、OP401からOP403の処理対象のCANメッセージ列のフィールドを、対象のCANメッセージ列のフィールド、と称する。
【0100】
OP401では、制御部13は、対象のCANメッセージ列のフィールドのCAN IDのメッセージ列情報のフィールド用の領域を、送信バッファ14内のインデックス用の領域内に確保する。OP402では、制御部13は、対象のCANメッセージ列のフィールドのオフセットとサイズとを、それぞれ、該当のCAN IDのメッセージ列情報のフィールドに追加する。対象のCANメッセージ列のフィールドのオフセットとサイズとは、それぞれ、該当のフィールド内の値の列の末尾に追加される。
【0101】
OP403では、制御部13は、対象のCANメッセージ列のフィールドにおけるラベル値列の開始位置を示すアドレスを、該当のCAN IDのメッセージ列情報のフィールド内のラベル値情報のフィールドに追加する。対象のCANメッセージ列のフィールドにおけるラベル値列の開始位置を示すアドレスは、対象のCANメッセージ列のフィールド内のラベル値列の並び順と同じ順で並べられる。その後、対象のCANメッセージ列のフィールドの次のCANメッセージ列のフィールドについてOP401からOP403の処理が開始される、又は、電文本体に含まれるすべてのCANメッセージ列のフィールドについて処理が終了した場合には、処理が図8のOP107へ進む。
【0102】
<第1実施形態の作用効果>
第1実施形態では、1収集周期の間に収集された複数のCANメッセージをCAN IDごとに集約し、且つ、CAN IDの集約した中でさらにCANラベルごとにCANラベル値を集約する。これによって、似通った値をまとめることができ、圧縮率を向上させることができる。また、集約された値は圧縮の移動窓のサイズの単位となるように調節されてから列化されるので、似通った値の出現率を向上させることができ、圧縮率を向上させることができる。
【0103】
また、電文本体ともにインデックスもサーバ2へ送信されるので、受信側のサーバ2は、所望のCAN ID及びCANラベルのデータを検索しやすくなる。したがって、第1実施形態によれば、受信側のサーバ2の処理負荷も軽減させることができる。また、電文本体では、それぞれのフィールドは、受信順で値が格納されているので、例えば、CANラベル値列から特定のCANラベルの値を連続的に読み出すことができる。
【0104】
<変形例>
電文本体のCANメッセージ列のフィールド内は、図5に示される例のようにCANラベルごとにCANラベル値を集約したCANラベル値列を含む構成に限定されない。変形例では、第1実施形態とは、電文本体のCANメッセージ列のフィールド内の構成が異なる。
【0105】
図12は、変形例に係る列化電文のフォーマットの一例を示す図である。変形例では、CANメッセージ列のフィールドには、CANメッセージ列のフィールドではなく、レコードのフィールドが含まれる。レコードとは、1つのCANメッセージに相当する。1収集周期において、同じCAN IDのCANメッセージのうち、受信順番がM番目(M:正の整数)のCANメッセージを、M番目のレコード、又は、レコード#M-1と表記する。例えば、図5の例における時間窓#0内のCANメッセージ#Bは、受信バッファ#XにおいてCAN ID=BのCAMメッセージ中の1番目のレコードとなる。また、図5の例における時間窓#0内のCANメッセージ#Bは、送信バッファ#YのCANメッセージ列#Bのフィールドにおけるレコード#1に相当する。
【0106】
レコードのフィールドには、該当するCANメッセージに含まれるCANラベルとCANラベル値とのセットがすべて列化されて含まれる。変形例でもCANラベルの値とCANラベル値との値は、それぞれ、圧縮の移動窓のサイズの単位となるように、第1実施形態と同様に、データ長が調整されて列化される。レコードのフィールドはCANメッセージの受信順に並べられる。
【0107】
図13は、変形例に係るインデックスのフォーマットの一例でである。変形例では、インデックス内のCANメッセージ列情報のフィールドには、CANラベル値情報の代わりにレコード情報のフィールドが含まれる。レコード情報のフィールドには、例えば、列化電文における該当のCANメッセージ列のフィールドにおける、該当のレコードのフィールドの開始位置のアドレスが格納される。レコード情報のフィールドは、電文本体におけるCANメッセージ列のフィールドにおけるレコードのフィールドと同じ順、すなわち、CANメッセージの受信順で格納される。
【0108】
変形例によれば、電文本体におけるCANメッセージ列のフィールド内の構成が異なる場合でも、圧縮率を向上させることができる。
【0109】
<その他の変形例>
上記の実施形態はあくまでも一例であって、本開示はその要旨を逸脱しない範囲内で適宜変更して実施しうる。
【0110】
第1実施形態では、CANネットワークにおいてCANメッセージを収集し、集約して送信する例について説明された。第1実施形態で説明された技術は、CANネットワークに限定されず、様々なネットワークに適用することができる。第1実施形態で説明された技術を適用可能なネットワークには、例えば、センサネットワーク、エッジコンピューティングが導入されているネットワーク、及び、IoTネットワークがある。第1実施形態で説明された技術の適用することで、適用先のネットワークに依らず、メッセージを集約
する装置が、複数のメッセージに含まれる情報を種別ごとに集約し、圧縮して送信する。
【0111】
本開示において説明した処理や手段は、技術的な矛盾が生じない限りにおいて、自由に組み合わせて実施することができる。
【0112】
また、1つの装置が行うものとして説明した処理が、複数の装置によって分担して実行されてもよい。あるいは、異なる装置が行うものとして説明した処理が、1つの装置によって実行されても構わない。コンピュータシステムにおいて、各機能をどのようなハードウェア構成(サーバ構成)によって実現するかは柔軟に変更可能である。
【0113】
本開示は、上記の実施形態で説明した機能を実装したコンピュータプログラムをコンピュータに供給し、当該コンピュータが有する1つ以上のプロセッサがプログラムを読み出して実行することによっても実現可能である。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な非一時的なコンピュータ可読記憶媒体によってコンピュータに提供されてもよいし、ネットワークを介してコンピュータに提供されてもよい。非一時的なコンピュータ可読記憶媒体は、例えば、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクドライブ(HDD)等)、光ディスク(CD-ROM、DVDディスク、ブルーレイディスク等)など任意のタイプのディスク、読み込み専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体を含む。
【符号の説明】
【0114】
1・・ECU
2・・サーバ
10・・車両
11・・受信部
12・・受信バッファ
13・・制御部
14・・送信バッファ
15・・送信部
100・・走行データ収集システム
101・・CPU
102・・メモリ
103・・補助記憶装置
104・・通信部
105・・CANインタフェース
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13