オン・ボード・ダイアグノーシス（）とは、自動車各部に取り付けられたECU（Electrical Controll Unit）にプログラミングされている自己診断機能である。On-Board Diagnosticsの頭文字を取って、OBDと略称されている。当記事もOBDとして述べる。

例えばエンジンの燃料噴射システムを構成する各センサー、および各アクチュエータに、なんらかの異常が発生した場合、エンジンのECU(エンジンコントロールユニット)は異常の発生を記憶し、インストルメントパネル（計器盤）の警告ランプを点灯させるなりして、ドライバーに異常の発生を知らせる。この警告灯はMIL（Malfunction Indication Lamp、警告表示灯）と呼ばれている。

 歴史 
OBD2の歴史は以下の通りである。
 1968年ごろからフォルクスワーゲンなどで、燃料噴射システムのECUに、従来のアナログコンピュータに替ってマイクロコンピュータが採用され始めた
 1970年、日産がECUにマイクロコンピュータを使った燃料噴射&点火制御システム、ECCSの搭載を開始。このシステムのECUには簡単な自己診断機能があり、ECUの基板上にあるLEDの点滅回数で、故障箇所を表示するようになっていた。
 1980年、ゼネラルモーターズ（GM）は、車両組立ライン上でのエンジンECUの検査用のデータ通信システムを開発した。これはALDL（assembly line diagnostic link）と呼ばれたが、あくまで品質管理のための機能で、アフターマーケットでの活用を意図したものではなかった。しかし、サービス用カプラーのある特定の端子同士を短絡することで、インスツルメンタルパネル（計器盤）の警告ランプの点滅回数で、故障コードを表示できた。GM・キャデラックのマイコン制御エアコン仕様車では、エアコンのコントロールディスプレイで、各アクチュエータのテストを行ったり、各センサのデータを表示したり、故障コードを表示できた。
 1986年、ALDLの通信規格（プロトコル）のアップグレードが行われる。
 1988年、自動車技術者協会（SAE）が標準化された診断コネクターと診断コードの標準化を勧告。
 1991年カリフォルニア州大気資源局（CARB）は、1991年以降に州内で販売される新車に、エンジンについての自己診断機能の搭載を義務付けた。この時期の自己診断機能は、一般に『OBD1』と呼ばれ、診断コネクター、診断コードも、各社まちまちであった。
 1996年以降は、アメリカ合衆国内で販売される乗用車と小型トラックに、OBD2仕様の自己診断機能の搭載を義務付けられた。
 2001年、EU（欧州連合）が排出ガス規制の一環として、EU圏内で販売されるすべてのガソリンエンジン搭載の乗用車、小型トラックに、OBD2仕様の自己診断機能の搭載を義務付けた。さらに2004年、EU（欧州連合）が排出ガス規制の一環として、EU圏内で販売されるすべてのディーゼルエンジン搭載の乗用車、小型トラックに、OBD2仕様の自己診断機能の搭載を義務付けた。この自己診断機能はEOBD（EはEuropeを表す）と呼ばれる。	
 2006年、日本の国土交通省は、2008年10月以降に型式認定を受け生産が開始される乗用車及び小型トラックに、OBD2仕様の自己診断機能の搭載を義務付けた。この自己診断機能はJOBDと呼ばれている。
 2008年、アメリカ合衆国は、国内で販売されるすべての乗用車、小型トラックのECU間のネットワークにCAN規格（Controller Area Network ）の採用を義務付けた。
 2010年、大型トラックなどのエンジンのためのHDOBD（heavy duty OBD）の仕様が発表され、今後アメリカ合衆国内で販売される当該車両には、搭載が義務付けられる。

 ECUとの通信規格 

 OBD1 
