产品中心 product 当前位置: 首页 > 产品中心 > J1939协议解析插件 >
固定电话:028-68743610
客服手机:13730631678
客服QQ  :
客服邮箱:@7200games.com
 
联系地址:四川省成都市成华区双林横路12号
J1939协议解析插件
2016-05-18 15:22:00

J1939协议解析插件

  J1939协议解析插件依附于CANslinkal或CANupoks系统,作为这两个系统的可选功能而存在。
  该插件严格按照J1939协议实现了如下功能:
   ---J1939 ID的优先级、分页、PGN、目标地址与发送源址的自动解析与显示。
   ---基于数据库的J1939数据(包括单帧与复帧)自动接收、解析与显示(基于J1939-7-1数据格式)。
   ---J1939复帧自动组装与发送。
   ---基于j1939-7-3的故障诊断相关功能的直接支持(对DM各帧有单独的请求与显示页面)。
   ---在CANslinkal中,支持j1939数据帧自动组装、解析、发送与接收的实时仿真。下面详细介绍上述各功能。
下面详细介绍上述各功能。

1.J1939 ID与数据的接收、解析与显示


   在CANslinkal或CANupoks系统中(下同),“ID观测”页面能够对J1939 ID与数据(包括单帧与复帧)作相应接收、解析与显示,如下图:

\
  如果将项目加入到“监测器”页面中,可以在该页面中查看数据的变化轨迹:
\

2.J1939复帧自动组装与发送

  J1939单帧或复帧的接收,在上面已经说明。为方便用户发送J1939复帧,系统也提供了专门的页面完成该项功能。如下图,传输了复帧EC1:
\
 在该页面,用户可以在运行中自由设定复帧各项数据的值,并可以自由设定其传输参数与传输时机。免去了专门制作复帧发送程序的麻烦。
  当然,在该页面发送复帧是不能保证传输的时钟绝对准确的,因为该功能是在电脑上运行完成的。如果要保证传输时钟的绝对正确,可以使用下面将会描述的模块编程方法。虽然如此,复帧一般都是用于实时性要求不高的场合,所以该页面实现的功能已经能够满足绝大部分应用需求的。

3.j1939数据帧自动组装、解析、发送与接收的实时仿真

  CANslinkal系统提供了模块编程功能(CANupoks不具备该功能),其中包含对j1939数据发送与接收的支持。关于模块编程与实时仿真功能的详细介绍,请参看 CANslinkal的介绍文档。这里只简单描述一下。
 系统提供了J1939数据发送模块,它将用户的物理数据(如转速、水温等)通过J1939数据库中定义的方式,自动组装到数据帧字节流中,并按用户要求的发送时机发送出去。如下图,就是模块程序发送了一个EEC1帧:
\
接收与自动解析也提供了相应的模块,下图演示了接收一个ET1帧的功能:
\
 其实只要了解了模块编程功能,用户可以制作任何接收与发送的程序,甚至是ECU功能仿真,而不仅仅是上述简单的发送与接收功能。模块编程只是提供了一个平台与基本功能模块,它能做什么事,都是看用户自己的发挥,所以拥有非常强大的功能。

4. J1939-7-3的故障诊断(DM帧请求,解析与显示)

  系统使用单独的功能页面直接对各种DM帧作了直接的支持。当前支持DM1~DM6、DM11、DM12与DM14~DM19,其它各种DM帧还在持续增加之中。各页面如下图:

4.1 DM1 Active Diagnostic Trouble Codes

  该页面用于接收j1939的DM1故障诊断信息。根据协议要求,DM1是自动传输的,不需要发送请求数据。所以每当收到DM1数据,系统会根据其传输源(SA)、传输目标(DA)和接收其的CAN通道三个参数,自动建立一个唯一的分页。界面如下图:
 \
  该页面功能是严格按照j1939协议来实现的。根据j1939规定,DM1是自动传输的,不需要请求。所以这里没有对DM1做请求(与DM2之类的不一样)的按钮。但是,假如对象设备并没按照j1939来实现,不支持自动传输,必须要请求才能发送。那么用户就只能手动发送请求命令了。只要这里收到了DM1帧,无论是用户手动请求得来的,还是自动传输得来的,都会显示DM1相应的信息。比如在交互脚本中,输入如下代码,就可以对DM1作请求:
