CN108809741A - Can总线的测试方法及装置 - Google Patents

Can总线的测试方法及装置 Download PDF

Info

Publication number
CN108809741A
CN108809741A CN201710288657.6A CN201710288657A CN108809741A CN 108809741 A CN108809741 A CN 108809741A CN 201710288657 A CN201710288657 A CN 201710288657A CN 108809741 A CN108809741 A CN 108809741A
Authority
CN
China
Prior art keywords
bus
data
interface
controller
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710288657.6A
Other languages
English (en)
Inventor
谷瑞
李雷
杜雷鸣
高鹏
卢娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Great Wall Motor Co Ltd
Original Assignee
Great Wall Motor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Great Wall Motor Co Ltd filed Critical Great Wall Motor Co Ltd
Priority to CN201710288657.6A priority Critical patent/CN108809741A/zh
Publication of CN108809741A publication Critical patent/CN108809741A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供了一种CAN总线的测试方法及装置,所述CAN总线的测试方法包括:提供自定义脚本程序的编辑入口,接收通过所述编辑入口提交的自定义脚本程序,所述自定义脚本程序中定义对测试功能接口的调用方法,所述测试功能接口包括数据解析接口、控制器诊断接口、参数标定接口,运行所述自定义脚本程序对CAN总线进行测试,包括:调用数据解析接口对所述CAN总线中的CAN数据进行解析,调用控制器诊断接口对与所述CAN总线连接的控制器进行诊断,调用参数标定接口对与所述CAN总线连接的控制器的运行参数进行标定。本发明所述的CAN总线的测试方法能够提高测试CAN总线的可靠性。

Description

