发明内容
为了解决现有技术存在的不足,本申请的目的在于提供一种汽车仪表系统的测试系统及测试方法,调高不同仪表系统的测试效率。
为实现上述目的,本申请提供的汽车仪表系统的测试方法,应用于测试仪表系统,所述仪表系统配置在多核处理器的第一处理器核,并运行于与所述第一处理器核相关联的第一硬件集合上,所述方法包括:
基于需要测试的仪表系统的类别,配置在多核处理器的第二处理器核的测试系统从预设的协议数据库中获取该仪表系统对应类别的协议规则,所述测试系统运行于与所述第二处理器核相关联的第二硬件集合上,所述第一硬件集合与所述第二硬件集合分属于所述多核处理器不同的硬件域;
基于选择的测试项目和其测试输入,根据协议规则生成该测试项目的协议指令到指令发送队列;
调整指令发送队列内协议指令的顺序后,通过核间通信接口按序向所述仪表系统发送协议指令;
所述仪表系统响应接收到的协议指令,在仪表盘上输出响应结果以判断测试结果。
进一步地,所述基于选择的测试项目和其测试输入,通过每一测试项目对应的项目协议标准生成该测试项目的协议指令的步骤包括:
按照协议规则初始化一个该仪表系统类别的协议指令构造器;
协议指令构造器根据测试项目和测试输入生成协议指令。
进一步地,所述车厂协议数据库直接或间接配置在测试系统所在的操作系统上,所述测试系统管理所述车厂协议数据库中各仪表系统的协议规则的增加、删除、修改和查看。
进一步地,所述调整指令发送队列内协议指令的顺序的方法包括基于指令发送队列中协议指令的数目,生成相应数目的一组随机数,进而按照随机数的顺序发送随机数对应的协议指令。
进一步地,所述测试系统被配置为控制显示设备显示人机交互界面以接收测试人员的仪表系统类别选择指令、测试项目选择指令和项目测试输入指令。
进一步地,所述核间通信接口的实现方法包括:Mailbox、共享内存、rpmsg和localsocket中的任意一种。
进一步地,所述测试系统所在的操作系统为Android系统,所述仪表系统所在的操作系统为Linux系统。
为实现上述目的,本申请还提供一种汽车仪表系统的测试系统,包括:
人机交互模块,用于测试人员选择待测试仪表系统的类别、测试项目和输入项目测试输入;
指令生成模块,与人机交互模块连接,用于基于用户的选择和测试输入生成对应的协议指令到协议指令队列;
顺序调整模块;与指令生成模块连接,用于调整协议指令队列中各协议指令的发送顺序;
指令发送模块;与顺序调整模块连接,用于通过核间通信接口按照发送顺序向仪表系统发送协议指令以供仪表系统响应,观察响应结果;
其中,所述仪表系统配置在多核处理器的第一处理器核,并运行于与所述第一处理器核相关联的第一硬件集合上;所述测试系统配置在多核处理器的第二处理器核,并运行于与所述第二处理器核相关联的第二硬件集合上,所述第一硬件集合与所述第二硬件集合分属于所述多核处理器的不同的硬件域。
为实现上述目的,本申请还提供一种系统芯片,包括,如上所述的汽车仪表系统的测试系统。
为实现上述目的,本申请提供的电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块用于被执行时实现如上所述的汽车仪表系统的测试方法。
为实现上述目的,本申请提供的计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行如上所述的汽车仪表系统的测试方法的步骤。
本申请的汽车仪表系统的测试系统和测试方法,提高了不同仪表系统的测试效率。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
下面,将参考附图详细地说明本申请的实施例。
实施例1
本申请的一个实施例,提供了一种汽车仪表系统的测试方法,用于提高测试汽车上的仪表系统的效率。
图1为本申请的汽车仪表系统的测试证方法的流程示意图,下面将参考图1对本申请的汽车仪表系统的测试方法进行详细描述:
步骤S101:基于需要测试的仪表系统的类别,配置在多核处理器的第二处理器核的测试系统从预设的协议数据库中获取该仪表系统对应类别的协议规则,所述仪表系统配置在多核处理器的第一处理器核,并运行于与所述第一处理器核相关联的第一硬件集合上,所述测试系统运行于与所述第二处理器核相关联的第二硬件集合上,所述第一硬件集合与所述第二硬件集合分属于所述多核处理器不同的硬件域;
在本实施方式中,汽车的仪表系统配置在车载多核处理器的一个处理器核上,该处理核运行Linux操作系统,仪表系统主要用于控制仪表盘上的时速表、转速表、机油压力表、水温表、燃油表以及电子指示灯等。测试系统配置在车载多核处理器的另一个处理器核上,该处理器核运行Android操作系统,该系统主要为用于车载娱乐的娱乐中控系统。在本申请的另外一些实施方式中,测试系统也可单独部署在一个处理器核上。可以理解的是,当进行出厂前测试时,可以直接通过该娱乐中控系统的操作系统向仪表系统发送测试的协议指令,而不必使用电脑和电脑上的测试软件。
需要说明的是,当出厂前测试完成后,确定仪表系统无错后,该测试系统可以从仪表中控系统删除也可以保留。
需要说明的是,在本实施方式中,仪表系统的类别指的是仪表系统的车厂类别,不同车厂的仪表系统接收的协议指令的格式不同。
示例性的,如仪表系统类型为A的仪表系统,其协议指令有head、type、cmd、value、checkcode、obligate和end等部分组成。
在本实施方式中,协议数据库直接配置在测试系统所在的操Android操作系统上,测试系统管理所述车厂协议数据库中各仪表系统的协议规则的增加、删除、修改和查看。在本申请另外的一些实施方式中,车厂协议数据库为云端数据库。
可以理解的是,协议数据库只是用来存储各种类型的仪表系统所属车厂的协议规则的一种数据库,其可以作为一个独立的数据库存在,也可以作为测试系统的一部分。
步骤S102:基于选择的测试项目和其测试输入,根据协议规则生成该测试项目的协议指令到指令发送队列;
具体的,测试项目包括引擎转速、故障灯和仪表盘速度等。
示例性的,如仪表系统为一汽红旗的仪表系统,测试项目为测试仪表盘速度,测试输入是80,则会根据上述的协议规则生成一条测试一汽红旗的仪表系统的仪表盘速度80的协议指令。
需要说明的是,本实施方式中的协议指令为控制器局域网络协议。
步骤S103:调整指令发送队列内协议指令的顺序后,通过核间通信接口按序向所述仪表系统发送协议指令;
具体的,当测试人员根据测试需求生成了多条协议指令后,可以调整这些协议指令的发送顺序,以按照测试人员的项目测试顺序去测试仪表系统。
在本申请的一些实施方式中,可以将指令发送队列中协议指令随机发送测试。具体的,基于指令发送队列中协议指令的数目,生成相应数目的一组随机数,进而按照随机数的顺序发送随机数对应的协议指令。
示例性的,现指令发送队列中有1、2、3…10等10条协议指令,随机发送时会生成一组无序的1-10的随机数,如2、8、10、1、3、5、7、6、9、4,则会按照该随机数的顺序先发送第二条协议指令,再发送第8条协议指令……最后发送第四条协议指令。
在本实施方式中,核间通信接口采用rpmsg这种虚拟网络的方式实现两系统之间的通信。在本申请另外的一些实施方式中,核间通信接口还可以采用Mailbox、共享内存和local socket等方式实现。
在本实施方式中,协议指令均使用CAN总线协议,CAN是控制器域网(ControllerArea Network,CAN)的简称,CAN总线协议已被广泛地作为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。步骤S104:仪表系统响应接收到的协议指令,在仪表盘上输出响应结果以判断测试结果。
可以理解的是,当测试系统发送的协议指令的协议格式的所属车厂与待测试的仪表系统的所属车厂一致时,仪表系统能够直接响应接收到的协议指令。
可以理解的是,当仪表盘上的响应结果若和发送的协议指令理论对应的响应结果一致,则说明仪表系统的该条测试协议指令测试正常。
在本实施方式中,基于选择的测试项目和其测试输入,通过每一测试项目对应的项目协议标准生成该测试项目的协议指令的步骤包括:
按照协议规则初始化一个该仪表系统类别的协议指令构造器;
具体的,每一种类别车厂的仪表系统对应一种协议规则,每一种协议规则对应一种协议指令构造器。
协议指令构造器根据测试项目和测试输入生成协议指令。
在本实施方式中,所述测试系统被配置为控制显示设备显示人机交互界面以接收测试人员的仪表系统类别选择指令、测试项目选择指令和项目测试输入指令。
具体的,测试人员可通过测试系统所在的Android系统以点触方式在测试系统选择待测试仪表系统的车场类别和测试项目,以打字输入的方式输入项目测试输入。
实施例2
本申请的一个实施例,提供了一种汽车仪表系统的测试系统,其中仪表系统的测试系统分别位于一个多核处理器的两个处理器核上,图2为本申请的汽车仪表系统所在多核处理器的结构示意图,如图2所示,仪表系统200配置在多核处理器10的第一处理器核20,并运行于与所述第一处理器核20相关联的第一硬件集合上;所述测试系统100配置在多核处理器10的第二处理器核30,并运行于与所述第二处理器核30相关联的第二硬件集合上,所述第一硬件集合与所述第二硬件集合分属于所述多核处理器10的不同的硬件域。
需要说明的是,第一处理器核20和第二处理器核30上搭载的操作系统的类型不影响本实施方式的实现。
在仪表系统200所在的多核处理器10的另一个核上配置测试系统100,便于出厂前测试的测试,而不需使用PC。
图3为本申请的汽车仪表系统的测试系统的结构示意图,如图3所示,包括:
人机交互模块101,用于测试人员选择待测试仪表系统的类别、测试项目和输入项目测试输入;
指令生成模块102,与人机交互模块101连接,用于基于用户的选择和测试输入生成对应的协议指令到协议指令队列;
顺序调整模块103;与指令生成模块102连接,用于调整协议指令队列中各协议指令的发送顺序;
指令发送模块104;与顺序调整模块103连接,用于通过核间通信接口按照发送顺序向仪表系统发送协议指令以供仪表系统响应,观察响应结果;在本实施方式中,核间通信接口采用rpmsg这种虚拟网络的方式实现两系统之间的通信。在本申请另外的一些实施方式中,核间通信接口还可以采用Mailbox、共享内存和local socket等方式实现。
在本实施方式中,指令生成模块102在生成协议指令时,先基于测试人员选择的仪表系统的类别,创建对应类别的协议指令构造器1021,协议指令构造器1021用于按照选择的仪表系统200的类别的协议规则根据测试项目和测试输入生成用于测试的协议指令。
可以理解的是,各种类别的仪表系统的协议规则保存在一数据库中,测试人员能够管理数据库中协议规则的增删改查。
可以理解的是,为了适应各种发送频率,指令发送模块104被配置为能够设置发送频率。需要说明的是,在本实施方式中,仪表系统的类别指的是仪表系统的车厂类别,不同车厂的仪表系统接收的协议指令的格式不同。
示例性的,如仪表系统类型为A的仪表系统,其协议指令有head、type、cmd、value、checkcode、obligate和end等部分组成。
在本实施方式中,协议指令构造器1021通过(type,value)的形式从协议数据库中找到协议字段的值以及传入用户输入的测试项目和输入项目测试输入,来生成Can协议指令。
在本实施方式中,指令发送模块104是一个服务模块,其内有一个存放Can协议指令的队列,该服务模块内有一个线程来发送队列中的协议指令到仪表系统200。
本系统的工作过程如下:根据要测试的仪表系统200的类别,测试人员通过人机交互模块101选择要测试的仪表系统的类别、测试项目和输入测试项目的输入;指令生成模块102根据测试人员选择的仪表系统200的类别、测试项目和输入测试项目的输入,生成该仪表系统200类别对应协议格式的一条用于测试该测试项目的Can测试协议指令到指令发送队列,当测试人员选择完要测试的若干项目后,可以通过顺序调整模块103调整指令发送队列中的各协议指令的发送顺序,调整好发送顺序后,指令发送模块104通过rpmsg这种虚拟网络的方式向仪表系统200发送协议指令,判断仪表系统200的实际响应结果与协议指令的预期响应结果是否一致,完成测试。
需要说明的是,在设计该测试系统时,本实施方式还设计了测试该测试系统的仪表系统,图4为本申请的仪表系统的原理框架图,如图4所示,仪表系统包括相互连接的解析模块51和服务管理模块52,其中解析模块51用于基于获取接收到的协议指令,创建与接收到的协议指令相匹配的解析器54或基础解析器53对协议指令解析,而服务管理模块52用于初始化、注册、注销和发布回调接口55,回调接口55用于被解析后的协议指令调用相应的接口函数以响应该协议指令,接口函数通过UI实现,主要用于更新UI状态显示或者播放警告音提示、如更新速度以及更新引擎信息等。服务管理模块52还用于管理进程服务模块56,进程服务模块56用于启动Can协议指令响应的过程。
实施例3
本实施例中,还提供一种系统芯片,包括,上述实施例的汽车仪表系统的测试系统。
实施例4
本实施例中,还提供一种电子设备,图5为本申请提供的一种电子设备的示意框图。如图5所示,电子设备130包括处理器131和存储器132。存储器132用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器131中的处理器核用于运行非暂时性计算机可读指令,处理器131运行时可以执行上文所述的汽车仪表系统的测试方法的一个或多个步骤。存储器132和处理器131可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器13可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。其处理器核可以为通用处理器核或专用处理器核,可以控制电子设备130中的其它组件以执行期望的功能。
例如,存储器132可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器131可以运行一个或多个计算机程序模块,以实现电子设备130的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本申请的实施例中,电子设备130的具体功能和技术效果可以参考上文中关于汽车仪表系统的测试系统的描述,此处不再赘述。
实施例5
本实施例中,还提供一种计算机可读存储介质,图6为本申请的一种存储介质的示意图。如图6所示,存储介质150用于存储非暂时性计算机可读指令151。例如,当非暂时性计算机可读指令151由计算机执行时可以执行根据上文所述的汽车仪表系统的测试方法中的一个或多个步骤。
例如,该存储介质150可以应用于上述电子设备130中。例如,存储介质150可以为图5所示的电子设备130中的存储器132。例如,关于存储介质150的相关说明可以参考图5所示的电子设备130中的存储器132的相应描述,此处不再赘述。
需要说明的是,本申请上述的存储介质(计算机可读介质)可以是计算机可读信号介质或者非暂时性计算机可读存储介质或者是上述两者的任意组合。非暂时性计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。非暂时性计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本申请中,非暂时性计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是非暂时性计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(片上系统)、复杂可编程逻辑设备(CPLD)等。
以上描述仅为本申请的部分实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。