CN115933591A - 一种控制器诊断方法、装置、设备和存储介质 - Google Patents
一种控制器诊断方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN115933591A CN115933591A CN202211524974.0A CN202211524974A CN115933591A CN 115933591 A CN115933591 A CN 115933591A CN 202211524974 A CN202211524974 A CN 202211524974A CN 115933591 A CN115933591 A CN 115933591A
- Authority
- CN
- China
- Prior art keywords
- controller
- current
- diagnosis
- target
- response message
- 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.)
- Granted
Links
- 238000003745 diagnosis Methods 0.000 title claims abstract description 134
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000004044 response Effects 0.000 claims abstract description 126
- 230000006870 function Effects 0.000 claims description 24
- 238000002405 diagnostic procedure Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 18
- 238000011161 development Methods 0.000 abstract description 11
- 238000012423 maintenance Methods 0.000 abstract description 7
- 238000012545 processing Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Testing And Monitoring For Control Systems (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种控制器诊断方法、装置、设备和存储介质。该方法包括:在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器;若当前控制器是目标控制器,则在诊断协议栈中对诊断请求报文进行响应并返回响应报文;若当前控制器不是目标控制器,则将诊断请求报文中的当前请求报文标识信息和当前硬件通道号分别替换为目标请求报文标识信息和预留硬件通道号;在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标响应报文标识信息替换为当前响应报文标识信息并返回替换后的响应报文,从而主控制器和从控制器共用相同的诊断流程,降低了开发成本和维护难度。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种控制器诊断方法、装置、设备和存储介质。
背景技术
随着汽车行业发展,对于车辆安全性越来越重视,尤其在某些重要场景下,发动机控制器、智能驾驶控制器等重要部件绝对不允许发生故障。基于此,研发了车载双控制器,即同一控制器布置为主从两个控制器,车辆正常运行时主控制器工作,当主控制器发生故障无法正常工作时,从控制器接替工作,从而提高了汽车行驶的安全性和稳定性。
然而,主控制器和从控制器的报文收发不一致,主控制器和从控制器各自拥有不同的诊断报文,从而需要开发不同版本的诊断软件分别针对主控制器和从控制器进行诊断,提高了开发成本和维护难度。
发明内容
本发明提供了一种控制器诊断方法、装置、设备和存储介质,以使主控制器和从控制器共用相同的诊断流程,从而仅需开发一版诊断软件,降低了开发成本和维护难度。
根据本发明的一方面,提供了一种控制器诊断方法,应用于当前控制器,所述当前控制器为具有相同控制功能的主控制器或者从控制器,所述方法包括:
在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,所述目标控制器为主控制器或者从控制器;
若当前控制器是所述目标控制器,则直接在诊断协议栈中对接收到的诊断请求报文进行响应,并返回获得的响应报文;
若当前控制器不是所述目标控制器,则将接收到的诊断请求报文中的当前请求报文标识信息和分配的当前硬件通道号分别替换为所述目标控制器对应的目标请求报文标识信息和预留硬件通道号;
在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标控制器对应的目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并返回替换后的响应报文。
根据本发明的另一方面,提供了一种控制器诊断装置,集成于当前控制器,所述当前控制器为具有相同控制功能的主控制器或者从控制器,所述装置包括:
控制器检测模块,用于在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,所述目标控制器为主控制器或者从控制器;
第一响应模块,用于若当前控制器是所述目标控制器,则直接在诊断协议栈中对接收到的诊断请求报文进行响应,并返回获得的响应报文;
请求报文标识替换模块,用于若当前控制器不是所述目标控制器,则将接收到的诊断请求报文中的当前请求报文标识信息和分配的当前硬件通道号分别替换为所述目标控制器对应的目标请求报文标识信息和预留硬件通道号;
第二响应模块,用于在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标控制器对应的目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并返回替换后的响应报文。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的控制器诊断方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的控制器诊断方法。
本发明实施例的技术方案,当前控制器为具有相同控制功能的主控制器或者从控制器,在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,目标控制器为主控制器或者从控制器;若当前控制器是目标控制器,则直接在诊断协议栈中对接收到的诊断请求报文进行响应,并返回获得的响应报文;若当前控制器不是目标控制器,则将接收到的诊断请求报文中的当前请求报文标识信息和分配的当前硬件通道号分别替换为目标控制器对应的目标请求报文标识信息和预留硬件通道号;在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标控制器对应的目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并返回替换后的响应报文,从而实现主控制器和从控制器可以共用相同的诊断流程,从而仅需开发一版诊断软件,降低了开发成本和维护难度。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种控制器诊断方法的流程图;
图2是根据本发明实施例二提供的一种控制器诊断方法的流程图;
图3是根据本发明实施例三提供的一种控制器诊断装置的结构示意图;
图4是实现本发明实施例的控制器诊断方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本公开申请人在实施本公开的过程中发现,现有的主从两个控制器除了报文收发不一致外,其他硬件、操作系统、中断等配置完全一致,从而在控制器开发过程中存在软件重复开发和重复测试问题,成本高,且汽车装配过程中由于控制器外观一致容易装配错误,产生不必要的问题。针对于此,本公开实施例通过共用相同的诊断流程,使得主从两个控制器可以使用同一套诊断协议栈软件,从而减少软件维护的工作量,大大降低了两个软件版本带来的成本和风险。本公开实施例通过使用同一版本的诊断软件,主从两个控制器可以具有相同的软件和硬件,从而主从两个控制器为完全相同的两个控制器,进而也避免装配错误的情况,保证了汽车行驶的安全性和稳定性。
实施例一
图1为本发明实施例一提供了一种控制器诊断方法的流程图,本实施例可适用于对车辆中的主控制器或者从控制器进行诊断的情况。该方法可以由控制器诊断装置来执行,该装置可以采用硬件和/或软件的形式实现,该控制器诊断装置可集成于当前控制器,当前控制器为具有相同控制功能的主控制器或者从控制器。如图1所示,该方法包括:
S110、在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,目标控制器为主控制器或者从控制器。
其中,当前控制器可以是指当前执行诊断流程的控制器。主控制器和从控制器均可以作为当前控制器执行步骤S110-S140的诊断流程,从而主控制器和从控制器可以共用相同的诊断协议栈软件。目标控制器可以是指开发诊断协议栈软件时,开发人员配置的在诊断协议栈中可直接响应的诊断请求报文对应的控制器,从而开发人员可以针对性地对目标控制器开发出相应的诊断请求报文响应逻辑。目标控制器可以是主控制器或者从控制器,其可以基于实际需求进行选择。硬件输入输出接口可以是指控制器中用于表征主控制器还是从控制器的硬件接口。
需要说明的是,主控制器和从控制器位于不同的控制器局域网络CAN(ControllerArea Network),主控制器和从控制器均是一个独立的节点,每个节点只能使用一组诊断报文标识信息,从而主控制器和从控制器各自使用不同的诊断报文标识信息,从而需要实现诊断协议栈软件可以处理两组不同的诊断报文。AutoSar的诊断协议栈模块是网络独立的,所有网络规范的功能都是在诊断协议栈之外处理的。PduR模块为诊断协议栈模块提供了网络独立的接口,从而可以利用同一节点使用多对诊断报文标识信息。
具体地,可以将开发的诊断协议栈软件安装到主控制器和从控制器,使得主控制器和从控制器均可以执行步骤S110-S140的诊断流程。当前控制器每次上电进行初始化时,可以在当前控制器的初始化函数中,通过调用硬件输入输出IO接口,确定该接口有没有连接电源,从而确定出当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,以便确定出与当前控制器相匹配的报文响应方式。
S120、若当前控制器是目标控制器,则直接在诊断协议栈中对接收到的诊断请求报文进行响应,并返回获得的响应报文。
其中,诊断请求报文可以是指诊断设备(比如诊断仪)发送的,用于获取控制器中存储的故障诊断信息的请求报文。诊断请求报文为物理寻址请求报文。物理寻址请求报文是针对性的一对一发送的,不同CAN网络上的物理寻址请求报文标识信息不同。诊断请求报文的类型为FULLCAN类型。FULLCAN类型的报文可以利用预先预留的硬件通道号进行响应,而不是随机分配的硬件通道号,从而可以响应不同的诊断请求报文标识信息。
具体地,若当前控制器为目标控制器,则在当前控制器接收到诊断请求报文时,可以不做特殊处理,直接在诊断协议栈中对接收到的诊断请求报文进行响应,基于当前存储的故障诊断信息生成响应报文,并将获得的响应报文直接进行返回,使得诊断设备可以成功接收到返回的响应报文。
例如,当前控制器在接收到请求报文时,可以检测该请求报文是否为物理寻址请求报文,若是,则检测该物理寻址请求报文的类型是否为FULLCAN类型,若是,则将该请求报文作为诊断请求报文进行响应处理,从而保证诊断响应处理的准确性。
例如,在诊断设备发送诊断请求报文之前,诊断设备与当前控制器所处于的当前控制器局域网络连接,诊断人员可以在诊断设备中输入当前控制器对应的诊断请求报文标识信息,诊断设备基于该诊断请求报文标识信息生成诊断请求报文,并通过当前控制器局域网络向当前控制器发送诊断请求报文,从而使得当前控制器可以接收到诊断请求报文。
S130、若当前控制器不是目标控制器,则将接收到的诊断请求报文中的当前请求报文标识信息和分配的当前硬件通道号分别替换为目标控制器对应的目标请求报文标识信息和预留硬件通道号。
其中,当前请求报文标识信息是指当前接收到的诊断请求报文对应的标识信息。当前硬件通道号可以是指接收诊断请求报文后随机分配的硬件通道号。目标请求报文标识信息是指诊断协议栈中可直接响应处理的请求报文标识信息。预留硬件通道号可以是预先留有的专门处理目标请求报文标识信息的硬件通道对应的通道号。预留硬件通道号对应的硬件通道中存储有当前控制器的报文响应数据。
具体地,诊断请求报文的发送和接收过程可参照上面描述,此处不再赘述。若当前控制器不是目标控制器,则当前控制器在接收到诊断请求报文后,由于诊断请求报文中的当前请求报文标识信息不是目标请求报文标识信息,从而无法直接响应,此时可以将存储有当前请求报文标识信息的寄存器地址和存储有当前硬件通道号的寄存器地址作为输入参数,调用CanIf层的CanIf_RxIndication()函数中外接的信息替换函数接口,将寄存器地址中所存储的当前请求报文标识信息和当前硬件通道号分别替换为目标控制器对应的目标请求报文标识信息和预留硬件通道号,从而将当前控制器的诊断请求报文转换为目标控制器的诊断请求报文,使得诊断协议栈可以正常响应处理。通过在CanIf层外接的替换函数接口中可以修改控制器接收到报文的信息,从而提高了软件开发的自由度。
S140、在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标控制器对应的目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并返回替换后的响应报文。
具体地,在诊断协议栈中可以正常响应处理替换后的诊断请求报文,基于当前控制器存储的故障诊断信息生成响应报文,此时生成的响应报文中的响应报文标识信息为目标控制器对应的目标响应报文标识信息,从而需要将目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并将替换后的响应报文进行返回,使得诊断设备可以成功接收到返回的响应报文。例如,在目标控制器为主控制器,当前控制器为从控制器时,通过对请求报文标识信息、硬件通道号和响应报文标识信息进行替换,使得在主控制器的诊断协议栈中也可以正常响应从控制器的诊断请求报文,从而主控制器和从控制器可以共用同一版软件,降低了软件维护难度和开发成本,提高了软件测试效率。
本发明实施例的技术方案,当前控制器为具有相同控制功能的主控制器或者从控制器,在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,目标控制器为主控制器或者从控制器;若当前控制器是目标控制器,则直接在诊断协议栈中对接收到的诊断请求报文进行响应,并返回获得的响应报文;若当前控制器不是目标控制器,则将接收到的诊断请求报文中的当前请求报文标识信息和分配的当前硬件通道号分别替换为目标控制器对应的目标请求报文标识信息和预留硬件通道号;在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标控制器对应的目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并返回替换后的响应报文,从而实现主控制器和从控制器可以共用相同的诊断流程,从而仅需开发一版诊断软件,降低了开发成本和维护难度。
在上述技术方案的基础上,在S110之前还包括:基于诊断文件进行诊断配置,并将响应报文标识信息的类型设置为动态更改类型,生成目标诊断软件代码;将目标诊断软件代码部署到主控制器和从控制器上,以使主控制器和从控制器共用目标诊断软件代码。
其中,诊断文件可以是指CDD格式的诊断数据库,用于描述控制器的诊断功能需求。具体地,可以将诊断文件进导入至配置工具中进行诊断配置,并将物理寻址的响应报文标识信息的类型设置为动态更改类型,生成目标诊断软件代码,从而在目标诊断软件代码中可以允许修改响应报文标识信息,进而实现诊断协议栈的主从共用功能。将目标诊断软件代码均部署到主控制器和从控制器上,使得主控制器和从控制器使用相同的目标诊断软件代码进行诊断,从而仅需开发一版诊断软件,降低了开发成本和维护难度。
实施例二
图2为本发明实施例二提供的一种控制器诊断方法的流程图,本实施例在上述实施例的基础上,对响应报文标识信息替换操作的顺序进行了优化。其中与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图2,本实施例提供的控制器诊断方法具体包括以下步骤:
S210、在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,目标控制器为主控制器或者从控制器。
S220、若当前控制器是目标控制器,则不执行额外处理操作。
具体地,若当前控制器是目标控制器,则在当前控制器初始化过程中无需执行额外处理操作。
S230、若当前控制器不是目标控制器,则将响应报文标识信息替换为当前控制器对应的当前响应报文标识信息。
具体地,若当前控制器不是目标控制器,则表明诊断协议帧获得的响应报文中的标识信息不是当前响应报文标识信息,从而可以在当前控制器初始化过程中提前将诊断协议帧中的响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,无需等到接收报文后再进行替换,从而可以更加快速地进行报文响应。
S240、接收诊断设备发送的诊断请求报文。
S250、若当前控制器是目标控制器,则直接在诊断协议栈中对接收到的诊断请求报文进行响应,并返回获得的响应报文。
S260、若当前控制器不是目标控制器,则将接收到的诊断请求报文中的当前请求报文标识信息和分配的当前硬件通道号分别替换为目标控制器对应的目标请求报文标识信息和预留硬件通道号。
S270、在诊断协议栈中对替换后的诊断请求报文进行响应,获得包含当前响应报文标识信息的响应报文,并返回获得的响应报文。
具体地,在当前控制器不是目标控制器时,则将存储有当前请求报文标识信息的寄存器地址和存储有当前硬件通道号的寄存器地址作为输入参数,调用CanIf层的CanIf_RxIndication()函数中外接的信息替换函数接口,将寄存器地址中所存储的当前请求报文标识信息和当前硬件通道号分别替换为目标控制器对应的目标请求报文标识信息和预留硬件通道号,从而将当前控制器的诊断请求报文转换为目标控制器的诊断请求报文,在诊断协议栈中对替换后的诊断请求报文进行正常响应处理。由于已经预先将在诊断协议栈中的响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,使得生成的响应报文中的响应报文标记信息就是当前响应报文标识信息,从而可以直接将生成的响应报文进行返回,使得诊断设备可以成功接收到返回的响应报文,进一步提高了报文响应速度。
本实施例的技术方案,通过若当前控制器不是目标控制器,则在在当前控制器初始化过程中提前将诊断协议帧中的响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,无需等到接收报文后再进行替换。在接收到诊断请求报文后,诊断协议栈中生成的响应报文中的响应报文标记信息就是当前响应报文标识信息,从而可以直接将生成的响应报文进行返回,使得诊断设备可以成功接收到返回的响应报文,进一步提高了报文响应速度。
在上述技术方案的基础上,在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,可以包括:在当前控制器的初始化函数中,通过调用硬件输入输出接口,获得硬件电平,并基于硬件电平确定当前控制器是主控制器还是从控制器。
具体地,可以通过调用硬件输入输出接口,确定该接口返回的硬件电平,并基于该硬件电平是低电平还是高电平确定出该接口有没有连接电源,从而判断出当前控制器是主控制器还是从控制器。
示例性地,基于硬件电平确定当前控制器是主控制器还是从控制器,包括:若硬件电平为高电平,则确定当前控制器是主控制器;若硬件电平为低电平,则确定当前控制器是从控制器。具体地,若返回的硬件电平为高电平,则表明硬件输入输出接口连接有电源,当前控制器是作为主控制器使用。若返回的硬件电平为低电平,则表明硬件输入输出接口没有连接有电源,当前控制器是作为从控制器使用,从而利用硬件输入输出接口返回的硬件电平更加准确地确定出当前控制器是主控制器还是从控制器。
以下是本发明实施例提供的控制器诊断装置的实施例,该装置与上述各实施例的控制器诊断方法属于同一个发明构思,在控制器诊断装置的实施例中未详尽描述的细节内容,可以参考上述控制器诊断方法的实施例。
实施例三
图3为本发明实施例三提供的一种控制器诊断装置的结构示意图。如图3所示,该装置集成于当前控制器,当前控制器为具有相同控制功能的主控制器或者从控制器。该装置具体包括:控制器检测模块310、第一响应模块320、请求报文标识替换模块330和第二响应模块340。
其中,控制器检测模块310,用于在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,所述目标控制器为主控制器或者从控制器;第一响应模块320,用于若当前控制器是所述目标控制器,则直接在诊断协议栈中对接收到的诊断请求报文进行响应,并返回获得的响应报文;请求报文标识替换模块330,用于若当前控制器不是所述目标控制器,则将接收到的诊断请求报文中的当前请求报文标识信息和分配的当前硬件通道号分别替换为所述目标控制器对应的目标请求报文标识信息和预留硬件通道号;第二响应模块340,用于在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标控制器对应的目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并返回替换后的响应报文。
本发明实施例的技术方案,当前控制器为具有相同控制功能的主控制器或者从控制器,在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,目标控制器为主控制器或者从控制器;若当前控制器是目标控制器,则直接在诊断协议栈中对接收到的诊断请求报文进行响应,并返回获得的响应报文;若当前控制器不是目标控制器,则将接收到的诊断请求报文中的当前请求报文标识信息和分配的当前硬件通道号分别替换为目标控制器对应的目标请求报文标识信息和预留硬件通道号;在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标控制器对应的目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并返回替换后的响应报文,从而实现主控制器和从控制器可以共用相同的诊断流程,从而仅需开发一版诊断软件,降低了开发成本和维护难度。
可选的,所述诊断请求报文为物理寻址请求报文,所述诊断请求报文的类型为FULLCAN类型。
可选的,控制器检测模块310,包括:
当前控制器确定单元,用于在当前控制器的初始化函数中,通过调用硬件输入输出接口,获得硬件电平,并基于所述硬件电平确定当前控制器是主控制器还是从控制器。
可选的,当前控制器确定单元,具体用于:
若所述硬件电平为高电平,则确定当前控制器是主控制器;若所述硬件电平为低电平,则确定当前控制器是从控制器。
可选的,该装置还包括:
响应报文标识信息替换模块,用于在当前控制器初始化时,若当前控制器不是所述目标控制器,则将响应报文标识信息替换为当前控制器对应的当前响应报文标识信息;
第二响应模块340,具体用于:在诊断协议栈中对替换后的诊断请求报文进行响应,获得包含当前响应报文标识信息的响应报文,并返回获得的响应报文。
可选的,该装置还包括:
软件代码处理模块,用于在当前控制器初始化之前,基于诊断文件进行诊断配置,并将响应报文标识信息的类型设置为动态更改类型,生成目标诊断软件代码;将所述目标诊断软件代码部署到主控制器和从控制器上,以使主控制器和从控制器共用所述目标诊断软件代码。
可选的,所述诊断请求报文是诊断设备发送的请求报文,所述诊断设备与当前控制器所处于的当前控制器局域网络连接,以使所述诊断设备通过所述当前控制器局域网络向当前控制器发送所述诊断请求报文。
本发明实施例所提供的控制器诊断装置可执行本发明任意实施例所提供的控制器诊断方法,具备执行控制器诊断方法相应的功能模块和有益效果。
值得注意的是,上述控制器诊断装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个控制器诊断方法和处理。
在一些实施例中,控制器诊断方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM13并由处理器11执行时,可以执行上文描述的控制器诊断方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行控制器诊断方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的控制器诊断方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种控制器诊断方法,其特征在于,应用于当前控制器,所述当前控制器为具有相同控制功能的主控制器或者从控制器,所述方法包括:
在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,所述目标控制器为主控制器或者从控制器;
若当前控制器是所述目标控制器,则直接在诊断协议栈中对接收到的诊断请求报文进行响应,并返回获得的响应报文;
若当前控制器不是所述目标控制器,则将接收到的诊断请求报文中的当前请求报文标识信息和分配的当前硬件通道号分别替换为所述目标控制器对应的目标请求报文标识信息和预留硬件通道号;
在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标控制器对应的目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并返回替换后的响应报文。
2.根据权利要求1所述的方法,其特征在于,所述诊断请求报文为物理寻址请求报文,所述诊断请求报文的类型为FULLCAN类型。
3.根据权利要求1所述的方法,其特征在于,在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,包括:
在当前控制器的初始化函数中,通过调用硬件输入输出接口,获得硬件电平,并基于所述硬件电平确定当前控制器是主控制器还是从控制器。
4.根据权利要求3所述的方法,其特征在于,基于所述硬件电平确定当前控制器是主控制器还是从控制器,包括:
若所述硬件电平为高电平,则确定当前控制器是主控制器;
若所述硬件电平为低电平,则确定当前控制器是从控制器。
5.根据权利要求1所述的方法,其特征在于,在当前控制器初始化时,还包括:
若当前控制器不是所述目标控制器,则将响应报文标识信息替换为当前控制器对应的当前响应报文标识信息;
所述在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标控制器对应的目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并返回替换后的响应报文,包括:
在诊断协议栈中对替换后的诊断请求报文进行响应,获得包含当前响应报文标识信息的响应报文,并返回获得的响应报文。
6.根据权利要求1所述的方法,其特征在于,在当前控制器初始化之前,还包括:
基于诊断文件进行诊断配置,并将响应报文标识信息的类型设置为动态更改类型,生成目标诊断软件代码;
将所述目标诊断软件代码部署到主控制器和从控制器上,以使主控制器和从控制器共用所述目标诊断软件代码。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述诊断请求报文是诊断设备发送的请求报文,所述诊断设备与当前控制器所处于的当前控制器局域网络连接,以使所述诊断设备通过所述当前控制器局域网络向当前控制器发送所述诊断请求报文。
8.一种控制器诊断装置,其特征在于,集成于当前控制器,所述当前控制器为具有相同控制功能的主控制器或者从控制器,所述装置包括:
控制器检测模块,用于在当前控制器初始化时,通过硬件输入输出接口确定当前控制器是主控制器还是从控制器,并检测当前控制器是否为目标控制器,所述目标控制器为主控制器或者从控制器;
第一响应模块,用于若当前控制器是所述目标控制器,则直接在诊断协议栈中对接收到的诊断请求报文进行响应,并返回获得的响应报文;
请求报文标识替换模块,用于若当前控制器不是所述目标控制器,则将接收到的诊断请求报文中的当前请求报文标识信息和分配的当前硬件通道号分别替换为所述目标控制器对应的目标请求报文标识信息和预留硬件通道号;
第二响应模块,用于在诊断协议栈中对替换后的诊断请求报文进行响应,将获得的响应报文中的目标控制器对应的目标响应报文标识信息替换为当前控制器对应的当前响应报文标识信息,并返回替换后的响应报文。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的控制器诊断方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的控制器诊断方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211524974.0A CN115933591B (zh) | 2022-11-30 | 2022-11-30 | 一种控制器诊断方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211524974.0A CN115933591B (zh) | 2022-11-30 | 2022-11-30 | 一种控制器诊断方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115933591A true CN115933591A (zh) | 2023-04-07 |
CN115933591B CN115933591B (zh) | 2024-06-14 |
Family
ID=86655320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211524974.0A Active CN115933591B (zh) | 2022-11-30 | 2022-11-30 | 一种控制器诊断方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115933591B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737475A (zh) * | 2023-05-29 | 2023-09-12 | 中国第一汽车股份有限公司 | 一种芯片诊断方法、装置、设备和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970612A (zh) * | 2017-05-12 | 2017-07-21 | 北京汽车研究总院有限公司 | 一种控制器状态的诊断方法及装置 |
CN107256014A (zh) * | 2017-06-13 | 2017-10-17 | 华晨汽车集团控股有限公司 | 一种基于自动编辑测试序列的整车自动诊断测试系统 |
CN108334058A (zh) * | 2018-02-13 | 2018-07-27 | 安徽江淮汽车集团股份有限公司 | 一种基于车身控制器的诊断系统及方法 |
CN108958224A (zh) * | 2018-07-27 | 2018-12-07 | 深圳市元征科技股份有限公司 | 一种车辆诊断方法、诊断终端及诊断盒 |
CN109491357A (zh) * | 2017-09-13 | 2019-03-19 | 现代自动车株式会社 | 在多个控制器上执行诊断操作的设备以及相关方法和车辆 |
CN110324281A (zh) * | 2018-03-29 | 2019-10-11 | 上海汽车集团股份有限公司 | 一种车载网络控制器刷新系统及方法 |
CN110501995A (zh) * | 2019-08-28 | 2019-11-26 | 肇庆小鹏汽车有限公司 | 一种车辆诊断系统和方法 |
CN112015163A (zh) * | 2020-08-20 | 2020-12-01 | 广州汽车集团股份有限公司 | 一种快速识别can总线上诊断主体的方法及装置 |
US20200382597A1 (en) * | 2019-05-28 | 2020-12-03 | Hyundai Motor Company | Vehicle diagnostic communication apparatus, system including the same and method thereof |
WO2022017125A1 (zh) * | 2020-07-22 | 2022-01-27 | 中国第一汽车股份有限公司 | 程序刷写方法、装置、车辆及存储介质 |
-
2022
- 2022-11-30 CN CN202211524974.0A patent/CN115933591B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970612A (zh) * | 2017-05-12 | 2017-07-21 | 北京汽车研究总院有限公司 | 一种控制器状态的诊断方法及装置 |
CN107256014A (zh) * | 2017-06-13 | 2017-10-17 | 华晨汽车集团控股有限公司 | 一种基于自动编辑测试序列的整车自动诊断测试系统 |
CN109491357A (zh) * | 2017-09-13 | 2019-03-19 | 现代自动车株式会社 | 在多个控制器上执行诊断操作的设备以及相关方法和车辆 |
CN108334058A (zh) * | 2018-02-13 | 2018-07-27 | 安徽江淮汽车集团股份有限公司 | 一种基于车身控制器的诊断系统及方法 |
CN110324281A (zh) * | 2018-03-29 | 2019-10-11 | 上海汽车集团股份有限公司 | 一种车载网络控制器刷新系统及方法 |
CN108958224A (zh) * | 2018-07-27 | 2018-12-07 | 深圳市元征科技股份有限公司 | 一种车辆诊断方法、诊断终端及诊断盒 |
US20200382597A1 (en) * | 2019-05-28 | 2020-12-03 | Hyundai Motor Company | Vehicle diagnostic communication apparatus, system including the same and method thereof |
CN110501995A (zh) * | 2019-08-28 | 2019-11-26 | 肇庆小鹏汽车有限公司 | 一种车辆诊断系统和方法 |
WO2022017125A1 (zh) * | 2020-07-22 | 2022-01-27 | 中国第一汽车股份有限公司 | 程序刷写方法、装置、车辆及存储介质 |
CN112015163A (zh) * | 2020-08-20 | 2020-12-01 | 广州汽车集团股份有限公司 | 一种快速识别can总线上诊断主体的方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737475A (zh) * | 2023-05-29 | 2023-09-12 | 中国第一汽车股份有限公司 | 一种芯片诊断方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115933591B (zh) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3575975B1 (en) | Method and apparatus for operating smart network interface card | |
CN109359031B (zh) | 多设备应用程序测试方法、装置、服务器及存储介质 | |
CN103201724A (zh) | 在高可用性虚拟机环境中提供高可用性应用程序 | |
CN115657553A (zh) | Pcie拓扑和pcie设备模拟方法、装置、设备及介质 | |
CN115604144B (zh) | 测试方法及装置、电子设备和存储介质 | |
CN115629825B (zh) | 一种服务器及其资产信息获取方法、提供方法和装置 | |
CN115933591B (zh) | 一种控制器诊断方法、装置、设备和存储介质 | |
CN116700776A (zh) | 电池管理系统的信息管理方法、装置、设备及存储介质 | |
CN113658351A (zh) | 一种产品生产的方法、装置、电子设备及存储介质 | |
CN116306408B (zh) | 片上系统soc的验证环境确定方法、装置、设备和存储介质 | |
CN110928679B (zh) | 一种资源分配方法及装置 | |
CN115390992A (zh) | 一种虚拟机创建方法、装置、设备和存储介质 | |
CN110177032B (zh) | 报文路由质量监测方法及网关控制器 | |
CN114036218A (zh) | 一种数据模型切换方法、装置、服务器和存储介质 | |
CN115617616A (zh) | 一种服务器fru的运行监测方法、装置、设备及存储介质 | |
CN115174447B (zh) | 一种网络通信方法、装置、系统、设备及存储介质 | |
CN115525415B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN110221869B (zh) | 用于配置数据中心运行环境的方法及装置 | |
CN117784763A (zh) | 报文发送方法、装置、电子设备及存储介质 | |
CN114756433A (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN111506046A (zh) | 一种ZigBee方式下车辆诊断方法以及相关装置 | |
CN116467144A (zh) | 一种应用程序监控方法、装置、设备、芯片及介质 | |
CN118264585A (zh) | 一种车辆总线故障检测方法、装置、设备及存储介质 | |
CN115225556A (zh) | 一种检测方法、装置、设备及存储介质 | |
CN115357264A (zh) | 机器人的程序更新方法、装置、设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |