← 返回技术社区
OFFICIAL DOCUMENTATION

PGEAR CAN-Sniffer G1 使用说明

厂家文档 CAN-SNIFFER G1 更新日期:2026-10-16 Markdown

文档正文为中文,下载文件保留原文。

PGEAR CAN-Sniffer G1 使用说明

更新日期:2026-10-01
适用范围:当前 PGEAR CAN-Sniffer G1 固件的 BLE 数据、RaceChrono DIY 和 Wi-Fi 原始 CAN 采集功能。

1. 产品介绍

PGEAR CAN-Sniffer G1 是一款 CAN 总线数据采集设备,可将车辆总线上的数据通过蓝牙低功耗(BLE)或 Wi-Fi 传输给手机、电脑,用于查看车辆参数、记录行驶数据和分析 CAN 报文。

设备负责接收和转发 CAN 数据。发动机转速、车速、油门、温度等具体参数,需要由接收端根据相应车型的数据定义进行解析。连接成功不代表已经获得该车型的全部参数;不同车型、年款和接入位置可能使用不同的 CAN ID 和计算规则。

1.1 使用方式

使用方式 接收端 主要用途
BLE Profile 数据 支持 PGEAR CAN-Sniffer G1 接口的应用 根据车型配置采集指定 CAN ID,解析并显示车辆参数
RaceChrono DIY BLE 支持 DIY CAN-Bus 功能的 RaceChrono 应用 在 RaceChrono 中配置车辆通道,记录和分析车辆数据
Wi-Fi 原始数据 SavvyCAN 或兼容 GVRET TCP 的工具 查看原始报文、采集日志、分析车型协议

1.2 当前连接参数

项目 参数
正式名称 PGEAR CAN-Sniffer G1
VCC 输入电压 4.5–40 V DC
内部供电 DC-DC 降压转换为 3.3 V
CAN 线路抗干扰 共模滤波,抑制高频共模噪声
蓝牙设备名称 PGEAR CAN-Sniffer G1
Wi-Fi 热点名称 PGEAR CAN-Sniffer G1
Wi-Fi 密码 12345678
Wi-Fi 设备地址 192.168.4.1
原始数据连接协议 GVRET over TCP
TCP 端口 23
CAN 通道数量 1
当前 CAN 速率 500 kbps
CAN 工作模式 只监听(Listen-only)
CAN 数据类型 经典 CAN,单帧数据最多 8 字节
默认启动状态 BLE 数据模式,Wi-Fi 关闭

当前固件不主动向 CAN 总线发送报文,不提供主动 OBD 查询、故障码清除或报文注入功能。当前应用入口固定使用 500 kbps;在 Profile 或电脑软件中填写其他速率不会改变设备的实际 CAN 速率。

1.3 电源与线路技术特点

宽范围直流输入。 VCC 支持 4.5–40 V 直流输入,覆盖常见 12 V、24 V 电源的标称电压。设备内部通过 DC-DC 开关降压电路将输入转换为 3.3 V,为内部电路供电。开关降压方式适合较高输入电压到低压的转换,有助于减少线性降压带来的功耗与发热。

CAN 线路共模滤波。 CAN H、CAN L 信号线路采用共模滤波器件,抑制两条线上同向出现的高频噪声,同时尽量减小对 CAN 差分信号的影响。该设计有助于降低电磁干扰,提高复杂布线环境中的信号抗干扰能力。

共模滤波不提供电气隔离,也不等同于隔离式 CAN 接口。接线时仍需按说明连接地线。

2. 使用前准备

2.1 所需设备

  • PGEAR CAN-Sniffer G1 及与实际硬件匹配的线束、电源。
  • 可接入的 500 kbps 经典 CAN 总线。
  • 手机:用于 BLE 应用或 RaceChrono 连接,也可用于开启 Wi-Fi 模式。
  • 电脑:使用 SavvyCAN 时需要,可连接设备的 Wi-Fi 热点。
  • 对应车型的 Profile 或 CAN 通道定义:需要显示车辆参数时准备。

2.2 接线

