its-gen1/specs/sensor_fusion_interface_spe...

207 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 传感器融合接口规范
**版本**: v0.1
**日期**: 2026-03-07
**作者**: 孙大圣
**状态**: 草稿
---
## 1. 文档概述
### 1.1 目的
本文档定义商用车AI-Box Demo中传感器融合模块的接口规范确保MCU、SoC和传感器之间的数据交互标准化、实时性和可靠性。
### 1.2 适用范围
- MCU与SoC之间的传感器数据传输接口
- SoC内部传感器融合算法的输入/输出接口
- 传感器数据格式标准化定义
- 实时性要求和性能指标
### 1.3 参考文档
- 《商用车AI-Box Demo - 产品需求规格书》v2.0
- 《智能挂车AI-Box软件架构设计》
- IPCL通信协议规范
## 2. 系统架构上下文
### 2.1 传感器类型
根据PRD v2.0,系统需要支持以下传感器类型:
- **摄像头**: 视频流数据V4L2接口
- **温度传感器**: 环境温度监控
- **加速度计**: 车辆运动状态检测
- **GPS模块**: 位置信息获取
- **其他车载传感器**: 待确认具体型号
### 2.2 数据流向
```
传感器 → MCU采集 → SPI/UART传输 → SoC接收 → 传感器融合算法 → 应用层使用
```
## 3. MCU-SoC传感器数据接口
### 3.1 SPI接口规范主传输通道
#### 3.1.1 基本参数
- **传输速率**: ≥10Mbps
- **最大包长**: 512字节
- **校验机制**: CRC32校验
- **重传机制**: 最大3次重传
#### 3.1.2 命令格式
详细协议规范请参考 `spi_protocol_details.md` 文件。
#### 3.1.3 传感器ID定义
详细传感器数据格式请参考 `spi_protocol_details.md` 文件。
### 3.2 UART接口规范健康监控通道
#### 3.2.1 基本参数
- **传输速率**: ≥1Mbps
- **用途**: SoC健康状态报告 + 关键传感器状态
- **超时机制**: 3秒无响应触发GPIO复位
#### 3.2.2 状态报告格式
| 字段 | 长度 | 描述 |
|------|------|------|
| Header | 2字节 | 0xAA55 |
| CPU_Load | 1字节 | CPU负载百分比 |
| Memory_Usage | 1字节 | 内存使用百分比 |
| Temp_SoC | 2字节 | SoC温度 (℃ × 10) |
| Critical_Sensors | 4字节 | 关键传感器状态位图 |
| CRC16 | 2字节 | 校验码 |
## 4. SoC内部传感器融合接口
### 4.1 数据结构定义
#### 4.1.1 通用传感器数据结构
```c
typedef struct {
uint8_t sensor_id;
uint32_t timestamp_ms;
uint16_t data_length;
uint8_t* data;
uint32_t crc32;
} sensor_data_t;
```
#### 4.1.2 融合后数据结构
```c
typedef struct {
uint32_t fusion_timestamp_ms;
uint32_t valid_sensors_mask;
// 融合后的环境感知数据
float temperature_celsius;
int16_t acceleration[3];
double gps_position[3]; // lat, lon, alt
// 其他融合数据...
uint32_t fusion_confidence; // 融合置信度 (0-100)
} fused_sensor_data_t;
```
### 4.2 API接口定义
#### 4.2.1 数据接收接口
```c
// MCU数据接收回调
int on_sensor_data_received(sensor_data_t* raw_data);
// 传感器数据队列管理
int sensor_queue_push(sensor_data_t* data);
sensor_data_t* sensor_queue_pop(void);
```
#### 4.2.2 融合算法接口
```c
// 执行传感器融合
int perform_sensor_fusion(fused_sensor_data_t* output);
// 获取最新融合结果
const fused_sensor_data_t* get_latest_fusion_result(void);
```
## 5. 实时性要求
### 5.1 端到端延迟
| 传感器类型 | 最大延迟 | 说明 |
|------------|----------|------|
| 摄像头 | 100ms | 满足实时视频处理 |
| 温度传感器 | 500ms | 环境监控足够 |
| 加速度计 | 50ms | 车辆安全关键 |
| GPS | 1000ms | 位置更新频率 |
### 5.2 数据吞吐量
| 传感器类型 | 数据率 | 带宽需求 |
|------------|--------|----------|
| 摄像头 (720p) | 30fps | ~8Mbps |
| 温度传感器 | 1Hz | ~32bps |
| 加速度计 | 100Hz | ~4.8kbps |
| GPS | 1Hz | ~64bps |
## 6. 错误处理与恢复
### 6.1 错误类型
- **通信错误**: CRC校验失败、超时
- **数据错误**: 无效传感器ID、数据长度异常
- **硬件错误**: 传感器离线、MCU异常
### 6.2 恢复策略
- **通信错误**: 自动重传最多3次
- **数据错误**: 丢弃异常数据包,记录错误日志
- **硬件错误**: 触发系统健康检查必要时GPIO复位
## 7. 硬件抽象层(HAL)设计
### 7.1 HAL接口定义
```c
// MCU通信HAL
typedef struct {
int (*spi_send)(const uint8_t* data, size_t len);
int (*spi_receive)(uint8_t* buffer, size_t max_len);
int (*uart_send)(const uint8_t* data, size_t len);
int (*gpio_reset)(void);
} mcu_comm_hal_t;
// 传感器驱动HAL
typedef struct {
int (*init)(void);
int (*read_data)(sensor_data_t* data);
int (*get_status)(void);
} sensor_driver_hal_t;
```
### 7.2 SoC适配策略
- 采用硬件抽象层设计便于不同SoC型号适配
- 预留SoC型号确认后的配置接口
- 编译时条件编译支持不同硬件平台
## 8. 待确定事项
### 8.1 硬件相关
- [ ] **SoC具体型号确认** - 需要联系猪小杰确认PRD v2.0中的SoC选型
- [ ] **传感器具体型号和规格确认** - 需要获取详细的传感器数据手册
- [ ] **SPI/UART引脚分配确认** - 需要硬件原理图确认
### 8.2 软件相关
- [ ] **传感器融合算法详细规格** - 需要与算法团队确认融合策略
- [ ] **实时操作系统(RTOS)选择确认** - Linux vs RTOS决策
- [ ] **内存分配策略确认** - 共享内存池大小和管理策略
## 9. 验收标准
### 9.1 功能验收
- [ ] 所有传感器数据能够正确传输和解析
- [ ] 传感器融合算法能够正常工作
- [ ] 错误处理机制有效
### 9.2 性能验收
- [ ] 端到端延迟满足第5章节要求
- [ ] 系统资源占用符合预期
- [ ] 在-40℃~85℃环境下稳定运行
## 10. 后续工作计划
- [ ] 3月8日: 与猪小杰确认传感器具体规格
- [ ] 3月9日: 完善详细数据格式和算法接口
- [ ] 3月10日: 完成最终版接口规范并提交评审