VERSION "AMI-2.2-2026-10-03" NS_ : NS_DESC_ CM_ BA_DEF_ BA_ VAL_ BA_DEF_DEF_ BS_: BU_: AMI VCU SDC_ACQ_DAC BMS BO_ 386 AMI_DrivetrainDisplay: 8 VCU SG_ Torque_Permille : 0|16@1- (1,0) [-1000|1000] "permille" AMI SG_ Motor_Temperature : 16|16@1- (0.1,0) [-3276.8|3276.7] "degC" AMI SG_ MCU_Temperature : 32|16@1- (0.1,0) [-3276.8|3276.7] "degC" AMI SG_ Torque_Valid : 48|1@1+ (1,0) [0|1] "" AMI SG_ Motor_Temperature_Valid : 49|1@1+ (1,0) [0|1] "" AMI SG_ MCU_Temperature_Valid : 50|1@1+ (1,0) [0|1] "" AMI SG_ Protocol_Version : 56|8@1+ (1,0) [1|1] "" AMI BO_ 768 AMI_TaskRequest: 8 AMI SG_ Protocol_Version : 0|8@1+ (1,0) [1|1] "" VCU SG_ Task_ID : 8|8@1+ (1,0) [1|6] "" VCU SG_ Request_Sequence : 16|8@1+ (1,0) [0|255] "" VCU SG_ Request_Source : 24|8@1+ (1,0) [1|1] "" VCU SG_ MCU_Uptime : 32|32@1+ (1,0) [0|4294967295] "ms" VCU BO_ 1696 SDC_Heartbeat: 8 SDC_ACQ_DAC SG_ Board_Identifier : 0|8@1+ (1,0) [0|255] "" AMI SG_ Protocol_Version : 8|8@1+ (1,0) [0|255] "" AMI SG_ Heartbeat_Sequence : 16|16@1+ (1,0) [0|65535] "" AMI SG_ Uptime : 32|32@1+ (0.001,0) [0|4294967.295] "s" AMI BO_ 1697 SDC_ADC_InputVoltage: 2 SDC_ACQ_DAC SG_ Input_Voltage : 0|16@1+ (0.001,0) [0|65.535] "V" AMI BO_ 1698 SDC_InputFrequencies: 8 SDC_ACQ_DAC SG_ Frequency_LeftFront_PA0 : 0|16@1+ (1,0) [0|65535] "Hz" AMI SG_ Frequency_PA2 : 16|16@1+ (1,0) [0|65535] "Hz" AMI SG_ Frequency_RightFront_PA6 : 32|16@1+ (1,0) [0|65535] "Hz" AMI SG_ Frequency_PB14 : 48|16@1+ (1,0) [0|65535] "Hz" AMI BO_ 1700 SDC_DAC_Ack: 4 SDC_ACQ_DAC SG_ DAC_Set_Result : 0|8@1+ (1,0) [0|1] "" AMI SG_ DAC_Select : 8|8@1+ (1,0) [1|2] "" AMI SG_ DAC_Output_Voltage : 16|16@1+ (0.001,0) [0|5] "V" AMI BO_ 1702 SDC_GPIO_Status: 8 SDC_ACQ_DAC SG_ SDC_Input_State : 0|15@1+ (1,0) [0|32767] "" AMI SG_ SDC_Changed_Mask : 16|15@1+ (1,0) [0|32767] "" AMI SG_ Timestamp : 32|32@1+ (0.001,0) [0|4294967.295] "s" AMI BO_ 320 BMS_Status: 8 BMS SG_ Pack_Voltage : 7|16@0+ (0.1,0) [0|6553.5] "V" AMI SG_ Pack_Current : 23|16@0+ (0.1,-500) [-500|6053.5] "A" AMI BO_ 342 BMS_Temperatures: 8 BMS SG_ Temperature_1 : 7|8@0+ (1,-40) [-40|215] "degC" AMI SG_ Temperature_2 : 15|8@0+ (1,-40) [-40|215] "degC" AMI SG_ Temperature_3 : 23|8@0+ (1,-40) [-40|215] "degC" AMI SG_ Temperature_4 : 31|8@0+ (1,-40) [-40|215] "degC" AMI SG_ Temperature_5 : 39|8@0+ (1,-40) [-40|215] "degC" AMI SG_ Temperature_6 : 47|8@0+ (1,-40) [-40|215] "degC" AMI SG_ Temperature_7 : 55|8@0+ (1,-40) [-40|215] "degC" AMI SG_ Temperature_8 : 63|8@0+ (1,-40) [-40|215] "degC" AMI BO_ 2556444915 BMS_Status_Extended: 8 BMS SG_ Pack_Voltage : 7|16@0+ (0.1,0) [0|6553.5] "V" AMI SG_ Pack_Current : 23|16@0+ (0.1,-500) [-500|6053.5] "A" AMI BO_ 2556510451 BMS_Extremes_Extended: 8 BMS SG_ Maximum_Cell_Temperature : 39|8@0+ (1,-40) [-40|215] "degC" AMI CM_ "AMI CAN interface v2.2. CAN1: 500000 bit/s; CAN2: 250000 bit/s. Both use Classic CAN, identical IDs, parsing and task request capability. This file is CAN2; use AMI.dbc for CAN1. Frames are not bridged between buses. SDC fields follow SDC_ACQ_DAC.dbc VERSION 1.1. BMS consumed fields follow BmsMonitor-CANTest commit e65c95203d1689df05343775982d7e85bd782646. AMI_DrivetrainDisplay is a custom instrument input; native motor-controller protocols are not defined. No calibrated vehicle speed, task execution feedback or AMI heartbeat frame is defined."; CM_ BU_ AMI "Instrument MCU. UART HMI task confirmation produces AMI_TaskRequest. Display values come from SDC, BMS and custom VCU display inputs."; CM_ BU_ VCU "Logical task receiver and sender/adapter for custom drivetrain display data. Execution and safety interlocks are outside this interface."; CM_ BU_ SDC_ACQ_DAC "Source of ADC, capture frequencies and raw PD0-PD14 states; both SDC CAN ports carry the same protocol."; CM_ BU_ BMS "Logical BMS source. Source frame periods are not specified here; do not infer them from test traffic."; CM_ BO_ 386 "Standard ID 0x182, DLC exactly 8, send every 100 ms. Three little-endian signed int16 values: torque permille, motor temperature in 0.1 degC, motor-controller MCU temperature in 0.1 degC. Byte 6 bits 0/1/2 are individual valid flags; bits 3..7 must be zero. Byte 7 is fixed version 1. Wrong DLC, frame type, version or reserved bits rejects the whole frame without refreshing timeout. Valid fields update white; invalid fields retain last value and turn grey. Source expires independently after 2000 ms. Display only, no motor torque actuation."; CM_ SG_ 386 Torque_Permille "Signed -1000..1000 permille relative to sender-defined reference torque. Out-of-range marks only torque invalid; temperatures still update."; CM_ SG_ 386 Motor_Temperature "Signed int16 raw tenths degC. Screen rounds to whole degC, halves away from zero."; CM_ SG_ 386 MCU_Temperature "Sender-supplied motor-controller MCU/inverter temperature, not the AMI STM32 die temperature. Screen rounds to whole degC, halves away from zero."; CM_ SG_ 386 Protocol_Version "Fixed 1, independent of AMI interface package version 2.2."; CM_ BO_ 768 "Standard ID 0x300, DLC 8. Event-driven: one request on valid HMI task confirmation, none on cancel. Counter wraps at 255. Request is not proof of execution and is not SDC ASSI_Lamp_Set (0x6A5). No CAN application-level acknowledgement is defined. Route to ports with valid RX within 500 ms; if none, attempt both."; CM_ SG_ 768 Protocol_Version "Fixed 1."; CM_ SG_ 768 Task_ID "Valid task values are 1 through 6."; CM_ SG_ 768 Request_Sequence "Zero at MCU boot; increments after the request is queued on all target ports, modulo 256."; CM_ SG_ 768 Request_Source "Fixed 1 = AMI HMI."; CM_ SG_ 768 MCU_Uptime "Unsigned MCU HAL_GetTick milliseconds, little-endian. Natural uint32 wrap."; CM_ BO_ 1696 "Standard ID 0x6A0, DLC 8, 100 ms. AMI accepts board identifier 0xA1 and protocol version 1."; CM_ BO_ 1697 "Standard ID 0x6A1, DLC exactly 2, 500 ms. Calibrated input voltage before the SDC divider. AMI uses it exclusively as low-voltage battery voltage. Do not apply the divider again."; CM_ SG_ 1697 Input_Voltage "On-wire uint16 mV, decoded in V. dash.lvbat uses 0.01 V integer display units: (raw_mV + 5) / 10. Source expires after 1500 ms."; CM_ BO_ 1698 "Standard ID 0x6A2, DLC 8, 20 ms. Preserve Hz; wheel circumference and pulses per revolution are undefined, so AMI does not convert to km/h."; CM_ BO_ 1700 "Standard ID 0x6A4, DLC 4. Response to a DAC command. AMI recognizes the frame but does not update a display value from it."; CM_ BO_ 1702 "Standard ID 0x6A6, DLC 8. Sent at startup and on PD0-PD14 changes, not periodically. AMI stores raw state, change mask and timestamp. No mapping to named d0-d15 safety signals or normal polarity is defined."; CM_ SG_ 1702 SDC_Input_State "Bit n maps directly to PDn for n=0..14. Bits 15 and 31 in the payload are unused."; CM_ SG_ 1702 SDC_Changed_Mask "Bit n indicates PDn changed since the preceding GPIO status frame."; CM_ BO_ 320 "Standard ID 0x140, DLC 8. AMI consumes only bytes 0..3: big-endian unsigned voltage and offset unsigned current. Other payload bytes are outside this DBC subset. Display rounds voltage/current to whole V/A; source expires after 2000 ms."; CM_ SG_ 320 Pack_Current "Current = raw_uint16 * 0.1 - 500 A; raw 5000 is zero current. This is not a signed int16 field."; CM_ BO_ 342 "Standard ID 0x156, DLC 8. Eight actual temperature channels. Raw 0xFF is invalid, not 215 degC. AMI takes the maximum of valid channels only; all invalid clears validity. Maximum is derived, not another on-wire signal. Source expires after 2000 ms."; CM_ SG_ 342 Temperature_1 "Raw byte 0xFF is invalid. Numeric decoders with choices disabled may return 215; check the raw sentinel before aggregation."; CM_ SG_ 342 Temperature_2 "Raw byte 0xFF is invalid."; CM_ SG_ 342 Temperature_3 "Raw byte 0xFF is invalid."; CM_ SG_ 342 Temperature_4 "Raw byte 0xFF is invalid."; CM_ SG_ 342 Temperature_5 "Raw byte 0xFF is invalid."; CM_ SG_ 342 Temperature_6 "Raw byte 0xFF is invalid."; CM_ SG_ 342 Temperature_7 "Raw byte 0xFF is invalid."; CM_ SG_ 342 Temperature_8 "Raw byte 0xFF is invalid. Synthetic channels 9/10 from the reference UI are not on-wire channels."; CM_ BO_ 2556444915 "Extended arbitration ID 0x186040F3, DLC 8. Same consumed voltage/current layout as standard 0x140. DBC BO_ numeric ID includes the extended-frame flag 0x80000000."; CM_ SG_ 2556444915 Pack_Current "Current = raw_uint16 * 0.1 - 500 A."; CM_ BO_ 2556510451 "Extended arbitration ID 0x186140F3, DLC 8. AMI consumes byte 4 as maximum cell temperature. Raw 0xFF is invalid. Other bytes, including BMS low-voltage bytes 6..7, are not used and cannot override SDC ADC. DBC BO_ numeric ID includes 0x80000000."; VAL_ 768 Protocol_Version 1 "Version_1"; VAL_ 386 Protocol_Version 1 "Version_1"; VAL_ 386 Torque_Valid 0 "Invalid" 1 "Valid"; VAL_ 386 Motor_Temperature_Valid 0 "Invalid" 1 "Valid"; VAL_ 386 MCU_Temperature_Valid 0 "Invalid" 1 "Valid"; VAL_ 768 Task_ID 1 "Skidpad" 2 "Acceleration" 3 "Autocross" 4 "Inspection_Test" 5 "EBS_Test" 6 "Manual_Driving"; VAL_ 768 Request_Source 1 "AMI_HMI"; VAL_ 1696 Board_Identifier 161 "A11_F407"; VAL_ 1696 Protocol_Version 1 "Version_1"; VAL_ 1700 DAC_Set_Result 0 "Failed" 1 "OK"; VAL_ 1700 DAC_Select 1 "DAC1" 2 "DAC2"; VAL_ 342 Temperature_1 255 "Invalid"; VAL_ 342 Temperature_2 255 "Invalid"; VAL_ 342 Temperature_3 255 "Invalid"; VAL_ 342 Temperature_4 255 "Invalid"; VAL_ 342 Temperature_5 255 "Invalid"; VAL_ 342 Temperature_6 255 "Invalid"; VAL_ 342 Temperature_7 255 "Invalid"; VAL_ 342 Temperature_8 255 "Invalid"; VAL_ 2556510451 Maximum_Cell_Temperature 255 "Invalid"; BA_DEF_ "BusType" STRING; BA_DEF_ "Baudrate" INT 0 1000000; BA_DEF_ "AMIPort" STRING; BA_DEF_ BO_ "GenMsgCycleTime" INT 0 2147483647; BA_DEF_DEF_ "BusType" "CAN"; BA_DEF_DEF_ "Baudrate" 250000; BA_DEF_DEF_ "AMIPort" "CAN2"; BA_DEF_DEF_ "GenMsgCycleTime" 0; BA_ "BusType" "CAN"; BA_ "Baudrate" 250000; BA_ "AMIPort" "CAN2"; BA_ "GenMsgCycleTime" BO_ 386 100; BA_ "GenMsgCycleTime" BO_ 1696 100; BA_ "GenMsgCycleTime" BO_ 1697 500; BA_ "GenMsgCycleTime" BO_ 1698 20;