技术资源 / Integration

为什么我们不要你的 CAN 协议

· 6 分钟阅读

为什么我们不要你的 CAN 协议

有一句话卡住的车联网项目,比任何硬件问题都多:*「请提供你们的 CAN 协议。」*

它听起来像个技术要求,其实是个组织问题 —— 而且项目往往就死在这里。不是因为提要求的人不讲理,

而是因为被要求的那一方没法很快给出答复。这篇讲:我们为什么从不问这句话,改问什么,以及它在

实践中改变什么。

这句话本质上是在要一份内部文件的对外释放

如果你是做整机的,你的 CAN 定义就是内部文档。它描述了你控制器的信号、标度、时序和故障语义。

把它交给供应商,意味着:

  • 要走内部审批 —— 因为协议文档通常不止包含供应商要的那一个信号;
  • 要过法务 —— 因为文档描述的是你产品的行为;
  • 要面对维护问题 —— 一旦外面有了副本,每次固件改版,让那份副本跟上就是你的活。

这些都不是做不到,而是都慢,而且都不在供应商的排期里。于是一个本该三月启动的项目拖到九月 ——

到那时预算的负责人可能已经换人了。

这才是那句话的真实成本:不是手续,是拖延。

我们改问什么

我们只要一张清单。要求就这么点:

1. 哪些值重要 —— 油压、液压温度、工作小时、载荷、转速,机器需要报什么就写什么。要名字,

不要映射。

2. 你习惯用什么单位 —— bar 还是 kPa,摄氏度,小时,计数。

3. 每个值多久报一次才有意义 —— 温度一分钟一次足够;故障标志必须立刻。

4. 数据要到哪里 —— 你的平台、你的车队系统、一个文件,还是一个 ERP 接口。

有了这张清单,我们在自己这一侧做采样计划,把数值通过 API 交出去。你信号到我们报文的映射写一次,

写成一份文档留给你,改动权也在你。

关键的是「没有离开你组织」的那些东西:协议文档、DBC 文件、固件。

为什么这不等于 OBD 那类行车电脑读取

有一种常见误解:任何不靠协议就能读整车数据的设备,都是在用标准化诊断做文章。那是另一类产品,

也有另一个限制 —— 它只看得到通用诊断层暴露的那一小部分,而那一小部分远小于机器真正知道的东西。

我们不做这个交换。设备直接读 CAN 总线,按机器实际的波特率,报文按项目选。区别只在于

定义由谁持有 —— 由你持有,我们基于你开放的哪些数据点工作。所以当那个真正有价值的信号

不在任何标准诊断集里时,这套做法依然成立。

客户实际怎么用它(四种)

定时查询。 平台按自己定的间隔要一个值。适合慢信号 —— 液压温度、电池电压、小时表:趋势比瞬间

更重要。终端应答,不做连续推流。

变化触发上报。 数值越过阈值或发生变动时报一次,再加一个心跳,让你知道机器在线且没变化。

对车队来说这是运行成本上最大的一处差别 —— 安静是便宜的,持续推流不是。

远程调参。 CAN 波特率和采样点可以远程改。这件事的意义比听起来大:同一款终端就能服务不同机型,

一个混合机队不会变成混合备件问题。

CAN 透传升级外挂 ECU / VCU。 终端转发 CAN 流量,让远端工具能和外挂控制器对话 —— 改参数,

以及在项目允许的范围里做固件升级。这属于定制范围,按项目约定,不是目录上的功能。

还得谈定的事(这块我不粉饰)

诚实比一个漂亮说法更重要,所以说清这套做法没有省掉什么:

  • 数据点清单仍然是一份规格。 你那边得有人决定值不值得报。我们没法从一个型号猜出来。
  • API 契约要写。 报文字段、单位、时间戳,以及某个传感器漏读一次时报文长什么样 —— 这是文档,

要双方各出一个小时。

  • 消费端是你的活。 平台侧的对接是你的;我们交数值,不替你接看板。
  • 改装是现场活。 终端装哪儿、怎么取电、线束怎么走,是现场决定,不是软件决定。

为什么第一个数据点来得快

第一个数据点常常在一天左右的联合工作内能跑通,不是因为工程简单,而是因为关键路径短:没有

协议释放要批,没有文档要脱敏,没有信号定义要过法务。两个工程师对五个字段名和一个间隔达成一致,

数字就开始来了。

这就是全部论点。差异化不在硬件,在审批路径。

接下来看哪里

如果你在回答的问题是「能不能拿到机器数据、又不交 CAN 定义」,答案是可以 ——

架构在 CAN 转 4G 车联网页,更细的接口说明在 CAN 协议 API 页。

如果你要的是接口选型而不是 API,CAN 总线车联网 讲了三种接法。

如果你要记的是工况而不是报警,车队数据记录器 讲变化上报那套。

如果你已经知道自己要什么,把清单发过来:哪些值、什么单位、多久一次、发到哪里。有这四条就够

我们书面回答:硬件暴露什么、你的集成方还需要做什么。把数据清单发给我们。

← 全部文章