feat: add ASSI lamp control and CAN protocol docs

This commit is contained in:
shenlefengnai-rgb
2026-09-18 21:42:28 +08:00
parent 04da25e2d1
commit be4f167b83
6 changed files with 236 additions and 62 deletions
+11 -10
View File
@@ -99,20 +99,21 @@
<p>所有字段均为小端序(低字节在前)。板卡主动上报的帧会分别发到 CAN1 和 CAN2。</p>
<table>
<tr><th style="width:13%">CAN ID</th><th style="width:19%">名称</th><th style="width:22%">方向 / 时机</th><th>数据定义</th></tr>
<tr><td><code>0x100</code></td><td>心跳</td><td>板卡发送,每 1 s</td><td><code>A1 01 seq_L seq_H uptime_0..3</code>;板号 A1、协议版本 1、序号、运行时间 ms。</td></tr>
<tr><td><code>0x102</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>0x103</code></td><td>四路频率</td><td>板卡发送,每 500 ms</td><td>4 个 <code>uint16</code>,单位 Hz;依次为 PA0、PA2、PA6、PB14。</td></tr>
<tr><td><code>0x321</code></td><td>DAC 设置</td><td>外部发送给板卡</td><td><code>[DAC 编号][mV_L][mV_H]</code>,编号仅允许 1 或 2。</td></tr>
<tr><td><code>0x322</code></td><td>DAC 应答</td><td>板卡发送,设置后</td><td><code>[结果][DAC 编号][mV_L][mV_H]</code>;结果 1 成功,0 失败。</td></tr>
<tr><td><code>0x330</code></td><td>15 路状态</td><td>板卡发送,上电或状态变化</td><td>状态 <code>uint16</code>、变化掩码 <code>uint16</code>、时间戳 <code>uint32 ms</code>。</td></tr>
<tr><td><code>0x6A0</code></td><td>心跳</td><td>板卡发送,每 1 s</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>板卡发送,每 500 ms</td><td>4 个 <code>uint16</code>,单位 Hz;依次为 PA0、PA2、PA6、PB14。</td></tr>
<tr><td><code>0x6A3</code></td><td>DAC 设置</td><td>外部发送给板卡</td><td><code>[DAC 编号][mV_L][mV_H]</code>,编号仅允许 1 或 2。</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>
</table>
<h3>DAC 设置示例</h3>
<p>电压 V 到 CAN 数据的换算:<code>mV = round(V × 1000)</code>,随后拆为低字节和高字节。</p>
<pre>DAC1 输出 3.000 V:ID = 0x321,DLC = 3,DATA = 01 B8 0B
DAC2 输出 1.140 V:ID = 0x321,DLC = 3,DATA = 02 74 04
<pre>DAC1 输出 3.000 V:ID = 0x6A3,DLC = 3,DATA = 01 B8 0B
DAC2 输出 1.140 V:ID = 0x6A3,DLC = 3,DATA = 02 74 04
应答示例(DAC1 成功设为 3.000 V):ID = 0x322,DATA = 01 01 B8 0B</pre>
应答示例(DAC1 成功设为 3.000 V):ID = 0x6A4,DATA = 01 01 B8 0B</pre>
<div class="notice">DAC 输出范围为 0–5000 mV。软件中 DAC1、DAC2 到板级 MC_L、MC_R 的实际对应关系应以实物测量为准。</div>
<h2>4. ADC 电压说明</h2>
@@ -124,7 +125,7 @@ DAC2 输出 1.140 V:ID = 0x321,DLC = 3,DATA = 02 74 04
<pre>DAC1 1.234
DAC2 2500
D1 2.5V</pre>
<p>命令不区分大小写,支持伏特小数或毫伏整数。设置完成后串口会回显结果,CAN1/CAN2 同时发送 <code>0x322</code> 应答。</p>
<p>命令不区分大小写,支持伏特小数或毫伏整数。设置完成后串口会回显结果,CAN1/CAN2 同时发送 <code>0x6A4</code> 应答。</p>
<h2>6. 频率输入说明</h2>
<p>频率使用相邻上升沿时间差计算;连续 1 秒没有新边沿时,该通道输出 0 Hz。当前版本只测频率,不输出占空比。</p>