(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-11
(54)【発明の名称】遠隔車両通信ビットレートの決定
(51)【国際特許分類】
H04L 69/28 20220101AFI20240604BHJP
B60R 16/02 20060101ALI20240604BHJP
【FI】
H04L69/28
B60R16/02 650J
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023574234
(86)(22)【出願日】2022-05-31
(85)【翻訳文提出日】2024-01-25
(86)【国際出願番号】 US2022072654
(87)【国際公開番号】W WO2022256794
(87)【国際公開日】2022-12-08
(32)【優先日】2021-06-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】517425103
【氏名又は名称】リペアリファイ インコーポレイテッド
【氏名又は名称原語表記】Repairify,Inc.
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】エドガー、マイケル パトリック
(57)【要約】
車両の車載診断(OBD)システムと遠隔通信を行う方法は、車両通信装置を車両のOBDシステムのコネクタに接続することと、遠隔通信装置を車両ツール装置のコネクタに接続することと、車両通信装置と遠隔通信装置との間のネットワーク通信リンクを確立することとを含む。車両通信装置は、コネクタを介して車両のOBDシステムから車両通信装置において複数の通信を受信する。ある時間間隔にわたって受信された複数の通信のビットストリームが分析される。ビットストリームの分析に基づいて1つまたは複数のビットパルスの幅が推定される。1つまたは複数のビットパルスの推定された幅に基づいてOBDシステムのビットレートが特定される。OBDシステムの特定されたビットレートに基づいて、車両通信装置と遠隔通信装置との間の確立されたネットワーク通信リンクを使用して、OBDシステムとツール装置との間の双方向通信が確立される。
【特許請求の範囲】
【請求項1】
車両の車載診断(OBD)システムと遠隔通信を行うための方法であって、
車両通信装置を車両のOBDシステムのコネクタに接続することと、
遠隔ツール側通信装置を車両ツール装置のコネクタに接続することと、
前記車両通信装置と遠隔通信装置との間にネットワーク通信リンクを確立することと、
前記車両側通信装置またはツール側通信装置において、それぞれ接続された前記車両のOBDシステムまたはツール装置から、前記OBDシステムまたはツール装置のそれぞれの前記コネクタを介して複数の通信を受信することと、
ある時間間隔にわたって受信された前記複数の通信のビットストリームを分析することと、
前記ビットストリームの前記分析に基づいて1つまたは複数のビットパルスの幅を推定することと、
前記1つまたは複数のビットパルスの推定された前記幅に基づいて前記OBDシステムのビットレートを特定することと、
前記OBDシステムの特定された前記ビットレートに基づいて、前記車両通信装置と前記遠隔通信装置との間の確立された前記ネットワーク通信リンクを使用して、前記OBDシステムと前記ツール装置との間の双方向通信を確立することと、を備える方法。
【請求項2】
前記ビットストリームを分析することは、
前記ビットストリームの信号の1つまたは複数の対の立ち上がりエッジと立ち下がりエッジとの間の時間差を計算することを含み、
前記ビットレートを特定することは、
計算された前記時間差に基づいて複数の候補ビットレートのうちの1つを選択することを含む、請求項1に記載の方法。
【請求項3】
前記ビットレートを特定することは、前記OBDシステムの所定の同期プロトコルに基づく、請求項2に記載の方法。
【請求項4】
前記同期プロトコルは、ビットスタッフィングプロトコルを含み、少なくとも1つの極性変化が、前記OBDシステムからの前記受信された通信における同じ極性の5つの連続するビットの後に前記信号において挿入される、請求項3に記載の方法。
【請求項5】
計算された前記時間差は、複数対の立ち上がりエッジと立ち下がりエッジとの間の複数の時間差を含み、
前記分析することは、
前記複数の時間差を、同じ極性の可能性のある複数の連続ビットの可能性のある総送信時間と比較することを含む、請求項2に記載の方法。
【請求項6】
前記複数の時間差の各々は、1つまたは複数の候補ビットレートと関連し、前記OBDシステムの前記ビットレートは、前記複数の時間差の組み合わせと単一の候補ビットレートとの関連に基づいて特定される、請求項5に記載の方法。
【請求項7】
前記複数の時間差の各々は、1つまたは複数の候補ビットレートと関連し、前記OBDシステムの前記ビットレートは、前記複数の時間差の組み合わせと複数のビットレートのうちの最も可能性の高いビットレートとの関連に基づいて特定される、請求項5に記載の方法。
【請求項8】
前記ビットストリームの信号の1つまたは複数の対の立ち上がりエッジと立ち下がりエッジとの間の時間差を計算することは、前記OBDシステムのビットレートが特定されるまで、または最大回数の反復が行われるまで反復される、請求項2に記載の方法。
【請求項9】
前記複数の候補ビットレートが、50kHz、100kHz、125kHz、250kHz、または500kHzのうちの1つまたは複数を含む、請求項2に記載の方法。
【請求項10】
ある時間間隔にわたって前記受信された複数の通信の前記ビットストリームを分析することは、
クロックサイクルをカウントして前記1つまたは複数のビットパルスの前記幅を推定するために前記車両通信装置のオンボードクロックを動作させることを含む、請求項1に記載の方法。
【請求項11】
前記双方向通信を確立することは、
前記特定されたビットレートを使用して、前記車両のOBDシステムの前記コネクタを介して前記車両通信装置から通信することと、
前記特定されたビットレートを使用して、前記車両ツール装置の前記コネクタを介して前記遠隔通信装置から通信することと、を含む、請求項1に記載の方法。
【請求項12】
車載診断(OBD)車両通信のためのシステムであって、
車両のOBDシステムに接続するように適合された第1のピンコネクタと、ネットワーク通信を実行するように構成された第1のネットワークインタフェースとを含む車両側通信装置と、
車両ツール装置に接続するように適合された第2のピンコネクタと、前記車両側通信装置とのネットワーク通信を実行するように構成された第2のネットワークインタフェースとを備える遠隔ツール側通信装置と、
前記車両側通信装置またはツール側通信装置のうちの少なくとも1つは、1つまたは複数のプロセッサを含み、該1つまたは複数のプロセッサは、対応する前記車両側通信装置またはツール側通信装置に、
前記対応する車両側通信装置またはツール側通信装置において、対応する前記第1のピンコネクタまたは第2のピンコネクタを介して対応する前記車両のOBDシステムまたは車両ツール装置から通信を受信することと、
ある時間間隔にわたって受信された前記複数の通信のビットストリームを分析することと、
前記ビットストリームの前記分析に基づいて1つまたは複数のビットパルスの幅を推定することと、
前記1つまたは複数のビットパルスの推定された前記幅に基づいて前記OBDシステムのビットレートを特定することと、
前記OBDシステムの特定された前記ビットレートに基づいて、前記車両側通信装置と前記遠隔ツール側通信装置との間のネットワーク通信リンクを使用して、前記OBDシステムと前記車両ツール装置との間の双方向通信を確立することと、を実行させるようにプログラムされ且つ構成されている、システム。
【請求項13】
前記ビットストリームを分析することは、
前記ビットストリームの信号の1つまたは複数の対の立ち上がりエッジと立ち下がりエッジとの間の時間差を計算することを含み、
前記ビットレートを特定することは、
計算された前記時間差に基づいて複数の候補ビットレートのうちの1つを選択することを含む、請求項12に記載のシステム。
【請求項14】
前記ビットレートを特定することは、前記OBDシステムの所定の同期プロトコルに基づく、請求項13に記載のシステム。
【請求項15】
前記同期プロトコルは、ビットスタッフィングプロトコルを含み、少なくとも1つの極性変化が、前記OBDシステムからの前記受信された複数の通信における同じ極性の5つの連続するビットの後に前記信号において挿入される、請求項14に記載のシステム。
【請求項16】
計算された前記時間差は、複数対の立ち上がりエッジと立ち下がりエッジとの間の複数の時間差を含み、
前記分析することは、
前記複数の時間差を、同じ極性の可能性のある複数の連続ビットの可能性のある総送信時間と比較することを含む、請求項13に記載のシステム。
【請求項17】
前記複数の時間差の各々は、1つまたは複数の候補ビットレートと関連し、前記OBDシステムの前記ビットレートは、前記複数の時間差の組み合わせと単一の候補ビットレートとの関連に基づいて特定される、請求項13に記載のシステム。
【請求項18】
前記複数の時間差の各々は、1つまたは複数の候補ビットレートと関連し、前記OBDシステムの前記ビットレートは、前記複数の時間差の組み合わせと複数のビットレートのうちの最も可能性の高いビットレートとの関連に基づいて特定される、請求項17に記載のシステム。
【請求項19】
前記ビットストリームの信号の1つまたは複数の対の立ち上がりエッジと立ち下がりエッジとの間の時間差を計算することは、前記OBDシステムのビットレートが特定されるまで、または最大回数の反復が行われるまで反復される、請求項13に記載のシステム。
【請求項20】
前記複数の候補ビットレートが、50kHz、100kHz、125kHz、250kHz、または500kHzのうちの1つまたは複数を含む、請求項13に記載のシステム。
【請求項21】
前記車両通信装置は、オンボードクロックを含み、
ある時間間隔にわたって前記受信された複数の通信の前記ビットストリームを分析することは、
前記1つまたは複数のビットパルスの前記幅を推定するためにクロックサイクルをカウントするために前記オンボードクロックを動作させることを含む、請求項12に記載のシステム。
【請求項22】
前記双方向通信を確立することは、
前記特定されたビットレートを使用して、前記車両のOBDシステムの前記コネクタを介して前記車両通信装置から通信することと、
前記特定されたビットレートを使用して、前記車両ツール装置の前記コネクタを介して前記遠隔通信装置から通信することと、を含む、請求項12に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、車両システム通信を実行する方法および装置に関する。
【背景技術】
【0002】
関連技術の説明
車載診断(OBD : On-board diagnostics)システムは、車両所有者または技術者が、車両内の様々なモジュール、システム、およびサブシステムに関する重要な情報にアクセスし、それらをプログラムすることを可能にする。製造業者は、長年にわたって車両にOBDシステムを搭載してきた。従来の修理設定では、技術者は、車両のデータリンクコネクタ(DLC : data link connector)を使用して所与の車両のOBDシステムとインタフェース接続するように適合された専用スキャンツール(scan tool)を利用する。多くのそのようなOBDシステムは、車両の相互接続されたサブシステム間の通信を可能にする車両のコントローラエリアネットワーク(CAN : controller area network)を介して動作する。スキャンツールは、診断目的のために車両のモジュール、システム、およびサブシステムに関するデータを読み出すことができる一方で、モジュール、システム、およびサブシステムのいくつかの再プログラミングも可能にする。典型的には、これらのスキャンツールは、車両のDLCに差し込むことができる一端にプラグを有するケーブルを介して車両に直接接続された独立型ハンドヘルドコンピューティングデバイスである。
【0003】
車両診断システムおよび通信プロトコルのために多数の規格が導入されており、いくつかは、排気制御などの機能を記録(トラッキング : tracking)および検査するために義務付けられている。これらの通信規格は、例えば、OBD-1、OBD-II、SAE J2534、SAE J1850 PWM(パルス幅変調)、ISO 15765、ISO 9141-2などを含む。OBDシステムの1つの共通の標準化された特徴は、典型的には、車両のダッシュボードの下に配置される16ピンDLCの使用である。多くの車両製造業者は、この接続システムを利用し、基本的な診断および再プログラミング機能を実行するために公衆と共有される前述の通信規格を採用している。
【0004】
多くの製造業者はまた、これらの同じOBDシステムを使用して、車両内の様々な高度なコンピュータ化されたシステムを修理および更新する。パーソナルコンピュータおよび遠隔ネットワーキングシステムを利用することができるいくつかの診断/プログラミングツールが存在する。しかしながら、そのようなシステムを使用することに伴う問題は、所与の車両のOBDシステムと通信するためのプロトコルおよび他のパラメータを特定することであり、それは、複数の車両において大幅に異なる可能性があり、文書から容易に確認できない場合がある。これらのパラメータは、例えば、通信ビットレートを含んでもよい。ネットワーク通信装置などのOBDシステムとの遠隔通信を可能にする前に、OBDシステムの通信パラメータが特定されなければならない。
【発明の概要】
【0005】
本開示の複数の実施形態は、車載診断(OBD : on board diagnostics)システムと、そのような通信における問題に対処するために設計された遠隔スキャン/プログラミングツールとの間の通信を実装するためのシステムおよび方法を含む。通信システムは、OBDシステムコネクタ(例えば、DLC)に差し込まれるかまたは他の方法で接続されるように構成され、OBDシステムと複数の遠隔ネットワーク装置との間の双方向通信を可能にするネットワーク通信インタフェースを有する車両(または自動車)側通信装置を含む。このシステムはまた、ツール側(または遠隔)通信装置を含み、このツール側通信装置は、スキャン/プログラミングツールが車両のOBDシステムに対するコネクタであるかのようにツール側通信装置に差し込まれることを可能にするコネクタを有する。ツール側装置はまた、接続されたスキャン/プログラミングツールと、それぞれのネットワーク通信インタフェースを介して自動車側装置に接続されたOBDシステムとの間の双方向通信を可能にするネットワーク通信インタフェースを有する。
【0006】
いくつかの車両通信システムおよび/または車両ツールシステムでは、システムのビットレートは、プロトコル規格(例えば、OBD-IIを利用すること)によって設定または決定されることができる。いくつかのシステムでは、システムのビットレートは、(例えば、CANプロトコルのいくつかの実装形態では)標準化または公開されていない。いくつかの実施形態では、ビットレートが知られていない(例えば、標準化または公開されていない)場合、車両側装置は、ネットワーク通信を提供する前に、(車両側またはツール側通信装置のいずれかの)OBDシステムによって使用されるビットレートを特定するように構成されている。いくつかの実施形態では、ビットレートは、OBDシステム/ツールのOBDコネクタの通信出力(例えば、接続ピン上の信号)を監視し、監視中の経過時間を記録(トラッキング)する車両側装置/ツール側装置のオンボードコンピュータクロック(onboard computer clock)を使用することによって特定される。監視は、OBD出力の状態がいつ変化するか(例えば、信号の立ち上がりエッジまたは立ち下がりエッジ)を特定することと、オンボードクロックを使用して、そのような複数のイベント(例えば、複数のパルス幅)間の経過間隔を記録(トラッキング)することとを含む。1つまたは複数の記録(トラッキング)された経過間隔は、対応する通信ビットレートを特定するために分析される。いくつかの場合では、測定された間隔は、複数の候補ビットレート(possible bitrate)のうちの1つのみに対応し、そのビットレートは、次いで、使用のために選択される。いくつかの実施形態では、複数の候補が特定の候補に絞り込まれるまで、どのビットレートが使用されるかの可能性を狭めるために、複数の間隔が測定および分析される。
【0007】
本開示の実施形態は、特に図面を参照して以下に詳細に説明する。この明細書全体を通して、同様の要素は、説明される実施形態がどのようなものであっても、参照され、同じ参照番号によって参照される共通の要素を指す。特定の位置における特定の要素に関する特徴、属性、機能、相互関係は、特に明記しない限り、別の位置において同じ参照番号によって参照される場合にその要素に適用される。さらに、特定の力、重量、強度および同様の要件に適合するための正確な寸法および寸法比率は、以下の説明が読まれ理解された後、当業者の技能の範囲内であろう。
【0008】
全ての図面は、本開示の基本的な教示の説明を容易にするためにのみ描かれており、様々な実施形態の例を形成するための部品の数、位置、関係及び寸法に関する図面の拡張は、本開示が読まれ理解された後に説明されるか、または当業者の技能の範囲内にある。
【図面の簡単な説明】
【0009】
【
図1】
図1は、いくつかの実施形態による遠隔車両通信システムの説明図である。
【
図2A】
図2Aは、いくつかの実施形態による車両側通信装置の説明図である。
【
図2B】
図2Bは、いくつかの実施形態による車両側通信装置の複数の構成要素の例示的なブロック図である。
【
図3】
図3は、いくつかの実施形態による車載車両診断システムと遠隔通信を行うためのプロセスフロー図である。
【
図4】
図4は、いくつかの実施形態による車載車両診断システムと遠隔通信を行うためのプロセスフロー図である。
【
図5】
図5は、いくつかの実施形態による通信装置のビットレートを決定するために使用される複数の信号および複数の装置レジスタの例示的なチャートである。
【
図6A】
図6Aは、5ビットスタッフィングプロトコルを使用する例示的なビットストリームを示す。
【
図6B】
図6Bは、ビットレートと、特定の期間中に送信されるそれぞれのビット数との表である。
【
図7】
図7は、いくつかの実施形態による特定のビット数およびビットレートに対するタイマー増分の表である。
【
図8】
図8は、いくつかの実施形態による車載車両診断システムの複数の候補ビットレートからビットレートを選択するためのプロセスフロー図である。
【
図9】
図9は、いくつかの実施形態による車載車両診断システムの選択された複数のビットレートに対する可能性のあるパルス幅の表である。
【発明を実施するための形態】
【0010】
本開示の複数の実施形態が明確に理解され、容易に実施され得るように、本開示の特定の実施形態を、添付の図面を参照してさらに詳細に説明する。これらの実施形態の説明は、例としてのみ提示され、本開示の範囲を限定するものではない。要素または層が、別の要素または層「の上にある」、「に接続される」、「に結合される」、または「に隣接する」と言及されるとき、それは、他の要素または層の直接的に上にある、他の要素または層に直接的に接続される、結合される、または隣接することができ、あるいは介在する複数の要素または複数の層が存在してもよいことを理解されたい。対照的に、要素が別の要素または層「の直接的に上にある」、「に直接的に接続される」、「に直接的に結合される」、または「に直接的に隣接する」と言及される場合、介在要素または層は存在しない。
【0011】
図1は、いくつかの実施形態による遠隔車両通信システムの説明図である。車両側通信装置120は、車両100の車載診断(OBD : On-Board Diagnostics)システムに接続されている。いくつかの実施形態において、車両側通信装置120は、車両100の内蔵コネクタ(例えば、
図2Aの16ピンコネクタ215)を介して接続されている。車両側通信装置120は、ネットワークアダプタなどを介して広域ネットワーク(WAN : wide-area network)125(例えば、インターネット)にさらに接続され得る。診断/プログラミングツール150(例えば、「スキャンツール(scan tool)」)は、WAN125にさらに接続されるツール側通信装置140に接続される。
【0012】
ツール150は、車両のOBDシステムを通じて車両(例えば、車両100)の診断/プログラミングを実行するように構成された診断/プログラミングソフトウェアがインストールされたコンピュータであり得る。ツール150は、複数のタイプの車両と共に使用するために設定可能/選択可能である複数のツールを含むツールシステム(例えば、複数のコンピュータ/複数のデバイスのネットワークシステム)であり得る。ツール150は、専用(例えば、モバイル/ハンドヘルド)スキャンツールであってもよい。デバイスおよび/またはソフトウェアは、車両の製造業者(例えば、OEMスキャンツール)によって認証/生産され、(例えば、内蔵OBDコネクタを介して直接的に)車両との直接/ローカル双方向接続を確立するように設計され得る。ネットワークサーバー130および関連するデータベースシステム160は、ツール150、車両側通信装置120、および/またはツール側通信装置140の動作/更新を支援するために、ローカルエリアネットワーク(LAN : local area network)145および/またはWAN125を介して接続され得る。データベースシステム160は、多種多様な年数/型/モデルの複数の車両およびそれらのOBDシステムに対して診断/プログラミングを実行するために複数の設定および/または複数のツールの配布/保守をするために構成され得る。
【0013】
ツール側装置140および車両側装置120は、互いに通信するように構成され、それによって、ツール150と車両100のOBDシステムとの間の通信を可能にする。いくつかの実施形態では、ツール側装置140と車両側装置120との間の接続は、車両100とツール150との間の直接的な有線接続を模倣または再現するように使用される。車両のOBDシステムと通信するために、ツール側装置は、本明細書においてさらに説明されるようなOBDシステムの通信ビットレートを特定するように構成されている。いくつかの実施形態では、ビットレートは、OBDシステムから送信される複数の通信(communications)を監視し、既知の複数の時間間隔における通信信号のビット状態のトグリング(toggling)を分析することによって決定される。
【0014】
いくつかの実施形態では、追加の複数の遠隔装置(例えば、遠隔装置)が、WAN125および/またはLAN145を介して、ツール側装置140、ツール150、サーバー170/データベースシステム160、車両側装置120、および/または車両100を動作させ、設定し、および/またはそれらと通信するために使用され得る。例えば、遠隔の自動車の店舗は、遠隔のユーザー/店舗装置110を使用して、ツール150と車両100との間の遠隔プログラミング/診断セッションを可能にする/監視することができる。
【0015】
図2Aは、いくつかの実施形態による車両側通信装置の説明図である。車両側装置200は、車両のOBDシステムなどを通じて車両210と通信するように構成されている。車両側装置は、車両のOBDコネクタ(例えば、標準化された16ピンコネクタ)に直接的に差し込まれるように適合されたケーブルおよびコネクタ215を含み得る。車両のOBDシステムは、例えば、「1」または「0」のビットを反映するように、異なる複数のピンを「オン」または「オフ」として信号伝達することによって、コネクタを介して信号を通信し、特定の周波数(またはビットレート)でこれらの状態を変調または維持してもよい。車両側装置200は、OBDシステムからの複数の通信を効果的に読み取り、それらをツール側装置(例えば、
図1のツール側装置140)に転送するために、車両のOBDシステムのビットレートに適合するように設定される。ツール側装置140はまた、車両によって使用されるビットレートを反映するように、ツール150とのその複数の通信を適合させる必要があり得る。
【0016】
図2Bは、いくつかの実施形態による車両側通信装置の複数のコンピューティングコンポーネント(computing components)の例示的なブロック図である。複数のコンピューティングコンポーネント220は、マイクロプロセッサ240、ディスプレイ225、および入力回路230を含む。マイクロプロセッサ240は、読み出し専用メモリ(ROM)245、メモリレジスタ(memory registers)250、およびタイマー回路またはクロック255を含み、これらは、本明細書においてさらに説明されるようなこれらのビットレートを特定するために、接続されたOBDシステムからの信号変化のタイミングを監視/記録(トラッキング)するために使用される。
【0017】
車両通信インタフェース265は、(例えば、ケーブル及びコネクタ215を介して接続するための)OBD接続インタフェースを含んでもよい。車両通信インタフェース265は、通信される特定の車両/OBDシステムによって使用される複数のピンに対応するように構成され得る複数の特定のピン(例えば、コネクタ215に示されるような1~16)を介して通信をアクティブ化/非アクティブ化する(activates/deactivates)ピンセレクタ(pin selector)260を含んでもよい。いくつかの実施形態では、ピンセレクタは、特定の車両210と接続するための情報(例えば、VINおよびピン設定の記録を有するデータベース)に基づいて設定される。ネットワークインタフェース235は、ネットワークを介して(例えば、WAN125を介して)、遠隔ツール側通信装置(例えば、ツール側装置140)と、さらに、接続されたプログラミング/診断ツール(例えば、
図1のツール150)とを含む他のシステムと通信するために利用される。
【0018】
マイクロプロセッサ240は、ハードウェア駆動型割込み(hardware-driven interrupts)およびメモリレジスタ250を使用することなどによって、車両のOBDシステムから受信される通信のビットレートを特定するための複数の命令でプログラムされ得る。プログラムは、最初にRAM270にロードされ、外部および/または内部記憶デバイス(例えば、ディスクドライブ、クラウドストレージ)から送信され、マイクロプロセッサ240によって実行されてもよい。いくつかの実施形態では、装置200の他のコンポーネントおよび/または外部接続デバイス(例えば、サーバー、ネットワークデバイス、記憶デバイス、および図示されない他のもの)は、単独で、または装置200と組み合わせて、本明細書において説明される特徴およびプロセスを実装するように構成されてもよい。
【0019】
(例えば、装置200において示されるような)コンピュータディスプレイ225は、通信プロセスおよび/または他の情報についての複数のステータスメッセージを提供するために使用され得る。ユーザー入力/出力(I/O)230(例えば、マウス、キーボード)は、複数の通信を開始し、複数のパラメータを選択し、および/または他の処理を実行/プログラムするなど、車両通信装置200を制御するためにオペレータによって使用され得る。いくつかの実施形態では、コンピュータディスプレイ225は、I/Oデバイス(例えば、タッチスクリーン)として動作する。
【0020】
車両側装置は、車両210からの複数の通信を、ネットワークインタフェース235を介して遠隔ツール側装置に通信することができる複数のパケットに変換するように構成されている。同様に、ネットワークインタフェース235は、ツール側通信装置/ツールから複数のパケットを受信し、それらのパケットを、コネクタ215を介して車両のOBDシステムに送信される対応する複数のピン信号に変換することができる。いくつかの実施形態では、ツール側通信装置は、ツールと通信するために、装置200と同様に構成されてもよい。
【0021】
図3は、いくつかの実施形態による車載車両診断システムと遠隔通信を行うためのプロセスフロー図である。ブロック310において、1つまたは複数の車両側通信装置(例えば、
図1の装置120)と1つまたは複数のツール側通信装置(例えば、
図1の装置140)との間の接続が確立される。ネットワークサーバー(例えば、
図1のサーバー130)は、例えば、(例えば、リンク、パラメータ等を設定するために)装置間の接続を可能にすることを支援し得る。いくつかの実施形態では、多数の車両側装置およびツール側装置が、1つまたは複数のネットワーク(例えば、LAN145およびWAN125)を介して接続される/利用可能である。ブロック320において、車両側通信装置及びツール側通信装置(例えば、通信装置120及び140)は、(例えば、ツール150と車両100との間の)通信セッションを可能にするために互いにペアリングされる(paired)。このようにして、例えば、通信装置間の互いに宛てられていない通信を無視/却下することができる。
【0022】
ブロック330において、車両側通信装置は、ツール側通信装置および車両側通信装置を介して車両とツールとの間の複数の通信を実行するために車両と接続される。接続は、例えば、車両OBDピンコネクタ、およびコネクタと車両側通信装置との間に延在するケーブルを介してもよい。
【0023】
いくつかの車両診断システムでは、車両またはツールの通信ビットレートは、(例えば、一般的なCANプロトコルの下で動作する多くのものほど)公開または標準化されていない。いくつかの実施形態では、特定のツールを用いてスキャン/プログラミングを実行することは、車両診断システムおよび/またはツールのビットレートを最初に特定することによって開始する。いくつかの車両診断システムでは、車両OBD/CANシステムまたはツールのビットレートは、特定の標準化されたプロトコルに準拠する(例えば、OBD-II規格に準拠する)ものなどで標準化または公開されている。
【0024】
ブロック340において、車両側通信装置またはツール側通信装置が車両および/またはツールと通信できるように、車両のOBDシステムおよび/またはツールのビットレートが特定される。いくつかの実施形態では、車両に関する情報(例えば、VIN番号、メーカー/モデル/マニュアルエントリ(manual entry))は、車両と通信するための適切なビットレート、プロトコルパラメータ、および/またはツールを使用するように車両側装置/ツール側装置を設定するために利用される。そのような場合には、いくつかの実施形態は、本明細書においてさらに説明されるように、ビットストリームを監視/分析することによってビットレートを独立して特定することなく続行する。いくつかの実施形態では、車両のOBDシステムによって使用されるビットレートは、OBDシステムについての追加の情報を取得することなく特定されることができない。
【0025】
いくつかの実施形態では、車両のOBDシステムまたはツールのビットレートは、車両のOBDシステムまたはツールからの複数の通信を監視することによって特定される。車両側装置またはツール側装置は、内蔵タイマーおよびレジスタ(例えば、
図2Bのタイマー255およびレジスタ250)を備えて構成されてもよく、OBDシステムからの複数の通信の状態(例えば、複数のピンのビット状態)の変化によって、(例えば、
図5に示されるように)通信装置はその変化(例えば、立ち下がりまたは立ち上がり)のタイミングをレジスタに記録する。次に、記録された複数の変化状態のタイミング差を分析して、車両からのOBD通信のビットレートを特定する。いくつかの実施形態では、車両またはツールによって使用されるプロトコル(例えば、ビットスタッフィングプロトコル(bit-stuffing protocol))に関する情報が、本明細書においてさらに説明されるように、ビットレートを特定するために使用される。
【0026】
ブロック350において、特定されたビットレートを使用して通信を可能にするために、OBDシステムのプロトコルおよび複数のプログラミングパラメータ(programming parameters)が決定される。プロトコルおよびパラメータは、車両に関する既知の情報(例えば、VIN番号、メーカー/モデル/マニュアルエントリ)に基づいて、または特定されたビットレートを使用したOBDシステム/ツールからの監視された複数の通信に基づいて決定され得る。例えば、車両/ツールからの特定の複数の通信を監視および解析することは、特定のプロトコルの手がかり(インジケータ)となり得る。
【0027】
ブロック360において、まだ選択されていない場合、ツール側装置(例えば、診断スキャンツール、車両プログラミングツール)が、ツール側通信装置と車両側通信装置との間の通信リンクを介して車両に対して診断および/またはプログラミングを実行するために選択される。ツールは、車両のOBDシステムと互換性があるように、特定されたビットレートおよび/またはプログラミング/複数のプロトコルパラメータに基づいて選択(または設定)され得る。
【0028】
ブロック370において、車両側装置と車両との間の特定されたビットレートを使用し、かつ選択されたツールを使用して、診断および/またはプログラミングが、ツール側通信装置と車両側通信装置との間の通信リンクを介して実行される。いくつかの実施形態では、ツール側装置とツールとの間のビットレートは、ツールと車両との間の直接的な通信を模倣するように、車両側装置と車両との間で使用されるビットレートと同じになるように(またはその逆に)設定される。
【0029】
図4は、いくつかの実施形態による車載車両診断システムと遠隔通信を行うためのプロセスフロー図である。ブロック410において、車両側通信装置とツール側通信装置との間でネットワーク通信が確立される。ツール側装置(および/またはネットワークサーバー)は、固有の識別子(たとえば、車両側通信装置のROM内のハードコードされた識別子(hard-coded identifier))によって車両側装置を特定/認証するように構成され得る。
【0030】
ブロック420において、車両側通信装置および/またはツール側通信装置が、車両のOBDシステムのコネクタ(例えば、
図2Aの16ピンコネクタ215)に接続される。いくつかの実施形態において、車両側通信装置は、車両のOBDコネクタのコネクタと互換性のあるコネクタ(例えば、16ピンコネクタ)を有する。複数の通信を遠隔ツールに転送する前に、車両側通信装置は、車両のOBDシステムのビットレートを特定/確認するために使用される。
【0031】
ブロック430において、車両側通信装置またはツール側通信装置は、「リスニングモード(listening mode)」においてOBDコネクタから送信される通信を監視する。いくつかの実施形態では、リスニングモード中に車両通信装置によって車両から受信された複数の通信は、ツール側通信装置に転送されない。例えば、車両のビットレートが特定されていない可能性があるので、これらの通信は適切に転送されない場合がある。
【0032】
ブロック440において、リスニングモード中に車両から受信された複数のビットは、車両のOBD/CANシステムによって使用されるビットレートを計算/特定するために分析される。これらのビットは、車両の出力チャネル(例えば、ピンコネクタのピン)の状態(例えば、ハイまたはロー)を監視することによって分析され得る。いくつかの実施形態では、車両側通信装置のタイミング回路(例えば、
図2Bのクロック/回路255)は、リスニングモード中にクロックサイクルをインクリメントする(increment)ように動作する(例えば、各インクリメント(increment)はナノ秒の数を表す)。いくつかの実施形態では、車両通信装置/ツール側通信装置は、(たとえば、ハードウェア駆動型割込みによって)トリガーされて、ピンの信号状態がトグルする(toggles)(すなわち、ローからハイに、またはハイからローになる)ときにタイミング回路によってクロックカウントを記録するように構成されている。
【0033】
ブロック450において、信号パルスの幅は、ビット状態変化のタイミングの分析に基づいて推定される。例えば、
図5は、いくつかの実施形態による、通信装置のビットレートを決定するために使用される信号および装置レジスタの例証的チャートを示す。「A」レジスタは、ピン状態の第1の変化(例えば、ハイからローまたはローからハイ)を記録するために使用され、「B」レジスタは、ピン状態の次の変化を記録するために使用される。いくつかの実施形態では、割込みハンドラー(interrupt handler)は、複数のレジスタから複数の値を読み出し、それらの差分を計算して、複数のタイマーティック(timer ticks)におけるパルスの幅(およびそれによって総時間)を特定する役割を有する。複数の信号についての複数のパルス幅を計算してもよい。
【0034】
再び
図4を参照すると、ブロック460において、ブロック450において推定された1つまたは複数のビットパルスの1つまたは複数の幅に基づいて、OBDシステムのビットレートが特定される。いくつかの実施形態では、いくつかのパルス幅が測定された後、特定の複数のビットレートが候補として排除され、単一の候補ビットレートが特定される。例えば、
図6Bおよび
図7の複数の候補において2マイクロ秒のパルス幅が検出された場合、唯一残っている候補は500kHzのビットレートである。
【0035】
いくつかの実施形態では、車両OBD/ツールシステムによって使用される規格または境界条件に関する情報(例えば、ビットスタッフィングプロトコル)が、OBDシステムのビットレートを特定するか、またはその決定を促進するために使用される。例えば、特定の車両メーカーおよびモデルが、複数の候補ビットレートのサブセットのみを使用することが知られている場合、この情報を使用して、記録された複数のパルス幅を有する複数のビットレートの候補を絞り込むことができる。
【0036】
図6Aを参照すると、例えば、OBD/ツールシステムは、ビットレートにかかわらず特定の同期プロトコルを使用することが知られている。いくつかのOBDシステムでは、2つのコントローラ間の同期を維持するために、例えば、同じ極性のビットの最大連続/連続数(例えば、5)を設定するビットスタッフィングプロトコルが使用される。
図6Aに示すように、同じ極性の5つの連続するビットの後に、反対の極性のビットが挿入される。このビットは、送信コントローラによって挿入され、受信コントローラにおいて除去され、送信されるデータの一部ではない。
図6Aは、「X」として示される複数のスタッフビット(stuffed bits)を有する論理レベルビットストリームを示すビットストリームを示す。ビットスタッフィングは同期のために設計されているが、いくつかの実施形態は、ビットレートの特定を促進するために最大数の連続ビットを利用する。
【0037】
図6Bは、複数のビットレートと、特定の期間中に送信されるそれぞれのビット数との表である。一実施形態では、選択された数の候補ビットレートが、5ビットスタッフィングプロトコルを利用する所与のOBDシステムに対して可能である。
図6Bの表は、各所与の候補ビットレートについての送信される特定のビット数に対する時間間隔を示し、
図7は、16MHzのクロックを用いた対応するクロックサイクルを示す。
【0038】
ブロック470では、ブロック460において特定されたビットレートを使用して、車両側通信装置および遠隔ツール側通信装置を介して車両とツールとの間で双方向通信が確立される。いくつかの実施形態では、選択されたビットレートは、例えば、選択されたビットレートを利用する複数の通信を監視し、誤ったビットレートを示すエラーが繰り返し発生しないことを判定することによって確認される。
【0039】
図8は、いくつかの実施形態による車載車両診断システムの複数の候補ビットレートからビットレートを選択するためのプロセスフロー図である。ブロック810において、車両OBD(またはツール)システムのビットレートを特定するためのプロセスは、車両通信装置がOBDシステムに接続された(またはツール側通信装置がツールに接続された)後に開始する。車両通信装置は、(例えば、OBDコネクタからの)複数のビット信号の状態の変化を監視するように構成されている。ブロック820において、既知の周波数(例えば、16MHz)で周期的に動作する(「ティック(ticks)」で動作する)自走クロック(free-running clock)(例えば、
図2Bのクロック255)が始動される。いくつかの実施形態では、使用/選択されるクロックの速度/周波数は、車載診断システムの予想される最大可能ビットレートに基づいている。いくつかの実施形態では、クロック周波数は、車両のOBDシステムの予想される最大可能ビットレートの少なくとも約2倍であるように調整/選択される。例えば、車両のOBDシステムの最大予想周波数が500kHzである場合、クロック速度/周波数は少なくとも約1MHzであるべきであり、ビットレート特定のために、16MHzクロックではなく4MHzクロックが利用され得る。当業者は、様々なクロック速度/周波数を決定し、調整するための様々な方法があることを認識するであろう。
【0040】
ブロック830において、複数のビット状態の変化の監視を使用して、ビットストリーム信号の第1の(立ち下がり/立ち上がり)エッジが検出される。エッジが検出されると、クロックサイクル数がコンピュータメモリに記録される。いくつかの実施形態では、割込み駆動型プロセスは、(例えば、
図5に示すように)ビットストリーム信号の立ち下がりエッジまたは立ち上がりエッジが検出されたときに、クロックのティックカウント(tick count)をメモリレジスタに記録する。ブロック840において、ビットストリーム信号の一対のエッジの第2のエッジが検出され、第2のエッジに関連付けられたクロックサイクル数がメモリに記録される。
【0041】
ブロック850において、第2のエッジが割込みに応答して記録された後、記録されたクロックカウントの差分が計算され、1つまたは複数のビットを表すパルスの幅がクロック周波数に基づいて推定される。いくつかの実施形態では、例えば、バス容量、コントローラ間のクロック差、およびOBDシステムのクロック遷移とのパルスの整合性(alignment)を含む種々の要因が、計算されたパルス幅の精度に影響を及ぼし得る。
【0042】
いくつかの実施形態では、複数のパルス幅を推定するときに公差(例えば、±5%公差)が利用され、それらの幅は、予想される可能性のある複数のパルス幅(expected possible pulse widths)へのそれらの近さ(proximity)に基づいて調整され得る。いくつかの実施形態では、推定された幅が可能性のある複数の幅に対して不確か(ambiguous)であるとき、この確かさは、ブロック860において行われる計算/推定で考慮される。例えば、可能性のある検出されたパルス幅が、許容誤差に基づいて8マイクロ秒または10マイクロ秒のいずれかであり得る場合、この確かさは、複数の候補ビットレートの排除/絞り込みにおいて考慮され得る。
【0043】
ブロック860において、1つまたは複数のパルスの特定された複数の幅は、それらの幅が単一の候補ビットレートまたは部分集合の複数の候補ビットレートと関連しているかどうかを判定するために分析される。例えば、
図9は、検出された複数のパルス幅および対応する複数の候補ビットレートの例示的な表を示す。いくつかの実施形態では、複数の候補ビットレートの選択は、車両に関する情報に基づくか、またはより広くは、自動車産業および/または製造業者内で一般に使用される複数のビットレートに基づいている。
【0044】
いくつかの実施形態において、エッジ検出は、ピン信号の出力をポーリング/監視する(例えば、マルチプロセスプログラムの)プロセスによって実行される。ビット信号状態が変化すると、クロックのクロックカウント数がプロセスによって(例えばメモリレジスタにおいて)記録される。最初の状態変化(例えば、第1のエッジ)が検出された後、プロセスは、追加の状態変化を監視し続ける。第2の状態変化が検出された後、複数のクロックカウントの値が記録され、ブロック860において、それぞれのパルス幅を計算/推定し、ビットレートを特定することができるかどうかを判定するために、割込みがコールされる(called)。いくつかの実施形態では、回路(例えば、エッジトリガー(edge-triggered)S-R回路)は、(すなわち、OBDシステムから)入力信号を受信し、立ち上がりまたは立ち下がりエッジが信号において生じるとき、出力(すなわち、トリガー/クロックカウント)をトリガーするように構成されることができる。
【0045】
複数の候補ビットレートの各々が候補として排除された後、プロセスは終了し、ビットレートがブロック870において選択される。例えば、
図9のる3つの候補ビットレートのうちの2つが排除される場合、残りのビットレートが選択される。いくつかの実施形態では、複数の候補ビットレートが、特定された1つまたは複数のパルス幅と関連している場合、プロセスは、ブロック855においてルーチンをリセットし、第1および第2のエッジを記録し、ブロック830において始まる追加の1つまたは複数のパルス幅を計算することによって続行する。このサイクルは、複数の候補ビットレートの各々が排除され、単一の候補ビットレートが残って選択されるまで継続することができる。いくつかの実施形態では、プロセスは、最大回数の反復が行われ、単一のビットレートが特定されていない場合に、「タイムアウト」/アボート(abort)し得る。
【0046】
いくつかの実施形態では、特定の数のパルスが記録された後に複数の推定されたパルス幅に基づいて特定の候補ビットレート以外の各候補ビットレートを容易に排除することができない場合、プロセスは、その特定の数のパルスが発生した後に追加の分析を実行することができる。例えば、プロセスは、ビットスタッフィングプロトコルを考慮に入れて、複数の候補をさらに排除することができる。特定の実施形態では、複数の特定のビットレートと直接的に関連する記録された複数のパルス幅は、その特定のビットレートについてのビットスタッフィングプロトコルに準拠するが別の候補ビットレートに準拠しないある幅を超える記録された存在する複数のパルス幅と比較され、それによって、1つまたは複数の候補ビットレートをさらに排除する。このプロセスは、特定の候補ビットレートを除く全ての候補ビットレートが排除されるまで、(所定数のパルス/パルス幅のシーケンスを分析することを)継続することができる。
【0047】
本明細書において説明される複数のプロセス(例えば、
図3、
図4、および
図8のプロセス)は、本明細書において図示および説明されるハードウェアとの使用に限定されない。それらは、任意のコンピューティング環境または処理環境において、コンピュータプログラムを実行することが可能である任意のタイプのマシンまたは一組のマシンとともに適用可能性を見出すことができる。本明細書において説明される複数のプロセスは、ハードウェア、ソフトウェア、またはその2つの組合せで実装されることができる。本明細書において説明される複数のプロセスは、プロセッサ、非一時的機械可読媒体、またはプロセッサによって可読である他の製品(揮発性および不揮発性メモリおよび/または記憶要素を含む)、少なくとも1つの入力デバイス、および1つまたは複数の出力デバイスをそれぞれ含むプログラム可能なコンピュータ/マシン上で実行されるコンピュータプログラムで実施され得る。プログラムコードは、入力デバイスを使用して入力されたデータに適用されて、本明細書において説明される複数のプロセスのいずれかを実行し、出力情報を生成することができる。
【0048】
システムを実装することに関連する(例えば、
図3、4、および8のプロセスにおける)複数の処理ブロックは、システムの複数の機能を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行されてもよい。システムの全部または一部は、例えば、プロセッサ、メモリ、プログラマブル論理デバイス、および/または論理ゲートのうちの少なくとも1つなどの電子デバイスを含む電子ハードウェア回路を使用して実装されてもよい。システムの全部または一部は、特殊用途論理回路(例えば、FPGA(field-programmable gate array)および/またはASIC(application-specific integrated circuit))として実装されてもよい。
【0049】
本明細書において説明される複数のプロセスは、説明される特定の複数の例に限定されない。例えば、
図3、
図4、8のプロセスは、例示された特定の処理順序に限定されない。むしろ、上述の結果を達成するために、必要に応じて、複数の処理ブロックのいずれかを再順序付けし、組み合わせ、または除去し、並列または直列に実行することができる。
【0050】
本明細書において記載された異なる複数の実施形態の複数の要素を組み合わせて、上記に具体的に記載されていない他の複数の実施形態を形成してもよい。単一の実施形態の文脈において説明される様々な要素はまた、別々に、または任意の適切なサブコンビネーションで提供されてもよい。本明細書に具体的に記載されていない他の複数の実施形態もまた、以下の特許請求の範囲内である。
【国際調査報告】