技术资源 / Integration

J1939 胎压:29 位扩展帧到底意味着什么

· 9 分钟阅读

J1939 胎压:29 位扩展帧到底意味着什么

一个只会发 11 位帧的控制器,接上发 29 位扩展帧的胎压接收器不会"直接就能用" —— 接收滤波器、调试工具、映射关系三样都得对上。下面按参数讲清楚到底变什么,以及决定"一天搞定还是一个月"的四个问题。

/assets/img/p-integrated-rcv-1600.jpg
/assets/img/p-integrated-rcv-1600.jpg

*接收器只是总线上的一个节点。你的控制器能不能看到它的帧,是滤波器问题,不是传感器问题。*

「29 位」具体改变什么

CAN 帧带标识符。标准帧 11 位,扩展帧 29 位。这个差别不是外观问题:

  • 地址空间:11 位只有 2048 个标识符,29 位约 5.36 亿个。只有扩展空间才装得下 J1939 依赖的参数组方案。
  • 仲裁:标识符同时决定总线优先级。扩展帧的优先级在 29 位标识符的头几个位里 —— 两个设备若用不同的编号方案,可能以很难在简单抓包里看出来的方式互相冲突。
  • 滤波配置:项目真正死在这一条上。 只配了标准帧的控制器会静默丢弃扩展帧:不报错、不打日志,数据就是不来。

静默丢失是最贵的一类故障,因为你第一次发现它是在下游 —— 一个什么都不显示的看板。

输出侧,用数字说

这些是我们公开的接收器参数,也是该写进规格书的:

参数值对集成方意味着什么
单接收器传感器数最多 256 个一台接收器覆盖整车,含 160 轮运梁车
接口CAN / RS485 / PROFINET / RS232 / Modbus RTU接口是料号决定,不是软件开关
CAN 波特率250 kbps,软件可配必须与总线段一致;有的现场跑 500 kbps
CAN 数据周期10 ms这是接收器→总线的刷新,不是无线间隔
传感器→接收器间隔可配,≤3 s物理上就慢,别拿它做控制环
供电10–30 V DC整车与固定设备都覆盖
防护IP68(接收器)冲洗与堆场工况

这两行最常被搞混:10 ms 是总线刷新,无线间隔是秒级。规格书里若把两者混为一谈,集成方会按错的尺寸设计缓冲。

29 位标识符怎么组成

J1939 把 29 位拆成若干字段:优先级、由页位 + PDU 格式 + PDU 特定字节组成的参数组号(PGN),外加源地址。集成时你不必背这个布局,但必须知道一件事:「胎压」映射到哪个 PGN,是约定,不是标准。 J1939 定义的是"容器",并没有规定所有供应商必须用同一条胎压报文。

实务后果:两家都声称"J1939 输出"的接收器,可能用不同 PGN、不同标度、不同字节序。「它支持 J1939」不是规格。要报文映射表。

映射工作落在谁那边

三种安排,成本差一个数量级:

1. 固定映射:接收器按文档化布局发压力与温度,你的控制器解。最便宜 —— 前提是文档存在且标度写清。

2. J1939 PGN:接收器把数据映射到平台已理解的 PGN。平台本身是 J1939 原生时最优;需要事先约定 PGN。

3. 客户自定义帧:标识符由你定义,接收器按你的定义发。最灵活,前置规格工作量最大。

我们自己的做法在项目允许时走第三条:CAN 定义留在客户手里,我们基于客户决定开放的数据点工作。报文映射表与 DBC 在 NDA 下释放 —— 这也是本文只讲结构、不列我们自己标识符的原因。

决定工期的四个问题

下单前问,而且问任何供应商都要问:

  • 你的控制器原生接受 29 位帧吗?这个设置能在应用代码里改,还是只能用厂商工具改? 只能靠工具 → 那台工具得到现场。
  • 你的工具吃什么 —— DBC、报文映射表,还是 PGN 文档? 这是三种不同东西;给错一种就是一周。
  • 标度换算归谁? 接收器发原始计数、平台要工程单位,就必须有人书面负责这个换算。
  • 某一轮缺失时,那一帧长什么样? 布局里必须写明。静默填 0 比报错更糟。

