APP下载

基于CANoe的LIN总线仿真介绍

2023-07-10张倩白皓武美航李凯丁希贤

汽车电器 2023年6期
关键词:自动化测试

张倩 白皓 武美航 李凯 丁希贤

【摘  要】本文介绍利用CANoe的CAPL编程进行LIN总线自动化测试的思路和方法,比较不同方案的优缺点,系统地阐述整个过程。

【关键词】LIN;CAPL;自动化测试

中图分类号:U463.6    文献标志码:A    文章编号:1003-8639( 2023 )06-0063-02

LIN Bus Simulation Based on CANoe

ZHANG Qian,BAI Hao,WU Mei-hang,LI Kai,DING Xi-xian

(Shaanxi Heavy Duty Automobile Co.,Ltd.,Automobile Engineering Research Institute,Xi'an 710200,China)

【Abstract】This paper introduces the idea and method of LIN bus automatic test by using CAPL programming of canoe,compares the advantages and disadvantages of different schemes,and systematically expounds the whole process.

【Key words】LIN;CAPL;automatic test

1  LIN总线介绍

LIN(Local Interconnect Network,本地互联网络)是一种低成本、单线的串行通信网络,通信速率范围为0~20kb/s,常用的速率为19.2kb/s。该协议不需要单片机给予过多的硬件支持,通过使用一个简单的USART或增强型USART就可以实现。在车辆实际网络架构设计中,主要使用CAN总线和LIN总线相结合使用,LIN总线为CAN总线提供辅助功能,在不需要CAN总线的高带宽、高性能的场合(如传感器、天窗、组合开关、转向灯、电机等)实现信息的采集和传输。

在构建LIN总线网络时,需在设计之初约定好主控制器,其余所有的控制器都为从控制器。主控制器主要负责调度多个从控制器发送数据场的时机,从控制器主要负责进行对报头数据的响应。一般,网络中的主控制器不单纯是主控制器,还包含从控制器的功能。主控制器在某个时隙发送报头,所有从控制器接收后进行解析比对,如果符合报头中调度的ID,就回复响应。

2  LIN报文介绍

因为在测试过程中,LIN网络内的主从控制器是通过LIN报文进行信息交互的,这里对LIN报文格式进行简单介绍。

1)LIN协议数据帧结构由报文头、响应报文以及帧间隔组成。

2)报文头包含同步间隙、同步域和报文标识符场。

3)响应报文由1~9个字节构成,其中数据场可以为2个字节或4个字节或8个字节和1个校验和场组成。

3  仿真测试

在LIN网络中,车辆的某项功能需要多个控制器共同配合才能实现,但是多个控制器的开发进度很难保证是同步进行的,所以在验证功能时,可以使用CANoe或Kvaser软件的二次开发功能进行残余的控制器功能的仿真,进而对整个功能进行验证。本文介绍使用CANoe工具的仿真流程。

3.1  仿真方案

在仿真工程搭建之前,必须对所需仿真的控制器和已有的控制器功能進行深度解析,从正向、反向、边界、冗余等方面编制仿真测试用例。

测试人员可以根据自己实际掌握的知识情况进行仿真方案设计,共有2种方案,介绍如下。

方案1:基于CANoe工具,根据测试用例内容,使用Panel Designer工具进行界面设计,可以选择开关、文本数据等控件,使用CAPL编程语言按照测试用例编写测试管理代码、测试代码。

方案2:基于CANoe工具,使用Test Environments for Test Modules功能编制仿真测试用例。

方案1使用CANoe的CAPL browser工具内固有的函数和定时器进行程序编制,缺点是当测试用例中实现等待一段时间这个语句时,需要使用定时器来实现,但是如果功能中涉及多类定时器且定时器互相嵌套使用,若出现程序跑偏情况时,就很难定位程序的错误点。

方案2按照每一条测试用例使用Test Environments for Test Modules界面的New Test Environment形成Test Case,一条测试用例对应一条Test Case,测试内容清晰明了。当测试用例中实现等待一段时间这个语句时,直接使用TestWaitForTimeout()函数实现,即使有很多类的定时器和功能也不会出现互相嵌套的情况,当遇到程序问题时,可以按照测试用例逐条测试,非常有利于查找问题。

