发明内容
本申请所要解决的技术问题是提供一种为电子控制单元自动配置网络和功能配置字的自动学习方法。
本申请为解决上述技术问题而采用的技术方案是一种汽车电子控制单元网络和功能配置字的自动学习方法,包括:下线设备向网关写入当前网络和功能配置字,所述网关具有预设的默认网络和功能配置字;所述网关比较所述当前网络和功能配置字和所述默认网络和功能配置字,当所述当前网络和功能配置字和所述默认网络和功能配置字不一致时,所述网关发送应用报文,所述应用报文包括所述当前网络和功能配置字;汽车电子控制单元接收所述应用报文,所述汽车电子控制单元具有预设的ECU网络和功能配置字;所述汽车电子控制单元比较所述应用报文中的所述当前网络和功能配置字和所述ECU网络和功能配置字,当所述当前网络和功能配置字和所述ECU网络和功能配置字不一致时,所述汽车电子控制单元将所述ECU网络和功能配置字更新为所述当前网络和功能配置字;所述下线设备读取所述汽车电子控制单元的诊断故障码,所述诊断故障码用于表示所述汽车电子控制单元将所述ECU网络和功能配置字更新为所述当前网络和功能配置字的动作失败;以及当所述下线设备成功读取所述诊断故障码时,所述下线设备向所述汽车电子控制单元写入所述当前网络和功能配置字。
在本申请的一实施例中,在所述下线设备向网关写入当前网络和功能配置字的步骤之前,还包括:设置所述网关为扩展会话模式。
在本申请的一实施例中,所述下线设备向网关写入当前网络和功能配置字的步骤包括:所述下线设备通过安全访问后向所述网关写入所述当前网络和功能配置字。
在本申请的一实施例中,所述网关发送应用报文的步骤包括:所述网关通过各个子网发送所述应用报文。
在本申请的一实施例中,所述汽车电子控制单元接收所述应用报文的步骤包括:通过所述汽车电子控制单元对应的子网接收所述应用报文。
在本申请的一实施例中,所述汽车电子控制单元与对应的控制器相连接,所述控制器用于将所述应用报文路由至所述汽车电子控制单元。
在本申请的一实施例中,所述下线设备读取所述汽车电子控制单元的诊断故障码的步骤包括:在所述下线设备向网关写入当前网络和功能配置字的步骤之后,经过预定时长,所述下线设备向所述汽车电子控制单元发送读取所述诊断故障码的读指令。
在本申请的一实施例中,所述汽车电子控制单元将所述ECU网络和功能配置字更新为所述当前网络和功能配置字的步骤包括:根据所述当前网络和功能配置字更新对应的DID内容,并将所述DID内容存储到非易失性存储器里。
本申请为解决上述技术问题还提出一种汽车电子控制单元网络和功能配置字的自动学习装置,包括:存储器,用于存储可由处理器执行的指令;处理器,用于执行所述指令以实现如上所述的方法。
本申请为解决上述技术问题还提出一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的方法。
本申请的自动学习方法通过采用网关进行ECU的网络和功能配置,各个ECU通过接收应用报文的方式自动学习网络和功能配置字,而无需下线设备的重复工作,易实现;通过读取DTC的校验机制,可以识别出更新失败的ECU,并仅针对该更新失败的ECU执行直接的写入工作,重复工作少;在网络拓扑结构不变的情况下,ECU的增减对下线设备的配置流程没有影响。
具体实施方式
为让本申请的上述目的、特征和优点能更明显易懂,以下结合附图对本申请的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但是本申请还可以采用其它不同于在此描述的其它方式来实施,因此本申请不受下面公开的具体实施例的限制。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
整车下线流程(EOL,End of Line)一般是车辆完成装配后,离开生产线以前进行的一系列准备工作,例如制动油液的加注、动力系统自检、门窗天窗的自学习等。随着智能驾驶和网络完全相关功能的应用,相关的流程包括雷达标定、安全信息写入/校验等也被加入了下线流程。本申请的汽车电子控制单元网络和功能配置字的自动学习方法用于在整车下线流程中,为汽车上的多个电子控制单元自动配置网络和功能,不受到网络拓扑结构中电子控制单元增减的影响。
图1是本申请一实施例的汽车电子控制单元网络和功能配置字的自动学习方法的示例性流程图。图2是本申请一实施例的汽车电子控制单元网络和功能配置字的自动学习方法的交互过程示意图。结合图1和图2所示,该实施例的自动学习方法包括以下步骤:
步骤S110:下线设备210向网关220写入当前网络和功能配置字,网关220具有预设的默认网络和功能配置字;
步骤S120:网关220比较当前网络和功能配置字和默认网络和功能配置字,当当前网络和功能配置字和默认网络和功能配置字不一致时,网关220发送应用报文,应用报文包括当前网络和功能配置字;
步骤S130:汽车电子控制单元接收应用报文,汽车电子控制单元具有预设的ECU网络和功能配置字;
步骤S140:汽车电子控制单元比较应用报文中的当前网络和功能配置字和ECU网络和功能配置字,当当前网络和功能配置字和ECU网络和功能配置字不一致时,汽车电子控制单元将ECU网络和功能配置字更新为当前网络和功能配置字;
步骤S150:下线设备210读取汽车电子控制单元的诊断故障码,诊断故障码用于表示汽车电子控制单元将ECU网络和功能配置字更新为当前网络和功能配置字的动作失败;以及
步骤S160:当下线设备210成功读取诊断故障码时,下线设备210向汽车电子控制单元写入当前网络和功能配置字。
在以下的说明书中,将汽车电子控制单元简称为ECU。
具体地,在步骤S110中,下线设备210可以是整车下线流程用于测试或诊断车辆各项功能的测试仪器或诊断仪器。本申请对下线设备210的功能、数量不做限制。在一些实施例中,下线设备210是用于执行电检操作的设备。
在步骤S110中,网关220指汽车网络系统中所配置的网关(Gateway)。网关220可以通过CAN总线与多个带CAN总线功能的ECU通信。网关220具有预设的默认网络和功能配置字。该预设的默认网络和功能配置字可以是出厂时存储在网关220的非易失性存储器中。在一些情况下,需要根据客户自身情况和需求对某一个汽车电子控制单元的网络和功能进行自定义的设置,所设置的网络和功能配置字可能与默认网络和功能配置字不同。
在一些实施例中,默认网络和功能配置字包括各个ECU所对应的各种网络和功能配置字。例如,对于整车控制器(VCU)来说,包括功率配置字,格栅配置字等,对于BMS来说,包括续航里程配置字、电池容量配置字等。在诊断开发时将所有ECU需区分的网络和功能相关的特征都定义到一个DID(DataIdentifier)的数据内容中。
在步骤S110中,下线设备210向网关220写入的当前网络和功能配置字可以是关于该车辆的所有ECU的网络和功能配置字的总和。
可以理解,网关220的默认网络和功能配置字的格式和当前网络和功能配置字的格式相同。
在一些实施例中,步骤S110中,下线设备210向网关220写入当前网络和功能配置字的步骤包括:下线设备210通过安全访问后向网关220写入当前网络和功能配置字。对于同一款车,无论下线设备210为何,所有需要写入网络和功能配置字的ECU的配置码是一样的。
在一些实施例中,通过UDS的SecurityAccess(0x27)服务来实现安全访问,从而确保网络安全。
在一些实施例中,通过UDS的WriteDataByIdentifier(0x2E)服务来实现向网关220写入当前网络和功能配置字的步骤。
在一些实施例中,在步骤S110之前,还包括:设置网关220为扩展会话模式。也就是说,在网关220的扩展会话模式下,下线设备210向网关220写入当前网络和功能配置字。
在步骤S120,网关220检测写入的当前网络和功能配置字,比较当前网络和功能配置字和默认网络和功能配置字,当发现二者不一致时,网关220发送带有当前网络和功能配置字的应用报文,否则,则无需发送应用报文。
在一些实施例中,步骤S120中的网关220发送应用报文的步骤包括:网关220通过各个子网发送应用报文。在车辆的网络拓扑确定后,每个ECU具有明确的所对应的子网。一个子网中可以包括多个ECU。
如图2所示,其中示出了3个ECU231、232、233。图2所示仅为示例,不用于限制ECU的个数。
在一些实施例中,步骤S130中的汽车电子控制单元接收应用报文的步骤包括:通过汽车电子控制单元对应的子网接收应用报文。
在另一些实施例中,汽车电子控制单元与对应的控制器相连接,控制器用于将应用报文路由至汽车电子控制单元。在这些实施例中,ECU没有直接连接到车辆网络的子网中,则可以通过对应的控制器从网关220接收其所发送的应用报文,再将该应用报文路由给该ECU。在这些实施例中,ECU可以与某控制器直连,该直连的控制器具有路由功能,就是识别特定ID的报文,将特定ID的报文由一个网段转到另一个网段,具体地路由信息在通信矩阵里定义,通过ECU软件实现。
根据步骤S130,每个ECU本身具有预设的ECU网络何功能配置字。因此,在步骤S140,每个ECU比较应用报文中的当前网络和功能配置字和其自身存储的ECU网络和功能配置字,当二者不一致时,ECU将其原来存储的ECU网络和功能配置字更新为当前网络和功能配置字,否则,则不更新。
在一些实施例中,汽车电子控制单元将ECU网络和功能配置字更新为当前网络和功能配置字的步骤包括:根据当前网络和功能配置字更新对应的DID内容,并将DID内容存储到非易失性存储器里。
在步骤S150中,下线设备210读取ECU的诊断故障码(DTC,Diagnostic TroubleCode)。诊断故障码是用来记录某ECU发生或检测到某种故障时所提供给用户的标识码,通过该标识码可以查表的方式获得该故障信息的具体内容,例如故障触发条件、故障解除条件、系统功能表现等。在步骤S150中下线设备210所要读取的DTC是专门用于表示ECU将ECU网络和功能配置字更新为当前网络和功能配置字的动作失败的DTC。本申请对该DTC的具体内容不做限制。若下线设备210可以读取到该DTC,则表示ECU的更新动作失败;若下线设备210不能读取到该DTC,则表示ECU的更新动作成功。
在一些实施例中,步骤S150中下线设备210读取汽车电子控制单元的诊断故障码的步骤包括:在下线设备210向网关220写入当前网络和功能配置字的步骤之后,经过预定时长T,下线设备210向汽车电子控制单元发送读取诊断故障码的读指令。根据这些实施例,经过等待预定时长T之后,认为网关220已经发送了包括当前网络和功能配置字的应用报文,并且各个ECU也接收到该应用报文并且执行了步骤S140,上述的ECU的更新动作已经完成,结果是成功或失败。
在一实施例中,该预定时长为0.5秒。
当下线设备210成功读取到该DTC时,表示该ECU的更新动作失败,在步骤S160,下线设备210直接向该ECU写入当前网络和功能配置字。如果下线设备210在步骤S150没有读取到该DTC,表示该ECU的更新动作成功,则下线设备210无需再有额外的工作。
根据本申请的自动学习方法,采用网关220进行ECU的网络和功能配置,各个ECU通过接收应用报文的方式自动学习网络和功能配置字,而无需下线设备210的重复工作,易实现;通过读取DTC的校验机制,可以识别出更新失败的ECU,并仅针对该更新失败的ECU执行直接的写入工作,重复工作少;在网络拓扑结构不变的情况下,ECU的增减对下线设备210的配置流程没有影响。
图3是本申请一实施例的汽车电子控制单元网络和功能配置字的自动学习方法的示例性流程图。该实施例的各个步骤前文所述实施例的自动学习方法具有相关性,因此前文可以用于说明图3所示的实施例,相同的内容将不再展开。与参考图3所示,该实施例的自动学习方法包括以下步骤:
步骤S310:网关GW进入扩展会话模式。
步骤S312:下线设备通过网关的安全访问。
步骤S314:下线设备向网关写入当前网络和功能配置字。该步骤对应于图1所示实施例中的步骤S110。
步骤S316:读取实现网络和功能配置ECU的DTC。在步骤S314之后,等待0.5秒之后再执行步骤S316。步骤S316对应于图1所示实施例中的步骤S150,所读取的对象是经过步骤S130、S140之后实现了网络和功能配置的ECU,其中,有的ECU的网络和功能配置字更新成功,有的则更新失败。
步骤S318:判断所读取到的DTC是否为网络和功能配置字更新失败的当前DTC。ECU可能具有多个不同的DTC,在本申请中,所感兴趣的是ECU是否将ECU网络和功能配置字更新为网关发送的应用报文中的当前网络和功能配置字,步骤S318中的当前DTC是用于表示该更新动作失败的DTC。若判断结果为否,则继续执行步骤S320;若判断结果为是,则继续执行步骤S322。
步骤S320:结束。
步骤S322:ECU进入扩展会话模式。
步骤S324:下线设备通过ECU的安全访问。在一些实施例中,通过UDS的SecurityAccess(0x27)服务来实现对ECU的安全访问。
步骤S326:下线设备向ECU写入当前网络和功能配置字。之后继续执行步骤S318。
图3所示的实施例提供一完整的自动学习方法的流程图,可以安全、有效地实现ECU的网络和功能配置字的自动学习。
本申请还包括一种汽车电子控制单元网络和功能配置字的自动学习装置,包括存储器和处理器。其中,该存储器用于存储可由处理器执行的指令;处理器用于执行该指令以实现前文所述的汽车电子控制单元网络和功能配置字的自动学习方法。
图4是本申请一实施例的汽车电子控制单元网络和功能配置字的自动学习装置的系统框图。参考图4所示,该自动学习装置400可包括内部通信总线401、处理器402、只读存储器(ROM)403、随机存取存储器(RAM)404以及通信端口405。当应用在个人计算机上时,该自动学习装置400还可以包括硬盘406。内部通信总线401可以实现该自动学习装置400组件间的数据通信。处理器402可以进行判断和发出提示。在一些实施例中,处理器402可以由一个或多个处理器组成。通信端口405可以实现该自动学习装置400与外部的数据通信。在一些实施例中,该自动学习装置400可以通过通信端口405从网络发送和接受信息及数据。该自动学习装置400还可以包括不同形式的程序储存单元以及数据储存单元,例如硬盘406,只读存储器(ROM)403和随机存取存储器(RAM)404,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的程序指令。处理器执行这些指令以实现方法的主要部分。处理器处理的结果通过通信端口传给用户设备,在用户界面上显示。
上述的自动学习方法可以实施为计算机程序,保存在硬盘406中,并可加载到处理器402中执行,以实施本申请的自动学习方法。
本申请还包括一种存储有计算机程序代码的计算机可读介质,该计算机程序代码在由处理器执行时实现前文所述的自动学习方法。
汽车电子控制单元网络和功能配置字的自动学习方法实施为计算机程序时,也可以存储在计算机可读存储介质中作为制品。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(CD)、数字多功能盘(DVD))、智能卡和闪存设备(例如,电可擦除可编程只读存储器(EPROM)、卡、棒、键驱动)。此外,本文描述的各种存储介质能代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线信道和各种其它介质(和/或存储介质)。
应该理解,上文所描述的实施例仅是示意。本文描述的实施例可在硬件、软件、固件、中间件、微码或者其任意组合中实现。对于硬件实现,处理器可以在一个或者多个特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器和/或设计为执行本文所述功能的其它电子单元或者其结合内实现。
本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。处理器可以是一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘CD、数字多功能盘DVD……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。
计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。