实用LIN总线高效测试方案
技术干货 2022.09.23

自LIN总线发明到LIN 2.2A规范发布,LIN总线在汽车行业中的应用越来越广泛,包括车窗控制、座椅控制、后视镜控制、天窗控制、灯光控制等。由于LIN总线本身具有低速、主从式通信、单线传输等特点,其主节点对于整条总线上所有从节点的通信调度和网络管理至为关键,同时对于网络上多个不同从节点如何能正确响应主节点也非常重要。因此为保证LIN通信的可靠性和稳定性,对于LIN主节点和从节点进行协议一致性测试就变得尤为重要。


针对上述问题,怿星科技自研的Neptune CAN/LIN测试系统提供了有效的解决方案,下面跟着小编详细了解一下。

首先,我们先来了解一下LIN总线协议一致性的测试内容,它主要分为物理层测试 、通信层测试、网络管理测试、容错性测试四部分。


01 物理层测试点

LIN物理层测试主要包括电阻测试、高低压通信范围测试、位时间测试、占空比测试等。


测试点

测试目的

电阻测试

验证LIN总线内部电阻是否符合设计要求

高低压通信范围测试

验证LIN总线正常通信电压范围是满足设计要求

显隐性状态下LIN信号电平测试

验证LIN显隐性状态下电平信号是否满足设计要求

地偏移测试

验证DUT在地电压发生偏移时,LIN通信是否正常

位时间测试

验证LIN总线位时间是否满足设计要求,LIN总线位时间为波特率的倒数,通常要求LIN主节点误差在±0.5%以内,LIN从节点误差在±2%以内

斜率测试

验证LIN总线电平信号上升/下降斜率是否满足设计要求

占空比测试

验证LIN总线显性和隐性信号占空比是否符合设计要求

 

下面重点介绍一下位时间测试和占空比测试的测试方法。


▷ 位时间测试介绍

LIN数据帧通常由同步间隔场、同步场、标识符场(帧ID)、数据场、校验和场组成,如下图所示:



640 (4).png


对于同步场、标识符场(帧ID)、数据场、校验和场,都固定为1个字节,每个字节占10个bit位,包括起始位和结束位,如下图所示:



640 (5).png

测试目的

验证LIN总线位时间偏差是否在设计范围之内

测试设备

PicoScope示波器 

测试步骤

以LIN从节点为例,测量数据场Byte1字节的平均位时间。

■ Step1:设置电源电压为Vnormal,控制DUT上电,触发本地唤醒源

■ Step2:捕捉DUT发送的LIN帧,测量LIN帧中数据场Byte1的时间长度,并计算出平均位时间tBit


 判定标准

位时间tBit:1/19.20*1000 ≈ 52.08μs,误差±2%,51.04μs<= tBit<=53.12μs

LIN波特率:19.2kbit/s

 测试结果

如下图,使用PicoScope示波器抓取报文Id为0x18的波形,数据场Byte1的长度为519.994μs,Byte1共10bit,计算位时间:tBit= 519.994/10 = 51.9994μs,符合预期。


640 (6).png

 


▷占空比测试介绍

LIN总线信号的显性电平和隐性电平时间宽度需要满足占空比要求,占空比定义如图所示:


640 (7).png


Vnormal = 12V(DUT供电电压)

VSUP = Vnormal-0.6V

THRec(max)=0.744*VSUP

THDom(max)=0.581*VSUP

THRec(min)=0.422* VSUP

THDom(min)=0.284* VSUP

 计算公式:

■ 隐性状态下占空比计算公式:

640 (8).png

■ 显性状态下占空比计算公式:

640 (9).png


测试目的

验证LIN信号显隐性电平占空比是否符合设计要求

测试设备

PicoScope示波器

测试步骤

■ Step1:设置电源电压为Vnormal,控制DUT上电,触发本地唤醒源

■ Step2:调用示波器捕捉DUT发送的LIN帧,测量并计算隐性电平最小占空比:

   D1=tBUS_rec(min)/(2*tBit)