按照设备外壳标识、配套线束说明及车辆接线资料连接:

信号 连接要求
CAN H 连接目标总线的 CAN H
CAN L 连接目标总线的 CAN L
GND 按配套接线说明连接地线
VCC 连接 4.5–40 V 直流电源正极

VCC 为外部电源输入,内部自动降压至 3.3 V;无需在 VCC 输入端另行转换为 3.3 V。连接前确认电压处于允许范围内,并按设备标识核对正负极。本说明不定义连接器针脚和线色,具体以配套线束说明为准。

接线和初次配置应在车辆停稳时进行。连接后确认 CAN H、CAN L 没有接反,线束连接牢固。使用车辆诊断接口时,还需要确认该接口实际开放了目标 CAN 数据;某些参数可能只在车辆内部其他总线上出现。

2.3 车型配置的作用

Profile 可以理解为车辆数据的“解释规则”。例如,同一条 CAN 报文可能同时包含转速与油门数据,应用需要知道:

  • 读取哪个 CAN ID。
  • 从数据的哪一位开始取值,以及取多少位。
  • 使用哪种字节序,是否为有符号数。
  • 如何通过倍率、除数和偏移量换算成实际值。

使用其他车型的配置,可能出现无数据、数值偏差或单位错误。应先确认车型、年款和接入的总线,再验证通道数值。

3. 快速开始:通过 BLE 查看车辆数据

  1. 按硬件说明连接 PGEAR CAN-Sniffer G1 并供电。
  2. 让目标车辆总线进入有数据的状态,例如打开点火开关。
  3. 打开手机蓝牙,并授予应用所需的蓝牙或附近设备权限。
  4. 在支持 PGEAR CAN-Sniffer G1 的应用内扫描设备,选择 PGEAR CAN-Sniffer G1。
  5. 选择与车辆匹配的 Profile,由应用发送给设备。
  6. 由应用启用数据通知,开始接收 CAN 数据。
  7. 查看转速、车速等通道,确认数值与车辆实际状态一致。

BLE 应通过应用内的设备连接入口操作。系统蓝牙列表能否显示或配对,不是判断应用能否连接的唯一依据。

当前自定义 BLE 数据通道需要先加载 Profile。仅建立蓝牙连接或启用通知,不会自动持续输出所有原始 CAN 报文。需要采集全部报文时,使用 Wi-Fi 原始数据模式。

3.1 数据更新频率

自定义 BLE Profile 支持 20、50、100 Hz 三档快照频率,默认 100 Hz。

设置 快照调度间隔
20 Hz 50 ms
50 Hz 20 ms
100 Hz 10 ms

该频率是设备检查并发送快照的调度频率。实际接收频率受车辆报文频率、数据变化、蓝牙连接和手机处理能力影响。

设备缓存每个指定 CAN ID 的最新数据;至少一个指定 ID 的数据内容或数据长度发生变化时,才会产生待发送快照。报文持续到达但内容完全相同,也可能没有新的快照通知。因此,不能仅用快照通知的间隔判断车辆总线是否停发。

一份快照可同时包含多个 ID 的最新值,它们不一定在同一时刻到达。需要逐帧分析或记录每次报文到达时,应使用 Wi-Fi 原始采集模式。

3.2 重新连接与断电

Profile、频率和模式设置没有通过当前应用逻辑保存到非易失存储。设备断电重启后恢复默认 BLE 模式,Wi-Fi 关闭,需要重新加载 Profile。

应用每次重新连接时应重新确认 Profile,并重新启用通知。BLE 断开本身不会自动关闭已开启的 Wi-Fi 热点。

4. 在 RaceChrono 中使用

PGEAR CAN-Sniffer G1 提供 RaceChrono DIY CAN-Bus BLE 服务。该通道与自定义 Profile 快照通道独立,RaceChrono 负责设置接收过滤规则并解析车辆数据。

