検索

- 葡萄酒|威士忌|白兰地|啤酒-。

CANバスによる車両データの読み取り:ビークルゲートウェイの実用経験

db2c83dc83eaff3d8e4b985838952320

 

昨年、ある物流会社の車両管理システムを構築する際、顧客は各トラックの燃料消費量、エンジン回転数、冷却水温度をリアルタイムで監視することを望んでいました。データをローカルに保存するだけでなく、配車担当者が車両の状態を監視できるように、すべてをクラウドプラットフォームにストリーミングする必要がありました。.

簡単そうに思えた。しかし、実際にやってみると、車両内部からデータを引き出すのは予想以上に複雑だった。すべての車両情報はCANバスを経由するが、メッセージフォーマットは車種によって大きく異なる。一汽のトラックからエンジン回転数を読み取るのと、東風のトラックからエンジン回転数を読み取るのとでは、CANメッセージのID、データフィールドの位置、変換係数がまったく異なります。.

結局、この問題を解決するためにデュアル5G車両ゲートウェイを使うことにした。ゲートウェイは、CANインターフェースを介して車両バスに接続し、すべてのメッセージを解析し、5Gネットワーク経由ですべてをクラウドにアップロードする。このプロジェクト全体を通して、車両ゲートウェイとCANバスがどのように連携する必要があるのかを深く理解することができました。.

自動車におけるCANバスの役割

まず、CANバスとは何かから説明しよう。CANとはController Area Network(コントローラー・エリア・ネットワーク)の略である。ボッシュが1980年代に自動車用に設計した通信バスだ。.

なぜCANバスが必要なのか?現代の自動車には、何十、何百もの電子制御ユニットが搭載されています。エンジンECU、トランスミッションECU、ABS ECU、インストルメントクラスターECU、ボディ制御ECUなど、数え上げればきりがありません。これらのECUは通信する必要がある。ECUのすべてのペア間を個別に配線すると、ワイヤーハーネスは悪夢のようになります。.

CANバスは、すべてのECUを1つの共有バスに接続する。地下鉄の路線のようなものだと考えてください。どのECUもメッセージを送信でき、他のすべてのECUが受信します。各ECUは、その機能に関連するメッセージを選択的に処理します。.

商用車は通常、2~3個のCANバスを個別に走らせている。パワートレインCANは、エンジン、トランスミッション、ABS、その他のドライブトレインECUを接続し、通常は500kbpsまたは250kbpsで動作する。ボディCANは、ライト、ロック、クライメートコントロール、快適システムを処理し、通常は125kbpsで動作する。また、診断専用のCANバスが存在する場合もある。.

車両ゲートウェイは、データを読み取るためにこれらのCANバスを利用する必要がある。例えば、SV910には3つのCANポートがあり、同時に複数の車両CANバスに接続することができます。.

CANデータの読み取りプロセス

 

eb74286b34280d8de3302dac742a76ee

 

具体的にどのようにデータを読み取るのでしょうか?エンジン回転数の読み取りを例に説明しよう。.

ステップ1は物理的なつながり. .ゲートウェイのCANインターフェースを車両のOBD診断ポートに接続するか、CANバスに直接接続します。商用車には一般的に標準的なOBDポートがあり、通常はダッシュボードの下か運転席の横にあります。コネクタは16ピンの台形です。.

CANバスは、2本のワイヤーで差動信号を使用します:CAN_HとCAN_Lです。OBDコネクターでは、6番ピンがCAN_H、14番ピンがCAN_Lです。ゲートウェイのCANインターフェースには、対応するワイヤーがあります。重要:CANバスの終端には、信号の反射を防ぐために120Ωの終端抵抗が必要です。一部のゲートウェイは終端抵抗を内蔵しており、ソフトウェアで設定可能です。.

ステップ2はボーレートの設定です。. .CANバスの通信速度が一致しないと、データを受信できません。商用車のパワートレインCANは通常250kbpsまたは500kbpsで動作します。車両のサービスマニュアルを確認するか、専門的なCANアナライザーでテストしてください。.

ゲートウェイの CAN インターフェースを同じボーレートに設定する。SV910のようなゲートウェイは複数のボーレートをサポートしており、コンフィギュレーションファイルや管理インターフェースで調整可能です。.

