185 lines
13 KiB
Plaintext
185 lines
13 KiB
Plaintext
VERSION "AMI-2.4-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_ 387 AMI_VCUStatus: 8 VCU
|
|
SG_ Current_Task : 0|8@1+ (1,0) [0|6] "" AMI
|
|
SG_ Locked : 8|8@1+ (1,0) [0|1] "" AMI
|
|
SG_ EBS_Normal : 16|8@1+ (1,0) [0|1] "" AMI
|
|
SG_ Task_Valid : 24|1@1+ (1,0) [0|1] "" AMI
|
|
SG_ Lock_Valid : 25|1@1+ (1,0) [0|1] "" AMI
|
|
SG_ EBS_Valid : 26|1@1+ (1,0) [0|1] "" AMI
|
|
SG_ Feedback_Sequence : 32|8@1+ (1,0) [0|255] "" AMI
|
|
SG_ Reserved : 40|16@1+ (1,0) [0|0] "" 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.4. 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 and AMI_VCUStatus are custom instrument inputs to be implemented by VCU. Native motor-controller protocols, calibrated vehicle speed and AMI heartbeat are not 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 "Task request receiver and authoritative sender for actual task, lock and EBS display states plus drivetrain data. Vehicle execution and safety outputs remain VCU responsibilities.";
|
|
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.4.";
|
|
CM_ BO_ 387 "Custom standard 0x183, DLC exactly 8, 100 ms, expires after 500 ms. Byte 0 actual task 0..6, byte 1 locked 0/1, byte 2 EBS normal 0/1. Byte 3 bits 0/1/2 valid for task/lock/EBS; upper bits zero. Byte 4 sender counter for observation, no deduplication or acknowledgement. Bytes 5/6 zero. Byte 7 fixed 1. Reject whole frame on wrong DLC, version, enums, reserved bits or extended/remote/FD format. Invalid fields and timeout show unknown. HMI confirmation only sends 0x300 request and never changes actual task. This frame controls display only, not safety outputs.";
|
|
CM_ SG_ 387 Current_Task "Authoritative VCU actual task, not an echo of the AMI request. 0 is no task (red); 1..6 are named tasks (green). Unknown is encoded by Task_Valid=0, not task value 7. Values above 6 reject the whole frame even if Task_Valid=0.";
|
|
CM_ SG_ 387 Locked "0 unlocked (red), 1 locked (green). Lock_Valid=0 shows unknown. No vehicle interlock output is driven by this field.";
|
|
CM_ SG_ 387 EBS_Normal "0 fault (red background), 1 normal (green background). EBS_Valid=0 shows unknown. Independent of the raw SDC EBS input channels.";
|
|
CM_ SG_ 387 Task_Valid "0 makes the current-task display unknown immediately; 1 uses Current_Task. Every accepted frame is a snapshot of all three validity flags.";
|
|
CM_ SG_ 387 Lock_Valid "0 makes lock status unknown immediately; 1 uses Locked.";
|
|
CM_ SG_ 387 EBS_Valid "0 makes EBS status unknown immediately; 1 uses EBS_Normal.";
|
|
CM_ SG_ 387 Feedback_Sequence "Sender observation counter, normally incremented modulo 256. AMI accepts repeated or wrapped values; this is not Request_Sequence and is not an application ACK.";
|
|
CM_ SG_ 387 Reserved "Bytes 5 and 6 must both be zero; nonzero rejects the whole frame without refreshing timeout.";
|
|
CM_ SG_ 387 Protocol_Version "Fixed 1, independent of interface package version 2.4. Unsupported versions reject the whole frame.";
|
|
|
|
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. PD0..PD14 map to HMI d0,d5,d2,d6,d7,d1,d3,d4,d8,d9,d10,d11,d12,d13,d14. Low is normal (1); high is fault (2). d15 remains unknown. Heartbeat 0x6A0 sustains an existing snapshot; over 500 ms without either GPIO or heartbeat clears all states to unknown (0). A fresh GPIO snapshot is needed after loss.";
|
|
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_ 387 Current_Task 0 "None" 1 "Skidpad" 2 "Acceleration" 3 "Autocross" 4 "Inspection_Test" 5 "EBS_Test" 6 "Manual_Driving";
|
|
VAL_ 387 Locked 0 "Unlocked" 1 "Locked";
|
|
VAL_ 387 EBS_Normal 0 "Fault" 1 "Normal";
|
|
VAL_ 387 Task_Valid 0 "Unknown" 1 "Valid";
|
|
VAL_ 387 Lock_Valid 0 "Unknown" 1 "Valid";
|
|
VAL_ 387 EBS_Valid 0 "Unknown" 1 "Valid";
|
|
VAL_ 387 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_ 387 100;
|
|
BA_ "GenMsgCycleTime" BO_ 1696 100;
|
|
BA_ "GenMsgCycleTime" BO_ 1697 500;
|
|
BA_ "GenMsgCycleTime" BO_ 1698 20;
|