经过实际测试比对,选择方案2进行仿真程序设计。

3.2  工具准备

装配带LIN License的CANoe软件的电脑、CAN Case、LIN控制器、电源。

3.3  连接方法

1)电脑安装CANoe驱动,与CAN Case通过USB连接,CANse与LIN控制器连接电源,向LIN控制器供电。

2)根据LIN控制器的电源系统12V或24V,调整供电电源的电压。

3.4  仿真工程创建

打开CANoe 8.5软件,新建LIN仿真工程,如图1所示。

选择被测试控制器所遵守的协议版本、通信速率以及CANoe在该测试中充当的角色(主节点或者从节点),CANoe可以根据被赋予的角色进行收发报文,如果节点部分不勾选,CANoe为纯监控作用。速率和角色选择如图2所示。

仿真环境创建如图3所示。按照图3中标记的顺序创建仿真工程。在LIN主节点处点击右键选择Insert CAPL Test Module,就創建了一个虚拟主节点的CAPL编程模块。

按照图4点击Edit Test Module“Test 1”,在弹出的界面中选择CAPL存放的路径,并填写文件名称为“LIN-Master”,会自动生成一个LIN-Master.can的CAPL文件,该文件为模拟节点的测试程序,在该文件内编辑需要使用CANoe所想模拟的功能。

关联完成后,在Tset Environment中重新双击Test 1,会发现测试模块的文件名称变为“LIN-Master”。节点和仿真程序关联如图5所示。

仿真程序搭建如下。

1)该测试方案中真实的控制器为LIN从节点,需要搭建仿真工程模拟主节点通过报文驱动2个从节点进行动作。

2)分析主节点需要驱动从节点执行的动作,编制测试用例。

3)按照测试用例,使用Test Case模块进行程序编辑,一个子Case对应一条测试用例。

4)为了使测试思路便于最后的用例调试和问题定位,建议将通用的指令使用Function模块封装成独立的函数,在Case中进行调用。

5)如果测试中有为主节点驱动从节点动作的用例,为了保证每次测试从节点都是从起始点开始执行,在System的ON prestart函数中将驱动报文指令全部清零。

6)为了准确了解程序的执行情况,可以在测试用例中使用write()函数对程序做标记,在执行过程中可以通过观察打印出的描述来定位程序执行的位置,便于问题调试。

7)在用例编制中,可以通过语句实现发送LIN报头和响应,也可以通过关联和调用LDF数据库来实现。

8)在用例编制中,可以查阅帮助手册,按照CAPL语法要求使用现有的函数实现预期的功能。

9)完成后,进行语法编译,无误后,按照连接方法连接真实的从节点进行程序逻辑的调试,从而完成对从节点的功能测试。

4  结束语

随着车辆功能的快速迭代,为了能够在无硬件的情况下提前验证设计方案,可以将CAN Case或Kvaser做为快速硬件进行全虚拟仿真测试、残余仿真测试以及策略修正。CANoe是常用的总线测试仿真工具,熟悉掌握CAPL编程能够为测试工作提供很大的便利。

参考文献:

[1] 罗峰,李仁俊. LIN总线仿真与测试系统[C]//2010中国仪器仪表与测控技术大会论文集,2010:128-132.

[2] 刘宏波. 基于CANoe的车身网络通信设计[J]. 机电工程技术,2012,41(2):1-4.

(编辑  凌  波)

猜你喜欢

自动化测试
基于Java反射的APP自动化混合测试框架的研究与实现
Hadoop性能测试自动化研究
数据驱动和关键字驱动的研究与应用
浅谈空调控制器自动化测试
基于多总线结构的电路板测试系统设计研究
航空航天与国防电子新形势下自动化测试系统的应用
基于CTI—TET和SeleniumWebdriver的Web应用自动化测试框架的设计与实现
自动化测试实现研究
一种航空交换机中CAN总线的自动化测试方法
基于Selenium进行Web应用测试研究