Nothing Special   »   [go: up one dir, main page]

WO2024142981A1 - 車載機、データ提供方法、及びプログラム - Google Patents

車載機、データ提供方法、及びプログラム Download PDF

Info

Publication number
WO2024142981A1
WO2024142981A1 PCT/JP2023/044907 JP2023044907W WO2024142981A1 WO 2024142981 A1 WO2024142981 A1 WO 2024142981A1 JP 2023044907 W JP2023044907 W JP 2023044907W WO 2024142981 A1 WO2024142981 A1 WO 2024142981A1
Authority
WO
WIPO (PCT)
Prior art keywords
vehicle
command
mounted device
data
information
Prior art date
Application number
PCT/JP2023/044907
Other languages
English (en)
French (fr)
Inventor
元樹 佐藤
Original Assignee
株式会社デンソー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社デンソー filed Critical 株式会社デンソー
Publication of WO2024142981A1 publication Critical patent/WO2024142981A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Definitions

  • This disclosure relates to a technology for providing vehicle data to an application program running on an in-vehicle device connected to an in-vehicle network.
  • Patent Document 1 describes a device that performs diagnostic communication to diagnose faults using data sent and received between ECUs via an in-vehicle network such as CAN.
  • CAN is a registered trademark.
  • a diagnostic tester is connected to a dedicated connector such as an OBD port provided in the vehicle, and a request message is sent from the diagnostic tester to the ECU, which then replies with a response message.
  • OBD stands for on-board diagnostic.
  • a vehicle typically has only one port for diagnostic communication, to which one diagnostic tester is connected. Furthermore, the problem was discovered that the diagnostic tester can only execute one application, and can only be used for a single purpose and independently.
  • One aspect of the present disclosure provides technology that enables an in-vehicle device connected to an in-vehicle network to be used simultaneously for multiple purposes.
  • One aspect of the present disclosure is an in-vehicle device that includes a data acquisition unit, an application execution unit, a schedule management unit, and a routing unit.
  • the data acquisition unit is configured to execute a transmission process that transmits a command used to acquire vehicle data to an in-vehicle network.
  • the application execution unit is configured to execute one or more application programs that use the vehicle data acquired by the data acquisition unit.
  • the schedule management unit is configured to use one or more pieces of management information to extract a command indicated by the management information that satisfies an acquisition condition as a transmission target command that is a command to be transmitted in the transmission process.
  • the schedule management unit is configured to generate routing information that associates the transmission target command with a requesting application.
  • the management information indicates the type of command used to acquire vehicle data, the requesting application that is an application program that requests the vehicle data, and the acquisition conditions for the vehicle data.
  • the routing unit is configured to provide the vehicle data acquired by the data acquisition unit executing the transmission process to the requesting application using the routing information.
  • vehicle data acquired via the in-vehicle network can be provided to the requesting application.
  • an in-vehicle device connected to the in-vehicle network can simultaneously be equipped with and run multiple applications that each use vehicle data independently.
  • One aspect of the present disclosure is a data providing method for providing vehicle data to a requesting application, which is an application program that requests the vehicle data.
  • This data providing method is applied to an in-vehicle device that executes a transmission process for transmitting a command used to acquire vehicle data to an in-vehicle network, and provides the vehicle data acquired by the transmission process to one or more application programs.
  • one or more pieces of management information are used to extract commands indicated by the management information that satisfy an acquisition condition as transmission target commands, which are commands to be transmitted in the transmission process.
  • routing information is generated that associates the transmission target commands with the requesting application.
  • the management information indicates the type of command used to acquire the vehicle data, the requesting application, and the acquisition conditions for the vehicle data.
  • the vehicle data acquired by executing the transmission process is provided to the requesting application using the routing information.
  • One aspect of the present disclosure is a program.
  • the program is executed in an in-vehicle device that executes a transmission process for transmitting a command used to acquire vehicle data to an in-vehicle network, and provides the vehicle data acquired by the transmission process to one or more application programs.
  • the program is executed in order to provide the vehicle data to a requesting app, which is an application program that requests the vehicle data.
  • the program causes the in-vehicle device to execute a process that uses one or more pieces of management information to extract commands to be sent and generate routing information.
  • the management information indicates the type of command used to acquire vehicle data, the requesting application, and the acquisition conditions for the vehicle data.
  • the command to be sent is a command that is to be sent in the transmission process and is indicated by the management information that satisfies the acquisition conditions.
  • the routing information is information that associates the command to be sent with the requesting application.
  • the program causes the in-vehicle device to execute a process to provide the vehicle data acquired by executing the transmission process to the requesting application using the routing information.
  • FIG. 2 is a block diagram showing a functional configuration of the data providing system.
  • FIG. 2 is a block diagram showing a hardware configuration of a cloud server.
  • FIG. 2 is a block diagram showing a hardware configuration of an in-vehicle device.
  • FIG. 2 is an explanatory diagram illustrating a structure of a manifest.
  • FIG. 13 is an explanatory diagram illustrating the structure of a command management table.
  • 4 is a sequence diagram showing the operation of each part of the system when the vehicle-mounted device is powered on;
  • FIG. 11 is a sequence diagram showing an operation when a diagnostic application is distributed.
  • FIG. 11 is a sequence diagram showing an operation when a diagnostic command is transmitted.
  • FIG. 11 is a sequence diagram showing an operation when a response to a diagnostic command is received.
  • Vehicle body data may include total mileage (i.e., odometer value), Global Positioning System (GPS) location information, light status, door/window open/close status, door/window lock status, seat belt status, airbag status, tire pressure, air conditioning operation status, parking brake status, etc.
  • GPS Global Positioning System
  • Fuel and exhaust system vehicle data may include battery charge status, fuel tank capacity, remaining fuel, average fuel consumption, etc.
  • Media-related vehicle data may include media status, volume, whether or not Bluetooth (hereinafter, BT) is connected, whether or not Data Communication Module (hereinafter, DCM) is connected, etc.
  • Bluetooth is a registered trademark.
  • Vehicle data may be assigned a priority according to the data type.
  • the priority may be set, for example, as follows. However, the setting of priority according to data type is not limited to the order below, and can be set arbitrarily.
  • the cloud-side DB management unit 22 updates the master DB 132 and distributes the diagnostic command information and frame interpretation information stored in the master DB 132 in response to a request from the vehicle-mounted device 30.
  • the cloud-side DB management unit 22 may be configured to identify the vehicle model from the vehicle identification number (hereinafter, VIN).
  • the memory unit 471 stores the manifest provided by the vehicle-side application management unit 46.
  • the load calculation unit 483 may measure the turnaround time each time the in-vehicle device 30 is started. Also, as shown by the dotted line in FIG. 16, the load calculation unit 483 may measure the turnaround time when it receives a notification from the exterior device management unit 50 indicating a change in the hardware configuration. The load calculation unit 483 may measure the turnaround time when it receives a notification from the vehicle-side application management unit 46 indicating a change in the software configuration.
  • the vehicle-side DB management unit 49 uses the acquired VIN information to determine whether or not the diagnostic command DB 341 and frame interpretation DB 342 need to be updated. Specifically, if no VIN-related information is stored in the diagnostic command DB 341 and frame interpretation DB 342, it determines that an update is required.
  • the VIN-related information is the diagnostic command information and frame interpretation information linked to the acquired VIN information. If VIN-related information is already stored in the diagnostic command DB 341 and frame interpretation DB 342, it determines that an update is not required.
  • the load calculation unit 483 may measure the turnaround time each time the in-vehicle device 30 is started. The load calculation unit 483 may also measure the turnaround time when it receives a notification from the external device management unit 50 indicating a change in the hardware configuration, or when it receives a notification from the vehicle-side application management unit 46 indicating a change in the software configuration.
  • a command management table is prepared for each type of "mode attribute.”
  • the command management table is updated by adding new management information (i.e., application ID, command ID, transmission waiting status, auxiliary information, transmission priority).
  • the adjustment unit 482 When the adjustment unit 482 receives a trigger signal from the external device management unit 50 or the CAN receiving unit 45, it sets the "waiting for transmission status" of the management information corresponding to the received trigger signal to 0 in the event-driven command management table.
  • the adjustment unit 482 When the adjustment unit 482 receives a request for immediate acquisition of vehicle data from a diagnostic application via the API group 42, it sets the "waiting for transmission status" of the management information corresponding to the received immediate acquisition request to 0 in the command management table for immediate drive.
  • the adjustment unit 482 executes the schedule adjustment process every tick.
  • the adjustment unit 482 acquires the traffic situation of the CAN bus 62.
  • the traffic situation may be information acquired from the ECU 63 that measures the traffic of the CAN bus 62, or information acquired by separate measurement by the vehicle-mounted device 30.
  • the traffic situation may also be static information (hereinafter, static traffic information) that is registered in advance in the system.
  • the static traffic information may be, for example, an average value measured for each vehicle model, or a value obtained by adding a safety margin to the average value.
  • the static traffic information may also be included in the information stored in the diagnostic command DB 341, for example.
  • the static traffic information may be used, for example, when dynamic traffic information, which is information representing the dynamic traffic situation measured at each time, cannot be acquired from the ECU 63 or the vehicle-mounted device 30.
  • the adjustment unit 482 leaves one piece of management information and removes the other duplicate management information from the transmission candidate commands.
  • the adjustment unit 482 also generates routing information to be provided to the routing unit 43.
  • the routing information is information that associates the command ID indicated by the transmission candidate command with the application ID of the application that requested the transmission candidate command, based on the information indicated in the command management table. In the routing information, each command ID is associated with one or more application IDs.
  • the adjustment unit 482 determines whether the processing in the next tick will result in an overload. An overload occurs when the required time Tneed calculated in S150 is greater than the tick, or when the estimated traffic on the CAN bus 62 will exceed the allowable value if the transmission candidate command is sent. If the adjustment unit 482 determines in S160 that there will not be an overload, it transitions the processing to S200, and if it determines that there will be an overload, it transitions the processing to S170.
  • the CAN transmitter 44 when the CAN transmitter 44 is notified of a command to be sent, it acquires a bit pattern representing the diagnostic command from the diagnostic command DB 341 according to the command ID indicated in the management information of the command to be sent.
  • the CAN transmitter 44 generates a transmission frame (i.e., a CAN frame) with the acquired bit pattern set in the payload, and transfers it to the transmission buffer.
  • the CAN receiver 45 notifies the routing unit 43 of the vehicle data processed by the frame interpretation unit 451 together with a command ID representing the diagnostic command sent to obtain the vehicle data.
  • the CAN transmitter 44 and the CAN receiver 45 correspond to a data acquisition unit in this disclosure
  • the application execution environment 41 corresponds to an application execution unit in this disclosure
  • the vehicle-side DB management unit 49 corresponds to a peripheral information acquisition unit in this disclosure
  • the diagnosis command information and the frame interpretation information correspond to peripheral information in this disclosure.
  • the vehicle-mounted device 30 In the data provision system 1, the vehicle-mounted device 30 generates management information to be registered in the command management table according to a manifest distributed from the cloud server 10 together with the diagnostic application 411. The vehicle-mounted device 30 then uses the management information registered in the command management table to adjust the timing of processing requests to acquire vehicle data from multiple diagnostic applications.
  • the vehicle-mounted device 30 can simultaneously operate multiple diagnostic applications that use diagnostic communication.
  • the diagnostic port 61 of the vehicle 60 can be used simultaneously for multiple different purposes.
  • the vehicle-mounted device 30 manages the vehicle data acquisition schedule according to a manifest that indicates the vehicle data acquisition conditions.
  • the vehicle-mounted device 30 also generates diagnostic commands suitable for the vehicle 60 and interprets responses from the vehicle 60 according to the diagnostic command information and frame interpretation information. Therefore, an application developer can develop a diagnostic application 411 even if he or she lacks knowledge about the diagnostic communication of the vehicle 60 to which the application is to be distributed.
  • the vehicle-mounted device 30 creates routing information to match the diagnostic command to be sent with the requesting application. Therefore, even if there are duplicate requests to send the same command at the same tick timing, causing the duplicate command to be deleted, the vehicle data obtained can be correctly provided to all requesting applications by referring to the routing information.
  • the diagnostic communication on the CAN bus 62 is premised on alternate transmission, in which commands are completed one by one after waiting for a response from the vehicle, as shown in the upper part of FIG. 14.
  • the present disclosure is not limited to alternate transmission, and as shown in the lower part of FIG. 14, transmission operations may be performed in parallel (hereinafter, parallel transmission) without waiting for a response from the vehicle. In this case, it is necessary to adjust the number of commands that can be transmitted in parallel so that traffic does not exceed an acceptable range.
  • Multiple functions possessed by one component in the above embodiments may be realized by multiple components, or one function possessed by one component may be realized by multiple components. Also, multiple functions possessed by multiple components may be realized by one component, or one function realized by multiple components may be realized by one component. Also, part of the configuration of the above embodiments may be omitted. Also, at least part of the configuration of the above embodiments may be added to or substituted for the configuration of another of the above embodiments.
  • a data acquisition unit (44, 45) configured to repeatedly execute a transmission process for transmitting a command used for acquiring vehicle data to an in-vehicle network
  • an application execution unit (41) configured to execute one or more application programs that utilize the vehicle data acquired by the data acquisition unit
  • a schedule management unit (48) configured to use one or more pieces of management information indicating the type of the command used to acquire the vehicle data, the request source application which is the application program that requests the vehicle data, and acquisition conditions for the vehicle data, to extract the command indicated by the management information which satisfies the acquisition conditions as a transmission target command which is the command to be transmitted in the transmission process, and to generate routing information which associates the transmission target command with the request source application
  • a routing unit (43) configured to provide the vehicle data acquired by the data acquisition unit executing the transmission process to the request source application using the routing information;
  • the vehicle-mounted device includes methods of specifying conditions for acquiring the vehicle data, such as periodic driving, which acquires the data repeatedly at a fixed period, application driving, which acquires the data in response to a request from the application program, and event driving, which acquires the data when a specified event occurs.
  • periodic driving which acquires the data repeatedly at a fixed period
  • application driving which acquires the data in response to a request from the application program
  • event driving which acquires the data when a specified event occurs.
  • the schedule management unit is configured to, when there is a possibility that the in-vehicle network will be overloaded if all of the transmission target commands extracted from the one or more pieces of management information are transmitted in the transmission process, exclude a part of the transmission target commands from the transmission process so as to prevent the in-vehicle network from being overloaded. Car-mounted device.
  • Item 7 The vehicle-mounted device according to item 7, The schedule management unit is configured to determine that the load is exceeded when the traffic of the in-vehicle network exceeds a tolerance value. Car-mounted device.
  • Item 9 The vehicle-mounted device according to item 9, An on-board device that measures the turnaround time when the on-board device is started.
  • the schedule management unit is configured to adjust the management information so that the management information excluded from the command to be sent is extracted as the command to be sent in an execution period subsequent to the execution period in which the management information was excluded from the command to be sent, Car-mounted device.
  • the vehicle-mounted device according to any one of claims 1 to 16, The vehicle-mounted device is connected to the vehicle-mounted network via a diagnostic port (61) provided in the vehicle, The data acquisition unit is configured to use a diagnostic command used in diagnostic communication as the command. Car-mounted device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

スケジュール管理部は、1つ以上の管理情報を用いて、取得条件を満たす管理情報が示すコマンドを、送信対象コマンドとして抽出すると共に、送信対象コマンドと要求元アプリとを対応づけたルーティング情報を生成する。要求元アプリは、車両データの要求元となるアプリケーションプログラムである。管理情報には、車両データの取得に用いるコマンドの種類、要求元アプリ、及び車両データの取得条件が示される。送信対象コマンドは、送信処理にて送信対象となるコマンドである。ルーティング部は、取得された車両データを、ルーティング情報を用いて要求元アプリに提供する。

Description

車載機、データ提供方法、及びプログラム 関連出願の相互参照
 本国際出願は、2022年12月28日に日本国特許庁に出願された日本国特許出願第2022-212065号に基づく優先権を主張するものであり、日本国特許出願第2022-212065号の全内容を本国際出願に参照により援用する。
 本開示は、車載ネットワークに接続される車載機にて動作するアプリケーションプログラムに対して車両データを提供する技術に関する。
 下記特許文献1には、CAN等の車載ネットワークを介してECU間で送受信されるデータを利用し、故障診断を行うダイアグ通信を行う装置が記載されている。CANは登録商標である。ダイアグ通信では、車両に設けられたOBDポート等の専用コネクタに診断テスターを接続し、診断テスターからECUへリクエストメッセージを送信し、ECUはレスポンスメッセージを返信する。OBDは、on-board diagnosticの略である。
特開2019-209964号公報
 しかしながら、発明者の詳細な検討の結果、以下の課題が見出された。すなわち、車両が搭載するダイアグ通信用のポート数は、通常1つであり、1つの診断テスターが接続される。そして、診断テスターは、一つのアプリケーションを実行するだけであり、単一目的・単独利用しかできないという課題が見出された。
 本開示の1つの局面は、車載ネットワークに接続される車載機を、複数目的での同時利用を可能とする技術を提供する。
 本開示の一態様は、車載機であって、データ取得部と、アプリ実行部と、スケジュール管理部と、ルーティング部と、を備える。データ取得部は、車両データの取得に用いるコマンドを、車載ネットワークに送信する送信処理を実行するように構成される。アプリ実行部は、データ取得部にて取得される車両データを利用する1つ以上のアプリケーションプログラムを実行するように構成される。スケジュール管理部は、1つ以上の管理情報を用いて、取得条件を満たす管理情報が示すコマンドを、送信処理にて送信対象となるコマンドである送信対象コマンドとして抽出するように構成される。また、スケジュール管理部は、送信対象コマンドと要求元アプリとを対応づけたルーティング情報を生成するように構成される。管理情報は車両データの取得に用いるコマンドの種類、車両データの要求元となるアプリケーションプログラムである要求元アプリ、及び車両データの取得条件が示される。ルーティング部は、データ取得部が送信処理を実行することによって取得された車両データを、ルーティング情報を用いて要求元アプリに提供するように構成される。
 このような構成によれば、車載ネットワークを介して取得される車両データを、要求元アプリに提供することができる。つまり、車載ネットワークに接続される車載機に、それぞれが独自に車両データを利用する複数のアプリケーションを同時に搭載して、動作させることができる。
 本開示の一態様は、車両データを車両データの要求元となるアプリケーションプログラムである要求元アプリに提供するデータ提供方法である。このデータ提供方法は、車両データの取得に用いるコマンドを、車載ネットワークに送信する送信処理を実行し、送信処理によって取得される車両データを1つ以上のアプリケーションプログラムに提供する車載機に適用される。
 データ提供方法では、1つ以上の管理情報を用いて、取得条件を満たす管理情報が示すコマンドを、送信処理にて送信対象となるコマンドである送信対象コマンドとして抽出する。データ提供方法では、送信対象コマンドと要求元アプリとを対応づけたルーティング情報を生成する。管理情報には、車両データの取得に用いるコマンドの種類、要求元アプリ、及び車両データの取得条件が示される。データ提供方法では、送信処理を実行することによって取得された車両データを、ルーティング情報を用いて要求元アプリに提供する。
 このような方法によれば、上述の車載機と同様の効果を得ることができる。
 本開示の一態様は、プログラムである。プログラムは、車両データの取得に用いるコマンドを、車載ネットワークに送信する送信処理を実行し、送信処理によって取得される前記車両データを1つ以上のアプリケーションプログラムに提供する車載機において実行される。プログラムは、車両データを車両データの要求元となるアプリケーションプログラムである要求元アプリに提供するために実行される。
 プログラムは、車載機に、1つ以上の管理情報を用いて、送信対象コマンドを抽出すると共にルーティング情報を生成する処理を実行させる。管理情報には、車両データの取得に用いるコマンドの種類、要求元アプリ、及び車両データの取得条件が示される。送信対象コマンドは、送信処理にて送信対象となるコマンドであって、取得条件を満たす管理情報が示すコマンドである。ルーティング情報は、送信対象コマンドと要求元アプリとを対応づけた情報である。
 プログラムは、車載機に、送信処理を実行することによって取得された車両データを、ルーティング情報を用いて要求元アプリに提供する処理を実行させる。
 このようなプログラムを実行することにより、上述の車載機と同様の効果を得ることができる。
データ提供システムの機能構成を示すブロック図である。 クラウドサーバのハードウェア構成を示すブロック図である。 車載機のハードウェア構成を示すブロック図である。 マニュフェストの構造を示す説明図である。 コマンド管理テーブルの構造を示す説明図である。 車載機の電源投入時におけるシステム各部の動作を示すシーケンス図である。 ダイアグ系アプリ配信時における動作を示すシーケンス図である。 ダイアグコマンド送信時における動作を示すシーケンス図である。 ダイアグコマンドに対する応答の受信時における動作を示すシーケンス図である。 スケジュール調整処理の内容を示すフローチャートである。 各tickで抽出されるダイアグコマンドの要求を例示する説明図である。 ダイアグコマンドの要求が重複する場合の動作を示す説明図である。 CANバスの負荷が超過する可能性がある場合の動作を示す説明図である。 コマンドの送信方法についての説明図である。 ダイアグコマンドが同一のtickに集中しないようにするための送信スケジュールの設定例を示す説明図である。 ターンアラウンド時間測定時における動作を示すシーケンス図である。
 以下、図面を参照しながら、本開示の実施形態を説明する。
 [1.構成]
 図1に示すデータ提供システム1は、クラウドサーバ10と、車載機30とを備える。図1では、例示的に、1つのクラウドサーバ10と、1つの車載機30とを示しているが、データ提供システム1は、複数のクラウドサーバ10及び複数の車載機30を備えてもよい。
 [1-1.クラウドサーバ]
 クラウドサーバ10は、広域通信ネットワークNWを介してアクセス可能に構成される。クラウドサーバ10は、車載機30にダイアグ系アプリケーションプログラム(以下、ダイアグ系アプリ)を実行させる際に必要となる各種情報を、車載機30に配信する。ダイアグ系アプリは、ダイアグ通信を利用して収集される車両データを利用するアプリケーションである。ダイアグ通信は、英語ではDiagnostic Communicationと表記され、車載ネットワークを利用して、電子制御装置(以下、ECU)63から故障診断に必要な車両データを取得する通信方法である。本実施形態では、車載ネットワークとして、CANバス62が利用される。CANは、Controller Area Networkの略である。CANは登録商標である。
 車両データは、複数のデータ種別に分類される。データ種別は、「車体制御・パワトレ系」「AD・ADAS系」「ドライバモニタ系」「車両ボディ系」「車室内外環境制御系」「燃料・排気系」「メディア系」「故障診断コード(以下、DTC)」等が存在してもよい。
 車体制御・パワトレ系の車両データは、車速、車体加速度、車体角速度、ギアポジション、アクセルペダルポジション、ブレーキペダルポジション、ブレーキ圧力等を含んでもよい。
 AD・ADAS系の車両データは、車間距離、標識制限速度、停止標識検出、レーンキープ警告、先行車追従、クリアランスソナー、障害物検知有無等を含んでもよい。
 ドライバモニタ系の車両データは、脇見検知ステータス、注意力低下検知ステータス、ドライバ異常検知ステータス等を含んでもよい。
 車両ボディ系の車両データは、総走行距離(すなわち、オドメータの値)、Global Positioning System(以下、GPS)位置情報、ライト点灯状態、ドア/ウィンドウ開閉状態、ドア/ウィンドウロック状態、シートベルト状態、エアバッグ状態、タイヤ空気圧、エアコン作動状況、パーキングブレーキ状態等を含んでもよい。
 車室内外環境制御系の車両データは、車室内外温度、エアコン動作状況等を含んでもよい。
 燃料・排気系の車両データは、バッテリ充電状態、燃料タンク容量、残燃料量、平均燃料消費量等を含んでもよい。
 メディア系の車両データは、使用メディアステータス、音量、Bluetooth(以下、BT)接続有無、Data Communication Module(以下、DCM)接続有無等を含んでもよい。Bluetoothは、登録商標である。
 DTCの車両データは、DTCリスト等を含んでもよい。
 車両データは、データ種別に従って、優先度が設定されていてもよい。優先度は、例えば、以下のように設定されてもよい。但し、データ種別による優先度の設定は、下記の順位に限定されるものではなく、任意に設定することが可能である。
 車体制御・パワトレ系>AD・ADAS系>ドライバモニタ系>車両ボディ系>車室内外環境制御系>燃料・排気系>メディア系>DTC
 図2に示すように、クラウドサーバ10は、制御部11と、通信部12と、記憶部13と、を備える。
 制御部11は、CPU111と、ROM112と、RAM113と、を備える。制御部11の各種機能は、CPU111が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、ROM112が、プログラムを格納した非遷移的実体的記録媒体に該当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。
 通信部12は、広域通信ネットワークNWを介して、無線通信により、車載機30とデータ通信を行う。
 記憶部13は、アプリケーションデータベース(以下、アプリDB)131と、マスターデータベース(以下、マスターDB)132を備える。アプリDB131には、一つ以上のダイアグ系アプリに関する情報が記憶される。マスターDB132には、車載機30が接続される車両60のCANバス62に関する情報が記憶される。
 [1-2.車載機]
 図1に示すように、車載機30は、車両60に設けられたダイアグポート61に接続して使用される。車載機30は、クラウドサーバ10から1つ以上のダイアグ系アプリ411をダウンロードして実行する。
 図3に示すように、車載機30は、制御部31と、車両インターフェース(以下、車両I/F)32と、通信部33と、記憶部34と、を備える。
 制御部31は、CPU311と、ROM312と、RAM313と、を備える。制御部31の各種機能は、CPU311が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。本実施形態では、ROM312が、プログラムを格納した非遷移的実体的記録媒体に相当する。また、このプログラムの実行により、プログラムに対応する方法が実行される。
 車両I/F32は、ダイアグ用コネクタ321と、拡張用コネクタ322とを備える。
 図1に示すように、ダイアグ用コネクタ321は、車両60が備えるダイアグポート61(例えば、OBDポート)に接続される。つまり、車載機30は、ダイアグ用コネクタ321が接続されたダイアグポート61を介して、車両60のCANバス62に接続され、CANバス62を介してECU63が有する種々の車両データを、ダイアグ通信を利用して取得する。
 拡張用コネクタ322は、車両60に後付けされる外装デバイス群70からの信号が入力される。外装デバイス群70には、通信チップ(例えば、BLE、LTE、NFC等)、カメラ、マイク、スピーカ、加速度センサ、ジャイロセンサ等が含まれてもよい。BLEは、Bluetooth Low Energyの略であり、LTEは、Long Term Evolutionの略であり、NFCは、Near Field Communicationの略である。
 図3に戻り、通信部33は、無線通信により、広域通信ネットワークNWに接続されたクラウドサーバ10とデータ通信を行う。
 記憶部34は、ダイアグコマンドデータベース(以下、ダイアグコマンドDB341)と、フレーム解釈データベース(以下、フレーム解釈DB)342とを備える。
 ダイアグコマンドDB341は、通信部33を介してクラウドサーバ10から取得されるダイアグコマンド情報を記憶する。フレーム解釈DB342は、通信部33を介してクラウドサーバ10から取得されるフレーム解釈情報を記憶する。ダイアグコマンド情報及びフレーム解釈情報については、後述する。
 [2.機能構成]
 次に、クラウドサーバ10及び車載機30の機能構成について説明する。
 [2-1.クラウドサーバ]
 図1に示すように、クラウドサーバ10は、アプリDB131と、マスターDB132とを備える。アプリDB131及びマスターDB132は、記憶部13上に構成される。
 アプリDB131には、車載機30に配布する1種類以上のダイアグ系アプリと、ダイアグ系アプリのそれぞれに対応づけられるマニュフェストとが記憶される。
 マニュフェストは、ダイアグ系アプリにて使用される1つ以上の車両データについて、各車両データの種類と、各車両データの取得条件等とを対応づけて記述した指示書である。マニュフェストは、アプリケーションの開発者によって作成される。マニュフェストは、アプリケーションの開発者が車両に関する専門的な知識がなくても理解できる形式で記述される。具体的には、図4に示すように、マニュフェストは、「要求情報」と「モード属性」とを含む。また、マニュフェストは、「モード属性」の内容に応じて、更に「モードサブ属性」及び「アプリメタデータ」を含んでもよい。
 「要求情報」は、車両データの種類を指定する情報である。車両データの種類を指定する際に、名称指定とコマンド指定とを用いることができる。名称指定は、車両データの意味を直感的に理解できる規格化された名称で指定する方法であり、車種によらず共通に定義される。コマンド指定は、車両のダイアグ通信で実際に送受信される形式(すなわち、ビットパターン)で指定する方法であり、車種毎に独自に定義される。
 「モード属性」は、「要求情報」に示された車両データの取得の仕方を指定する情報である。「モード属性」には、アプリ駆動、周期駆動、イベント駆動が存在する。アプリ駆動は、ダイアグ系アプリからの指示に従って、指定された車両データを限定された時間内に限定された回数だけ取得する場合に使用するモードである。アプリ駆動のうち、直ちに1回だけ取得する場合を即時駆動という。本実施形態では、アプリ駆動の一例として即時駆動について説明する。周期駆動は、指定された車両データを、指定された一定周期で繰り返し取得する場合に使用するモードである。イベント駆動は、指定されたイベントの発生時に検出される信号の変化をトリガとして、指定された車両データを取得する場合に使用するモードである。
 「モードサブ属性」は、「モード属性」の種類によって異なる情報であり、必要に応じて情報が設定される。なお、「モード属性」が即時駆動の場合、「モードサブ属性」として設定する情報は存在しなくてもよい。「モード属性」が周期駆動の場合、「モードサブ属性」として、車両データの取得周期を表す周期値、及び車両データの取得期間を表す期間値等が設定されてもよい。「モード属性」がイベント駆動の場合、「モードサブ属性」として、トリガ条件が設定されてもよい。トリガ条件は、どの信号がどのような状態になったことをトリガとするかを定義する情報である。トリガ条件は、CANバス62を介して得られる情報、外装デバイス群70から得られる信号、及び外装デバイス群70から得られる信号を加工(例えば、微分、積分、平滑化等)することで得られる情報等を利用してもよい。
 「アプリメタデータ」は、例えば、車両データの優先度を表す優先値が設定されてもよい。車両データの優先度は、同じタイミングで複数の車両データを取得することが要求され、かつ、全ての要求を処理することが困難な場合に、どの車両データの取得を優先させるかを決める際に用いる情報である。
 マスターDB132には、ダイアグコマンド情報及びフレーム解釈情報が記憶される。
 フレーム解釈情報は、CANバス62で使用される通信フレームのフォーマット、及びフレームの各領域におけるビットアサインや、アサインされた領域に示される値の単位等を定義した情報である。フレーム解釈情報は、車種毎に用意され、ダイアグ通信で用いる通信フレームを解釈する際に必要となる情報である。
 ダイアグコマンド情報は、CANバス62で使用可能なダイアグコマンドの一覧を含む情報であり、マニュフェストの「要求情報」にて説明したように、名称指定に関する情報とコマンド指定に関する情報とが存在する。ダイアグコマンド情報は、フレーム解釈情報と同様に、車種毎に用意される。
 クラウドサーバ10は、制御部11が実行する処理によって実現される機能として、クラウド側アプリ管理部21と、クラウド側DB管理部22とを備える。
 クラウド側アプリ管理部21は、車載機30に対するダイアグ系アプリ等の配信、削除を実行し、配信されたたダイアグ系アプリの動作監視等も行う。クラウド側アプリ管理部21は、アプリDB131に記憶されるダイアグ系アプリ、及びダイアグ系アプリに関連づけられるマニュフェストに対してアプリIDを付与して管理する。クラウド側アプリ管理部21は、ダイアグ系アプリを、該ダイアグ系アプリを開発した事業者と関連付けて管理してもよい。
 クラウド側DB管理部22は、マスターDB132の更新、及び車載機30からの要求に応じてマスターDB132に記憶されるダイアグコマンド情報及びフレーム解釈情報の配信を実行する。クラウド側DB管理部22は、車両識別番号(以下、VIN)から車種を特定できるように構成されてもよい。
 [2-2.車載機]
 車載機30は、ダイアグコマンドDB341と、フレーム解釈DB342と備える。ダイアグコマンドDB341及びフレーム解釈DB342は、記憶部34上に構成される。
 ダイアグコマンドDB341は、車載機30が取り付けられた車両(以下、搭載車両)60の車種に適用されるダイアグコマンド情報が記憶される。
 フレーム解釈DB342は、搭載車両60の車種に適用されるフレーム解釈情報が記憶される。
 車載機30は、制御部31が実行する処理によって実現される機能として、アプリ実行環境41と、API群42と、ルーティング部43と、CAN送信部44と、CAN受信部45と、車側アプリ管理部46と、マニュフェスト管理部47と、スケジュール管理部48と、車側DB管理部49と、外装デバイス管理部50とを備える。
 外装デバイス管理部50は、車載機30の拡張用コネクタ322に接続された外装デバイス群70の管理を行う。外装デバイス管理部50は、外装デバイス群70に属する各外装デバイスから入力される信号を監視する。外装デバイス管理部50は、監視対象の信号が、スケジュール管理部48から通知されるトリガ条件を充足する場合、スケジュール管理部48にイベントの発生を通知する機能を有する。外装デバイス管理部50は、車載機30の起動時に、拡張用コネクタ322に接続された外装デバイス群70が、前回の起動時と比較して変化があることを検出した場合、スケジュール管理部48にハードウェア構成の変更を通知する機能を有してもよい。
 車側DB管理部49は、車載機30が搭載車両60への初回接続時に、クラウドサーバ10から搭載車両60に適合するダイアグコマンド情報及びフレーム解釈情報を取得し、ダイアグコマンドDB341及びフレーム解釈DB342に記憶させる。
 アプリ実行環境41は、OS及びミドルウェア等を含み、クラウドサーバ10から配布されるダイアグ系アプリの実行環境を提供する。
 車側アプリ管理部46は、広域通信ネットワークNWを介してクラウドサーバ10からダイアグ系アプリ411を取得し、取得したダイアグ系アプリ411を、アプリ実行環境41にて実行できるようにデプロイ(すなわち、配置、展開)する。また、車側アプリ管理部46は、デプロイされたダイアグ系アプリ411の動作監視、及びデプロイされているダイアグ系アプリ411の削除等も行う。さらに、車側アプリ管理部46は、ダイアグ系アプリ411と共に、クラウドサーバ10から配布されるマニュフェストを、マニュフェスト管理部47に提供する。車側アプリ管理部46は、ダイアグ系アプリのデプロイ及び削除が行われる毎に、スケジュール管理部48にソフトウェア構成の変更を通知する機能を有してもよい。
 API群42は、アプリ実行環境41にて実行されるダイアグ系アプリ411に様々な機能を提供するアプリケーションプログラミングインターフェース(以下、API)の集合である。API群42には、搭載車両60のCANバス62を介して車両データを取得する機能を提供するAPIが少なくとも含まれる。
 ルーティング部43は、スケジュール管理部48から通知されるルーティング情報を有する。ルーティング情報は、車両データの要求元となるダイアグ系アプリ411(以下、要求元アプリ)と、要求に従ってCANバス62に送信されるダイアグコマンドとを対応づけた情報である。ルーティング部43は、CAN送信部44がダイアグコマンドを送信することによって、CAN受信部45で受信される車両データを、ルーティング情報を参照して、要求元アプリに配布する。
 つまり、CANは、通信相手を特定するセッション管理を行わない通信であるため、要求元アプリが複数存在する場合に、受信フレームが、どのダイアグ系アプリ411からの要求に基づくものであるかを判定できない。そこで、ルーティング部43では、要求元アプリとコマンドIDとを対応づけたルーティング情報を参照することにより、CAN受信部45を介してCANバス62から取得された車両データが、各要求元アプリに正しく届くようにしている。
 マニュフェスト管理部47は、記憶部471と、解釈部472とを備える。
 記憶部471は、車側アプリ管理部46から提供されるマニュフェストを記憶する。
 解釈部472は、記憶部471に記憶されたマニュフェストの内容を解釈することで、コマンド管理テーブルの設定に必要な情報を抽出及び生成して、スケジュール管理部48に提供する。具体的には、解釈部472は、マニュフェストの「要求情報」から車両データを特定し、特定された車両データを取得する際に使用するコマンドのコマンドIDを、ダイアグコマンド情報から抽出する。解釈部472は、マニュフェストの「モード属性」「モードサブ属性」の内容を、車両データの取得条件として抽出する。解釈部472は、マニュフェストの「アプリメタデータ」の内容を、送信優先度を表す優先値として抽出する。解釈部472は、「アプリメタデータ」に設定された優先値を用いる代わりに、マニュフェストの「モード属性」及び「モードサブ属性」(すなわち、車両データの取得条件)から、例えば次のように優先値を自動的に設定してもよい。
 「即時駆動orイベント駆動」<「周期駆動:長周期」<「周期駆動:短周期」
 つまり、周期駆動コマンドの優先度を、即時駆動コマンド及びイベント駆動コマンドの優先度を高くし、また、周期駆動コマンド同士では、より短周期のコマンドの優先度を高くしてもよい。但し、優先度の順位は、上記記載に限定されるものではなく、任意に設定することが可能である。
 また、解釈部472は、「アプリメタデータ」に設定された優先値を用いる代わりに、マニュフェストの「要求情報」から特定される車両データのデータ種別に応じて設定される優先値を用いてもよい。また、車両データの取得条件に基づいて設定される優先値と、データ種別に応じて設定される優先値とを組み合わせて用いてもよい。
 スケジュール管理部48は、設定部481と、調整部482と、負荷算出部483とを備える。
 設定部481は、解釈部472でのマニュフェストの解釈結果に基づいて、コマンド管理テーブルに、車両データの取得条件が示された管理情報を追加する。コマンド管理テーブルは、ダイアグコマンドの送信タイミングを管理するために用いる情報が示されたテーブルである。
 図5に示すように、コマンド管理テーブルに設定される管理情報には、「アプリID」「コマンドID」「送信待ステータス」「補足情報」「送信優先度」を含む。コマンド管理テーブルは、「モード属性」の種類毎に生成され、「モード属性」毎に「補足情報」の内容が互いに異なる。
 「アプリID」は、要求元アプリを特定する情報であり、車側アプリ管理部46によってダイアグ系アプリがデプロイされたときに付与される。
 「コマンドID」は、マニュフェストの「要求情報」に示された車両データを取得する際に使用するダイアグコマンドを特定する情報である。
 「送信待ステータス」は、送信までの残りtick数が示される。tickは、ダイアグコマンド送信処理の実行周期であり、例えば、100msに設定される。残りtick数は、tick毎に値がデクリメントされ、残りtick数が0になった管理情報が、次回のtickで処理される。
 但し、「モード属性」が周期駆動の場合、「送信待ステータス」は、コマンドの送信が実行される毎に、「モードサブ属性」に示された周期値に対応するtick数にプリセットされる。その結果、周期駆動の場合は周期値に応じた周期でコマンドの送信が繰り返される。
 「モード属性」がイベント駆動の場合、「送信待ステータス」は、通常時は、要求が無いことを示す無効値に設定され、指定されたトリガ条件を充足した場合に0に設定され、コマンド送信後、再び無効値に設定される。無効値は、例えば、全ビットを1でパディングした値であってもよい。
 「モード属性」が即時駆動の場合、「送信待ステータス」は、通常時は無効値に設定され、ダイアグ系アプリ411からの要求が発生した場合に0に設定され、コマンド送信後、再び無効値に設定される。「送信待ステータス」が無効値に設定されている場合、tick毎のデクリメントは行われず、無効値が維持される。
 「モード属性」が周期駆動の場合、「補足情報」として「送信残数」が設定されてもよい。「送信残数」は、マニュフェストの「モードサブ属性」に有効期間の情報が含まれている場合に、有効期間を残りtick数で示した値が設定される。有効期限が無制限の場合、「送信残数」は、無効値に設定される。「送信残数」の残りtick数は、tick毎に値がデクリメントされる。但し、無効値に設定されている場合は、tick毎のデクリメントは行われず無効値が維持される。「送信残数」のtick数が0になった管理情報は、コマンド管理テーブルから削除される。
 「モード属性」がイベント駆動の場合、「補足情報」として「トリガ種類」が設定されてもよい。「トリガ種類」には、イベントの発生を通知する条件であるトリガ条件が設定される。設定部481は、「トリガ種類」の内容に従って、外装デバイス管理部50及びCAN受信部45に、トリガ条件を通知する。
 「モード属性」が即時駆動の場合、「補足情報」として「ペイロード」が設定されてもよい。「ペイロード」は、CANフレームのペイロードに書き込まれるビット形式で示されたコマンドそのものが設定される。
 「送信優先度」には、優先値が設定される。優先値は、コマンド管理テーブルに従って、送信候補となるコマンドを抽出したときに、負荷超過等の理由ですべての送信候補を次回のtickで処理することが困難である場合、どのダイアグコマンドを優先させるかを決めるための情報である。ここでは、優先値が大きいほど優先度も高いとする。マニュフェストの「アプリメタデータ」として優先値が設定されている場合は、この優先値を用いてもよい。優先値が設定されていない場合、最低優先度とみなしてもよい。
 調整部482は、コマンド管理テーブルを参照して、次回のtickで処理する管理情報、すなわち送信対象となるダイアグコマンドを決定して、CAN送信部44に通知する。なお、送信対象となるダイアグコマンドの決定には、各ダイアグコマンドのターンアラウンド時間、CANバス62のトラフィック、ダイアグコマンドの送信優先度が勘案される。
 ダイアグ通信において、コマンドの並列送信が禁止され、コマンドの交互通信を行うようにされている場合、tick当たりの送信可能なコマンドの数は、ターンアラウンド時間から推定できる。交互通信は、図14の上段に示すように、コマンドの送信後、その応答を受信してから次のコマンドを送信する方法である。並列送信は、図14の下段に示すように、コマンドの送信後、その応答の受信を待つことなく次のコマンドを送信する方法である。
 トラフィックは、CANバス62が使用されている割合である。トラフィックが高いほどターンアラウンド時間が長くなるため、tick当たりの送信可能なコマンドの数は少なくなる。また、CANバス62において許容されるトラフィックの上限値(以下、許容値)は、車種毎に設定されていてもよい。
 負荷算出部483は、車載機30の起動時の初期化処理後に、調整部482での処理に用いるターンアラウンド時間の測定を行う。ターンアラウンド時間の測定は、CAN送信部44にCANバス62にコマンドを送信させ、CAN受信部45が応答を受信するまでの時間を測定する。この測定を、複数のコマンドについて繰り返し実行する。負荷算出部483は、測定されたターンアラウンド時間の平均値を算出してもよい。負荷算出部438は、コマンド毎に測定されたターンアラウンド時間、及びターンアラウンド時間の平均値のいずれか又は両方を、ダイアグコマンドDB341に格納する。なお、ターンアラウンド時間の平均値に代えて、ターンアラウンド時間の平均値に安全マージンを加えた値を用いてもよい。
 負荷算出部483は、車載機30が起動する毎にターンアラウンド時間の測定を行ってもよい。また、図16に点線で示すように、負荷算出部483は、外装デバイス管理部50からハードウェア構成の変更を示す通知を受けた場合にターンアラウンド時間の測定を行ってもよい。負荷算出部483は、車側アプリ管理部46からソフトウェア構成の変更を示す通知を受けた場合に、ターンアラウンド時間の測定を行ってもよい。
 CAN送信部44は、コマンド生成部441を備える。コマンド生成部441は、スケジュール管理部48の調整部482からの指示に従い、ダイアグコマンドDB341を参照して、ダイアグコマンドを生成する。コマンド生成部441は、更に、ダイアグコマンドをペイロードに格納したCANフレームを生成して、送信バッファに格納する。CAN送信部44は、送信バッファに格納されたCANフレームを、ダイアグ用コネクタ321を介してCANバス62に送信する。
 CAN受信部45は、フレーム解釈部451を備える。CAN受信部45は、ダイアグ用コネクタ321を介してCANバス62から受信したCANフレーム(すなわち、ダイアグコマンドに対する応答)を、受信バッファに格納する。フレーム解釈部451は、フレーム解釈DB342に記憶されたフレーム解釈情報を参照して、受信したCANフレーム(以下、受信フレーム)の内容を解釈する。フレーム解釈部451は、受信フレームのペイロードに示され、車両60に固有な形式で記述された車両データを、要求元アプリにて理解可能な形式に変換する。そして、フレーム解釈部451は、解釈され変換された車両データを、送信したダイアグコマンドのコマンドIDと共にルーティング部43に提供する。
 CAN受信部45は、周期的に受信する車両データを監視する機能を有する。CAN受信部45は、監視対象信号が、スケジュール管理部48から通知されるトリガ条件を充足する場合、スケジュール管理部48にイベントの発生を通知する機能を有する。CAN受信部45は、CAN送信部44にてコマンドが送信されてから、そのコマンドに対する応答がCAN受信部45にて受信されるまでの時間であるターンアラウンド時間を測定して、負荷算出部483に通知する機能を有する。
 ルーティング部43は、CAN受信部45から提供される車両データを、スケジュール管理部48の調整部482から通知されるルーティング情報に従って、要求元アプリに提供する。
 [3.動作]
 [3-1.車載機の電源投入時の動作]
 車載機30の電源投入時における、システム各部の動作について、図6に示すシーケンス図を用いて説明する。
 図6に示すように、車載機30に電源が投入されると、車載機30は、車載機30を初期化する処理(以下、車載機初期化処理)S1を実行する。この車載機初期化処理S1により、車載機30は、標準コマンドを用いたダイアグ通信が可能な状態となる。
 車側DB管理部49は、標準コマンドの1つであるVIN取得コマンドを、CAN送信部44を介してCANバス62に送信し、その応答を、CAN受信部45を介して受信することで、車両60からVIN情報を取得する。
 車側DB管理部49は、取得したVIN情報を用いて、ダイアグコマンドDB341及びフレーム解釈DB342の更新の要否を判定する。具体的には、ダイアグコマンドDB341及びフレーム解釈DB342に、VIN関連情報が記憶されていない場合は、更新要と判定する。VIN関連情報は、取得したVIN情報に紐づけられるダイアグコマンド情報及びフレーム解釈情報である。ダイアグコマンドDB341及びフレーム解釈DB342にVIN関連情報が既に記憶されている場合、更新不要と判定する。
 例えば、車載機30が初めて車両に取り付けられた場合には更新要と判定される。また、第1の車両60から車載機30が取り外され、第1の車両60のVIN関連情報がダイアグコマンドDB341及びフレーム解釈DB342に残されている状態で、第2の車両60に取り付けられ、改めて第2の車両60のVIN情報を取得した場合には、更新要と判定される。
 車側DB管理部49は、更新不要と判定した場合、動作を終了する。
 車側DB管理部49は、更新要と判定した場合、取得したVIN情報と共にデータ取得要求を、クラウドサーバ10に対して送信することで、クラウドサーバ10から、搭載車両60の車種に対応したVIN関連情報を取得する。このとき、クラウドサーバ10のクラウド側DB管理部22は、データ取得要求に示されたVIN情報から車種を特定し、特定した車種に対応するVIN関連情報をマスターDB132から読み出して、車載機30に返信する。
 車側DB管理部49は、クラウドサーバ10から受信したVIN関連情報によって、ダイアグコマンドDB341及びフレーム解釈DB342を更新する。なお、更新されるVIN関連情報は、VIN情報に対応付けて記憶される。
 以下では、図6を用いて説明した処理のうち、車載機初期化処理S1の後に実行される一連の処理をデータベース更新処理S2ともいう。
 [3-2.ターンアラウンド時間測定]
 車載機30が使用するダイアグコマンドのターンアラウンド時間を測定するときのシステム各部の動作を、図16に示すシーケンス図を用いて説明する。
 図16に示すように、図6を用いて先に説明した車載機初期化処理S1、データベース更新処理S2が終了すると、負荷算出部483は、ターンアラウンド時間測定用に、予め指定された複数のコマンドをダイアグコマンドDB341から読みだす。読み出したコマンドの1つを測定対象コマンドとして選択し、選択した測定対象コマンドを用いてターンアラウンド時間を測定するように、CAN送信部44に通知する。
 CAN送信部44は、CANバス62に測定対象コマンドを送信する。このとき、CAN受信部45は、ターンアラウンド時間の計測を開始する。CAN受信部45は、CANバス62から応答を受信すると、ターンアラウンド時間の計測を停止し、測定結果を負荷算出部483に送信する。
 負荷算出部483は、ダイアグコマンドDB341から読み出したすべてのコマンドについて、同様の処理を行うことによって、各コマンドのターンアラウンド時間を取得する。負荷算出部483は、指定されたすべてのコマンドの送信が終了すると、ターンアラウンド時間の平均値を算出する。更に、負荷算出部483は、個々のコマンドのターンアラウンド時間の測定結果、及びターンアラウンド時間の平均値の算出結果を、調整部482の処理にて利用できるように、ダイアグコマンドDB341に格納する。
 負荷算出部483は、車載機30が起動する毎にターンアラウンド時間の測定を行ってもよい。また、負荷算出部483は、外装デバイス管理部50からハードウェア構成の変更を示す通知を受けた場合、又は、車側アプリ管理部46からソフトウェア構成の変更を示す通知を受けた場合に、ターンアラウンド時間の測定を行ってもよい。
 [3-3.アプリ配信/コマンド管理テーブル設定]
 クラウドサーバ10から車載機30へのダイアグ系アプリ配信時におけるシステム各部の動作について、図7に示すシーケンス図を用いて説明する。
 図7に示すように、配信待ちのダイアグ系アプリがアプリDB131に記憶されている場合、クラウドサーバ10のクラウド側アプリ管理部21が、車載機30にダイアグ系アプリの配信受け入れを要求する配信要求を送信する。
 車載機30の車側アプリ管理部46は、配信要求を受信すると、配信要求に示された情報に従って配信を受け入れるか否かを判定し、受け入れる場合は、許諾通知をクラウドサーバ10に送信する。配信の受け入れ可否を判定するための情報としては、プログラムの保存に必要なメモリ容量、アプリの実行に必要なCPUの処理能力及びメモリ容量等が含まれてもよい。
 クラウド側アプリ管理部21は、アプリDB131に記憶されているダイアグ系アプリ及びマニュフェストを、許諾通知を返信してきた車載機30に配信送信する。このとき、クラウド側アプリ管理部21は、配信先の車載機30に関する情報(例えば、車載機30を搭載する車両のVIN情報等)を、アプリDB131に登録してもよい。
 車側アプリ管理部46は、クラウドサーバ10からダイアグ系アプリを受信すると、受信したダイアグ系アプリ411をアプリ実行環境41にて実行できるようにデプロイする。また、車側アプリ管理部46は、ダイアグ系アプリ411に添付されたマニュフェストを、マニュフェスト管理部47に提供する。デプロイされたダイアグ系アプリ411には、アプリIDが付与され、このアプリIDが、マニュフェスト管理部47に提供するマニュフェストにも対応づけられる。
 マニュフェスト管理部47は、車側アプリ管理部46から提供されるマニュフェストを記憶部471に記憶すると共に、解釈部472にてマニュフェストの内容を解釈して、コマンド管理テーブルへの登録に必要な情報を抽出する。具体的には、解釈部472は、マニュフェストに対応づけられたアプリID、コマンドID、車両データ取得条件(すなわち、「モード属性」及び「モードサブ属性」)、送信優先度を抽出して、スケジュール管理部48に提供する。
 なお、マニュフェストの「モード属性」が周期駆動であり、「モードサブ属性」に示された周期値がtickより短い場合、要求通りのタイミングで車両データを取得できない旨を、車側アプリ管理部46に通知してもよい。通知を受けた車側アプリ管理部46は、対応するダイアグ系アプリを削除し、配信元のクラウドサーバ10に、アプリを削除した旨を理由と共に通知してもよい。
 スケジュール管理部48の設定部481は、マニュフェスト管理部47の解釈部472から提供された情報(以下、更新用情報)を用いて、コマンド管理テーブルを更新する。
 なお、図5に示すように、コマンド管理テーブルは、「モード属性」の種類毎に用意される。コマンド管理テーブルの更新は、新たな管理情報(すなわち、アプリID、コマンドID、送信待ステータス、補助情報、送信優先度)を追加することで行う。
 [3-4.送信待ステータス更新]
 スケジュール管理部48の調整部482が、コマンド管理テーブルの「送信待ステータス」を更新する動作について説明する。
 調整部482は、周期駆動用のコマンド管理テーブルに登録された管理情報については、後述するスケジュール調整処理が終了する毎に、「送信待ステータス」及び「補助情報(すなわち、送信残数)」に示された残りtick数を、いずれも1減じる。但し、調整部482は、減じる前の「送信待ステータス」の残りtick数が0である管理情報については、残りtick数を減じる代わりに、残りtick数を周期値に応じた値にプリセットする。
 調整部482は、「補助情報」の残りtick数を減じた結果、「補助情報」の残りtick数が0となる管理情報については、その管理情報をコマンド管理テーブルから削除する。
 調整部482は、外装デバイス管理部50又はCAN受信部45からトリガ信号を受信した場合、イベント駆動用のコマンド管理テーブルにおいて、受信したトリガ信号に対応する管理情報の「送信待ステータス」を0に設定する。
 調整部482は、ダイアグ系アプリからAPI群42を介して車両データの即時取得要求を受信した場合、即時駆動用のコマンド管理テーブルにおいて、受信した即時取得要求に対応する管理情報の「送信待ステータス」を0に設定する。
 [3-5.スケジュール調整]
 スケジュール管理部48の調整部482が、コマンド管理テーブルを用いて、次回のtickにて送信するダイアグコマンドを決定するスケジュール調整処理を、図8のシーケンス図、及び図10のフローチャートを用いて説明する。
 調整部482は、スケジュール調整処理を、tick毎に実行する。
 スケジュール調整処理が開始されると、まずS110にて、調整部482は、CANバス62のトラフィック状況を取得する。トラフィック状況は、CANバス62のトラフィックを測定するECU63から取得される情報を用いてもよいし、車載機30にて別途測定することで取得される情報を用いてもよい。また、トラフィック状況は、予めシステムに登録されている静的な情報(以下、静的トラフィック情報)を用いてもよい。静的トラフィック情報は、例えば、車種毎に測定された平均値、又は平均値に安全マージンを加えた値であってもよい。また、静的トラフィック情報は、例えば、ダイアグコマンドDB341に格納される情報に含まれていてもよい。更に、静的トラフィック情報は、例えば、ECU63又は車載機30から、その時々で測定される動的なトラフィック状況を表す情報である動的トラフィック情報を取得できない場合に使用してもよい。
 続くS120では、調整部482は、コマンド管理テーブルの「送信待ステータス」を参照して、残りtick数が0に設定されているすべての管理情報、すなわち、次回のtickで処理対象となる全ての管理情報を、送信候補コマンドとして抽出する。コマンド管理テーブルに基づき、各tickにて抽出される送信候補コマンド(すなわち、ダイアグコマンドの送信要求)を、図11に例示する。図11では、3つの周期駆動コマンドC1~C3が存在し、イベント駆動コマンドが1回、即時駆動コマンドが2回発生した場合を示す。なお、周期駆動コマンドC1は0.5s(すなわち、5tick)周期で処理され、周期駆動コマンドC2は0.2s(すなわち、2tick)周期で処理され、周期駆動コマンドC3は0.1s(すなわち、1tick)周期で処理される。図11は、負荷調整前におけるダイアグコマンドの送信スケジュールを示す。
 続くS130では、調整部482は、送信候補コマンドとして抽出された管理情報の中に、同一のコマンドIDを有する重複した管理情報が存在する場合、1つの管理情報を残して、他の重複した管理情報を送信候補コマンドから除外する。また、調整部482は、ルーティング部43に提供するルーティング情報を生成する。ルーティング情報は、コマンド管理テーブルに示された情報に基づいて、送信候補コマンドが示すコマンドIDと、送信候補コマンドの要求元アプリのアプリIDとを対応づけた情報である。ルーティング情報において、各コマンドIDは、それぞれ1つ以上のアプリIDに対応づけられる。
 例えば、図12に示すように、複数のダイアグ系アプリ411から異なる周期で、同一の車両データを取得する周期駆動コマンドC4,C5を送信するように設定されている場合、両アプリからの要求が同一のtickで重なることがある。このような場合に、重複する周期駆動コマンドC4,C5をいずれも送信するのではなく、いずれか一つ(例えば、図12ではコマンドC5)だけ送信するように調整を行う。但し、セッション管理を行わないCANの情報だけでは、取得した車両データと要求元アプリとの対応が不明となるため、取得した車両データが、要求元アプリに正しく提供されるように、ルーティング情報が利用される。
 続くS140では、調整部482は、すべての送信候補コマンドのターンアラウンド時間を取得する。コマンド毎のターンアラウンド時間は、先に説明した通り、車載機30の起動時に計測され、ダイアグコマンドDB341に記憶された計測値を用いてもよいし、計測値から算出されたターンアラウンド時間の平均値を用いてもよいし、設計値を用いてもよい。
 続くS150では、調整部482は、すべての送信候補コマンドを交互通信で送信した場合に必要となる必要時間Tneedを算出する。必要時間Tneedは、すべての送信候補コマンドのターンアラウンド時間の合計値である。但し、ターンアラウンド時間は、S110で取得したトラフィック状況に応じて、混雑しているほど長くなるように補正されてもよい。
 続くS160では、調整部482は、次のtickでの処理が負荷超過となるか否かを判定する。負荷超過とは、S150で算出された必要時間Tneedがtickより大きい場合、又は、送信候補コマンドを送信するとCANバス62の推定トラフィックが許容値を超える場合のことをいう。調整部482は、S160にて負荷超過とはならないと判定した場合、処理をS200に移行し、負荷超過となると判定した場合、処理をS170に移行する。
 S170では、調整部482は、送信候補コマンドの中に除外可コマンドがあるか否かを判定する。例えば、優先値が除外可しきい値以下である送信候補コマンドを、除外可コマンドとしてもよい。
 調整部482は、送信候補コマンドの中に除外可コマンドがある場合、処理をS180に移行し、除外可コマンドがない場合、処理をS190に移行する。
 S180では、調整部482は、送信候補コマンドに含まれる除外可コマンドの少なくとも1つを送信候補コマンドから除外すると共に、除外した送信候補コマンドに関する情報を、ルーティング情報からも除外して、処理をS150に戻す。なお、調整部482は、除外した送信候補コマンドの要求元アプリに対して、要求が処理されなかったことを通知してもよい。
 S190では、調整部482は、送信候補コマンドの中で優先値が最も低いコマンド、又は周期値が所定値(例えば、10tick)以上であるコマンドの少なくとも1つを、送信候補コマンドから除外して、送信保留コマンドとする。また、調整部482は、ルーティング情報から、送信保留コマンドに関する情報を除外する。更に、調整部482は、送信保留コマンドが、次のtickにて、再び送信候補コマンドとして抽出されるように、コマンド管理テーブルにおいて、送信保留コマンドの「送信待ステータス」の残りtick数を1増加させて、処理をS150に戻す。なお、残りtick数を増加させる数は、1に限定されるものではなく、例えば、一定の範囲内でランダムに選択される数を用いてもよい。また、一定の範囲は、CANバス62のトラフィック状況に応じて混雑時ほど大きくなるように設定してもよい。
 S200では、調整部482は、送信候補コマンドを送信対象コマンドとして、CAN送信部44に通知すると共に、ルーティング情報をルーティング部43に通知して、処理を終了する。
 つまり、図13に示すように、負荷超過が生じた場合、送信候補コマンドに除外可コマンドCRが含まれていれば、その除外可コマンドCRを除外することでCANバス62の負荷を調整する。また、除外可コマンドCRが含まれていなければ、送信候補コマンドのうち優先度の低い低優先コマンドCL、又は周期値が所定値以上であるコマンドが次回以降のtickで送信されるようにすることでCANバス62の負荷を調整する。
 図8に示すように、CAN送信部44は、送信対象コマンドの通知を受けると、送信対象コマンドの管理情報に示されたコマンドID従って、ダイアグコマンドDB341からダイアグコマンドを表すビットパターンを取得する。CAN送信部44は、取得したビットパターンをペイロードに設定した送信フレーム(すなわち、CANフレーム)を生成して、送信バッファに転送する。
 送信バッファに転送されたCANフレームは、CANバス62におけるダイアグ通信の送受信プロセスに従って送受信される。
 [3-6.レスポンス受信]
 車載機30が、ダイアグコマンドを載せたCANフレームを送信し、ダイアグコマンドに対する応答(すなわち、車両データ)を載せたCANフレームを車両60から受信したときの動作について、図9に示すシーケンス図を用いて説明する。
 図9に示すように、CAN受信部45は、ダイアグコマンドの応答が示されたCANフレームを受信すると、フレーム解釈部451にて、受信したCANフレームのペイロードをビット解析する。ビット解析には、フレーム解釈DB342に記憶されたフレーム解釈情報が用いられる。ビット解析により得られる車両データは、何らかの状態(例えば、スイッチのオンオフ等)を表す値であってもよいし、アナログ信号のサンプリング値(すなわち、物理量)であってもよい。車両データが物理量を表している場合、フレーム解釈部451は、取得した物理量を、所定の単位(例えば、要求元アプリで使用される単位)に換算してもよいし、取得した物理量に対して時系列処理等を施してもよい。時系列処理は、取得した車両データに対して微分、積分、平滑化等を施す処理である。
 CAN受信部45は、フレーム解釈部451にて処理された車両データを、その車両データを取得するために送信したダイアグコマンドを表すコマンドIDと共にルーティング部43に通知する。
 ルーティング部43は、CAN受信部45から通知されるコマンドID及び車両データに基づき、スケジュール管理部48から通知されたルーティング情報を参照して、コマンドIDに対応するアプリIDを特定する。更に、ルーティング部43は、アプリIDが示す要求元アプリに、アプリ実行環境41を介して車両データを通知する。
 [4.用語の対応]
 本実施形態において、CAN送信部44及びCAN受信部45が本開示におけるデータ取得部に相当し、アプリ実行環境41が本開示におけるアプリ実行部に相当する。車側DB管理部49が本開示における周辺情報取得部に相当し、ダイアグコマンド情報及びフレーム解釈情報が本開示における周辺情報に相当する。
 [5.効果]
 以上詳述した実施形態によれば、以下の効果を奏する。
 (5a)データ提供システム1において、車載機30は、クラウドサーバ10からダイアグ系アプリ411と共に配信されるマニュフェストに従って、コマンド管理テーブルに登録する管理情報を生成する。そして、車載機30は、コマンド管理テーブルに登録された管理情報を用いることで、複数のダイアグ系アプリからの車両データの取得要求を処理するタイミングを調整する。
 従って、車載機30によれば、ダイアグ通信を利用する複数のダイアグ系アプリを同時に動作させることができる。すなわち、車両60のダイアグポート61を、異なった複数の目的について同時使用することができる。
 (5b)車載機30は、車両データの取得条件が示されたマニュフェストに従って、車両データの取得スケジュールを管理する。また、車載機30は、ダイアグコマンド情報及びフレーム解釈情報に従って、搭載車両60に適合したダイアグコマンドの生成、及び搭載車両60からの応答の解釈を行う。従って、アプリの開発者は、配信先の車両60のダイアグ通信に関する知識が不足していても、ダイアグ系アプリ411を開発することができる。
 (5c)車載機30では、ルーティング情報を作成することで、送信するダイアグコマンドと、要求元アプリとの対応づけを行っている。従って、同一tickタイミングで同一コマンドの送信要求が重複することで、重複するコマンドが削除された場合でも、ルーティング情報を参照して、取得した車両データを、すべての要求元アプリに正しく提供することができる。
 (5d)車載機30では、コマンド管理テーブルから抽出されるすべての送信候補コマンドを送信すると、負荷超過が生じる可能性がある場合、負荷調整を行う。負荷調整では、送信候補コマンドの一部を、送信対象から除外したり、次回以降のtickで処理されるように調整したりする。従って、CANバス62のトラフィックを許容範囲内に抑えることができ、ECU63間で送受信される正規のコマンド(例えば、車両制御用のコマンド)の送受信に遅延などの影響が生じることを抑制できる。また、アプリの開発者は、各車両60におけるCANバス62のトラフィック制限等についての知識がなくても、安全に動作するダイアグ系アプリ411を開発することができる。
 (5e)車載機30では、周期駆動の要求の場合、周期値が大きいほど優先度を低く設定している。つまり、負荷超過により処理が保留されることによる低優先度コマンドの送信周期のずれ(すなわち、遅延)による影響は、保留されたコマンドの周期値が大きいほど相対的に小さくなるため、要求元アプリが実現する機能への影響を小さく抑えることができる。
 [6.他の実施形態]
 以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
 (6a)上記実施形態では、負荷超過時に、除外可コマンドがない場合、低優先度のコマンドの処理を遅延させているが、即時駆動又はイベント駆動に関するコマンドの処理を遅らせるようにしてもよい。
 (6b)上記実施形態では、CANバス62上でのダイアグ通信を、図14の上段に示すように、コマンドに対する車両からの応答を待って1つずつ完結させる交互送信を前提としている。本開示は、交互送信に限定されるものではなく、図14の下段に示すように、車両からの応答を待たず並列で送信操作(以下、並列送信)を行ってもよい。この場合、トラフィックが許容範囲を超えないように、並列送信できるコマンドの数を調整する必要がある。
 (6c)上記実施形態では、マニュフェストに従って、コマンド管理テーブルに管理情報を追加する際に、「送信待ステータス」の初期値を、周期値に応じた値に設定している。「送信待ステータス」の初期値は、送信候補コマンドが同一tickに集中しないよう、調整されてもよい。例えば、図15に示すように、取得周期が3tickである3個の周期駆動コマンドC6~C8が存在する場合、各周期駆動コマンドC6~C8のそれぞれが、異なるtickで処理されるように、管理情報登録時における「送信待ステータス」の初期値を調整してもよい。
 (6d)上記実施形態では、スケジュール調整処理のS120において、調整部482は、コマンド管理テーブルの「送信ステータス」を参照して、残りtick数が0に設定されているすべての管理情報、すなわち、次回のtickで処理対象となるすべての管理情報を送信候補コマンドとして抽出している。しかしながら、送信候補コマンドの抽出方法は、これに限定されない。例えば、S120において、調整部482は、コマンド管理テーブルの「送信ステータス」を参照して、残りtick数が1に設定されているすべての管理情報、すなわち、次々回のtickで処理対象となるすべての管理情報を送信候補コマンドとして抽出してもよい。この場合、S130~S190では、今回のスケジュール調整処理におけるS120で抽出された次々回のtickで処理対象となる送信候補コマンドを絞り込む。そして、S200では、残りtick数が0に設定されている送信候補コマンド、即ち前回のスケジュール調整処理で抽出され絞り込まれた送信候補コマンドを送信対象コマンドとして処理を実行してもよい。
 このスケジュール調整処理を採用する場合、「モード属性」が即時駆動の「送信待ステータス」は、ダイアグ系アプリ411からの要求が発生した場合に1以上の所定数に設定されてもよい。同様に、「モード属性」がイベント駆動の「送信待ステータス」は、指定されたトリガ条件を充足した場合に1以上の所定数に設定されてもよい。
 またスケジュール調整処理のS120において、調整部482は、コマンド管理テーブルの「送信待ステータス」を参照して、残りtick数が1よりも大きい所定tick数に設定されているすべての管理情報を送信候補コマンドとして抽出してもよい。S200では、調整部482は、コマンド管理テーブルの「送信待ステータス」を参照して、残りtick数が0に設定されている送信候補コマンドを送信対象コマンドとして、処理を行ってもよい。この場合、「モード属性」が即時駆動の「送信待ステータス」は、ダイアグ系アプリ411からの要求が発生した場合に所定tick数以上の数に設定されてもよい。同様に、「モード属性」がイベント駆動の「送信待ステータス」は、指定されたトリガ条件を充足した場合に所定tick数以上の数に設定されてもよい。
 また上記実施形態では、スケジュール調整処理のS120~S190は、送信周期毎、すなわちtick毎に実行されるが、複数の送信周期毎、例えば、2tick毎に実行されてもよい。この場合、S120において、調整部482は、コマンド管理テーブルの「送信待ステータス」を参照して、例えば、残りtick数が0又は1に設定されているすべての管理情報を、送信候補コマンドとして抽出してもよい。この場合S130~S190では、S120にて抽出された送信候補コマンドを絞り込む。S200では、絞り込みによって除外されることなく残ったすべての送信候補コマンドを送信対象コマンドとして、処理を実行してもよい。
 (6e)上記実施形態では、即時駆動は、ダイアグ系アプリからの指示に従って、指定された車両データを「直ちに」1回だけ取得する場合に使用するモードであった。しかしスケジュール調整処理の変形例で説明したように、「モード属性」が即時駆動の「送信待ステータス」は、ダイアグ系アプリ411からの要求が発生した場合に0に設定されることに限定されず、1以上の所定tick数に設定されてもよい。つまり、車両データを「直ちに」取得する代わりに、限定された時間内に取得するようにしてもよい。この場合、の「モード属性」は、即時駆動の上位概念となるアプリ駆動として把握することができる。アプリ駆動は、アプリケーションプログラムからの要求に応じて車両データ取得するモードである。
 (6f)上記実施形態では、「モード属性」が即時駆動又はイベント駆動の場合に、「送信待ステータス」として設定されるtick数は、処理を実行するタイミングを示しているが、処理の実行について許容される最も遅いタイミングを表していてもよい。この場合、スケジュール調整処理では、処理負荷に余裕がある場合、残りtick数が0以外の送信候補コマンドを、送信対象コマンドに加えて処理を行ってもよい。
 (6g)本開示に記載の制御部31及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部31及びその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部31及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されてもよい。制御部31に含まれる各部の機能を実現する手法には、必ずしもソフトウェアが含まれている必要はなく、その全部の機能が、一つあるいは複数のハードウェアを用いて実現されてもよい。
 (6h)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。
 (6i)上述した車載機30の他、当該車載機30を構成要素とするシステム、当該車載機30としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実体的記録媒体、データ提供方法など、種々の形態で本開示を実現することもできる。
 [7.本明細書が開示する技術思想]
 [項目1]
 車両データの取得に用いるコマンドを、車載ネットワークに送信する送信処理を繰り返し実行するように構成されたデータ取得部(44,45)と、
 前記データ取得部にて取得される前記車両データを利用する1つ以上のアプリケーションプログラムを実行するように構成されたアプリ実行部(41)と、
 前記車両データの取得に用いる前記コマンドの種類、前記車両データの要求元となる前記アプリケーションプログラムである要求元アプリ、及び前記車両データの取得条件が示された1つ以上の管理情報を用いて、前記取得条件を満たす前記管理情報が示す前記コマンドを、前記送信処理にて送信対象となる前記コマンドである送信対象コマンドとして抽出すると共に、前記送信対象コマンドと前記要求元アプリとを対応づけたルーティング情報を生成するように構成されたスケジュール管理部(48)と、
 前記データ取得部が前記送信処理を実行することによって取得された前記車両データを、前記ルーティング情報を用いて前記要求元アプリに提供するように構成されたルーティング部(43)と、
 を備える車載機。
 [項目2]
 項目1に記載の車載機であって、
 前記データ取得部は、前記送信処理を予め設定された実行周期で繰り返し実行するように構成され、
 前記スケジュール管理部は、前記取得条件を満たす前記管理情報が示す前記コマンドを、次回以降の実行周期にて送信対象となる前記コマンドである前記送信対象コマンドとして抽出するように構成された
 車載機。
 [項目3]
 項目1又は項目2に記載の車載機であって、
 前記スケジュール管理部は、前記アプリケーションプログラムに紐づけられ、前記アプリケーションプログラムが要求する前記車両データの種類、及び前記車両データの取得条件が記述されたマニュフェストを、前記アプリケーションプログラムの配布元から取得し、前記マニュフェストに従って、前記管理情報を生成するように構成された、
 車載機。
 [項目4]
 項目3に記載の車載機であって、
 前記マニュフェストは、前記車両データの取得条件を指定する方法として、一定周期で繰り返し取得する周期駆動、前記アプリケーションプログラムからの要求に応じて取得するアプリ駆動、及び指定したイベントが発生したときに取得するイベント駆動を含む
 車載機。
 [項目5]
 項目3又は項目4に記載の車載機であって、
 前記マニュフェストは、前記車両データの種類を指定する方法として、前記車両データの意味を表す規格化された名称で指定する名称指定、及び前記車載ネットワークで送受信される形式で指定するコマンド指定を含む
 車載機。
 [項目6]
 項目3から項目5までのいずれか1項に記載の車載機であって、
 当該車載機が接続された車両の前記車載ネットワークから受信したフレームを解釈するための情報、及び前記車両にて使用可能な前記コマンドの一覧を示した情報を含む周辺情報を、前記車両の外部に設けられたサーバとの無線通信によって取得する周辺情報取得部(49)を更に備え、
 前記データ取得部は、前記マニュフェストに基づく前記管理情報を、前記周辺情報を用いて前記車載ネットワークで送信可能な形式に変換し、前記車載ネットワークからの応答を、前記周辺情報を用いて解釈するように構成された
 車載機。
 [項目7]
 項目1から項目6までのいずれか1項に記載の車載機であって、
 前記スケジュール管理部は、前記1つ以上の管理情報から抽出されるすべての前記送信対象コマンドを前記送信処理で送信すると、前記車載ネットワークが負荷超過となる可能性がある場合、前記負荷超過が生じないように、前記送信対象コマンドの一部を、当該送信処理の処理対象から除外するように構成された、
 車載機。
 [項目8]
 項目7に記載の車載機であって、
 前記スケジュール管理部は、前記車載ネットワークのトラフィックが許容値を超える場合を、前記負荷超過と判定するように構成された、
 車載機。
 [項目9]
 項目2を引用する項目7に記載の車載機であって、
 前記スケジュール管理部は、前記送信対象コマンドのターンアラウンド時間の合計値が、前記実行周期の周期を超える場合を、前記負荷超過と判定するように構成された、
 車載機。
 [項目10]
 項目9に記載の車載機であって、
 当該車載機の起動時に前記ターンアラウンド時間を測定する
 車載機。
 [項目11]
 項目9又は項目10に記載の車載機であって、
 当該車載機に接続されるハードウェアの構成、又は前記アプリ実行部にて実行される前記アプリケーションプログラムの構成に変更がある場合に、前記ターンアラウンド時間を測定する
 車載機。
 [項目12]
 項目2を引用する項目7から項目11までのいずれか1項に記載の車載機であって、
 前記スケジュール管理部は、前記送信対象コマンドから除外された前記管理情報が、当該送信対象コマンドから除外された前記実行周期よりも後の実行周期で、前記送信対象コマンドとして抽出されるように前記管理情報を調整するように構成された、
 車載機。
 [項目13]
 項目7から項目12までのいずれか1項に記載の車載機であって、
 前記管理情報には、前記コマンドの送信に関する優先度が含まれ、
 前記スケジュール管理部は、前記負荷超過と判定した場合、前記送信対象コマンドの中で、前記優先度が最低であるか、又は前記優先度が除外可しきい値以下である前記管理情報を除外するように構成された、
 車載機。
 [項目14]
 項目13に記載の車載機であって、
 前記優先度は、前記コマンドによって取得される前記車両データのデータ種別に応じて設定される
 車載機。
 [項目15]
 項目13又は項目14に記載の車載機であって、
 前記優先度は、前記コマンドによって取得される前記車両データの取得条件に応じて設定される
 車載機。
 [項目16]
 項目1から項目15までのいずれか1項に記載の車載機であって、
 前記データ取得部が取得する前記車両データには、車速、総走行距離、車体加速度、車体角速度、GPS位置情報、ギアポジション、バッテリ充電状態、燃料タンク容量、残燃料量、平均燃料消費量、ライト点灯状態、車室内外温度、エアコン作動状況、ドア・ウィンドウ開閉状態、ドア・ウィンドウロック状態、シートベルト状態、エアバッグ状態、タイヤ空気圧、パーキングプレーキ状態、アクセルペダルポジション、ブレーキペダルポジション、ブレーキ圧力、故障診断コードリストのうち、少なくとも1つが含まれる
 車載機。
 [項目17]
 項目1から項目16までのいずれか1項に記載の車載機であって、
 当該車載機は、車両に設けられたダイアグポート(61)を介して前記車載ネットワークに接続され、
 前記データ取得部は、前記コマンドとして、ダイアグ通信で使用されるダイアグコマンドを用いるように構成された、
 車載機。

