一种用于硬件在环测试的总线报文校验方法、装置及系统与流程

文档序号:17440137发布日期:2019-04-17 04:39阅读:193来源:国知局
一种用于硬件在环测试的总线报文校验方法、装置及系统与流程

本发明涉及硬件在环仿真测试技术领域,具体涉及一种用于硬件在环测试的总线报文校验方法、装置及系统。



背景技术:

目前对于车用电子控制器(ecu,electroniccontrolunit)的硬件在环仿真测试,通常要进行can(controllerareanetwork,控制器局域网络)总线信号的模拟仿真,包括控制器接收can总线信号的模拟,以及对控制器发送的can总线信号的接收。不同平台的硬件在环(hil,hardware-in-the-loop)测试系统通常是通过对dbc(数据库can)文件的解析,自动完成can总线信号的模拟仿真。

现有hil测试系统的缺点在于,在仿真测试过程中只对接收到的总线报文进行测试,如果控制器未按dbc的协议进行can总线报文的发送,例如多发或少发了can节点报文、某个can总线报文的位数错误或某个can总线报文的发送周期错误等,在仿真测试过程中无法识别,从而无法根据识别结果修正报文发送的错误,影响了总线通信的可靠性,无法保证总线通信的质量。



技术实现要素:

有鉴于此,本发明实施例提出了一种用于硬件在环测试的总线报文校验方法、装置及系统,用以解决现有hil系统在仿真过程中无法识别控制器是否按dbc的协议发送总线报文,从而无法根据识别结果修正报文发送的错误,影响了总线通信的可靠性,无法保证总线通信的质量的问题。

为实现上述目的,本发明采用如下技术方案:

根据第一方面,本发明实施例提供了一种用于硬件在环测试的总线报文校验方法,所述总线报文校验方法包括:提取各所述总线报文的第一报文信息;对预存的dbc协议进行解析,得到所述dbc协议中各can节点对应报文的第二报文信息;根据所述dbc协议中各can节点报文的第二报文信息对各所述总线报文的第一报文信息进行校验,生成总线报文校验信息。

结合第一方面,在第一方面第一实施方式中,提取各所述总线报文的第一报文信息之前,还包括:获取所述总线报文,并对所述总线报文配置时间戳;根据各所述总线报文的时间戳生成各所述总线报文对应的各can节点发送报文的第一发送周期信息;将各所述总线报文及各所述总线报文对应的所述第一发送周期信息进行存储。

结合第一方面第一实施方式,在第一方面第二实施方式中,提取各所述总线报文的第一报文信息,包括:提取各所述总线报文的第一id信息、第一报文内容信息和各所述总线报文对应的can节点发送报文的第一发送周期信息。

结合第一方面第二实施方式,在第一方面第三实施方式中,对预存的dbc协议进行解析,得到所述dbc协议中各can节点的第二报文信息,包括:对所述预存的dbc协议进行解析,得到所述dbc协议中定义的各can节点报文的第二id信息、第二报文内容信息和第二发送周期信息。

结合第一方面第三实施方式,在第一方面第四实施方式中,根据所述dbc协议中各can节点的第二报文信息对各所述总线报文的第一报文信息进行校验,生成总线报文校验信息,包括:将各所述第一id信息与各所述第二id信息进行对比,生成第一报文校验信息,所述第一报文校验信息用于表征所述第一id信息对应的总线报文是否为所述dbc协议中定义的报文;将各所述第一发送周期信息与各所述第二发送周期信息进行对比,生成第二报文校验信息,所述第二报文校验信息用于表征各所述总线报文对应的can节点发送报文的周期是否为所述dbc协议中定义的发送周期;将各所述第一报文内容信息与各所述第二报文内容信息进行对比,生成第三报文校验信息,所述第三报文校验信息用于表征所述第一报文内容信息的位数是否为所述dbc协议中定义的报文位数。

根据第二方面,本发明实施例提供了一种用于硬件在环测试的总线报文校验装置,所述总线报文校验装置包括:信息提取模块,用于提取各所述总线报文的第一报文信息;dbc协议解析模块,用于对预存的dbc协议进行解析,得到所述dbc协议中各can节点对应报文的第二报文信息;校验信息生成模块,用于根据所述dbc协议中各can节点报文的第二报文信息对各所述总线报文的第一报文信息进行校验,生成总线报文校验信息。

根据第三方面,本发明实施例提供了一种用于硬件在环测试的总线报文校验系统,所述总线报文校验系统包括:转接器,所述转接器的一端与can总线相连;以及存储器和处理器,与所述转接器的另一端互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明第一方面或第一方面任一实施方式所述的总线报文校验方法。

根据第四方面,本发明实施例提供了一种硬件在环测试系统,所述硬件在环测试系统包括:本发明第三方面所述的总线报文校验系统。

根据第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行本发明第一方面或第一方面任一实施方式所述的总线报文校验方法。

本发明技术方案,与现有技术相比,至少具有如下优点:

