版本协议

CC BY-NC 4.0

标签
专业版
#第11届立创电赛#基于CH584的一对多无线串口模块

创建时间:1周前

10 0

描述

<h1><strong>基于 <code>WCH CH584/CH585</code> 的 <code>2.4G</code> 星型无线链路模块</strong></h1> <h2><strong>1. 项目描述</strong></h2> <p>本项目为一个可插拔的无线链路模块。 项目核心职责如下:</p> <ul> <li>提供单跳 <code>2.4G</code> 无线链路接入能力</li> <li>提供 <code>1:1</code> 和 <code>1:N</code> 两类工作模式</li> <li>提供地址化、分组化、时隙化的数据转发能力</li> <li>对链路层传输可靠性负责</li> <li>通过统一控制面向上位机和外部 MCU 提供配置、状态和管理能力</li> </ul> <p>项目默认不承担以下职责:</p> <ul> <li>不解析业务语义</li> <li>不保证应用层事务一致性</li> <li>不实现多跳自组网</li> <li>不使用 <code>AT</code> 指令作为正式对外接口</li> </ul> <h2>2. 模块拆分</h2> <h3>2.1 StarBus 模式</h3> <p>负责 <code>1:N</code> 一主多从组网模式。</p> <p>职责如下:</p> <ul> <li>主站建网与调度</li> <li>从站入网、挂起、恢复、离线处理</li> <li>超帧与时隙调度</li> <li>单播、组播、广播的数据转发</li> <li>控制面可靠传输</li> <li>周期数据面的汇总确认</li> </ul> <p>设计约束如下:</p> <ul> <li>正式链路模式使用 <code>LLE_MODE_BASIC</code>(不启用ch584的自动ack)</li> <li>所有 <code>TX/RX/IDLE</code> 切换由协议/调度层显式控制</li> <li>组网模式下即使只有 <code>1</code> 个在线节点,也必须保留 <code>join/resume</code> 等待窗口</li> </ul> <h3>2.2 RPipe 模式</h3> <p>负责 <code>1:1</code> 直连透传模式。</p> <p>职责如下:</p> <ul> <li>单播可靠透传</li> <li>低交互路径的数据转发</li> <li>面向“无线串口替代线缆”的快速链路</li> </ul> <p>设计约束如下:</p> <ul> <li>当前实现以直连块级门控与可选可靠传输为主</li> <li>可启用 <code>ack/retry/seq/dedup</code></li> <li>不承担 <code>1:N</code> 时隙调度职责</li> </ul> <h2>3. 系统组成</h2> <p>系统由以下部分组成:</p> <ol> <li>网关模块 <ul> <li>连接 <code>PC</code></li> <li>负责建网、调度、收集节点数据、下发控制命令</li> <li>当前对 PC 的主接口为 <code>USB CDC ACM</code></li> </ul></li> <li>节点模块 <ul> <li>连接本地 <code>PCB/MCU</code></li> <li>负责接入组网、按调度收发数据</li> <li>当前对本地控制器的主接口为 <code>UART</code></li> </ul></li> <li>上位机 <ul> <li>通过统一控制面完成模式配置、参数管理、状态查询和日志采集</li> </ul></li> <li>本地业务 MCU <ul> <li>通过统一控制面或数据面驱动模块</li> </ul></li> </ol> <h2>4. 工作模式</h2> <h3>4.1 直连模式</h3> <p>适用于:</p> <ul> <li>单设备无线串口透传</li> <li>近距离替代串口线</li> <li>上层没有独立协议的场景</li> </ul> <p>特征如下:</p> <ul> <li>单主单从</li> <li>追求吞吐和低交互延迟</li> <li>可选启用可靠透传</li> <li>由 <code>RPipe</code> 负责</li> </ul> <h3>4.2 组网模式</h3> <p>适用于:</p> <ul> <li>日志采集</li> <li>周期性传感器上报</li> <li>一主多从统一调度</li> <li>分组广播控制</li> </ul> <p>特征如下:</p> <ul> <li>一主多从,最大 <code>64</code> 个地址位,主站 <code>sid=0</code>,从站 <code>sid=1..63</code></li> <li>基于超帧和时隙调度</li> <li>活跃节点驱动上行时隙长度</li> <li>保留空闲 <code>join/resume</code> 窗口以支持动态扩容</li> </ul> <h2>5. 可靠性边界</h2> <p>项目不追求“所有业务全部强可靠”,而采用分级策略。</p> <h3>5.1 控制面强可靠</h3> <p>适用对象:</p> <ul> <li><code>JOIN</code></li> <li><code>RESUME</code></li> <li><code>SUSPEND</code></li> <li><code>CTRL_REQ / CTRL_RSP</code></li> <li>关键参数下发</li> </ul> <p>机制:</p> <ul> <li><code>txid + seq</code></li> <li><code>ACK/RSP</code></li> <li>有界重传</li> <li>去重</li> </ul> <h3>5.2 单播数据可选可靠</h3> <p>适用对象:</p> <ul> <li>关键状态同步</li> <li>低频重要数据</li> <li>特定配置类业务</li> </ul> <p>机制:</p> <ul> <li>仅支持单播</li> <li>由发送方显式设置可靠标志</li> <li>达到重试上限后返回失败</li> </ul> <h3>5.3 周期数据面尽力送达</h3> <p>适用对象:</p> <ul> <li>日志批量上报</li> <li>周期传感器数据</li> <li>高频上报流量</li> </ul> <p>机制:</p> <ul> <li>默认不做逐帧强确认</li> <li>周期末由网关统一发送 <code>ACK_SUMMARY</code></li> </ul> <h3>5.4 组播/广播尽力送达</h3> <p>适用对象:</p> <ul> <li>组播控制</li> <li>广播通知</li> </ul> <p>机制:</p> <ul> <li>默认不做逐节点即时 <code>ACK</code></li> <li>如确需确认,采用“组播发布 + 后续轮询确认”两阶段方式</li> </ul> <h2>6. 超帧与调度原则</h2> <p><code>StarBus</code> 组网模式下,主站统一调度超帧。推荐超帧结构如下:</p> <ol> <li><code>BEACON</code></li> <li>下行控制/数据槽</li> <li>上行数据槽</li> <li><code>ACK_SUMMARY</code> 槽</li> <li><code>ACK/RSP</code> 微槽</li> <li><code>RETRY</code> 保留槽</li> <li><code>JOIN/RESUME</code> 槽</li> </ol> <p>设计原则如下:</p> <ul> <li>时延主要随活跃节点数增长,而非随总注册节点数增长</li> <li>空闲监听槽数量始终保留最小可配置值</li> <li>单节点在线时仍保留组网等待窗口,不退化为独占链路</li> <li>节点主动挂起后不占时隙,但保留节点信息</li> <li>节点恢复时在 <code>join/resume</code> 槽快速请求恢复</li> </ul> <h2>7. 对外接口设计</h2> <p>本项目作为模块供其他项目使用,对外接口必须统一、可扩展、可远程转发。</p> <h3>7.1 接口分层</h3> <p>定义三类对外接口:</p> <ul> <li>数据面 <ul> <li>用于业务数据传输</li> </ul></li> <li>控制面 <ul> <li>用于配置、管理、状态查询、动作触发</li> </ul></li> <li>事件面 <ul> <li>用于异步状态上报</li> </ul></li> </ul> <h3>7.2 统一控制面原则</h3> <p>所有正式配置和管理动作统一走 <code>CTRL_REQ / CTRL_RSP</code>,不引入 <code>AT</code> 指令。</p> <p>统一控制面同时服务于:</p> <ul> <li><code>PC -&gt; 网关模块</code></li> <li><code>本地 MCU -&gt; 节点模块</code></li> <li><code>网关 -&gt; 远端节点</code></li> </ul> <h3>7.3 目标类型</h3> <p>控制命令支持三类目标:</p> <ul> <li><code>LOCAL</code> <ul> <li>作用于本机模块</li> </ul></li> <li><code>REMOTE_NODE</code> <ul> <li>作用于指定 <code>sid</code></li> </ul></li> <li><code>GROUP</code> <ul> <li>作用于指定组</li> </ul></li> </ul> <h3>7.4 场景化配置模型</h3> <p>对外配置采用“场景 + 参数表 + 动作命令”模型。</p> <p>场景示例:</p> <ul> <li><code>P2P_TRANSPARENT</code></li> <li><code>STARBUS_COLLECT</code></li> <li><code>STARBUS_MIXED</code></li> </ul> <p>这样做的目的:</p> <ul> <li>降低用户直接配置底层时序细节的风险</li> <li>保留统一外部接口</li> <li>便于后续上位机做模板化配置</li> </ul> <h3>7.5 操作类型</h3> <p>控制面固定以下操作:</p> <ul> <li><code>GET</code></li> <li><code>SET</code></li> <li><code>COMMIT</code></li> <li><code>LOAD_DEFAULT</code></li> <li><code>ACTION</code></li> <li><code>SUBSCRIBE</code></li> </ul> <p>说明如下:</p> <ul> <li><code>GET/SET</code>:用于参数访问</li> <li><code>COMMIT</code>:持久化当前配置</li> <li><code>LOAD_DEFAULT</code>:恢复默认配置</li> <li><code>ACTION</code>:执行命令动作</li> <li><code>SUBSCRIBE</code>:订阅事件流</li> </ul> <h3>7.6 参数类别</h3> <p>参数分为四类:</p> <ul> <li>运行时参数 <ul> <li>可立即生效</li> </ul></li> <li>会话参数 <ul> <li>本次上电有效,重启丢失</li> </ul></li> <li>持久参数 <ul> <li>需显式 <code>COMMIT</code></li> </ul></li> <li>只读状态 <ul> <li>不可直接写入</li> </ul></li> </ul> <h2>8.当前项目状态</h2> <p>目前软件正在开发板上推进,硬件设计暂缓。</p> <table> <tr> <th>模块</th> <th>状态</th> <th>说明</th> </tr> <tr> <td><code>USB CDC ACM</code></td> <td>可用</td> <td>主/从设备均可枚举,网关主控入口已接通</td> </tr> <tr> <td><code>UART BSP</code></td> <td>可用</td> <td><code>78MHz</code> 下基础收发已验证,RX 路径已收敛为 ISR 独占硬件 FIFO</td> </tr> <tr> <td><code>ulog</code></td> <td>可用</td> <td><code>TMOS</code> 任务驱动,支持 <code>UART/USB</code> 后端</td> </tr> <tr> <td><code>StarBus</code></td> <td>联调中</td> <td>主从入网、控制面、周期确认路径已具备</td> </tr> <tr> <td><code>RPipe</code></td> <td>联调中</td> <td>direct 基础通路 + mesh 端到端已通,时序优化中</td> </tr> <tr> <td><code>data_plane_task</code></td> <td>联调中</td> <td>新增统一数据面,mesh 7/16/29 PASS,direct 1/64/180 PASS</td> </tr> <tr> <td><code>mode_manager</code></td> <td>可用</td> <td>事件驱动模式编排,cfg_changed 回调注册正常</td> </tr> <tr> <td><code>io_port</code></td> <td>可用</td> <td>5 个适配器均实现完整接口</td> </tr> <tr> <td><code>I2C</code></td> <td>待硬件验证</td> <td>驱动就绪,尚未完成外设联调</td> </tr> </table>

文档

BOM

附件

暂无

评论(0)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow