Files
Cognitive_Agent/domains/seat/can/seat-motion-hardware-matrix.yaml
T

117 lines
5.4 KiB
YAML
Executable File

version: 4.0.0
source:
project: Seat_Controller_demo
specification: firmware/t2g/Seat_Controller_demo/Docs/座椅控制器_CAN_测试规范.md
test_status: firmware/t2g/Seat_Controller_demo/Docs/HIL_TEST_STATUS_2026-07-30.md
verified_on: 2026-07-30
scope: t2g_primary_seat_four_motor_protocol
hardware_execution_allowed: true
bit_numbering: lsb0
byte_order: intel_little_endian
limitations:
- M0/M1/M2/M3 are one physical seat's horizontal, seat-pan, backrest and legrest axes.
- Absolute position requires a valid SMV8 position; known-range homing is a separately gated maintenance action.
- Current diagnostics are calibrated for observability; production over-current thresholds remain unverified.
messages:
- name: T2G_Seat_Move_Command_300
frame_id: 0x300
role: command
minimum_payload_bytes: 8
hardware_send_allowed: true
signals:
- {name: Opcode, start_bit: 0, bit_length: 8}
- {name: Motor_Selector, start_bit: 8, bit_length: 2}
- {name: Direction, start_bit: 10, bit_length: 2}
- {name: Protocol_Version, start_bit: 12, bit_length: 2}
- {name: Sequence, start_bit: 16, bit_length: 16}
- {name: Param_A, start_bit: 32, bit_length: 16}
- {name: Param_B, start_bit: 48, bit_length: 16}
- name: T2G_Seat_Move_System_Status_301
frame_id: 0x301
role: feedback
minimum_payload_bytes: 8
signals:
- {name: Ack, start_bit: 0, bit_length: 4}
- {name: System_State, start_bit: 4, bit_length: 4}
- {name: Reject_Reason, start_bit: 8, bit_length: 8}
- {name: Last_Sequence, start_bit: 16, bit_length: 16}
- {name: Last_Opcode, start_bit: 32, bit_length: 8}
- {name: Active_Mask, start_bit: 40, bit_length: 4}
- {name: Safety_Inhibit, start_bit: 44, bit_length: 1}
- {name: Calibration_Busy, start_bit: 46, bit_length: 1}
- {name: Fault_Summary, start_bit: 47, bit_length: 1}
- {name: Faulted_Mask, start_bit: 48, bit_length: 4}
- {name: Position_Valid_Mask, start_bit: 52, bit_length: 4}
- {name: Alive, start_bit: 56, bit_length: 4}
- {name: Firmware_Revision, start_bit: 60, bit_length: 4}
- name: T2G_Seat_Move_Motor_Status_302
frame_id: 0x302
role: feedback
minimum_payload_bytes: 8
signals:
- {name: Motor_Sub_ID, start_bit: 0, bit_length: 8}
- {name: Task_State, start_bit: 8, bit_length: 4}
- {name: Result, start_bit: 12, bit_length: 4}
- {name: Direction, start_bit: 16, bit_length: 2}
- {name: Active, start_bit: 18, bit_length: 1}
- {name: Position_Valid, start_bit: 19, bit_length: 1}
- {name: Near_Endpoint, start_bit: 20, bit_length: 1}
- {name: Far_Endpoint, start_bit: 21, bit_length: 1}
- {name: Stall, start_bit: 22, bit_length: 1}
- {name: Driver_Fault, start_bit: 23, bit_length: 1}
- {name: Motor_Sequence, start_bit: 24, bit_length: 16}
- {name: Value_X100, start_bit: 40, bit_length: 16}
- {name: Duty_Percent, start_bit: 56, bit_length: 8}
- name: T2G_Seat_Move_Diagnostic_303
frame_id: 0x303
role: feedback
minimum_payload_bytes: 8
signals:
- {name: Motor_Sub_ID, start_bit: 0, bit_length: 8}
- {name: Last_Motor_Event, start_bit: 8, bit_length: 4}
- {name: Fault_Flags, start_bit: 12, bit_length: 4}
- {name: Hall_Count, start_bit: 16, bit_length: 16}
- {name: Max_Hall_Count, start_bit: 32, bit_length: 16}
- {name: Hall_Speed_Half_Pps, start_bit: 48, bit_length: 8}
- {name: Retry_Count, start_bit: 56, bit_length: 4}
- {name: Diagnostic_Alive, start_bit: 60, bit_length: 4}
- name: T2G_Seat_Move_Current_Diagnostic_304
frame_id: 0x304
role: feedback
minimum_payload_bytes: 8
signals:
- {name: Motor_Sub_ID, start_bit: 0, bit_length: 8}
- {name: Current_Sample_Valid, start_bit: 8, bit_length: 1}
- {name: Current_Baseline_Valid, start_bit: 9, bit_length: 1}
- {name: High_Current, start_bit: 10, bit_length: 1}
- {name: Hall_Activity_Low, start_bit: 11, bit_length: 1}
- {name: Current_Calibrating, start_bit: 12, bit_length: 1}
- {name: Current_Raw, start_bit: 16, bit_length: 16}
- {name: Current_Baseline_Raw, start_bit: 32, bit_length: 16}
- {name: Stall_Current_Delta_Threshold_Raw, start_bit: 48, bit_length: 16}
- name: T2G_Seat_Dynamic_Mode_Status_306
frame_id: 0x306
role: feedback
minimum_payload_bytes: 8
signals:
- {name: Dynamic_Mode_ID, start_bit: 0, bit_length: 8}
- {name: Dynamic_State, start_bit: 8, bit_length: 8}
- {name: Dynamic_Phase, start_bit: 16, bit_length: 8}
- {name: Dynamic_Active_Mask, start_bit: 24, bit_length: 4}
- {name: Dynamic_Fault_Mask, start_bit: 28, bit_length: 4}
- {name: Dynamic_Cycle_Index, start_bit: 32, bit_length: 16}
- {name: Dynamic_Phase_Elapsed_Ms, start_bit: 48, bit_length: 16}
- name: T2G_Seat_Thermal_Current_Diagnostic_305
frame_id: 0x305
role: feedback
minimum_payload_bytes: 8
signals:
- {name: Fan_Current_Sample_Valid, start_bit: 0, bit_length: 1}
- {name: Heater_Current_Sample_Valid, start_bit: 1, bit_length: 1}
- {name: Fan_Running, start_bit: 8, bit_length: 1}
- {name: Heater_Level, start_bit: 9, bit_length: 2}
- {name: Fan_Current_Raw, start_bit: 16, bit_length: 16}
- {name: Heater_Current_Raw, start_bit: 32, bit_length: 16}
- {name: Fan_Adc_Error_Count, start_bit: 48, bit_length: 8}
- {name: Heater_Adc_Error_Count, start_bit: 56, bit_length: 8}