From 7bc2d9f1eaaf19814957037bd097cd879cbf4cbf Mon Sep 17 00:00:00 2001 From: shenlefengnai-rgb Date: Mon, 5 Oct 2026 19:54:32 +0800 Subject: [PATCH] docs: synchronize README with current firmware --- readme.md | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/readme.md b/readme.md index ef550ed..410f16b 100644 --- a/readme.md +++ b/readme.md @@ -6,7 +6,7 @@ - [固件使用说明](固件使用说明.md):功能、串口/CAN 协议、编译、下载与现场排障。 - [CAN 数据库(DBC)](SDC_ACQ_DAC.dbc):CAN1/CAN2 使用的 11 位标准帧定义。 -- [固件交付说明 PDF](SDC-ACQ_DAC_固件交付说明.pdf):可直接对外发送的简要说明。 +- [CAN 报文说明 PDF](output/pdf/CAN报文说明表.pdf):可直接对外发送的 CAN 协议简表。 - `A11_F407_SDC_ACQ_DAC_CubeMX/`:CubeMX 工程与应用源代码。 构建目录和 `.bin`、`.elf`、`.hex` 等编译产物不纳入版本库;请根据工程重新生成。 @@ -17,7 +17,7 @@ - 使用 STM32F407VET6 作为主控,封装为 LQFP100。 - 提供 15 路 SDC 电平输入采集,方便一次性读取一组外部状态信号。 -- 提供 4 路转速或脉冲输入捕获,用 MCU 定时器测频、测周期或读取 PWM。 +- 当前固件提供 2 路轮速输入捕获:左前 `PA0`、右前 `PA6`,直接换算为 m/s。 - 提供 2 路 CAN 通信接口,面向车载或工业现场总线。 - 提供 2 路 DAC/模拟输出,网表中为 `MC_L`、`MC_R`。 - 提供 I2C 接口,并通过电平转换兼容 3.3 V MCU 侧和 5 V 外设侧。 @@ -46,7 +46,7 @@ 1. 必需接口先保留:`PA13/SWDIO`、`PA14/SWCLK`、`NRST`、`BOOT0`、`PB2/BOOT1`、HSE、`VCAP_1/2`、电源和模拟电源脚不参与普通功能分配。 2. 同类信号尽量靠近:CAN1/CAN2 放在 `PB5/PB6/PB8/PB9` 附近,便于两个 CAN 收发器并排布置。 3. 大量状态输入尽量集中到同一端口:15 路 SDC 输入集中使用 `PD0`~`PD14`,软件可以直接读取 `GPIOD->IDR` 后按位解析。 -4. 转速/脉冲输入优先选定时器捕获脚:`PA0/TIM5_CH1`、`PA2/TIM9_CH1`、`PA6/TIM3_CH1`、`PB14/TIM12_CH1` 分别承担 4 路输入。 +4. 当前轮速固件仅启用 `PA0/TIM5_CH1`(左前)和 `PA6/TIM3_CH1`(右前);原理图上的 `PA2/TIM9_CH1`、`PB14/TIM12_CH1` 可保留作后续扩展,但不参与当前采集和 CAN 上报。 5. I2C 使用相邻且 5 V 容忍的 `PB10/PB11`,便于布线并适配外部上拉和电平转换。 6. `PB0/PB1` 保留给 ADC 相关功能,其中 `PB0/ADC1_IN8` 用于 24 V 分压检测,`PB1/ADC1_IN9` 可作备用模拟量。 7. 调试 LED 放在 `PE0/PE1`,释放 `PB0/PB1` 给模拟输入。 @@ -63,18 +63,16 @@ 设计时需要特别确认外部 SDC 输入电平、有效极性、三极管反相关系以及默认上下拉状态,避免上电阶段误判。 -### 4.2 四路转速/脉冲捕获 +### 4.2 双路轮速采集 -四路转速输入对应网表中的: +当前固件只使用以下两路定时器输入捕获: | 外部信号 | MCU 网络 | MCU 引脚 | |---|---|---| | `ZQ_OUT` | `TIM5_CH1` | `PA0` | -| `ZH_OUT` | `TIM9_CH1` | `PA2` | | `YQ_OUT` | `TIM3_CH1` | `PA6` | -| `YH_OUT` | `TIM12_CH1` | `PB14` | -这些脚都可配置为定时器输入捕获。若只测频率,可以在捕获中断或 DMA 中记录相邻边沿时间差;若要测 PWM 高低电平宽度,应结合定时器通道和输入极性配置进一步确认。 +固件由相邻上升沿的时间差得到方波频率,再按每圈 49 个方波、轮周长 1414 mm 换算:`轮速(m/s) = 频率(Hz) × 1.414 / 49`。超过 1 秒没有边沿时轮速归零。`PA2/TIM9_CH1` 和 `PB14/TIM12_CH1` 当前未启用。 ### 4.3 双 CAN 接口 @@ -143,10 +141,9 @@ MCU 侧 I2C 为 `PB10/PB11`,网络名为 `I2C_SCL_33`、`I2C_SDA_33`;5 V 侧 | 功能 | CubeMX/固件配置 | |---|---| | SDC 输入 | `PD0`~`PD14` 配置为 GPIO 输入,按实际硬件极性设置上下拉 | -| 转速 1 | `PA0` 配置为 `TIM5_CH1` 输入捕获 | -| 转速 2 | `PA2` 配置为 `TIM9_CH1` 输入捕获 | -| 转速 3 | `PA6` 配置为 `TIM3_CH1` 输入捕获 | -| 转速 4 | `PB14` 配置为 `TIM12_CH1` 输入捕获 | +| 左前轮速 | `PA0` 配置为 `TIM5_CH1` 输入捕获 | +| 右前轮速 | `PA6` 配置为 `TIM3_CH1` 输入捕获 | +| 预留脉冲输入 | `PA2/TIM9_CH1`、`PB14/TIM12_CH1` 当前不启用 | | CAN1 | `PB8/PB9` 配置为 `CAN1_RX/TX` | | CAN2 | `PB5/PB6` 配置为 `CAN2_RX/TX`,固件中同时注意 CAN1 时钟依赖 | | I2C | `PB10/PB11` 配置为 `I2C2_SCL/SDA`,开漏,外部上拉 | @@ -154,7 +151,18 @@ MCU 侧 I2C 为 `PB10/PB11`,网络名为 `I2C_SCL_33`、`I2C_SDA_33`;5 V 侧 | 串口 | `PA9/PA10` 配置为 `USART1_TX/RX` | | LED | `PE0/PE1` 配置为 GPIO 输出 | -## 7. 原理图复核清单 +## 7. 当前 CAN 上报摘要 + +CAN1、CAN2 都使用 500 kbit/s、11 位标准帧,并发送相同的主动上报数据。 + +| ID | 内容 | 周期 / 编码 | +|---:|---|---| +| `0x6A2` | 双路轮速 | 每 20 ms;Byte0–1 左前 PA0、Byte2–3 右前 PA6;`uint16` 小端,原始单位 mm/s,物理量纲 `0.001 m/s` | +| `0x6A6` | 15 路状态 | 每 1 s;`PD0`~`PD14` 对应 bit0~bit14,随后是本秒内累积的变化掩码和 `uint32 ms` 时间戳 | + +完整帧定义以 [DBC](SDC_ACQ_DAC.dbc) 为准。 + +## 8. 原理图复核清单 - STM32 所有 `VDD/VSS/VDDA/VSSA/VREF+/VCAP` 是否按数据手册完整连接。 - `BOOT0`、`BOOT1`、`NRST` 是否有明确默认状态。