feat: report wheel speed and GPIO state periodically
This commit is contained in:
@@ -76,8 +76,8 @@
|
||||
<h2>1. 功能概览</h2>
|
||||
<table>
|
||||
<tr><th style="width:20%">功能</th><th>当前实现</th></tr>
|
||||
<tr><td>状态采集</td><td>采集 PD0–PD14 共 15 路数字输入。上电和任一输入变化时,向 CAN1、CAN2 发送完整状态与变化掩码。</td></tr>
|
||||
<tr><td>频率采集</td><td>采集 PA0、PA2、PA6、PB14 的上升沿频率,每 20 ms 通过 CAN 输出;串口每 500 ms 汇总输出。</td></tr>
|
||||
<tr><td>状态采集</td><td>采集 PD0–PD14 共 15 路数字输入。每 1 秒向 CAN1、CAN2 发送完整状态与该秒内累积的变化掩码。</td></tr>
|
||||
<tr><td>轮速采集</td><td>仅采集左前 PA0、右前 PA6 的上升沿;以每圈 49 个方波、轮周长 1414 mm 换算为 m/s,每 20 ms 通过 CAN 输出。</td></tr>
|
||||
<tr><td>电压采集</td><td>ADC1_IN8(PB0)测量外部经分压后的输入;对外输出分压前、已标定且滤波后的电压。</td></tr>
|
||||
<tr><td>CAN</td><td>CAN1 与 CAN2 均为 500 kbit/s、11 位标准数据帧,并使用相同协议。</td></tr>
|
||||
<tr><td>DAC</td><td>通过 I2C2 控制两颗 MCP4725,接收 CAN 命令或串口命令设置 0–5.000 V 输出。</td></tr>
|
||||
@@ -88,7 +88,7 @@
|
||||
<table>
|
||||
<tr><th>接口</th><th>MCU 引脚 / 外设</th><th>说明</th></tr>
|
||||
<tr><td>15 路状态输入</td><td>PD0–PD14 / EXTI</td><td>bit0 对应 PD0,bit14 对应 PD14。</td></tr>
|
||||
<tr><td>频率输入</td><td>PA0/TIM5、PA2/TIM9、PA6/TIM3、PB14/TIM12</td><td>上升沿输入捕获。</td></tr>
|
||||
<tr><td>轮速输入</td><td>左前 PA0/TIM5、右前 PA6/TIM3</td><td>上升沿输入捕获。</td></tr>
|
||||
<tr><td>电压输入</td><td>PB0 / ADC1_IN8</td><td>报告值为分压前电压,单位 mV。</td></tr>
|
||||
<tr><td>CAN1 / CAN2</td><td>PB8/PB9;PB5/PB6</td><td>分别为 RX/TX。</td></tr>
|
||||
<tr><td>DAC I2C</td><td>PB10/PB11 / I2C2</td><td>DAC1 地址 0x61,DAC2 地址 0x60(7 位地址)。</td></tr>
|
||||
@@ -101,11 +101,11 @@
|
||||
<tr><th style="width:13%">CAN ID</th><th style="width:19%">名称</th><th style="width:22%">方向 / 时机</th><th>数据定义</th></tr>
|
||||
<tr><td><code>0x6A0</code></td><td>心跳</td><td>板卡发送,每 100 ms</td><td><code>A1 01 seq_L seq_H uptime_0..3</code>;板号 A1、协议版本 1、序号、运行时间 ms。</td></tr>
|
||||
<tr><td><code>0x6A1</code></td><td>输入电压</td><td>板卡发送,每 500 ms</td><td><code>uint16</code>,单位 mV。例如 <code>90 2F</code> = 0x2F90 = 12176 mV = 12.176 V。</td></tr>
|
||||
<tr><td><code>0x6A2</code></td><td>四路频率</td><td>板卡发送,每 20 ms</td><td>4 个 <code>uint16</code>,单位 Hz;依次为 PA0、PA2、PA6、PB14。</td></tr>
|
||||
<tr><td><code>0x6A2</code></td><td>双路轮速</td><td>板卡发送,每 20 ms</td><td>DLC=4;左前 PA0、右前 PA6 各一个 <code>uint16</code>,原始单位 mm/s(DBC 物理量纲 <code>0.001 m/s</code>)。按每圈 49 方波、轮周长 1414 mm 换算。</td></tr>
|
||||
<tr><td><code>0x6A3</code></td><td>DAC 设置</td><td>外部发送给板卡</td><td><code>[DAC 编号][mV_L][mV_H]</code>,编号仅允许 1 或 2;每路 100 ms 未续帧归零。</td></tr>
|
||||
<tr><td><code>0x6A4</code></td><td>DAC 应答</td><td>板卡发送,设置后</td><td><code>[结果][DAC 编号][mV_L][mV_H]</code>;结果 1 成功,0 失败。</td></tr>
|
||||
<tr><td><code>0x6A5</code></td><td>ASSI RGB 灯控</td><td>外部发送给板卡</td><td><code>byte0</code>:0=关、1=黄常亮、2=黄闪、3=蓝闪、4=蓝常亮。</td></tr>
|
||||
<tr><td><code>0x6A6</code></td><td>15 路状态</td><td>板卡发送,上电或状态变化</td><td>状态 <code>uint16</code>、变化掩码 <code>uint16</code>、时间戳 <code>uint32 ms</code>。</td></tr>
|
||||
<tr><td><code>0x6A6</code></td><td>15 路状态</td><td>板卡发送,每 1 s</td><td>状态 <code>uint16</code>、变化掩码 <code>uint16</code>、时间戳 <code>uint32 ms</code>;变化掩码在本秒内累积。</td></tr>
|
||||
</table>
|
||||
|
||||
<h3>DAC 设置示例</h3>
|
||||
@@ -118,7 +118,7 @@ DAC2 输出 1.140 V:ID = 0x6A3,DLC = 3,DATA = 02 74 04
|
||||
|
||||
<h2>4. ADC 电压说明</h2>
|
||||
<p>ADC 输出为分压前输入电压,换算使用 100 kΩ / 30 kΩ 分压参数,并采用实测标定系数 <code>12300 / 11656</code>。单次报告包含 16 次 ADC 平均,随后对最近 4 次报告做移动平均;输出刷新周期为 500 ms,滤波时间约 2 秒。</p>
|
||||
<pre>串口示例:ADC=12300mV PWM=10,0,0,0Hz</pre>
|
||||
<pre>串口示例:ADC=12300mV WheelSpeed=LF:0.289m/s RF:0.577m/s</pre>
|
||||
|
||||
<h2>5. 串口使用</h2>
|
||||
<p>串口参数:115200、8 数据位、1 停止位、无校验、无流控。USB-TTL 应交叉连接:PA9/TX → 转换器 RX,PA10/RX → 转换器 TX,并连接公共地。</p>
|
||||
|
||||
Reference in New Issue
Block a user