# MCU-ARM 接口文档清单与明细（20260513 版）

> 生成时间: 2026-05-14
> 数据来源: docs/MCU_ARM_Reference/20260513/（含从 old 复制的 MCU升级-Update.xlsx）
> 交叉验证: test_Serial/all_interfaces.json

---

## 一、接口文档清单

| 序号 | 文档名称 | 版本 | 状态 | 说明 |
|------|----------|------|------|------|
| 1 | `MCU-ARM.xlsx` | v2→去后缀 | ✅ 已更新 | MCU-ARM 通信协议总览（格式定义、MsgType、各域汇总） |
| 2 | `Public.xlsx` | v2→去后缀 | ✅ 已更新 | Public 域接口定义（车辆信号） |
| 3 | `Radio.xlsx` | v2→去后缀 | ✅ 已更新 | Radio 域接口定义（收音机） |
| 4 | `MCU升级-Update.xlsx` | v2 | ✅ 已从 old 复制 | MCU OTA 升级协议，从 old 目录复制补全 |

**注意**: 新版文档仅文件命名去掉了 `_v2` 后缀，协议内容本身无实质变更。Update 域文档沿用旧版。

---

## 二、接口总览

### 2.1 统计汇总

| 域 (Domain) | 域代码 | M2A (MCU→ARM) | A2M (ARM→MCU) | 合计 | 文档来源 |
|-------------|--------|---------------|---------------|------|----------|
| Public | `0x01` | 26 | 30 | **56** | Public.xlsx |
| Radio | `0x05` | 5 | 7 | **12** | Radio.xlsx |
| Update | `0x07` | 3 | 7 | **10** | MCU升级-Update.xlsx (旧版) |
| **合计** | — | **34** | **44** | **78** | — |

### 2.2 与 all_interfaces.json 交叉验证

| 域 | Excel 解析数 | JSON 定义数 | 差异 | 说明 |
|------|-------------|------------|------|------|
| Public M2A | 26 | 26 | +0 | 一致 |
| Public A2M | 30 | 29 | +1 | Excel 中 `95h` 拆分为 `SET_TOT_MILES` 和 `SET_WORK_MODE` 两个条目 |
| Radio M2A | 5 | 5 | +0 | 一致 |
| Radio A2M | 7 | 7 | +0 | 一致 |
| Update M2A | 3 | 3 | +0 | 一致 |
| Update A2M | 7 | 7 | +0 | 一致 |
| **合计** | **78** | **77** | **+1** | Excel 中 Public `95h` 多一个子条目 |

---

## 三、Public 域接口明细

> 域代码: `0x01` | 方向: M2A（MCU→ARM） | 共 **26** 个接口

| 序号 | 命令字 | 接口名称 | 方向 | 参数个数 | 说明 |
|------|--------|----------|------|----------|------|
| 1 | `01h` | PUBLIC_M2A_LINE_DETECT | M->A | 2 | MCU发送给ARM的ACC、倒车、刹车等检测线状态信息 |
| 2 | `02h` | PUBLIC_M2A_MCU_VERSION | M->A | 1 | MCU发送给ARM的版本信息 |
| 3 | `03h` | PUBLIC_M2A_TIME_INFO | M->A | 7 |  |
| 4 | `04h` | PUBLIC_M2A_REQ_PWR_OFF | M->A | 1 |  |
| 5 | `05h` | PUBLIC_M2A_SYS_STATUS | M->A | 1 |  |
| 6 | `06h` | PUBLIC_M2A_KEY_PWR_STATUS | M->A | 1 |  |
| 7 | `07h` | PUBLIC_M2A_BP_PWR_ABNORMAL | M->A | 1 |  |
| 8 | `08h` | PUBLIC_M2A_TFT_DUTY_CYCLE | M->A | 1 |  |
| 9 | `09h` | PUBLIC_M2A_BATT_INFO | M->A | 1 |  |
| 10 | `0Ah` | PUBLIC_M2A_CAR_SPEED | M->A | 3 |  |
| 11 | `0Bh` | PUBLIC_M2A_MILEAGE | M->A | 25 |  |
| 12 | `0Ch` | PUBLIC_M2A_SWITCH_STATUS | M->A | 1 |  |
| 13 | `0Dh` | PUBLIC_M2A_VOLTAGE | M->A | 1 |  |
| 14 | `0Eh` | PUBLIC_M2A_FUEL_CAL | M->A | 2 |  |
| 15 | `0Fh` | PUBLIC_M2A_ENCRYPT_STATUS | M->A | 1 |  |
| 16 | `10h` | PUBLIC_M2A_VEHICLE_CFG | M->A | 1 |  |
| 17 | `11h` | PUBLIC_M2A_INS_FUEL_CONSUME | M->A | 1 |  |
| 18 | `12h` | PUBLIC_M2A_MCU_HARD_VERSION | M->A | 1 | MCU发送硬件版本信息给ARM |
| 19 | `13h` | PUBLIC_M2A_VERSION_STRING | M->A | 2 | MCU发送字符串信息给ARM |
| 20 | `40h` | PUBLIC_M2A_FACTORY_CMD | M->A | 1 | MCU发送工厂测试命令 |
| 21 | `41h` | PUBLIC_M2A_FACTORY_CMD_FROM_CAN | M->A | 1 | MCU发送CAN线的工厂测试命令 |
| 22 | `42h` | PUBLIC_M2A_COM_TEST | M->A | 1 | MCU发送通信测试内容 |
| 23 | `43h` | PUBLIC_M2A_TEST_INFO | M->A | 2 | MCU发送测试信息给ARM |
| 24 | `9Ch` | PUBLIC_M2A_COM_TEST_RESPONSE | M->A | 1 | ARM发送通信测试内容 |
| 25 | `9Dh` | PUBLIC_M2A_STOP_CHARGE | M->A | 1 | ARM发送停止充电消息 |
| 26 | `9Eh` | PUBLIC_M2A_RUN_NORMALLY | M->A | 1 | ARM正常启动 |