4.1 添加设备

  1. 给 PGEAR CAN-Sniffer G1 供电,并确保车辆总线有数据。
  2. 打开 RaceChrono 的设置,进入添加其他设备的入口。
  3. 选择 RaceChrono DIY 类型。
  4. 将连接方式设为 Bluetooth LE。
  5. 扫描并选择 PGEAR CAN-Sniffer G1,启用 CAN-Bus 功能。
  6. 在车辆配置中添加或配置 CAN-Bus 数据通道。
  7. 开始一次记录,确认目标通道有合理的数据。

不同应用版本的菜单文字可能有所不同。设备类型、BLE 连接方式及车辆 CAN-Bus 通道的配置方式,可参阅 RaceChrono 官方 DIY 教程。

4.2 配置车辆通道

设备发送的是原始 CAN 数据,RaceChrono 需要车型对应的 CAN ID 和解析公式,才能显示转速、车速或温度等参数。

在车辆配置中,按经过验证的车型定义设置通道名称、CAN ID、计算公式和单位。计算公式可参阅 RaceChrono 官方公式说明。

自定义 BLE 的 set_profile JSON 不能直接当作 RaceChrono 通道公式使用。 两者的配置入口和字段表达方式不同,应将信号定义转换为 RaceChrono 支持的规则。

4.3 使用边界

  • 当前设备提供 CAN 数据;本固件没有提供 GPS 定位服务。
  • RaceChrono 的逐帧通知使用其自己的过滤与最小通知间隔,不使用自定义 Profile 的 rate 设置。
  • 实际车型信号能否获取,取决于接入总线上的报文以及车辆通道定义。
  • 切换应用前,先断开当前 BLE 应用,避免多个应用争用设备。

5. 使用 Wi-Fi 和 SavvyCAN 采集原始报文

Wi-Fi 原始模式将接收到的 CAN 报文通过 GVRET TCP 转发给电脑,适合寻找 CAN ID、检查原始字节和保存日志。

该通道转发不受自定义 BLE Profile 的 ID 白名单限制,不需要先加载车型 Profile。

5.1 开启 Wi-Fi 模式

设备上电后默认关闭 Wi-Fi。Wi-Fi 模式控制需要蓝牙认证,仅支持通过官方 App 开启。

  1. 打开车涯或 PGEAR App。
  2. 在 GO 界面选择连接 PGEAR CAN-Sniffer G1。
  3. 连接后选择 wifi raw mode。

开启后,电脑即可连接 PGEAR CAN-Sniffer G1 Wi-Fi 热点。

5.2 连接电脑

c 1. 在电脑 Wi-Fi 列表中选择 PGEAR CAN-Sniffer G1。 2. 输入密码 12345678。 3. 如果系统提示“无互联网”,保持连接;热点用于设备数据通信。 4. 打开 SavvyCAN 的连接管理窗口,创建新连接。 5. 选择 Network connection (GVRET)。 6. 在地址输入项中填写 192.168.4.1,创建连接。 7. 检查主窗口是否开始收到 CAN 报文。

本项目配套的 SavvyCAN 网络 GVRET 实现使用 TCP 端口 23。如其他版本提供单独的端口设置项,填写 23;只有地址输入项时,填写 IP 地址即可。

连接项目 填写内容
连接类型 Network connection (GVRET)
地址 192.168.4.1
端口(若可设置) 23
实际 CAN 速率 500 kbps,由设备当前固件固定

热点最多允许一个 Wi-Fi 客户端接入。采集时只让目标电脑连接该热点,避免手机占用连接名额。

5.3 查看和保存数据

连接后可在 SavvyCAN 中查看报文的 CAN ID、数据长度、原始数据和时间信息。需要显示物理值时,仍需提供与车辆匹配的信号定义,例如经过验证的 DBC。

建议先进行短时间采集,确认报文持续出现,再开始正式记录。采集结束后使用 SavvyCAN 的日志保存功能,将数据保存到电脑,文件名注明车型、日期、接入位置和测试条件。

PGEAR CAN-Sniffer G1 当前固件不提供设备本地日志存储。数据由接收端保存;高负载或网络处理不及时可能丢帧,当前队列满时会丢弃较旧数据,因此不能保证所有总线报文都被完整记录。