\

4.2  DM2 Previously Active Diagnostic Trouble Codes
4.3  DM6 Pending DTCs
4.4  DM12 Emissions-Related Active Diagnostic Trouble Codes

  这三个功能类似,都是清除故障。所以具有相同的页面显示,不同的只是它们各自使用的PGN不一样,下图显示了DM2的功能页面: 
\
  上图中的"要求源址"是指请求帧的SA。"要求对象"是建立分页时的"数据要求目标",如果要对总线上所有节点要求数据,请点选"全局目标"。设置完毕后,点击"发送数据要求"按钮,就可以将请求发送出去。
  上图下面的状态栏会显示请求与接收状态。如果不支持该DM帧,要求对象可能有三种否定应答(Negative,Access Denied,Cannot Respond),也可能毫无应答,这些结果都会区分显示。

4.5 DM3 Diagnostic Data Clear/Reset Of Previously Active DTCs
4.6 DM11 Diagnostic Data Clear/Reset For Active DTCs

  这两个功能也具有相似性,都是清除故障代码,所以页面也大体类似,下图是DM3的页面:
\
  上图中的"要求源址"是指命令帧的SA。"要求对象"是建立分页时的"数据要求目标",如果要对总线上所有节点发送命令,请点选"全局目标"。设置完毕后,点击"发送数据要求"按钮,就可以将命令发送出去。
  上图下面的状态栏会显示请求与接收状态。要求对象可能有四种应答(Positive,Negative,Access Denied,Cannot Respond),也可能毫无应答。如果要求的是全局对象,根据协议要求,不需要应答。这些结果都会区分显示。

4.7 DM4 Freeze Frame Parameters

 该页面用于请求与显示故障冻结帧,对于协议定义的数据,这里会自动解析并显示相应项目的物理数值,如果是用户自定义的数据,这里会以16进制显示原始数值,如下图:
\

4.8 DM5 Diagnostic Readiness 1

 该页面用于接收j1939的DM5故障就绪信息:
\
  上图中的"要求源址"是指请求帧的SA。"要求对象"是建立分页时的"数据要求目标",如果要对总线上所有节点要求数据,请点选"全局目标"。设置完毕后,点击"发送数据要求"按钮,就可以将请求发送出去。
 上图下面的状态栏会显示请求与接收状态。如果不支持该DM帧,要求对象可能有三种否定应答(Negative,Access Denied,Cannot Respond),也可能毫无应答,这些结果都会区分显示。

4.9 DM19 Calibration Information

  该页面用于请求与显示标定与校验信息:
\
  上图中的"要求源址"是指请求帧的SA。"要求对象"是建立分页时的"数据要求目标",如果要对总线上所有节点要求数据,请点选"全局目标"。设置完毕后,点击"发送数据要求"按钮,就可以将请求发送出去。
  上图下面的状态栏会显示请求与接收状态。如果不支持该DM帧,要求对象可能有三种否定应答(Negative,Access Denied,Cannot Respond),也可能毫无应答,这些结果都会区分显示。

4.10 DM14~DM18 存储访问

  这四个DM协作完成j1939定义的存储访问功能,流程相对比较复杂,系统也对其作了全方位的支持。只是操作方式与之前的DM有不同的地方,用户需要多留意一下:
\
这里不对其操作作说明,用户可以参考CANslinkal或者CANupoks帮助文档中的相关部分。

  上面大致介绍了一下j1939插件的相关功能,其它的功能还在陆续增加之中。用户如果对功能细节或应用场景有任何疑问,可直接与雷克技术支持人员联系咨询。