这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 综合技术» 通讯及无线技术» SAE J1939协议

共5条 1/1 1 跳转至

SAE J1939协议

菜鸟
2016-07-08 00:07:28 打赏

今天我们来讲讲J1939的数据链路层,熟悉数据链路层是开发任何一种协议软件的基础,数据链路层中的协议数据单元(PDU)格式是非常重要的。

P 优先级

这三位仅在总线传输中用来优化消息延迟,接收机必须对其做全局屏蔽(即忽略)。消息优先级可从最高0设置到最低7。所有控制消息的缺省优先级是3。其他所有信息、专用、请求和ACK消息的缺省优先级是6。当定义新的参数组编号,或总线上通信量变化时,优先级

可以升高或降低。当消息被添加到应用层,将给出一个推荐的优先级。OEM可以对网络做相应调整,优先级域应当是可重编程的。

R 保留位

保留此位以备今后开发使用。不能将此位与CAN保留位混淆。所有消息应在传输中将SAE保留位置0。今后新的定义可能扩展PDU格式域,定义新的PDU格式,扩展优先级段或增加地址空间

DP 数据页

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

PF PDU 格式

PF 域,8位。确定PDU的格式,也是确定数据域对应参数组编号的域之一。参数组编号用来确定或标识命令、数据、请求、确认和否定等参数组编号所确定或标识的信息需要一个或多个CAN数据帧进行通信。若消息长于8字节,必须将消息分包发送。如消息长小等于8字节,则使用单个CAN数据帧。

PS 特定PDU

特定PDU是一个8位域,它的定义取决于PDU格式,根据PDU格式它可能是目标地址或者组扩展。 若PDU格式(PF)域的值小于240,特定PDU域是目标地址。

SA 源地址

这个域定义了消息发送的特定目标地址。注意,对于任何设备,如果源地址与接收到消息的目标地址不相同应忽略此消息。所有设备作为消息响应者应对全局目标地址(255)作出监听和响应。

Data 数据域

如果给定参数组用于表示不多于8字节的数据时,

可使用CAN数据帧全部的8个字节。通常,建议对所有的参数组进行分配时,将8个字节分配或保留以备今后扩展之用。这样可以很容易地添加新参数,并确保与只定义了部分数据域的旧版本的兼容。当数据长度不多于8字节时,将预定义的参数组数据长度值赋予CAN数据长度码(DLC);否则,如果参数组的数据长度大于8,将CAN数据长度码(DLC)赋值为8

长度从9字节到1785字节的数据

如果一个给定的参数组数据长度为91785字节时,数据通信是通过多个CAN数据帧实现的。因此,用“多包“来描述这种类型的参数组编号。如果参数组的定义为多包,在少数特定场合只传输少于9字节的数据时,参数组以单帧CAN数据帧发送,其中DLC8。如果某特定参数组传输9字节或者更多字节,将使用“传输协议功能”。通过传输协议功能的连接管理能力来建立和关闭多包参数组的通信。传输协议功能的数据传输能力,通过传送一系列包含分包数据的CAN数据帧(包),能独自实现数据通信。另外,传输协议功能还提供了对于目标地址特定的传输的流控制和握手功能。所有与特定多包应答相关的CAN数据帧必须置DLC8

SAE J1939 消息类型:

J1939 的消息类型总共有 命令,请求,确认/响应,组功能

了解了数据链路层的结构后,那么在应用中,是如何解析一个参数呢?

PGN(Parameters Group Number)就是解决这一问题的,那么PGN的格式以及构成可以通过下图一目了然,其中6118465280~65535是留给用户自定义的。




关键词: J1939 CAN

专家
2016-07-08 02:38:48 打赏
2楼

专家
2016-07-08 08:05:33 打赏
3楼
谢谢楼主分享,学习一下。

管理员
2016-07-08 09:11:20 打赏
4楼
学习学习~

专家
2016-07-08 11:48:08 打赏
5楼

学习,谢谢分享


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]