5.4 返回 BLE 数据模式

Wi-Fi 模式切换由官方 App 完成蓝牙认证后控制。设备断电重启后会关闭 Wi-Fi 热点及 TCP 连接,恢复默认 BLE 模式。

同一次上电期间,模式切换不会主动清除已加载的 Profile。返回 BLE 模式后仍应由应用确认配置和通知状态。断电重启也会回到默认 BLE 模式,但需要重新加载 Profile。

5.5 模式之间的关系

状态 自定义 BLE 快照 官方 App 模式控制 Wi-Fi GVRET 数据
默认 BLE 模式 加载 Profile 并启用通知后可发送 蓝牙认证后可用 热点关闭
Wi-Fi 原始模式 暂停 蓝牙连接及认证有效时可用 电脑连接后可接收

RaceChrono DIY 通知在独立的原始帧回调中处理,当前代码没有将它随 Wi-Fi 模式一起关闭。需要稳定采集时,建议一次使用一个主要数据接收端。

192.168.4.1:23 是二进制 CAN 数据服务地址。当前固件没有启用内置 HTTP 网页,直接用浏览器打开 http://192.168.4.1 不会出现配置界面。

6. 指示灯说明

当前固件将指示灯作为 BLE 数据发送活动提示:

状态 含义
常亮 默认状态,或最近没有成功提交 BLE 数据通知
约每秒闪烁两次 最近约 1.5 秒内有自定义 BLE 快照或 RaceChrono CAN 通知成功提交

指示灯不是完整的连接状态或 CAN 总线状态指示。CAN 数据没有变化、没有加载 Profile、没有开启通知时,都可能保持常亮。Wi-Fi GVRET 数据发送本身不更新该灯的活动计时,所以 Wi-Fi 正常采集时也可能常亮。

判断是否正在采集,应以应用或 SavvyCAN 中实际收到的数据为准。

7. 查询电池电压

支持 PGEAR CAN-Sniffer G1 接口的应用可查询设备电压采样值。手动调试步骤如下:

  1. 建立 BLE 连接。
  2. 启用 0xFFE1 的 Notify。
  3. 向 0xFFE1 写入:
{"cmd":"batt"}
  1. 从该特征的通知中读取响应,例如:
{"t":"batt","v":12.03}

v 的单位是伏特(V)。这是硬件分压和 ADC 采样得到的参考值,其准确性取决于实际电路和校准。该值不是电池剩余电量百分比。

8. 常见问题

8.1 扫描不到 PGEAR CAN-Sniffer G1

  • 检查设备供电。
  • 检查手机蓝牙及应用权限。
  • 关闭其他正在连接设备的 BLE 应用,再重新扫描。
  • 重启设备后在应用内扫描。
  • 如果仍显示旧名称,确认设备已经烧录改名后的固件,并重新扫描;仅修改源码不会改变设备中的程序。

8.2 蓝牙连接成功,但没有车辆参数

  • 自定义 BLE 应用需正确下发 Profile 并启用 Notify。
  • 检查目标 CAN ID 是否实际出现在接入总线上。
  • 确认目标总线速率为 500 kbps。
  • 检查 CAN H、CAN L 和地线连接。
  • 确认车辆总线已经唤醒。
  • 检查是否处于 Wi-Fi 原始模式;此时自定义 BLE 快照暂停。
  • 数据完全不变时可能不产生新的快照,先观察随车辆状态变化的通道。

8.3 转速、车速或温度数值不正确

检查车型配置的 CAN ID、起始位、位长度、字节序、符号、倍率、除数、偏移和单位。优先用已经验证的车型配置;能接收原始报文不代表解析规则正确。

8.4 找不到 Wi-Fi 热点

Wi-Fi 默认关闭。打开车涯或 PGEAR App,在 GO 界面连接 PGEAR CAN-Sniffer G1,连接后选择 wifi raw mode,再刷新电脑的 Wi-Fi 列表。重启后需要重新开启。

