串口、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 虚拟串口。

参数

常见值

说明

波特率

115200

两端必须一致。乱码、丢字符、响应异常时先检查它。

数据位

8

大多数设备使用 8 位。

停止位

1

工业设备可能使用 2 位,按设备协议设置。

校验位

支持无、奇、偶等校验。校验错常表现为数据断续或设备无响应。

流控制

普通调试口通常不用;高速或 Modem 类设备可能需要硬件流控。

读写超时

秒级

设备长时间无响应时用于结束等待,不影响正常流式接收。

串口排障顺序:

  1. 先在文本视图看是否有可读字符。

  2. 乱码时切换接收编码,再核对波特率。

  3. 文本看不到但设备应有数据时,打开 Hex 视图确认是否有非文本字节。

  4. 协议解析无值时,先确认原始字节里存在完整帧。

USB-CDC#

USB-CDC 通常在系统中表现为虚拟串口。对用户来说,它的调试方式更接近 Serial,而不是 HID/WinUSB。

适合:

  1. MCU USB CDC 日志。

  2. USB Bootloader 命令口。

  3. 跨平台串口协议。

  4. 想用串口工具兼容的设备。

注意:

  1. 如果系统未生成 COM 口,先检查驱动和 USB 描述符。

  2. CDC 仍然受串口参数影响,但有些设备会忽略波特率,仅把它当作兼容字段。

  3. 高频二进制流建议同时看表格和 Hex,纯文本视图可能不适合。

USB-HID#

HID 适合免驱、自定义控制面、固定报告长度和低到中等吞吐设备。它的特点是“按报告收发”,不是任意长度流。

字段

用途

VID/PID

确认设备身份。

接口号

多接口设备中选择正确 HID interface。

UsagePage / Usage

区分普通 HID 和厂商自定义 HID。

报告长度

决定每次收发数据大小;发送内容通常需要符合设备端报告长度要求。

序列号

多台同型号设备同时连接时用于区分。

HID 使用建议:

  1. 固件端如果要求 Report ID,发送数据要按设备协议包含对应字节。

  2. 短命令可以用 HEX 模式直接构造。

  3. 如果协议是结构化帧,启用 NexuFrame 后再建通道。

  4. 如果设备 descriptor 不完整,先看设备列表和日志,不要直接判断协议错误。

USB-WinUSB#

WinUSB 适合厂商自定义 USB 接口和高吞吐端点。它更像“原始 USB 端点调试”,适合固件调试接口、批量数据、低延迟周期发送和大块文件。

字段

用途

GUID

WinUSB 设备接口识别。为空或不匹配时,常见原因是驱动没有绑定正确。

IN/OUT 端点

决定接收和发送通道。

端点包长

影响文件发送包长和高频发送效率。

设备速度

Full Speed、High Speed 等会影响吞吐上限。

WinUSB 适合的工作方式:

  1. 原始 Hex 观察设备端点输出。

  2. 使用 NexuFrame 承载正式二进制协议。

  3. 使用文件发送测试固件接收能力。

  4. 开启高性能模式做 200 us 级周期发送验证。

如果发送计数增加但设备无响应,先看状态栏 TX wait paths。Pool 占比高通常说明 USB 发送池或设备端处理已经成为瓶颈。

TCP Server#

TCP Server 模式下,NexuTrace 监听本地地址和端口,等待设备或仿真器主动连接。

适合:

  1. 设备主动上报数据到电脑。

  2. 固件只实现 TCP Client。

  3. 多次重启设备后仍希望电脑端保持监听。

检查项:

  1. 本地绑定地址是否正确,默认 0.0.0.0 可监听所有网卡。

  2. 端口是否被其他程序占用。

  3. Windows 防火墙是否允许入站连接。

  4. 设备 IP 与电脑是否在可达网段。

TCP Client#

TCP Client 模式下,NexuTrace 主动连接设备或仿真器的 IP 和端口。

适合:

  1. 设备作为 TCP Server。

  2. 连接本机仿真程序。

  3. 调试远端网关或透传模块。

检查项:

  1. 服务器 IP 是否正确。

  2. 端口是否开放。

  3. 设备服务是否已启动。

  4. NAT、VPN 或防火墙是否阻断。

TCP 是有连接的可靠字节流。协议帧可能被拆包或粘包,所以 NexuFrame 这类带同步字和长度的协议更适合跑在 TCP 上。

UDP#

UDP 无连接,适合广播、周期状态、低开销上报和简单控制。但它不保证送达、顺序和不重复。

参数

说明

本地绑定 IP

接收 UDP 时绑定哪张网卡,默认 0.0.0.0

本地端口

接收数据的端口。

远端 IP

发送时的目标设备地址。

远端端口

发送时的目标端口。

UDP 使用建议:

  1. 重要命令不要只依赖 UDP,除非设备协议自己做 ACK。

  2. 周期状态上报适合 UDP,偶发丢包可以从时间戳和计数器判断。

  3. 使用 NexuFrame 时仍可从同步字恢复帧边界,但丢包会导致某些帧缺失。

普通模式如何选择协议#

链路

推荐协议

原因

串口日志

不解析 / FireWater

先看可读文本;需要曲线时用 FireWater 输出数字。

串口二进制

NexuFrame

帧边界清楚,抗粘包和半包。

USB-HID

不解析 / NexuFrame

简单报告可直接看 Hex,结构化业务建议 NexuFrame。

WinUSB 高速数据

JustFloat / NexuFrame

连续浮点曲线用 JustFloat,正式命令协议用 NexuFrame。

TCP 字节流

NexuFrame

TCP 会粘包/拆包,带 sync/len 的协议更稳。

UDP 状态流

FireWater / JustFloat / NexuFrame

取决于设备输出;重要状态建议带命令号或序号。

普通模式排障清单#

  1. 连接状态是否已打开。

  2. 原始视图是否有 RX/TX 数据。

  3. 编码是否正确。

  4. 发送模式是 ABC 还是 HEX。

  5. TCP/UDP 地址和端口是否匹配。

  6. USB 端点、HID 报告长度或驱动是否正确。

  7. 协议解析是否启用。

  8. 协议类型是否和设备输出格式一致。