SAEJ1939-21数据链路层部分解读(第一部分)

OSI在SAEJ1939中的应用:
应用层->网络层->数据链路->介质访问控制->物理层。
对应:
优先级,R,DP,PF,SA,数据->一个或多个PDU->一个或多个CAN数据帧。

R是保留位,DP是数据页,PF是PDU格式,PS是特定PDU,SA是源地址。CAN是控制器局域网,ID是标识符,P是优先级,GE是群扩展,DA是目标地址,RTR是远程运输请求。SA是帧起始。

PDU(协议数据单元),它定义了一个框架,框架里组成一些要发送消息并放入CAN数据帧。通过物理介质传送到网络设备。

PF是PDU格式,既是确定PDU格式的8位构成于,也是确定数据域对应的参数群编号的域。
如果消息大于8字节,必须分组封装发送。小于8字节,使用单个CAN数据帧。

PS是特定的PDU,取决于PDU的格式。它可能是目标地址DA,可能是群扩展GE。如果PF值小于240,它是目标地址;在240和255之间,它就是群扩展。

SA源地址,它的域长8位,一个源地址只能匹配一个设备。

数据域:长度在0到8字节的数据,它表示一个给定参数群是,可用CAN数据帧全部的的8个字节。
长度在9到1785个字节时,数据通信通过多个CAN数据帧实现。会使用传输协议功能

PDU1格式:适用于参数群被发送到特定目的地和全局目的地。
PDU2格式:只能用在作为全局消息的参数组通信中。它的消息的值在240到255之间,值为255留做专用

消息类型:命令,请求,广播/响应,确认和群扩展

命令:消息类型包括哪些从源地址命令特定目的地或全局目的地的参数群,目的地接收到关于命令类型的消息应采取特定的动作。
它的类型消息包括传动控制、地址请求、扭矩/速度控制等。

请求:消息类型包括了从全局范围到特定目的地请求信息的功能。

广播/响应:消息类型是某设备主动提供的消息广播,也可能是命令或请求的响应。

确认:两种形式。第一种由CAN协议规定,它是确认消息已被至少一个节点接收的“帧内”确认组成。第二种由应用层规定,对于特定命令、请求的普通广播或ACK或NACK响应。

群功能:此消息类型用于一组特殊功能(如专用功能、网络管理功能、多组传输功能等)。专用群功能规定另一个在传输专用消息过程中消除不同制造商之间CAN标识符的方法,同时也规定 了当需要接收员和识别专用消息的方法。

消息优先级:CAN标识符的值决定了消息优先级。较小值0具有较高的优先级,值最大的CAN标识符优先级却是最低的。

总线访问:总线空闲时,任何节点都可以传送数据帧。假如两个或者两个以上的节点要同时传送数据帧,总线访问冲出用CAN数据帧的标识符通过仲裁来解决。

争夺仲裁:仲裁过程中。每个传送者对传输位级别和总线上的被监控的级别进行比较。若两者相等,节点继续发送。发送“隐性”电平而检测到“显性”电平时,节点会失去仲裁,必须取消发送数据。当发送“显性”电平而检测到“隐性”电平时,节点则检测到一个位错。

错误检测:监控(传送者对发送位电平和总线检测的位电平进行比较)。

源地址和参数群编号的分配过程:
参数群使用 PDU1
或者 PDU2 格式来进行专门分配。一旦为参数群分配了其中一种格式,则另外一种格式就不
可分配给该参数群。当需要发送一个参数群到某个指定的目标地址时,必须使用 PDU1 格式。

**地址分配准则:**在 SAE J1939 中,未被分配的地址数目是有限的,因此必须有效地分配新的地址。在整个系统中,可分配的地址数目最大不能超过 256。

参数群设定准则:
a. PDU1 格式(PS=允许指定目的地通讯的目标地址)
b. PDU2 格式通讯(PS=群扩展)
c. 使用两个预定义的专用参数群编号的专用通讯
PDU2 格式通讯应用于以下场合:
a. 从一个或多个源地址发送消息到一个目标地址
b. 从一个或多个源地址发送消息到多个目标地址
PDU2 格式通讯不能用于发送消息到众多目标地址中的一个。
通过使用专用的参数群编号实现了第三种通讯方法,专用通讯。有一个参数群编号被分配用于非指定目的地专用通讯,而另一个参数群编号被分配用于指定目的地专用通讯。

专用通讯应用于以下两种情况:
a. 在不需要进行标准通讯的场合
b. 在进行专用信息通讯很重要的场合

数据域的定义:
基于 CAN 的系统中,最短的消息也需要全部使用数据域(全部 8 个字节)。除非是
在传送时间要求非常急迫的消息的情况,一般地,相关的参数都应该组合起来占用 8 个字节
的数据域。

传输协议的功能:消息的拆装和重组,连接管路。
术语“发送者”(originator)指那些发出请求发送消息的电控单元或
设备。术语“响应者”(responder)指那些发出应答发送消息的电动单元或设备。

