105 lines
4.9 KiB
YAML
Executable File
105 lines
4.9 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_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}
|