■ Step3:测量并计算隐性电平最大占空比:

   D2=tBUS_rec(max)/(2*tBit)

■ Step4:测量并计算显性电平最小占空比:

   D3=tBUS_dom(min)/(2*tBit)

■ Step5:测量并计算显性电平最大占空比:

   D4=tBUS_dom(max)/(2*tBit)

重复Step2~Step5测试多次

 

判定标准

每次测试的占空比都满足要求:

隐性状态下占空比:D1 > 0.396;D2 < 0.581

显性状态下占空比:D3 > 0.419;D4 < 0.604

 

测试结果

隐性状态下占空比:

tBUS_rec(min) = 50772ns,如图所示:


640 (10).png


tBUS_rec(max) = 54806ns,如图所示:


640 (11).png


D1= tBus_rec(min)/(2 x tBit)= (50772)/(2*51999) =0.488,大于0.396,符合预期。

D2= tBus_rec(max)/(2 x tBit) =(54806)/(2*51999) =0.527,小于0.581,符合预期。

 

显性状态下占空比:

tBUS_dom(min)=49343ns,如图所示:


640 (12).png


tBUS_dom(max)=53381ns,如图所示:


640 (13).png


D3= tBus_dom(min) / (2 x tBit) = (49343)/(2*51999) = 0.474,大于0.419,符合预期。

D4 = tBus_dom(max) / (2 x tBit) =(53381)/(2*51999) = 0.513,小于0.604,符合预期。

 

02 通信层测试点

LIN通信层测试主要验证DUT发送LIN报文属性及调度表属性是否与数据库定义一致。


测试点

测试目的

帧ID测试

验证LIN主、从节点的LIN报文ID是否与数据库定义一致

数据长度DLC测试

验证LIN主、从节点的数据长度DLC是否与数据库定义一致

帧头长度测试

对于LIN主节点,检查发送的帧头长度是否符合设计要求,对于LIN从节点,检查从节点能否正确响应设计范围之内的帧头长度

帧长度测试

验证LIN帧长度是否符合设计要求

校验方式测试

验证LIN帧校验方式是否符合设计要求

同步间隔场显性电平长度测试

验证LIN帧同步间隔场显性电平长度是否符合设计要求,只适用LIN主节点

同步界定符电平长度测试

验证LIN帧同步界定符电平长度是否符合设计要求,只适用LIN主节点

调度表时隙测试

验证调度表时隙是否与数据库定义一致,只适用LIN主节点

调度表顺序测试

验证调度表顺序是否与数据库定义一致,只适用LIN主节点

调度表帧周期测试

验证 LIN帧调度周期是否与数据库定义一致 ,只适用LIN主节点

 

03 网络管理测试点

LIN网络管理测试主要包括网络启动时间、网络唤醒、网络休眠等。


测试点

测试目的

启动时间测试

验证DUT开始通信时间是否满足设计要求

网络唤醒测试

验证DUT是否能正确执行唤醒机制

网络休眠测试

验证DUT是否能正确执行休眠机制


下面详细介绍LIN网络管理相关内容。

网络管理-状态切换


640 (14).png

 

 

▷ 网络睡眠

■ 睡眠指令:ID:0x3C Data:0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF。

■ 主节点发送一帧睡眠指令,从节点在接到睡眠指令之后,也可以选择不进入睡眠状态而继续工作,这根据应用层协议而定。

■ 当总线空闲4到10秒的时候,所有从节点必须进入睡眠状态。

▷ 网络唤醒

■ 在一个处于睡眠状态的LIN网络中,任何一个节点都可以发送唤醒信号。

■ 唤醒信号是一个250μs到5ms的显性电平,发送唤醒信号的节点发送唤醒信号后150ms~250ms没有收到其他节点的唤醒信号,发送唤醒信号的节点发送新的唤醒信号。


640 (15).png


■ 每一个从节点都需要具备以下两点:

  · 检测唤醒信号(持续150μs以上的显性位)

  · 当检测到唤醒信号之后,在100ms以内完成初始化工作

