自動車の自己診断機能
自動車の自己診断機能（）とは、自動車各部に取り付けられたECU（Electrical Controll Unit）にプログラミングされている機能のひとつ。
車それ自身に搭載されている診断機能という意味合いで、自己診断機能と呼ばれる。また英語で自動車の自己診断機能を表す用語：On-Board Diagnosticsの頭文字を取って、OBDと略称されている。
例えばエンジンの燃料噴射システムを構成する各センサー及び各アクチュエータに、なんらかの異常が発生した場合、エンジンのECUは異常の発生を記憶し、インスツルメンタルパネル（計器盤）の警告ランプを点灯させるなりして、ドライバーに異常の発生を知らせる。この警告灯はMIL（Malfunction Indication Lamp）と呼ばれている。
OBD2の歴史は以下の通りである。
現在OBD1（On Board Diagnosis first generation）と呼ばれている自己診断機能は、GMのALDLにルーツを持つものであるが、その後各メーカーが独自にアレンジを加えていった。そのため、通信規格はもちろん、故障コードを表示させる手順、そして表示される故障コードの意味付けも、各メーカーばらばらのものになっていた。
例えば『11』と二桁の数字で表現される故障コードが、あるメーカーではクランク角センサーからの信号異常を表し、またある別のメーカーではエアフローセンサーから信号異常を表す、いう状況にあった。
時期を同じくして各メーカーは自車専用のスキャンツール（外部診断装置）を開発し、各販売店のサービス工場に常備させていた。しかしそれらのスキャンツールには、まったく互換性はなく、車との接続用ケーブルや接続コネクタの形状も、まったく違っていた。そのため一般の自動車整備工場向けの汎用スキャンツールは、各社ごとの変換コネクターが付属している。
こうした状況を改善するために制定されたのがOBD2（On Board Diagnosis second generation）ということになる。OBD2は各メーカーの枠を超えて、DLC（Data link coupler）と呼ばれる同じ形状・ピン配置の接続コネクターと、同じ故障コードを使い、故障発生時には同じように警告灯を点灯させる機能を実現させた。図のように、OBD2では5種類の通信規格が定められている。
つまりアメリカのビッグスリー、GM、フォード、クライスラーがそれぞれ定めた規格、Kラインとも呼ばれるヨーロッパの各メーカー及び日本の各メーカーが採用している規格、そしてCAN（Controller Area Network）である。これら5種類のうち、当初はいずれかの通信規格を備えていれば、その車種はOBD2に対応した自己診断機能を搭載していると認められていた。
そのため各メーカーは、16ある端子の残りを、自社の専用スキャンツールで使う端子として割り当てている。
2008年、アメリカ合衆国は、国内で販売されるすべての乗用車、小型トラックのECU間のネットワークにCAN規格（Controller Area Network ）の採用を義務付けたことにより、概ね2010年以降の新しいモデルは、CAN経由でスキャンツールとのデータのやり取りを行うようになっている。
OBD2の故障コードは、DTC（Diagnostic Trouble Code）と呼ばれ、 アルファベット1文字と、4桁の数字から構成されている。4桁の数字を使えば、0000～9999まで実に一万個の故障コードを設定することができる。OBD1で使われていた2桁のコードとは違い、各メーカーは、非常に細かく故障コードを設定できる。
OBD2は元来、エンジンの排気ガスの有害成分抑制装置の不具合を検知するものであったので、当初はP（Power Train)で始まるDTC（通称Pコード）から設定されたが、車の他の部位にまで拡大されていった。現在DTCはPコードの他に、次の3種類のDTCが設定されている。
また アルファベットの次の数字が“0”の場合は、生産国に関係なく共通の意味を持つDTC（例：P0120：スロットルポジションセンサー回路異常）であり、これに対して“1”ないし“2”の場合は、各メーカーが独自に設定したDTCである。
各メーカーは独自のDTCを設定した場合、SAEにそれを通知することが求められる。その情報はSAEから公開されることになっている。
したがってもしスキャンツールでDTCの読み出しを行った場合、意味を把握できないDTCが読み出された場合、インターネットのDTCに関する検索サイトを用いて、その意味を把握することができる。
OBD2が搭載されることによって、自動車整備の現場では、迅速かつ正確に行えるようになった。例えばヴィッツのSCP10系におけるエンジン関係の故障コード一覧表を見ると、この車はOBD2スキャンツールを用いる方法の他に、“エンジンチェックランプの点滅回数を読みとる”という従来のOBD1の方法でも、コードを読み取れるのがわかる。
その場合は従来からのトヨタ独自の二桁コードを読みとることになるが、“クランクセンサー異常”も“カムセンサー異常”も、同じ“12”が表示される。つまり、“12”が表示されたら、この二つのセンサーを両方とも点検する必要が生ずる。また、それぞれのセンサーと取り付け位置であるが、一方はシリンダーヘッドの後ろ側、一方はクランクプーリー付近と位置的にも離れていて、両方のセンサーの点検作業はかなりの労力を要する。しかしながらスキャンツールを用いてOBD2のDTCを読み取れば、その段階で点検箇所をどちらか一方に絞り込むことができる。
フリーズ・フレーム・データ（Freeze frame data）とは、OBD2に対応したエンジン・コントロール・ユニットが記憶することができる情報である。各センサーあるいは各アクチュエータに異常が生じ、エンジン・コントロール・ユニットはDTCを記憶すると同時に、DTCを記憶した瞬間のエンジン冷却水温、エンジン回転数、負荷の状態（高負荷時であったか、低負荷時であったか）、などの情報を記憶する。これがフリーズ・フレーム・データである。
OBD2に対応したエンジン・コントロール・ユニットは、必ずこの機能を有することが求められているが、記憶する情報の項目、項目数、表示方法は、各メーカーの意向に委ねられている。したがって実際の故障診断作業に当たっては、常に有益な情報を得られるとは限らない事に留意したい。
OBD2のDTCを読取るには、ECU内部のマイクロコンピュータと通信を取り合い、記憶されたDTCを読み取り、それをディスプレイに表示する装置が必要となる。この装置をスキャンツール（Scan Tools）と呼ぶ。
スキャンツールは、概ね次のように分類できる。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（トラクション・コントロール・システム）を解除する必要がある。この状態を整備モードと呼ぶが、この整備モードへの移行作業も、スキャンツールのアクティブテスト機能で行うことができる。
実際の整備現場において、スキャンツールの使用に当たり心得ておきたいことは以下の通りである。
例えば 水温センサーの不具合を示すDTCが読取れた場合、いきなり部品交換に進んでしまうのは、誤りである。水温センサー自体は、サーミスターを使った簡単な部品だが、エンジンのECUの中では図のような配線になっている。したがってセンサーの配線やカプラーの異常の他に、ECU内部の分圧抵抗なども点検の対象となる。しかし万が一、内部の分圧抵抗の異常と結論が出たら、ECUアセンブリ交換となってしまう。
また水温センサーについてのDTCが、エンジンのECUに記憶される条件は、以下のようにメーカー及び車種によって違っている。
【P0115　水温センサー回路異常】
したがって故障診断作業に当たっては、こうした情報をサービスマニュアルで確認しておくのが、肝要である。
図の黒線ように、水温センサーからECUに送られる電圧信号は、エンジン始動時が最大で、後はエンジンの暖機が進むにつれ、低下していく。OBD1、OBD2にかかわらず、ECUの自己診断機能は、水温センサーの電圧信号がある値以下、あるいはある値以上の時、DTCを記憶する。
しかし水温センサーの特性の狂いの原因で、図の赤線のようにいくらエンジンの冷却水温が上昇しても、ある電圧以下に下がらない場合がある。この場合エンジンのECUは必要以上の燃料を噴射してしまい、非常に調子が悪くなる。ところが、電圧変化が規定の範囲に収まっている場合は、エンジンのECUはDTCを記憶することはできない。
自動車工学臨時増刊　すっきりわかるカーエレクトロニクス読本　2012年7月　鉄道日本社