CAN协议 J1939「建议收藏」

CAN协议 J1939「建议收藏」转自:http://blog.sina.com.cn/s/blog_bf97bd7e0102wl2y.html这几天在公司看了SAE推行的J1939标准(SAE:美国汽车工程协会),这里整理下学习要点,主要包含以下几个协议:物理层SAEJ1939-11(未看)数据链路层SAEJ1939-21网络层SAEJ1939-31(未看)应用层SAEJ1939-…

大家好,又见面了,我是你们的朋友全栈君。

转自:http://blog.sina.com.cn/s/blog_bf97bd7e0102wl2y.html

这几天在公司看了SAE推行的 J1939标准(SAE:美国汽车工程协会),这里整理下学习要点,主要包含以下几个协议:

物理层 SAE  J1939-11(未看)

数据链路层  SAE  J1939-21

网络层 SAE  J1939-31(未看)

应用层 SAE  J1939-71

故障诊断 SAE  J1939-73

网络管理层 SAE  J1939-81

 

下面主要介绍数据链路层和应用层:

 

介绍前,首先介绍下缩写:

PGN:参数组(群)编号           

PDU:协议数据单元

SPN:可疑参数编号

SOF:帧起始位

SRR:代用远程请求

RTR:远程传输请求

IDE:标识符扩展为

DLC:数据长度码

 

 

J1939-21 数据链路层:

数据链路层:为物理链接之间提供一种可靠的数据传输(发送CAN数据帧必需的同步、出错控制、顺序控制和流控制)。

 

有几个概念先介绍下:

帧 (Frame):组成一个完整信息的一系列有序的数据位;

其中CAN帧以帧起始(SOF)开始,以帧结束(EOF)结尾;

标准帧:定义为11位标识符

扩展帧:定义为29位标识符

报文(Message):一个或多个具有相同参数组编号(PGN)的CAN数据帧;(一个或多个

CAN数据帧具有相 同PGN号,就是报文)

包(Packet):一个单一的CAN数据帧就是1个包;(一个报文包含参数组的长度小于等

于8字节,也称为包)

多包报文:当具有相同参数组编号(PGN)的所有数据需要使用多个CAN数据帧来传输时使

用的一种J1939报 文。(每个CAN数据帧拥有相同的标识符,但每个包中数据不同)

 

协议数据单元(PDU):

格式如下图:

 

优先级

扩展数据页(保留)

数据页位

PDU格式

PDU特定域

源地址

数据域

P

R

DP

PF

PS

SA

DATA

3

1

1

8

8

8

8Byte

                 

其中,

优先级(P):3位用来表示优先级范围,所有控制 消息的缺省值是3(0112),其他所有信息、专用、请求和ACK的缺省优先级是6(1102)

数据页位(DP):数据页位选择参数群描述的辅助页。在分配页一的PGN之前,先分配完页零的可用PGN。

数据扩展页(EDP)和数据页(P)关系:

扩展数据页位

(EDP)

数据页位

(DP)

功能描述

0

0

SAE J1939 第0页PGN

0

1

SAE J1939 第1页PGN

1

0

SAE J1939 保留

1

1

定义位ISO 15765-3报文

 

 

PDU格式(PF)和PDU特定域(PS)的关系:

PDU格式(PF)

PDU格式

PDU特定域(PS)

PF<240

PDU1格式

PS是目标地址(DA)

PF = 240-255

PDU2格式

PS是组扩展(GE)值

 

PDU1和PDU2时的参数组编号(PGN)数目为:

EDP 

 

DP

PF

PS 

 

PDU1时参数组编号

0

0或者1

0-239

目标地址

 2X240(PF的值)=480

 

EDP 

DP

PF 

PS 

PDU2时参数组编号

0或者1 

 

240-255共16个数

组扩展值0-255

(共256个数)

2X16X256=8192

 

其中PGN计算公式为:

    PGN = DP<<|PF<<8|PS;

例:数据页位:0,PDU格式:235,特定PDU段:目标地址(对于TP.CM_BAM数据传送使用全局地址(DA=255))(对于RTS/CTS数据传送不允许用全局地址)

 

         则PGN = 235*256+0 = 60160(0xEB0016)

                            11101011<<8|0

 

 

多包发送:

