基于CAN总线的汽车诊断服务网络层测试系统及方法与流程

文档序号:21588839发布日期:2020-07-24 16:34阅读:801来源:国知局
基于CAN总线的汽车诊断服务网络层测试系统及方法与流程

本发明属于汽车电控测试技术领域,具体涉及一种基于can(controllerareanetwork,控制器局域网络)总线的汽车诊断服务网络层测试系统及方法。

技术背景

汽车统一诊断服务(unifieddiagnosticservices,缩写uds)是实现车辆标准化诊断通信的系统。对其进行专业而规范的测试必不可少。它能保证协议栈符合国际标准,满足通信设计需求。因此,汽车统一诊断服务测试技术也是汽车电控开发过程中较为重要的一个方面。

目前,汽车控制器统一诊断服务的诊断测试工作均依靠德国vector公司的诊断工具链进行。诊断测试时,先通过candelastudio软件(vector公司一款专门用于编辑诊断数据库的软件)建立诊断数据库文件,再利用canoeoptiondiva软件自动生成测试用例,然后在canoe软件中搭配硬件进行执行测试,其中,candelastudio软件为用于编辑诊断数据库的软件,canoeoptiondiva软件为用于诊断自动化测试的软件,canoe软件为can通信工具。一套完整的工具链需要的软、硬件数量多,成本巨大,并且以上方法为对整个uds协议的测试,上述工具对诊断的测试偏重于诊断功能,不具备单独对网络层测试的功能,无法单独对网络层进行测试。



技术实现要素:

本发明的目的是针对上述技术问题,提供一种基于can总线的汽车诊断服务网络层测试系统及方法,本发明能够避免使用高成本的诊断测试工具链,有效地降低了测试成本,而且能够单独对网络层进行准确测试。

为实现此目的,本发明所设计的一种基于can总线的汽车诊断服务网络层测试系统,它包括can数据转换设备(kvaser硬件)和外部测试装置,所述can数据转换设备用于通过can总线连接至待测试ecu(electroniccontrolunit,电子控制单元);所述外部测试装置用于通过can数据转换设备连接至待测试ecu,以在启动待测试ecu时,通过外部测试装置对待测试ecu的汽车统一诊断服务网络层的时间参数、数据格式及异常操作测试。

本发明通过上述方式,能够避免使用高成本的诊断测试工具链,有效地降低测试成本,另外,本发明能够单独对网络层进行测试,满足了系统开发时,对网络层单独测试的需求。

附图说明

图1为本发明的结构示意图;

图2为本发明的流程图。

其中,1—can数据转换设备、2—外部测试装置。

具体实施方式

以下结合附图和实施例对本发明作进一步的详细说明:

如图1所示的基于can总线的汽车诊断服务网络层测试系统,它包括can数据转换设备1和外部测试装置2,所述can数据转换设备1用于通过can总线连接至待测试ecu;所述外部测试装置2用于通过can数据转换设备1连接至待测试ecu,以在启动待测试ecu时,通过外部测试装置2根据iso15765标准对待测试ecu的汽车统一诊断服务网络层的时间参数、数据格式及异常操作进行测试。

上述技术方案中,所述汽车统一诊断服务网络层的时间参数测试包括bs时间测试、cr时间测试、stmin时间测试和可用stmin测试,以上bs时间、cr时间、stmin时间和可用stmin均为iso15765标准里的专用定义,分别为接收下一个流控制帧的最长时间、接收下一个连续帧的最长时间、两个连续帧之间的最小间隔时间、可用的两个连续帧之间的最小间隔。

上述技术方案中,所述汽车统一诊断服务网络层的数据格式测试包括单帧数据长度测试、首帧数据长度测试、等待流控帧测试、溢出流控帧测试和blocksize(数据块大小)测试。

