Advertising:
Siemens MS45 CAN Bus (CAN11h)
From MS4X Wiki
MS45 can operate in two different CAN bus modes. CAN11h and BN2000. This page describes CAN11h which is also used in MS43/MS42 and compatible with those. CAN11h works in 500kb/s baud rate.
Siemens MS45 reads the following messages for operation, if the corresponding module is present in car:
- Messagebox 1: ARBID 0x43F EGS1 Automatic Transmission
- Messagebox 2: ARBID 0x613 ICL2 Instrument Cluster
- Messagebox 3: ARBID 0x615 ICL3 Instrument Cluster
- Messagebox 4: ARBID 0x153 ASC1 Traction Control
- Messagebox 5: ARBID 0x1F3 ASC3 Traction Control
- Messagebox 6: ARBID 0x43D AMT1 Automatic Manual Transmission
- Messagebox 7: ARBID 0x1F5 LWS1 Steering Angle Sensor
Siemens MS45 sends the following messages:
- Messagebox B: ARBID 0x338 DME3 Engine Control Unit (Alpina Roadster only)
- Messagebox C: ARBID 0x545 DME4 Engine Control Unit
- Messagebox D: ARBID 0x329 DME2 Engine Control Unit
- Messagebox E: ARBID 0x316 DME1 Engine Control Unit
In addition to that, there are several messages that are not used by the ECU, but still present on the CAN Bus:
- ARBID 0x1F0 ASC2 Traction Control
- ARBID 0x1F8 ASC4 Traction Control
- ARBID 0x445 TXU1 Transfer Case Unit
- ARBID 0x610 ICL1 Instrument Cluster
DME1 0x316
Refresh Rate: 10ms
- Byte 0 - Bitfield
- Bit 0 - LV_SWI_IGK
- Ignition Key Voltage State
- 0 = terminal 15 off detected
- 1 = terminal 15 on detected
- Bit 1 - LV_F_N_ENG
- Crankshaft Sensor State
- 0 = no CRK error present
- 1 = CRK error present
- Bit 2 - LV_ACK_TCS
- Traction Control State
- 0 = either ASC1 was not received within the last 500 ms or it contains a plausibility error
- 1 = the ASC message ASC1 was received within the last 500 ms and contains no plausibility errors of the requirements TQI_ASR_CAN / TQI_MSR_CAN
- Bit 3 - LV_ERR_GC
- Gear Change Error State
- 0 = gear change not or partly possible
- 1 = gear change possible
- Bit 4 - SF_TQD [0]
- Bit 5 - SF_TQD [0]
- Charge Intervention State
- 0 = the required intervention can be performed completely or if there is no ASC requirement.
- 1 = the required intervention cannot be performed completely because the IGA retard limit is reached.
- 2 = the required intervention cannot be performed completely because the charge actuators are fully closed (this case is not possible with MTC without break-away mechanism)
- 3 = "limited vehicle dynamics" is active (MTC/ISA error)
- Bit 6 - Unused
- Bit 7 - LV_F_SUB_TQI
- MAF Error State
- 0 = MAF ok
- 1 = MAF error present
- Bit 0 - LV_SWI_IGK
- Byte 1 - TQI_TQR_CAN
- Indexed Engine Torque in % of C_TQ_STND (including ASR/MSR/ETCU/LIM/AMT/GEAR intervention)
- Calculation = HEX * 0.39
- Byte 2 - N_ENG [LSB]
- Byte 3 - N_ENG [MSB]
- Engine Speed in rpm
- Calculation = ((HEX[MSB] * 256) + HEX[LSB]) * 0.15625
- Byte 4 - TQI_CAN
- Indicated Engine Torque in % of C_TQ_STND (based on PVS, N, AMP, TIA ,TCO, IGA, PUC so ip_tqi_pvs__n__pvs)
- Calculation = HEX * 0.39
- Byte 5 - TQ_LOSS_CAN
- Engine Torque Loss (due to engine friction, AC compressor and electrical power consumption) in % of C_TQ_STND
- Calculation = HEX * 0.39
- Byte 6 - Bitfield
- Bit 6 - ERR_AMT_CAN
- Bit 7 - ERR_AMT_CAN
- Byte 7 - TQI_MAF_CAN
- Theorethical Engine Torque in % of C_TQ_STND after charge intervention (based on MAF & IGA so ip_tqi_maf__n__maf)
- Calculation = HEX * 0.39
DME2 0x329
Refresh Rate: 10ms
- Byte 0 - Multiplexed Information
- Bit 0 - MUX_INFO [0]
- Bit 1 - MUX_INFO [1]
- Bit 2 - MUX_INFO [2]
- Bit 3 - MUX_INFO [3]
- Bit 4 - MUX_INFO [4]
- Bit 5 - MUX_INFO [5]
- CAN_LEVEL = CAN bus function level. This is always 0x11 for MS43
- OBD_STEUER = STATE_DIAG_GS (Status of GS diagnosis for feedback to gearbox)
- MD_NORM = Refactored C_TQ_STND from 0x3FF (0-1023Nm) to 0x3F (0-1008Nm) with decreased resolution of 16Nm
- Bit 6 - MUX_CODE [0]
- Bit 7 - MUX_CODE [1]
- 0 = CAN_LEVEL
- 2 = OBD_STEUER
- 3 = MD_NORM
- Byte 1 - TEMP_ENG
- Engine (Coolant) Temperature in °C
- Calculation = (HEX * 0.75) - 48°C
- Init: 0xFF
- Min: 0x01 (-48°C)
- Max: 0xFF (142.5°C)
- Byte 2 - AMP_CAN
- Ambient Pressure in hPa
- Calculation = (HEX * 2) + 598hPa
- Init = 0x00
- Min = 0x01 (600hPa)
- Max = 0xFE (1106hPa)
- Error = 0xFF
- Byte 3 - Bitfield
- Bit 0 - LV_SWI_CLU
- Clutch Switch State
- 0 = released
- 1 = depressed
- Bit 1 - LV_LEVEL_IS
- Idle Regulator State
- 0 = idle above threshold
- 1 = idle below threshold
- Bit 2 - LV_ACK_CRU_AD_ECU
- Acknowledge of ACC1 CAN Message
- 0 = nACK
- 1 = ACK
- Bit 3 - LV_ERU_CAN
- Engine Running State
- 0 = engine stopped
- 1 = engine running
- Bit 4 - (STATE_CRU_CAN)???
- Bit 5 - STATE_MSW_CAN [0]
- Bit 6 - STATE_MSW_CAN [1]
- Bit 7 - STATE_MSW_CAN [2]
- 0 = No Button Pressed (Init Value)
- 1 = Set / Acceleration (tip-up)
- 2 = Deceleration (tip-down)
- 3 = Resume
- 4 = Deactivate (I/O)
- 7 = Error Condition
- Bit 0 - LV_SWI_CLU
- Byte 4 - TPS_VIRT_CRU_CAN
- Calculation = HEX * 0.390625
- Byte 5 - TPS_CAN
- Accelerator Pedal Position in % of PVS_MAX
- Calculation = HEX * 0.390625
- Init = 0x00
- Min = 0x01 (0%)
- Max = 0xFE (99.2%)
- PVS Error = 0xFF
- Byte 6 - Bitfield
- Bit 0 - LV_BS
- Brake Switch State
- 0 = brake not actuated
- 1 = brake actuated
- Bit 1 - LV_ERR_BS
- Brake Switch System State
- 0 = brake switch system OK
- 1 = brake switch system faulty
- Bit 2 - LV_KD_CAN
- Kick Down State
- 0 = kick down not active
- 1 = kick down active
- Bit 3 - STATE_CRU_CAN [0]
- Bit 4 - STATE_CRU_CAN [1]
- Bit 5 - STATE_CRU_CAN [2]
- 0 = LV_CRU_ACT = 0
- 1 = LV_CRU_ACT = 1, constant drive (or tip-up / tip-down)
- 3 = LV_CRU_ACT = 1, resume
- 5 = LV_CRU_ACT = 1, set / acceleration
- 7 = LV_CRU_ACT = 1, deceleration
- Bit 6 - REQ_SHIFTLOCK [0]
- Bit 7 - REQ_SHIFTLOCK [1]
- 0 = no actuation is active
- 3 = actuation ISA, MTC or N_SP_IS is active
- Bit 0 - LV_BS
- Byte 7 - Unused
DME3 0x338
Refresh Rate: 1000ms and at signal change
- Byte 0 - Unused
- Byte 1 - Unused
- Byte 2 - STATE_SOF_CAN
- Sport Button Status
- 0 = Sport Button On (requested by SMG)
- 1 = Sport Button Off
- 2 = Sport Button On
- 3 = Sport Button Error
- Init: 0x01
- Byte 3 - Unused
- Byte 4 - Unused
- Byte 5 - Unused
- Byte 6 - Unused
- Byte 7 - Unused
DME4 0x545
Refresh Rate: 10ms
- Byte 0 - Bitfield
- Bit 0 - Unused
- Bit 1 - LV_MIL - Check Engine Light
- Bit 2 - Unused
- Bit 3 - LV_MAIN_SWI_CRU - CRU_MAIN_SWI
- Bit 4 - LV_ETC_DIAG - EML Light
- Bit 5 - Unused
- Bit 6 - LV_FUC_CAN - Fuel Tank Cap Light
- Bit 7 - Unused
- Byte 1 - FCO[LSB]
- Byte 2 - FCO[MSB]
- Fuel Consumption
- Byte 3 - Bitfield
- Bit 0 - Oil Level Indicator LED - Oil consumption
- Bit 1 - Oil Level Indicator LED - Oil loss
- Bit 2 - Oil Level Indicator LED - Sensor malfunction
- Bit 3 - LV_TEMP_ENG - Coolant Overheating Light (c_tco_tmot_sta)
- Bit 4 - M-Cluster Warm-Up LEDs
- Bit 5 - M-Cluster Warm-Up LEDs
- Bit 6 - M-Cluster Warm-Up LEDs
- Bit 7 - Upshift indicator
- Byte 4 - TOIL_CAN
- Oil Temperature in °C
- Calculation = HEX - 48°C
- Min: 0x00 (-48°C)
- Max: 0xFE (206°C)
- Byte 5 - Bitfield
- Bit 0 - Battery Chargelight (Alpina Roadster Only)
- Bit 1 - Unused
- Bit 2 - Unused
- Bit 3 - Unused
- Bit 4 - Unused
- Bit 5 - Unused
- Bit 6 - Unused
- Bit 7 - Unused
- Byte 6 - Oil Level (MSS54HP only)
- Calculation = (HEX - 158) / 10L
- Min: 0x80 || 0xC0 (-3.0L)
- Max: 0xBE || 0xFE (+3.2L)
- Byte 7 - Bitfield
- Bit 0 - State Tire Pressure (MSS54 only)
- Bit 1 - Unused
- Bit 2 - Unused
- Bit 3 - Unused
- Bit 4 - Unused
- Bit 5 - Unused
- Bit 6 - Unused
- Bit 7 - Status Engine Oil Pressure Low