CAN总线网络中可删除ECU的SAE J1939 PGN编号是多少?
SAE J1939地址注销相关PGN说明
你需要查找的用于声明ECU地址不再在CAN总线网络中使用的PGN编号为60928(十六进制表示为0xEE00),该PGN官方名称为地址声明(Address Claimed),SAE J1939规范中定义该PGN可同时用于地址占用声明、地址注销声明两种场景。
地址注销场景的使用规则
- 报文优先级默认设置为6
- 采用全局广播形式发送,无需指定单独目标地址
- 数据域固定为8字节,全部填充为
0xFF - 报文源地址字段填写需要注销的ECU地址,网络内其他节点收到该报文后,会判定对应地址已被释放,不再处于占用状态
参考实现代码
你开发的纯C语言开源SAE J1939库可以参考以下最小实现逻辑:
#include <stdint.h> #include <string.h> // 传入需要注销的ECU地址与输出帧结构体,构建地址注销广播帧 void j1939_build_addr_deleted_frame(uint8_t deleted_addr, J1939_Frame *out_frame) { out_frame->priority = 6; out_frame->pgn = 0xEE00; out_frame->src_addr = deleted_addr; out_frame->dst_addr = 0xFF; // J1939全局广播地址 out_frame->dlc = 8; memset(out_frame->data, 0xFF, 8); }
内容的提问来源于stack exchange,提问作者euraad
相关产品推荐
相关产品推荐

