【问题标题】:J1939 - What PGN number should I use for request about delete NAME?J1939 - 我应该使用什么 PGN 号码来请求删除 NAME?
【发布时间】:2021-07-11 15:00:50
【问题描述】:

我有一个关于 J1939 的问题。我正在寻找请求删除 ECU 名称的 PGN 编号。

我为开源 SAE J1939 制作了一个库 https://github.com/DanielMartensson/Open-SAE-J1939

有两个 PGN 号码

    PGN_ADDRESS_CLAIMED = 0x00EE00,
    PGN_COMMANDED_ADDRESS = 0x00FED8,

PGN_ADDRESS_CLAIMED 询问有关 ECU(名称)的信息,PGN_COMMANDED_ADDRESS 不是请求,更像是用于更改有关 ECU 及其目标地址的信息的命令。

问题:

在哪里可以找到可以删除ECU信息或断开ECU的PGN号? 或者你认为我可以说PGN号可以是0xFFFFFF?我希望 PGN 已经被占用了?

我问的原因是当我在一个 ECU 上更改地址和信息时,旧的信息和地址仍然存在......在其他 ECU 上可用。我的库的工作方式就像所有 ECU 都具有关于所有 ECU:s 的相同信息。

如果你想知道我在做什么。我正在构建一个非常易于使用且易于理解的 J1939 库。我专注于最少的代码,库的目的是用户应该轻松实现自己的外部函数。

这是我的 J1939 库中的请求函数示例:

/* PGN 00EA00 - Request for name information about other ECU */
ENUM_J1939_STATUS_CODES J1939_User_Send_Request(J1939* j1939, uint8_t DA, uint32_t PGN_code) {
    uint8_t PGN[3];
    PGN[0] = PGN_code;                                                      /* PGN least significant bit */
    PGN[1] = PGN_code >> 8;                                                 /* Look in J1939_Enum_PGN.h */
    PGN[2] = PGN_code >> 16;                                                /* PGN most significant bit */
    uint32_t ID = (0x18EA << 16) | (DA << 8) | j1939->this_address;
    return CAN_Send_Request(ID, PGN, 100);                                  /* 100 ms delay */
}

【问题讨论】:

    标签: can-bus j1939


    【解决方案1】:

    AFAIK,J1939 不提供取消注册地址的功能。 但是,您可以发送地址声明消息,其中 SA 为 0xFE,NAME 设置为您在初始地址声明期间使用的值。

    我的实现方式是,我的库曾经将所有地址及其名称组合存储在“地址簿”中。在发送任何消息之前,DA 已根据地址簿进行了验证。 如果节点发送地址声明,SA 为 0xFE,名称将在地址簿中搜索并删除。

    搜索有效地址有点开销。

    【讨论】:

    • 感谢您的回复。但是我的库是这样工作的:每个 ECU 都知道其他 ECU 的地址。假设我们有 3 个 ECU。如果 ECU 1 告诉 ECU 2 更改地址,我如何告诉 ECU 3 ECU 2 已更改其地址?
    • 我假设,所有 ECU 都在同一个网络中,当您发送删除名称的消息时,网络中的所有节点都会收到该消息。一旦地址“无人认领”,Node 就可以通过标准流程认领新地址。
    • 命令地址不是这样工作的。命令地址是用于向 ECU 发送名称的命令,您需要指定新地址(第 9 个字节),还需要发送到该特定 ECU。如果您向所有 ECU 广播命令地址,那么所有 ECU 将具有相同的地址。
    • 这就是我用自己制作的 PGN 号码解决问题的方法。 github.com/DanielMartensson/Open-SAE-J1939/blob/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    相关资源
    最近更新 更多