Suga koubou
/
Car_test
OBD II see: https://os.mbed.com/users/okini3939/notebook/obd2-can-bus/
Embed:
(wiki syntax)
Show/hide line numbers
ecu_reader.h
00001 #ifndef ECU_READER_H 00002 #define ECU_READER_H 00003 00004 #define CANSPEED_125 125000 // CAN speed at 125 kbps 00005 #define CANSPEED_250 250000 // CAN speed at 250 kbps 00006 #define CANSPEED_500 500000 // CAN speed at 500 kbps 00007 00008 /* Details from http://en.wikipedia.org/wiki/OBD-II_PIDs */ 00009 #define PID_0_20 0x00 //PID 0 - 20 supported 00010 #define PID_0_20_DESC "PID 0x00 - 0x20 Supported" 00011 #define STATUS_DTC 0x01 /// 00012 #define STATUS_DTC_DESC "Status since DTC Cleared" 00013 #define FREEZE_DTC 0x02 /// 00014 #define FREEZE_DTC_DESC "Freeze Diagnostic Trouble Code" 00015 #define FUEL_SYS_STATUS 0x03 /// 00016 #define FUEL_SYS_STATUS_DESC "Fuel System Status" 00017 #define ENGINE_LOAD 0x04 // 00018 #define ENGINE_LOAD_DESC "Calculated Engine Load" 00019 #define ENGINE_COOLANT_TEMP 0x05 00020 #define ENGINE_COOLANT_TEMP_DESC "Engine Coolant Temperature" 00021 #define ST_FUEL_TRIM_1 0x06 /// 00022 #define ST_FUEL_TRIM_1_DESC "Short Term Fuel % Trim - Bank 1" 00023 #define LT_FUEL_TRIM_1 0x07 /// 00024 #define LT_FUEL_TRIM_1_DESC "Long Term Fuel % Trim - Bank 1" 00025 #define ST_FUEL_TRIM_2 0x08 /// 00026 #define ST_FUEL_TRIM_2_DESC "Short Term Fuel % Trim - Bank 2" 00027 #define LT_FUEL_TRIM_2 0x09 /// 00028 #define LT_FUEL_TRIM_2_DESC "Long Term Fuel % Trim - Bank 2" 00029 #define FUEL_PRESSURE 0x0A // 00030 #define FUEL_PRESSURE_DESC "Fuel Pressure" 00031 #define INTAKE_PRESSURE 0x0B // 00032 #define INTAKE_PRESSURE_DESC "Intake Manifold Absolute Pressure" 00033 #define ENGINE_RPM 0x0C 00034 #define ENGINE_RPM_DESC "Engine RPM" 00035 #define VEHICLE_SPEED 0x0D 00036 #define VEHICLE_SPEED_DESC "Vehicle Speed" 00037 #define TIMING_ADVANCE 0x0E // 00038 #define TIMING_ADVANCE_DESC "Timing Advance" 00039 #define INTAKE_TEMP 0x0F // 00040 #define INTAKE_TEMP_DESC "Intake Air Temperature" 00041 #define MAF_SENSOR 0x10 00042 #define MAF_SENSOR_DESC "MAF Sensor Air Flow Rate" 00043 #define THROTTLE 0x11 00044 #define THROTTLE_DESC "Throttle Position" 00045 #define COMMANDED_SEC_AIR 0x12 /// 00046 #define COMMANDED_SEC_AIR_DESC "Commanded Secondary Air Status" 00047 #define O2_SENS_PRES 0x13 /// 00048 #define O2_SENS_PRES_DESC "Detected O2 Sensors" 00049 #define O2_B1S1_VOLTAGE 0x14 /// 00050 #define O2_B1S1_VOLTAGE_DESC "O2 Sensor Voltage - Bank 1 Sensor 1" 00051 #define O2_B1S2_VOLTAGE 0x15 /// 00052 #define O2_B1S2_VOLTAGE_DESC "O2 Sensor Voltage - Bank 1 Sensor 2" 00053 #define O2_B1S3_VOLTAGE 0x16 /// 00054 #define O2_B1S3_VOLTAGE_DESC "O2 Sensor Voltage - Bank 1 Sensor 3" 00055 #define O2_B1S4_VOLTAGE 0x17 /// 00056 #define O2_B1S4_VOLTAGE_DESC "O2 Sensor Voltage - Bank 1 Sensor 4" 00057 #define O2_B2S1_VOLTAGE 0x18 /// 00058 #define O2_B2S1_VOLTAGE_DESC "O2 Sensor Voltage - Bank 2 Sensor 1" 00059 #define O2_B2S2_VOLTAGE 0x19 /// 00060 #define O2_B2S2_VOLTAGE_DESC "O2 Sensor Voltage - Bank 2 Sensor 2" 00061 #define O2_B2S3_VOLTAGE 0x1A /// 00062 #define O2_B2S3_VOLTAGE_DESC "O2 Sensor Voltage - Bank 2 Sensor 3" 00063 #define O2_B2S4_VOLTAGE 0x1B /// 00064 #define O2_B2S4_VOLTAGE_DESC "O2 Sensor Voltage - Bank 2 Sensor 4" 00065 #define OBDII_STANDARDS 0x1C //List of OBDII Standars the car conforms to 00066 #define OBDII_STANDARDS_DESC "Supported OBDII Standards" 00067 #define O2_SENS_PRES_ALT 0x1D /// 00068 #define O2_SENS_PRES_ALT_DESC "Detected O2 Sensors - Alternate Grouping" 00069 #define AUX_IN_STATUS 0x1E /// 00070 #define AUX_IN_STATUS_DESC "Auxiliary Input Status" 00071 #define ENGINE_RUNTIME 0x1F // 00072 #define ENGINE_RUNTIME_DESC "Run Time Since Engine Started" 00073 #define PID_21_40 0x20 //PID 21-40 supported 00074 #define PID_21_40_DESC "PID 0x21 - 0x40 Supported" 00075 #define DIST_TRAVELED_MIL 0x21 /// 00076 #define DIST_TRAVELED_MIL_DESC "Distance Traveled with MIL On" 00077 #define FUEL_RAIL_PRESSURE 0x22 // 00078 #define FUEL_RAIL_PRESSURE_DESC "Fuel Rail Pressure Relative to Manifold" 00079 #define FUEL_RAIL_PRES_ALT 0x23 /// 00080 #define FUEL_RAIL_PRES_ALT_DESC "MPI/Diesel Fuel Rail Pressure" 00081 #define O2S1_WR_LAMBDA_V 0x24 /// 00082 #define O2S1_WR_LAMBDA_V_DESC "O2 Sensor 1 Equivalence Ratio Voltage" 00083 #define O2S2_WR_LAMBDA_V 0x25 /// 00084 #define O2S2_WR_LAMBDA_V_DESC "O2 Sensor 2 Equivalence Ratio Voltage" 00085 #define O2S3_WR_LAMBDA_V 0x26 /// 00086 #define O2S3_WR_LAMBDA_V_DESC "O2 Sensor 3 Equivalence Ratio Voltage" 00087 #define O2S4_WR_LAMBDA_V 0x27 /// 00088 #define O2S4_WR_LAMBDA_V_DESC "O2 Sensor 4 Equivalence Ratio Voltage" 00089 #define O2S5_WR_LAMBDA_V 0x28 /// 00090 #define O2S5_WR_LAMBDA_V_DESC "O2 Sensor 5 Equivalence Ratio Voltage" 00091 #define O2S6_WR_LAMBDA_V 0x29 /// 00092 #define O2S6_WR_LAMBDA_V_DESC "O2 Sensor 6 Equivalence Ratio Voltage" 00093 #define O2S7_WR_LAMBDA_V 0x2A /// 00094 #define O2S7_WR_LAMBDA_V_DESC "O2 Sensor 7 Equivalence Ratio Voltage" 00095 #define O2S8_WR_LAMBDA_V 0x2B /// 00096 #define O2S8_WR_LAMBDA_V_DESC "O2 Sensor 8 Equivalence Ratio Voltage" 00097 #define COMMANDED_EGR 0x2C // 00098 #define COMMANDED_EGR_DESC "Commanded EGR" 00099 #define EGR_ERROR 0x2D // 00100 #define EGR_ERROR_DESC "EGR Error" 00101 #define COMMANDED_EVAP_P 0x2E /// 00102 #define COMMANDED_EVAP_P_DESC "Commanded Evaporative Purge" 00103 #define FUEL_LEVEL 0x2F // 00104 #define FUEL_LEVEL_DESC "Fuel Level Input" 00105 #define WARMUPS_SINCE_CLR 0x30 /// 00106 #define WARMUPS_SINCE_CLR_DESC "Number of Warmups since DTC Cleared" 00107 #define DIST_SINCE_CLR 0x31 /// 00108 #define DIST_SINCE_CLR_DESC "Distance Traveled Since DTC Cleared" 00109 #define EVAP_PRESSURE 0x32 // 00110 #define EVAP_PRESSURE_DESC "Evap. System Vapor Pressure" 00111 #define BAROMETRIC_PRESSURE 0x33 // 00112 #define BAROMETRIC_PRESSURE_DESC "Barometric Pressure" 00113 #define O2S1_WR_LAMBDA_I 0x34 /// 00114 #define O2S1_WR_LAMBDA_I_DESC "O2 Sensor 1 Equivalence Ratio Current" 00115 #define O2S2_WR_LAMBDA_I 0x35 /// 00116 #define O2S2_WR_LAMBDA_I_DESC "O2 Sensor 2 Equivalence Ratio Current" 00117 #define O2S3_WR_LAMBDA_I 0x36 /// 00118 #define O2S3_WR_LAMBDA_I_DESC "O2 Sensor 3 Equivalence Ratio Current" 00119 #define O2S4_WR_LAMBDA_I 0x37 /// 00120 #define O2S4_WR_LAMBDA_I_DESC "O2 Sensor 4 Equivalence Ratio Current" 00121 #define O2S5_WR_LAMBDA_I 0x38 /// 00122 #define O2S5_WR_LAMBDA_I_DESC "O2 Sensor 5 Equivalence Ratio Current" 00123 #define O2S6_WR_LAMBDA_I 0x39 /// 00124 #define O2S6_WR_LAMBDA_I_DESC "O2 Sensor 6 Equivalence Ratio Current" 00125 #define O2S7_WR_LAMBDA_I 0x3A /// 00126 #define O2S7_WR_LAMBDA_I_DESC "O2 Sensor 7 Equivalence Ratio Current" 00127 #define O2S8_WR_LAMBDA_I 0x3B /// 00128 #define O2S8_WR_LAMBDA_I_DESC "O2 Sensor 8 Equivalence Ratio Current" 00129 #define CAT_TEMP_B1S1 0x3C /// 00130 #define CAT_TEMP_B1S1_DESC "Catalyst Temperature Bank 1 Sensor 1" 00131 #define CAT_TEMP_B1S2 0x3E /// 00132 #define CAT_TEMP_B1S2_DESC "Catalyst Temperature Bank 1 Sensor 2" 00133 #define CAT_TEMP_B2S1 0x3D /// 00134 #define CAT_TEMP_B2S1_DESC "Catalyst Temperature Bank 2 Sensor 1" 00135 #define CAT_TEMP_B2S2 0x3F /// 00136 #define CAT_TEMP_B2S2_DESC "Catalyst Temperature Bank 2 Sensor 2" 00137 #define PID_41_60 0x40 //PID 41-60 supported 00138 #define PID_41_60_DESC "PID 0x41 - 0x60 Supported" 00139 #define MONITOR_STATUS 0x41 /// 00140 #define MONITOR_STATUS_DESC "Monitor Status This Drive Cycle" 00141 #define ECU_VOLTAGE 0x42 // 00142 #define ECU_VOLTAGE_DESC "Control Module Voltage" 00143 #define ABSOLUTE_LOAD 0x43 // 00144 #define ABSOLUTE_LOAD_DESC "Absolute Load Value" 00145 #define COMMANDED_EQUIV_R 0x44 /// 00146 #define COMMANDED_EQUIV_R_DESC "Commanded Equivalence Ratio" 00147 #define REL_THROTTLE_POS 0x45 /// 00148 #define REL_THROTTLE_POS_DESC "Relative Throttle Position" 00149 #define AMB_AIR_TEMP 0x46 /// 00150 #define AMB_AIR_TEMP_DESC "Ambient Air Temperature" 00151 #define ABS_THROTTLE_POS_B 0x47 /// 00152 #define ABS_THROTTLE_POS_B_DESC "Absolute Throttle Position B" 00153 #define ABS_THROTTLE_POS_C 0x48 /// 00154 #define ABS_THROTTLE_POS_C_DESC "Absolute Throttle Position C" 00155 #define ACCEL_POS_D 0x49 /// 00156 #define ACCEL_POS_D_DESC "Accelerator Pedal Position D" 00157 #define ACCEL_POS_E 0x4A /// 00158 #define ACCEL_POS_E_DESC "Accelerator Pedal Position E" 00159 #define ACCEL_POS_F 0x4B /// 00160 #define ACCEL_POS_F_DESC "Accelerator Pedal Position F" 00161 #define COMMANDED_THROTTLE 0x4C /// 00162 #define COMMANDED_THROTTLE_DESC "Commanded Throttle Actuator" 00163 #define TIME_RUN_WITH_MIL 0x4D /// 00164 #define TIME_RUN_WITH_MIL_DESC "Time Run with MIL on" 00165 #define TIME_SINCE_CLR 0x4E /// 00166 #define TIME_SINCE_CLR_DESC "Time Since DTC Cleared" 00167 #define MAX_R_O2_VI_PRES 0x4F /// 00168 #define MAX_R_O2_VI_PRES_DESC "Maximum Value - Equivalence ratio, O2 Voltage, O2 Current, Intake Manifold Pressure" 00169 #define MAX_AIRFLOW_MAF 0x50 /// 00170 #define MAX_AIRFLOW_MAF_DESC "Maximum MAF Airflow Value" 00171 #define FUEL_TYPE 0x51 // 00172 #define FUEL_TYPE_DESC "Fuel Type" 00173 #define ETHANOL_PERCENT 0x52 // 00174 #define ETHANOL_PERCENT_DESC "Ethanol fuel %" 00175 #define ABS_EVAP_SYS_PRES 0x53 /// 00176 #define ABS_EVAP_SYS_PRES_DESC "absolute Evap. System Vapor Pressure" 00177 #define EVAP_SYS_PRES 0x54 /// 00178 #define EVAP_SYS_PRES_DESC "Evap. System Vapor Pressure" 00179 #define ST_O2_TRIM_B1B3 0x55 /// 00180 #define ST_O2_TRIM_B1B3_DESC "Short Term Secondary O2 Sensor Trim - Bank 1 and 3" 00181 #define LT_O2_TRIM_B1B3 0x56 /// 00182 #define LT_O2_TRIM_B1B3_DESC "Long Term Secondary O2 Sensor Trim - Bank 1 and 3" 00183 #define ST_02_TRIM_B2B4 0x57 /// 00184 #define ST_O2_TRIM_B2B4_DESC "Short Term Secondary O2 Sensor Trim - Bank 2 and 4" 00185 #define LT_O2_TRIM_B2B4 0x58 /// 00186 #define LT_O2_TRIM_B2B4_DESC "Long Term Secondary O2 Sensor Trim - Bank 2 and 4" 00187 #define ABS_FUEL_RAIL_PRES 0x59 /// 00188 #define ABS_FUEL_RAIL_PRES_DESC "Absolute Fuel Rail Pressure" 00189 #define REL_ACCEL_POS 0x5A /// 00190 #define REL_ACCEL_POS_DESC "Relative Accelerator Pedal Position" 00191 #define HYBRID_BATT_PCT 0x5B /// 00192 #define HYBRID_BATT_PCT_DESC "Hybrid Battery Pack Charge Percent" 00193 #define ENGINE_OIL_TEMP 0x5C /// 00194 #define ENGINE_OIL_TEMP_DESC "Engine Oil Temperature" 00195 #define FUEL_TIMING 0x5D // 00196 #define FUEL_TIMING_DESC "Fuel Injection Timing" 00197 #define FUEL_RATE 0x5E // 00198 #define FUEL_RATE_DESC "Engine Fuel Rate" 00199 #define EMISSIONS_STANDARD 0x5F /// 00200 #define EMISSIONS_STANDARD_DESC "Emmissions Requirements" 00201 #define DEMANDED_TORQUE 0x61 /// 00202 #define DEMANDED_TORQUE_DESC "Driver's Demanded Torque - Percent" 00203 #define ACTUAL_TORQUE 0x62 /// 00204 #define ACTUAL_TORQUE_DESC "Actual Engine Torque - Percent" 00205 #define REFERENCE_TORQUE 0x63 // 00206 #define REFERENCE_TORQUE_DESC "Engine Reference Torque" 00207 #define ENGINE_PCT_TORQUE 0x64 /// 00208 #define ENGINE_PCT_TORQUE_DESC "Engine Percent Torque" 00209 #define AUX_IO_SUPPORTED 0x65 /// 00210 #define AUX_IO_SUPPORTED_DESC "Auxiliary Input/Output Supported" 00211 #define P_MAF_SENSOR 0x66 /// 00212 #define P_ENGINE_COOLANT_T 0x67 /// 00213 #define P_INTAKE_TEMP 0x68 /// 00214 #define P_COMMANDED_EGR 0x69 /// 00215 #define P_COMMANDED_INTAKE 0x6A /// 00216 #define P_EGR_TEMP 0x6B /// 00217 #define P_COMMANDED_THROT 0x6C /// 00218 #define P_FUEL_PRESSURE 0x6D /// 00219 #define P_FUEL_INJ_PRES 0x6E /// 00220 #define P_TURBO_PRESSURE 0x6F /// 00221 #define P_BOOST_PRES_CONT 0x70 /// 00222 #define P_VGT_CONTROL 0x71 /// 00223 #define P_WASTEGATE_CONT 0x72 /// 00224 #define P_EXHAUST_PRESSURE 0x73 /// 00225 #define P_TURBO_RPM 0x74 /// 00226 #define P_TURBO_TEMP1 0x75 /// 00227 #define P_TURBO_TEMP2 0x76 /// 00228 #define P_CACT 0x77 /// 00229 #define P_EGT_B1 0x78 /// 00230 #define P_EGT_B2 0x79 /// 00231 #define P_DPF1 0x7A /// 00232 #define P_DPF2 0x7B /// 00233 #define P_DPF_TEMP 0x7C /// 00234 #define P_NOX_NTE_STATUS 0x7D /// 00235 #define P_PM_NTE_STATUS 0x7E /// 00236 #define P_ENGINE_RUNTUME 0x7F /// 00237 #define P_ENGINE_AECD_1 0x81 /// 00238 #define P_ENGINE_AECD_2 0x82 /// 00239 #define P_NOX_SENSOR 0x83 /// 00240 #define P_MANIFOLD_TEMP 0x84 /// 00241 #define P_NOX_SYSTEM 0x85 /// 00242 #define P_PM_SENSOR 0x86 /// 00243 #define P_IN_MANIF_TEMP 0x87 /// 00244 00245 #define PID_REQUEST 0x7DF 00246 #define PID_REPLY 0x7E8 00247 00248 namespace mbed { 00249 00250 class ecu_reader{ 00251 00252 public: 00253 00254 ecu_reader(PinName rd, PinName td, int can_speed); 00255 00256 unsigned char request(unsigned char pid, float *buffer); 00257 00258 private: 00259 CAN can2; 00260 CANMessage can_MsgRx; 00261 Timer CANTimer; 00262 int PID020, PID2140, PID4160; //PID Support Masks 00263 00264 int i; 00265 00266 }; 00267 00268 00269 00270 00271 00272 } 00273 00274 00275 00276 #endif
Generated on Wed Jul 13 2022 23:40:38 by 1.7.2