我们反复见到的三种失败

滤波器静默丢弃。 只接受标准帧的控制器配了扩展帧。修的是一个寄存器,找它要花一天抓包。

两个设备抢同一个 PGN。 接收器和另一块 ECU 用了从未确认独占的 PGN。台架上没事,装车后报文互相覆盖。

台架与实车标度漂移。 台架解原始值,平台按 bar 与摄氏度理解。一切看着合理,却整体差一个常数 —— 最糟的那类缺陷,因为数字从来不显得"明显坏了"。

上台架,别直接上车

找扩展帧问题最便宜的地方,是你自己的控制器 + 我们的接收器 + 一台 CAN 分析仪,三者接在同一段总线上。装上任何车辆之前先在台架把这三样凑齐,十分钟抓包能回答在现场要花好几天的问题。

按顺序查四件事:

  • 分析仪看得到帧吗? 看得到而你的控制器看不到 → 问题在控制器的接收滤波器,不在接收器。
  • 标识符和你拿到的映射一致吗? 比原始标识符,不要比解码后的名字。有些工具会偷偷重定基,让一份正确的映射看起来是错的。
  • 标度能不能来回一次? 手工解一帧,和文档对。台架解出来的和文档不一致,先停下来解决,别急着上车。
  • 某一轮缺失时接收器发什么? 拿掉一颗传感器看那一帧。文档行为与观测行为应当一致;若布局里根本没有定义缺失值,那是规格缺口,现在补比后面补便宜。

两个实务提醒:第一,你的控制器在发报文时让分析仪保持被动监听 —— 接第二个主动节点并带冲突映射,是台架上最常见的坑。第二,录成文件而不是盯着滚动窗口看,你要的那个事件往往就是你滚过去的那一条。

「10 ms」是什么意思、不是什么

接收器每 10 ms 刷新一次它的 CAN 帧。这是「总线数据有多新」该给集成方的数字,快到控制器可以把它当普通整车信号处理。

但它不是传感器的无线间隔。传感器按慢得多的节拍发(秒级,不是毫秒级),因为它们是共用射频频段的电池设备。如果一份规格书暗示「胎压每秒测 100 次」,那份规格书是错的,而照它设计的控制环,是照一个不存在的数字在设计。

把这两个速率分开,实际上就是「集成方能实现的规格」与「第三周开始吵架的规格」之间的差别。

我们通常怎么开始

如果机器上已经有控制器或平台、需要胎压数据上总线,这条线就是对的 —— 接口变体见接收器系列,它和系统其它部分的关系见产品总览。如果你是集成进机器控制器而不是车队平台,方案页上的已部署配置展示了起重机、堆高机和矿卡上做过什么。

一个问题,我们就能书面回答: 你的控制器今天接受什么 —— 裸 29 位帧、J1939 PGN,还是你自己定义的固定 CAN 映射?把这一条连同轮位数量告诉我们,我们会告诉你三种安排里哪种合适、以及你会收到哪些文档。

← 全部文章

常见问题

Does a 29-bit TPMS receiver work on a controller that only accepts 11-bit frames?
Not directly. The controller must be configured for extended-frame acceptance and its filter/mask registers set to the extended-id format. Some controllers expose this only through a tool, not in application code.
Is J1939 the same thing as 29-bit CAN?
No. 29-bit is the frame format; J1939 is a higher-layer agreement on how the 29-bit identifier is split into PGN fields. You can have 29-bit frames that are not J1939.
Do I need the DBC file or the message map?
Both are useful and they answer different questions. The message map tells you what each frame carries; a DBC lets a tool decode it automatically. Ask for whichever your tooling consumes, and ask who owns the scaling.
Can the receiver output both formats at once?
Some configurations can present 11-bit and 29-bit output on separate channels. That is a project decision, not a default - state it before the order, not after.