640 (16).png


■ 主节点除了需要完成唤醒以外,还需要检测出发送唤醒信号的节点(利用信号)。

  · 当从节点发出唤醒信号之后150ms,主节点仍未发送报头时,从节点可以再次发送唤醒信号。

  · 当连续发送了3次唤醒信号之后如果主节点仍未发送报头,从节点要等待1.5s以后才可以再次发送唤醒信号。


640 (17).png


 

▷ 网络管理-睡眠测试(主节点)

测试目的

验证DUT是否能正确执行休眠机制

测试步骤

Step1:设置电源电压为Vnormal,控制DUT上电,触发本地唤醒源

Step2:移除本地唤醒源,检测是否执行休眠机制

测试结果

如下图,触发睡眠事件后,主节点发送3C报文,总线无LIN帧传输,符合预期。


640 (18).png

 

▷ 网络管理-唤醒测试(主节点)

测试目的

验证DUT是否能正确执行唤醒机制

测试方法

Step1:设置电源电压为Vnormal,控制DUT上电,触发本地唤醒源

Step2:移除本地唤醒源,使DUT处于休眠状态

Step3:测试仪发送1000μs的唤醒脉冲信号(DUT被唤醒,并在150ms内发出帧头)

测试结果

发送1000μs的唤醒脉冲信号,总线在106.8ms内恢复LIN帧传输,符合预期。


640 (19).png


04 容错性测试点

容错性测试主要验证DUT发生故障时或针对LIN总线施加干扰时,DUT故障处理和恢复机制是否符合设计要求。


测试点

测试目的

LIN线断开测试

验证LIN线断开故障消除后DUT能否恢复正常通信

LIN线与电源短路测试

验证LIN线与电源短路故障消除后DUT能否恢复正常通信

LIN线与地短路测试

验证LIN线与地短路故障消除后DUT能否恢复正常通信

掉电测试

验证DUT掉电源故障消除后DUT能否恢复正常通信

掉地测试

验证DUT掉地故障消除后DUT能否恢复正常通信

同步场错误测试

验证同步场被干扰条件下DUT的行为是否符合需求

ID场校验位错误测试

验证ID场校验位被干扰条件下DUT的行为是否符合需求

数据场错误测试

验证数据场被干扰条件下DUT的行为是否符合需求

不完整帧干扰测试

验证响应帧不完整条件下DUT的行为是否符合需求

应答错误测试

验证DUT是否正确执行“应答错误”状态位的检测机制


Neptune CAN/LIN测试系统架构

针对LIN协议一致性测试,我们提供了Neptune CAN/LIN测试系统,系统由CANoe测试软件、测试硬件系统、ECU被测系统组成。


640 (20).png



CANoe测试软件:自动化测试操作管理软件,用户可以进行测试参数配置、测试用例选择、测试执行、测试报告管理和Log记录及分析等。

测试硬件系统:主要功能是模拟硬件测试环境,进行ECU电源控制、I/O信号控制及仿真、报文监控及仿真、LIN总线故障注入、LIN总线信号采集等。一次可同时部署多个DUT,程序自动切换测试,实现高效便捷操作。

DUT被测系统:被测LIN总线节点,符合LIN2.2A规范。


这套怿星自研的Neptune CAN/LIN测试系统不但能提高测试覆盖度,自适应不同测试环境,大幅减少测试工作量,而且操作简单,对测试人员的技术要求较低,同时还具备其他特点:

· 集成多种测试功能,CAN/CAN FD节点通信测试、LIN主/从节点通信测试、Autosar CAN网络管理测试、CAN/CANFD/LIN诊断、刷写、通信路由、诊断路由测试等

· 支持二次开发功能,提供了丰富的API接口,支持Excel/LDF/DBC/ARXML文件解析等

对此,感兴趣的小伙伴可以联系我们进行咨询!




关注怿星科技公众号,获取更多资讯


实用LIN总线高效测试方案(图18)