概要

  今までトヨタ ヴォクシー、MR-SにOBD-II(OBD2)アダプターを取り付け、スマホアプリとBluetoothで接続し、走行ごとの燃費が計測できるか試してみましたが、今回はトヨタ ヴィッツ(R.1年製)に挑戦。結果、トヨタ ヴィッツ(KSP130、R.1年製)は40種類のデータが取得できることが分かりました。



トヨタ ヴィッツのOBD-II 通信プロトコルの確認方法

 トヨタ ヴィッツに(取扱説明書にはやめるように書いてありますが)OBD2アダプターを取り付け、まずは通信できるか、プロトコルの指定がいるかどうか調べました。 詳細はELM327DS.pdfAndroidスマホとOBD2アダプターを使って車の内部情報を取得するのに「obd2-lib」を活用」に記載がありますが、通信開始時には初期化コマンドでプロトコルを指定する必要があります。まず、初期化コマンドとして、

  • AT Z
  • AT PC
  • AT SP 0
  • AT DP

を試しました。AT Zはオールリセット、 AT PCはプロトコル クローズで今、設定されているプロトコルを終了、AT SP 0で プロトコル 0をセット、プロトコル 0は「Automatic」という意味で自動判別になります。 結果、AT SP 0 コマンドに対して、OK が、設定されたプロトコルを返すコマンドAT DP に対してAUTO が返ってきたため、プロトコルは「0 - Automactic」で行けそうです。

トヨタ ヴィッツのOBD-II サービス01対応状況確認結果

 次に、OBD-IIのサービス01で定義されているPID(パラメータID)のうち、全ての項目に応答があるわけではないようですので、そのうちのどれに反応があるか(サポートされているか)を確かめます。「OBD-II PIDs」に詳細は書かれていますが、コマンド01 00をOBD2アダプターに送信すると、PID 01(16進)から20(16進)までのコードのうち、どれを対応しているのか、ビットごとに対応されてる場合は1が、されていない場合は0でセットされた応答が返ってきます。実際に、トヨタ ヴィッツからの応答を確認すると、BE3EB813でした。ビットごとに分解すると

1011 1110 0011 0011 1110 1011 0001 0011

 になります。「OBD-II_PIDs」の「Service_01_-_Show_current_data」に当てはめ、対応していないものをグレーで塗ると、以下のようになりました。

PID
(Hex)
PID
(Dec)
Description説明 単位
01 1 Monitor status since DTCs cleared. (Includes malfunction indicator lamp (MIL), status and number of DTCs, components tests, DTC readiness checks) DTCがクリアされてからのステータス
02 2 DTC that caused freeze frame to be stored. フリーズフレームデータが格納された原因となったDTCコード
03 3 Fuel system status エンジン制御システムの状態
04 4 Calculated engine load 計算されたエンジン負荷 %
05 5 Engine coolant temperature エンジン冷却水温度 °C
06 6 Short term fuel trim—Bank 1 短期燃料補正値(バンク1) %
07 7 Long term fuel trim—Bank 1 長期燃料補正値(バンク1) %
088Short term fuel trim—Bank 2短期燃料補正値(バンク1)%
099Long term fuel trim—Bank 2長期燃料補正値(バンク2)%
0A10Fuel pressure (gauge pressure)燃圧kPa
0B11Intake manifold absolute pressure吸気圧(絶対値)kPa
0C12Engine speedエンジン回転数rpm
0D13Vehicle speed車両速度km/h
0E14Timing advance点火時期° BTDC
0F15Intake air temperature吸気温°C
1016Mass air flow sensor (MAF) air flow rate吸入空気量(質量流量)g/s
1117Throttle positionスロットル開度%
1218Commanded secondary air status2次空気ステータス(指示値)
1319Oxygen sensors present (in 2 banks)O2センサー現在値(2バンク分をまとめて)
1420Oxygen Sensor 1
A: Voltage
B: Short term fuel trim
O2センサー 1
A: 電圧
B: 補正量
V
%
1521Oxygen Sensor 2
A: Voltage
B: Short term fuel trim
O2センサー 2
A: 電圧
B: 補正量
V
%
1622Oxygen Sensor 3
A: Voltage
B: Short term fuel trim
O2センサー 3
A: 電圧
B: 補正量
V
%
1723Oxygen Sensor 4
A: Voltage
B: Short term fuel trim
O2センサー 4
A: 電圧
B: 補正量
V
%
1824Oxygen Sensor 5
A: Voltage
B: Short term fuel trim
O2センサー 5
A: 電圧
B: 補正量
V
%
1925Oxygen Sensor 6
A: Voltage
B: Short term fuel trim
O2センサー 6
A: 電圧
B: 補正量
V
%
1A26Oxygen Sensor 7
A: Voltage
B: Short term fuel trim
O2センサー 7
A: 電圧
B: 補正量
V
%
1B27Oxygen Sensor 8
A: Voltage
B: Short term fuel trim
O2センサー 8
A: 電圧
B: 補正量
V
%
1C28OBD standards this vehicle conforms to対応しているOBDの型
1D29Oxygen sensors present (in 4 banks)O2センサー現在値(4バンク分をまとめて)
1E30Auxiliary input status補助入力の状態
1F 31 Run time since engine start エンジン運転開始からの経過時間 s
20 32PIDs supported [\$21 - \$40] PID \$21から\$40のPIDの対応有無