上述技术方案中,所述汽车统一诊断服务网络层的异常操作测试包括传输数据丢失测试、单帧无效测试、单帧dlc位不正确测试(datelengthcode位为根据iso15765规定,用于规定数据场长度的字节位)、双帧测试、单帧中断请求测试、首帧短于dlc位定义测试、首帧中断请求测试、单独的首帧测试、首帧功能寻址测试、连续帧丢失测试、丢失某一连续帧测试、连续帧延迟测试、连续帧无效测试、连续帧dlc位不正确测试、不期望的连续帧测试、连续帧中断请求测试、无流控制帧测试、流控制帧延迟测试、多余流控制帧测试、流控帧短于dlc位定义测试、错误的流控帧测试、不期望的流控制帧测试、流控制帧功能寻址测试、流控制帧中断请求测试、溢出流控制帧中断响应测试、未知帧测试和未知帧中断响应测试。

上述技术方案中,数据异常测试是指容错性测试,如不期望的连续帧这一测试项测试,测试设备将会在正常回复的帧后面加一帧不期望的连续帧,如控制器不理会,正常回复,则该项ok,否则该项nok。所有项测试完成将生成一个报告。

上述技术方案中,所述can数据转换设备1的高位can总线接口(can_h)和低位can总线(can_l)接口分别连接到待测试ecu的高位can总线接口和低位can总线接口。

上述技术方案中,所述外部测试装置2的测试软件采用python语言和qt语言进行编制,其中,python语言用于进行调用硬件、后台处理,qt语言用于进行外部测试装置2的软件操作界面设计。硬件是图1中的can转换装置。后台处理是外部测试设备的上位机软件的后台,后台处理包括:调用收发报文模块、数据分析模块、上位机显示模块等。

上述技术方案中,所述待测试ecu直接上电启动或者通过车辆主控制器统一控制进行启动和关闭。进而根据不同的控制策略进行操作测试。

上述技术方案中,所述can数据转换设备1为can卡,can卡用于实现can接口转usb接口,外部测试装置2通过usb接口连接can数据转换设备1。需要说明的是,在本实施方式中,usb接口还可以采用usb集线器的方式,以实现同时在线的多测试功能(一个外部测试装置只能对一个控制器进行测试,但多个外部测试装置可以同时在线同时为多个控制器进行测试,每个外部测试装置的配置步骤是一样的),此外,外部测试装置2可以为pc,pc可以为近端线路连接、也可以进一步通过usb连接至局域网或者广域网直至云端服务器的方式存在。

上述设计可以将can总线网络上的报文通过usb接口传输到pc个人电脑上,通过txt、excel、canoe软件来查看can报文,以此可以实现离线数据回放功能。

一种基于can总线的汽车诊断服务网络层测试方法,如图2所示,它包括如下步骤:

步骤1:将待测试ecu通过can总线连接至can数据转换设备1;

步骤2:将外部测试装置2通过can数据转换设备1连接至待测试ecu;

步骤3:在外部测试装置2的测试软件界面中填写测试输入,启动待测试ecu,通过外部测试装置2对待测试ecu的汽车统一诊断服务网络层的时间参数、数据格式及异常操作测试。

所述测试输入包括:请求id、响应id、功能寻址id、did(单帧)、did(多帧)等。通过上位机输入后,即可开始测试。上位机软件就会根据输入,按测试用例依次进行汽车统一诊断服务网络层的时间参数、数据格式及数据状态异常容错性测试,测试完成后,自动生成测试报告。

所述汽车统一诊断服务网络层的时间参数测试的具体方法如下:

bs时间测试:外部测试装置2通过can数据转换设备1向待测ecu发送多帧请求,以验证待测ecu能否在bs时间内发送流控制帧。如待测ecu能在bs时间内发送流控制帧,则该项测试通过,否则不通过。

cr时间测试:外部测试装置2通过can数据转换设备1向待测ecu发送请求,当blocksize为0时,待测ecu应发送全部响应,不需要等待流控制帧。验证能否在cr时间内接收到全部连续帧。如外部测试装置通过can数据转换设备1在cr时间接收到全部连续帧,则该项测试通过;否则不通过。

