四口 Hub 控制面
IsolaRail 是当前 V3 硬件基线上的四口 USB Hub 控制平面。ESP32-S3 负责输入电源资格、四路端口门控、遥测、持久化配置和前面板;CH335F 负责 USB Hub 数据面,并通过 PWREN# 与 OVCUR# 把上游状态和过流反馈交给控制面。
端口、电源、状态和维护动作使用统一的控制语义,供用户界面和本机工具共同使用。
传输与控制契约
USB JSONL、native IPC 和 LAN HTTP 围绕设备身份、硬件快照和端口状态传递数据。端口请求进入同一运行时控制路径,由电源资格、sideband、过流 latch 和用户状态共同决定 EN1..EN4。
CLI、桌面应用和 Web 页面可以使用不同交互形式,安全判断仍来自同一运行时路径。
硬件诊断快照
hardware.snapshot 汇总输入电源、I2C、CH335F sideband、前面板、风扇、蜂鸣器和四路端口模块状态,服务于只读排障。它与端口写入接口分开,读取快照不会触发 replug 或改变门控。
前面板的 160x50 布局也遵循同一原则:缺失、过流、关闭和未测量有不同状态,不能用一组 0V/0mA 数字掩盖“尚未确认”的事实。
启动自检
固件启动固定经过 Early Bring-up、Self-Check、Gate Apply 和 Runtime 四阶段。LCD 自检页、串口日志和运行时门控共享 BootSelfCheckSnapshot。
当前策略是只读探测和分级降级。输入电源不安全时,系统保持 Fatal 并阻止运行;前面板、风扇或单路遥测模块异常时,则尽量保留其它可用能力,并把缺失节点和故障原因继续暴露给控制面。
端口门控
四路端口的输出由多项条件共同决定:VIN ready、CH335F sideband、standalone 或 upstream-managed 模式、PWREN#、软件过流 latch 和用户开关状态都会参与 EN1..EN4 计算。
过流时,固件会立即关闭对应输出并向 CH335F 注入 OVCUR#;只有连续的带电安全采样满足条件后,latch 才能释放。port.replug 被限定为受控断电再上电,不把电源动作描述成 USB 数据拓扑变化。
本机与局域网入口
普通本机操作从 isolarail CLI 进入,isolarail-devd serve 通过 native IPC 连接 USB JSONL、烧录、reset 和 monitor。浏览器需要本机 USB 能力时,显式启用 isolarail-devd web。
LAN HTTP v1 主要提供设备身份、状态、端口信息和有限维护动作。Wi-Fi 凭据写入仍要求 USB-backed 设备路径;hardware.snapshot 则是只读诊断接口,用来汇总电源、I²C、sideband、前面板、风扇、蜂鸣器和端口模块状态。
前面板状态
本机 dashboard 使用 160x50 像素的四列布局,每列对应一个物理端口,显示电压、电流、功率和当前状态。过流、关闭、断开和初始化有明确优先级,0V/0mA 不代替未测量或保护状态。
五向按键只发布去抖后的选择和手动切换事件,真正的输出决策仍由运行时 reducer 经过电源、sideband、过流和端口门控完成。