Claims (19)

  1.  車両データの取得に用いるコマンドを、車載ネットワークに送信する送信処理を実行するように構成されたデータ取得部(44,45)と、
     前記データ取得部にて取得される前記車両データを利用する1つ以上のアプリケーションプログラムを実行するように構成されたアプリ実行部(41)と、
     前記車両データの取得に用いる前記コマンドの種類、前記車両データの要求元となる前記アプリケーションプログラムである要求元アプリ、及び前記車両データの取得条件が示された1つ以上の管理情報を用いて、前記取得条件を満たす前記管理情報が示す前記コマンドを、前記送信処理にて送信対象となる前記コマンドである送信対象コマンドとして抽出すると共に、前記送信対象コマンドと前記要求元アプリとを対応づけたルーティング情報を生成するように構成されたスケジュール管理部(48)と、
     前記データ取得部が前記送信処理を実行することによって取得された前記車両データを、前記ルーティング情報を用いて前記要求元アプリに提供するように構成されたルーティング部(43)と、
     を備える車載機。
  2.  請求項1に記載の車載機であって、
     前記データ取得部は、前記送信処理を予め設定された実行周期で繰り返し実行するように構成され、
     前記スケジュール管理部は、前記取得条件を満たす前記管理情報が示す前記コマンドを、次回以降の実行周期にて送信対象となる前記コマンドである前記送信対象コマンドとして抽出するように構成された
     車載機。
  3.  請求項1又は請求項2に記載の車載機であって、
     前記スケジュール管理部は、前記アプリケーションプログラムに紐づけられ、前記アプリケーションプログラムが要求する前記車両データの種類、及び前記車両データの取得条件が記述されたマニュフェストを、前記アプリケーションプログラムの配布元から取得し、前記マニュフェストに従って、前記管理情報を生成するように構成された、
     車載機。
  4.  請求項3に記載の車載機であって、
     前記マニュフェストは、前記車両データの取得条件を指定する方法として、一定周期で繰り返し取得する周期駆動、前記アプリケーションプログラムからの要求に応じて取得するアプリ駆動、及び指定したイベントが発生したときに取得するイベント駆動を含む
     車載機。
  5.  請求項3に記載の車載機であって、
     前記マニュフェストは、前記車両データの種類を指定する方法として、前記車両データの意味を表す規格化された名称で指定する名称指定、及び前記車載ネットワークで送受信される形式で指定するコマンド指定を含む
     車載機。
  6.  請求項3に記載の車載機であって、
     当該車載機が接続された車両の前記車載ネットワークから受信したフレームを解釈するための情報、及び前記車両にて使用可能な前記コマンドの一覧を示した情報を含む周辺情報を、前記車両の外部に設けられたサーバとの無線通信によって取得する周辺情報取得部(49)を更に備え、
     前記データ取得部は、前記マニュフェストに基づく前記管理情報を、前記周辺情報を用いて前記車載ネットワークで送信可能な形式に変換し、前記車載ネットワークからの応答を、前記周辺情報を用いて解釈するように構成された
     車載機。
  7.  請求項1又は請求項2に記載の車載機であって、
     前記スケジュール管理部は、前記1つ以上の管理情報から抽出されるすべての前記送信対象コマンドを前記送信処理で送信すると、前記車載ネットワークが負荷超過となる可能性がある場合、前記負荷超過が生じないように、前記送信対象コマンドの一部を、当該送信処理の処理対象から除外するように構成された、
     車載機。
  8.  請求項7に記載の車載機であって、
     前記スケジュール管理部は、前記車載ネットワークのトラフィックが許容値を超える場合を、前記負荷超過と判定するように構成された、
     車載機。
  9.  請求項2を引用する請求項7に記載の車載機であって、
     前記スケジュール管理部は、前記送信対象コマンドのターンアラウンド時間の合計値が、前記実行周期を超える場合を、前記負荷超過と判定するように構成された、
     車載機。
  10.  請求項9に記載の車載機であって、
     当該車載機の起動時に前記ターンアラウンド時間を測定する
     車載機。
  11.  請求項9に記載の車載機であって、
     当該車載機に接続されるハードウェアの構成、又は前記アプリ実行部にて実行される前記アプリケーションプログラムのソフトウェア構成に変更がある場合に、前記ターンアラウンド時間を測定する
     車載機。
  12.  請求項2を引用する請求項7に記載の車載機であって、
     前記スケジュール管理部は、前記送信対象コマンドから除外された前記管理情報が、当該送信対象コマンドから除外された前記実行周期よりも後の実行周期で、前記送信対象コマンドとして抽出されるように前記管理情報を調整するように構成された、
     車載機。
  13.  請求項7に記載の車載機であって、
     前記管理情報には、前記コマンドの送信に関する優先度が含まれ、
     前記スケジュール管理部は、前記負荷超過と判定した場合、前記送信対象コマンドの中で、前記優先度が最低であるか、又は前記優先度が除外可しきい値以下である前記管理情報を除外するように構成された、
      車載機。
  14.  請求項13に記載の車載機であって、
     前記優先度は、前記コマンドによって取得される前記車両データのデータ種別に応じて設定される
     車載機。
  15.  請求項13に記載の車載機であって、
     前記優先度は、前記コマンドによって取得される前記車両データの前記取得条件に応じて設定される
     車載機。
  16.  請求項1に記載の車載機であって、
     前記データ取得部が取得する前記車両データには、車速、総走行距離、車体加速度、車体角速度、GPS位置情報、ギアポジション、バッテリ充電状態、燃料タンク容量、残燃料量、平均燃料消費量、ライト点灯状態、車室内外温度、エアコン作動状況、ドア・ウィンドウ開閉状態、ドア・ウィンドウロック状態、シートベルト状態、エアバッグ状態、タイヤ空気圧、パーキングプレーキ状態、アクセルペダルポジション、ブレーキペダルポジション、ブレーキ圧力、故障診断コードリストのうち、少なくとも1つが含まれる
     車載機。
  17.  請求項1に記載の車載機であって、
     当該車載機は、車両に設けられたダイアグポート(61)を介して前記車載ネットワークに接続され、
     前記データ取得部は、前記コマンドとして、ダイアグ通信で使用されるダイアグコマンドを用いるように構成された、
     車載機。
  18.  車両データの取得に用いるコマンドを、車載ネットワークに送信する送信処理を実行し、前記送信処理によって取得される前記車両データを1つ以上のアプリケーションプログラムに提供する車載機において、前記車両データを前記車両データの要求元となる前記アプリケーションプログラムである要求元アプリに提供するデータ提供方法であって、
     前記車両データの取得に用いる前記コマンドの種類、前記要求元アプリ、及び前記車両データの取得条件が示された1つ以上の管理情報を用いて、前記取得条件を満たす前記管理情報が示す前記コマンドを、前記送信処理にて送信対象となる前記コマンドである送信対象コマンドとして抽出すると共に、前記送信対象コマンドと前記要求元アプリとを対応づけたルーティング情報を生成し、
     前記送信処理を実行することによって取得された前記車両データを、前記ルーティング情報を用いて前記要求元アプリに提供する、
     データ提供方法。
  19.  車両データの取得に用いるコマンドを、車載ネットワークに送信する送信処理を実行し、前記送信処理によって取得される前記車両データを1つ以上のアプリケーションプログラムに提供する車載機において実行され、前記車両データを前記車両データの要求元となる前記アプリケーションプログラムである要求元アプリに提供するプログラムであって、
     前記車載機に、
     前記車両データの取得に用いる前記コマンドの種類、前記要求元アプリ、及び前記車両データの取得条件が示された1つ以上の管理情報を用いて、前記取得条件を満たす前記管理情報が示す前記コマンドを、前記送信処理にて送信対象となる前記コマンドである送信対象コマンドとして抽出すると共に、前記送信対象コマンドと前記要求元アプリとを対応づけたルーティング情報を生成する処理と、
     前記送信処理を実行することによって取得された前記車両データを、前記ルーティング情報を用いて前記要求元アプリに提供する処理と、を実行させるプログラム。