CAN总线的测试方法及装置
技术领域
本发明涉及车辆技术领域,特别涉及一种CAN(Controller Area Network,控制器局域网络)总线的测试方法及装置。
背景技术
随着车辆技术的发展,车辆中所包括的各种各样的控制器的数据越来越多,通过不同的控制器可以对车辆不同的功能进行控制,从而保证车辆的稳定运行或者丰富车辆的功能。由于控制器之间通常需要通过CAN总线进行数据交互,即该CAN总线承载了大量与控制车辆整车功能有关的数据,所以为了确保各控制器之间的稳定运行,进而准确地对整车功能进行控制,需要一种CAN总线的测试方法。
现有技术中,可以将预设的测试功能的CAN总线测试设备与CAN总线连接,从而获取到该CAN总线中的CAN数据。该CAN总线测试设备可以按照预设的解析规则对所述CAN数据进行解析,得到车辆内的与该CAN总线连接的控制器运行有关的数据,比如控制器的运行参数,进而便于用户根据与控制器运行有关的数据对相应的控制器进行分析。
由于现有的CAN总线测试设备所预设的测试功能通常有限,仅能够获取CAN数据并对该CAN数据进行解析,测试的局限性较大,难以确保对CAN总线进行测试的可靠性。
发明内容
有鉴于此,本发明旨在提出一种CAN总线的测试方法,以提高对CAN总线进行测试的可靠性。
为达到上述目的,本发明的技术方案是这样实现的:
一种CAN总线的测试方法,所述CAN总线的测试方法包括:
提供自定义脚本程序的编辑入口;
接收通过所述编辑入口提交的自定义脚本程序,所述自定义脚本程序中定义对测试功能接口的调用方法,所述测试功能接口包括数据解析接口、控制器诊断接口、参数标定接口;
运行所述自定义脚本程序对CAN总线进行测试,包括:调用数据解析接口对所述CAN总线中的CAN数据进行解析,调用控制器诊断接口对与所述CAN总线连接的控制器进行诊断,调用参数标定接口对与所述CAN总线连接的控制器的运行参数进行标定。
进一步的,所述测试功能接口还包括数据收发接口,所述运行所述自定义脚本程序对CAN总线进行测试还包括:
调用所述数据收发接口接收所述CAN总线发送的第一CAN数据,或,向所述CAN总线发送第二CAN数据。
进一步的,所述运行所述自定义脚本程序对CAN总线进行测试包括:
创建第一线程,执行对与所述CAN总线连接的控制器进行诊断的操作;或,
创建第二线程,执行对与所述CAN总线连接的控制器的运行参数进行标定操作;或,
创建第三线程,执行调用所述数据收发接口接收所述CAN总线发送的第一CAN数据;或,
创建第四线程,执行向所述CAN总线发送第二CAN数据的操作;或,
创建第五线程,执行对所述CAN总线中的CAN数据进行解析的操作。
进一步的,所述运行所述自定义脚本程序对CAN总线进行测试包括:
创建第六线程,运行所述自定义脚本程序。
进一步的,所述线程包括多个协程,且各协程支持异步IO(Input and Output,输入与输出)操作。
相对于现有技术,本发明所述的CAN总线的测试方法具有以下优势:
在本发明实施例中,首先,能够提供自定义脚本程序的编辑入口,接收通过该编辑入口提交的自定义脚本程序,所以,在实际应用中,可以根据测试需要,在该自定义脚本程序中定义测试功能接口的调用方法,也即是,能够以自定义脚本程序作为插件的方式,自定义测试CAN总线的测试策略,满足不同的测试需求,提高了对CAN总线测试的可靠性。其次,测试功能接口包括数据解析接口、控制器诊断接口和参数标定接口,确保了能够通过该自定义脚本程序,对CAN总线中的CAN数据进行解析、根据CAN数据对车辆内的控制器进行诊断、根据CAN数据或者诊断结果对控制器的运行参数进行标定,即将CAN数据解析、控制器诊断和控制器标定等测试功能集成在一起,而不需要根据人工经验对CAN数据的解析结果进行分析,实现了对CAN总线的自动化测试,进一步提高了对CAN总线进行测试的可靠性。
本发明的另一目的在于提出一种CAN总线的测试装置,以提高对CAN总线进行测试的可靠性。
为达到上述目的,本发明的技术方案是这样实现的:
一种CAN总线的测试装置,所述CAN总线的测试装置包括:
编辑模块,用于提供自定义脚本程序的编辑入口;
接收模块,用于接收通过所述编辑入口提交的自定义脚本程序,所述自定义脚本程序中定义对测试功能接口的调用方法,所述测试功能接口包括数据解析接口、控制器诊断接口、参数标定接口;
测试模块,用于运行所述自定义脚本程序对CAN总线进行测试,包括:调用数据解析接口对所述CAN总线中的CAN数据进行解析,调用控制器诊断接口对与所述CAN总线连接的控制器进行诊断,调用参数标定接口对与所述CAN总线连接的控制器的运行参数进行标定。
进一步的,所述测试功能接口还包括数据收发接口,所述测试模块还用于:
调用所述数据收发接口接收所述CAN总线发送的第一CAN数据,或,向所述CAN总线发送第二CAN数据。
进一步的,所述测试模块包括:
第一创建子模块,用于创建第一线程,执行对与所述CAN总线连接的控制器进行诊断的操作;或,
第二创建子模块,用于创建第二线程,执行对与所述CAN总线连接的控制器的运行参数进行标定操作;或,
第三创建子模块,用于创建第三线程,执行调用所述数据收发接口接收所述CAN总线发送的第一CAN数据;或,
第四创建子模块,用于创建第四线程,执行向所述CAN总线发送第二CAN数据的操作;或,
第五创建子模块,用于创建第五线程,执行对所述CAN总线中的CAN数据进行解析的操作。
进一步的,所述测试模块包括:
第六创建子模块,用于创建第六线程,运行所述自定义脚本程序。
进一步的,所述线程包括多个协程,且各协程支持异步IO操作。
所述CAN总线的测试装置与上述CAN总线的测试方法相对于现有技术所具有的优势相同,在此不再赘述。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种CAN总线的测试方法流程图;
图2为本发明实施例所述的一种配置界面示意图;
图3为本发明实施例所述的另一种CAN总线的测试方法流程图;
图4为本发明实施例所述的一种用户界面示意图;
图5为本发明实施例所述的一种CAN总线的测试装置的框图;
图6为本发明实施例所述的另一种CAN总线的测试装置的框图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
在对本发明实施例进行详细的解释说明之前,先对本发明实施例的应用场景予以介绍。
本发明实施例可以被提供为一种客户端,该客户端可以安装在电脑等计算接设备中,从而使该计算机设备能够作为CAN总线测试设备,来实施本发明实施例所提供的CAN总线的测试方法,包括收发CAN数据、根据收发的CAN数据对车辆中的控制器进行诊断、对该控制器的运行参数进行标定等。
其中,该CAN数据为在该CAN总线中传输的、用于不同的控制器之间进行通信的数据。根据该CAN数据所具有的功能和作用的不同,该CAN数据可以分为数据帧、远程帧、出错帧和超载帧等。
该CAN总线测试设备可以与CAN数据收发器的一端连接,且该CAN数据收发器的另一端可以与CAN总线进行连接。
其中,由于该CAN总线测试设备用于传输数据的端口与该CAN总线的端口可能并不相同,比如,该CAN总线测试设备用于传输数据的端口可能是USB(Universal Serial Bus,通用串行总线)端口,而该CAN总线可能是专用于传输CAN数据的CAN接口。端口可能会导致该CAN总线测试设备无法正常收发CAN数据,所以可以通过CAN数据收发器来实现该CAN总线测试设备与该CAN总线之间的连接。
参见图1,示出了本发明实施例提供的一种CAN总线的测试方法流程图,具体步骤包括:
步骤101,提供自定义脚本程序的编辑入口。
由于车辆中的控制器的数目或种类可能较多,当车辆不同或者车辆内所包括的控制器不同时,相应地,对车辆内的CAN总线进行测试的需求也可能会不同,而预设的测试功能通常固定且单一,可能难以全面地对该CAN总线进行测试,可靠性较低,因此,为了通过根据实际测试需求所自定义的脚本程序对CAN总线进行测试,提高测试CAN总线可靠性,可以提供自定义脚本程序的编辑入口。
其中,自定义脚本程序的编辑入口用于打开具有脚本程序编辑功能的应用或者页面,以便于在该具有脚本程序编辑功能的应用或者页面中对脚本程序进行编辑,包括创建、修改等
在本发明实施例中,可选的,为了便于与用户进行交互,从而提高通过该编辑入口接收提交的脚本程序的效率,可以提供一个配置界面,并在该配置界面中包括该自定义脚本程序的编辑入口。
其中,该配置界面为用于配置与测试CAN总线相关的界面。
例如,该配置界面如图2所示,该配置界面中包括第一下拉菜单按钮、“创建”按钮和“修改”按钮。当基于第一下拉菜单按钮接收到点击操作、触摸操作等预设操作时,可以以展示已有的脚本程序的脚本标识,当基于展示的任一脚本标识接收到该预设操作时,可以将该脚本标识作为目标脚本标识。当基于该“创建”按钮接收到该预设操作时,可以打开脚本程序编辑页面,并在该脚本编辑页面中接收提交的脚本程序。当基于该“修改”按钮收到该预设操作时,可以打开该脚本程序编辑页面,并在该脚本程序编辑页面中根据该目标脚本标识,加载目标脚本程序,以对该目标脚本程序进行修改。
其中,脚本标识用于唯一标识一个脚本,该脚本标识可以是脚本程序的名称或ID(Identification,身份证)等。
步骤102,接收通过所述编辑入口提交的自定义脚本程序,所述自定义脚本程序中定义对测试功能接口的调用方法,所述测试功能接口包括数据解析接口、控制器诊断接口、参数标定接口。
为了便于满足不同的测试需求,提高对CAN总线测试的可靠性,可以在该自定义脚本程序中定义对测试功能接口的调用方法,进而便于根据实际的测试需要,选择对测试功能接口的调用方法,也即是,以自定义脚本程序作为插件的方式,自定义测试CAN总线的测试策略。
可以通过接收基于该编辑入口打开的具有脚本程序编辑功能的应用或者页面中输入的脚本程序得到该自定义脚本程序。
其中,测试功能接口为预先设置的能够实现至少一种测试功能的接口,比如用于对CAN总线中的CAN数据进行解析的数据解析接口,用于对车辆内与该CAN总线连接的控制器进行诊断的控制器诊断接口,用于对该控制器的运行参数进行标定的参数标定接口等接口。
在本发明实施例中,优选的,该控制器诊断接口可以根据车辆诊断标准ISO15765和ISO14229来对该控制器的诊断。
在本发明实施例中,优选的,该参数标定接口为基于ASAM(Association forStandardisation of Automation and Measuring Systems,自动化及测量系统标准协会)-MCD(Measurement,Calibration and Diagnosis,测量,标定和诊断)协议的接口,且该参数标定接口还可以用于获取该控制器的运行参数。
在本发明实施例中,优选的,由于API(Application Programming Interface,应用程序编程接口)通常能够提供预置的功能,且无需了解其实现预置的功能的工作机制,因此,为了提高与用户的交互效率,进而提高接收该自定义脚本程序的效率,该测试功能接口可以是API。
在本发明实施例中,优选的,由于高级编程语言通常支持面向对象或者函数式编程等编程方式,且便于运行脚本程序的过程中对脚本程序中可能存在的异常和错误进行检测,所以,为了提高运行自定义脚本程序的效率和可靠性,该自定义脚本程序可以是基于高级编程语言的脚本程序。
例如,该高级编程语言可以是Python语言。
在本发明实施例中,优选的,为了进一步提高与用户的交互效率,进而提高接收该自定义脚本程序的效率,可以在接收通过所述编辑入口提交的自定义脚本程序之前,展示多个测试功能接口和各测试功能接口的说明信息(比如,各测试功能接口的用途和可行的调用方法等信息)。
步骤103,运行所述自定义脚本程序对CAN总线进行测试。
由于该自定义脚本程序为根据实际测试需要所提交的脚本程序,因此,可以运行该自定义脚本程序来对该CAN总线进行测试,从而提高测试CAN总线的可靠性。
其中,为了避免单一地对CAN数据进行解析而导致的测试局限性较大的问题,从而提高对CAN总线进行测试的可靠性,可以调用数据解析接口对所述CAN总线中的CAN数据进行解析,调用控制器诊断接口对与所述CAN总线连接的控制器进行诊断,调用参数标定接口对与所述CAN总线连接的控制器的运行参数进行标定。也即是,通过自定义脚本程序,将CAN数据解析、控制器诊断以及参数标定等测试功能集成在一起,从而能够根据对CAN数据进行解析得到与控制器运行有关的数据对该控制器进行诊断,根据与控制器运行有关的数据或者对该控制器的诊断结果,对该控制器的运行参数进行标定,实现了对CAN总线进行测试的自动化。
在本发明实施例中,优选的,还可以调用参数标定接口获取与该CAN总线连接的控制器的运行参数。
在本发明实施例中,首先,能够提供自定义脚本程序的编辑入口,接收通过该编辑入口提交的自定义脚本程序,所以,在实际应用中,可以根据测试需要,在该自定义脚本程序中定义测试功能接口的调用方法,也即是,能够以自定义脚本程序作为插件的方式,自定义测试CAN总线的测试策略,满足不同的测试需求,提高了对CAN总线测试的可靠性。其次,测试功能接口包括数据解析接口、控制器诊断接口和参数标定接口,确保了能够通过该自定义脚本程序,对CAN总线中的CAN数据进行解析、根据CAN数据对车辆内的控制器进行诊断、根据CAN数据或者诊断结果对控制器的运行参数进行标定,即将CAN数据解析、控制器诊断和控制器标定等测试功能集成在一起,而不需要根据人工经验对CAN数据的解析结果进行分析,实现了对CAN总线的自动化测试,进一步提高了对CAN总线进行测试的可靠性。
参见图3,示出了本发明实施例提供的一种CAN总线的测试方法流程图,具体步骤包括:
步骤301,CAN总线测试设备提供自定义脚本程序的编辑入口。
其中,提供自定义脚本程序的编辑入口方式,可以与步骤101中提供自定义脚本程序的编辑入口的步骤相同,此处不再一一赘述。
步骤302,所述CAN总线测试设备接收通过所述编辑入口提交的自定义脚本程序,所述自定义脚本程序中定义对测试功能接口的调用方法,所述测试功能接口包括数据解析接口、控制器诊断接口、参数标定接口。
其中,接收通过所述编辑入口提交的自定义脚本程序的步骤,可以与步骤102中接收通过所述编辑入口提交的自定义脚本程序的步骤相同,此处不再一一赘述。
在本发明实施例中,优选的,为了能够根据实际测试需求,灵活地收发CAN数据,进而提高测试CAN总线的可靠性,该测试功能接口还包括数据收发接口,该数据收发接口用于收发CAN数据,包括接收该CAN总线发送的第一CAN数据或向该CAN总线发送第二CAN数据。相应的,该数据解析接口用于第一CAN数据进行解析得到第一CAN数据中携带的与控制器有关的数据,或,将需要发送给控制器的数据进行反解析得到第二CAN数据。
其中,在对CAN总线进行测试的过程中,可能需要与车辆中的控制器进行交互,比如获取控制器中的运行参数等,所以,可以向该CAN总线发送第二CAN数据。
可以按照预设的解析规则对第一CAN数据进行解析,或,将需要发送给控制器的数据进行反解析得到第二CAN数据。该预设的解析规则可以是符合ISO11898标准的解析规则。
在本发明实施例中,优选的,为了提高收发CAN数据的效率,可以调用不同的接口来分别实现接收第一CAN数据或发送第二CAN数据,比如,该测试功能接口不包括该数据收发接口,而是包括发送数据接口和接收数据接口,该接收数据接口用于接收第一CAN数据,该发送数据接口用于发送第二CAN数据。
在本发明实施例中,优选的,由于在向CAN总线发送第二CAN数据时,可能需要周期性地发送第二CAN数据,因此,为了提高发送第二CAN数据的周期的准确性和灵活性,进而提高测试CAN总线的可靠性,该测试功能接口还包括计时器接口,该计时器接口用于实现高精度地计时功能,从而准确地确定发送第二CAN数据的周期。
在本发明实施例中,优选的,为了记录CAN数据,对控制器的诊断结果等于测试CAN总线有关的信息,该测试功能接口还包括日志接口,该日志接口用于根据对CAN总线的测试过程或结果,存储日志。
其中,该日志可以包括CAN数据和该CAN数据的属性信息,该CAN数据的属性信息可以包括获取到该CAN数据的时刻、该CAN数据的ID,该CAN数据的方向、该CAN数据的名称等信息。获取到该CAN数据的时刻包括接收到第一CAN数据的时刻或生成第二CAN数据的时刻。该CAN数据的ID可以由发送该CAN数据的控制器确定,该CAN数据的ID用于说明发送该CAN数据的控制器或者所需发送至的目的控制器。该CAN数据的方向同于说明该CAN数据为第一CAN数据或第二CAN数据。该CAN数据的名称用于说明该CAN数据是数据帧、远程帧、出错帧或超载帧。
在本发明实施例中,优选的,为了根据实际测试需要,对配置界面等用户界面进行设置,提高与用户之间的交互效率,提高测试CAN总线的可靠性,该测试功能接口还包括用户界面接口,该用户界面接口用于在用户界面中添加或删除标签、按钮、输入框等交互控件。
在实际应用中,为了提高测试CAN总线的灵活性,该自定义脚本程序可以定义对至少一个测试功能接口的调用方法,以对至少一个测试功能进行自定义。
步骤303,所述CAN总线测试设备建立与CAN总线之间的连接,判定所述自定义脚本程序为目标自定义脚本程序。
由于CAN总线测试设备中可能存储有多个自定义脚本程序,因此,为了提高测试CAN总线的可靠性,可以判定该自定义脚本程序即为用于对CAN总线进行测试的目标自定义脚本程序。
其中,可以根据与所述CAN总线测试设备连接的CAN收发器的收发器型号,确定目标驱动程序,该目标驱动程序为当前与所述CAN总线测试设备连接的CAN收发器的驱动程序,通过该目标驱动程序,驱动所述CAN收发器,以建立与所述CAN总线之间的连接。
在本发明实施例中,优选的,可以在该配置界面中包括驱动程序选择入口,接受该驱动程序选择入口提交的驱动程序作为该目标驱动程序。
例如,可以在步骤101中如图2所示的该配置界面还包括第二下拉菜单,第二下拉菜单用于展示多个驱动程序标识,当基于展示的任一驱动程序标识接收到预设操作时,可以将该驱动程序标识对应的驱动程序作为目标驱动程序。
判定该自定义脚本程序即为该目标自定义脚本程序的方式,可以与步骤101中确定目标自定义脚本程序的方式相同,此处不再一一赘述。
步骤304,所述CAN总线测试设备运行所述自定义脚本程序对CAN总线进行测试。
其中,可以调用数据解析接口对所述CAN总线中的CAN数据进行解析,调用控制器诊断接口对与所述CAN总线连接的控制器进行诊断,调用参数标定接口对与所述CAN总线连接的控制器的运行参数进行标定。
在本发明实施例中,优选的,可以调用所述数据收发接口接收所述CAN总线发送的第一CAN数据,或,向所述CAN总线发送第二CAN数据。相应的,可以调用所述数据解析接口对所述第一CAN数据进行解析,得到第一CAN数据中携带的与控制器有关的数据,或,将需要发送给控制器的数据进行反解析进行反解析得到第二CAN数据。
在本发明实施例中,优选的,由于该自定义脚本程序中可能会包括多个函数,为了避免该运行该自定义脚本程序的过程中,某个函数产生错误时影响到其它函数,提高运行该自定义脚本程序的可靠性,进而提高测试CAN总线的可靠性,可以创建第六线程,运行所述自定义脚本程序。
在本实施例中,优选的,为了进一步提高运行该自定义脚本程序的可靠性,进而提高测试CAN总线的可靠性,可以创建第一线程,执行对与所述CAN总线连接的控制器进行诊断的操作;或,创建第二线程,执行对与所述CAN总线连接的控制器的运行参数进行标定操作;或,创建第三线程,执行调用所述数据收发接口接收所述CAN总线发送的第一CAN数据;或,创建第四线程,执行向所述CAN总线发送第二CAN数据的操作;或,创建第五线程,执行对所述CAN总线中的CAN数据进行解析的操作。
在本实施例中,优选的,第三线程之外的其它线程可以通过回调函数的方式从第三线程中获取第一CAN数据,即其它线程中的任一线程可以向第三线程发送CAN数据获取请求,该CAN请求中携带目标CAN数据ID,当第三线程在接收到第一CAN数据并判定第一CAN数据的ID为该目标CAN数据ID时,将第一CAN数据发送给该线程。
当然,在实际应用中,还可以创建其它线程,比如,为了提高与用户之间的交互效率,可以创建第七线程,执行基于用户界面与用户的交互操作。
例如,用户界面可以如图4所示。图4中包括“配置”、“连接”按钮、“发送”按钮、“清空”按钮和“日志存储”按钮。当基于“配置”按钮接收到该预设操作时,可以打开该配置界面;当基于“连接”按钮接收到该预设操作时,可以建立与CAN总线之间的连接;当基于“发送”按钮接收到该预设操作时,可以向CAN总线发送第二CAN数据;当基于“清空”按钮接收到该预设操作时,可以将当前测试过程中的数据进行删除;当基于“日志存储”按钮接收到该预设操作时,可以存储日志。
图4中还包括“数据日志”、“诊断接口”和“脚本输出”等标签页。
“数据日志”标签页中包括过滤器区域和数据显示区域。该过滤器区域中包括针对显示ID和隐藏ID的输入框,其中,该显示ID用于指示显示具有该ID的CAN数据,隐藏ID用于指示不显示具有该ID的CAN数据。该数据显示区域包括数据校验、相对时长、按时序显示等三个复选框和CAN数据显示窗口。当该数据校验复选框被选中时,可以对显示的该CAN数据显示窗口所显示的CAN数据进行校验;当该相对时长复选框被选中时,可以按照获取到的相邻两个CAN数据之间的相对时长显示各CAN数据;当按时序显示复选框被选中时,可以按照获取到的各CAN数据的时间顺序,显示各CAN数据。该CAN数据显示窗口可以显示CAN数据、获取到该CAN数据的时刻、该CAN数据的ID,该CAN数据的方向、该CAN数据的名称。
另外,“诊断接口”标签页用于展示通过调用诊断接口,根据CAN数据对应车辆内的控制器进行诊断的诊断结果;该“脚本输出”标签页可以用于展示运行该自定义脚本程序的运行结果。
在本发明实施例中,优选的,由于运行该自定义脚本程序的过程中,各线程中运行的函数可能会执行IO操作,包括发出IO请求并等待直至完成IO操作才继续执行下一步操作,而等待完成IO操作的过程通常会耗费较长的时间,所以可能会导致运行该自定义脚本程序占用大量系统资源。另外,由于一个协程可以用于执行一个子程序或者一个子函数,且执行该子程序或子函数的过程中,可以中断并保存执行状态,进而能够再次根据该执行状态继续执行该子程序或子函数,且异步IO可以是在运行函数的过程中在发出IO请求时,不必等待IO操作完成,而是可以运行其它函数,并在该IO操作完成时,继续运行该函数。因此,为了提高各线程的运行效率,进而提高运行该自定义脚本程序的效率、避免占用大量系统资源的问题,各线程可以包括多个协程,且各协程支持异步IO操作。
在本发明实施例中,优选的,调用计时器接口来确定高精度定时器的定时时长;调用日志接口,根据对CAN总线的测试过程或结果,存储日志;调用用户界面接口,在用户界面中添加或删除标签、按钮、输入框等交互控件。
在本发明实施例中,首先,能够提供自定义脚本程序的编辑入口,接收通过该编辑入口提交的自定义脚本程序,所以,在实际应用中,可以根据测试需要,在该自定义脚本程序中定义测试功能接口的调用方法,也即是,能够以自定义脚本程序作为插件的方式,自定义测试CAN总线的测试策略,满足不同的测试需求,提高了对CAN总线测试的可靠性。其次,测试功能接口包括数据解析接口、控制器诊断接口和参数标定接口,确保了能够通过该自定义脚本程序,对CAN总线中的CAN数据进行解析、根据CAN数据对车辆内的控制器进行诊断、根据CAN数据或者诊断结果对控制器的运行参数进行标定,即将CAN数据解析、控制器诊断和控制器标定等测试功能集成在一起,而不需要根据人工经验对CAN数据的解析结果进行分析,实现了对CAN总线的自动化测试,进一步提高了对CAN总线进行测试的可靠性。
另外,测试功能接口还包括数据收发接口,所以能够通过在自定义脚本程序中定义该数据收发接口的调用方法,根据测试需求,自定义收发CAN数据的策略,提高了对CAN总线进行测试的可靠性。
另外,能够分别通过独立的线程来运行该自定义脚本程序、执行对与CAN总线连接的控制器进行诊断、对控制器的运行参数进行标定、接收第一CAN数据、发送第二CAN数据、对CAN数据进行解析等操作,确保了在测试过中出现错误线程难以对其它线程造成影响,提高了运行自定义脚本程序的可靠性,进而提高了对CAN总线进行测试的可靠性。
另外,各线程中可以包括多个协程且各协程支持异步IO操作,也即是,通过基于协程的异步IO,避免了运行自定义脚本程序的过程中,因为执行大量的IO的操作而导致的效率较低以及占用大量系统资源的问题,从而提高了运行自定义脚本程序的效率,进而提高了对CAN总线进行测试的效率。
参见图5,示出了本发明实施例提供的一种CAN总线的测试装置的框图,该测试装置包括:
编辑模块501,用于提供自定义脚本程序的编辑入口;
接收模块502,用于接收通过所述编辑入口提交的自定义脚本程序,所述自定义脚本程序中定义对测试功能接口的调用方法,所述测试功能接口包括数据解析接口、控制器诊断接口、参数标定接口;
测试模块503,用于运行所述自定义脚本程序对CAN总线进行测试,包括:调用数据解析接口对所述CAN总线中的CAN数据进行解析,调用控制器诊断接口对与所述CAN总线连接的控制器进行诊断,调用参数标定接口对与所述CAN总线连接的控制器的运行参数进行标定。
可选的,所述测试功能接口还包括数据收发接口,所述测试模块还用于:
调用所述数据收发接口接收所述CAN总线发送的第一CAN数据,或,向所述CAN总线发送第二CAN数据。
可选的,所述测试模块包括:
第一创建子模块,用于创建第一线程,执行对与所述CAN总线连接的控制器进行诊断的操作;或,
第二创建子模块,用于创建第二线程,执行对与所述CAN总线连接的控制器的运行参数进行标定操作;或,
第三创建子模块,用于创建第三线程,执行调用所述数据收发接口接收所述CAN总线发送的第一CAN数据;或,
第四创建子模块,用于创建第四线程,执行向所述CAN总线发送第二CAN数据的操作;或,
第五创建子模块,用于创建第五线程,执行对所述CAN总线中的CAN数据进行解析的操作。
可选的,所述测试模块包括:
第六创建子模块,用于创建第六线程,运行所述自定义脚本程序。
可选的,所述线程包括多个协程,且各协程支持异步IO操作。
在本发明实施例中,首先,能够提供自定义脚本程序的编辑入口,接收通过该编辑入口提交的自定义脚本程序,所以,在实际应用中,可以根据测试需要,在该自定义脚本程序中定义测试功能接口的调用方法,也即是,能够以自定义脚本程序作为插件的方式,自定义测试CAN总线的测试策略,满足不同的测试需求,提高了对CAN总线测试的可靠性。其次,测试功能接口包括数据解析接口、控制器诊断接口和参数标定接口,确保了能够通过该自定义脚本程序,对CAN总线中的CAN数据进行解析、根据CAN数据对车辆内的控制器进行诊断、根据CAN数据或者诊断结果对控制器的运行参数进行标定,即将CAN数据解析、控制器诊断和控制器标定等测试功能集成在一起,而不需要根据人工经验对CAN数据的解析结果进行分析,实现了对CAN总线的自动化测试,进一步提高了对CAN总线进行测试的可靠性。
参见图6,示出了本发明实施例提供的一种CAN总线的测试装置的框图,该测试装置包括:
驱动模块601,用于根据连接的CAN收发器的收发器信号,通过与该CAN收发器对应的目标驱动程序,驱动该CAN收发器,从而对该CAN收发器进行初始化、通过该CAN收发器收发CAN数据。
CAN数据发送模块602,用于接收主界面模块604、诊断模块605或脚本程序运行模块606等其它模块的数据,并向根据接收到的数据向该驱动模块601向该CAN总线发送第二CAN数据。CAN数据发送模块602中可以包括数据收发接口。
CAN数据接收模块603,用于从驱动层601中接收CAN总线中第一CAN数据,并将第一CAN数据发送给主界面模块604、诊断模块605或脚本程序运行模块606等其它模块。CAN数据发送模块603中可以包括数据收发接口。
主界面模块604,用于提供用户界面,并根据该用户界面响应用户操作,实现与用户之间的交互。
诊断模块605,用于根据第一CAN数据或第二CAN数据对控制器进行诊断。该诊断模块605中可以包括控制器诊断接口。
脚本程序运行模块606,用于运行自定义脚本程序,以调用测试功能接口,与驱动模块601、CAN数据发送模块602、CAN数据接收模块603、主界面模块604和诊断模块605等进行交互,实现对CAN总线的测试。
可选的,驱动模块601、CAN数据发送模块602、CAN数据接收模块603、主界面模块604、诊断模块605和脚本程序运行模块606均可以是一个单独的线程。
可选的,CAN数据发送模块602中可以包括一个高精度计时器,并能够根据该高精度计时器周期性发送第二CAN数据。
可选的,主界面模块604、诊断模块605和脚本程序运行模块606中均集成有解析子模块,该解析子模块用于对第一CAN数据进行解析得到第一CAN数据中携带的与控制器有关的数据,或,将需要发送给控制器的数据进行反解析得到第二CAN数据。当然,在实际应用中,主界面模块604、诊断模块605和脚本程序运行模块606中也可以不集成该解析子模块,而是该测试装置还包括解析模块,主界面模块604、诊断模块605和脚本程序运行模块606可以通过该解析模块对第一CAN数据进行解析得到第一CAN数据中携带的与控制器有关的数据,或,将需要发送给控制器的数据进行反解析得到第二CAN数据。
在本发明实施例中,首先,能够提供自定义脚本程序的编辑入口,接收通过该编辑入口提交的自定义脚本程序,所以,在实际应用中,可以根据测试需要,在该自定义脚本程序中定义测试功能接口的调用方法,也即是,能够以自定义脚本程序作为插件的方式,自定义测试CAN总线的测试策略,满足不同的测试需求,提高了对CAN总线测试的可靠性。其次,测试功能接口包括数据解析接口、控制器诊断接口和参数标定接口,确保了能够通过该自定义脚本程序,对CAN总线中的CAN数据进行解析、根据CAN数据对车辆内的控制器进行诊断、根据CAN数据或者诊断结果对控制器的运行参数进行标定,即将CAN数据解析、控制器诊断和控制器标定等测试功能集成在一起,而不需要根据人工经验对CAN数据的解析结果进行分析,实现了对CAN总线的自动化测试,进一步提高了对CAN总线进行测试的可靠性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种CAN总线的测试方法,其特征在于,所述CAN总线的测试方法包括:
提供自定义脚本程序的编辑入口;
接收通过所述编辑入口提交的自定义脚本程序,所述自定义脚本程序中定义对测试功能接口的调用方法,所述测试功能接口包括数据解析接口、控制器诊断接口、参数标定接口;
运行所述自定义脚本程序对CAN总线进行测试,包括:调用数据解析接口对所述CAN总线中的CAN数据进行解析,调用控制器诊断接口对与所述CAN总线连接的控制器进行诊断,调用参数标定接口对与所述CAN总线连接的控制器的运行参数进行标定。
2.根据权利要求1所述的CAN总线的测试方法,其特征在于,所述测试功能接口还包括数据收发接口,所述运行所述自定义脚本程序对CAN总线进行测试还包括:
调用所述数据收发接口接收所述CAN总线发送的第一CAN数据,或,向所述CAN总线发送第二CAN数据。
3.根据权利要求2所述的CAN总线的测试方法,其特征在于,所述运行所述自定义脚本程序对CAN总线进行测试包括:
创建第一线程,执行对与所述CAN总线连接的控制器进行诊断的操作;或,
创建第二线程,执行对与所述CAN总线连接的控制器的运行参数进行标定操作;或,
创建第三线程,执行调用所述数据收发接口接收所述CAN总线发送的第一CAN数据;或,
创建第四线程,执行向所述CAN总线发送第二CAN数据的操作;或,
创建第五线程,执行对所述CAN总线中的CAN数据进行解析的操作。
4.根据权利要求1所述的CAN总线的测试方法,其特征在于,所述运行所述自定义脚本程序对CAN总线进行测试包括:
创建第六线程,运行所述自定义脚本程序。
5.根据权利要3或4所述的CAN总线的测试方法,其特征在于,所述线程包括多个协程,且各协程支持异步IO操作。
6.一种CAN总线的测试装置,其特征在于,所述CAN总线的测试装置包括:
编辑模块,用于提供自定义脚本程序的编辑入口;
接收模块,用于接收通过所述编辑入口提交的自定义脚本程序,所述自定义脚本程序中定义对测试功能接口的调用方法,所述测试功能接口包括数据解析接口、控制器诊断接口、参数标定接口;
测试模块,用于运行所述自定义脚本程序对CAN总线进行测试,包括:调用数据解析接口对所述CAN总线中的CAN数据进行解析,调用控制器诊断接口对与所述CAN总线连接的控制器进行诊断,调用参数标定接口对与所述CAN总线连接的控制器的运行参数进行标定。
7.根据权利要求6所述的CAN总线的测试装置,其特征在于,所述测试功能接口还包括数据收发接口,所述测试模块还用于:
调用所述数据收发接口接收所述CAN总线发送的第一CAN数据,或,向所述CAN总线发送第二CAN数据。
8.根据权利要求7所述的CAN总线的测试装置,其特征在于,所述测试模块包括:
第一创建子模块,用于创建第一线程,执行对与所述CAN总线连接的控制器进行诊断的操作;或,
第二创建子模块,用于创建第二线程,执行对与所述CAN总线连接的控制器的运行参数进行标定操作;或,
第三创建子模块,用于创建第三线程,执行调用所述数据收发接口接收所述CAN总线发送的第一CAN数据;或,
第四创建子模块,用于创建第四线程,执行向所述CAN总线发送第二CAN数据的操作;或,
第五创建子模块,用于创建第五线程,执行对所述CAN总线中的CAN数据进行解析的操作。
9.根据权利要求6所述的CAN总线的测试装置,其特征在于,所述测试模块包括:
第六创建子模块,用于创建第六线程,运行所述自定义脚本程序。
10.根据权利要8或9所述的CAN总线的测试装置,其特征在于,所述线程包括多个协程,且各协程支持异步IO操作。
CN201710288657.6A 2017-04-27 2017-04-27 Can总线的测试方法及装置 Pending CN108809741A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710288657.6A CN108809741A (zh) 2017-04-27 2017-04-27 Can总线的测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710288657.6A CN108809741A (zh) 2017-04-27 2017-04-27 Can总线的测试方法及装置

