Add CAN inputs for drivetrain display values with DBC and bench evidence
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
VERSION "AMI-2.1-2026-10-03"
|
||||
VERSION "AMI-2.2-2026-10-03"
|
||||
|
||||
NS_ :
|
||||
NS_DESC_
|
||||
@@ -12,6 +12,15 @@ 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
|
||||
@@ -65,12 +74,18 @@ BO_ 2556444915 BMS_Status_Extended: 8 BMS
|
||||
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.1. CAN1: 500000 bit/s; CAN2: 250000 bit/s. Both use Classic CAN, identical IDs, parsing and task request capability. This file is CAN1; use AMI_CAN2_250k.dbc for CAN2. Frames are not bridged between buses. SDC fields follow SDC_ACQ_DAC.dbc VERSION 1.1. BMS consumed fields follow BmsMonitor-CANTest commit e65c95203d1689df05343775982d7e85bd782646. Omitted bytes/signals are not interpreted by the AMI firmware. No motor temperature, calibrated vehicle speed, torque, task execution feedback or AMI heartbeat frame is defined.";
|
||||
CM_ BU_ AMI "Instrument MCU. UART HMI task confirmation produces AMI_TaskRequest. Display values are received from SDC and BMS.";
|
||||
CM_ BU_ VCU "Logical receiver of task selection requests; execution and safety interlocks are outside this AMI interface.";
|
||||
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 CAN1; use AMI_CAN2_250k.dbc for CAN2. 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.";
|
||||
@@ -103,6 +118,10 @@ 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";
|
||||
@@ -130,6 +149,7 @@ BA_DEF_DEF_ "GenMsgCycleTime" 0;
|
||||
BA_ "BusType" "CAN";
|
||||
BA_ "Baudrate" 500000;
|
||||
BA_ "AMIPort" "CAN1";
|
||||
BA_ "GenMsgCycleTime" BO_ 386 100;
|
||||
BA_ "GenMsgCycleTime" BO_ 1696 100;
|
||||
BA_ "GenMsgCycleTime" BO_ 1697 500;
|
||||
BA_ "GenMsgCycleTime" BO_ 1698 20;
|
||||
|
||||
Reference in New Issue
Block a user