207 lines
5.8 KiB
Markdown
207 lines
5.8 KiB
Markdown
# 传感器融合接口规范
|
||
|
||
**版本**: 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日: 完成最终版接口规范并提交评审 |