feat: add AS status feedback for both HMI sizes with verified v2.7 release
This commit is contained in:
+26
-17
@@ -1,4 +1,4 @@
|
||||
VERSION "AMI-2.5-2026-10-04"
|
||||
VERSION "AMI-2.7-2026-10-07"
|
||||
|
||||
NS_ :
|
||||
NS_DESC_
|
||||
@@ -28,9 +28,11 @@ BO_ 387 AMI_VCUStatus: 8 VCU
|
||||
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_ AS_Valid : 27|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
|
||||
SG_ AS_State : 40|8@1+ (1,0) [0|5] "" AMI
|
||||
SG_ Reserved : 48|8@1+ (1,0) [0|0] "" AMI
|
||||
SG_ Protocol_Version : 56|8@1+ (1,0) [1|2] "" AMI
|
||||
|
||||
BO_ 768 AMI_TaskRequest: 8 AMI
|
||||
SG_ Protocol_Version : 0|8@1+ (1,0) [1|1] "" VCU
|
||||
@@ -48,11 +50,9 @@ BO_ 1696 SDC_Heartbeat: 8 SDC_ACQ_DAC
|
||||
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_ 1698 SDC_WheelSpeed: 4 SDC_ACQ_DAC
|
||||
SG_ WheelSpeed_LeftFront_PA0 : 0|16@1+ (0.001,0) [0|65.535] "m/s" AMI
|
||||
SG_ WheelSpeed_RightFront_PA6 : 16|16@1+ (0.001,0) [0|65.535] "m/s" AMI
|
||||
|
||||
BO_ 1700 SDC_DAC_Ack: 4 SDC_ACQ_DAC
|
||||
SG_ DAC_Set_Result : 0|8@1+ (1,0) [0|1] "" AMI
|
||||
@@ -85,10 +85,10 @@ 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.5. 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 are not defined. AMI heartbeat 0x301 is CAN1 only and is not included in this CAN2 file.";
|
||||
CM_ "AMI CAN interface v2.7. 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 at commit 7bc2d9f1eaaf19814957037bd097cd879cbf4cbf. 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 are not defined. Vehicle speed display is the mean of the two calibrated front-wheel speeds, rounded to whole km/h; this is not a VCU fused vehicle-speed estimate. AMI heartbeat 0x301 is CAN1 only and is not included in this CAN2 file.";
|
||||
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_ VCU "Task request receiver and authoritative sender for actual task, lock, AS and EBS display states plus drivetrain data. Vehicle execution and safety outputs remain VCU responsibilities.";
|
||||
CM_ BU_ SDC_ACQ_DAC "Source of ADC, calibrated front-wheel speeds 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.";
|
||||
@@ -96,7 +96,7 @@ CM_ SG_ 386 Torque_Permille "Signed -1000..1000 permille relative to sender-defi
|
||||
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_ BO_ 387 "Custom 0x183 DLC 8, 100 ms, timeout 500 ms. Version 2: bytes 0/1/2 task/locked/EBS, byte 3 valid bits 0/1/2/3 task/lock/EBS/AS, byte 4 sequence, byte 5 AS 0..5, byte 6 zero, byte 7 fixed 2. Reject bad enum/reserved/format without renewing timeout. Legacy v1 accepted with byte 5/6 zero and only valid bits 0..2; AS becomes unknown. VCU actual feedback only; task requests never set AS. Display only, no 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.";
|
||||
@@ -104,8 +104,8 @@ CM_ SG_ 387 Task_Valid "0 makes the current-task display unknown immediately; 1
|
||||
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_ SG_ 387 Reserved "Byte 6 must be zero. Legacy version 1 also requires byte 5 zero. Nonzero reserved fields reject the whole frame without refreshing timeout.";
|
||||
CM_ SG_ 387 Protocol_Version "2 for AS feedback. Legacy version 1 is also decoded by firmware, with AS unknown.";
|
||||
|
||||
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.";
|
||||
@@ -117,9 +117,11 @@ CM_ SG_ 768 MCU_Uptime "Unsigned MCU HAL_GetTick milliseconds, little-endian. Na
|
||||
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_ 1698 "Standard ID 0x6A2, DLC exactly 4, 20 ms. Bytes 0..1 left-front PA0 and 2..3 right-front PA6: little-endian uint16 mm/s, physical scale 0.001 m/s. SDC applies 49 pulses/rev and 1414 mm circumference. AMI displays the mean rounded to whole km/h: ((left_raw + right_raw) * 9 + 2500) / 5000. Zero and 65535 are valid; no per-wheel validity flags or invalid sentinel exist. Expires independently after 500 ms, retaining the last value in grey. Reject old DLC 8 without refreshing timeout.";
|
||||
CM_ SG_ 1698 WheelSpeed_LeftFront_PA0 "Left-front PA0/TIM5_CH1. Calibrated by SDC; do not apply circumference or pulses/rev again.";
|
||||
CM_ SG_ 1698 WheelSpeed_RightFront_PA6 "Right-front PA6/TIM3_CH1. Calibrated by SDC; no individual sensor-health flag is supplied.";
|
||||
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_ BO_ 1702 "Standard ID 0x6A6, DLC 8. Sent every 1000 ms; changed-mask bits accumulate transitions during the preceding reporting interval. 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.";
|
||||
|
||||
@@ -145,7 +147,7 @@ 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_ 387 Protocol_Version 1 "Legacy_Version_1" 2 "Version_2";
|
||||
VAL_ 386 Protocol_Version 1 "Version_1";
|
||||
VAL_ 386 Torque_Valid 0 "Invalid" 1 "Valid";
|
||||
VAL_ 386 Motor_Temperature_Valid 0 "Invalid" 1 "Valid";
|
||||
@@ -182,3 +184,10 @@ BA_ "GenMsgCycleTime" BO_ 387 100;
|
||||
BA_ "GenMsgCycleTime" BO_ 1696 100;
|
||||
BA_ "GenMsgCycleTime" BO_ 1697 500;
|
||||
BA_ "GenMsgCycleTime" BO_ 1698 20;
|
||||
BA_ "GenMsgCycleTime" BO_ 1702 1000;
|
||||
|
||||
|
||||
CM_ SG_ 387 AS_State "0 AS OFF, 1 AS Ready, 2 AS Driving, 3 AS Finished, 4 AS Emergency, 5 Manual Driving. ASF semantic states; numeric encoding is this custom AMI contract, not an ASF CAN assignment. Invalid flag or timeout shows unknown.";
|
||||
CM_ SG_ 387 AS_Valid "0 AS unknown, 1 uses AS_State. Never derive AS from task, lock, EBS or ASSI lamp.";
|
||||
VAL_ 387 AS_State 0 "AS_OFF" 1 "AS_Ready" 2 "AS_Driving" 3 "AS_Finished" 4 "AS_Emergency" 5 "Manual_Driving";
|
||||
VAL_ 387 AS_Valid 0 "Unknown" 1 "Valid";
|
||||
|
||||
Reference in New Issue
Block a user