三、J1939 协议的应用
1、J1939 应用于网络构建
J1939 网络层中定义了如何构建网络及连接的功能。网络层的功能包括数据的过滤、重新打包和转发。分别由以下各部分实现。
a.中继器。可以增强数据信号,使数据传输更远的距离。
b.网桥。数据的转发和过滤。它可以把网络拆解成网络分支、分割网络数据流,隔离分支中发生的故障,这样就可以减少每个网络分支的 数据信息流量而使每个网络更有效,提高整个网络效率。
c.路由。可以使网络段具有独立的地址空间不同的数据传输率和媒介。
d.网关。可以在不同的协议和数据设置的网段之间传送数据。下图为典型的汽车网络连接。
2、J1939 应用于故障诊断
J1939 包括在线故障诊断功能,由诊断应用层定义。诊断应用层面向以下几方面。
a.安全。在数据链路层上定义一个安全的框架,使得符合工业标准的开发工具执行必要的诊断任务。包括获取诊断信息,获取节点配置信 息,标定控制模式。但对非开放型的数据加密。
b.连接。建立 J1939 网络节点与开发工具之间的连接。连接器的设计也必须符合 J1939 协议。
c.诊断状态数据支持。提供一系列的数据格式。包括读取出错数据、清除错误数据、监测通信参数、获取节点的配置以及其他的一些信息。
d.诊断测试支持。可以使开发工具把各种控制节点放到具体的测试模式中以正确设计子网体系。诊断工具通过连接器与其他节点进行通信 以获取诊断数据。因此所有的控制节点都应该具备以下功能:读取诊断故障代码、清除诊断故障代码、获取实时信息。而诊断故障代码记载 了出错的参数及所在的节点等主要信息。
四、AUTOSAR架构中J1939协议栈
在整个AUTOSAR CP的架构中包含J1939相关的模块由J1939DCM,J1939 Nm、J1939 Rm、J1939 TP。
AUTOSAR CP软件模块
1、诊断通信管理DCM(Diagnostic Communication Manager)
负责UDS和SAE J1939-73通信路径和诊断服务的执行,从而处理来自外部测试人员或OBD系统的诊断请求,它转发来自外部扫描工具的请求,并进一步负责封装响应的消息(DTC、状态信息),这些消息随后将传输到外部诊断扫描工具。
AUTOSAR 诊断相关模块
2、 J1939网络管理
和AUTOSAR其他网络管理不同,J1939的网络管理并不是去处理ECU的睡眠与唤醒,而是给每一个ECU分配一个唯一的地址,在SAE J1939-81中定义0xEE00这个PGN值用来做地址声明,当ECU启动时ECU发出此声明表示自己期待分配某一地址,如果另一个ECU拥有同一个地址并且有更高的优先级,那么ECU需要在发送CannotClaimAddress后进入静默状态。
3、J1939 请求管理RM
J1939 Request Management用来管理请求消息的接收与发送,将请求数据转发给其他模块处理,以及对应确认消息的回复。上面提到的诊断功能,同样需要用到RM模块。
来源:综合网络