通过USB端口抓取模组日志是一个嵌入式开发和调试中的常见任务。由于模组通常将USB虚拟为多个串口(CDC/ACM驱动),因此抓取日志的本质就是捕获这些虚拟串口上的数据流。
核心原理
大多数4G/5G/Cat.1等通信模组,当其USB接口连接到电脑时,会在设备管理器中枚举出多个端口:
AT Command Port:用于发送AT命令和接收响应。
Modem Port:用于PPP拨号或NDIS网络连接。
Diagnostic Port / Logging Port:这就是用于输出详细日志(尤其是CP Log)的端口。
NMEA Port:用于输出GPS数据(如果模组支持)。
我们的目标就是找到并监听这个 Diagnostic Port。
方法一:使用通用串口调试工具(最常用)
这种方法适用于输出明文日志(如AT命令交互、模组状态信息)的场景。
步骤:
识别日志端口
将模组通过USB连接到电脑。
打开 设备管理器。
展开 “端口 (COM & LPT)”。
你会看到模组新增的多个COM口。通常,诊断端口的名称会有提示,如:
USB Diagnostics Interface
DM Port
Logging Port
或者根据厂商文档确定。如果无法确定,可以逐个尝试。
选择并配置串口工具
Putty: 轻量级,功能全面。
SecureCRT / Tera Term: 功能强大的专业终端。
MobaXterm: 集成了串口、网络等众多功能。
开源工具 (如 on Linux/macOS,
screen)。
Serial Port Utility
连接并捕获日志
以 Putty 为例:
打开Putty,选择 “Serial” 连接类型。
在 “Serial line” 中输入你找到的日志端口号,例如 。
COM10
设置正确的串口参数(最关键的一步):
Speed (Baud rate): (最常见,也可能是
115200 或其他,需查阅模组手册)。
921600
Data bits:
8
Stop bits:
1
Parity:
None
Flow control: 或
None
XON/XOFF
在 “Session” -> “Logging” 中,选择 “All session output” 并指定一个文件来保存日志。
点击 “Open”,即可开始实时查看并记录日志。
方法二:使用厂商专用诊断工具(用于CP Log等高级日志)
对于高通的芯片平台(如大多数4G/5G模组),其底层的CP Log(信令日志)是二进制的,无法用普通串口工具查看,必须使用专用工具。
步骤(以高通平台为例):
安装驱动和软件
安装QPST Server: 这是高通的基础服务。
安装QXDM / QCAT:
QXDM: 用于抓取二进制诊断日志。
QCAT: 用于解析和分析QXDM抓取的 或
.dlf 文件。
.isf
配置QPST
确保模组的诊断端口已被识别。在设备管理器中,它可能显示为 或类似的设备。
Qualcomm HS-USB Diagnostics
打开 QPST Configuration。
如果模组端口没有自动出现,点击 “Add New Port”,手动添加对应的COM口。
你应该能在列表中看到你的模组。
使用QXDM抓取日志
打开 QXDM。
在 “Options” -> “Communications” 中,选择你的模组对应的端口。
点击红色的 “Record” 按钮开始抓取日志。
复现你的问题(如拨号、ping等)。
点击 “Stop” 按钮停止抓取,并保存为 或
.dlf 文件。
.isf
使用QCAT分析日志
打开 QCAT。
打开刚才QXDM保存的日志文件。
QCAT会将其解析成可读的视图,你可以看到详细的信令流程(如RRC, NAS)、测量报告、错误代码等。
对于其他平台(如移远、广和通等):
它们通常也提供自己的Windows诊断工具,原理类似。你需要从模组厂商那里获取这些工具和相应的驱动。
方法三:在Linux系统下抓取
在Linux下,模组的USB端口会被映射为 设备文件。
/dev/ttyUSB*
识别设备
使用 或
ls /dev/ttyUSB* 命令查看新增的设备。
dmesg | grep tty
通常, 或更高的编号是诊断端口。
/dev/ttyUSB2
使用 命令捕获
screen
# 连接并查看实时日志 screen /dev/ttyUSB2 115200 # 要退出 screen,按 Ctrl+A,然后按 K,再按 Y。
使用 和重定向保存日志
cat
# 将日志输出到文件 cat /dev/ttyUSB2 > modem_log.txt & # 使用 stty 设置参数(如果需要) stty -F /dev/ttyUSB2 115200
使用 或
minicom
picocom
# 安装 minicom sudo apt-get install minicom # 配置并运行 minicom sudo minicom -D /dev/ttyUSB2 -b 115200 -C capture_log.txt # -C 选项指定日志文件
一般情况下,基于Linux系统抓取日志,不同平台会输出对应的log工具抓取模组日志,log工具识别日志端口,读取端口输出的日志数据,并按照日志规则将其写入指定文件存储,再用指定的工具进行解析。
总结与最佳实践
| 场景 | 推荐方法 | 输出内容 |
|---|---|---|
| 查看AT命令交互、应用层日志 | 方法一:通用串口工具 (Putty, Tera Term) | 明文文本 |
| 深度调试网络问题、分析信令 | 方法二:厂商专用工具 (QXDM/QCAT, 移远Tools) | 解析后的二进制信令 |
| 在Linux环境下开发 | 方法三:, , |
明文文本 |
关键检查点:
驱动:确保电脑已安装正确的USB驱动。
端口:准确识别哪个是诊断/日志端口。
波特率:设置正确的波特率,否则会看到乱码。
流控:如果数据量大,尝试开启流控(XON/XOFF或RTS/CTS)。
权限:在Linux下,确保当前用户有读写 的权限。
/dev/ttyUSB*
通过以上方法,你可以系统地通过USB端口抓取到模组在不同层面产生的日志,为后续的调试和分析提供坚实的基础。