8.5 电脑连上热点,但 SavvyCAN 没有数据

  • 确认连接类型为 Network connection (GVRET),地址为 192.168.4.1,TCP 端口为 23。
  • 确认电脑仍连接 PGEAR CAN-Sniffer G1 热点,没有自动切回其他网络。
  • 检查防火墙或 VPN 是否影响本地网络连接。
  • 确认车辆总线有报文,接线正确且速率匹配。
  • 断开已有的其他采集客户端,重新建立连接。
  • 不要将设备速率设置为其他值;当前固件不会执行软件端的改速请求。

8.6 设备网页打不开

当前固件仅提供 BLE 与 GVRET TCP 数据通道,没有启用内置网页。使用配套应用或 SavvyCAN 完成连接和采集。

8.7 指示灯常亮,是否代表采集失败

不一定。Wi-Fi 数据发送不驱动活动闪烁,BLE 快照也会在数据不变时停止更新。检查接收端是否有数据,而不是只看指示灯。

8.8 断电后配置丢失

这是当前固件的行为。每次上电后由应用重新发送 Profile,需要 Wi-Fi 时重新开启热点。

9. 开发接入参考

以下内容面向需要接入 PGEAR CAN-Sniffer G1 的应用开发人员。普通用户可按前面的连接步骤使用。

9.1 GATT 服务

服务 UUID 特征 UUID 用途
0xFFE0 0xFFE1 自定义 Profile 写入、控制命令、快照及电压通知
0x1FF8 0x0001 RaceChrono DIY 原始 CAN 通知
0x1FF8 0x0002 RaceChrono DIY 过滤规则写入
0x00EE 0xEE01 预留通道,本说明不定义业务指令

通知通过 CCCD(0x2902)启用,写入字节 01 00。固件本地 MTU 设置为 500,客户端仍需进行 MTU 协商,不能假定所有手机都能接收最大长度通知。

9.2 Profile 示例

{
  "cmd": "set_profile",
  "baud": 500000,
  "rate": 20,
  "channels": [
    {
      "id": 578,
      "name": "RPM",
      "start": 16,
      "len": 16,
      "sign": false,
      "big": false,
      "mult": 0.25,
      "div": 1,
      "offset": 0,
      "unit": "rpm"
    }
  ]
}

此例仅展示格式,不代表所有车辆使用 CAN ID 578(0x242)发送转速。

字段 用途
cmd 按接口约定填写 set_profile
baud 保留字段;当前固件忽略改速请求,实际固定 500000 bit/s
rate 快照调度频率:20、50、100;缺省或其他值使用 20 Hz
channels 通道数组,当前最多处理 32 个通道
id CAN ID,JSON 中使用十进制数值
name / unit 通道名称与单位
start / len 信号起始位与位长度
sign 是否按有符号数解析
big 是否使用大端解析规则
mult / div / offset 物理值换算参数
low / high 范围定义,接收端按应用规则处理

物理值换算公式:

physical = raw × mult / div + offset

设备根据 channels 去重生成 CAN ID 白名单,快照只含这些 ID。位提取、符号扩展、字节序处理、物理值计算和范围判断由应用完成;设备不直接输出 RPM 等物理值。

旧接口约定中,big=false 使用 LSB 起始位,位 0 为 byte0 的 bit0;big=true 使用 MSB 顺序索引,位 0 为 byte0 的 bit7,位 8 为 byte1 的 bit7。该起始位表示法不能直接假定与任意 DBC 工具的 Motorola 起始位完全一致,导入配置时应由应用转换并验证。

9.3 Profile 写入顺序

当前固件通过启用 0xFFE1 Notify 的事件触发 Profile 解析。 它没有在收到完整 JSON 后立即解析,也没有基于写入超时自动提交。

首次连接推荐顺序:

  1. 发现 0xFFE0 / 0xFFE1,协商足够的 MTU。
  2. 将 Profile 压缩为紧凑 JSON,以 UTF-8 写入 0xFFE1。
  3. Profile 大于单次可写长度时,按顺序分块写入;每块长度不超过协商后的 ATT 可写长度,等待写入完成。
  4. 全部块写入后,再向 CCCD 写入 01 00,触发缓存 Profile 解析并启用通知。
  5. 检查收到的快照是否包含预期 ID。