Publications (1)

Publication Number Publication Date
CN108809741A true CN108809741A (zh) 2018-11-13

Family

ID=64069383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710288657.6A Pending CN108809741A (zh) 2017-04-27 2017-04-27 Can总线的测试方法及装置

Country Status (1)

Country Link
CN (1) CN108809741A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908668A (zh) * 2019-11-21 2020-03-24 深圳市新威尔电子有限公司 用于编译电池检测系统脚本程序的编译器
CN111510355A (zh) * 2020-04-28 2020-08-07 扬州亚星客车股份有限公司 一种整车can通信的自动序列测试系统及方法
CN113904967A (zh) * 2021-09-01 2022-01-07 重庆长安新能源汽车科技有限公司 一种汽车can通信模块接口软件自动测试装置及测试方法
CN115643124A (zh) * 2022-06-23 2023-01-24 南京轶诺科技有限公司 一种pc机模拟汽车can总线通信系统
CN117834464A (zh) * 2023-11-17 2024-04-05 上海同星智能科技有限公司 测量数据过滤器的实现方法、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739026A (zh) * 2009-12-18 2010-06-16 浙江吉利汽车研究院有限公司 一种混合动力汽车的测试系统
CN102427416A (zh) * 2011-12-12 2012-04-25 东软集团股份有限公司 分布式事件检测方法及装置
CN102567111A (zh) * 2011-12-23 2012-07-11 深圳市融创天下科技股份有限公司 一种异步过程调用的方法、系统和终端设备
CN103293008A (zh) * 2013-06-27 2013-09-11 长城汽车股份有限公司 汽车诊断设备
CN106330618A (zh) * 2016-09-19 2017-01-11 中国第汽车股份有限公司 一种基于can/lin/most混合型总线网关路由自动化测试系统及测试方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739026A (zh) * 2009-12-18 2010-06-16 浙江吉利汽车研究院有限公司 一种混合动力汽车的测试系统
CN102427416A (zh) * 2011-12-12 2012-04-25 东软集团股份有限公司 分布式事件检测方法及装置
CN102567111A (zh) * 2011-12-23 2012-07-11 深圳市融创天下科技股份有限公司 一种异步过程调用的方法、系统和终端设备
CN103293008A (zh) * 2013-06-27 2013-09-11 长城汽车股份有限公司 汽车诊断设备
CN106330618A (zh) * 2016-09-19 2017-01-11 中国第汽车股份有限公司 一种基于can/lin/most混合型总线网关路由自动化测试系统及测试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郭志刚: "车载总线自动化测试系统研究", 《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908668A (zh) * 2019-11-21 2020-03-24 深圳市新威尔电子有限公司 用于编译电池检测系统脚本程序的编译器
CN111510355A (zh) * 2020-04-28 2020-08-07 扬州亚星客车股份有限公司 一种整车can通信的自动序列测试系统及方法
CN113904967A (zh) * 2021-09-01 2022-01-07 重庆长安新能源汽车科技有限公司 一种汽车can通信模块接口软件自动测试装置及测试方法
CN113904967B (zh) * 2021-09-01 2023-05-26 重庆长安新能源汽车科技有限公司 一种汽车can通信模块接口软件自动测试装置及测试方法
CN115643124A (zh) * 2022-06-23 2023-01-24 南京轶诺科技有限公司 一种pc机模拟汽车can总线通信系统
CN117834464A (zh) * 2023-11-17 2024-04-05 上海同星智能科技有限公司 测量数据过滤器的实现方法、存储介质及电子设备
CN117834464B (zh) * 2023-11-17 2024-10-18 上海同星智能科技有限公司 测量数据过滤器的实现方法、存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN108809741A (zh) Can总线的测试方法及装置
CN107193271B (zh) 用于工业信息物理系统的前置服务适配和故障诊断装置
CN107145140A (zh) 车载电子控制单元can接口自动测试系统及其测试方法
CN109684672A (zh) 一种soc芯片系统级验证系统及方法
CN108733552B (zh) 一种fpga远程调试系统及远程调试方法
CN101807068B (zh) 基于通用总线并行的汽车诊断系统及方法
CN107368408A (zh) 一种面向接口的软件故障注入自动化测试方法
CN108566323A (zh) 一种T-Box自动化测试方法及系统
CN206400286U (zh) 一种基于硬件在环设备的测试系统
CN102231079B (zh) 基于实车行驶状态动态实时回放的车辆电控系统测试方法
CN103995777A (zh) 嵌入式软件黑盒自动化测试系统及测试方法
CN105279093B (zh) 软件测试方法、装置及设备
CN112737886B (zh) 一种工装测试方法、系统、电子设备和存储介质
CN105808432A (zh) 轨道交通牵引传动控制单元软件自动化测试系统及方法
CN106341294A (zh) 便携式mvb协议分析设备及mvb数据处理方法
CN108763009A (zh) 服务器压力测试方法、系统、设备及计算机可读存储介质
CN103984665A (zh) 基于LabVIEW的串口通信装置及方法
US20230035673A1 (en) Information processing system, information processing apparatus, use method of information processing apparatus, user terminal, and program therefor
CN108959094A (zh) 一种基于数据结构的测试程序的定义和应用方法
CN115712537A (zh) 一种低成本的车辆控制器can信号模拟系统
CN105868104B (zh) 一种跨平台的图形用户界面自动测试方法
CN116319485A (zh) 一种基于混合协议的测试业务构建系统
CN116578066A (zh) 一种车辆诊断方法、装置、设备及介质
CN107290555B (zh) 一种poct特定蛋白分析仪系统
CN115686988A (zh) 一种RISC-V架构Debug协议功能验证方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181113