怎样做好J1939应用层数据定义

怎样做好J1939应用层数据定义,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

SAE J1939 跟CANOpen,DeviceNet等一样都隶属于CAN的高层协议,J1939广泛应用于卡车,船舶,农林等设备,也正在拓展至其他的行业,因其属于CAN高层协议里面比较简单的一种,所以学习起来难度不是很大,协议内容也不复杂,之前在公众号多次讲过J1939的协议内容,今天来看看如何定义应用层的数据。SAE预留了两段参数组范围可以被设备制造商定义。

1

熟悉PGN

PGN即Parameter Group Number是J1939协议中用来标识参数集所定义的,共有24位,占三个字节,是CAN 29位标识符的一部分,其实SAE J1939这种高层协议都是充分利用了CAN的29位标识符,因为对CAN的29位标识符在CAN 2.0中并没有做具体规定,所以这就给高层协议的制定留下了很大的空间,通过一张表就可以清楚的知道。

怎样做好J1939应用层数据定义

怎样做好J1939应用层数据定义

怎样做好J1939应用层数据定义
 

2

PGN的构成

PGN主要由保留位,数据页,PDU格式,和组扩展域,给一组例子看一下

怎样做好J1939应用层数据定义

SAE 组织在最新的release文档中,已经将原来在文档中定义的许多内容都集成进一个EXCEL表格,方便查询,来看一下,如果是你自己学习定义,不是在车上使用,想在自己的内网使用而不接入汽车的网络,那么PGN你可以在规定的范围内随便定义,但是如果是在车上使用,就不能随便定义,不能使用SAE已经定义过的PGN,只能使用65280-65535和130816-131071添加你自己定义的PGN,

怎样做好J1939应用层数据定义

怎样做好J1939应用层数据定义

怎样做好J1939应用层数据定义
 

3

熟悉PGN在PDU中的位置

PGN是J1939协议数据单元很重要的一部分,了解他们的关系很重要,

怎样做好J1939应用层数据定义

协议数据单元PDU由七部分组成,分别是优先级,保留位,数据页,PDU 格式,特定PDU(可作为目标地址、组扩展或专用),源地址和数据域。PDU 被封装在一个或多个CAN 数据帧中,通过物理介质传送到其他网络设备。每个CAN 数据帧只能有一个PDU。需要指出的是,有些参数组编号定义需要多个CAN 数据帧才能发送其数据 。

怎样做好J1939应用层数据定义
 

4

定义数据

在熟悉以上的内容和定义后,就可以在规定的PGN范围内定义自己的数据映射,例如我们可以在65284定义逆变器的输入电压和电流,因EXCEL表格比较宽,显示不全,所以将有的类目隐藏了。

怎样做好J1939应用层数据定义

大家可以参考SAE 官方release的格式在规定范围内定义自己的PGN,例如我们添加的三个数据,输入电压,2字节,分辨率是0.01V/bit, 有效的数据范围是0·642.55V, 电流也是两个字节,分辨率是0.05A/bit,有效数据范围是0-3212.75A。数据的分辨率和范围,以及定标,都有标准规定在文档中,选择适合你的应用,如下表对数据的范围,偏移,长度,缩放等都有规定,可以参阅SAE发布的标准。而且每一个SLOT都有名字和类型,根据需要选择。

怎样做好J1939应用层数据定义

另外,如果你是要上市的产品,还需向SAE申请一个制造商编号,制造商编号也是每一个节点名字的一部分。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/230649.html

(0)
上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐

发表回复

登录后才能评论