ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

tp.cm和tp.dt报文说明,为什么计算的pgn不对,1939里的GPN如何计算,什么时候的报文没有目标地址。

2021-02-19 18:58:11  阅读:242  来源: 互联网

标签:GPN 字节 报文 PDU2 tp PF PDU1 PDU


ISO 11989只规定了CAN总线的物理层和链路层协议,在实际应用中,为保障不同厂家设备的兼容性,需要统一CAN总线的应用层协议。常见的应用层协议有:SAE J1939、CANOpen和DeviceNet。

  1. SAE J1939
    SAE J1939基于CAN2.0B,通信速率250kbit/s,最多可带30个设备,最大总线长度可达40 m,节点线最长1米。SAE J1939定义了29位Indentifier和数据域的使用方法。定义协议数据单元(PDU = Indentifier+数据域),PDU格式:
    在这里插入图片描述
    优先权P:值越小,报文的优先权越高。

参数组编号PGN:参数组编号唯一标识一个参数组,表征报文的内容和用途,确定报文的类型和传播数据需要的帧数目。

扩展数据页EDP与数据页DP:没啥特别解释的,分类用的。

PDU格式PF:PDU有两种类型PDU1和PDU2,PDU1向特定地址发送报文,PDU2向全局地址发送报文。当PF为0239时,表征报文为PDU1;当PF为240255时,表征报文为PDU2。

特定域PS:功能由PF决定,当PF为PDU1时,PS表示目标地址;当PF为PDU2时,与PF的4个最低有效位能够共同确定4096个PDU2格式参数组。

源地址SA:发送消息的电控单元(ECU)地址。

数据域:CAN2.0的数据域最多支持8字节的数据,如果PDU的数据小于等于8字节,1个PDU用1个CAN2.0帧传输即可;如果PDU的数据大于8字节,就需要在发送时进行拆包,在接收时进行重组。接收端如何识别是否需要重组以及怎么重组呢?J1939的做法是在拆包的情况下,将8字节的数据区的第一个字节用于表示拆包后的序号(1-255);因此,最长的PDU为255×7字节。
例子:

;----------------------------------------------------------------------  (特定目标地址通讯)
                                 PDU1

      P    R     DP      PF       PS(DA)          SA      Data Field
      3    1     1       8         8              8       0-64

;----------------------------------------------------------------------  (广播)
                                 PDU2
      P    R     DP      PF       PS(GE)          SA      Data Field
      3    1     1       8        8               8       0-64

;---------------------------------------------------------------------

18FEDF00

110| 0 0 | 11111110 11011111 | 00000000
优 | | |
先 | | PGN | 源地址
级 | | |

优先级:110 ro 6
参数组:FEDF or 65247DEC
源地址:00H

及就是PF>240,则没有目标地址,只有源地址00XXBB
PF<240,则有目标地址,有源地址,PGN既就是00XX00

TP.CM报文的PF=EC,EC<F0,所以TP.CM的CANID是包含目标地址的,但是目标地址是FF,是广播地址,而PGN则应该是00EC00,而不是00ECFF。

标签:GPN,字节,报文,PDU2,tp,PF,PDU1,PDU
来源: https://blog.csdn.net/pvmsmfchcs/article/details/113869874

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有