概要
今までトヨタ ヴォクシー、MR-SにOBD-II(OBD2)アダプターを取り付け、スマホアプリとBluetoothで接続し、走行ごとの燃費が計測できるか試してみましたが、今回はトヨタ ヴィッツ(R.1年製)に挑戦。結果、トヨタ ヴィッツ(KSP130、R.1年製)は40種類のデータが取得できることが分かりました。
トヨタ ヴィッツのOBD-II 通信プロトコルの確認方法
トヨタ ヴィッツに(取扱説明書にはやめるように書いてありますが)OBD2アダプターを取り付け、まずは通信できるか、プロトコルの指定がいるかどうか調べました。 詳細はELM327DS.pdf、「AndroidスマホとOBD2アダプターを使って車の内部情報を取得するのに「obd2-lib」を活用」に記載がありますが、通信開始時には初期化コマンドでプロトコルを指定する必要があります。まず、初期化コマンドとして、
を試しました。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) |
% |
08 | 8 | Short term fuel trim—Bank 2 | 短期燃料補正値(バンク1) | % |
09 | 9 | Long term fuel trim—Bank 2 | 長期燃料補正値(バンク2) | % |
0A | 10 | Fuel pressure (gauge pressure) | 燃圧 | kPa |
0B | 11 | Intake manifold absolute pressure | 吸気圧(絶対値) | kPa |
0C | 12 | Engine speed | エンジン回転数 | rpm |
0D | 13 | Vehicle speed | 車両速度 | km/h |
0E | 14 | Timing advance | 点火時期 | ° BTDC |
0F | 15 | Intake air temperature | 吸気温 | °C |
10 | 16 | Mass air flow sensor (MAF) air flow rate | 吸入空気量(質量流量) | g/s |
11 | 17 | Throttle position | スロットル開度 | % |
12 | 18 | Commanded secondary air status | 2次空気ステータス(指示値) | |
13 | 19 | Oxygen sensors present (in 2 banks) | O2センサー現在値(2バンク分をまとめて) | |
14 | 20 | Oxygen Sensor 1 A: Voltage B: Short term fuel trim | O2センサー 1 A: 電圧 B: 補正量 | V % |
15 | 21 | Oxygen Sensor 2 A: Voltage B: Short term fuel trim | O2センサー 2 A: 電圧 B: 補正量 | V % |
16 | 22 | Oxygen Sensor 3 A: Voltage B: Short term fuel trim | O2センサー 3 A: 電圧 B: 補正量 | V % |
17 | 23 | Oxygen Sensor 4 A: Voltage B: Short term fuel trim | O2センサー 4 A: 電圧 B: 補正量 | V % |
18 | 24 | Oxygen Sensor 5 A: Voltage B: Short term fuel trim | O2センサー 5 A: 電圧 B: 補正量 | V % |
19 | 25 | Oxygen Sensor 6 A: Voltage B: Short term fuel trim | O2センサー 6 A: 電圧 B: 補正量 | V % |
1A | 26 | Oxygen Sensor 7 A: Voltage B: Short term fuel trim | O2センサー 7 A: 電圧 B: 補正量 | V % |
1B | 27 | Oxygen Sensor 8 A: Voltage B: Short term fuel trim | O2センサー 8 A: 電圧 B: 補正量 | V % |
1C | 28 | OBD standards this vehicle conforms to | 対応しているOBDの型 | |
1D | 29 | Oxygen sensors present (in 4 banks) | O2センサー現在値(4バンク分をまとめて) | |
1E | 30 | Auxiliary input status | 補助入力の状態 | |
1F |
31 |
Run time since engine start |
エンジン運転開始からの経過時間 |
s |
20 |
32 | PIDs 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 | 説明 | 単位 |
21 | 33 | Distance 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 |
25 | 37 | Oxygen Sensor 2 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | O2センサー2 空燃比(ラムダ) 電圧 | ratio V |
26 | 38 | Oxygen Sensor 3 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | O2センサー3 空燃比(ラムダ) 電圧 | ratio V |
27 | 39 | Oxygen Sensor 4 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | O2センサー4 空燃比(ラムダ) 電圧 | ratio V |
28 | 40 | Oxygen Sensor 5 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | O2センサー5 空燃比(ラムダ) 電圧 | ratio V |
29 | 41 | Oxygen Sensor 6 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | O2センサー6 空燃比(ラムダ) 電圧 | ratio V |
2A | 42 | Oxygen Sensor 7 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | O2センサー7 空燃比(ラムダ) 電圧 | ratio V |
2B | 43 | Oxygen Sensor 8 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Voltage | O2センサー8 空燃比(ラムダ) 電圧 | ratio V |
2C | 44 | Commanded EGR | EGR指示値 | % |
2D | 45 | EGR Error | EGR誤差 | % |
2E | 46 | Commanded evaporative purge | エバポ率指示値 | % |
2F | 47 | Fuel Tank Level Input | 燃料タンク内燃料量 | % |
30 | 48 | Warm-ups since codes cleared | コード消去後の暖機 | |
31 | 49 | Distance traveled since codes cleared | コード消去後の走行距離 | km |
32 | 50 | Evap. System Vapor Pressure | エバポシステムのべーパー圧力 | Pa |
33 | 51 | Absolute Barometric Pressure | 気圧(絶対値) | kPa |
34 | 52 | Oxygen Sensor 1 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | O2センサー1 空燃比(ラムダ) 電流 | ratio mA |
35 | 53 | Oxygen Sensor 2 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | O2センサー2 空燃比(ラムダ) 電流 | ratio mA |
36 | 54 | Oxygen Sensor 3 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | O2センサー3 空燃比(ラムダ) 電流 | ratio mA |
37 | 55 | Oxygen Sensor 4 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | O2センサー4 空燃比(ラムダ) 電流 | ratio mA |
38 | 56 | Oxygen Sensor 5 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | O2センサー5 空燃比(ラムダ) 電流 | ratio mA |
39 | 57 | Oxygen Sensor 6 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | O2センサー6 空燃比(ラムダ) 電流 | ratio mA |
3A | 58 | Oxygen Sensor 7 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | O2センサー7 空燃比(ラムダ) 電流 | ratio mA |
3B | 59 | Oxygen Sensor 8 AB: Air-Fuel Equivalence Ratio (lambda,λ) CD: Current | O2センサー8 空燃比(ラムダ) 電流 | ratio mA |
3C | 60 | Catalyst Temperature: Bank 1, Sensor 1 | 触媒温度 (バンク1センサー1) | °C |
3D | 61 | Catalyst Temperature: Bank 2, Sensor 1 | 触媒温度 (バンク2センサー1) | °C |
3E | 62 | Catalyst Temperature: Bank 1, Sensor 2 | 触媒温度 (バンク1センサー2) | °C |
3F | 63 | Catalyst 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 | 説明 | 単位 |
41 | 65 | Monitor status this drive cycle | 今回の走行でのモニターステータス | |
42 | 66 | Control module voltage | コントロールモジュールの電圧 | V |
43 | 67 | Absolute load value | 負荷(絶対値) | % |
44 | 68 | Commanded Air-Fuel Equivalence Ratio (lambda,λ) | 空燃比指示値(ラムダ) | ratio |
45 | 69 | Relative throttle position | スロットル開度(相対値) | % |
46 | 70 | Ambient air temperature | 気温 | °C |
47 | 71 | Absolute throttle position B | スロットル開度B(絶対値) | % |
48 | 72 | Absolute throttle position C | スロットル開度C(絶対値) | % |
49 | 73 | Accelerator pedal position D | スロットル開度D(絶対値) | % |
4A | 74 | Accelerator pedal position E | スロットル開度E(絶対値) | % |
4B | 75 | Accelerator pedal position F | スロットル開度F(絶対値) | % |
4C | 76 | Commanded throttle actuator | スロットル開度指示値 | % |
4D | 77 | Time run with MIL on | 故障ランプ点灯時間 | min |
4E | 78 | Time since trouble codes cleared | 故障コード消去後経過時間 | min |
4F | 79 | Maximum value for Fuel–Air equivalence ratio, oxygen sensor voltage, oxygen sensor current, and intake manifold absolute pressure | 空燃比、酸素センサー電圧、酸素センサー電流、吸気管圧力絶対値の最大値 | ratio, V, mA, kPa |
50 | 80 | Maximum value for air flow rate from mass air flow sensor | 質量流量センサーの吸入空気量最大値 | g/s |
51 | 81 | Fuel Type | 燃料種類 | |
52 | 82 | Ethanol fuel % | アルコール燃料濃度 | % |
53 | 83 | Absolute Evap system Vapor Pressure | エバポシステムの蒸気圧(絶対値) | kPa |
54 | 84 | Evap system vapor pressure | エバポシステムの蒸気圧 | Pa |
55 | 85 | Short term secondary oxygen sensor trim, A: bank 1, B: bank 3 | 短期第2酸素センサー補正値(A:バンク1,B:バンク3) | % |
56 | 86 | Long term secondary oxygen sensor trim, A: bank 1, B: bank 3 | 長期第2酸素センサー補正値(A:バンク1,B:バンク3) | % |
57 | 87 | Short term secondary oxygen sensor trim, A: bank 2, B: bank 4 | 短期第2酸素センサー補正値(A:バンク2,B:バンク4) | % |
58 | 88 | Long term secondary oxygen sensor trim, A: bank 2, B: bank 4 | 長期第2酸素センサー補正値(A:バンク2,B:バンク4) | % |
59 | 89 | Fuel rail absolute pressure | 燃料レール圧(絶対値) | kPa |
5A | 90 | Relative accelerator pedal position | アクセルペダル開度(相対値) | % |
5B | 91 | Hybrid battery pack remaining life | ハイブリッドバッテリーパック残存量 | % |
5C | 92 | Engine oil temperature | エンジンオイル温 | °C |
5D | 93 | Fuel injection timing | 燃料噴射タイミング | ° |
5E | 94 | Engine fuel rate | 燃料噴射量 | L/h |
5F |
95 |
Emission requirements to which vehicle is designed | |
|
60 | 96 |
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 | 説明 | 単位 |
61 | 97 | Driver's demand engine - percent torque | ドライバー要求エンジントルク | % |
62 | 98 | Actual engine - percent torque | 実エンジントルク | % |
63 | 99 | Engine reference torque | エンジン参照トルク | N⋅m |
64 | 100 | Engine percent torque data | エンジントルク(アイドル、エンジン運転点1、2、3、4) | % |
65 | 101 | Auxiliary input / output supported | 補助入力/出力の対応 | |
66 | 102 | Mass air flow sensor | 吸入空気量(質量流量、センサーA、B) | g/s |
67 | 103 | Engine coolant temperature | エンジン冷却水温(センサー1、2) | °C |
68 | 104 | Intake air temperature sensor | 吸入空気温(センサー1、2) | °C |
69 | 105 | Actual EGR, Commanded EGR, and EGR Error | 実EGR、指示値、エラー | |
6A | 106 | Commanded Diesel intake air flow control and relative intake air flow position | 指示吸入空気量(ディーゼル)、相対空気量 | |
6B | 107 | Exhaust gas recirculation temperature | EGRガス温 | |
6C | 108 | Commanded throttle actuator control and relative throttle position | 指示スロットル開度、相対スロットル開度 | |
6D | 109 | Fuel pressure control system | 燃料圧力制御システム | |
6E | 110 | Injection pressure control system | 噴射圧制御システム | |
6F | 111 | Turbocharger compressor inlet pressure | ターボ吸入圧 | |
70 | 112 | Boost pressure control | 過給圧制御 | |
71 | 113 | Variable Geometry turbo (VGT) control | 可変ターボ制御 | |
72 | 114 | Wastegate control | ウェイストゲート制御 | |
73 | 115 | Exhaust pressure | 排気圧 | |
74 | 116 | Turbocharger RPM | ターボ回転数 | |
75 | 117 | Turbocharger temperature | ターボ温度 | |
76 | 118 | Turbocharger temperature | ターボ温度 | |
77 | 119 | Charge air cooler temperature (CACT) | インタークーラー温度 | |
78 | 120 | Exhaust Gas temperature (EGT) Bank 1 | 排気ガス温度(バンク1) | |
79 | 121 | Exhaust Gas temperature (EGT) Bank 2 | 排気ガス温度(バンク2) | |
7A | 122 | Diesel particulate filter (DPF)differential pressure | ディーゼルパティキュレートフィルター差圧 | |
7B | 123 | Diesel particulate filter (DPF) | ディーゼルパティキュレートフィルター | |
7C | 124 | Diesel 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に対応していることが分かりました。