(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-06
(45)【発行日】2022-05-16
(54)【発明の名称】車両システムバスのための拡張可能マッピング
(51)【国際特許分類】
G06F 13/38 20060101AFI20220509BHJP
B60R 16/023 20060101ALI20220509BHJP
【FI】
G06F13/38 340A
B60R16/023 P
(21)【出願番号】P 2020529523
(86)(22)【出願日】2019-06-17
(86)【国際出願番号】 US2019037536
(87)【国際公開番号】W WO2020040848
(87)【国際公開日】2020-02-27
【審査請求日】2020-09-24
(32)【優先日】2018-08-21
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ワシルクジーク,トマズ・パウエル
(72)【発明者】
【氏名】カーシェンボイム,イェブゲニー・ルビノビッチ
(72)【発明者】
【氏名】パイク,スティーブ
(72)【発明者】
【氏名】ランドルフ,スコット
【審査官】松平 英
(56)【参考文献】
【文献】特開2014-162286(JP,A)
【文献】中国特許出願公開第107465695(CN,A)
【文献】中国特許出願公開第104571069(CN,A)
【文献】特開2000-257501(JP,A)
【文献】特開2000-310152(JP,A)
【文献】特開2000-310153(JP,A)
【文献】特開2005-236560(JP,A)
【文献】特開2011-109452(JP,A)
【文献】米国特許出願公開第2015/0191175(US,A1)
【文献】米国特許出願公開第2015/0234382(US,A1)
【文献】米国特許出願公開第2017/0072876(US,A1)
【文献】米国特許出願公開第2017/0344005(US,A1)
【文献】国際公開第2017/140367(WO,A1)
【文献】スミス クレイグ Craig Smith,カーハッカーズ・ハンドブック,初版,日本,株式会社オライリー・ジャパン,2017年12月25日,pp. 052-055,ISBN : 978-4-87311-823-9
(58)【調査した分野】(Int.Cl.,DB名)
B60R 9/00-11/06
16/00-21/13
21/34-99/00
G06F 3/00
3/18
13/10-13/14
13/20-13/42
H04L12/00-12/955
13/02-13/18
29/00-29/14
H04W 8/26
24/00
28/02
72/04
74/04
74/08
84/12
88/08
(57)【特許請求の範囲】
【請求項1】
車両の1つ以上のプロセッサが、オペレーティングシステムを実行することにより前記車両の1つ以上のシステムを制御するステップと、
前記1つ以上のプロセッサが、制御バスプロトコルに従い指定されたローカル制御メッセージと前記オペレーティングシステムがサポートする標準制御メッセージとの間の拡張可能マッピングを取得するステップと、
前記1つ以上のプロセッサが実行する前記オペレーティングシステムが、前記標準制御メッセージを生成するステップとを含み、前記標準制御メッセージは、前記1つ以上のシステムの動作状態変更を開始するためのコマンドセットの第1の表現を含み、
前記1つ以上のプロセッサが、前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより、前記ローカル制御メッセージを取得するステップを含み、前記ローカル制御メッセージは、前記コマンドセットの第2の表現を含み、
前記1つ以上のプロセッサが、前記1つ以上のプロセッサと前記1つ以上のシステムとに結合された制御バスを介して前記ローカル制御メッセージを送信することにより、前記1つ以上のシステムの前記動作状態変更を開始するステップを含
み、
前記標準制御メッセージをトランスレートすることは、
車両ハードウェア抽象化レイヤを実行することにより前記制御バスと前記オペレーティングシステムとの間のシムを提供することと、
前記車両ハードウェア抽象化レイヤが、前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより、前記ローカル制御メッセージを取得することとを含む、方法。
【請求項2】
前記拡張可能マッピングを取得するステップは、前記ローカル制御メッセージと前記標準制御メッセージとの間の前記拡張可能マッピングを規定するファイルを取得するステップを含む、請求項1に記載の方法。
【請求項3】
前記制御バスを介して第2のローカル制御メッセージを受けるステップと、
前記拡張可能マッピングに基づいて、前記第2のローカル制御メッセージをトランスレートすることにより、第2の標準制御メッセージを取得するステップと、
前記第2の標準制御メッセージに基づいて、1つ以上の車両パラメータの1つ以上の動作状態を更新するステップとをさらに含む、請求項1
または2に記載の方法。
【請求項4】
前記ローカル制御メッセージと前記標準制御メッセージとの間の異なるマッピングを規定する更新された拡張可能マッピングを取得するステップをさらに含む、請求項1~
3のいずれか1項に記載の方法。
【請求項5】
前記車両の前記1つ以上のシステムは前記車両の暖房・換気・空調システムを含む、請求項1~
4のいずれか1項に記載の方法。
【請求項6】
前記制御バスプロトコルはコントローラエリアネットワーク(CAN)プロトコルを含む、請求項1~
5のいずれか1項に記載の方法。
【請求項7】
前記ローカル制御メッセージは、DBCフォーマットまたはカヤックCAN定義(KCD)フォーマットのうちの一方に従ってフォーマットされたローカル制御メッセージを含む、請求項1~
6のいずれか1項に記載の方法。
【請求項8】
前記車両の前記1つ以上のシステムに対し、前記1つ以上のシステムの試験的動作状態変更を開始するための試験的コマンドセットを発行するステップと、
前記コマンドセットの発行に応じて、前記試験的動作状態変更の後に、前記1つ以上のシステムから、1つ以上の車両パラメータの各々の実際の動作状態のそれぞれの指示を取得するステップと、
前記試験的コマンドセットについて、前記1つ以上の車両パラメータの前記実際の動作状態の間の1つ以上の依存性を求めるステップと、
前記1つ以上の依存性に基づいて前記拡張可能マッピングを生成することにより、前記コマンドセットを前記ローカル制御メッセージから前記標準制御メッセージにトランスレートするステップとをさらに含む、請求項1~
7のいずれか1項に記載の方法。
【請求項9】
車両とやり取りするように構成されたデバイスであって、前記デバイスは、
制御バスプロトコルに従い指定されたローカル制御メッセージとオペレーティングシステムがサポートする標準制御メッセージとの間の拡張可能マッピングを格納するように構成されたメモリと、
1つ以上のプロセッサとを備え、
前記1つ以上のプロセッサは、前記オペレーティングシステムを実行することにより前記車両の1つ以上のシステムを制御するように構成され、前記オペレーティングシステムは、前記標準制御メッセージを生成するように構成され、前記標準制御メッセージは、前記1つ以上のシステムの動作状態変更を開始するためのコマンドセットの第1の表現を含み、
前記1つ以上のプロセッサは、前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより前記ローカル制御メッセージを取得するように構成され、前記ローカル制御メッセージは、前記コマンドセットの第2の表現を含み、
前記1つ以上のプロセッサは、前記1つ以上のプロセッサと前記1つ以上のシステムとに結合された制御バスを介して前記ローカル制御メッセージを送信することにより、前記1つ以上のシステムの前記動作状態変更を開始するように構成されて
おり、
前記1つ以上のプロセッサは、
車両ハードウェア抽象化レイヤを実行することにより前記制御バスと前記オペレーティングシステムとの間のシムを提供するように構成され、かつ
前記車両ハードウェア抽象化レイヤによって前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより、前記ローカル制御メッセージを取得するように構成されている、デバイス。
【請求項10】
前記1つ以上のプロセッサは、前記ローカル制御メッセージと前記標準制御メッセージとの間の前記拡張可能マッピングを規定するファイルを取得するように構成されている、請求項
9に記載のデバイス。
【請求項11】
前記1つ以上のプロセッサはさらに、
前記制御バスを介して第2のローカル制御メッセージを受けるように構成され、
前記拡張可能マッピングに基づいて、前記第2のローカル制御メッセージをトランスレートすることにより、第2の標準制御メッセージを取得するように構成され、かつ、
前記第2の標準制御メッセージに基づいて、1つ以上の車両パラメータの1つ以上の動作状態を更新するように構成されている、請求項
9または10に記載のデバイス。
【請求項12】
前記1つ以上のプロセッサはさらに、前記ローカル制御メッセージと前記標準制御メッセージとの間の異なるマッピングを規定する更新された拡張可能マッピングを取得するように構成されている、請求項
9~
11のいずれか1項に記載のデバイス。
【請求項13】
前記車両の前記1つ以上のシステムは前記車両の暖房・換気・空調システムを含む、請求項
9~
12のいずれか1項に記載のデバイス。
【請求項14】
前記制御バスプロトコルはコントローラエリアネットワーク(CAN)プロトコルを含む、請求項
9~
13のいずれか1項に記載のデバイス。
【請求項15】
前記ローカル制御メッセージは、DBCフォーマットまたはカヤックCAN定義(KCD)フォーマットのうちの一方に従ってフォーマットされたローカル制御メッセージを含む、請求項
9~
14のいずれか1項に記載のデバイス。
【請求項16】
命令が格納されたコンピュータ読取可能プログラムであって、前記命令は、実行されると、車両の1つ以上のプロセッサに、
オペレーティングシステムを実行することにより前記車両の1つ以上のシステムを制御することと、
制御バスプロトコルに従い指定されたローカル制御メッセージと前記オペレーティングシステムがサポートする標準制御メッセージとの間の拡張可能マッピングを取得することとを実行させ、前記オペレーティングシステムは前記標準制御メッセージを生成するように構成され、前記標準制御メッセージは、前記1つ以上のシステムの動作状態変更を開始するためのコマンドセットの第1の表現を含み、さらに、
前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより前記ローカル制御メッセージを取得することを実行させ、前記ローカル制御メッセージは、前記コマンドセットの第2の表現を含み、さらに、
前記1つ以上のプロセッサが、前記1つ以上のプロセッサと前記1つ以上のシステムとに結合された制御バスを介して前記ローカル制御メッセージを送信することにより、前記1つ以上のシステムの前記動作状態変更を開始することを実行さ
せ、
前記標準制御メッセージをトランスレートすることは、
車両ハードウェア抽象化レイヤを実行することにより前記制御バスと前記オペレーティングシステムとの間のシムを提供することと、
前記車両ハードウェア抽象化レイヤが、前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより、前記ローカル制御メッセージを取得することとを含む、コンピュータ読取可能プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、米国仮特許出願第62/720,701号に基づく利益を主張し、その全内容を、その全体が記載されているものとして本明細書に引用により援用する。
【背景技術】
【0002】
背景
車両は、暖房・換気・空調(HVAC)システム、(車内の光および/または車外の光を制御するための)照明システム、娯楽システム、(運転席および/または助手席の位置を制御するための)座席システムなどのような車両システムを制御するために使用する(グラフィカルユーザインターフェイス-GUI等の)インターフェイスを提供する、いわゆる「ヘッドユニット」またはその他の一体化されたコンピューティングデバイスを含み得る。ヘッドユニットは、車両システムに対して1つ以上のコマンド(「コマンドセット」と呼ぶこともできる)を発することにより、車両システムのうちの1つ以上の動作状態を変更することができる。(機能および動作双方の観点において)車両システムは同一製造者の異なるモデル間だけでなく異なる製造者のモデル間でも多岐にわたっているので、ヘッドユニットは、車両システムの最大の割合を総合的に制御するコマンドセットを出力するように構成すればよい。なぜなら、コマンドセットを手作業で構成すると時間もコストもかかるからである。
【0003】
さらに、製造者は、動作状態の各変更を実施するためにコマンドセットをスタティックにコーディング(または言い換えると「ハードコーディング」)することができる。すなわち、製造者は、車両ヘッドユニットが上記1つ以上のシステムと通信できるようにする特定の制御バスプロトコル(その一部はプロプライエタリであってもよい)に従うように、コマンドセットをスタティックにコーディングすることができる。製造者は、車両ヘッドユニットが実行するオペレーティングシステムをハードコーディングすることにより、制御バスプロトコルに従うコマンドセットを生成することができる。コマンドセットの各々は、制御バスによっておよび/または上記1つ以上のシステムの販売業者などによって異なり得るので、車両の特定の構成のためのコマンドセットのスタティックコーディングは時間がかかり、これは、車両モデル装備間でも異なる場合がある。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
概して、本開示の技術は、(車両ヘッドユニット等の)車両コンピューティングデバイスが車両システムバスのための拡張可能マッピングを適用できるようにすることに向けられている。すなわち、車両システムバスは、車両ヘッドユニットと車両の1つ以上のシステムとの間でコマンドセットを伝達するための、異なるプロプライエタリおよびオープン標準に従う場合がある。車両ヘッドユニットは、統一されたコマンドセット(または言い換えると標準コマンドセット)をサポートするオペレーティングシステムを実行することができるのに対し、車両システムバスは、複数の制御バスプロトコルのうちの特定の制御バスプロトコルに従って指定されたローカル制御メッセージを伝達することができる。当該技術の各種局面は、この特定のローカル制御メッセージをサポートするためにオペレーティングシステムをハードコーディングするのではなく、標準コマンドセットと、制御バスがサポートする特定の制御バスプロトコルに従うローカルコマンドセットとの間の拡張可能マッピングを、車両ヘッドユニットが取得することを可能にすることができる。
【0005】
よって、当該技術の各種局面は、オペレーティングシステム、制御バス、および/または車両システムのうちの1つ以上に対する更新に対応するためにある期間にわたって更新し得る拡張可能マッピングを、製造者が規定することを可能にすることができる。拡張可能マッピングは、標準コマンドセットとローカルコマンドセットとの間のトランスレーションを規定し、車両ヘッドユニットは、これを適用することにより、標準コマンドセットとローカルコマンドセットとの間のトランスレーションを自動的に行うことができる。当該技術の各種局面は、このようなマッピングをオペレーティングシステム内でスタティックにハードコーディングすることによってローカルコマンドセットのみをサポートするのではなく、拡張可能マッピングのみを規定すればよいので、車両ヘッドユニットオペレーティングシステムを開発できる速度を改善する、新規のまたは変化する制御バスプロトコルとの相互運用性(interoperability)を改善する、また、そうでなければローカルコマンドセットについてフル機能サポートを提供するこのようなオペレーティングシステムの迅速な開発に対応しつつ車両ヘッドユニットオペレーティングシステムの開発を改善することができる。
【0006】
さらに、当該技術の各種局面は、車両システムを制御するために車両ヘッドユニットがコマンドセットを適応させることを可能にすることができる。車両ヘッドユニットは、コマンドセットと車両システムの動作状態の変更との対応関係を求めるハードウェア抽象化レイヤ(hardware abstraction layer)(HAL)を実現するように構成することができる。HALは、これらの対応関係に基づいて、車両システムの(1つ以上の動作状態によって表される)追加機能をエクスポーズしようとして、コマンドセットを適応させることができる。よって、当該技術は、コマンドセットの手動構成に頼らずに特定のモデルおよび製造者に固有のコマンドセットをHALが自動的に決定することを可能にすることができる。
【0007】
この点において、当該技術の各種局面は、車両ヘッドユニット自体のより効率的な動作を促進することができる。すなわち、HALは、コマンドセットと動作状態変化との対応関係を決定し、この対応関係に基づいて、車両システムの動作状態の変化をより効率的に生じさせるようにコマンドセットを適応させることができる。当該技術は、多数のモデルおよび製造者が選択した車両システムに共通するがいくつかの車両システムにとっては(機能的ではあるものの)非効率的である可能性があるコマンドセットを発行するのではなく、車両システムに動作状態変更を効率的に実行させることによってプロセッササイクルを削減しメモリ帯域幅とそれとともに消費される元のメモリリソースとを節約し結果としてより効率的な電力消費を促進するコマンドセットを、HALが適応的に生成することを可能にすることができる。
【0008】
一例において、当該技術の各種局面は方法に向けられており、この方法は、車両の1つ以上のプロセッサがオペレーティングシステムを実行することにより車両の1つ以上のシステムを制御するステップと、1つ以上のプロセッサが、制御バスプロトコルに従い指定されたローカル制御メッセージとオペレーティングシステムがサポートする標準制御メッセージとの間の拡張可能マッピングを取得するステップと、1つ以上のプロセッサが実行するオペレーティングシステムが、標準制御メッセージを生成するステップとを含み、標準制御メッセージは、1つ以上のシステムの動作状態変更を開始するためのコマンドセットの第1の表現を含み、1つ以上のプロセッサが拡張可能マッピングに基づいて標準制御メッセージをトランスレートすることによりローカル制御メッセージを取得するステップを含み、ローカル制御メッセージはコマンドセットの第2の表現を含み、1つ以上のプロセッサが、1つ以上のプロセッサと1つ以上のシステムとに結合された制御バスを介してローカル制御メッセージを送信することにより、1つ以上のシステムの動作状態変更を開始するステップを含む。
【0009】
別の例において、当該技術の各種局面は、車両とやり取りするように構成されたデバイスに向けられており、このデバイスは、制御バスプロトコルに従い指定されたローカル制御メッセージとオペレーティングシステムがサポートする標準制御メッセージとの間の拡張可能マッピングを格納するように構成されたメモリと、1つ以上のプロセッサとを備え、1つ以上のプロセッサは、オペレーティングシステムを実行することにより車両の1つ以上のシステムを制御するように構成され、オペレーティングシステムは、標準制御メッセージを生成するように構成され、標準制御メッセージは、1つ以上のシステムの動作状態変更を開始するためのコマンドセットの第1の表現を含み、1つ以上のプロセッサは、拡張可能マッピングに基づいて標準制御メッセージをトランスレートすることによりローカル制御メッセージを取得するように構成され、ローカル制御メッセージは、コマンドセットの第2の表現を含み、1つ以上のプロセッサは、1つ以上のプロセッサと1つ以上のシステムとに結合された制御バスを介してローカル制御メッセージを送信することにより、1つ以上のシステムの動作状態変更を開始するように構成されている。
【0010】
別の例において、当該技術の各種局面は、命令が格納された非一時的なコンピュータ読取可能記憶媒体に向けられており、上記命令は、実行されると、車両ヘッドユニットの1つ以上のプロセッサに、オペレーティングシステムを実行することにより車両の1つ以上のシステムを制御することと、制御バスプロトコルに従い指定されたローカル制御メッセージとオペレーティングシステムがサポートする標準制御メッセージとの間の拡張可能マッピングを取得することとを実行させ、オペレーティングシステムは標準制御メッセージを生成するように構成され、標準制御メッセージは、1つ以上のシステムの動作状態変更を開始するためのコマンドセットの第1の表現を含み、さらに、拡張可能マッピングに基づいて標準制御メッセージをトランスレートすることによりローカル制御メッセージを取得することを実行させ、ローカル制御メッセージはコマンドセットの第2の表現を含み、さらに、1つ以上のプロセッサが、1つ以上のプロセッサと1つ以上のシステムとに結合された制御バスを介してローカル制御メッセージを送信することにより、1つ以上のシステムの動作状態変更を開始することを実行させる。
【0011】
別の例において、当該技術の各種局面は、第1の車両とインターフェイスする方法に向けられており、この方法は、プロセッサが、第1の車両の1つ以上のシステムに対し、1つ以上のシステムの動作状態変更を開始するためのコマンドセットを発行するステップと、コマンドセットの発行に応じて、動作状態変更後に、プロセッサが、1つ以上のシステムから、1つ以上の車両パラメータの各々の動作状態の指示(indication)を取得するステップと、プロセッサが、コマンドセットについて、1つ以上の車両パラメータの動作状態間の1つ以上の依存性(dependency)を求めるステップと、プロセッサが、1つ以上の依存性に基づいて、第1の車両の1つ以上のシステムと第2の車両の1つ以上のシステムとの間の可変性(variability)に対処する(accommodate)ようにコマンドセットを適応させるステップとを含む。
【0012】
別の例において、当該技術の各種局面は、第1の車両とインターフェイスするように構成されたデバイスに向けられており、ヘッドユニットは、第1の車両の1つ以上のシステムの動作状態変更を開始するためのコマンドセットを格納するように構成された1つ以上のメモリと、1つ以上のプロセッサとを備え、1つ以上のプロセッサは、第1の車両の1つ以上のシステムに対し、コマンドセットを発行するように構成され、コマンドセットの発行に応じて、動作状態変更後に、1つ以上のシステムから、1つ以上の車両パラメータの各々の動作状態の指示を取得するように構成され、コマンドセットについて、1つ以上の車両パラメータの動作状態間の1つ以上の依存性を求めるように構成され、1つ以上の依存性に基づいて、第1の車両の1つ以上のシステムと第2の車両の1つ以上のシステムとの間の可変性に対処するようにコマンドセットを適応させるように構成されている。
【0013】
別の例において、当該技術の各種局面は、実行されると車両の1つ以上のプロセッサに動作を実行させる命令が格納された非一時的なコンピュータ読取可能記憶媒体に向けられており、この動作は、車両の1つ以上のシステムに対し、1つ以上のシステムの動作状態変更を開始するためのコマンドセットを発行することと、コマンドセットの発行に応じて、動作状態変更後に、1つ以上のシステムから、1つ以上の車両パラメータの各々の動作状態の指示を取得することと、コマンドセットについて、1つ以上の車両パラメータの動作状態間の1つ以上の依存性を求めることと、1つ以上の依存性に基づいて、第1の車両の1つ以上のシステムと第2の車両の1つ以上のシステムとの間の可変性に対処するようにコマンドセットを適応させることとを含む。
【0014】
1つ以上の例の詳細を添付の図面および以下の説明に記載する。本開示のその他の特徴、目的、および利点は、上記説明および図面から、ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【0015】
【
図1】本開示に記載の技術の各種局面を実行するように構成された車両の一例を示すブロック図である。
【
図2A】
図1のヘッドユニットの一例をより詳細に示すブロック図である。
【
図2B】
図1のヘッドユニットの一例をより詳細に示すブロック図である。
【
図3】本開示に記載の技術の各種局面に従いコマンドセットを適応させる
図1に示されるハードウェア抽象化レイヤ(HAL)の一例を示す図である。
【
図4】本開示に記載の技術の各種局面に従い別のコマンドセットを適応させる
図1に示されるHALの一例を示す図である。
【
図5】本開示に記載の拡張可能マッピング技術の各種局面の実行における
図1のHALの動作例を示すフローチャートである。
【
図6】本開示に記載の技術の各種局面の実行における
図1のHALの動作例を示すフローチャートである。
【発明を実施するための形態】
【0016】
詳細な説明
図1は、本開示に記載の技術の各種局面を実行するように構成された一例としての車両10を示すブロック図である。
図1の例における車両10は、以下の説明では自動車であると想定する。しかしながら、本開示に記載の技術は、一人以上の乗員をある場所と別の場所との間で運ぶことができる任意の種類の車両、たとえば、オートバイ、バス、レクリエーショナル・ビークル(RV)、セミトレーラートラック、トラクターもしくはその他の種類の農機具、列車、飛行機、ドローン、ヘリコプター、個人用移動車両(personal transport vehicle)などに、適用することができる。
【0017】
図1の例において、車両10は、プロセッサ12と、グラフィックス処理装置(GPU)14と、システムメモリ16とを含む。いくつかの例において、プロセッサ12、GPU14、およびトランシーバモジュール(
図1では図示せず)が、集積回路(IC)として形成されてもよい。たとえば、ICは、チップパッケージ内の処理チップとみなすことができ、システムオンチップ(SoC)であってもよい。
【0018】
プロセッサ12およびGPU14の例は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、またはその他同等の集積もしくは離散論理回路を含むが、これらに限定される訳ではない。プロセッサ12は車両10の中央処理装置(CPU)を表していてもよい。いくつかの例において、GPU14は、グラフィック処理に適した超並列処理(massive parallel processing)能力をGPU14に与える集積および/または離散論理回路を含む専用ハードウェアであってもよい。いくつかの場合において、GPU14は、汎用処理能力を含んでいてもよく、汎用処理タスク(すなわち非グラフィックス関連タスク)を実現するときは汎用GPU(GPGPU)と呼ぶこともできる。専用GPU14として示されているが、GPU14は、下にある回路基板(いわゆる「マザーボード」等)に一体化された集積GPUを表していてもよく、そうでなければプロセッサ12に組み込まれていてもよい。
【0019】
プロセッサ12はさまざまな種類のアプリケーションを実行することができる。アプリケーションの例は、ウェブブラウザ、電子メールアプリケーション、スプレッドシート、ビデオゲーム、または、表示のために見える物体を生成するその他のアプリケーションを含む。システムメモリ16は、1つ以上のアプリケーションを実行するための命令を格納することができる。プロセッサ12は、アプリケーションを実行することにより、表示すべき画像コンテンツのグラフィックデータを生成する。プロセッサ12は、画像コンテンツのグラフィックデータを、プロセッサ12からGPU14に送信された命令またはコマンドに基づいてさらに処理されるようにGPU14に送信することができる。
【0020】
プロセッサ12は、アプリケーションプログラミングインターフェイス(API)に従ってGPU14と通信することができる。加えて、本開示に記載の技術は、APIに従って機能しなくてもよく、プロセッサ12およびGPU14は、GPU14との通信のために任意の技術を利用することができる。
【0021】
システムメモリ16は車両10のためのメモリを表していてもよい。システムメモリ16は、1つ以上のコンピュータ読取可能記憶媒体を含み得る。システムメモリ16の例は、ランダムアクセスメモリ(RAM)、電気的消去可能プログラム可能読出専用メモリ(EEPROM)、フラッシュメモリ、または、命令および/またはデータ構造の形態の所望のプログラムコードを搬送または格納するために使用することができコンピュータもしくはプロセッサからアクセスできる、その他の媒体を含むが、これらに限定される訳ではない。
【0022】
いくつかの局面において、システムメモリ16は、プロセッサ12について本開示に記載される機能をプロセッサ12に実行させる命令を含み得る。したがって、システムメモリ16は、実行されると1つ以上のプロセッサ(たとえばプロセッサ12)に各種機能を実行させる命令が格納された非一時的なコンピュータ読取可能記憶媒体であってもよい。
【0023】
システムメモリ16は非一時的な記憶媒体である。「非一時的」という用語は、記憶媒体が搬送波または伝搬信号で実施されるのではないことを示す。しかしながら、「非一時的」という用語は、システムメモリ16が移動できないことを意味するまたはそのコンテンツがスタティックであることを意味すると解釈されてはならない。一例として、システムメモリ16を車両10から取り出して別のデバイスに移動させてもよい。別の例として、実質的にシステムメモリ16と同様のメモリを自律車両10に挿入してもよい。特定の例において、非一時的な記憶媒体は、時間の経過に伴って変化し得るデータを(たとえばRAMに)格納してもよい。
【0024】
図1の例にさらに示されるように、車両10はディスプレイ20とユーザインターフェイス(user interface)22とを含み得る。ディスプレイ20は、任意の種類の、画像をその上に投影できるパッシブ反射スクリーン、または、画像を表示することができるアクティブ反射もしくは放射もしくは透過ディスプレイを表していてもよい(発光ダイオード(LED)ディスプレイ、有機LED(OLED)ディスプレイ、液晶ディスプレイ(LCD)、またはその他任意の種類のアクティブディスプレイなど)。車両10は、1つのディスプレイ20を含むものとして示されているが、車両10の車室全体に配置できる複数のディスプレイを含み得る。いくつかの例において、パッシブバージョンのディスプレイ20または特定種類のアクティブバージョンのディスプレイ20(たとえばOLEDディスプレイ)が、座席、テーブル、ルーフライナー、フローリング、窓(もしくは窓がないか少ない車両では壁)、または車室のその他の部分に、一体化されていてもよい。ディスプレイ20がパッシブディスプレイを表す場合、ディスプレイ20は、パッシブディスプレイ20に画像を投影するかそうでなければ再現することができるプロジェクタまたはその他の画像投影デバイスを含み得る。さらに、ディスプレイ20は、物理的な機器クラスタ(速度、回転数、エンジン温度などを示す)を仮想的に表す運転席側のダッシュボードに一体化されたディスプレイを含み得る。
【0025】
ディスプレイ20はまた、自律車両10と有線または無線通信するディスプレイを表していてもよい。たとえば、ディスプレイ20は、ラップトップコンピュータ、ヘッドアップディスプレイ、ヘッドマウントディスプレイ、拡張現実コンピューティングデバイスもしくはディスプレイ(「スマート眼鏡」等)、仮想現実コンピューティングデバイスもしくはディスプレイ、携帯電話(いわゆる「スマートフォン」を含む)、タブレットコンピュータ、ゲームシステム、または、車両10に一体化されたディスプレイの拡張部分としてもしくはその代わりに機能することができる別の種類のコンピューティングデバイス等のコンピューティングデバイスを、表していてもよい。
【0026】
ユーザインターフェイス22は、車両10の各種機能を制御するためにユーザがそれとインターフェイスすることができる任意の種類の物理または仮想インターフェイスを表していてもよい。ユーザインターフェイス22は、物理的なボタン、ノブ、スライダ、またはその他の物理制御機器を含み得る。また、ユーザインターフェイス22は、車両10の乗員が、一例としてタッチ感応式スクリーンを介してまたはタッチレスインターフェイスを介して、仮想ボタン、ノブ、スライダまたはその他の仮想インターフェイス要素とやり取りするための、仮想インターフェイスを含み得る。乗員は、ユーザインターフェイス22とインターフェイスすることにより、車両10内の環境、車両10による音声再生、車両10による動画再生、車両10を通じた送信(携帯電話の通話など)、または、車両10が実行できるその他任意の動作のうちの、1つ以上を制御することができる。
【0027】
ユーザインターフェイス22はまた、車両10に一体化されたディスプレイの拡張部分としてまたはその代わりに機能するときにディスプレイ20に拡張されるインターフェイスを表していてもよい。すなわち、ユーザインターフェイス22は、ヘッドアップディスプレイ(HUD)、拡張現実コンピューティングデバイス、仮想現実コンピューティングデバイスもしくはディスプレイ、タブレットコンピュータ、または上記さまざまな種類の拡張ディスプレイ以外のものを介して与えられる、仮想インターフェイスを含み得る。
【0028】
車両10の文脈において、ユーザインターフェイス22はさらに、車両10を手動でまたは半手動で制御するために使用される物理要素を表していてもよい。たとえば、ユーザインターフェイス22は、車両10の移動方向を制御するための1つ以上のハンドル、車両10の移動速度を制御するための1つ以上のペダル、1つ以上のハンドブレーキなどを含み得る。
【0029】
図1の例において、プロセッサ12、GPU14、システムメモリ16、ディスプレイ20、およびUI22は、自動車の文脈においてヘッドユニット24(または言い換えると「車両ヘッドユニット24」)と呼ばれるものを、少なくも一部、集合的に表していてもよい。ヘッドユニット24は、車両10のさまざまな部分とインターフェイスすることができるおよび/または乗員のための娯楽および/または車両10に関する情報を提供することができる(このようなヘッドユニットは「インフォテイメントユニット」または「インフォテイメントシステム」と呼ぶことができる)、任意の一体化されたまたは別個のコンピューティングデバイスを表していてもよい。
【0030】
図1の例にさらに示されるように、車両10は、複数の異なる車両システム26A~26N(「車両システム26」)を含み得る。車両システム26は、暖房・換気・空調(HVAC)システム、温度調整システム(たとえばHVACシステムに加えて暖房および/または冷却された座席を含み得る)、(車内照明および/または車外照明を提供するための)照明システム、(乗員の座席の位置を調整するための)座席制御システム、(バックミラー、サイドミラー、バイザーミラーなどを含む車内および/または車外のミラーを制御するための)ミラー制御システム、フロントガラスワイパー制御システム、(ラジオ再生、動画再生、画像表示などを制御するための)娯楽システム、(駐車支援、バックアップ支援などを制御するための)安全支援システム、(サンルーフおよび/またはムーンルーフを制御するための)サン/ムーンルーフ制御システム、ならびに、ヘッドユニット24等のヘッドユニットを介して制御可能なその他任意の種類の車両システムを、含み得る。車両システム26の例は、車両システム26の上記例のうちのいずれかを制御することができる電子制御ユニット(ECU)を含み得る。
【0031】
ヘッドユニット24は、車両システム26のうちの1つ以上の動作状態を変えるために車両システム26に対して1つ以上のコマンド(「コマンドセット」と呼ぶことができ、
図1では「CS 25A~25N」として示され、まとめて「CS 25」と呼ぶことができる)を発行することができる。(機能および動作双方の観点において)車両システム26は同一製造者からの車両の異なるモデル間だけでなく異なる製造者からの車両のモデル間でも多岐にわたっているので、ヘッドユニット24は、車両システム26の最大の割合を総合的に制御するコマンドセット25を出力するように構成することができる。なぜなら、コマンドセットを手作業で構成すると時間もコストもかかりエラーが起こり易いからである。
【0032】
さらに、ヘッドユニット24は、制御エリアネットワーク(CAN)プロトコル等の制御バスプロトコルに従ってコマンドセットを出力するように構成されたオペレーティングシステム(「OS」)30を実行することができる。OS30等のヘッドユニットのオペレーティングシステムは、CANプロトコルまたはその他の標準(たとえばオープンまたはプロプライエタリ)制御バスプロトコルを介して車両システム26と通信するようにスタティックに構成(または言い換えると「ハードコーディング」)されてもよい。すなわち、製造者は、オペレーティングシステムを手動でプログラミングすることにより、オペレーティングシステムが制御バス(説明し易くするために
図1の例では示されていない)を介して車両システム26の各々とインターフェイスすることを可能にしてもよい。
【0033】
車両システム26の各々に対して正しくインターフェイスするようにオペレーティングシステムをプログラミングすることは、時間がかかるとともに、車両システム26との正しい相互運用性を保証するには相当なテストを必要とする可能性がある。説明すると、車両特性の状態を伝達するとともに複数の異なる制御バスプロトコルに従って制御される車両システム26を提供することができる多様な販売業者から、製造者は車両システム26を調達することができる。製造者は、単一モデル内であっても、(同一モデルの異なるトリム間などで)異なる制御バスプロトコルに従って通信する車両システム26を調達する必要がある。結果として、製造者は、オペレーティングシステムの2つ以上の異なるバージョンを作成する場合があり、これらのバージョンの各々は、異なる制御バスプロトコルを介して車両システム26と通信するために個別にハードコーディングされる。加えて、制御バスプロトコルに何らかの変更が加えられると、結果として、制御バスプロトコルの新たなバーションをサポートするようオペレーティングシステムをハードコーディングするために製造者はオペレーティングシステムを更新する場合があり、そうすると、場合によっては製造者が新たなまたは変化する制御バスプロトコルをサポートする能力が低下し、そのために、場合によっては車両10の安全性、利便性およびその他の面を改善するアップグレードを車両10が受けられなくなることがある。
【0034】
本開示に記載の技術の各種局面に従うと、車両コンピューティングシステム(一例としてのヘッドユニット24等)は、車両システムバス(「制御バス」と呼ぶこともできる)のための拡張可能マッピングを適用することができる。先に述べたように、車両システムバスは、ヘッドユニット24(「車両ヘッドユニット24」と呼ぶこともできる)と車両の1つ以上のシステム(たとえば車両システム26)との間でコマンドセット(command set)(「CS」)25A~25N(「CS25」)を伝達するための、異なるプロプライエタリおよびオープン標準に従う場合がある。車両ヘッドユニット24は、統一されたコマンドセット(または言い換えると標準コマンドセット)をサポートするオペレーティングシステム30を実行することができるのに対し、車両システムバス26は、複数のローカル制御バスプロトコルのうちの特定のローカル制御バスプロトコルに従って指定されたローカル制御メッセージを伝達することができる。当該技術の各種局面は、この特定のローカル制御メッセージをサポートするためにオペレーティングシステム30をハードコーディングするのではなく、標準コマンドセットと、ローカル制御バスがサポートする特定のローカル制御バスプロトコルに従うローカルコマンドセットとの間の拡張可能マッピング(extensible mapping)31(「EM31」)を、車両ヘッドユニット24が取得することを可能にすることができる。ローカル制御メッセージは、DBCフォーマットまたはカヤックCAN定義(Kayak CAN definition)(KCD)フォーマットのうちの一方に従ってフォーマットすることができる。
【0035】
動作時、プロセッサ12は、OS30を実行することにより、車両システム26のうちの1つ以上を制御することができ、OS30は、標準コマンドセットをサポートすることができる。OS30は、共通または標準制御バスプロトコルに従い標準コマンドセットを1つ以上のメッセージとして出力することができ、これらのメッセージは「標準制御メッセージ」と呼ぶことができる。プロセッサ12は、システムメモリ16から、ローカル制御バスプロトコルに従って指定されたローカル制御メッセージとOS30がサポートする標準制御メッセージとの間のマッピングを規定することができるEM31を取得することができる。
【0036】
いくつかの例において、プロセッサ12は、OS30と車両システム26との間のソフトウェアシムレイヤ(software shim layer)と呼ぶことができるもの(
図1の例には示されていない制御バスを含む)を提供する、ハードウェア抽象化レイヤ(hardware abstraction layer)(HAL)28を実行することができる。言い換えると、HAL28は、基礎となるヘッドユニットオペレーティングシステム30(「OS30」)を拡張するように構成されたユニットを表し得る。プロセッサ12は、HAL28に対応付けられた1つ以上のスレッドを含む、OS30を表す1つ以上のスレッドを実行することができる。プロセッサ12は、OS30の1つ以上のスレッドに対応付けられた1つ以上のコマンドの形態のOS30(HAL28を含む)をシステムメモリ16から取り出し、コマンドを、実行の前に、ローカルメモリ(たとえばレイヤ1(L1)、レイヤ2(L2)、および/またはレイヤ3(L3)キャッシュであり、これらは説明し易くするために
図1の例では示されていない)にロードすることができる。このため、HAL28およびOS30は、プロセッサ12が実行することを示すために点線を用いてプロセッサ12に含まれるものとして示されているが、HAL28およびOS30の長期記憶を示すために実線を用いてシステムメモリ16にも含まれるものとして示されている。HAL28は、プロセッサ12によって実行されるものとして示されているが、専用回路またはハードウェアロジックを用いて実現されてもよい。
【0037】
いずれにしても、HAL28は、OS30が車両システム26とインターフェイスすることを可能にするためにソフトウェアシムレイヤを与えるときに、EM31を取得することができる。よって、OS30は、OS30がサポートする制御バスプロトコルに従う標準制御メッセージとして、コマンドセット25を生成することができる。HAL28は、標準制御メッセージを受け(または場合によってはインターセプトし)、EM31に基づいて、標準制御メッセージをトランスレートすることにより、ローカル制御バスに従うローカル制御メッセージを得ることができ、OS30はこのようなトランスレートを要求しない(この点においてOS30から見てトランスペアレント)。
【0038】
EM31は標準制御メッセージとローカル制御メッセージとの間のバイト単位のマッピングを規定することができる。すなわち、EM31は、標準制御メッセージのバイトごとにマッピングを規定し、如何にして各バイトをメッセージ内に再配置しおよび/または値をコンバートする(たとえば制御メッセージIDに対して)ことによりローカル制御バスプロトコルに従うようにするかを、規定することができる。HAL28は、コマンドセット25のうちの1つ等のコマンドセットの第1の表現を含み得る標準制御メッセージを受けて、車両システム26のうちの1つ以上の動作状態変更を開始することができる。
【0039】
HAL28は、EM31を標準制御メッセージに適用して標準制御メッセージ内のバイトの値を再配置するかそうでなければコンバートすることにより、標準制御メッセージをトランスレートして制御バスプロトコルに従うローカル制御メッセージを得ることができる。よって、ローカル制御メッセージは、コマンドセットの第2の表現を含み得る。HAL28は、プロセッサ12および車両システム26に結合された制御バスを介してローカル制御メッセージを送信することにより、車両システム26のうちの1つ以上の動作状態変更を開始することができる。
【0040】
HAL28は、同様に、車両システム26から、動作状態27A~27N(「動作状態27」、
図1では「ST27A~27N」として示される)を含むローカル制御メッセージを受ける(または、場合によっては、OS30および車両システム26から見てトランスペアレントにインターセプトする)ことができる。ローカル制御メッセージはローカル制御バスプロトコルに従っていてもよい。HAL28は、EM31に基づいてローカル制御メッセージをトランスレートすることにより、これもOS30によってサポートされる標準制御メッセージを得ることができる。先に述べたように、HAL28は、このトランスレーションを、基礎となるハードウェアの抽象化の一部として(または言い換えるとシムソフトウェアレイヤ提供の一部として)提供することができ、異なるさまざまなハードウェアプラットフォームにおけるOS30の場合によってはより単純な開発およびインストールを可能にする。HAL28は標準制御メッセージをOS30に与えることができ、OS30は過去に送られた標準制御メッセージによって要求された動作状態変更の確認を得ることができる。
【0041】
加えて、ヘッドユニット24は、車両システム26を制御するためにコマンドセット25を適応させることができる。先に述べたように、ヘッドユニット24は、コマンドセット25と車両システム26の動作状態27の変更との対応関係29(association)(「ASSOC29」)を求めるHAL28を実現するように構成することができる。HAL28は、これらの対応関係29に基づいて、車両システム26の(1つ以上の動作状態27によって表される)追加機能をエクスポーズしようとして、コマンドセット25を適応させることができる。よって、当該技術は、HAL28が、特定のモデルおよび製造者固有のコマンドセット25を自動的に決定することにより、場合によってはコマンドセット25の手動構成を回避しそれに伴う時間と費用とエラーの可能性を回避することを、可能にすることができる。HAL28は、対応関係29をEM31の基礎として使用し、EMは、車両システム26のさまざまな動作状態変更を実現するために、標準制御メッセージとローカル制御メッセージとの間の各種マッピングを規定する。
【0042】
先に述べたように、HAL28は、一例において、車両システム26のうちの1つ以上の動作状態を変更するために、ディスプレイ20が提供するGUIを介して乗員から受けた入力に応じて、OS30からの出力を処理するように構成された部分を表していてもよい。HAL28はまた、動作状態27等のその他の入力に応じて自動的に生成されたOS30からの出力を処理することもできる。この出力は、OS30が動作状態変更を実施するために発行したコマンドセット25を意味し得る。OS30は、コマンドセット25を一連の「SET」コマンドとして発行することができ、これらのコマンドの各々は、車両システム26のうちの1つを指定し、この車両システム26のうちの1つの特性を指定し、指定した特性の値を指定する。SETコマンドは、車両システム26のうちの指定された車両システムが維持する動作状態を指定することができる。
【0043】
HAL28は、車両システム26の各種特性の現在の動作状態27を示す、車両システム26からの入力を、処理することもできる。OS30は、車両システム26が現在の動作状態27を示す入力を与えることによって応答するときの各種特性について、車両システム26にクエリする「GET」コマンドを出力することができる。「SET」コマンドと同様、「GET」コマンドの各々は、車両システム26のうちの1つを指定し、値に関するクエリの対象であるこの車両システム26のうちの1つの特性を指定することができる。いくつかの例において、車両システム26は、「SET」コマンドに応じて各種動作状態変更を実行した後に、入力で応答することができる。いずれにしても、HAL28は、出力および入力を処理することによって対応関係29を求めることができる。
【0044】
説明のために、車両システム26AはHVACシステムを表していると想定する。各種HVACシステムは、車両の点火装置状態およびHVACシステムの基礎となる環境制御ユニット(environmental control unit)(ECU)に応じて動作が異なり得る。さらに、HVACシステム26Aの各種特性は、HVACシステム26Aのその他の特性、および、場合によっては車両システム26B~26Nのその他の特性とやり取りすることができるとみなす。たとえば、HVAC温度を設定するとき、HVACシステム26Aはファンの速度を自動的に変更することができる。HAL28は、HVAC温度を設定するために車両システム26にコマンドセット25Aを出力した結果としての動作状態27Aが表すHVACシステム26Aの各種車両特性間の対応関係29を求めることができる。
【0045】
次に、HAL28は、対応関係29に基づいてコマンドセット25を適応させることができる。HAL28は、HVAC温度の設定とファン速度の自動変更との間の依存性を特定する対応関係29に基づいて、HVACシステム26Aのファン速度を以前に設定されたファン速度値(乗員の嗜好に基づいて構成することができる、または乗員が以前にHVACシステム26Aのファン速度を設定した結果としてのファン速度値)に設定する追加コマンドを含むように、適応させることができる。HAL28は、このようにして、対応関係29(「依存性29」と呼ぶこともできる)に基づき、車両10の車両システム26と第2の車両の車両システムとの間の可変性に対処するようにコマンドセット25を適応させることができる。
【0046】
HVACの文脈の範囲外のパラメータ間の依存性の他の例は、(スイッチまたはその他のユーザインターフェイスを介して(ヘッドユニットを介することを含む))直接制御可能でありかつドアまたは点火装置状態に関係がある、内部照明(天井灯、読書灯、フロアライトなど)を含み得る。HAL28は、ドアの状態と、運転席のドアが開いたときの照明の点灯との間の依存性を特定することができ、これは、HAL28が、運転席エリアを照らすのにこの照明が有用であると判断することを可能にする。
【0047】
もう1つの例は、ワイパーおよび洗浄装置の文脈であり、HAL28は、洗浄装置が有効にされたときにワイパーが特定のワイパー速度に設定されたと判断することができ、これは、既存のワイパー速度を上書きし得る。さらに別の例は、先進運転支援システム(advanced driver assistance system)(ADAS)の文脈であり、HAL28は、ADASの各種状態は、車両10が特定の速度で走行しているときまたは車両10が特定の状態にあるとき(たとえばリバース運転時、ADASは後方カメラを起動し後方カメラが取り込んだ画像をヘッドユニットを介して表示する)に限って利用できると判断することができる。HAL28は、パラメータを求め、次に、照明、ワイパーおよび洗浄機、ADAS、車両状態および/または速度に関する各種依存性のすべてを特定することができる。
【0048】
加えて、HAL28は、車両10がオンにされたときに利用できるパラメータのリストを求めることができる。一例として、HAL28は、点火装置がオフにされたときにヘッドライトを起動することを車両10が許可するか否かを判断することができる。なぜなら、一部の車両は、車両の電源がオフにされたときにヘッドライトを自動的にオフにすることができるからである。HAL28は、各種点火装置状態(たとえば、オフ、アクセサリ、オンなど)に関する各種パラメータ間の依存性を求めることができる。HAL28はまた、車両10のさまざまな状態(ギアが入っているおよび/または移動しているまたは駐車しているおよび/または移動していないなど)に対する座席間の依存性を判断することもできる。
【0049】
この点について、HAL28は、動作状態27間の変化を処理することにより、この変化の記録を生成し、動作状態27をパースすることにより、特性間の因果関係を発見することができ(これを「パラメータ」と呼ぶこともでき、たとえばパラメータAが変化するとパラメータBおよびCも変化する)、この動作状態27の変化と変化の間の因果関係(または言い換えると依存性)を特定する対応関係29を生成することができる。いくつかの例において、HAL28は、対応関係29を、テーブル、リンクされたリスト、グラフ、ツリー、またはその他任意の適切なデータ構造として、格納することができる。その他の例として、HAL28は、機械学習を用いてモデルをトレーニングすることにより、対応関係29を特定し、対応関係29に応じたコマンドセット25の異なるバージョンを動的に生成することができる。このため、HAL28は、依存性29を求めるために、コマンドセット25によって開始される動作状態変更と車両パラメータの動作状態27とについて機械学習を実行することができる。
【0050】
HAL28は、これらの依存性29の特定後、依存性29によって特定された特定の動作状態変更について、OS30がサポートする標準制御メッセージと、動作状態変更を引き起こすのに使用されるローカル制御バスプロトコルに従うローカル制御メッセージとの間のマッピング31を規定することができる。このマッピングにより、上記トランスレーションが可能になり、このようなマッピングは、EM31が、OS30、制御バス、および/または車両システム26のうちの1つ以上の更新のためにある期間にわたって変化し得るという意味で、拡張可能である。いくつかの例において、HAL28がEM31を規定するのではなく、製造者が手作業でEM31をプログラムし、標準制御メッセージとローカル制御メッセージとの間のトランスレーションを実施するためにHAL28が実行可能なファイルまたはスクリプトを規定することができる。
【0051】
このように、当該技術の各種局面により、製造者はEM31を規定することができ、EM31は、OS31、制御バス、および/または車両システム26のうちの1つ以上の更新に対処するためにある期間にわたって更新することができる。EM31は、標準コマンドセットとローカルコマンドセットとの間のトランスレーションを規定することができ、これを車両ヘッドユニットが適用することにより標準コマンドセットとローカルコマンドセットとの間のトランスレーションを自動的に行うことができる。規定する必要があるのはEM31だけなので、このようなマッピングをオペレーティングシステム内でスタティックにハードコーディングすることによってローカルコマンドセットのみをサポートするのではなく、当該技術の各種局面は、車両ヘッドユニットオペレーティングシステム(たとえばOS30)を開発できる速度を改善する、新規のまたは変化する制御バスプロトコルとの相互運用性を改善する、また、そうでなければローカルコマンドセットについてフル機能サポートを提供するこのようなオペレーティングシステムの迅速な開発に対応しつつ車両ヘッドユニットオペレーティングシステムの開発を改善することができる。
【0052】
加えて、当該技術の各種局面は、ヘッドユニット24自体のより効率的な動作を推進することができる。すなわち、HAL28は、コマンドセット25と動作状態27の変化との間の対応関係29を求め、対応関係29に基づいて、車両システム26の動作状態27の変化がより効率的に生じるように、コマンドセット29を適応させることができる。多数のモデルおよび製造者が選択した車両システム26に共通するがいくつかの車両システム26にとっては(機能的ではあるものの)非効率的である可能性があるコマンドセット25を発行するのではなく、当該技術は、車両システム26に動作状態27の変化をより効率的に生じさせることによってプロセッササイクルを削減しメモリ帯域幅とそれとともに消費される元のメモリリソースとを節約し結果としてより効率的な電力消費を促進するコマンドセット25を、HAL28が適応的に生成することを可能にすることができる。
【0053】
HVACシステムに関連する説明を行ってきたが、当該技術はその他のシステムに関して適用することもできる。可能ないくつかの例は、ヘッドユニット24が直接制御し得る内部照明システム(たとえば天井灯、読書灯など)、および、関連するドア開放または点火装置状態を含む。ヘッドユニット24は、運転席のドアが開いたとき、照明がオンすると判断することができ、それにより、この照明は運転席エリアを照らすのに有用であると判断することができる。別の例として、ヘッドユニット24は、窓のワイパーおよび洗浄装置間の対応関係を特定することができる。ヘッドユニット24は、特定の車両状態および/または速度と、先進運転支援システム(ADAS)モードとの間の対応関係を特定することができる(特定のADASモードは車の特定の状態および/または速度においてのみ利用可能)。
【0054】
図2Aおよび
図2Bは、
図1のヘッドユニットの例をより詳細に示すブロック図である。
図2Aの例に示されるヘッドユニット24Aは、
図1に示されるヘッドユニット24の一例である。ヘッドユニット24Aは、カーサービス200の実行環境を提供するOS30を実行することができる。
【0055】
ヘッドユニット24Aはまた、2つの異なるHAL28Aおよび28Bを実行することができる。車両HAL28Aはトランスレーションサービス202を実行することができ、このトランスレーションサービスは、本開示に記載の技術の各種側面に従い、EM31に基づいて、標準制御メッセージとローカル制御メッセージとの間の変換を実行することができる。コントローラエリアネットワーク(CAN)バスHAL28Bは、ローカル制御メッセージをユニバーサルシステムバス(USB)信号に、USB信号をローカル制御メッセージにコンバートし、ハードウェアとOS30との間のもう1つの抽象化レイヤを提供するように構成された部分を表していてもよい。
【0056】
ヘッドユニット24Aはまた、物理USBインターフェイスであるUSB206を、1つ以上のプロセッサ、固定論理回路、専用信号プロセッサ、専用制御プロセッサ(専用制御バスプロセッサ等)および/またはUSB CANインターフェイス208およびゲートウェイ210をエクスポーズするその他類似のものを、含み得る。USB CANインターフェイス208は、USBポートを介したCAN211へのアクセスを提供するように構成された部分を表していてもよい。ゲートウェイ210は、CAN211へのアクセスを制御するための制御バスゲートウェイをエクスポーズするように構成された部分を表し、特定の条件が成立するときに(たとえば不正形式のCAN信号をドロップ)CAN211へのアクセスを制限することができる、ファイアウォールまたはその他の種類のデバイスを表していてもよい。
【0057】
先に述べたように、トランスレーションサービス202は、カーサービス200またはその他の場所(OS30が提供する実行環境で実行される1つ以上のアプリケーション等)から発生したものであってもよい標準制御メッセージをOS30から受けることができる。トランスレーションサービス202は、マッピングを格納することができるファイルまたはその他のデータ構造を表し得る。EM31の一例は次の通りである。
【0058】
【0059】
上記例において、EM31は標準コマンド「vehicleProperty」から始まり、これは、続く部分が車両特性(vehicle property)に関連することを示している(これは動作状態に言及するもう1つのやり方である)。次の行は、車両HAL(VHAL)特性識別子(「vhalPropertyId」)を窓の動き(「WINDOW_MOVE」)として指定し、これは、パワーウィンドウの開放と閉鎖とのマッピングを規定する。WINDOW_MOVEは、標準識別子の一例を表していてもよく、車両固有でなくてもよい。3行目は、どのようなアクセス(access)が許可されるかを示し、アクセスを読出/書込(「READ_WRITE」)として指定し、窓の動きの特性を(たとえばGETコマンドにより)読み出すことが可能でありかつ(たとえばSETコマンドにより)書き込むことが可能であることを示している。車両の各動作状態は、このようにして車両特性識別子およびアクセスレベルを用いて規定することができる。
【0060】
EM31は、車両特性およびアクセスを特定する各動作状態のオープニングステートメントに続いて、車両内の適用可能なエリアごとにマッピングを規定することができる。マッピングは、CAN信号(「canSignal」)から始まり、開いている波括弧がその後に続く。各CAN信号はそれぞれのエリアを指定することができ、第1のマッピングはエリアを第1列左として特定し(「ROW_1_LEFT」)、これは前の運転席側の窓(左ハンドル車両の場合)を指している。次に、前の運転席側の窓のマッピングはメッセージ識別子(「messageId」)を指定し、これは対応するCANメッセージ(すなわちこの例では0×124)に使用されるメッセージ識別子である。次のメッセージはビット(bit)(ゼロに設定)およびサイズ(size)(4に設定)であり、これらは標準制御メッセージをローカル制御メッセージ(この例ではCANメッセージと呼ぶことができる)にトランスレートするときに設定する必要があるCAN固有シンタックスである。
【0061】
次は3つの「conversionEnum」ステートメントであり、これらの各々は開き波括弧と閉じ波括弧によって規定される。「conversionEnum」は、(動作なし窓移動を特定するための)標準制御メッセージの列挙と(動作なし窓移動を特定するための)CANメッセージとの間のコンバージョンがあることを示す。この例において、コンバージョンは、CAN値ゼロを、動作なし窓移動のVHAL値(「vhalValue」)を含まない標準制御メッセージに追加する。次のconversionEnumは、(2である)高速開放のvhalValueを、(0×Aである)高速開放を実行するためのcanValuenにコンバートすることを指定する。第3のconversionEnumは、(負の2である)高速閉鎖のvhalValueを、(0×Bである)高速閉鎖を実行するためのcanValueに置換する。
【0062】
第3のconversionEnumに続いて、EM31は、前方右側の助手席側の窓(「ROW_1_RIGHT」)を指定し、これは、第1のCAN信号ステートメントと同じメッセージ識別子を有するが、4ビットとサイズ4を指定する。EM31は、複数のconversionEnumステートメントと、場合によっては車の異なるエリアの、その他のCAN信号ステートメントとを含み得るが、これは説明し易くするために図示されていない。
【0063】
トランスレーションサービス202は、前方右側の運転席側の窓の高速開放を、1以上のバイトのシーケンスとして規定する標準制御メッセージを受け、これは、動作状態変更を、WINDOW_MOVE、ROW_1_LEFT、およびvhalValue2で規定する。トランスレーションサービス202は、WINDOW_MOVE、ROW_1_LEFTを、0×124のメッセージIDで置き換えることによってCANメッセージを生成することができる。同様に、トランスレーションサービス202は、右の運転席側サイドウィンドウの高速開放を指定するCANメッセージをコンバートし、0×124のメッセージID、ビットサイズ0|4、および0×AのCAN値を、WINDOW_MOVE、ROW_1_LEFT、およびvhalValue2で置き換えることができる。
【0064】
EM31の別の例を以下に示す。これは温度を摂氏(Celsius)で送る。
【0065】
【0066】
上記例において、EM31はHVAC温度セットのvhalPropertyIdを指定する(「HVAC_TEMPERATURE_SET」)。これはOS30が使用する標準IDである。第3行でアクセスが指定されており、この場合の車両10はヘッドユニット24が温度を設定するのを許可しないので(これは専用ボタンまたはその他の制御しか設定することができない)、EM31は読出アクセスを設定する。canSignalステートメントにおいて、EM31はエリアを前側の列の運転席側と定め、CAN固有シンタックスの数を、メッセージID、ビット、サイズ、スケールおよびオフセットの形態で指定し、これらの各々は一般的なCANシンタックスである。「conversion(コンバージョン)」が規定され、それによりEM31は「FAHRENHEIT_TO_CELSIUS」というタイトルの関数に対する方法コールを指定する。
【0067】
トランスレーションサービス202は、HVAC温度を要求する標準制御メッセージを受けてCANメッセージを生成することができる。CANメッセージは、0×123というメッセージIDと、8|16としてのビットおよびサイズ(ビット8は温度値がペイロードの8番目のビットから始まる位置にあることを示し、サイズは値がペイロードの2バイトを取ることを示す)とを、スケールおよびオフセットとともに含む。トランスレーションサービス202は、このメッセージをCAN-USB HALに転送することができ、これは、CANメッセージを、USB CANインターフェイスを介しゲートウェイ210を介してCAN211に出力する前に、USB信号にコンバートする。CAN211は、CANメッセージを1つ以上の車両システム26に送信することができ、これらの車両システムは、
図2Aの例において電子制御ユニット(ECU)212A~212N(「ECU212」)として示されている。
【0068】
HVACを制御する役割を担うECU212のうちの1つは、このメッセージに対し、華氏(Fahrenheit)の温度で応答し、ペイロードのビット8で始まる華氏の温度を、スケール2およびオフセット50の2バイトの温度として指定する(たとえば90度という温度は40として指定することができる)。HVAC ECU212は、CANメッセージをCANバス211を介して送信することでき、そうすると、ゲートウェイ210、USB CANインタ0フェイス208、およびCAN-USB HAL 204は、CANメッセージをトランスレーションサービス202に中継する。
【0069】
トランスレーションサービス202は、上記マッピングに従ってCANメッセージをトランスレートすることができ、メッセージID,ビット、サイズ、スケール、およびオフセットを、HVAC_TEMPERATURE SET、READ、およびROW_1_LEFTに置き換える。トランスレーションサービス202は、温度をパースし、FAHRENHEIT_TO_CELSIUS方法を呼び出し、温度を上記方法に送る。トランスレーションサービス202は、温度を送る前に、スケールおよびオフセットに従って温度を処理することができる(実際の温度である華氏90度に戻すために)。FAHRENHEIT_TO_CELSIUS方法は、華氏の温度から摂氏の温度にコンバートし、温度を標準制御メッセージに指定する。トランスレーションサービス202は次に、標準制御メッセージをカーサービス200に送信することができる。
【0070】
上記例では特定のコンバージョンプロセス、すなわちFAHRENHEIT_TO_CELSIUSに関して説明しているが、この技術は他の種類のコンバージョンに関して実施することもできる。たとえば、コンバージョンプロセスの他の例は、車両の走行距離を1回転ごとに計算するRADIUS_TO_CIRCUMFERENCE、読出を対数ポテンショメータから線形スケールまたはその逆にコンバートするLOGまたはEXPONENTを含む。
【0071】
EM31の第3の例を以下に示す。これは、+1/-1イベントとして温度を車両システム26のHVACシステムに送る。
【0072】
【0073】
直上の例において、EM31は、vhalPropertyIDである「HVAC_TEMPERATURE_SET」を、アクセス「WRITE」および前の左の運転席側のエリア(「ROW_1_LEFT」)とともに指定し、これは、標準制御メッセージのシンタックスにマッピングされる。次に、EM31は、messageIdとして0×123、ビット0、サイズ2、およびオフセット-1を指定し、これらはすべて、vhalPropertyId、アクセスおよびエリアの代わりに使用されるCANプロトコルシンタックスを表す。次に、EM31は、方法「DELTA_UPDATE」をコールするコンバージョンを指定し、「deltaUpdate」のパラメータ(「params」)をリストする。EM31のdeltaUpdateの中には、初期値(「initValue」)として摂氏20度、および温度の最大ステップ(「maxStep」)サイズがある。
【0074】
トランスレーションサービス202は、HVAC_TEMPERATURE_SET、WRITEおよびROW_1_LEFTをリストするカーサービス200から標準制御メッセージを受けるかそうでなければ取得することができ、これらの標準シンタックス要素を0×123、0、2、-1に置き換える。トランスレーションサービス202は、ペイロードのビット0において、2バイト温度更新として-1または1を挿入することにより、標準制御メッセージをCANメッセージにトランスレートすることができる。トランスレーションサービス202はCANメッセージをCAN-USB HAL204に出力することができ、これは、CANメッセージを、USB CANインターフェイス208およびゲートウェイ210を介してUSB信号を送信する前に、USB信号にコンバートする。
【0075】
CAN211は、CANメッセージを受け、このCANメッセージをECU26に中継することができ、ここで、ECU212のうちの適切なもの(すなわちこの例ではHVAC ECU)が、CANメッセージを処理し、応答CANメッセージを出力することができる。応答CANメッセージは、トランスレーションサービス202に到達する前に、CAN211、ゲートウェイ210、USB CANインターフェイス208、およびCAN-USB HAL204を通ることができる。トランスレーションサービス202は、逆トランスレーション、言い換えるとマッピングを、EM31の上記例に基づいて、応答CANメッセージについて実行することにより、応答標準制御メッセージを取得することができる。トランスレーションサービス202は、応答標準制御メッセージをカーサービス200に出力することができる。
【0076】
図2Bの例において、ヘッドユニット24Bは、
図1の例に示されるヘッドユニット24の別の例である。ヘッドユニット24Bは、ヘッドユニット24Aと、
図2Bの例ではゲートウェイ210がトランスレーションサービス202に関して先に述べたトランスレーションサービスを実行し得る点を除いて、たとえ実質上同様でなくても同様であり得る。ヘッドユニット24Bのトランスレーションサービス202は、その他のフォーマット、コンバージョン、またはEM31に従うゲートウェイ210が出力した標準制御メッセージに対するその他のプロセスを実行し得る一般的なVHALサービス220に置き換えられる。製造者は、CANアクセスのファイアウォールを介した追加のセキュリティを提供するために、ゲートウェイ210をプログラムすることによりトランスレーションサービス202を実行することができる。
【0077】
図3は、本開示に記載の技術の各種局面に従いコマンドセット25-1Aを適応させる
図1に示されるHAL28の一例を示す図である。HAL28は、最初に、最大空調設定を意味し得る「MAX AC」を与えるためにHVACシステム26Aの各種パラメータを設定する動作状態変更50Aのためのコマンドセット25-1Aを設定することができる。乗員がMAX AC 50Aを選択そうでなければ起動したことに応じて、HAL28はコマンド52A~52Fを発行することができる。
【0078】
コマンド52AはSETコマンドを指定し、これは変数としてシステム識別子とパラメータと値とを取る。この例のシステム識別子を「HVAC_SYS」と想定し、これは、HVACシステム26Aに対応付けられた識別子を表す。コマンド52A~52Fはすべて、同一のシステム識別子であるHVAC_SYSを指定する。コマンド52Aのパラメータは説明のために「FAN」と想定し、これは、HVACシステム26Aのファン速度を意味し得る。コマンド52Aの値は、ファン速度を「HIGH」に設定する。
【0079】
コマンド52Bは、コマンド52Aと同一のシステム識別子を指定するが、ファン速度と「5」に設定する。冗長コマンド(同一パラメータに対して同様または同一の設定を開始しようとし得るコマンドを意味する)がコマンドセット25-1Aの中にある。なぜなら、コマンドセット25-1Aは、同一製造者の複数の異なるモデルに対しておよび/または異なる製造者の複数の異なるモデルに対してMAX AC50Aを開始することができる最初の包括コマンドセットであるからである。
【0080】
コマンド52Cは、コマンド52Aと同一のシステム識別子を指定するが、HVACシステム26Aが維持すべき車室温度を意味する異なるパラメータ「TEMP」を指定する、別のSETコマンドである。コマンド52Cは、車室温度を値「65」に設定するこれは説明のため華氏温度であると想定する)。
【0081】
コマンド52Dは、コマンド52Aと同一のシステム識別子を指定するが、冷気を排出するための車両10の車室内の通風孔(vent)または一組の通風孔を意味する異なるパラメータ「VENT」を指定する、別のSETコマンドである。コマンド52Dは、VENTを、各種ECUにおけるダッシュベント(dash vent)を意味し得る、値「HIGH」に設定する。
【0082】
コマンド52Eは、コマンド52Dと同一のシステム識別子およびパラメータを指定するが、通風孔を、ダッシュベントを意味する値「DASH」に設定する、別のSETコマンドである。コマンド52Fは、コマンド52Eと同一のシステム識別子およびパラメータを指定するが、通風孔を、ダッシュベントおよび任意の天井ベントを意味する、値「UPPER」を指定する、別のSETコマンドである。ここでも、冗長コマンド(同一パラメータに対して同様または同一の設定を開始しようとし得るコマンドを意味する)がコマンドセット25-1Aの中にある。なぜなら、コマンドセット25-1Aは、同一製造者の複数の異なるモデルに対しておよび/または異なる製造者の複数の異なるモデルに対してMAX AC50Aを開始することができる最初の包括コマンドセットであるからである。
【0083】
HAL28は、車両システム26Aに対してコマンド52A~52F各々を(逐次的にまたは同時に)発行することができ、車両システム26Aは、コマンド52A~52Fの各々に対し、特定された上記パラメータの動作状態27を指定する1つ以上のメッセージで応答することができる。HAL28は、動作状態27に基づいてコマンドセット25A-1を適応させることにより、適応させたコマンドセット25-1A’を得ることができる。
【0084】
図3の例に示されるように、HAL28は、コマンドセット25-1Aを、新たなコマンド52Gを含みかつコマンド52Dおよび52Fを削除するように、適応させることができる。HAL28はまた、個々のコマンド52Cを、適応させたコマンドセット25-1A’のコマンド52Hを取得するように適応させることができる。
【0085】
HAL28は(たとえばコマンド52Aに応じて)、HVACシステム26Aが動作状態(そのアクティブパワー状態を意味する)ではないためにコマンド52Aを完了できないことを示す動作状態27のうちの1つを受けた結果として、新たなコマンド52Gを得ることができる。HAL28は、上記動作状態27のうちの1つに応じて、HVACシステム26Aのパラメータ「POWER」を値「ON」に設定するコマンド52Gを生成する。HAL28は、コマンド52Gと同様であるが、同一パラメータ(であるが「OPERATIONAL」または「AC」等の異なる識別子を有する)および/または異なる値(「OPERATIONAL」パラメータについて「YES」等)を指定する、1つ以上の冗長コマンドを通して繰り返すことができる。
【0086】
この点において、コマンドセット25-1Aは、HVACシステム26Aが(受電という点で)起動されていなかったことが理由で、最初はHVACシステム26Aの動作状態変更50Aを開始できない場合がある。その結果、HAL28は、コマンドセット25-1A(適応後のコマンドセット25-1A’の形態)がHVACシステム26Aの動作状態変更を開始できるように、コマンドセット25-1Aを自動的に適応させることができる。言い換えると、HAL28は、試験的コマンドセットを発行して1つ以上のシステムの試験的動作状態変更を開始し、コマンドセットの発行に応じて、試験的動作状態変更後に、当該1つ以上のシステムから、1つ以上の車両パラメータ各々の実際の動作状態のそれぞれの指示を得ることができる。次に、HAL28は、試験的コマンドセットについて、上記1つ以上の車両パラメータの実際の動作状態間の1つ以上の依存性を求め、この1つ以上の依存性に基づいて、拡張可能マッピングを生成することにより、コマンドセットを、ローカル制御メッセージから標準制御メッセージにトランスレートすることができる。
【0087】
引続きこの例において、HAL28は、コマンド52Dおよび52Fは認識されたコマンド52Dおよび52Fではなかった(一例としてコマンド52Dおよび52FがHVACシステム26AのECUがサポートしないシンタックスを使用したことを意味する)ことを示す動作状態27のうちの1つ以上を受けた結果として、コマンド52Dおよび52Fを削除することができる。いくつかの場合において、システム26は、第1組の販売業者からのものであり、したがって、第2組の販売業者(第1組の販売業者と第2組の販売業者とは少なくとも1つの販売業者が異なると想定)からのシステムと比較して、さまざまなパラメータの異なるシンタックスを使用することができる。HAL28は、最初に冗長コマンド52D~52Fを発行することにより、コマンド52D~52Fのうちのいずれが動作状態27のうちの成功動作状態となるかを判断することができる。
【0088】
HAL28は、冗長コマンド52D~52Fを発行すると説明されているが、HVACシステム26AからHAL28が取り出すことができる各種情報に基づいて冗長コマンド52D~52Fを1つ以上のコマンド削減することができる。たとえば、HAL28は、HVACシステム26Aのタイプ、販売業者などを取り出すためにGETコメントを発行することができる。HAL28は、HVACシステム26Aの異なるタイプ、販売業者などを異なるシンタックスに対応付けることができる。HAL28は、取り出した情報に基づいて、サポートされていないシンタックスに対応付けられている冗長コマンド52D~52Fのうちの1つ以上を取り除くかそうでなければ削除することができる。
【0089】
図3に示される例に戻ると、HAL28はまた、値を65から60に変更するために個々のコマンド52Cを適応させることができる。HAL28は、HVACシステム26Aの最低温度値として華氏60度を過去に識別している場合は、コマンド52Cを最低温度に設定されるように自動的に適応させることができる。
【0090】
次に、HAL28は、適応後のコマンドセット25-1A’に基づいてEM31を自動的に生成することができる。HAL28は、EM31を形成するスクリプトまたはその他のファイルに置かれる、コマンドごとの総合的なマッピングを含み得る。この場合のコマンドの各々は、EM31に従って標準制御メッセージからCANメッセージにトランスレートすることができる。
【0091】
図4は、本開示に記載の技術の各種局面に従い別のコマンドセット25-Aを適応させる
図1に示されるHAL28の一例を示す図である。HAL28は、最初に、乗員が入力した変数値「X」に温度を設定することを意味し得る「SET TEMP <X>」にHVACシステム26Aの各種パラメータを設定する、動作状態変更50Bについてのコマンドセット25-2Aを指定することができる。乗員が「SET TEMP <X>」50Bを選択そうでなければ起動したことに応じて、HAL28はコマンド52Mを発行することができる。
【0092】
コマンド52Mは、変数として、システム識別子、パラメータ、および値を取るSETコマンドを指定する。この例におけるシステム識別子は、HVACシステム26Aに対応付けられた識別子を表す「HVAC_SYS」であると想定する。コマンド52Mのパラメータは、説明のために、HVACシステム26Aが維持すべき温度を意味し得る「TEMP」であると想定する。コマンド52Mの値は、温度を変数「X」に設定する。乗員は、変数「X」の値を指定することができる。
【0093】
HVACシステム26Aに対するコマンド52Mの発行に応じて、HAL28は動作状態27Aおよび27Bを受けることができる。動作状態27Aは、ファン速度パラメータ「FAN」の値が速度「5」に設定されることを示す。動作状態27Bは、通風孔パラメータ「VENT」が「DASH」に設定されることを示す。
【0094】
コマンド52Mの発行後、乗員は、温度が、車両10内の第2のHVACゾーンではなく車両10内の第1のHVACゾーンの温度であることを示すことができる。よって、HAL28は、コマンドセット25-2A’がコマンド52N~52Qを含むように、コマンドセット25-2Aを適応させてコマンドセット25-2A’を得ることができる。コマンド52Nは、温度パラメータが、車両10内の第1のHVACゾーンの温度であることを示し、コマンド52Mの「TEMP」パラメータを、コマンド52Nの「ZONE1_TEMP」パラメータに変更する。コマンド52Pおよび52Qも、「ZONE1_FAN」および「ZONE1_VENT」となる、FAN速度パラメータおよびVENTパラメータも車両10内の第1のHVACゾーンについてのものであることを示す。このようにして、HAL28は、コマンドセット25-2Aを、乗員により良く適応し乗員がヘッドユニット24に集中する時間の量を低減することにより車両10の動作中の安全性を改善できるように、適応させることができる。
【0095】
次に、HAL28は、適応後のコマンドセット25-2A’に基づいてEM31を自動的に生成することができる。HAL28は、EM31を形成するスクリプトまたはその他のファイルに置かれる、コマンドごとの総合的なマッピングを含み得る。この場合の各コマンドは、EM31に従って標準制御メッセージからCANメッセージにトランスレートすることができる。
【0096】
図5は、本開示に記載の拡張可能マッピング技術の各種局面の実行における
図1のHAL28の動作例を示すフローチャートである。先に述べたように、プロセッサ12は、OS30を実行することにより、車両システム26のうちの1つ以上を制御することができ(300)、OS30は標準コマンドセットをサポートすることができる。OS30は、一般または標準制御バスプロトコルに従い標準コマンドセットを1つ以上の標準制御メッセージとして出力することができる(302)。プロセッサ12は、システムメモリ16から、ローカル制御バスプロトコルに従い指定されたローカル制御メッセージとOS30がサポートする標準制御メッセージとの間のマッピングを規定するEM31を取得することができる(304)。いくつかの例において、プロセッサ12は、ソフトウェアシムレイヤを与えるときに、プロセッサ12を構成し得るHAL28を実行することにより、EM31を取得して、OS30が車両システム26とインターフェイスすることを可能にすることができる。
【0097】
HAL28は、コマンドセット25のうちの1つ等のコマンドセットの第1の表現を含み得る標準制御メッセージを受けることにより、車両システム26のうちの1つ以上の動作状態変更を開始することができる。HAL28は、EM31を標準制御メッセージに適用し、標準制御メッセージ内のバイトの値を再配置するかそうでなければコンバートすることにより、標準制御メッセージをトランスレートして、制御バスプロトコルに従うローカル制御メッセージを取得することができる(306)。ローカル制御メッセージはしたがって、コマンドセットの第2の表現を含み得る。HAL28は、プロセッサ12および車両システム26に結合された制御バスを介してローカル制御メッセージを送信することにより、車両システム26のうちの1つ以上の動作状態変更を開始することができる。
【0098】
HAL28は、同様に、車両システム26から、動作状態27A~27N(「動作状態27」、
図1では「ST27A~27N」として示される)を含むローカル制御メッセージを受ける(または、場合によっては、OS30および車両システム26から見てトランスペアレントにインターセプトする)ことができる。HAL28は、EM31に基づいてローカル制御メッセージをトランスレートすることにより、これもOS30によってサポートされる標準制御メッセージを得ることができる(310)。先に述べたように、HAL28は、このトランスレーションを、基礎となるハードウェアの抽象化の一部として(または言い換えるとシムソフトウェアレイヤ提供の一部として)提供することができ、異なるさまざまなハードウェアプラットフォームにおけるOS30の場合によってはより単純な開発およびインストールを可能にする。HAL28は標準制御メッセージをOS30に与えることができ、OS30は過去に送られた標準制御メッセージによって要求された動作状態変更の確認を得ることができる(312)。
【0099】
図6は、本開示に記載の技術の各種局面の実行における
図1のHALの動作例を示すフローチャートである。先に述べたように、HAL28は、一例において、ディスプレイ20が提供するGUIを介して乗員から受けた入力に応じて、OS30からの出力を処理することにより、車両システム26のうちの1つ以上の動作状態を変更するように構成されたユニットを表し得る。HAL28はまた、動作状態27等のその他の入力に応じて自動的に生成された、OS30からの出力を処理することもできる。この出力は、OS30が発行する、動作状態変更を実施するためのコマンドセット25を意味する。OS30は、コマンドセット25を一連の「SET」コマンドとして発行することができ、その各々が、車両システム26のうちの1つを指定し、この車両システム26のうちの1つの特性を指定し、指定した特性の値を指定する。SETコマンドは、車両システム26のうちの指定された車両システムが維持すべき動作状態を指定することができる。この点について、HAL28は、第1の車両、たとえば車両10の、1つ以上のシステム26Aに対してコマンドセットを発行することにより、システム26のうちの1つ以上の動作状態変更を開始することができる(400)。
【0100】
HAL28はまた、車両システム26の各種特性の現在の動作状態27を示す、車両システム26からの入力を処理することができる。OS30は、各種特性に関して車両システム26にクエリする「GET」コマンドを出力することができ、車両システム26は、これに対し、現在の動作状態27を示す入力を与えることによって応答する。「SET」コマンドと同様に、「GET」コマンドの各々は、車両システム26のうちの1つと、値に関するクエリの対象である車両システム26のうちの1つの特性を指定することができる。いくつかの例において、車両システム26は、「SET」コマンドに応じて各種動作状態変更を実施した後に、入力で応答することができる。いずれにしても、HAL28は、出力および入力を処理することにより、対応関係29を求めることができる。
【0101】
説明のために、車両システム26AはHVACシステムを表していると想定する。各種HVACシステムは、車両の点火状態およびHVACシステムの基礎となる環境制御ユニット(ECU)に応じて動作が異なり得る。さらに、HVACシステム26Aの各種特性は、HVACシステム26Aのその他の特性、および、車両システム26B~26Nのその他の特性とやり取りすることができるとみなす。たとえば、HVAC温度を設定するとき、HVACシステム26Aはファンの速度を自動的に変更することができる。HAL28は、HVAC温度を設定するために車両システム26にコマンドセット25Aを出力した結果としての動作状態27Aが表すHVACシステム26Aの各種車両特性間の対応関係29を求めることができる。
【0102】
このようにして、HAL28は、コマンドセット25Aの発行に応じて、動作状態変更後に、システム26から、車両パラメータの各々の動作状態のそれぞれの指示を得ることができる(402)。次に、HAL28は、コマンドセット25Aについて、車両パラメータの動作状態間の依存性29を求めることができる(404)。
【0103】
次に、HAL28は、対応関係29に基づき、第1の車両のシステム26と第2の車両のシステムとの間の可変性に対処するようにコマンドセット25Aを適応させることができる(406)。上記例において、HAL28は、HVAC温度の設定とファン速度の自動変更との間の依存性を特定する対応関係29に基づいて、HVACシステム26Aのファン速度を過去に設定したファン速度の値(乗員の嗜好に基づいて設定することができる値、または、乗員が過去にHVACシステム26Aのファン速度を設定した結果としての値)に設定する追加コマンドを含むように、コマンドセット25Aを適応させることができる。このようにして、HAL28は、対応関係29(「依存性29」と呼ぶこともできる)に基づいて、車両10の車両システム26と第2の車両の車両システムとの間の可変性に対処するように、コマンドセット25を適応させることができる。HAL28はまた、適応させたコマンドセットに基づいてEM31を(場合によっては自動的に)生成することができる(408)。
【0104】
この点について、HAL28は、動作状態27間の変化を処理することにより、この変化の記録を生成し、動作状態27をパースすることにより、特性間の因果関係を発見することができ(これを「パラメータ」と呼ぶこともでき、たとえばパラメータAが変化するとパラメータBおよびCも変化する)、この動作状態27の変化と変化の間の因果関係(または言い換えると依存性)を特定する対応関係29を生成することができる。いくつかの例において、HAL28は、対応関係29を、テーブル、リンクされたリスト、グラフ、ツリー、またはその他任意の適切なデータ構造として、格納することができる。その他の例として、HAL28は、機械学習を用いてモデルをトレーニングすることにより、対応関係29を特定し、対応関係29に応じたコマンドセット25の異なるバージョンを動的に生成することができる。このため、HAL28は、依存性29を求めるために、コマンドセット25によって開始される動作状態変更と車両パラメータの動作状態27とについて機械学習を実行することができる。
【0105】
このようにして、当該技術は、OS30が車両ハードウェアと、たとえば車両システム26とやり取りできるようにするハードウェア抽象化レイヤ(VHAL)を提供することができる。HAL28は、車両の異なる型/モデルを採用し車両のすべての型/モデルに共通するアプリケーションプログラマインターフェイス(API)面を作成しようと試みる場合がある。1つの問題として、多様な車両があり車両の挙動は容易に抽象化できない場合があるという問題がある。たとえば、車内のHVACシステムは、車両の点火状態およびHVAC ECUの構成に基づいて異なる挙動を示す。車両の型/モデルごとに挙動を抽象化する共通APIを生成するのは不可能な場合がある。
【0106】
HAL28は現在、SETおよびGETであってもよい車両特性のリストとして実現することができる。たとえば、HAL28はHVAC温度を設定(SET)することができ、車両10はそれに応答するであろう。特性と特性とがやり取りして副作用を生じさせるときに複雑さが生じる。たとえば、HVAC温度を設定するときに、ファン速度は温度変化に応じて自動的に変化し得る。この挙動は車両に依存し得る。具体的な問題は、一部の特性がHVACコントローラの設定に基づいてディスエーブル/イネーブルされる場合がありOS30はこれらの複雑さを理解してタスクを遂行する必要がある、という点である。
【0107】
たとえば、HVACユニットがオフであることを理由にACシステムが無効にされた場合、OS30は、ACをオンにする前にHVACユニットをオンにする必要があるであろう。そこで、乗員が「ACをオンにする」ことを示す場合、OS30は、車両システム26の動作状態に基づいてコマンドの正しいシーケンスを開始する。
【0108】
いくつかの場合において、これはインピーダンス不整合である。OS30は、一組のAPIをエクスポーズすることができ(すなわちACを最大になるようにオン)、車両は、サポートする一組の機能を有する(すなわち「ファン速度を5に設定」または「温度を65に設定」)。これら2つのAPIは常に完全に整合している訳ではなく、妥協がなされる。この問題の1つの解決策は、OS30が車両についてサポートのために行う必要があることを実施するために「ミドルウェア」コード以上のものを車両の製造者に書き込ませることである。これは大きな労働力を要しエラーが生じ易い場合がある。なぜなら、各車両製造者がコードの書込のトレーニングをする必要があるからである。別の解決策は、すべての車両に共通するが各種車両のすべてにとって理想的ではない抽象化をより低いレベルの機能において作成することである。よって、OS30は、挙動およびコードの一部を最小公分母に制限/限定することができる。
【0109】
本開示の技術は、車両パラメータ間の依存性29を抽出するためのアルゴリズムを提供することができる。HAL28は、設定(set)/取得(get)できる特性のリストを求めることができる。ある特性から副作用が生じる(たとえば特性を設定するとシステム内の他の特性が変化する)場合、HAL28はこの対応関係29を検出して記録し、現在許可されていない動作変更を乗員が開始すると、HAL28は、動作変更を開始するためにコマンドセット25を介して如何にして特性を設定するかを判断することができる。
【0110】
依存性を求めるためにHAL28ができることは次の通りである。
1)いつ特性が変化するかを観察しその記録を保持する。
2)データをパースしてパラメータ間の因果関係を発見する。たとえばパラメータAが変化するとそれに伴ってパラメータBおよびCも変化する。
3)これらの因果関係のテーブルを作成し、車両特性についてシステムがアクションを起こすときにこれを参照する。
【0111】
HAL28は多数のやり方で実現することができる。いくつかの場合において、HAL28は、機械学習(ML)トレーニングセットを、ある期間にわたって観察されたデータとして収集することができる。その他の場合において、HAL28は、特性の一時的相互関係を追跡しこの対応関係からヒューリスティックスを求めることができる。いずれの場合も、コンセプトは、コマンドセット25を各車両の特異性に自動的に適応させることをHAL28に実行させ、人間がこれをコードに手作業で入力する必要がないということである。このようにして、HAL28は、複雑さを減じることにより、新たな車両実装を市場に出すことができる。なぜなら、HAL28は、車両内の変化に自動的に適応することができ、ハードコーディングされる必要がないからである。
【0112】
項目1.第1の車両とインターフェイスする方法であって、この方法は、プロセッサが、上記第1の車両の1つ以上のシステムに対し、上記1つ以上のシステムの動作状態変更を開始するためのコマンドセットを発行するステップと、上記コマンドセットの発行に応じて、上記動作状態変更後に、上記プロセッサが、上記1つ以上のシステムから、1つ以上の車両パラメータの各々の動作状態のそれぞれの指示を取得するステップと、上記プロセッサが、上記コマンドセットについて、上記1つ以上の車両パラメータの動作状態間の1つ以上の依存性を求めるステップと、上記プロセッサが、上記1つ以上の依存性に基づいて、上記第1の車両の上記1つ以上のシステムと第2の車両の1つ以上のシステムとの間の可変性に対処するように上記コマンドセットを適応させるステップとを含む。
【0113】
項目2.項目1の方法であって、上記コマンドセットは、上記1つ以上の車両パラメータの第1のサブセットの各々の状態を指定するための第1のコマンドセットを含み、上記コマンドセットを適応させるステップは、上記1つ以上の車両パラメータの第2のサブセットの各々の状態を指定するための第2のコマンドセットを求めるステップを含み、上記1つ以上の車両パラメータの第1のサブセットは、上記1つ以上の車両パラメータの第2のサブセットと異なる。
【0114】
項目3.項目1および2のいずれかの組み合わせに従う方法であって、上記コマンドセットを適応させるステップは、上記プロセッサが、上記コマンドセットを適応させるためにハードウェア抽象化レイヤを実行するステップを含む。
【0115】
項目4.項目1~3のいずれかの組み合わせに従う方法であって、上記1つ以上の依存性を求めるステップは、上記コマンドセットによって開始された上記動作状態変更を、上記1つ以上の車両パラメータの動作状態に対応付けるテーブルを維持するステップを含む。
【0116】
項目5.項目1~4のいずれかの組み合わせに従う方法であって、上記1つ以上の依存性を求めるステップは、上記コマンドセットによって開始された上記動作状態変更と、上記1つ以上の車両パラメータの状態とについて機械学習を実行することにより、上記1つ以上の依存性を識別するステップを含む。
【0117】
項目6.項目1~5のいずれかの組み合わせに従う方法であって、上記コマンドセットのグラフィカルユーザインターフェイス要素表現をディスプレイデバイスを介して表示するステップをさらに含む。
【0118】
項目7.項目1~6のいずれかの組み合わせに従う方法であって、上記コマンドセットは、最初は上記1つ以上のシステムの上記動作状態変更を開始することはできず、上記コマンドセットを適応させるステップは、上記1つ以上のシステムの上記動作状態変更を上記コマンドセットが開始できるように上記コマンドセットを適応させるステップを含む。
【0119】
項目8.項目1~7のいずれかの組み合わせに従う方法であって、上記第1の車両の上記1つ以上のシステムは、上記第1の車両の暖房・換気・空調(HVAC)システムを含む。
【0120】
項目9.項目1~8のいずれかの組み合わせに従う方法であって、上記第1の車両の上記1つ以上のシステムは、第1組の販売業者からのものであり、上記第2の車両の上記1つ以上のシステムは、第2組の販売業者からのものであり、上記第1組の販売業者と上記第2組の販売業者とは、少なくとも1つの販売業者が異なっている。
【0121】
項目10.第1の車両とインターフェイスするように構成されたデバイスであって、ヘッドユニットは、上記第1の車両の1つ以上のシステムの動作状態変更を開始するためのコマンドセットを格納するように構成された1つ以上のメモリと、1つ以上のプロセッサとを備え、1つ以上のプロセッサは、上記第1の車両の上記1つ以上のシステムに対して上記コマンドセットを発行し、上記コマンドセットを発行したことに応じて、上記動作状態変更後に、上記1つ以上のシステムから、1つ以上の車両パラメータの各々の動作状態のそれぞれの指示を取得し、上記コマンドセットについて、上記1つ以上の車両パラメータの動作状態間の1つ以上の依存性を求め、上記1つ以上の依存性に基づいて、上記第1の車両の上記1つ以上のシステムと第2の車両の1つ以上のシステムとの間の可変性に対処するように上記コマンドセットを適応させるように、構成されている。
【0122】
項目11.項目10のデバイスであって、上記コマンドセットは、上記1つ以上の車両パラメータの第1のサブセットの各々の状態を指定するための第1のコマンドセットを含み、上記1つ以上のプロセッサは、上記1つ以上の車両パラメータの第2のサブセットの各々の状態を指定するための第2のコマンドセットを求めるように構成され、上記1つ以上の車両パラメータの第1のサブセットは、上記1つ以上の車両パラメータの第2のサブセットと異なる。
【0123】
項目12.項目10および11のいずれかの組み合わせに従うデバイスであって、上記1つ以上のプロセッサは、上記コマンドセットを適応させるように構成されたハードウェア抽象化レイヤを含むオペレーティングシステムを実行するように構成されている。
【0124】
項目13.項目10~12のいずれかの組み合わせに従うデバイスであって、上記1つ以上のプロセッサは、上記コマンドセットによって開始された上記動作状態変更を、上記1つ以上の車両パラメータの動作状態に対応付けるテーブルを維持するように構成されている。
【0125】
項目14.項目10~13のいずれかの組み合わせに従うデバイスであって、上記1つ以上のプロセッサは、上記コマンドセットによって開始された上記動作状態変更と、上記1つ以上の車両パラメータの状態とについて機械学習を実行することにより、上記1つ以上の依存性を識別するように構成されている。
【0126】
項目15.項目10~14のいずれかの組み合わせに従うのデバイスであって、上記コマンドセットのグラフィカルユーザインターフェイス要素表現を表示するように構成されたディスプレイデバイスをさらに備える。
【0127】
項目16.項目10~15のいずれかの組み合わせに従うのデバイスであって、上記コマンドセットは、最初は上記1つ以上のシステムの上記動作状態変更を開始することはできず、上記1つ以上のプロセッサは、上記1つ以上のシステムの上記動作状態変更を上記コマンドセットが開始できるように上記コマンドセットを適応させるように構成されている。
【0128】
項目17.項目10~16のいずれかの組み合わせに従うのデバイスであって、上記第1の車両の上記1つ以上のシステムは、上記第1の車両の暖房・換気・空調(HVAC)システムを含む。
【0129】
項目18.項目10~17のいずれかの組み合わせに従うデバイスであって、上記第1の車両の上記1つ以上のシステムは、第1組の販売業者からのものであり、上記第2の車両の上記1つ以上のシステムは、第2組の販売業者からのものであり、上記第1組の販売業者と上記第2組の販売業者とは、少なくとも1つの販売業者が異なっている。
【0130】
項目19.項目10~18のいずれかの記載の組み合わせに従うデバイスであって、上記第1の車両はヘッドユニットを含み、上記ヘッドユニットは上記メモリと上記1つ以上のプロセッサとを含む。
【0131】
項目20.実行されると1つ以上のプロセッサに以下の動作を実行させる命令が格納されたコンピュータ読取可能媒体であって、上記動作は、車両の1つ以上のシステムに対し、上記1つ以上のシステムの動作状態変更を開始するためのコマンドセットを発行することと、上記コマンドセットを発行したことに応じて、上記動作状態変更後に、上記1つ以上のシステムから、1つ以上の車両パラメータの各々の動作状態のそれぞれの指示を取得し、上記コマンドセットについて、上記1つ以上の車両パラメータの動作状態間の1つ以上の依存性を求め、上記1つ以上の依存性に基づいて、上記第1の車両の上記1つ以上のシステムと第2の車両の1つ以上のシステムとの間の可変性に対処するように上記コマンドセットを適応させることを含む。
【0132】
項目21.車両の1つ以上のプロセッサが、オペレーティングシステムを実行することにより前記車両の1つ以上のシステムを制御するステップと、前記1つ以上のプロセッサが、制御バスプロトコルに従い指定されたローカル制御メッセージと前記オペレーティングシステムがサポートする標準制御メッセージとの間の拡張可能マッピングを取得するステップと、前記1つ以上のプロセッサが実行する前記オペレーティングシステムが、前記標準制御メッセージを生成するステップとを含み、前記標準制御メッセージは、前記1つ以上のシステムの動作状態変更を開始するためのコマンドセットの第1の表現を含み、前記1つ以上のプロセッサが、前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより、前記ローカル制御メッセージを取得するステップを含み、前記ローカル制御メッセージは、前記コマンドセットの第2の表現を含み、前記1つ以上のプロセッサが、前記1つ以上のプロセッサと前記1つ以上のシステムとに結合された制御バスを介して前記ローカル制御メッセージを送信することにより、前記1つ以上のシステムの前記動作状態変更を開始するステップを含む。
【0133】
項目22.項目21の方法であって、前記拡張可能マッピングを取得するステップは、前記ローカル制御メッセージと前記標準制御メッセージとの間の前記拡張可能マッピングを規定するファイルを取得するステップを含む。
【0134】
項目23.項目21または22のいずれかの組み合わせに従う方法であって、前記標準制御メッセージをトランスレートするステップは、車両ハードウェア抽象化レイヤを実行することにより前記制御バスと前記オペレーティングシステムとの間のシムを提供するステップと、前記車両ハードウェア抽象化レイヤが、前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより、前記ローカル制御メッセージを取得するステップとを含む。
【0135】
項目24.項目21~23のいずれかの組み合わせに従う方法であって、前記標準制御メッセージをトランスレートするステップは、前記1つ以上のプロセッサの専用制御バスプロセッサが、制御バスゲートウェイを実行することにより、前記制御バスと前記オペレーティングシステムとの間のシムを提供するステップと、前記制御バスゲートウェイが前記拡張可能マッピングに基づいて前記標準制御メッセージを前記ローカル制御メッセージにトランスレートするステップとを含む。
【0136】
項目25.項目21~24のいずれかの組み合わせに従う方法であって、前記制御バスを介して第2のローカル制御メッセージを受けるステップと、前記拡張可能マッピングに基づいて、前記第2のローカル制御メッセージをトランスレートすることにより、第2の標準制御メッセージを取得するステップと、前記第2の標準制御メッセージに基づいて、1つ以上の車両パラメータの1つ以上の動作状態を更新するステップとをさらに含む。
【0137】
項目26.項目21~25のいずれかの組み合わせに従う方法であって、前記ローカル制御メッセージと前記標準制御メッセージとの間の異なるマッピングを規定する更新された拡張可能マッピングを取得するステップをさらに含む。
【0138】
項目27.項目21~26のいずれかの組み合わせに従う方法であって、上記車両の上記1つ以上のシステムは、上記車両の暖房・換気・空調システムを含む。
【0139】
項目28.項目21~27のいずれかの組み合わせに従う方法であって、上記制御バスプロトコルはコントローラエリアネットワーク(CAN)プロトコルを含む。
【0140】
項目29.項目21~28のいずれかの組み合わせに従う方法であって、上記ローカル制御メッセージは、DBCフォーマットまたはカヤックCAN定義(KCD)フォーマットのうちの一方に従いフォーマットされたローカル制御メッセージを含む。
【0141】
項目30.項目21~29のいずれかの組み合わせに従う方法であって、前記車両の前記1つ以上のシステムに対し、前記1つ以上のシステムの試験的動作状態変更を開始するための試験的コマンドセットを発行するステップと、前記コマンドセットの発行に応じて、前記試験的動作状態変更の後に、前記1つ以上のシステムから、1つ以上の車両パラメータの各々の実際の動作状態のそれぞれの指示を取得するステップと、前記試験的コマンドセットについて、前記1つ以上の車両パラメータの前記実際の動作状態の間の1つ以上の依存性を求めるステップと、前記1つ以上の依存性に基づいて前記拡張可能マッピングを生成することにより、前記コマンドセットを前記ローカル制御メッセージから前記標準制御メッセージにトランスレートするステップとをさらに含む。
【0142】
項目31.車両とやり取りするように構成されたデバイスであって、前記デバイスは、制御バスプロトコルに従い指定されたローカル制御メッセージとオペレーティングシステムがサポートする標準制御メッセージとの間の拡張可能マッピングを格納するように構成されたメモリと、1つ以上のプロセッサとを備え、前記1つ以上のプロセッサは、前記オペレーティングシステムを実行することにより前記車両の1つ以上のシステムを制御するように構成され、前記オペレーティングシステムは、前記標準制御メッセージを生成するように構成され、前記標準制御メッセージは、前記1つ以上のシステムの動作状態変更を開始するためのコマンドセットの第1の表現を含み、前記1つ以上のプロセッサは、前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより前記ローカル制御メッセージを取得するように構成され、前記ローカル制御メッセージは、前記コマンドセットの第2の表現を含み、前記1つ以上のプロセッサは、前記1つ以上のプロセッサと前記1つ以上のシステムとに結合された制御バスを介して前記ローカル制御メッセージを送信することにより、前記1つ以上のシステムの前記動作状態変更を開始するように構成されている。
【0143】
項目32.項目31のデバイスであって、前記1つ以上のプロセッサは、前記ローカル制御メッセージと前記標準制御メッセージとの間の前記拡張可能マッピングを規定するファイルを取得するように構成されている。
【0144】
項目33.項目31および32のいずれかの組み合わせに従うデバイスであって、前記1つ以上のプロセッサは、車両ハードウェア抽象化レイヤを実行することにより前記制御バスと前記オペレーティングシステムとの間のシムを提供するように構成され、かつ、前記車両ハードウェア抽象化レイヤによって前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより、前記ローカル制御メッセージを取得するように構成されている。
【0145】
項目34.項目31から33のいずれかの組み合わせに従うデバイスであって、前記1つ以上のプロセッサは、前記1つ以上のプロセッサの専用制御バスプロセッサによって制御バスゲートウェイを実行することにより、前記制御バスと前記オペレーティングシステムとの間のシムを提供するように構成され、かつ、前記制御バスゲートウェイによって前記拡張可能マッピングに基づいて前記標準制御メッセージを前記ローカル制御メッセージにトランスレートするように構成されている。
【0146】
項目35.項目31~34のいずれかの組み合わせに従うデバイスであって、前記1つ以上のプロセッサはさらに、前記制御バスを介して第2のローカル制御メッセージを受けるように構成され、前記拡張可能マッピングに基づいて、前記第2のローカル制御メッセージをトランスレートすることにより、第2の標準制御メッセージを取得するように構成され、かつ、前記第2の標準制御メッセージに基づいて、1つ以上の車両パラメータの1つ以上の動作状態を更新するように構成されている。
【0147】
項目36.項目31~35のいずれかの組み合わせに従うデバイスであって、前記1つ以上のプロセッサはさらに、前記ローカル制御メッセージと前記標準制御メッセージとの間の異なるマッピングを規定する更新された拡張可能マッピングを取得するように構成されている。
【0148】
項目37.項目31~36のいずれかの組み合わせに従うデバイスであって、前記車両の前記1つ以上のシステムは前記車両の暖房・換気・空調システムを含む。
【0149】
項目38.項目31~37のいずれかの組み合わせに従うデバイスであって、前記制御バスプロトコルはコントローラエリアネットワーク(CAN)プロトコルを含む。
【0150】
項目39.項目31~38のいずれかの組み合わせに従うデバイスであって、前記ローカル制御メッセージは、DBCフォーマットまたはカヤックCAN定義(KCD)フォーマットのうちの一方に従ってフォーマットされたローカル制御メッセージを含む。
【0151】
項目40.命令が格納された非一時的なコンピュータ読取可能記憶媒体であって、前記命令は、実行されると、車両ヘッドユニットの1つ以上のプロセッサに、オペレーティングシステムを実行することにより前記車両の1つ以上のシステムを制御することと、制御バスプロトコルに従い指定されたローカル制御メッセージと前記オペレーティングシステムがサポートする標準制御メッセージとの間の拡張可能マッピングを取得することとを実行させ、前記オペレーティングシステムは前記標準制御メッセージを生成するように構成され、前記標準制御メッセージは、前記1つ以上のシステムの動作状態変更を開始するためのコマンドセットの第1の表現を含み、さらに、前記拡張可能マッピングに基づいて前記標準制御メッセージをトランスレートすることにより前記ローカル制御メッセージを取得することを実行させ、前記ローカル制御メッセージは、前記コマンドセットの第2の表現を含み、さらに、前記1つ以上のプロセッサが、前記1つ以上のプロセッサと前記1つ以上のシステムとに結合された制御バスを介して前記ローカル制御メッセージを送信することにより、前記1つ以上のシステムの前記動作状態変更を開始することを実行させる。
【0152】
限定ではなく例示として、そのようなコンピュータ読取可能記憶媒体は、所望のプログラムコードを命令またはデータ構造の形態で格納するために使用することができるとともにコンピュータがアクセスできる、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または任意の他の記憶媒体を含み得る。また、任意の接続は適切にコンピュータ読取可能媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバケーブル、撚り対線、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波等の無線技術を使用して、命令をウェブサイト、サーバまたは他のリモートソースから送信する場合、当該同軸ケーブル、光ファイバケーブル、撚り対線、DSL、または、赤外線、無線、およびマイクロ波等の無線技術は、媒体の定義に含まれる。しかしながら、コンピュータ読取可能記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まないがその代わりに非一時的な有形の記憶媒体に向けられることが理解されるはずである。本明細書で使用されるディスク(diskおよびdisc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピー(登録商標)ディスクおよびブルーレイ(登録商標)ディスクを含み、ディスク(disk)は通常磁気的にデータを再生するものであり、ディスク(disc)はレーザでデータを光学的に再生するものである。これらの組み合わせもコンピュータ読取可能媒体の範囲に含まれねばならない。
【0153】
命令は、1つ以上のプロセッサによって実行されてもよく、たとえば、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の集積もしくは離散論理回路によって実行されてもよい。したがって、本明細書で使用されている「プロセッサ」という用語は、上記構造、または、本明細書に記載されている技術の実現に適した任意の他の構造のうちのいずれかを指す。加えて、いくつかの局面において、記載されている機能は、専用ハードウェアおよび/またはソフトウェアモジュール内に与えられてもよい。また、当該技術は1つ以上の回路または論理素子において完全に実現することが可能である。
【0154】
本開示の技術は、無線ハンドセット、集積回路(IC)またはICのセット(たとえばチップセット)を含む多様なデバイスまたは装置において実現されてもよい。各種コンポーネント、モジュール、またはユニットは、本開示において、開示されている技術を実行するように構成されたデバイスの機能的側面を強調するように記載されているが、必ずしも異なるハードウェアユニットによる実現を要求していない。むしろ、上述のように、各種ユニットは、ハードウェアユニットにおいて組み合わされてもよい、または、好適なソフトウェアおよび/またはファームウェアとともに上記1つ以上のプロセッサを含む共同作業するハードウェアユニットの集まりによって提供されてもよい。
【0155】
さまざまな実施形態について説明した。これらのおよびその他の実施形態は以下の請求項の範囲に含まれる。