UDSを理解しよう ~ISO 14229の概要~
車の仕事をしつつあんまりUDSを理解する必要なかったのだけども、いろいろ勉強してみる。
ISO 14229とは
ISO 14229は、自動車の診断通信インターフェースに関する国際標準規格です。
従来、異なる自動車メーカーが独自の診断プロトコルを使用しており、診断機器メーカーは各メーカーごとに異なるプロトコルに対応するため、多くのバリエーションのスキャンツールを開発しなければなりませんでした。
一方で各メーカーが異なる診断プロトコルを持ちながらも、診断情報の要求やデータ転送、エラーコードの処理など、基本的な機能は共通していることが認識されていました。
ISO 14229の開発は、非効率でコストのかかるような現状を改善するために、自動車メーカーや診断機器メーカーの間で共通の診断プロトコルを確立することを目指して行われました。
なお、ISO 14229の主な内容はISO 14230-3(KWP2000)という規格とISO 15765-3(DoCAN、Diagnostic communication over CAN)から派生して出来ました。
ISO 14229には、「Road vehicles — Unified diagnostic services (UDS):自動車 – 統一診断サービス」というタイトルがつけられており、前述の通り車両診断サービスの統一、国際規格を意図したタイトルとなっています。
一般的にはにUDSとしてその規格やプロトコル内容が知られています。
ISO 14229の各PART
ISO 14229はPart 1からPart 8までの各Partに分かれています。
基本的な診断通信のプロトコル内容についてはPart1、2にて規定されており、Part3以降では各通信IFに合わせた診断通信の実装に関する要件やガイドラインを提供しています。
Part | Title | 概要 |
---|---|---|
1 | Application layer | 診断セッションの管理、エラーコードの処理、データ転送など、自動車の診断通信のための基本的な要件とプロトコルを規定 |
2 | Session layer services | 診断セッションの開始、終了、制御などの、UDSの診断セッションレイヤーで使用されるサービスやプロシージャを規定 |
3 | Unified diagnostic services on CAN implementation (UDSonCAN) | コントローラエリアネットワーク(CAN)上でのUDSの実装に関する要件やガイドラインを規定 |
4 | Unified diagnostic services on FlexRay implementation (UDSonFR) | FlexRay上でのUDSの実装に関する要件やガイドラインを規定 |
5 | Unified diagnostic services on Internet Protocol implementation (UDSonIP) | インターネットプロトコル(IP)上でのUDSの実装に関する要件やガイドラインを規定 |
6 | Unified diagnostic services on K-Line implementation (UDSonK-Line) | K-Lineプロトコル上でのUDSの実装に関する要件やガイドラインを規定 |
7 | UDS on local interconnect network (UDSonLIN) | FlexRay上でのUDSの実装に関する要件やガイドラインを規定 |
8 | UDS on Clock eXtension Peripheral Interface (UDSonCXPI) | FlexRay上でのUDSの実装に関する要件やガイドラインを規定 |
ISO 14229のレイヤ
UDSプロトコルのアーキテクチャは、OSI参照モデルに基づいて設計されています。
Part2以外の各Part(Part1,3,4,5,6,7,8,)は、OSI基本参照モデルにおけるアプリケーション層に位置します。
Part2のみセッション層となっています。
ISO 14229のプロトコルは、CAN プロトコル(ISO 11898-2)以外にも、Etherを使用したDoIPプロトコル(ISO 13400)等様々な通信規格の上で実行可能です。
ISO 14229の基本的なふるまい
まず前提として車両がサーバー、診断装置がクライアントとなります。
クライアントの診断装置は、サーバーである車両(実際には車両内部の診断対象ECU)に対してUDSリクエストを行います。
UDSリクエストを受け取った車両はリクエストに対して肯定的または否定的な応答を返します。
リクエスト内容には、主に以下のようなものがあります。
- 車両システム内で保持しているデータの読み書き
- 故障診断
- 車両内ファームウェアのアップデート
- 車両のシステムテストを行うための、特定の動作を要求
車両システム内で保持しているデータの読み書き
UDS プロトコルを使うことで、クライアントは ECU との間であらゆる情報を読み書きできるようになります。
情報は、ECUシリアル番号などの静的な情報から、センサーの現在のステータス、エンジン速度などのリアルタイム データまで多岐にわたります。
機密データのECUへの書き込みは、「セキュリティアクセスサービス」を使用してアクセスを制限しています。
ECUへのデータを書き込みにより、セキュリティや車両の全体的な機能が妨げられる可能性があるため、このような要求は OEM によって制限されています。
故障診断
UDS プロトコルの主なサービスの 1 つは故障診断です。
車両に問題が発生すると、その故障に対応するDTCがECUに保存されます。
DTC(Diagnostic Trouble Code)は自動車の診断システムで使用されるエラーコードのことを指します。
クライアントは、UDSによって車両が保持しているDTCを取得することで、問題を効率的に診断し、その後の修理作業を行うことができます。
車両内ファームウェアのアップデート
UDSプロトコルでは、車両内ファームウェア(ECU)の再プログラミングもサポートしています。
ECUの再プログラミングとは、ECUソフトウェアを更新することを指します。
これは、既存のバグ修正や、新しく開発されたモジュールをECU に追加するために行います。
車両のシステムテストを行うための、特定の動作を要求
UDSプロトコルでは、車両のシステムテストを行うにあたり、必要な動作を要求することが出来ます。
たとえば整備工場のスタッフは、このサービスを使用してエンジンファンを一定期間作動させ、動作状況を確認することができます。