ステップ3はCANメッセージの監視と解析. .CANバスのデータはフレームとして送信されます。各フレームには、メッセージID、データ長、データ内容、チェックサムなど、いくつかの部分が含まれています。.

メッセージ ID は、各メッセージの内容を識別するための鍵です。エンジン RPM では、GB/T 27930 や SAE J1939 などの規格が ID を定義しています。J1939は商用車では一般的で、エンジンRPMはID 0x0CF00400を使用し、データはバイト4と5に格納されます。.

ゲートウェイは、CANバスを継続的にモニターし、特定のIDを持つフレームをキャプチャし、データバイトからRPM値を抽出します。抽出された値は生データであり、計算式を使用して実際のRPMに変換する必要があります。J1939規格では、エンジンRPMの分解能は0.125rpm/bitであるため、生の値に0.125を掛けると真のRPMになります。.

ステップ4は、データのパッケージ化とアップロード. .RPM値を解析した後、ゲートウェイはそれを5Gネットワーク経由でクラウドにアップロードするための適切なフォーマットにパッケージ化する。一般的なフォーマットには、JSON、Protobuf、MQTTメッセージなどがある。.

アップロードの頻度は要件によって異なる。リアルタイムのモニタリングでは1秒ごとの更新が必要かもしれないが、一般的な車両管理では10秒や30秒の間隔が必要かもしれない。更新頻度が高ければ高いほど、データコストも高くなります。.

異なる車種への挑戦

 

bd701919857254e4a166a9dbd40f32db

理論的には簡単そうだ。現実には、異なる車種への対応が最大の頭痛の種となる。.

国家規格GB/T 32960は、新エネルギー車のデータフォーマットを定義しているが、EVのみを対象としている。従来の燃料商用車は、ほとんどがSAE J1939規格に従っているが、具体的な実装はまだ様々である。.

さらに厄介なことに、多くの自動車メーカーは標準的な定義を超えた独自のCANメッセージを使用している。一部のブランドは、フォルトコードやメンテナンスのリマインダーを、文書化されていないフォーマットのプライベートメッセージに記載している。そのデータを読み取るには、リバースエンジニアリングを行うか、自動車メーカーから技術文書を入手する必要がある。.

プロジェクトでは、各車種に個別に対応する。まず、そのモデルのCANプロトコル文書を収集します。ドキュメントがない場合は、CANアナライザーを使用してバスデータを記録し、メッセージフォーマットを手動で解析します。その後、ゲートウェイに対応する解析ルールを設定します。.

SV910 のようなゲートウェイは柔軟なコンフィギュレーションをサポートする。カスタム解析ルールを定義し、どのメッセージIDのどのバイトがどのデータを表し、どの変換式を適用するかを指定することができる。異なる車種では異なる設定ファイルが必要なだけで、コードの変更は必要ありません。.

私たちは、さまざまなブランドやモデルのCANプロトコル設定を保存する車両モデルデータベースを構築しました。新しいプロジェクトは、コンフィギュレーションがすでに存在するかどうかをチェックすることから始まります。存在しない場合は、一度適合させてからデータベースに追加します。現在、ライブラリには40~50車種のコンフィギュレーションが格納されている。.

リアルタイム性能とデータ精度の確保

車両ゲートウェイでCANデータを読み取るには、優れたリアルタイム性能が要求されます。特に自律走行やADASのシナリオでは、データの遅延が安全性に影響する可能性があります。.

CANバス自体のレイテンシーは非常に低く、マイクロ秒単位で測定される。しかし、ゲートウェイの処理、パッケージング、アップロードは、余分な遅延を追加します。これを制御するにはどうすればよいのでしょうか?

まず、処理ステップを最小限にする. .CANフレームを受信したら、キューに入れる代わりに、割り込みハンドラや優先度の高いタスクですぐに解析する。パースされたら、送信バッファに直接入れ、5Gネットワーク経由で送信する。.

第二に、ハードウェアアクセラレーションを使用する。. .一部の先進的な車両ゲートウェイは、ハードウェアフィルタリング機能を備えたCANコントローラを統合しています。ハードウェアレベルでフィルタールールを設定し、関心のあるメッセージIDのみを受け入れ、それ以外は破棄します。これにより、CPU負荷が軽減され、処理速度が向上します。.

