Weixin Official Accounts Platform

前外交部副部长傅莹:一旦中美闹翻,有没有国家会站在中国一边

终于找到了高清版《人间中毒》,各种姿势的图,都能看

去泰国看了一场“成人秀”,画面尴尬到让人窒息.....

2017年受难周每日默想经文(值得收藏!)

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

测试开发实践系列:为支持全车OTA的LIN诊断刷写

北汇信息 吴若男 北汇信息 2022-09-22
随着现代汽车逐渐向电动化、网联化、智能化和共享化方向发展,对于部分LIN控制器,也开始被要求支持刷写,以实现在线刷写或者远程更新,满足全车OTA的要求。
相较于CAN、FlexRay及Ethernet等其他车载网络,LIN是一种低成本的串行通信总线,它主要用于车内传感器和执行器的通信场合,例如车内门锁控制、座椅调节、灯光照明,车窗控制等。LIN2.0以及之后的规范(LIN2.1,ISO17987)定义了如何在数据链路层之上实现诊断的功能,本文将基于LIN2.1的诊断刷写测试开发和实践进行分享。


LIN通信协议




为了更好地介绍诊断服务的实现,我们首先来了解一下LIN的网络拓扑以及报文结构。

LIN拓扑结构


LIN总线采用的是单线传输形式。一个LIN网络通常由一个主节点和多个从节点组成,LIN网段经常作为子网与上层网络(CAN、FlexRay、Ethernet)相连,此时主节点通常用来充当网关。下图为典型的车载LIN网络,由于物理层的限制,一个LIN网络最多可以连接16个节点。
图1 LIN网络拓扑结构

LIN报文结构


LIN报文由帧头响应两部分组成。LIN的帧头包含同步间隔场、同步场、PID(受保护ID)场;响应部分包含数据场和校验场,具体结构如下图所示。LIN报文的ID范围为0x0-0x3F,其中0x0-0x3B用来携带信号,0x3C和0x3D作为诊断和配置帧,0x3E和0x3F作为保留帧以便未来扩展。
 
图2 LIN报文结构


LIN传输层协议





LIN2.1中规定了传输层和网络层协议(本文不做区分,统称传输层协议)。LIN传输层主要用于需要支持诊断的LIN子网系统。

PDU结构


PDU包含节点地址(NAD)、协议控制信息(PCI),长度(LEN)、服务ID(SID),应答服务ID(RSID)和消息字段(D1-D6),如下图所示。
 

图3 LIN传输层的PDU结构
 
  • NAD

NAD用于表示诊断请求中LIN从节点的地址,位于PDU的第一个字节。NAD的值在1-127的范围内,其中0和128到255保留用于其他目的。下表给出了不同NAD值的用途。


  • PCI

PDU的第二个字节是PCI(协议控制信息)字节,包含PDU的单元类型和报文字节长度信息。

单帧(SF)最多包含五个数据字节,附加信息Length等于SID加上数据字节(D1-…)的长度。示例如下图所示。
 

图4 SF 示例

首帧(FF)用于表示多帧PDU的开始,附加信息表示多帧PDU的长度的高4位,PDU长度的低8位在LEN中表示,因此,多帧PDU能表示的最大报文长度为4095(0xFFF)。

续帧中的附加信息用来表示续帧的编号,第一个续帧的编号为1,之后每个续帧加1,如果续帧编号大于15,那么下一个续帧的编号置0。多帧报文的传输如下图所示。

 图5 FF与CF示例

  • SID与RSID

SID(Service Identifier)表示诊断请求服务ID。RSID(Response Service Identifier)表示诊断响应服务ID。RSID=SID+0x40。

  • D1-D6

数据字节(在单个PDU中最多有6个字节)的解析取决于报文的长度。如果PDU未完全填充(仅适用于CF和SF PDU),则未使用的字节使用0xFF填充。

报文发送


  • 单帧报文发送

报文长度小于6个字节(包含SID)应使用单帧PDU进行传输。功能寻址报文只能使用单帧传输。

  • 多帧报文发送

报文长度大于6(包含SID)的报文使用多帧PDU进行传输,最大可传输4095字节的报文。分段传输包含一个首帧PDU(FF)和多个连续帧PDU(CF)。


LIN诊断





LIN诊断定义了在主节点和从节点之间实现诊断数据传输的方法。

LIN Master


主节点和诊断测试仪通过主干网(例如CAN)连接。主节点从Tester接收到寻址到从节点的诊断请求,将其路由到相应的LIN从节点。同样,从节点的响应也通过主节点返回给Tester。下图定义了主节点的诊断路由(其中LIN主节点和从节点之间的通信,虚线代表报头,实线代表响应场)。
图6 LIN 主节点诊断路由

LIN Slave


LIN诊断为从节点定义了三个诊断类型:I类,II类,III类,等级越高,支持的功能越多。

I类节点支持Node Configuration功能和基于信号的诊断;II类节点在此基础上支持ISO 14229-1定义的22服务和2E服务;III类节点还可以支持IS0 14229-1定义的其他服务(该部分服务可视主机厂的需求而定),部分III类节点还支持刷写的功能。诊断等级的关系如下图所示。
图7 诊断等级关联图


LIN诊断刷写测试实践





对于支持刷写的LIN从节点,该网段上LIN主节点应具有诊断路由功能,且满足LIN 传输协议的需求。为了验证LIN网段是否满足设计需求,需要进行以下测试:
  1. LIN Master TP测试

  2. LIN Slave TP 测试

  3. LIN 诊断服务测试

  4. LIN刷写测试

  5. X-LIN网关测试上层网络与LIN总线之间的路由(网关性能测试,此处不做探讨)


LIN诊断刷写测试开发


北汇信息基于Vector CANoe软件,采用 CAPL编程实现了TP、诊断服务和刷写的自动化测试。

图8 LIN Master TP测试工程

图9 LIN Slave TP测试工程

 图10 LIN诊断服务测试工程
 
图11 LIN刷写测试工程
 

 总结





北汇信息多年来一直专注于汽车电子测试,在网络测试、诊断测试和功能测试领域积累了丰富的经验。目前,在诊断测试方向,我们已实现了CAN、CAN FD、LIN、FlexRay和Ethernet的诊断刷写自动化测试方案。北汇信息愿与各位共同进步,分享价值。

参考文献
[1] ISO 14229-1-2013
[2] LIN Specification Package Revision 2.1
注:部分图片来自于Vector.

往期精彩
NEWS

温故知新|车载以太网技术分享
请听题!如何实现只用1个VN5640A搭建含2个交换机的车载以太网网络?
北汇信息再次通过长城汽车车载以太网测试服务认证(包括原测试内容年度审核及扩项认证)




如需了解如上内容更多信息,
可以随时联系北汇信息!
电话:021-34716271
邮箱:info@polelink.com


微信ID:Polelink_Info

    北汇信息|专注电控、新能源、MES技术

                                                                                              

分享,收藏,点赞,在看一起来


文章有问题?点此查看未经处理的缓存