下载地址:CetNetworkTester-Setup-Beta-V1.1.2.111.exe-互联网文档类资源-CSDN下载
汽车协议网络测试工具:CetNetworkTester 设计笔记
作者:CetXiyuan |技术栈:Qt 5.15.2 (MinGW 32-bit) |平台:Windows
阅读时长:约 10 分钟 |受众:汽车电子/车联网测试工程师、Qt 开发者
写在前面
系列前六篇覆盖了 CAN 总线、串口、ADB 三种物理层的工具。这一篇换到网络层——TCP/IP。
但 CetNetworkTester 不是通用的 TCP 调试工具(市面上有太多这类工具了)。它内置了多款中国汽车行业标准的协议解析引擎:JT808(交通部 808)、GB32960 2016/2025(新能源电动车)、HJ1239(国六排放)、重汽私有协议、NDSD RDB(宁德时代电池管理)。你不需要手动拼十六进制帧——选择协议、填写参数、自动生成完整帧、发送、解析响应。
声明:本文基于真实项目 CetNetworkTester V3.5.0(发布日期 2026-07-09)。
一、工具定位:协议级网络测试,不是通用 TCP 工具
| 维度 | 通用 TCP 工具 | CetNetworkTester |
|---|---|---|
| 数据格式 | 原始字节/文本 | 协议帧(自动生成) |
| 校验和 | 手动计算 | 自动计算(XOR/CRC) |
| 序列号 | 手动管理 | 自动递增 |
| 转义 | 无 | JT808 0x7E→0x7D 0x02 |
| 加密 | 无 | SM2/SM4/RSA/AES128 内置 |
| 解析输出 | 十六进制原文 | 字段级结构化解析 |
做的:
| 功能 | 说明 |
|---|---|
| 多协议支持 | JT808 / GB32960(2016+2025) / HJ1239 / 重汽 / NDSD RDB |
| 帧组装引擎 | 自动序列号递增 + 校验和计算 + 转义处理 |
| 帧解析引擎 | 双向解析(客户端/服务端),字段级展示 |
| 加密支持 | SM2/SM4(国密)、RSA、AES128 |
| 设备身份管理 | SQLite 存储 VIN/ICCID/IMEI/密钥,切换车型一键载入 |
| 定时发送 | 可配置间隔的心跳/位置上报自动发送 |
二、内置协议
2.1 JT808——交通部 808 标准
JT/T 808 是中国道路运输车辆卫星定位系统的通信协议,几乎所有商用车 T-Box 都支持。CetNetworkTester 内置了完整的帧组装和解析逻辑:
JT808 帧结构: ┌──────┬──────┬──────┬──────┬──────┬──────┐ │ 0x7E │ 消息头 │ 消息体 │ 校验码 │ 0x7E │ │ 标识 │(12字节)│(变长) │(1字节)│ 标识 │ └──────┴──────┴──────┴──────┴──────┘协议对话框支持的消息类型:
| 消息 ID | 说明 |
|---|---|
| 0x0100 | 终端注册 |
| 0x0102 | 终端鉴权 |
| 0x0200 | 位置信息上报 |
| 0x0201 | 位置信息查询应答 |
| 0x0001 | 终端通用应答 |
| 0x8001 | 平台通用应答 |
| 0x8100 | 终端注册应答 |
终端注册流程:填写 VIN/ICCID/IMEI/车牌号 → 生成 0x0100 注册帧 → 发送 → 收到 0x8100 应答 → 自动解析鉴权码 → 生成 0x0102 鉴权帧。
2.2 GB32960——新能源电动车监控
GB/T 32960.3-2016 规定了电动汽车远程服务的通信协议。与 JT808 的帧结构不同,GB32960 用固定长度头 + 异或校验:
GB32960 帧结构: ┌──────┬──────┬──────┬──────┬──────┐ │ 0x23 │ 命令标识 │ 应答标志 │ VIN │ 加密方式 + 数据单元 │ 校验码 │ │ 0x23 │(1字节) │(1字节) │(17) │(变长) │(1字节)│ └──────┴──────┴──────┴──────┴──────┘2.3 HJ1239——国六排放监控
HJ 1239-2021 是重型柴油车排放远程监控的技术规范。协议基于 JT808 扩展,增加了排放相关的数据项(NOx 浓度、SCR 温度、DPF 压差等)。CetNetworkTester 支持这些排放参数的结构化填写和解析。
2.4 重汽私有协议
中国重汽(Sinotruk)的私有协议,用于特定车型的远程监控和诊断。帧组装逻辑与标准协议不同,CetNetworkTester 内置了对应的参数配置和校验规则。
三、协议帧引擎
3.1 帧组装:自动生成完整协议帧
以 JT808 为例,帧组装的完整流程:
用户填写参数(VIN、消息ID、消息体内容) ↓ 消息体打包(各字段按协议顺序编码) ↓ 消息头组装(消息ID + 消息体属性 + 终端手机号 + 流水号) ↓ 自动递增流水号(每次发送 +1) ↓ 组装完整消息包(消息头 + 消息体) ↓ 计算校验码(从消息头第一个字节到消息体最后一个字节的 XOR) ↓ 转义处理(0x7E → 0x7D 0x02, 0x7D → 0x7D 0x01) ↓ 添加首尾标识 0x7E ↓ 完整协议帧 → 通过 QTcpSocket 发送3.2 帧解析:结构化展示
收到服务端应答后,不是显示原始十六进制,而是按协议字段逐层解析。JT808 的消息头包含 12 字节的固定结构:
解析输出示例: ================================ 消息ID: 0x8001 (平台通用应答) 消息体属性: 0x0005 (5字节, 不加密, 不分包) 终端手机号: 12345678901 消息流水号: 0x0001 应答流水号: 0x0001 应答消息ID: 0x0100 结果: 0x00 (成功/确认) ================================3.3 加密支持
JT808 支持多种加密方式:
| 加密类型 | 算法 | 适用场景 |
|---|---|---|
| 不加密 | 明文 | 测试/调试 |
| RSA | RSA-1024/2048 | 鉴权 |
| AES | AES-128-CBC | 数据加密 |
| SM2/SM4 | 国密算法 | 合规要求 |
四、设备身份管理
每台测试车辆都有一套独立的身份参数。反复切换车型时,如果每次都要手动输入 VIN、ICCID、IMEI、加密密钥,效率极低。
CetNetworkTester 用 SQLite 管理这些身份数据:
设备信息表: ├── 整车型号 ├── VIN (车辆识别码, 17位) ├── ICCID (SIM卡序列号, 20位) ├── IMEI (设备识别码, 15位) ├── 终端手机号 ├── 加密密钥 (RSA公钥/SM2密钥) ├── 车牌号 + 车牌颜色 └── 备注切换车型时选择一条记录,所有参数自动填充到协议对话框。数据库文件可以导出分享给团队成员,确保测试环境一致。
五、与 Cet 系列工具的关系
CetNetworkTester 填补了工具链中"网络传输层"这一环:
物理层: CetCANTestTool (CAN) / CetSScom (串口/ADB) ↓ 网络层: CetNetworkTester (TCP/IP, JT808/GB32960/HJ1239) ↓ 应用层: CetVehicleCollector (车辆数据采集) CetSimulateEcu (ECU 模拟) CetDiagnosticInstrument (诊断刷写)Cet 工具链覆盖了车载通信的全部传输介质:
| 传输介质 | 工具 |
|---|---|
| CAN 总线 | CANTestTool / SimulateEcu / DiagnosticInstrument / VehicleCollector |
| 串口 | CetSScom |
| ADB | CetSScom / VehicleCollector |
| TCP/IP | CetNetworkTester |
六、架构特点
CetNetworkTester 的架构比 CAN 系列工具简单——不需要多线程轮询,Qt 的QTcpSocket天然事件驱动:
// mainwindow.cpp —— 连接和收发 connect(m_socket, &QTcpSocket::readyRead, this, [=]() { QByteArray data = m_socket->readAll(); m_recvHexTextEdit->append(data.toHex(' ').toUpper()); // 送入协议解析器 m_parseCommandDialog->parse(data); }); connect(m_socket, &QTcpSocket::connected, this, [=]() { m_connectTimer->start(1000); // 连接计时 ui->connectButton->setText("断开"); });定时发送通过 QTimer 实现,支持可配置的间隔(1~3600 秒),适合心跳维持和周期性位置上报。
配套资源
- 协议参考:JT/T 808-2019、GB/T 32960.3-2016、HJ 1239-2021
- 上游文章:
- 《用 Qt + USBCAN 写 CAN 总线测试工具:CetCANTestTool 设计笔记》
- 《整车数据采集与 IPC 实时镜像:CetVehicleCollector 设计笔记》
- 《串口 + ADB + 网络 + AI:CetSScom 的设计笔记》
作者:CetXiyuan | 持续分享 Qt/车载通信/车联网工程实践
本文基于真实项目 CetNetworkTester V3.5.0。所有代码片段对照真实源码。
转载请注明出处。