feat: add VCU status feedback and map DEBUG safety inputs
This commit is contained in:
+34
-5
@@ -1,4 +1,4 @@
|
||||
VERSION "AMI-2.2-2026-10-03"
|
||||
VERSION "AMI-2.4-2026-10-03"
|
||||
|
||||
NS_ :
|
||||
NS_DESC_
|
||||
@@ -21,6 +21,17 @@ BO_ 386 AMI_DrivetrainDisplay: 8 VCU
|
||||
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
|
||||
@@ -74,9 +85,9 @@ 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.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_ "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 "Logical task receiver and sender/adapter for custom drivetrain display data. Execution and safety interlocks are outside this interface.";
|
||||
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.";
|
||||
|
||||
@@ -84,7 +95,17 @@ CM_ BO_ 386 "Standard ID 0x182, DLC exactly 8, send every 100 ms. Three little-e
|
||||
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_ 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.";
|
||||
@@ -98,7 +119,7 @@ CM_ BO_ 1697 "Standard ID 0x6A1, DLC exactly 2, 500 ms. Calibrated input voltage
|
||||
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_ 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.";
|
||||
|
||||
@@ -118,6 +139,13 @@ 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";
|
||||
@@ -150,6 +178,7 @@ 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;
|
||||
|
||||
Reference in New Issue
Block a user