汽车LIN总线(8) -- 传输层:PDU结构

      

目录

5.1.1 PDU 结构

5.1.1.1 NAD

5.1.1.2 PCI        

5.1.1.3 SID 与 RSID

5.1.1.4 消息字节段


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

5.1.1 PDU 结构

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

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

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

(PDU是LIN协议中的8位数据段,而且得是诊断帧3C 3D)

(Request请求,Respose应答,有些中文版的资料这里是错误的,所以我截取了英文版的图)

(续帧CF在请求和应答中都是一样的格式)

(单帧SF适用于数据长度小于6的帧,即D1--D5)

(首帧续帧适用于数据长度大于5的帧,发送一个首帧作开头后,后面全是续帧)

汽车LIN总线(8) -- 传输层:PDU结构_第1张图片

5.1.1.1 NAD

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

(0x00的休眠命令是不是很熟悉,0x7F是NAD的通配符)

汽车LIN总线(8) -- 传输层:PDU结构_第2张图片

5.1.1.2 PCI        

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

汽车LIN总线(8) -- 传输层:PDU结构_第3张图片
        单帧中,附加信息 Length 表示消息字节数加 1(加1是因为把SID也算上了)。首帧中,附加信息只表示 Length 的高 4 位,低 8 位在 LEN中表示。因此在消息长度为 12 位数据,最大长度为 4095(0xFFF)。

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

5.1.1.3 SID 与 RSID

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

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

        (后面应用层会详细介绍这一部分,提供信号处理、配置、识别和诊断四项功能)

5.1.1.4 消息字节段

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



 

你可能感兴趣的:(LIN,汽车,网络,信息与通信)