現在OBD1（On Board Diagnosis first generation）と呼ばれている自己診断機能は、GMのALDLにルーツを持つものであるが、その後各メーカーが独自にアレンジを加えていった。そのため、通信規格はもちろん、故障コードを表示させる手順、そして表示される故障コードの意味付けも、各メーカーばらばらのものになっていた。
例えば『11』と二桁の数字で表現される故障コードが、あるメーカーではクランク角センサーからの信号異常を表し、またある別のメーカーではエアフローセンサーから信号異常を表す、という状況にあった。
時期を同じくして各メーカーは自社専用のスキャンツール（外部診断装置）を開発し、各販売店のサービス工場に常備させていた。しかしそれらのスキャンツールには、まったく互換性はなく、車との接続用ケーブルや接続コネクタの形状もまるで違っていた。そのため一般の自動車整備工場向けの汎用スキャンツールは、各社ごとの変換コネクターが付属している。

 OBD2 

こうした状況を改善するために制定されたのがOBD2（On Board Diagnosis second generation）である。OBD2は各メーカーの枠を超えて、DLC（Data link coupler）と呼ばれる共通の接続コネクターと、共通の故障コードを使い、故障発生時には同じように警告灯を点灯させる機能を実現させた。図のように、OBD2では5種類の通信規格が定められている。

+ OBD2の各通信規格 規格 通信速度 最高電圧 メッセージ長 備考 SAEJ1850（PWM） 41.6 kbaud 5V 11 bytes（CRC含む） フォードの標準プロトコル、CSMA/NDA採用 SAEJ1850（VPM） 10.4/41.6 kbaud 7V 11 bytes（CRC含む） GMの標準プロトコル、CSMA/NDA採用 ISO 9141-2 10.4 kbaud バッテリー電圧 11 bytes クライスラー、日本車、ヨーロッパ車の標準プロトコル ISO 14230 1.2～10.4 kbaud - 255 bytes ISO9121-2を改良した規格 ISO 15765（CAN） 250/500 kbps - - 2008年から米国内で装備が義務付けられた。

つまりアメリカのビッグスリー（GM・フォード・クライスラー）がそれぞれ定めた規格、とも呼ばれるヨーロッパの各メーカー及び日本の各メーカーが採用している規格、そしてCAN（Controller Area Network）である。これら5種類のうち、当初はいずれかの通信規格を備えていれば、その車種はOBD2に対応した自己診断機能を搭載していると認められていた。

そのため各メーカーは、16ある端子の残りを、自社の専用スキャンツールで使う端子として割り当てている。

2008年、アメリカ合衆国は、国内で販売されるすべての乗用車、小型トラックのECU間のネットワークにCAN規格（Controller Area Network ）の採用を義務付けたことにより、概ね2010年以降の新しいモデルは、CAN経由でスキャンツールとのデータのやり取りを行うようになっている。

 OBD2の故障コード体系 

OBD2の故障コードは、DTC（Diagnostic Trouble Code）と呼ばれ、 アルファベット1文字と、4桁の数字から構成されている。4桁の数字を使えば、0000～9999まで実に一万個の故障コードを設定することができる。OBD1で使われていた2桁のコードとは違い、各メーカーは、非常に細かく故障コードを設定できる。

OBD2は元来、エンジンの排気ガスの有害成分抑制装置の不具合を検知するものであったので、当初はP（Power Train)で始まるDTC（通称Pコード）から設定されたが、車の他の部位にまで拡大されていった。現在DTCはPコードの他に、次の3種類のDTCが設定されている。
 Cコード：Cで始まるコードで、シャーシ（Chassis）に関するDTC。ABSに関するDTCが該当する。
 Bコード：Bで始まるコードで、ボディ（Body）に関するDTC。エアバッグに関するDTCが該当する。
 Uコード：Uで始まるコードで、CANに関するDTC。

また アルファベットの次の数字が“0”の場合は、生産国に関係なく共通の意味を持つDTC（例：P0120：スロットルポジションセンサー回路異常）であり、これに対して“1”ないし“2”の場合は、各メーカーが独自に設定したDTCである。
各メーカーは独自のDTCを設定した場合、SAEにそれを通知することが求められる。その情報はSAEから公開されることになっている。
したがってもしスキャンツールでDTCの読み出しを行った場合、意味を把握できないDTCが読み出された場合、インターネットのDTCに関する検索サイトを用いて、その意味を把握することができる。