(消息)拆装和重组:长度大于 8 字节的消息无法用一个单独的 CAN 数据帧来装载。因此,它们必须被拆分为若干个小的数据包,然后使用单独的数据帧对其逐一传送。而接收方必须能够接收这些单独的数据帧,然后解析各个数据包并重组成原始的信息。

**数据包:**CAN 数据帧包含一个 8 字节的数据域。由于那些重组成长信息的单独数据包必须要能
够被一个个识别出来,才可以正确重组,因此把数据域的首字节定义为数据包的序列编号。
每个数据包都会被分配到一个从1到255的序列编号。由此可知,最长的数据长度是(255
包×7 字节/包=)1785 个字节。

序列编号:数据拆装时分配给每个数据包,然后通过网络传送给接收方。接收方接收
后,利用这些编号把数据包重组回原始信息。

数据拆装:第一个数据传送包包含序列编号 1 和字符串的头 7 个字节,其后的 7 个字节跟随序列
编号 2 存放在另一个 SAE J1939/CAN 数据帧中,再随后的 7 个字节与编号 3 一起,就这样
直到原始信息中所有的字节都被存放到 SAE J1939/CAN 数据帧中并被传送。
对于发送到某个
指定目标地址的多组消息,发送者将维持数据包(在 CTS 允许多于一个数据包时)发送间
隔的最长时间不多于 200 毫秒。响应者必须知道这些数据包都是具有相同的标识符。
每个数据传送包(除了传送队列中的最后一个数据包)都装载着原始数据中的 7 个字节。
而最后一个数据包的数据域的 8 个字节包৿:数据包的序列编号和与参数群相关数据的至少
一个字节,余下未使用的字节全部设置为“FF16”。

**数据重组:**数据包被陆续地接收后,多组消息的数据包将会按照序列编号的顺序重新组合成一长串字节。这一长串字节将被传送给负责处理长数据的应用程序模块。

连接管理:用于处理在特定目标地址传输时节点间虚拟连接的打开、使用和关闭。

多组消息广播:
如果某个节点要广播一条多组消息,它首先要发送一条广播公告消息(BAM)。这条公告消息必须传送到全局的目标地址,作为一个长消息预告发送给网络上的节点。BAM 消息包৿了即将广播的长消息
的参数群编号、消息大小和它被拆装的数据包的数目。将要接收该数据的那些节点需要分配
好接收和重组数据所需的资源。然后,使用数据传输 PGN(PGN=60160)来发送相关的数

连接的开始:
当某个节点传送一条请求发送消息给一个目标地址时,连接就开始了。请求发送消息包
৿了整个消息的字节大小,要传送的独立消息的数目,以及它设定的参数群编号。
当发送者(例如,RTS 设备)接收到来自响应者(例如,CTS 设备)的相应的 CTS 消
息,那么可以认为已经为发送者建立了连接。当响应者已经成功传送了它的 CTS 消息作为
对一个 RTS 消息的响应,那么可以认为已经为响应者建立了连接。这些定义将用于决定什
么时候需要发送连接放弃消息来关闭连接。

**数据传输:**当连接的发送者接收到准备发送消息后,数据传输正式开始。在传输指定目标地址消息时,由响应者负责调整节点间的数据流控制。在一个开放的连接中,如果响应者想即刻停止数据流,它必须使用准备发送消息把它要接收的数据包数目设置为零。当数据流传输需要停止几秒时,响应者必须每 0.5 秒(Th)重复发送一次准备发送消息,来确告发送者连接没有中断。其他所有剩余的数据域都设为 1(无关重要)。

**连接的关闭:**在传输没有错误的情况下,有两种关闭连接的情形。第一种是在发送给全局目标地址时,
第二种是在发送给一个指定目标地址时。
在第二种情形下,当接收到数据流的最后一个数据包时,响应者将发送一个消息结束应答给消息的发送者。这个信号是告诉发送者,连接被响应者关闭了。连接关闭时需要使用“消息结束应答”来释放连接以供其他设备以后使用。
可以得出以下结论:
a.适用于广播公告消息(BAM)的连接关闭,包括:
1. 在以下状况,可以认为连接被关闭,当发送者:
a. 发送了最后一个数据传输包
2. 在以下状况,可以认为连接被关闭,当响应者:
a. 接收到最后一个数据传输包
b. 出现一次 T1 连接超时
b.适用于请求发送/准备发送消息的连接关闭,包括:
1. 在以下状况,可以认为连接被关闭,即发送者:
a. 在完成整个 PGN 的数据传输时接收到 TP.CM_EndOfMsgAck 消息
b. 由于某种原因发送了放弃连接消息(例如,由于一次 T3 或者 T4 的超时)
c. 接收到放弃连接消息
2. 在以下状况,可以认为连接被关闭,当响应者:
a. 在完成整个 PGN 的数据传输时发送了 TP.CM_EndOfMsgAck 消息
b. 接收到放弃连接消息
c. 由于某种原因发送了放弃连接消息(例如,包括希望提早停止通讯,由于
27
一次 T1 或者 T2 的连接超时等等)
Tr=200 mS
Th=500 mS
T1=750 mS
T2=1250 mS
T3=1250 mS
T4=1050 mS。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值