本发明实施例提供了一种用于硬件在环测试的总线报文校验方法、装置及系统,该总线报文校验方法通过提取各总线报文的第一报文信息,以及对预存的dbc协议进行解析,得到dbc协议中各can节点对应报文的第二报文信息,根据dbc协议中各can节点报文的第二报文信息对各总线报文的第一报文信息进行校验,生成总线报文校验信息,实现了在硬件在环测试仿真过程中识别控制器是否按dbc的协议发送总线报文,为后续根据识别结果修正报文发送的错误奠定了基础,提高了总线通信的可靠性,保证了总线通信的质量。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中用于硬件在环测试的总线报文校验方法的一个具体示例的流程图;

图2为本发明实施例中用于硬件在环测试的总线报文校验方法的另一个具体示例的流程图;

图3为本发明实施例中用于硬件在环测试的总线报文校验装置的一个具体示例的原理框图;

图4为本发明实施例中用于硬件在环测试的总线报文校验系统的一个具体示例的示意图

图5为本发明实施例中硬件在环测试系统在具体应用中的一个具体示例的示意图;

图6为本发明实施例中硬件在环测试的一个具体示例的流程图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

本发明实施例提供了一种用于硬件在环测试的总线报文校验方法,如图1所示,该总线报文校验方法包括:

步骤s1:提取各总线报文的第一报文信息;

步骤s2:对预存的dbc协议进行解析,得到dbc协议中各can节点对应报文的第二报文信息;

步骤s3:根据dbc协议中各can节点报文的第二报文信息对各总线报文的第一报文信息进行校验,生成总线报文校验信息。

通过上述步骤s1至步骤s3,本发明实施例提供的用于硬件在环测试的总线报文校验方法,通过提取各总线报文的第一报文信息,以及对预存的dbc协议进行解析,得到dbc协议中各can节点对应报文的第二报文信息,根据dbc协议中各can节点报文的第二报文信息对各总线报文的第一报文信息进行校验,生成总线报文校验信息,实现了在硬件在环测试仿真过程中识别控制器是否按dbc的协议发送总线报文,为后续根据识别结果修正报文发送的错误奠定了基础,提高了总线通信的可靠性,保证了总线通信的质量。

在本发明的一个具体实施例中,如图2所示,在通过上述步骤s1提取各总线报文的第一报文信息之前,还包括:

步骤s4:获取总线报文,并对总线报文配置时间戳;

步骤s5:根据各总线报文的时间戳生成各总线报文对应的各can节点发送报文的第一发送周期信息;

步骤s6:将各总线报文及各总线报文对应的第一发送周期信息进行存储。

通过上述步骤s4至步骤s6,本发明实施例提供的总线报文校验方法,对接收到的总线报文配置时间戳,根据各总线报文的时间戳生成各can节点发送报文的发送周期并存储,为后续校验总线报文的发送周期奠定了基础。

在本发明的一个具体实施例中,如图2所示,通过上述步骤s1提取各总线报文的第一报文信息,包括:

步骤s11:提取各总线报文的第一id信息、第一报文内容信息和各总线报文对应的can节点发送报文的第一发送周期信息。

在本发明的一个具体实施例中,如图2所示,通过上述步骤s2对预存的dbc协议进行解析,得到dbc协议中各can节点的第二报文信息,包括:

步骤s21:对预存的dbc协议进行解析,得到dbc协议中定义的各can节点报文的第二id信息、第二报文内容信息和第二发送周期信息。其中,对预存的dbc协议进行解析可以是基于matlabvehiclenetworktoolbox工具箱实现。

在本发明的一个具体实施例中,如图2所示,通过上述步骤s3根据dbc协议中各can节点的第二报文信息对各总线报文的第一报文信息进行校验,生成总线报文校验信息,具体包括:

步骤s31:将各第一id信息与各第二id信息进行对比,生成第一报文校验信息,第一报文校验信息用于表征第一id信息对应的总线报文是否为dbc协议中定义的报文;

步骤s32:将各第一发送周期信息与各第二发送周期信息进行对比,生成第二报文校验信息,第二报文校验信息用于表征各总线报文对应的can节点发送报文的周期是否为dbc协议中定义的发送周期;

步骤s33:将各第一报文内容信息与各第二报文内容信息进行对比,生成第三报文校验信息,第三报文校验信息用于表征第一报文内容信息的位数是否为所述dbc协议中定义的报文位数,进行对比的第一报文内容信息对应的报文和第二报文内容信息对应的报文具有相同的id信息。

通过上述步骤s11、步骤s21以及步骤s31至步骤s33,本发明实施例提供的用于硬件在环测试的总线报文校验方法,将测试过程中各can节点发送报文的id信息、发送周期信息和报文内容信息分别与dbc协议中定义的各can节点报文的id信息、发送周期信息和报文内容信息进行对比,从而能够识别出测试过程中车用控制器是否按dbc协议发送报文,包括是否多发或少发了can节点报文、是否存在某个can总线报文的位数错误或是否存在某个can总线报文的发送周期错误,为后续根据识别结果修正报文发送的错误奠定了基础,提高了总线通信的可靠性,保证了总线通信的质量。