stmin时间测试:外部测试装置2通过can数据转换设备1对多帧响应发送流控制帧,待测ecu应给出全部响应,外部测试装置通过can数据转换设备1监控待测ecu任意两条连续帧之间的时间不低于stmin。测试中stmin值取1ms、10ms、20ms、30ms、40ms、50ms、60ms。如待测ecu任意两条连续帧之间的时间不低于stmin,则该项测试通过,否则不通过。

可用stmin测试:外部测试装置2通过can数据转换设备1向待测ecu发送多帧报文请求来测试待测ecu的stmin,stmin时间应在0x01-0x7f之间。如待测ecu响应的stmin时间在0x01-0x7f之间,则该项测试通过,否则不通过。

所述汽车统一诊断服务网络层的数据格式测试的具体方法如下:

单帧数据长度测试:外部测试装置2通过can数据转换设备1向待测ecu发送预期响应为单帧的请求报文,并检查待测ecu响应单帧的数据长度是否在允许范围内。如待测ecu响应单帧的数据长度在允许范围内,则该项测试通过,否则不通过。

首帧数据长度测试:外部测试装置2通过can数据转换设备1向待测ecu发送预期响应为多帧的请求报文,在接收首帧之后应确认首帧中数据长度是否在有效的范围内。如首帧中数据长度在有效的范围内,则该项测试通过,否则不通过。

等待流控帧测试:外部测试装置2通过can数据转换设备1对多帧响应报文的首帧发送等待流控制帧,并判断待测ecu是否进行响应。如不响应,则该项测试通过,否则不通过。

溢出流控帧测试:外部测试装置2通过can数据转换设备1对多帧响应报文的首帧发送溢出流控制帧,并判断待测ecu是否进行响应。如不响应,则该项测试通过,否则不通过。

blocksize(数据块大小)测试:外部测试装置2通过can数据转换设备1对待测ecu发送具有blocksize参数的流控帧,待测ecu响应的连续帧必须满足blocksize(数据块大小)要求。如果多帧响应足够长,依次检查blocksize=1、4、8、20。如待测ecu响应的连续帧满足blocksize要求,则该项测试通过,否则不通过。

所述汽车统一诊断服务网络层的异常操作测试的具体方法如下:

传输数据丢失测试:外部测试装置2通过can数据转换设备1对待测ecu发送多帧指令时丢失一些数据,并判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

单帧无效测试:外部测试装置2通过can数据转换设备1对待测ecu发送一个单帧,该单帧字节长度小于等于网络层协议数据场长度。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

单帧dlc位不正确测试:外部测试装置2通过can数据转换设备1对待测ecu发送一个协议不允许的数据长度的单帧,判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

双帧测试:外部测试装置2通过can数据转换设备1对待测ecu发送同一帧两次,判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

单帧中断请求测试:外部测试装置2通过can数据转换设备1对待测ecu发送一条多帧请求,在待测ecu给出流控制帧后,再发出另一条单帧请求。判断待测ecu是否响应第二条请求。如不响应,则该项测试通过,否则不通过。

首帧短于dlc位定义测试:外部测试装置2通过can数据转换设备1对待测ecu发送一条数据长度为0的首帧,判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

首帧中断请求测试:外部测试装置2通过can数据转换设备1对待测ecu发送请求的首帧,在收到待测ecu的流控制帧后,外部测试装置2通过can数据转换设备1对待测ecu发送另一条请求,判断待测ecu是否响应第二条请求。如不响应,则该项测试通过,否则不通过。

单独的首帧测试:外部测试装置2通过can数据转换设备1对待测ecu发送一个不正确的诊断请求,该请求只有首帧无连续帧。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

首帧功能寻址测试:外部测试装置2通过can数据转换设备1对待测ecu发送功能寻址首帧。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

连续帧丢失测试:外部测试装置2通过can数据转换设备1对待测ecu发送多帧时,丢失后续连续帧。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

