串口、USB 与网络普通模式#
普通模式指不经过 USB-CAN 适配器的连接:Serial、USB-CDC、USB-HID、USB-WinUSB、TCP Server、TCP Client 和 UDP。它们进入 NexuTrace 后都是“字节流”工作方式:先进入文本、表格、Hex 等原始视图;如果启用协议解析,再交给 FireWater、JustFloat 或 NexuFrame。
普通模式与协议是两层概念:
层级 |
说明 |
|---|---|
连接模式 |
决定字节从哪里来、怎么发出去,例如串口、HID、WinUSB、TCP、UDP。 |
协议解析 |
决定收到的字节怎么解释,例如不解析、FireWater、JustFloat、NexuFrame。 |
所以同一个 NexuFrame 协议既可以跑在串口上,也可以跑在 WinUSB 或 TCP 上;同一个串口也可以先看原始日志,再切换到 FireWater 或 NexuFrame。
Serial / 虚拟串口#
串口适合 MCU 日志、AT 指令、Bootloader、简易工装、USB 转串口和 USB-CDC 虚拟串口。
参数 |
常见值 |
说明 |
|---|---|---|
波特率 |
|
两端必须一致。乱码、丢字符、响应异常时先检查它。 |
数据位 |
|
大多数设备使用 8 位。 |
停止位 |
|
工业设备可能使用 2 位,按设备协议设置。 |
校验位 |
无 |
支持无、奇、偶等校验。校验错常表现为数据断续或设备无响应。 |
流控制 |
无 |
普通调试口通常不用;高速或 Modem 类设备可能需要硬件流控。 |
读写超时 |
秒级 |
设备长时间无响应时用于结束等待,不影响正常流式接收。 |
串口排障顺序:
先在文本视图看是否有可读字符。
乱码时切换接收编码,再核对波特率。
文本看不到但设备应有数据时,打开 Hex 视图确认是否有非文本字节。
协议解析无值时,先确认原始字节里存在完整帧。
USB-CDC#
USB-CDC 通常在系统中表现为虚拟串口。对用户来说,它的调试方式更接近 Serial,而不是 HID/WinUSB。
适合:
MCU USB CDC 日志。
USB Bootloader 命令口。
跨平台串口协议。
想用串口工具兼容的设备。
注意:
如果系统未生成 COM 口,先检查驱动和 USB 描述符。
CDC 仍然受串口参数影响,但有些设备会忽略波特率,仅把它当作兼容字段。
高频二进制流建议同时看表格和 Hex,纯文本视图可能不适合。
USB-HID#
HID 适合免驱、自定义控制面、固定报告长度和低到中等吞吐设备。它的特点是“按报告收发”,不是任意长度流。
字段 |
用途 |
|---|---|
VID/PID |
确认设备身份。 |
接口号 |
多接口设备中选择正确 HID interface。 |
UsagePage / Usage |
区分普通 HID 和厂商自定义 HID。 |
报告长度 |
决定每次收发数据大小;发送内容通常需要符合设备端报告长度要求。 |
序列号 |
多台同型号设备同时连接时用于区分。 |
HID 使用建议:
固件端如果要求 Report ID,发送数据要按设备协议包含对应字节。
短命令可以用 HEX 模式直接构造。
如果协议是结构化帧,启用 NexuFrame 后再建通道。
如果设备 descriptor 不完整,先看设备列表和日志,不要直接判断协议错误。
USB-WinUSB#
WinUSB 适合厂商自定义 USB 接口和高吞吐端点。它更像“原始 USB 端点调试”,适合固件调试接口、批量数据、低延迟周期发送和大块文件。
字段 |
用途 |
|---|---|
GUID |
WinUSB 设备接口识别。为空或不匹配时,常见原因是驱动没有绑定正确。 |
IN/OUT 端点 |
决定接收和发送通道。 |
端点包长 |
影响文件发送包长和高频发送效率。 |
设备速度 |
Full Speed、High Speed 等会影响吞吐上限。 |
WinUSB 适合的工作方式:
原始 Hex 观察设备端点输出。
使用 NexuFrame 承载正式二进制协议。
使用文件发送测试固件接收能力。
开启高性能模式做 200 us 级周期发送验证。
如果发送计数增加但设备无响应,先看状态栏 TX wait paths。Pool 占比高通常说明 USB 发送池或设备端处理已经成为瓶颈。
TCP Server#
TCP Server 模式下,NexuTrace 监听本地地址和端口,等待设备或仿真器主动连接。
适合:
设备主动上报数据到电脑。
固件只实现 TCP Client。
多次重启设备后仍希望电脑端保持监听。
检查项:
本地绑定地址是否正确,默认
0.0.0.0可监听所有网卡。端口是否被其他程序占用。
Windows 防火墙是否允许入站连接。
设备 IP 与电脑是否在可达网段。
TCP Client#
TCP Client 模式下,NexuTrace 主动连接设备或仿真器的 IP 和端口。
适合:
设备作为 TCP Server。
连接本机仿真程序。
调试远端网关或透传模块。
检查项:
服务器 IP 是否正确。
端口是否开放。
设备服务是否已启动。
NAT、VPN 或防火墙是否阻断。
TCP 是有连接的可靠字节流。协议帧可能被拆包或粘包,所以 NexuFrame 这类带同步字和长度的协议更适合跑在 TCP 上。
UDP#
UDP 无连接,适合广播、周期状态、低开销上报和简单控制。但它不保证送达、顺序和不重复。
参数 |
说明 |
|---|---|
本地绑定 IP |
接收 UDP 时绑定哪张网卡,默认 |
本地端口 |
接收数据的端口。 |
远端 IP |
发送时的目标设备地址。 |
远端端口 |
发送时的目标端口。 |
UDP 使用建议:
重要命令不要只依赖 UDP,除非设备协议自己做 ACK。
周期状态上报适合 UDP,偶发丢包可以从时间戳和计数器判断。
使用 NexuFrame 时仍可从同步字恢复帧边界,但丢包会导致某些帧缺失。
普通模式如何选择协议#
链路 |
推荐协议 |
原因 |
|---|---|---|
串口日志 |
不解析 / FireWater |
先看可读文本;需要曲线时用 FireWater 输出数字。 |
串口二进制 |
NexuFrame |
帧边界清楚,抗粘包和半包。 |
USB-HID |
不解析 / NexuFrame |
简单报告可直接看 Hex,结构化业务建议 NexuFrame。 |
WinUSB 高速数据 |
JustFloat / NexuFrame |
连续浮点曲线用 JustFloat,正式命令协议用 NexuFrame。 |
TCP 字节流 |
NexuFrame |
TCP 会粘包/拆包,带 sync/len 的协议更稳。 |
UDP 状态流 |
FireWater / JustFloat / NexuFrame |
取决于设备输出;重要状态建议带命令号或序号。 |
普通模式排障清单#
连接状态是否已打开。
原始视图是否有 RX/TX 数据。
编码是否正确。
发送模式是 ABC 还是 HEX。
TCP/UDP 地址和端口是否匹配。
USB 端点、HID 报告长度或驱动是否正确。
协议解析是否启用。
协议类型是否和设备输出格式一致。