PCT/JP2023/044907 2022-12-28 2023-12-14 車載機、データ提供方法、及びプログラム WO2024142981A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022212065 2022-12-28
JP2022-212065 2022-12-28

Publications (1)

Publication Number Publication Date
WO2024142981A1 true WO2024142981A1 (ja) 2024-07-04

Family

ID=91717702

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/044907 WO2024142981A1 (ja) 2022-12-28 2023-12-14 車載機、データ提供方法、及びプログラム

Country Status (1)

Country Link
WO (1) WO2024142981A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018212083A1 (ja) * 2017-05-17 2018-11-22 三菱電機株式会社 制御装置及び制御方法
JP2022093330A (ja) * 2019-10-11 2022-06-23 グーグル エルエルシー 車両のための拡張可能なコンピューティングアーキテクチャ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018212083A1 (ja) * 2017-05-17 2018-11-22 三菱電機株式会社 制御装置及び制御方法
JP2022093330A (ja) * 2019-10-11 2022-06-23 グーグル エルエルシー 車両のための拡張可能なコンピューティングアーキテクチャ

Similar Documents

Publication Publication Date Title
US10614639B2 (en) In-vehicle control device and in-vehicle recording system
US20170103101A1 (en) System for database data quality processing
US20160189544A1 (en) Method and system for vehicle data collection regarding traffic
JP5712845B2 (ja) 車両用故障診断装置
US20130158821A1 (en) Method and system for vehicle data collection
US20130282946A1 (en) Controller area network bus
US20150066282A1 (en) Autonomous driving in areas for non-drivers
JP2011076322A (ja) 車載通信端末装置および車両内部データ配信方法
US11423708B2 (en) Synchronizing sensing systems
CN111008121A (zh) 车辆软件检查
EP3179320A1 (en) Method and device for processing real-time vehicle traveling data
US20200033882A1 (en) Predictive vehicle acquisition
US20220261304A1 (en) Information processing device and information processing method
WO2024142981A1 (ja) 車載機、データ提供方法、及びプログラム
CN115179879A (zh) 车辆自唤醒方法、装置、车辆及存储介质
WO2024142973A1 (ja) 車載機、データ提供システム、データ提供方法、及びプログラム
CN114841514A (zh) 模型训练和车辆舒适性评价方法、装置、设备及存储介质
CN112631645A (zh) 车辆软件检查
Yamaguchi et al. AEDSMS: Automotive embedded data stream management system
US20220236783A1 (en) Service-oriented architecture in a vehicle
JP2011250110A (ja) 電子制御装置
GB2596219A (en) Vehicle, method, computer program and device for merging object information about one or more objects in the surroundings of a vehicle.
JP7495890B2 (ja) 車載型コンピュータシステムおよび自動運転支援システム
US20240126306A1 (en) Center, management method, and storage medium
WO2024057963A1 (ja) データ管理装置、データの管理方法、データ管理プログラム及びデータ管理システム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23911762

Country of ref document: EP

Kind code of ref document: A1