SAE J1939协议

SAE J1939

J1939/11物理层

1. 物理介质为屏蔽双绞线;
2. 传输速率为250Kbps;
3. 同一网络上最大子系统数为30个;
4. 最大传输线长度为40m;
5. 物理层还定义了数据的物理特性及总线的电气连接特性。

J1939/21数据链路层

  1. J1939只使用CAN2.0B中的扩展帧,共29位标识符

  2. CAN报文基于ID,1939基于PGN

  3. 重新解释了29位标识符,分解为
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

学习完所有的在这来个小总结
  • CAN报文基于ID,J1939基于PGN

    • J1939将ID划分为各种段,并将其中某些段组成PGN
  • PDU和PGN

    • PGN是 J1939 标准中的唯一帧标识符,用于引用将保留位®、数据页(DP)、PDU格式(PF)和 PDU特定字段(PS)的值组合成单个 18 位值。
    • PDU是PF段+PS段,PF段标识PDU格式,PS段是在此格式下的参数值
    • 看图应该是这种解释,但我看有些厂家的发动机手册,一般写PGN就是指代PDU
      • 发动机厂商,实际将ID分为了三个部分:(优先级+R+DP) + PDU + 源地址
      • 例如,最常见的0x0CF00400,0C为(优先级+R+DP),F004为PDU,00为源地址
        • 0C二进制00001100,由于是29位,实际只有01100有效,即优先级011为3,保留位为0,DP为0,一般DP都为0
  • P占据3bit,代表优先级,一般控制报文都是011

  • R为保留位,一般都设置为0

  • DP为1,代表PGN的第一页。DP为0,代表PGN的第0页。

  • PF用于标识PGN的类型,以0xF0为分界线

  • 如果PF <= 0xF0,则PS表示为目标地址( Destination Address, DA),否则PS表示为组扩展(Group Extension,GE)。

    • 这个没啥用,PGN个数计算:(240 + (16 * 256) * 2) = 8672。其中,240是数据页中的PF<240时,GE恒等于0,所以数目是240。16是数据页中的PF>240时,数值从240到255之间,共16个数。256是指GE(等于PS)的取值个数,具体是从0到255之间。2表示数据页(DP和R组成),分为页0和页1。
  • 举例: 0x0CF00400,0C的二进制为 000 011 00,其中最高三位为填充功能,因为ID为29位,但ID只能为28或32位。其中0b011为优先级P段,0b00为R段和DP段,0xF0为PF段为8位,0x04为PS段(目标地址)为8位,0x00为SA段(源地址)为8位

  • 所以PGN为0b00+0xF0+0x04 = 0xF004,根据PGN查询J1939标准文档,标准文档定义了数据帧的格式。

  • 在这里插入图片描述

  1. 帧起始(SOF)
    • 1bit,显性电平,与CAN相同
  2. 优先级(P)
    • 3bit,仲裁的优先级,也用于优化发送数据的报文延迟
  3. 扩展数据页EDP(R)
    • 保留位,设置为0
  4. 数据页(DP)
  5. 替换远程请求Substitute Remote Request (SRR)
    • 只存在于扩展帧,SRR为隐性电平
  6. 标识符扩展位(IDE)
    • IDE为1,表示扩展帧
  7. PDU格式(PF)
    • 确定PDU格式,两种方式计算得到的PGN不同
  8. PDU特定域(PS)
    • 占8bit,PS的定义取决于PF, 它可能表示目标地址( Destination Address, DA),可能表示组扩展(Group Extension,GE), 如果PF < 0xF0则表示为DA,否则表示为GE。
  9. 目标地址(DA)
    • 占8bit,DA是报文的目标地址,除目标地址的设备外,其他设备应该忽略此报文。

    • 如果目标地址为0xFF,则表示为全局地址,此时所有设备都应该监听此报文并在收到报文后做出响应。

  10. 组扩展(GE)
    • 组扩展与PDU 格式域的低四位(注意:当PDU 格式域最高四位被置1,说明PS 域是组扩展)规定了每个数据页4096 个参数组。

    • 这4096个参数组仅使用PDU2格式可用。此外,在每个数据页中提供了240个参数组,仅供PDU1格式使用。总共有8672个参数组可以使用当前可用的两个数据页面来定义

  11. 源地址(SA)
    • 占8bit,发送报文的设备的地址,网络上只能有一个具有给定源地址的设备。
  12. RTR,控制段,CRC段,ACK段,帧结束段与CAN保持一致
  13. 参数组编号(PGN)
    • 是 J1939 标准中的唯一帧标识符,用于引用将保留位®、数据页(DP)、PDU格式(PF)和 PDU特定字段(PS)的值组合成单个 18 位值。

    • 参数组还包含了每个报文的 8 字节 CAN 数据字段中的参数分配、重复率和优先级。PGN是J1939标准中唯一的帧标识符

    • 全局参数组编号

      • 此类PGN识别广播(发送给所有人)的参数组。这里,PDU格式(PF) >= 240,并且PDU特定字段(PS)是组扩展。
    • 特定参数组编号

      • 这些用于对等发送(到特定设备)的参数组。如果PDU格式(PF) <= 239,并且PDU特定字段(PS)设置为0,则无论两个 PGN 的类型如何, PDU 格式、PDU 特定字段、数据页和扩展数据页都用于识别相应的参数组。
Protocol Data Unit (PDU) Formats 协议数据单元格式
  • 定义了两种PDU格式:
    PDU1格式(PS =目标地址)和PDU2格式(PS =组扩展),PDU1格式允许将CAN数据帧定向到一个特定的目标地址(设备);
    PDU2格式只能通信不特定于目标的can数据帧。
  • 建立了两种单独的PDU格式,是为了提供更多可能的参数组号组合,同时仍然提供特定于目的地的通信。已分配了专有参数组定义,以便这两种PDU格式都可用于专有通信。为专有通信建立了一种标准化的方法,以防止在标识符使用中可能出现的冲突。
  1. PDU1
    • 此格式允许将适用的参数组发送到特定的或全局目标。PDU特定字段包含一个目标地址。PDU1格式消息可以被请求或发送。
      PDU1格式消息由PF字段确定。当PF字段值为0到239时,消息为PDU1格式。PDU1消息的格式如上图所示。另请参见下图,PDU1格式。
  2. PDU2
    • 此格式只能用于将参数组作为全局消息进行通信。PDU2格式消息可以被请求或发送。
    • 在分配PGN时选择PDU2格式,防止PGN无法被定向到特定的目的地。PDU特定项包含一个组扩展
PDU总结
  1. PDU1和PDU2格式下PGN的总数为:( 240+(16*256))*2 = 8672
  2. PDU1格式主要分配给必须指明目标地址的PGNs,数量有限;PDU2格式下的PGNs不能用于必须指明目标地址的情况。大部分PGNs都定义在PDU2段。
  3. 为了保证实时性,报文更新速率小于100ms时不允许多包发送。
  4. PDU1和PDU2格式下均支持单包报文和多包报文。无论是PDU1还是PDU2格式,其前半段PGNs标识的报文更新速率小于100ms,不允许多包发送;后前半段PGNs标识的报文更新速率大于100ms,允许多包发送。
  5. 目前支持五种类型消息,分别为:命令、请求、广播/响应、确认和群扩展。特定消息类型由其分配的参数群编号识别。
  6. RTR位(在CAN协议远程帧中定义)不可用于隐性状 态 ( 逻 辑 1 ) 。
  7. 因 此 , 远 程 传 输 请 求( RTR=1)在SAE J1939中不适用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值