诊断协议架构包括 lin诊断协议

目录

一、传输层 

1、PDU 结构

1.1、NAD(node address)

1.2、PCI(Protocol Control Information)

1.3、SID与RSID

1.4、消息字节段

2、传输层通信

 二、LIN应用层

1、概述        

2、信号处理能力        

3、配置功能

3.1、节点存储模型

3.2 从机节点 NAD 配置

3.3、从机节点 PID 配置

3.4 其它服务 

4、识别功能

5、诊断功能 

5.1 诊断方式

5.2 诊断类型(Diagnostic Class)

        从使用的角度来看,LIN 提供四项功能——信号处理、配置、识别和诊断,这四项功能共同构成了 LIN 的应用层。传输层是配置、识别和诊断这三项功能的通信载体,实现应用层消息与帧之间的格式转换和传输。为了规范使用,LIN 为应用层和传输层定义了 API 接口,参照"LIN的API"。

一、传输层 


        传输层的任务单一,就是充当一个“ 翻译官 ” , 把来自 诊断服务 的消息(Message)“翻译”成协议层可以处理的PDU (Packet Data Unit,分组数据单元) ,或者反过来,把协议层收到的 PDU“ 翻译 ” 成诊断服务需要的消息。消息到 PDU 的转换过程称为拆分 (Packing) , PDU 到消息的转换过程称为重组 (Unpacking) 。 PDU 对应着帧结构的数据段,并通过诊断帧发送或接收。

1、PDU 结构


        为满足汽车行业的要求,LIN 传输层 PDU 的格式与 ISO 制定的基于 CAN 网络的诊断标准 ( 参照参考资料 [9])非常相似( 是 ISO 标准的子集 ) 。这种兼容性大大减少了在 CAN 和 LIN 之间转换数据格式的工作量,降低了对节点计算能力的要求。

         从发送格式上,PDU 单元 可分为 单帧(Single Frame,SF) 、 首帧(First Frame,FF) 和 续帧(Consecutive Frames,CF) 三种。 从发送源上,主机发送请求 PDU,从机发送应答 PDU。

        如下图 所示,为 PDU 格式, 包括节点地址(NAD) , 协议控制信息(PCI) , LEN , 服务 ID(SID) , 应答服务 ID(RSID) , 消息字节段(D1~D6) 。首字节 NAD 首先发送,末字节 D4,D5,D6 最后发送。

1.1、NAD(node address)


        PDU 单元的第一个字节是 NAD ( node address ),用于区分不同从机节点的地址。 如下表 所示,列出了 NAD 的取值范围

1.2、PCI(Protocol Control Information)


        PDU 单元的第二个字节是 PCI ( Protocol Control Information )信息,包含了 PDU 单元类型和消息字节长度的信息。如下表所示 :

单帧中,附加信息 Length 表示消息字节数加 1。

首帧中,附加信息只表示 Length 的高 4 位,低 8 位在 LEN 中表示。因此在消息长度为 12 位数据,最大长度为 4095(0xFFF)。

续帧 中的附加信息表示首帧后,跟随的续帧的编号,第一个续帧编号为 1 ,之后累加 1 。如果续帧数多于15 个,那么帧计数器在第 16 个续帧时从 0 重新计数。

1.3、SID与RSID


SID ( Service Identifier )表示了从机节点应完成的服务请求。节点配置服务的 SID 区间为 0xB0~0xB7, 诊断服务的 SID 区间为 0x00~0xAF,0xB8~0xFE 。

RSID ( Response Service Identifier )表示从机节点应答的内容,它的值是 SID+0x40 。

1.4、消息字节段


        消息字节段的内容取决于服务的种类。在单帧中,消息字段最多 6 个字节。在首帧和续帧中,所有 PDU 的消息字段,经过“重组”组成一个完成的消息。

2、传输层通信


        应用层发出的消息如果长度不超过单帧的容量,传输层会按单帧的格式交给协议层发送。传输层收到的单帧也会直接作为消息送往应用层;如果消息长度超过单帧的容量,传输层先要把消息拆分成首帧和续帧并排好次序,然后再交给协议层依次发送。反过来,协议层收到的首帧和续帧,传输层先要按照接收次序将其重组为消息,最后交给应用层处理。

LIN 传输层只能按顺序接收续帧。

LIN 传输层具备出错重传功能。

传输层由传输层 API 完成,参照“LIN 的API”。下表列出了传输层与 API 的对应关系,API 的内容参照“LIN 的API”。

 二、LIN应用层
1、概述        


         LIN 应用层提供 信号处理、配置、识别和诊断 四项功能 。配置、识别和诊断功能又包含若干项目,称为服务(Service) 。为了区别,每项服务都有固定、唯一的服务代号 (Service ID , SID) 。下图 描述了 LIN 应用层及其关联。

① 信号通过信号携带帧通信

② 配置服务通过传输层,以单帧的形式通信

③ 识别服务通过传输层,以单帧的形式通信

④ 基于信号的诊断服务