日本語訳は間違っているかもしれませんがご了承お願いします。

最後のPID 20(16進)が1ということで、次の21~40(16進)のPID対応があるということになります。コマンド01 20をOBD2アダプターに送信すると、PID 21から40(16進)までのコードのうちどれを対応しているのか、が分かります。リクエストしてみると、80158015でした。同様に対応いるものを白抜き、していないものをグレーで塗ると

PID
(Hex)
PID
(Dec)
Description説明単位
2133Distance traveled with malfunction indicator lamp (MIL) on故障ランプがついてからの走行距離km
22 34 Fuel Rail Pressure (relative to manifold vacuum) 燃料パイプ圧力(吸気管圧力に対する相対圧) kPa
23 35 Fuel Rail Gauge Pressure (diesel, or gasoline direct injection) 燃料パイプ圧力(ディーゼルもしくはガソリン直噴)kPa
24 36 Oxygen Sensor 1
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Voltage
O2センサー1
空燃比(ラムダ)
電圧
ratio
V
2537Oxygen Sensor 2
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Voltage
O2センサー2
空燃比(ラムダ)
電圧
ratio
V
2638Oxygen Sensor 3
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Voltage
O2センサー3
空燃比(ラムダ)
電圧
ratio
V
2739Oxygen Sensor 4
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Voltage
O2センサー4
空燃比(ラムダ)
電圧
ratio
V
2840Oxygen Sensor 5
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Voltage
O2センサー5
空燃比(ラムダ)
電圧
ratio
V
2941Oxygen Sensor 6
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Voltage
O2センサー6
空燃比(ラムダ)
電圧
ratio
V
2A42Oxygen Sensor 7
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Voltage
O2センサー7
空燃比(ラムダ)
電圧
ratio
V
2B43Oxygen Sensor 8
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Voltage
O2センサー8
空燃比(ラムダ)
電圧
ratio
V
2C44Commanded EGREGR指示値%
2D45EGR ErrorEGR誤差%
2E46Commanded evaporative purgeエバポ率指示値%
2F47Fuel Tank Level Input燃料タンク内燃料量%
3048Warm-ups since codes clearedコード消去後の暖機
3149Distance traveled since codes clearedコード消去後の走行距離km
3250Evap. System Vapor Pressureエバポシステムのべーパー圧力Pa
3351Absolute Barometric Pressure気圧(絶対値)kPa
3452Oxygen Sensor 1
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Current
O2センサー1
空燃比(ラムダ)
電流
ratio
mA
3553Oxygen Sensor 2
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Current
O2センサー2
空燃比(ラムダ)
電流
ratio
mA
3654Oxygen Sensor 3
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Current
O2センサー3
空燃比(ラムダ)
電流
ratio
mA
3755Oxygen Sensor 4
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Current
O2センサー4
空燃比(ラムダ)
電流
ratio
mA
3856Oxygen Sensor 5
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Current
O2センサー5
空燃比(ラムダ)
電流
ratio
mA
3957Oxygen Sensor 6
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Current
O2センサー6
空燃比(ラムダ)
電流
ratio
mA
3A58Oxygen Sensor 7
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Current
O2センサー7
空燃比(ラムダ)
電流
ratio
mA
3B59Oxygen Sensor 8
AB: Air-Fuel Equivalence Ratio (lambda,λ)
CD: Current
O2センサー8
空燃比(ラムダ)
電流
ratio
mA
3C60Catalyst Temperature: Bank 1, Sensor 1触媒温度
(バンク1センサー1)
°C
3D61Catalyst Temperature: Bank 2, Sensor 1触媒温度
(バンク2センサー1)
°C
3E62Catalyst Temperature: Bank 1, Sensor 2触媒温度
(バンク1センサー2)
°C
3F63Catalyst Temperature: Bank 2, Sensor 2触媒温度
(バンク1センサー2)
°C
40 64 PIDs supported [\$41 - \$60] PID \$40から\$61のPIDの対応有無

最後のPID 40(16進)が1ということで、さらに次の41~60(16進)のPID対応があるということになります。コマンド01 40をOBD2アダプターに送信すると、PID 41から60(16進)までのコードのうちどれを対応しているのか、が分かります。リクエストしてみると、7ADC0001でした。対応いるものを白抜き、していないものをグレーで塗ると