丢失某一连续帧测试:外部测试装置2通过can数据转换设备1对待测ecu发送多帧时,丢失某一连续帧。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

连续帧延迟测试:外部测试装置2通过can数据转换设备1对待测ecu发送多帧时,连续帧延迟。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

连续帧无效测试:外部测试装置2通过can数据转换设备1对待测ecu发送多帧时,连续帧无效。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

连续帧dlc位不正确测试:外部测试装置2通过can数据转换设备1对待测ecu发送多帧时,如果字节长度小于网络层协议数据场长度。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

不期望的连续帧测试:外部测试装置2通过can数据转换设备1对待测ecu发送一个任一满足连续帧格式的连续帧。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

连续帧中断请求测试:外部测试装置2通过can数据转换设备1接收到待测ecu的第一个连续帧后再发送一个连续帧。判断待测ecu是否响应第一个请求,是否对连续帧进行响应。如待测ecu响应第一个请求,不对连续帧进行响应,则该项测试通过,否则不通过。

无流控制帧测试:待测ecu发出首帧后,外部测试装置2通过can数据转换设备1对待测ecu不发送流控制帧。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

流控制帧延迟测试:外部测试装置2通过can数据转换设备1对待测ecu发送一个延时的连续帧。判断待测ecu是否响应。如不响应,则该项测试通过,否则不通过。

多余流控制帧测试:待测ecu发出首帧后,外部测试装置2通过can数据转换设备1对待测ecu发送两条流控制帧。判断待测ecu是否响应,响应哪一条流控帧。如待测ecu响应第一条流控帧,不响应第二条,则该项测试通过,否则不通过。

流控帧短于dlc位定义测试:外部测试装置2通过can数据转换设备1对待测ecu发送一个比协议定义的数据长度短的流控帧。判断待测ecu是否响应。如待测ecu不响应,则该项测试通过,否则不通过。

错误的流控帧测试:待测ecu发出首帧后,外部测试装置2通过can数据转换设备1对待测ecu发送一个无效状态值(3~15)的流控帧。判断待测ecu是否响应。如待测ecu不响应,则该项测试通过,否则不通过。

不期望的流控制帧测试:外部测试装置2通过can数据转换设备1对待测ecu发送一个任一满足流控帧格式的流控帧。判断待测ecu是否响应。如待测ecu不响应,则该项测试通过,否则不通过。

流控制帧功能寻址测试:待测ecu发出首帧后,外部测试装置2通过can数据转换设备1对待测ecu发送功能寻址流控帧。判断待测ecu是否响应。如待测ecu不响应,则该项测试通过,否则不通过。

流控制帧中断请求测试:多帧传输过程中,待测ecu给出流控帧后,外部测试装置2通过can数据转换设备1对待测ecu再发送另一条首帧请求。判断待测ecu是否响应,响应第几条请求。如待测ecu响应第二条请求,则该项测试通过,否则不通过。

溢出流控制帧中断响应测试:多帧传输过程中,外部测试装置2通过can数据转换设备1接收到待测ecu的首帧连续帧后,发出状态为“溢出”的流控帧。判断待测ecu是否响应。如待测ecu不响应溢出流控帧,继续传输连续帧,则该项测试通过,否则不通过。

未知帧测试:外部测试装置2通过can数据转换设备1对待测ecu发送类型未知的诊断请求。判断待测ecu是否响应。如待测ecu不响应,则该项测试通过,否则不通过。

未知帧中断响应测试:多帧传输过程中,外部测试装置2通过can数据转换设备1接收到待测ecu的首帧连续帧后,发出一个未知帧。判断待测ecu是否响应。如待测ecu不响应未知帧,继续传输连续帧,则该项测试通过,否则不通过。

本发明操作简单,稳定可靠,能够对车载控制器进行uds协议网络层测试,可以极大地提高汽车电控制系统uds协议的开发及测试周期。

本说明书未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1