BAM:广播通知/公告消息

DT:数据传送消息

多包数据发送拆装与重组:大于8字节消息发送,必须拆分,

拆分原则:数据域的首字节定义为数据包序列编号:1-255;

            最大拆分数据长度是255包*7字节/包 = 1785个字节

其中,RTS(发送者),请求发送

      CTS(响应者),准备发送

广播数据传送次序如下图:

字节:

1

控制字节=32,广播公告消息(BAM)

 

2,3

整个消息大小,字节数目

 

4

全部数据包的数目

 

5

保留给SAE设定使用,该字节应设为FF16

 

6-8

所装载数据的参数群编号

而数据传送消息格式(TP.DT):

    Byte:       1           序列号 1-255(1Byte)

            2-8         分组数据(7 Bytes)

                      注意多包参数组的最后一个包可能需要不到8个字节数据,

多余的字节填充0xff16   

 

故障诊断

故障诊断代码DTC构成:

    a、可以参数编号(SPN)

    b、故障模式标志(FMI)

    c、发生次数(OC)

    d、可以参数标号的转换方式(CM)

其中,DM1:当前故障码(正在发送的所有故障)

    DM2:历史故障码 

DTC由四个字节构成 

DTC

字节3

SPN低8位

(第8位为最高有效位)

字节4

SPN第2字节

(第8位为最高有效位)

字节5

SPN高3位(第8位为最高有效位)

FMI低5位(第5位为最高有效位)

字节6

SPN

FMI

CM

OC

8bit

3bit

5bit

1bit

7bit

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140896.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 静态分析的四种基本方法是_比较静态均衡分析方法

    静态分析的四种基本方法是_比较静态均衡分析方法*数据流分析(DataFlowAnalysis)将数据看作是图,节点是程序的基本快,边是描述控制如何从一个基本快转移掉另一个基本快。图可以解决很多问题,例如:以图中边的抽象得出数学方程,七届就

    2022年8月4日
    6
  • (转)算法帝国:华尔街交易怪兽的核武器缔造史

    (转)算法帝国:华尔街交易怪兽的核武器缔造史算法帝国:华尔街交易怪兽的核武器缔造史华尔街见闻2017-02-01访问量5701980年华尔街的黑客生涯:天时地利http://wallstreetcn.com/node/28758320世纪70年代末期,算法开始进入人们的工作,这一趋势席卷了世界各地的金融市场,标志着华尔街黑客时代已然来临。华尔街逐渐吸引了美国越来越多杰出的数学家和科学家投身于编写交易算法的工作。在布莱克?

    2022年7月11日
    20
  • linux ioctl函数详解,ioctl函数详解「建议收藏」

    linux ioctl函数详解,ioctl函数详解「建议收藏」1.介绍Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的信息,所以,我们有必要了解一下ioctl函数的具体实现.2.相关结构体与相关函数#includeintioctl(intd,intrequest,….);参数:d-文件描述符,这里是对网络套…

    2022年10月18日
    1
  • 32个Python爬虫项目让你一次吃到撑

    32个Python爬虫项目让你一次吃到撑===========================若出现链接失效,请留言会及时修复===========================今天为大家整理了32个Python爬虫项目。整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心。所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)OWechatSogou[1]-微信公众号爬虫。基于搜狗微信搜索的微…

    2022年6月18日
    40
  • 小爱同学app官方网站(小爱同学唤醒app)

    小爱同学app是一款以连接小爱同学享受人工智能乐趣生活为核心卖点的软件,超多种类的手机都能够使用,无论是苹果亦或是华为小米等,都能够完美的配适,并且还能使用手机唤醒小爱同学,帮它联网,教他各种不同的知识,之后还能和你愉快的聊天!小爱同学app特色听听音乐,看看各种笑话,休闲无比放松逗小爱,即时你是孤身一人也不再会孤单!远程操控你的各种智能设备,远距离控制不再是问题,解决所有的难题!自带语音识别的功…

    2022年4月10日
    267
  • UpdatePanel概览

    UpdatePanel概览微软的asp.netajax为我们进入AJAX世界提供了方便的入口,让许多不熟悉js甚至不了解什么是ajax的人也能享受到ajax技术的好处.在asp.netajax1.0中,updatepan

    2022年7月1日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号