本发明实施例提供了一种用于硬件在环测试的总线报文校验装置,如图3所示,该总线报文校验装置包括:信息提取模块1,用于提取各总线报文的第一报文信息,详细内容可参见上述方法实施例的步骤s1的相关描述;dbc协议解析模块2,用于对预存的dbc协议进行解析,得到dbc协议中各can节点对应报文的第二报文信息,详细内容可参见上述方法实施例的步骤s2的相关描述;校验信息生成模块3,用于根据dbc协议中各can节点报文的第二报文信息对各总线报文的第一报文信息进行校验,生成总线报文校验信息,详细内容可参见上述方法实施例的步骤s3的相关描述。

通过上述信息提取模块1、dbc协议解析模块2和校验信息生成模块3,本发明实施例提供的用于硬件在环测试的总线报文校验装置,通过提取各总线报文的第一报文信息,以及对预存的dbc协议进行解析,得到dbc协议中各can节点对应报文的第二报文信息,根据dbc协议中各can节点报文的第二报文信息对各总线报文的第一报文信息进行校验,生成总线报文校验信息,实现了在硬件在环测试仿真过程中识别控制器是否按dbc的协议发送总线报文,为后续根据识别结果修正报文发送的错误奠定了基础,提高了总线通信的可靠性,保证了总线通信的质量。

本发明实施例提供了一种用于硬件在环测试的总线报文校验系统,如图4所示,该总线报文校验系统包括:转接器4,转接器4的一端与can总线相连;以及处理器5和存储器6,与转接器4的另一端互相通信连接,所述存储器6中存储有计算机指令,所述处理器5通过执行所述计算机指令,从而执行本发明上述实施例所述的总线报文校验方法。

在本发明的具体实施例中,上述转接器4为peakcan设备,peakcan设备的can端并联在车用控制器总线端,peakcan设备的usb端连接到测试上位机,与上位机中的处理器和存储器通信连接。peakcan设备通过can总线与车辆的can节点进行通讯,通过usb与测试上位机进行通讯,将各can节点上发送的报文传输到测试上位机中,以使测试上位机中的处理器执行本发明上述实施例所述的总线报文校验方法。

本发明实施例提供的用于硬件在环测试的总线报文校验系统,其中的处理器5和存储器6可以通过总线或者其他方式连接,图4中以通过总线连接为例。

处理器5可以为中央处理器(centralprocessingunit,cpu)。处理器5还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。

存储器6作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的用于硬件在环测试的总线报文校验装置对应的程序指令/模块(例如,图3所示的信息提取模块1、dbc协议解析模块2和校验信息生成模块3)。处理器5通过运行存储在存储器6中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的用于硬件在环测试的总线报文校验方法。

存储器6可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器5所创建的数据等。此外,存储器6可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器6可选包括相对于处理器5远程设置的存储器,这些远程存储器可以通过网络连接至处理器5。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个模块存储在所述存储器6中,当被所述处理器5执行时,执行如图1和图2所示实施例中的用于硬件在环测试的总线报文校验方法。

上述用于硬件在环测试的总线报文校验系统的具体细节可以对应参阅图1和图2所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。

本发明实施例还提供了一种硬件在环测试系统,该硬件在环测试系统包括本发明上述实施例提供的总线报文校验系统,通过该总线报文校验系统,硬件在环测试系统能够实现上述实施例所述的总线报文校验方法,实现了在硬件在环测试仿真过程中识别控制器是否按dbc的协议发送总线报文,为后续根据识别结果修正报文发送的错误奠定了基础,提高了总线通信的可靠性,保证了总线通信的质量。

图5为本发明实施例中提供的硬件在环测试系统在具体应用中的示意图。具体测试过程可参考图6,主函数包括三个子函数,分别实现测试用例执行、can总线报文信息读取及保存、can报文信息与dbc校验三个功能。测试开始后,三个子函数同时并行运行,相互独立又存在关联,联合实现总线信息校验。将总线信息校验的步骤放入功能测试中同时进行,不另外占用台架资源和测试时间。

在测试用例开始自动化执行时,实时读取peakcan设备传输的can总线上的所有can报文,对各can报文配置时间戳后保存到txt文件中,该txt文件的名字与测试用例文件的名字对应,为了防止结果文件过大影响随后的读取速度,并自动将txt文件按预设大小进行切割。

校验步骤由基于matlab开发的脚本实现,在脚本启动之后会自动持续循环检测,当检测到指定路径下新生成了can总线报文记录文件,则开始进行校验流程。

在全部用例执行完毕后,自动将全部数据文件压缩打包,生成测试报告,并删除原数据文件,以节省空间。该测试报告为excel格式,sheet1为测试用例的整体信息,显示的信息包括用例文件名,报文总数,正常报文数目,异常报文书目,用例校验结果;sheet2为用例的具体错误信息,显示的信息包括用例文件名,出错的报文id,出错的报文内容等。

本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

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