第三に、タイムスタンプを注意深く管理すること. .各CANフレームは、ゲートウェイ受信時に直ちにタイムスタンプを取得する必要があります。このタイムスタンプにはマイクロ秒の精度が必要です。クラウドにアップロードされたデータにはこのタイムスタンプが付与され、クラウドはいつデータが収集されたかを知ることができる。.

SV910 は PTP/GPTP 時間同期プロトコルをサポートし、ゲートウェイと他のデバイス間の高精度クロック同期を保証します。マルチデバイスの協調を必要とするシナリオには不可欠です。.

データの正確性も保証されなければならない。CANバスはエラーチェックを内蔵しているとはいえ、時折破損したデータが現れる。ゲートウェイは二次的な検証を必要とする。エンジン回転数の場合、正常な運転が1000rpmから5000rpmに突然ジャンプして戻ることはあり得ません。そのような異常なデータは、直接使用するのではなく、疑わしいものとしてフラグを立てる。.

バスの無音状態も処理する。特定のメッセージが長期間受信されない場合、対応するECUが故障しているか、バスが切断されている可能性があります。ゲートウェイはこの状態を検出し、異常を報告する必要があります。.

デュアル5Gアーキテクチャーの利点

SV910は、2つの5Gモジュールを搭載したデュアル5Gアーキテクチャを特徴としている。なぜデュアル5Gなのか?

第一の理由は、冗長性のバックアップである。. .長距離ルートを走る商用車は、電波の悪い地域を通過することがある。シングル5Gでは、信号が途絶えるとデータ通信ができなくなる。デュアル5Gでは、中国電信(チャイナ・テレコム)と中国聯通(チャイナ・ユニコム)、中国移動(チャイナ・モバイル)と中国聯通(チャイナ・ユニコム)といった異なるキャリアのSIMカードを使用する。片方の信号が劣化したら、もう片方に切り替える。.

切り替えは自動で行える。ゲートウェイは両方の5Gリンクの信号強度と遅延をリアルタイムで監視し、品質が良い方を使用する。あるいは、リンクアグリゲーションのために両方のリンクを同時に使用し、帯域幅を2倍にすることもできます。.

第二の理由は、トラフィックの分散である。. .車両アプリケーションでは通常、CANバスデータ、カメラ映像、測位データ、V2X通信など、複数のデータストリームが使用されます。これらのデータタイプはそれぞれ特性が異なり、必要な帯域幅/遅延も異なります。.

クリティカルな制御データを一方の5Gリンクに、トラフィック量の多いビデオをもう一方の5Gリンクにルーティングします。これにより、干渉を防ぎ、重要なデータのリアルタイム配信を保証します。.

第三の理由は、安全保障上の隔離である。. .車両管理プラットフォームによっては、セキュリティのために車両制御チャンネルとデータ収集チャンネルを物理的に分離する必要がある。デュアル5Gはこの要件を完璧に満たしている。制御コマンドは専用リンクを使用し、収集データは別のリンクを使用する。ハッカーがデータ・チャネルを侵害しても、制御コマンドを改ざんすることはできない。.

フリート管理プラットフォームとの統合

704ce1f0fc109f61b29494d0c34b7e95

データを収集した後、車両ゲートウェイは車両管理プラットフォームにアップロードする。プラットフォームは通常、車両モニタリング、ルート再生、統計レポート、故障警告、その他の機能を提供するクラウドサービスである。.

データアップロードにはいくつかのプロトコルオプションがある。. MQTTが最も一般的. .これは、IoTのために特別に設計された軽量のメッセージキュー・プロトコルだ。ゲートウェイはMQTTクライアントとして機能し、クラウドのMQTTサーバーに接続し、定期的にメッセージを発行する。.

MQTTは異なるQoS(サービス品質)レベルをサポートしている。QoS 0は多くても1回 - ファイアー・アンド・フォーゲット、ロスの可能性あり。QoS 1は最低1回 - 配送は保証されるが、重複の可能性がある。QoS 2は正確に1回 - 重複のない配信が保証されます。データの重要性に基づいて適切なQoSを選択します。.