PID
(Hex)
PID
(Dec)
Description説明単位
4165Monitor status this drive cycle今回の走行でのモニターステータス
4266Control module voltageコントロールモジュールの電圧V
4367Absolute load value負荷(絶対値)%
4468Commanded Air-Fuel Equivalence Ratio (lambda,λ)空燃比指示値(ラムダ)ratio
4569Relative throttle positionスロットル開度(相対値)%
4670Ambient air temperature気温°C
4771Absolute throttle position Bスロットル開度B(絶対値)%
4872Absolute throttle position Cスロットル開度C(絶対値)%
4973Accelerator pedal position Dスロットル開度D(絶対値)%
4A74Accelerator pedal position Eスロットル開度E(絶対値)%
4B75Accelerator pedal position Fスロットル開度F(絶対値)%
4C76Commanded throttle actuatorスロットル開度指示値%
4D77Time run with MIL on故障ランプ点灯時間min
4E78Time since trouble codes cleared故障コード消去後経過時間min
4F79Maximum value for Fuel–Air equivalence ratio, oxygen sensor voltage, oxygen sensor current, and intake manifold absolute pressure空燃比、酸素センサー電圧、酸素センサー電流、吸気管圧力絶対値の最大値ratio, V, mA, kPa
5080Maximum value for air flow rate from mass air flow sensor質量流量センサーの吸入空気量最大値g/s
5181Fuel Type燃料種類
5282Ethanol fuel %アルコール燃料濃度%
5383Absolute Evap system Vapor Pressureエバポシステムの蒸気圧(絶対値)kPa
5484Evap system vapor pressureエバポシステムの蒸気圧Pa
5585Short term secondary oxygen sensor trim, A: bank 1, B: bank 3短期第2酸素センサー補正値(A:バンク1,B:バンク3)%
5686Long term secondary oxygen sensor trim, A: bank 1, B: bank 3長期第2酸素センサー補正値(A:バンク1,B:バンク3)%
5787Short term secondary oxygen sensor trim, A: bank 2, B: bank 4短期第2酸素センサー補正値(A:バンク2,B:バンク4)%
5888Long term secondary oxygen sensor trim, A: bank 2, B: bank 4長期第2酸素センサー補正値(A:バンク2,B:バンク4)%
5989Fuel rail absolute pressure燃料レール圧(絶対値)kPa
5A90Relative accelerator pedal positionアクセルペダル開度(相対値)%
5B91Hybrid battery pack remaining lifeハイブリッドバッテリーパック残存量%
5C92Engine oil temperatureエンジンオイル温°C
5D93Fuel injection timing燃料噴射タイミング°
5E94Engine fuel rate燃料噴射量L/h
5F 95 Emission requirements to which vehicle is designed
6096 PIDs supported [\$61 - \$80] PID \$61から\$80のPIDの対応有無

最後のPID 60(16進)が1ということで、さらに次の61~80(16進)のPID対応があるということになります。コマンド01 60をOBD2アダプターに送信すると、PID 61から80(16進)までのコードのうち、どれを対応しているのかのレスポンスがあることが分かります。リクエストしてみると、08000000でした。対応いるものを白抜き、していないものをグレーで塗ると

PID
(Hex)
PID
(Dec)
Description説明単位
6197Driver's demand engine - percent torqueドライバー要求エンジントルク%
6298Actual engine - percent torque実エンジントルク%
6399Engine reference torqueエンジン参照トルクN⋅m
64100Engine percent torque dataエンジントルク(アイドル、エンジン運転点1、2、3、4)%
65101Auxiliary input / output supported補助入力/出力の対応
66102Mass air flow sensor吸入空気量(質量流量、センサーA、B)g/s
67103Engine coolant temperatureエンジン冷却水温(センサー1、2)°C
68104Intake air temperature sensor吸入空気温(センサー1、2)°C
69105Actual EGR, Commanded EGR, and EGR Error実EGR、指示値、エラー
6A106Commanded Diesel intake air flow control and relative intake air flow position指示吸入空気量(ディーゼル)、相対空気量
6B107Exhaust gas recirculation temperatureEGRガス温
6C108Commanded throttle actuator control and relative throttle position指示スロットル開度、相対スロットル開度
6D109Fuel pressure control system燃料圧力制御システム
6E110Injection pressure control system噴射圧制御システム
6F111Turbocharger compressor inlet pressureターボ吸入圧
70112Boost pressure control過給圧制御
71113Variable Geometry turbo (VGT) control可変ターボ制御
72114Wastegate controlウェイストゲート制御
73115Exhaust pressure排気圧
74116Turbocharger RPMターボ回転数
75117Turbocharger temperatureターボ温度
76118Turbocharger temperatureターボ温度
77119Charge air cooler temperature (CACT)インタークーラー温度
78120Exhaust Gas temperature (EGT) Bank 1排気ガス温度(バンク1)
79121Exhaust Gas temperature (EGT) Bank 2排気ガス温度(バンク2)
7A122Diesel particulate filter (DPF)differential pressureディーゼルパティキュレートフィルター差圧
7B123Diesel particulate filter (DPF)ディーゼルパティキュレートフィルター
7C124Diesel Particulate filter (DPF) temperatureディーゼルパティキュレートフィルター温度°C
7D 125 NOx NTE (Not-To-Exceed) control area status NOx制御状態
7E 126 PM NTE (Not-To-Exceed) control area status PM制御状態
7F 127 Engine run timeエンジン運転時間 s
80 128 PIDs supported [\$81 - \$A0] PID対応有無[\$81 - \$A0]

最後のPID 80(16進)が0ということで、以降のPIDの対応がないことが分かります。トヨタ ヴィッツは40個のPIDに対応していることが分かりました。