如果通知已经启用,更新 Profile 前先写 00 00 关闭通知,写完新 Profile 后再写 01 00。不要只写 JSON 就等待它自动生效。

普通 Write 的分块会被固件累积;当前处理逻辑不处理 Prepare Write 的 Profile 内容。客户端应控制发送速度及总长度,避免缓冲区截断。直接 JSON 接收缓存为 4608 字节,需要留出结尾空间;不要把该缓存容量当作可无限扩展的接口。

建议使用 JSON 的 channels 格式。当前纯文本 ID 列表的回调没有将解析出的 ID 列表实际加载到快照过滤器,不应依赖该旧格式完成采集。没有专门的 Profile 加载成功应答,应结合实际通知验证生效情况。

9.4 自定义快照格式

每次通知为一个二进制快照:

偏移 长度 内容
0 1 字节 帧头 0xA5
1 4 字节 时间戳,uint32,小端,单位 ms
5 1 字节 条目数量 N
6 N × 13 字节 CAN 条目

每个条目:

CAN ID:uint32 小端,4 字节
DLC:uint8,1 字节
DATA:固定 8 字节,仅前 DLC 字节有效

总长度为 6 + N × 13 字节,32 个条目时为 422 字节。客户端应确保实际通知容量足够;当前发送函数没有按客户端 MTU 对一个快照自动分包。

条目按 Profile 中不同 CAN ID 首次出现的顺序排列,尚未收到的 ID 不出现在快照中。时间戳来自最近一次引起缓存变化的 CAN 数据,基于设备启动后的计时;不是日期时间,也不是每个条目的独立到达时间。uint32 时间戳会回绕,客户端应处理回绕与设备重启。

同一 0xFFE1 特征也用于发送电压 JSON,接收端需区分 0xA5 二进制快照和 JSON 文本响应。当前没有旧文档所述的无 Profile 全量 JSON raw-frame 自动输出。

9.5 模式控制与电压查询

Wi-Fi 模式控制需要官方 App 完成蓝牙认证。公开使用流程以第 5.1 节的 App 操作为准,本说明不提供手动写入命令开启或切换 Wi-Fi 模式的操作步骤。

电压查询命令以 UTF-8 文本写入 0xFFE1,每条短命令使用一次普通 Write。

命令 作用
{"cmd":"batt"} 查询电压,通过 Notify 返回 JSON
{"cmd":"voltage"} 查询电压的别名

9.6 RaceChrono DIY 数据格式

服务 0x1FF8 的 0x0001 通知包含:

[CAN ID:4 字节,小端] + [本帧 CAN 数据:DLC 字节]

它不使用 0xA5 快照头,也没有单独的 DLC 或时间戳字段。过滤写入使用 0x0002,其中多字节字段使用大端:

首字节 后续内容 作用
0x00 无 清空列表并禁止全部 ID
0x01 最小间隔 uint16,单位 ms 允许全部 ID,设置通知间隔
0x02 最小间隔 uint16 + CAN ID uint32 添加或更新指定 ID 的通知间隔

RaceChrono 过滤表最多保存 64 个 ID。通常由 RaceChrono 应用管理这些命令,普通用户无需手动写入。

10. 参数速查

设备名称:PGEAR CAN-Sniffer G1
BLE 自定义服务 / 特征:0xFFE0 / 0xFFE1
RaceChrono DIY 服务:0x1FF8
Wi-Fi SSID:PGEAR CAN-Sniffer G1
Wi-Fi 密码:12345678
GVRET TCP 地址:192.168.4.1:23
CAN 速率:500 kbps
上电默认模式:BLE,Wi-Fi 关闭
开启 Wi-Fi:车涯或 PGEAR App → GO → 连接 PGEAR CAN-Sniffer G1 → wifi raw mode
Wi-Fi 模式控制:仅支持经过蓝牙认证的官方 App
返回默认 BLE 模式:断电重启
查询电压:{"cmd":"batt"}