HTTP/HTTPSも広く使われている. .ゲートウェイは収集したデータを定期的にパッケージ化し、HTTP POSTリクエストでクラウドAPIにアップロードする。このアプローチはシンプルかつ直接的で、互換性も高い。デメリットは、HTTPのオーバーヘッドがMQTTを上回ることで、高頻度の小規模データ送信にはあまり適していない。.

特殊なプロトコルも存在する. .例えば、JT/T 808は運輸省の道路交通車両衛星測位システム端末用の標準通信プロトコルである。多くの商用車フリート管理プラットフォームがこの標準を使用しています。JT/T 808をサポートするには、完全なプロトコル・スタックを実装する必要があります。.

データ形式はプラットフォームとの合意が必要。JSONは一般的で、人間が読むことができ、デバッグしやすい。しかし、JSONはスペースを取るので、データ・コストを重視するなら、Protobufのようなバイナリ・フォーマットか、カスタム・コンパクト・フォーマットを使うこと。.

診断機能の実装

車両ゲートウェイは、リアルタイムデータの読み取りだけでなく、診断も行うことができる。.

自動車のECUは診断トラブル・コード(DTC)を生成する。エンジンが故障すると、P0001やP0002などのコードが生成される。これらのコードはECUに保存され、CANバス経由で読み取ることができます。.

標準的な診断プロトコルは、ISO 14229(UDS - Unified Diagnostic Services)とSAE J1939-73です。ゲートウェイは診断クライアントとして機能し、ECUに診断要求を送信して故障コードと関連情報を返します。.

フォルトコードを読んだら、読みやすい説明に変換する。P0001の意味は?燃料ボリュームレギュレータ制御回路/オープン。この翻訳には、フォルトコード・データベースが必要です。ゲートウェイは、一般的なコードの説明を内部に保存したり、翻訳のためにクラウドにアップロードしたりできます。.

故障コードにより、フリート管理プラットフォームは早期警告を提供することができる。例えば、冷却水温度が高いコードを検出すると、直ちにドライバーとメンテナンス部門に通知され、エンジンのオーバーヒートによる損傷を防ぐことができます。.

高度なアプリケーションは予知保全を実行します。様々な車両パラメータの傾向を分析し、潜在的な故障を予測します。例えば、エンジンオイルの圧力が徐々に低下している場合、故障コードはまだ表示されていないが、警告の兆候があるため、ドライバーにオイルの点検を促す。.

実際のプロジェクトからの教訓

数々のプロジェクトを経て、私たちは多くの問題にぶつかってきた。.

最初のレッスン:CANバスを適切に保護する. .車両のCANバスは非常に重要です。ゲートウェイの故障がバスをローレベルに引き下げたり、誤ったメッセージを送信したりすると、車両の正常な動作に影響が及ぶ可能性があります。.

ゲートウェイCANインターフェースは、フォルトの伝播を防ぐために電気的絶縁が必要です。バス保護回路は、過電圧または過電流時に自動的に切断する必要があります。ソフトウェアにも保護メカニズムが必要で、異常が検出された場合は送信を停止し、バスの干渉を回避します。.

第二の教訓:車両の改造は規制に従わなければならない. .商用車への車両ゲートウェイの取り付けは、車両の改造に該当する。車両の安全性能を損なうことなく、国や地域の規制要件を満たす必要がある。地域によっては、改造後に車両管理当局への登録が必要となる。.

第3の教訓:データ・セキュリティとプライバシー保護は非常に重要である. .自動車の走行ルートや挙動はプライバシーに関わる。データ伝送を暗号化し、ストレージを匿名化する。クラウドプラットフォームへのアクセスは、許可制御が必要。.

全体として、車両ゲートウェイとCANバスを通じて車両データを読み取ることは、コネクテッドカー・アプリケーションの基礎を形成する。技術自体は複雑ではありませんが、それをうまく行うには多くの細部に注意を払う必要があります。さまざまな車両モデルへの対応、リアルタイム性能の確保、データの正確性、通信の信頼性など、安定した信頼性の高いサービスを提供するためには、あらゆる面で慎重な改良が必要です。.

前の記事