OBD2が搭載されることによって、自動車整備の現場におけるトラブルシューティングの迅速性および正確性に繋がった。

例えばヴィッツのSCP10系におけるエンジン関係の故障コード一覧表によれば、エンジンチェックランプの点滅回数が“12”を示していれば、“クランクセンサー異常”も“カムセンサー異常”も疑われる。この車種の場合、一方はシリンダーヘッドの後ろ側、一方はクランクプーリー付近と位置的にも離れていて、両方のセンサーの点検作業はかなりの労力を要する。しかしながらこの車種はOBD2スキャンツールにも対応しているため、OBD2のDTCを読み取れば、その段階で点検箇所をどちらか一方に絞り込むことができる。

 フリーズ・フレーム・データ 
フリーズ・フレーム・データ（Freeze frame data）とは、OBD2に対応したエンジン・コントロール・ユニットが記憶することができる情報である。各センサーあるいは各アクチュエータに異常が生じ、エンジン・コントロール・ユニットはDTCを記憶すると同時に、DTCを記憶した瞬間のエンジン冷却水温、エンジン回転数、負荷の状態（高負荷時であったか、低負荷時であったか）、などの情報を記憶する。これがフリーズ・フレーム・データである。
OBD2に対応したエンジン・コントロール・ユニットは、必ずこの機能を有することが求められているが、記憶する情報の項目、項目数、表示方法は、各メーカーの意向に委ねられている。したがって実際の故障診断作業に当たっては、常に有益な情報を得られるとは限らない事に留意したい。

 OBD2スキャンツール 

OBD2のDTCを読取るには、ECU内部のマイクロコンピュータと通信を取り合い、記憶されたDTCを読み取り、それをディスプレイに表示する装置が必要となる。この装置をスキャンツール（Scan Tools）と呼ぶ。

スキャンツールは、おおむね次のように分類できる。

 各自動車メーカーが、自社のディーラーのサービス工場向けに開発したもの。機能的には最も充実しているが、一般には市販されない。また他社の車には使用できない（例：トヨタ・TaScan）。
 価格帯が30〜100万円の汎用高級タイプ。カラーディスプレイを備え、DTCの読み取りと消去、ライブデータ表示、アクティブテスト、さらにはオシロスコープ機能も備えている。ただし本体の他に、各メーカーごとのプログラムを別途購入する必要があり、それぞれのプログラムのバージョンアップ費用も発生してくる。
 価格帯が10万円以下の汎用ハンドヘルドタイプ。テレビのリモコン程度のサイズで、小さなモノクロディスプレイが装備される。主にDTCの読み取りと消去に特化したもの。最もいろいろなメーカーで生産されているものであるが、近年ライブデータ表示、アクティブテスト機能を備えたものが登場してきている。
 パソコンベースのタイプ。トヨタディーラーのサービス工場向け専用機「Global Tech Stream」や日産のディーラーのサービス工場向け専用機 「consult3」がこのタイプである。DLCとパソコンのUSB端子とを結ぶコンバータとケーブル類、PC用プログラム・インストールディスク、以上が一セットいう形態で販売されている。

 DTCの読み取りと消去 
DLCには常時自動車側のバッテリー電圧がかかっているので、スキャンツールを接続すると自動的に電源がオンになる。ECUがDTCを記憶している場合はDTCがディスプレイに表示される。Pコードの場合は、フリーズ・フレーム・データも確認する。
表示されたDTCにしたがって、ワイヤーハーネスやカプラーの修理が終わったら、ECUが記憶しているDTCの消去を行う。その上で再びエンジンを始動し、必要に応じて試運転を行い、前回DTCが記憶された運転状態を再現する。
もし再び同じDTCが記憶されるのなら、先ほどの修理作業が不完全ということになる。別のDTCが記憶されるのなら、それにしたがって修理作業を行う。そしてDTCの消去を行い、試運転を行い、DTCが記憶されないなら、整備作業は完了、ということになる。

 ライブデータ表示機能 
