汽车:ECU如何告诉CAN框架是UDS协议的一部分



阅读很多规格,但仍然无法获得简单的内容。

所有UDS请求都封装在ISO-TP数据包中,这些请求以简单的can框架封装,因此ECU不断从CAN BUS接收帧流。

ECU如何决定可以框架是任何高级协议的一部分?

例如,我已将安全请求发送给ECU,CAN框架数据看起来像

02 27 01

ECU如何确定这不仅是一定数数据,还是协议的一部分?

当高级协议"互相交谈"时,我无法找到与ISO/OSI堆栈的任何关系,因此我们知道如何解码数据包。

每个系统定义用于特定协议的can消息ID。

在大多数情况下,OBD-II将发送可以通过查询的iD 7DFH以及来自不同模块的响应的更高ID,但即使在特定的汽车模型上也可能有所不同。

找出用于基于UDS的通信的CAN ID的一种方法是发送简单的测试仪 - 呈现(SID 3EH)消息并观察似乎具有适当响应的CAN ID。

uds can通过can can中指定了ISO-15765-2零件,并描述ECUS或更好控制功能之间功能(广播)和物理(P2P)通信的网络和传输层。

普通CAN ID不会实现任何网络功能,例如地址。为此,使用SAE J1939网络层。在J1939网络中,每个客户端都有一个地址和每个功能参数组(PGN)。所有这些都是用29位可以ID编码的。例如CAN ID 0x18EF8081。这将通过pgn 0xef将消息从CAN客户端0x81传输到0x80,0x18是优先级。

在UDS上可以使用PGNS 0xDa(物理)和0xDB(函数)用于所有通信。使用该信息,您可以实现一个只能与CAN ID的PGN部分匹配的CAN ID过滤器。

最新更新