> 方向: A2M（ARM→MCU） | 共 **30** 个接口

| 序号 | 命令字 | 接口名称 | 方向 | 参数个数 | 说明 |
|------|--------|----------|------|----------|------|
| 1 | `81h` | PUBLIC_A2M_REQ_INIT_INFO | A->M | 1 |  |
| 2 | `82h` | PUBLIC_A2M_REQ_MUTE | A->M | 1 | ARM要求MCU静音 |
| 3 | `83h` | PUBLIC_A2M_TIME_INFO | A->M | 6 |  |
| 4 | `84h` | PUBLIC_A2M_TFT_DUTY_CYCLE | A->M | 1 |  |
| 5 | `85h` | PUBLIC_A2M_REQ_SLEEP | A->M | 1 |  |
| 6 | `86h` | PUBLIC_A2M_REQ_TYPE_INFO | A->M | 1 |  |
| 7 | `87h` | PUBLIC_A2M_REQ_ARM_RESET | A->M | 1 |  |
| 8 | `88h` | PUBLIC_A2M_SET_TFT_ON_OFF | A->M | 1 | ARM设置屏背光开关 |
| 9 | `89h` | PUBLIC_A2M_FACTORY_RESTORE | A->M | 1 |  |
| 10 | `8Ah` | PUBLIC_A2M_SET_AMP_PWR_ON_OFF | A->M | 1 | ARM设置外部功放电源开关 |
| 11 | `8Bh` | PUBLIC_A2M_SET_KEY_BACKLIGHT_DUTY_CYCLE | A->M | 1 | ARM发送按键背光百分比给MCU |
| 12 | `8Ch` | PUBLIC_A2M_SET_SUB_MUTE_ON_OFF | A->M | 1 | ARM设置重低音使能开关 |
| 13 | `8Dh` | PUBLIC_A2M_KEY_PWR_STATUS | A->M | 1 |  |
| 14 | `8Eh` | PUBLIC_A2M_SET_REVERSE | A->M | 1 |  |
| 15 | `8Fh` | PUBLIC_A2M_SET_SPEED_RATIO | A->M | 1 |  |
| 16 | `90h` | PUBLIC_A2M_REQ_ARM_FORCE_UPGRADE | A->M | 1 | ARM请求执行强升 |
| 17 | `91h` | PUBLIC_A2M_REQ_TRIP_CLEAR | A->M | 1 |  |
| 18 | `92h` | PUBLIC_A2M_SET_SWITCH_STATUS | A->M | 1 | ARM设置某些使能开关 |
| 19 | `93h` | PUBLIC_A2M_BT_ERROR_CODE | A->M | 1 | ARM报告BT错误 |
| 20 | `94h` | PUBLIC_A2M_GPS_INFO | A->M | 1 | ARM发送GPS信息 |
| 21 | `95h` | PUBLIC_A2M_SET_TOT_MILES | A->M | 4 |  |
| 22 | `95h` | PUBLIC_A2M_SET_WORK_MODE | A->M | 1 |  |
| 23 | `96h` | PUBLIC_A2M_SET_FUEL_CAL | A->M | 1 |  |
| 24 | `97h` | PUBLIC_A2M_SET_VEHICLE_CFG | A->M | 1 |  |
| 25 | `98h` | PUBLIC_A2M_REQ_VEHICLE_CFG | A->M | 1 |  |
| 26 | `99h` | PUBLIC_A2M_ARM_SW_VERSION | A->M | 2 | ARM发送软件版本号 |
| 27 | `9Ah` | PUBLIC_A2M_ARM_HW_VERSION | A->M | 2 |  |
| 28 | `9Bh` | PUBLIC_A2M_AUTO_CLEAR_METER_TYPE | A->M | 1 |  |
| 29 | `A0h` | PUBLIC_A2M_RESPONSE_FACTORY_CMD | A->M | 1 | ARM回复工厂测试命令 |
| 30 | `A1h` | PUBLIC_A2M_RESPONSE_TEST_CMD | A->M | 1 | ARM回复测试命令 |

---

## 四、Radio 域接口明细

> 域代码: `0x05` | 方向: M2A（MCU→ARM） | 共 **5** 个接口