ライブデータ（Live data）表示機能とは、各センサーからエンジンのECUに送られる信号をリアルタイムに表示する機能である。この機能を用いれば、例えば水温センサーが、始動時から完全暖機まで、どのようなデータを観測することが可能になる。何項目のライブデータが表示可能であるかは、それぞれの車のエンジンのECUに依存するが、図の例の車では、合計59種類のライブデータが表示可能であるのが分かる（図の右やや上の25/59という表示）。

それぞれのライブデータは、グラフとして表示可能である。図はエアフローセンサーからの信号をグラフ表示させたものであるが、電圧が低い状態はエンジンがアイドリング状態、電圧が山型に上昇し降下している部分は、アクセルペダルを踏み込んですぐ離した時の電圧変化である。

このように、エンジン回転数が上がって吸入空気量が増えた場合、エアフローセンサーの信号電圧が上昇するのが分かる。

 アクティブテスト機能 
アクティブテスト機能とは、スキャンツールからECUにコマンドを送信し、車の各機能になんらかの変化を発生させる機能を指す。
例えばパワーバランステストと称されるテストがある。これは運転中の4気筒エンジンの各イグニッションコイルを、一つ毎に順番に作動を停止させる方法である。エンジンの吹き上がりが悪く、アイドリングが不安定という症状の場合、いずれかのシリンダーでイグニッションプラグが点火していない事が原因として考えられる。しかしながらどのシリンダーで失火しているかを特定するのは困難である。
よってこのアクティブテスト機能を使って、順番に作動を停止させる。正常なイグニッションコイルの作動を停止させれば、2つのプラグが失火するので、アイドリングはより不安定になる。それに対して、元々失火しているプラグのイグニッションコイルの作動を停止させても、アイドリングの不安定さは変わらない。よって失火しているシリンダーを特定することが可能である。

アクティブテスト機能には、いろいろな種類がある。トヨタのハイブリッド車は、2年に一回の継続検査の時、排気ガス有害成分測定のためにアイドリングストップを解除し、スピードメーターテストのためにTCS（トラクション・コントロール・システム）を解除する必要がある。この状態を整備モードと呼ぶが、この整備モードへの移行作業も、スキャンツールのアクティブテスト機能で行うことができる。　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　

 OBD2スキャンツール使用上の注意点 
実際の整備現場において、スキャンツールの使用に当たり心得ておきたいことは以下の通りである。

 いきなり部品交換に走らない 

例えば 水温センサーの不具合を示すDTCが読取れた場合、いきなり部品交換に進んでしまうのは、誤りである。水温センサー自体は、サーミスターを使った簡単な部品だが、エンジンのECUの中では図のような配線になっている。したがってセンサーの配線やカプラーの異常の他に、ECU内部の分圧抵抗なども点検の対象となる。しかし万が一、内部の分圧抵抗の異常と結論が出たら、ECUアセンブリ交換となってしまう。

また水温センサーについてのDTCが、エンジンのECUに記憶される条件は、以下のようにメーカー及び車種によって違っている。

【P0115　水温センサー回路異常】
 トヨタ・マークX - イグニッションスイッチをオンにしてから、水温センサー回路が断線あるいは短絡状態が0.5秒間続いた場合
 日産・オッティ - イグニッションスイッチをオンにしてから60秒間経過した後、センサー出力電圧が4.6V以上あるいは0.1V以下になった場合
したがって故障診断作業に当たっては、こうした情報をサービスマニュアルで確認しておくのが、肝要である。

 センサーの特性の狂いは検知できない 

図の黒線ように、水温センサーからECUに送られる電圧信号は、エンジン始動時が最大で、後はエンジンの暖機が進むにつれ、低下していく。OBD1、OBD2にかかわらず、ECUの自己診断機能は、水温センサーの電圧信号がある値以下、あるいはある値以上の時、DTCを記憶する。

しかし水温センサーの特性の狂いの原因で、図の赤線のようにいくらエンジンの冷却水温が上昇しても、ある電圧以下に下がらない場合がある。この場合エンジンのECUは必要以上の燃料を噴射してしまい、非常に調子が悪くなる。ところが、電圧変化が規定の範囲に収まっている場合は、エンジンのECUはDTCを記憶することはできない。