⑤ 诊断传输层,通过传输层通信,需要使用复帧的形式通信

⑥ 用户自定义的诊断

        为便于理解本图,后文对每项功能都分别进行了详细描述并提出了工作模型的概念。

        

         LIN 应用层的配置、识别和诊断都是针对 逻辑节点(Logical Node) 的。逻辑节点是能够对来自主机节点和/或诊断设备的服务请求作出响应的功能实体。 为了区别不同的逻辑节点,LIN 定义了 NAD(Node Address for Diagnose,诊断地址) 。第 1 章介绍了 物理节点(Physical Node) 、从机任务和接口 (Interface) 的概念。 对于一个物理节点来说,从机任务和接口对应着实现帧收发的软件和硬件实体,而逻辑节点则代表了配置、识别和诊断方面的能力。物理节点、从机任务以及接口是一一对应的,但是物理节点可以包括 1 个或者多个逻辑节点。

2、信号处理能力        


         信号处理功能是指应用层可以不经过传输层,直接从协议层获取或修改网络中的信号。这些信号由NCF(Node Capability File,节点性能文件)定义,既可以是工作参数(例如温度、压力的测量值、继电器的开合状态等),也可以是状态标志(例如某信号携带帧的收发状态)。

        信号处理功能的工作模型如下图 所示。信号携带帧在 LIN 网络的节点之间传递,每个节点既可以是信号的发布者,也可以是信号的收听者。

        信号处理功能由核心 API 完成,参照“LIN 的API”。下表列出了信号处理功能与 API 的对应关系,API 的内容参照“LIN 的API”。

3、配置功能


         LIN 规范规定,每个逻辑节点都应该有 NAD。在网络运行期间,任意两个逻辑节点的 NAD 都必须不同,否则就会产生冲突。 此外, 每个逻辑节点都要能处理带有某些 PID 的帧 。由此可见, NAD 和 PID 分别与逻辑节点建立了一种映射关系,LIN 规范把 NAD 和 PID 的这样一种组合称为逻辑节点的配置项 (Configuration) 。一个逻辑节点可以有一个以上的配置项,但在网络运行期间,每个逻辑节点只能有一个配置项有效。

         配置功能是指 LIN 的主机节点能自动地给所有逻辑节点选择配置项,消除 NAD 和 PID 分配中存在的冲突,使网络正常工作。配置功能是确保各节点协调运作的内部功能,包含分配 NAD、分配 PID 等服务。配置功能通过传输层完成配置服务。

        为了适应汽车行业的需要,LIN 规范定义配置功能的服务时,参照了 ISO 制定的 UDS(Unified Diagnostic Services,车辆统一诊断服务 ) 标准 ( 参照参考资料 [7]) 和 OBD(On-board Diagnostic ,车载自动诊断 ) 标准 。 配置功能各项服务及其 SID 都是 ISO 15765 标准的子集 。

        配置功能的工作模型与计算机局域网的“ 客户机 - 服务器 ” 模型很相似,如下图 所示。主机节点可以被视为客户机,逻辑节点被视为服务器。客户机首先向服务器发出服务请求,服务器依照请求执行操作,然后向客户机返回应答。

3.1、节点存储模型


        如同商品包装上的条形码,每个物理节点都有一个固定的编码,叫做 LIN 产品代号 (LIN Product Identification)。产品代号是出厂时赋予的,除非修改产品,否则其内容不变。产品代号保存在不需要电源就能维持记录的地方,例如 ROM 或者非易失性存储器(Non-volatile Random Accessible Memory,NVRAM)。在进行配置服务时,从主机接收的产品代号必须和从机节点保存的产品代号一致,才能正常进行配置服务。

下表为LIN产品代号的存储格式:

        另外,从机节点还可以有一个序列号,用于识别特殊的节点。序列号大小为 4 字节。

        从机节点可以将配置信息保存起来,重启后调用保存的配置信息,而无需主机节点再次分配。

针对配置项的存储类型,LIN 规范定义了三种从机节点配置模型:

        第一种,无配置节点,这种从机节点在重启后,自身没有配置项,每次重启都需要主机进行配置。

        第二种,预配置节点,这种从机节点在重启后,调用预先设置的配置项。但是在主机重新对其进行配置后,不能存储新配置项。

第三种,全功能配置节点,这种从机节点可以保存主机对其的配置,并在重启后调用此配置。

3.2 从机节点 NAD 配置


        有三种方法生成配置 NAD ,如果初始 NAD 等于配置 NAD ,那么不需要进行其他配置操作。如果配置 NAD需要从从机节点存储的保留配置中提取,需要调用 ld_set_configuration 进行配置,如果 NAD 需要变更,则需要主机发送配置 NAD 请求。

        主机节点给从机节点分配 NAD 是通过 Assign NAD 服务完成的。首先主机节点向从机节点发送配置 NAD请求,如果从机节点配置成功,从机节点会应答。

分配 NAD 服务的 PDU 结构如下表所示:

注意,应答时,仍然使用初始 NAD。

        每个从机节点有一个初始 NAD ,初始 NAD 是从一个初始 NAD 列表中选择的。初始 NAD 列表是在编写节点性能文件(NCF )时设置的。 LIN 协议没有对生成初始 NAD 的具体方法进行限制。

3.3、从机节点 PID 配置


        从机节点各个帧的 PID ,是主机进行分配的。通过分配 PID 列服务,主机一次最多可给从机节点分配 4 个帧的 PID 。

分配 PID 列服务的 PDU 结构如下表 所示:

        其中,消息字节段的第一字节是开始帧索引,表示分配第一个帧的排列号。从机节点中各帧的排列顺序是 按照节点性能文件(NCF)和 LIN 描述文件(LDF)中定义的顺序定义的。第一帧的索引编号是 0。后续四个字节是给从机节点分配的 PID。如果分配的 PID 值为 0,表示对应的信号携带帧无效。如果分配的 PID 值为 0xFF,表示保持对应帧的 PID 不变。

3.4 其它服务


        除了对从机节点 NAD 和 PID 的配置, LIN 规范还定义了其他配置服务,如条件变更 NAD ,数据导入,保存配置。配置功能由配置与识别 API 完成。下 表 列出了配置服务与 API 的对应关系 。

4、识别功能


        识别功能是指主机节点能够获取逻辑节点的信息,例如产品代号等。借助识别功能,主机节点和逻辑节点还可以实现一些自定义的操作。

        识别功能与上面介绍的配置功能使用同样的工作模型,如下图 所示。

        识别服务中,主机发送的请求 PDU 单元结构如下表 :

其中,从机根据目标 ID 的值来回应相应的信息。目标 ID 指定的相关信息如表 5.11:

识别功能由识别 API 完成,参照 “LIN 的API” 。表 5.12 列出了识别服务与 API 的对应关系 。

5、诊断功能 


        诊断功能是指 LIN 网络之外的诊断设备可以直接连接 LIN 的主机节点,或者通过外部的其它网络 ( 例如 ISO11898 定义的 CAN 网络 ) 连接主机节点,连接后,诊断设备可以按规定的诊断协议 ( 例如 ISO15765 规范 ) 与 LIN 的逻辑节点通讯。与配置功能相比,诊断功能是 LIN 网络作为一个整体对外呈现的可配置、可访问的属性。为了适应汽车行业的需要, LIN 规范定义诊断服务时,参照了 ISO 制定的 UDS 标准和 OBD 标准。LIN 诊断功能是以上两个标准的子集,相同服务的 SID 也相同。

        诊断功能的工作模型如下图 所示,它是配置功能工作模型的扩展。主机节点在此扮演了一个 “ 网关 ” 的角色,在诊断设备和 LIN 网络之间传递服务请求和应答。

        诊断功能的实用意义可以用一个例子来说明:假设采用 LIN 子网的车门连接在底盘 CAN 网络上,诊断车门故障时,只需要把 OBD 设备连接于车载计算机的 CAN 接口即可,而不需要拆下车门;确定车门故障点后,拆下车门维修完毕,只需把 OBD 设备连接于车门的 CAN 接口,就能确认门是否已被修好,而不需要事先把车门装回。

        一般而言,节点的计算能力与成本成正比。应用层的四项功能中, 只有诊断功能可以根据具体产品而灵活裁减,其余的功能都是固定而且必须的。

        诊断功能的可裁减性体现在两方面:实现方式以及支持的服务种类,这些都是直接影响着节点计算负荷的因素。

5.1 诊断方式


        LIN 网络有三种方式来实现诊断功能,它们的差别在于传输层的复杂度,因为拆分 / 重组需要一定的计算量,这些方式如下表 5.13 所示,另外可参考图 5.2 。

5.2 诊断类型(Diagnostic Class)


        逻辑节点功能越复杂,支持的服务越多,对逻辑节点的计算能力要求就越高。

        依据诊断服务的数量, LIN 规范划分出三种不同的诊断类型——I 类、II 类和 III 类, 适用于不同条件的逻辑节点。 I 类最低,III 类最高,较高类型完全包含较低类型的功能。

     I 类是所有诊断类型的公共部分,提供信号处理、识别、配置功能,诊断功能采用表 5.13 中的方式 A,这也是每个逻辑节点必备的服务。

        II 类节点增加了 UDS 定义的识别服务(注 1),诊断方式一般采用表 5.13 中的方式 B。

        III 类节点相比 II 类节点,又增加了 UDS 定义的部分其它服务,此外,还增加了通过 LIN 总线在线升级的功能。

注: 1. 请注意区别 UDS 定义的识别服务与 5.2.4 描述的识别服务。

诊断类型的关联如图 5.8 所示。


-----------------------------------
诊断协议架构包括 lin诊断协议
https://blog.51cto.com/u_106065/7255054

猜你喜欢

转载自blog.csdn.net/wangjiaweiwei/article/details/133860862
今日推荐