| 序号 | 命令字 | 接口名称 | 方向 | 参数个数 | 说明 |
|------|--------|----------|------|----------|------|
| 1 | `01h` | RADIO_M2A_FREQ | M->A | 7 | MCU将当前收音频率信息发送给ARM |
| 2 | `02h` | RADIO_M2A_PS_PTY | M->A | 2 | MCU将RDS相关的PS和PTY信息发送给ARM |
| 3 | `03h` | RADIO_M2A_RT | M->A | 1 | MCU将RDS相关的RT信息发送给ARM |
| 4 | `04h` | RADIO_M2A_TA_PTY_TIPS | M->A | 1 | MCU将RT和PTY提示字符发给ARM |
| 5 | `05h` | RADIO_M2A_WORK_STATUS | M->A | 1 | MCU将收音机状态发送给ARM |

> 方向: A2M（ARM→MCU） | 共 **7** 个接口

| 序号 | 命令字 | 接口名称 | 方向 | 参数个数 | 说明 |
|------|--------|----------|------|----------|------|
| 1 | `81h` | RADIO_A2M_SEEK_MODE | A->M | 2 | ARM发送收音搜索模式给MCU |
| 2 | `82h` | RADIO_A2M_SWITCH_ON_OFF | A->M | 2 | ARM发送开关状态给MCU |
| 3 | `83h` | RADIO_A2M_SET_BAND | A->M | 3 | ARM将收音波段发送给MCU |
| 4 | `84h` | RADIO_A2M_SET_FREQ | A->M | 2 | ARM将收音频率发送给MCU |
| 5 | `85h` | RADIO_A2M_FREQ_RANGE | A->M | 11 | ARM将频率范围及步进值发送给MCU |
| 6 | `86h` | RADIO_A2M_SET_ANT_PWR_ON_OFF | A->M | 1 | ARM设置收音天线灯电源开关 |
| 7 | `87h` | RADIO_A2M_SET_RADIO_REG_MUTE | A->M | 0 | ARM设置收音寄存器MUTE |

---

## 五、Update 域接口明细

> 域代码: `0x07` | 文档来源: `20260513/MCU升级-Update.xlsx`（从 old 复制）

> 方向: M2A（MCU→ARM） | 共 **3** 个接口

| 序号 | 命令字 | 接口名称 | 方向 | 参数个数 | 说明 |
|------|--------|----------|------|----------|------|
| 1 | `01h` | UPDATE_M2A_UPDATE_ACK | M->A | 1 | MCU对ARM下发升级指令的ACK回复类型 |
| 2 | `02h` | UPDATE_M2A_UPDATE_LEN | M->A | 2 | MCU发送升级包长度给ARM |
| 3 | `03h` | UPDATE_M2A_UPDATE_IND_AQUIRE | M->A | 2 | MCU向ARM请求对应索引的升级包 |

> 方向: A2M（ARM→MCU） | 共 **7** 个接口

| 序号 | 命令字 | 接口名称 | 方向 | 参数个数 | 说明 |
|------|--------|----------|------|----------|------|
| 1 | `80h` | UPDATE_A2M_UPDATE_REQ | A->M | 3 | ARM启动升级请求 |
| 2 | `81h` | UPDATE_A2M_UPDATE_BEGIN | A->M | 5 | ARM启动MCU升级 |
| 3 | `82h` | UPDATE_A2M_UPDATE_DATA | A->M | 3 | ARM下发MCU升级数据 |
| 4 | `83h` | UPDATE_A2M_UPDATE_END | A->M | 2 | ARM结束MCU升级 |
| 5 | `84h` | UPDATE_A2M_BOOT_UPDATE_BEGIN | A->M | 5 | ARM启动MCU BOOT升级 |
| 6 | `85h` | UPDATE_A2M_BOOT_UPDATE_DATA | A->M | 3 | ARM下发MCU BOOT升级数据 |
| 7 | `86h` | UPDATE_A2M_BOOT_UPDATE_CHECKSUM | A->M | 1 | ARM发送MCU BOOT校验 |

---

## 六、全接口索引表

| 域代码 | 域名称 | M2A 数 | A2M 数 | 合计 | 文档来源 |
|--------|--------|--------|--------|------|----------|
| `0x01` | Public | 26 | 30 | 56 | 20260513/Public.xlsx |
| `0x05` | Radio | 5 | 7 | 12 | 20260513/Radio.xlsx |
| `0x07` | Update | 3 | 7 | 10 | 20260513/MCU升级-Update.xlsx（从 old 复制） |
| **合计** | — | **34** | **44** | **78** | — |

---

## 七、问题与建议

| 编号 | 问题 | 建议 |
|------|------|------|
| 1 | 新版 `20260513` 目录缺少 `MCU升级-Update.xlsx` | 已从 `old/` 目录复制补全，建议与客户确认版本一致性 |
| 2 | Public `95h` Excel 中拆分为两个条目（`SET_TOT_MILES` + `SET_WORK_MODE`） | 建议与客户确认 `SET_WORK_MODE` 是否为独立接口，或仅为 `SET_TOT_MILES` 的参数说明 |
| 3 | 文件名去掉了 `_v2` 后缀 | 确认版本管理策略，建议文档内保留版本号以便追溯 |
