CN115766559A - 基于autosar协议栈的诊断报文路由方法、系统 - Google Patents
基于autosar协议栈的诊断报文路由方法、系统 Download PDFInfo
- Publication number
- CN115766559A CN115766559A CN202211432286.1A CN202211432286A CN115766559A CN 115766559 A CN115766559 A CN 115766559A CN 202211432286 A CN202211432286 A CN 202211432286A CN 115766559 A CN115766559 A CN 115766559A
- Authority
- CN
- China
- Prior art keywords
- message
- diagnosis
- module
- type
- autosar
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于AUTOSAR协议栈的诊断报文路由方法、系统,其可以优先、准确地将诊断报文路由到目的地Can网络,方法包括以下步骤:报文由CanIf模块发送到Pdur模块,Pdur模块判断报文类型,仅将报文类型为诊断报文的报文路由至Cdd模块;由所述Cdd模块转发诊断报文至目的地Can网络。
Description
技术领域
本发明涉及汽车电子控制技术,具体涉及一种基于AUTOSAR协议栈的诊断报文路由方法、系统。
背景技术
AUTOSAR是由全球汽车OEM和供应商共同定义的一套支持分布式、功能驱动的汽车电子软件开发方法和电子控制单元上的软件架构标准化方案,其目的是为了应用于不同的汽车和平台,提高软件复用,降低开发成本。
其中,诊断是AUTOSAR标准中的重要部分,这些功能和软件模块分布在AUTOSAR的系统服务和通信服务中。
目前网关控制器对诊断报文配置路由的方法是由AUTOSAR协议栈配置工具生成路由表,源诊断报文经Pdur(PDU Router)模块自动转发到目的地Can网络,现有的方法存在以下不足之处:
源Can网络收到诊断报文后自动转发到目的地网络,应用软件无法对某条报文进行监控,无法实现多路诊断源的优先级管理,无法实现报文类型的切换;诊断报文转发的延时也较大。
发明内容
针对上述问题,本发明提供了一种基于AUTOSAR协议栈的诊断报文路由方法、系统,其可以优先、准确地将诊断报文路由到目的地Can网络。
其技术方案是这样的:基于AUTOSAR协议栈的诊断报文路由方法,其特征在于,包括以下步骤:
报文由CanIf模块发送到Pdur模块,Pdur模块判断报文类型,仅将报文类型为诊断报文的报文路由至Cdd模块;
由所述Cdd模块转发诊断报文至目的地Can网络。
进一步的,所述Cdd模块接收到诊断报文后,对于诊断报文的来源进行诊断,记录诊断报文的来源,所述Cdd模块在接收到诊断报文后,在设定的时间阈值内,只转发由记录的诊断报文的来源产生的诊断请求与应答。
进一步的,所述Cdd模块接收到诊断报文后,判断接收的诊断报文的类型,按照判断得到的报文类型转发诊断报文。
进一步的,所述Cdd模块通过报文动态ID属性对报文的类型进行判断,所述诊断报文的类型包括Can、CanFD,当诊断报文的类型为Can或CanFD,按照对应报文类型转发诊断报文,当诊断报文未设置报文动态ID属性时,按照CanFD格式进行转发。
进一步的,所述Cdd模块建立有查询表,用于处理诊断报文的收发。
进一步的,所述Cdd模块设置有第一查询表、第二查询表,所述第二查询表以收发的诊断报文的CanID为索引号,所述第二查询表中每个索引号对应的行中元素为Cdd模块的pduID,所述第一查询表以pduID为索引号,所述第一查询表中每个索引号对应的行中元素为CanifpduID;
当接收到诊断报文,通过诊断报文的CanID至第二查询表中查询对应索引号下的pduID,再通过pduID至第一查询表中查询对应索引号下的CanifpduID。
基于AUTOSAR协议栈的诊断报文路由系统,其特征在于,包括:
第一判断转发单元,用于将报文由CanIf模块发送到Pdur模块,Pdur模块判断报文类型,仅将报文类型为诊断报文的报文路由至Cdd模块;
第二判断转发单元,用于将转发诊断报文从所述Cdd模块转发至目的地Can网络。
进一步的,所述基于AUTOSAR协议栈的诊断报文路由系统还包括:
来源诊断单元,用于对诊断报文的来源进行诊断,记录诊断报文的来源,所述Cdd模块在接收到诊断报文后,在设定的时间阈值内,只转发由记录的诊断报文的来源产生的诊断请求与应答;
报文类型诊断单元,用于判断接收的诊断报文的类型,按照判断得到的报文类型转发诊断报文;
查询处理单元,用于设置有第一查询表、第二查询表,处理诊断报文的收发。
一种计算机装置,其特征在于,其包括:包括处理器、存储器以及程序;
所述程序存储在所述存储器中,所述处理器调用存储器存储的程序,以执行上述的基于AUTOSAR协议栈的诊断报文路由方法。
一种计算机可读存储介质,其特征在于:所述计算机可读存储介质用于存储程序,所述程序用于执行上述的基于AUTOSAR协议栈的诊断报文路由方法。
本发明的方法,通过对于转发的报文进行判断,仅将诊断报文通过Cdd模块进行转发,Cdd模块可以准确地将诊断报文路由到目的地Can网络,Cdd模块接收到诊断报文后,会对诊断报文的来源进行诊断,并且记录诊断报文的来源,Cdd模块在接收到诊断报文后,在一个设定的时间阈值内,只转发由记录的诊断报文的来源产生的诊断请求与应答,实现诊断报文优先级处理,并且本发明还对接收的诊断报文的类型进行判断,并且按照判断得到的报文类型转发诊断报文,此外,本发明的方法中,CDD模块还优化了内部搜索算法通过减少由于内部搜索算法造成的路由延时,提高响应了速度。
附图说明
图1为实施例中的一种基于AUTOSAR协议栈的诊断报文路由方法的主要步骤示意图;
图2为一种基于AUTOSAR协议栈的诊断报文路由系统的构成框图;
图3为一个实施例中计算机装置的内部结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
如背景技术中所示,现有技术中,传统的报文路由实现为Canif->Pdur->canif,源诊断报文经Pdur模块自动转发到目的地Can网络,现有的方法无法对某条诊断报文进行监控,无法实现多路诊断源的优先级管理,无法实现报文类型的切换;诊断报文转发的延时也较大。
针对于此,见图1,本发明提供了一种基于AUTOSAR协议栈的诊断报文路由方法,至少包括以下步骤:
步骤1:报文由CanIf模块发送到Pdur模块,Pdur模块判断报文类型,仅将报文类型为诊断报文的报文路由至Cdd模块;
步骤2:由Cdd模块转发诊断报文至目的地Can网络。
具体在本发明的一个实施例中,在步骤2中,Cdd模块接收到诊断报文后,对于诊断报文的来源进行诊断,记录诊断报文的来源,Cdd模块在接收到诊断报文后,在设定的时间阈值内,只转发由记录的诊断报文的来源产生的诊断请求与应答。
在Cdd模块,增加对于诊断报文的来源的判断,诊断报文的来源分为OTA、OBD、TBOX、CanDiag,网管报文与应用报文未路由到Cdd,Cdd模块记录来源,一段时间内只转发由此来源产生的诊断请求与应答,实现优先级控制。
此外在步骤2中,Cdd模块接收到诊断报文后,会判断接收的诊断报文的类型,按照判断得到的报文类型转发诊断报文。现有的AUTOSAR协议栈不自动进行ID类型转换,其都按照CanFD格式转发,不满足客户要求,所以本发明中要引入CDD模块,进行Can协议转换。
具体在一个实施例中,Cdd模块通过报文动态ID属性对报文的类型进行判断,诊断报文的类型包括Can、CanFD,当诊断报文的类型为Can或CanFD,按照对应报文类型转发诊断报文,当诊断报文未设置报文动态ID属性时,按照CanFD格式进行转发。
由于Cdd模块不会像Pdur模块一样自动转发报文,报文的接收、发送都会依赖表中的查询结果,所以当Cdd模块需要处理诊断报文的收发,需要建立查询表。传统的搜索方法为,按照索引在表中从前到后查询满足要求的行。但由于网关需要路由的诊断报文数量多,查询表冗长且对于转发延时有严格的限制,故会造成查询表中表尾的报文在高负载情况下转发延时不达标。
故而在实施例中,对搜索方法进行了改进,具体为:Cdd模块设置有第一查询表gCddPduMap[]、第二查询表LookupTable[0xff],第二查询表以收发的诊断报文的CanID为索引号,第二查询表LookupTable[0xff]中每个索引号对应的行中元素为Cdd模块的pduID,第一查询表gCddPduMap[]以pduID为索引号,第一查询表gCddPduMap[]中每个索引号对应的行中元素为CanifpduID;
当接收到诊断报文,通过诊断报文的CanID至第二查询表中查询对应索引号下的pduID,再通过pduID至第一查询表中查询对应索引号下的CanifpduID,CanifpduID是AUTOSAR配置工具生成的Canif层的报文索引号,应用软件可以调用Canif层的发送接口,通过索引号来发送报文。
比如接收到CanID为0x714的诊断报文,处理流程为:
在第二查询表LookupTable[0xff]中查询到与0x714对应行的索引CanID&0xff结果为0x14;
找到第二查询表中LookupTable[0x14]行中的内容:Cdd模块的pduID;
通过pduid定位到第一查询表gCddPduMap中的行,读取Canifpduid(CanIfTxPduHnd_DIAG_PhysResp_DGM_oCAN7_a4618b50_Tx)。
实施例中的搜索方法,两次查询省去了从表头开始的搜索操作,都是按照索引定位读取,两次查询都是直接按照索引读取数组的内容,省去了从前到后的搜索时间,使得每一行的搜索效率相同,大大改善了高负载情况下转发报文延时的问题。
本发明可以解决应用软件无法对某条报文进行监控的问题,监控是指应用程序对报文进行后期处理,而不是直接传输,处理包括传输、丢弃、改变报文ID类型,本发明通过将诊断报文路由到Cdd模块,并锁定诊断源,实现了传输监控,本发明通过对于诊断报文的优先级管理,将非目前锁定诊断源的诊断报文被丢弃,不予路由处理,确保了目前锁定诊断源处理的优先级,本发明通过Can与CanFD的切换,改变报文ID,很好的实现了报文监控。
此外,对于本发明出现的一些特定名词进解释:
PduR,PDU Router—协议数据单元路由;CanIf-通信接口模块;PduR模块位于AUTOSAR通讯架构的中间位置。
Cdd模块(CDD,Complex Device Driver or Complex Driver)是复杂设备驱动/复杂驱动的缩写,但是它不仅限用于驱动模块,也可以是应用或者与芯片、ECU相关的其他模块。
一个CDD模块是AUTOSAR里面的一个软件实例,属于AUTOSAR的一部分,但是该模块没有被AUTOSAR标准化。它可以通过AUTOSAR接口访问AUTOSAR里面其他基础模块(BSW),同样也可以被其他BSW或者RTE访问,SWCs与CDD之间不能直接进行访问,但可通过RTE进行。
在本发明的实施例中的方法,通过对于Cdd模块进行设置,对于转发的报文进行判断,仅将诊断报文通过Cdd模块进行转发,Cdd模块可以准确地将诊断报文路由到目的地Can网络。
本发明的方法,通过对于转发的报文进行判断,仅将诊断报文通过Cdd模块进行转发,Cdd模块可以准确地将诊断报文路由到目的地Can网络,Cdd模块接收到诊断报文后,会对诊断报文的来源进行诊断,并且记录诊断报文的来源,Cdd模块在接收到诊断报文后,在一个设定的时间阈值内,只转发由记录的诊断报文的来源产生的诊断请求与应答,实现诊断报文优先级处理,并且本发明还对接收的诊断报文的类型进行判断,并且按照判断得到的报文类型转发诊断报文,此外,本发明的方法中,CDD模块还优化了内部搜索算法通过减少由于内部搜索算法造成的路由延时,提高响应了速度。
见图2,在本发明的实施例中,还提供了基于AUTOSAR协议栈的诊断报文路由系统,包括:
第一判断转发单元100,用于将报文由CanIf模块发送到Pdur模块,Pdur模块判断报文类型,仅将报文类型为诊断报文的报文路由至Cdd模块;
第二判断转发单元200,用于将转发诊断报文从所述Cdd模块转发至目的地Can网络;
来源诊断单元300,用于对诊断报文的来源进行诊断,记录诊断报文的来源,所述Cdd模块在接收到诊断报文后,在设定的时间阈值内,只转发由记录的诊断报文的来源产生的诊断请求与应答;
报文类型诊断单元400,用于判断接收的诊断报文的类型,按照判断得到的报文类型转发诊断报文;
查询处理单元500,用于设置有第一查询表、第二查询表,处理诊断报文的收发。
在本发明的实施例中,还提供了一种计算机装置,其包括:包括处理器、存储器以及程序;
程序存储在存储器中,处理器调用存储器存储的程序,以执行上述的在基于AUTOSAR协议栈的诊断报文路由方法。
该计算机装置可以是终端,其内部结构图可以如图3所示。该计算机装置包括通过总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机装置的处理器用于提供计算和控制能力。该计算机装置的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机装置的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现基于AUTOSAR协议栈的诊断报文路由方法。该计算机装置的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机装置的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机装置外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
存储器可以是,但不限于,随机存取存储器(Random Access Memory,简称:RAM),只读存储器(Read Only Memory,简称:ROM),可编程只读存储器(Programmable Read-OnlyMemory,简称:PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称:EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,简称:EEPROM)等。其中,存储器用于存储程序,处理器在接收到执行指令后,执行程序。
处理器可以是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称:CPU)、网络处理器(NetworkProcessor,简称:NP)等。该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机装置的限定,具体的计算机装置可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在本发明的实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序,程序用于执行上述的基于AUTOSAR协议栈的诊断报文路由方法。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、计算机装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、计算机装置、或计算机程序产品的流程图来描述的。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图中指定的功能。
以上对本发明所提供的基于AUTOSAR协议栈的诊断报文路由方法、系统、计算机装置、计算机可读存储介质的应用进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.基于AUTOSAR协议栈的诊断报文路由方法,其特征在于,包括以下步骤:
报文由CanIf模块发送到Pdur模块,Pdur模块判断报文类型,仅将报文类型为诊断报文的报文路由至Cdd模块;
由所述Cdd模块转发诊断报文至目的地Can网络。
2.根据权利要求1所述的基于AUTOSAR协议栈的诊断报文路由方法,其特征在于:所述Cdd模块接收到诊断报文后,对于诊断报文的来源进行诊断,记录诊断报文的来源,所述Cdd模块在接收到诊断报文后,在设定的时间阈值内,只转发由记录的诊断报文的来源产生的诊断请求与应答。
3.根据权利要求1所述的基于AUTOSAR协议栈的诊断报文路由方法,其特征在于:所述Cdd模块接收到诊断报文后,判断接收的诊断报文的类型,按照判断得到的报文类型转发诊断报文。
4.根据权利要求3所述的基于AUTOSAR协议栈的诊断报文路由方法,其特征在于:所述Cdd模块通过报文动态ID属性对报文的类型进行判断,所述诊断报文的类型包括Can、CanFD,当诊断报文的类型为Can或CanFD,按照对应报文类型转发诊断报文,当诊断报文未设置报文动态ID属性时,按照CanFD格式进行转发。
5.根据权利要求1所述的基于AUTOSAR协议栈的诊断报文路由方法,其特征在于:所述Cdd模块建立有查询表,用于处理诊断报文的收发。
6.根据权利要求5所述的基于AUTOSAR协议栈的诊断报文路由方法,其特征在于:所述Cdd模块设置有第一查询表、第二查询表,所述第二查询表以收发的诊断报文的CanID为索引号,所述第二查询表中每个索引号对应的行中元素为Cdd模块的pduID,所述第一查询表以pduID为索引号,所述第一查询表中每个索引号对应的行中元素为CanifpduID;
当接收到诊断报文,通过诊断报文的CanID至第二查询表中查询对应索引号下的pduID,再通过pduID至第一查询表中查询对应索引号下的CanifpduID。
7.基于AUTOSAR协议栈的诊断报文路由系统,其特征在于,包括:
第一判断转发单元,用于将报文由CanIf模块发送到Pdur模块,Pdur模块判断报文类型,仅将报文类型为诊断报文的报文路由至Cdd模块;
第二判断转发单元,用于将转发诊断报文从所述Cdd模块转发至目的地Can网络。
8.根据权利要求7所述的基于AUTOSAR协议栈的诊断报文路由系统,其特征在于,所述系统还包括:
来源诊断单元,用于对诊断报文的来源进行诊断,记录诊断报文的来源,所述Cdd模块在接收到诊断报文后,在设定的时间阈值内,只转发由记录的诊断报文的来源产生的诊断请求与应答;
报文类型诊断单元,用于判断接收的诊断报文的类型,按照判断得到的报文类型转发诊断报文;
查询处理单元,用于设置有第一查询表、第二查询表,处理诊断报文的收发。
9.一种计算机装置,其特征在于,其包括:包括处理器、存储器以及程序;
所述程序存储在所述存储器中,所述处理器调用存储器存储的程序,以执行权利要求1所述的基于AUTOSAR协议栈的诊断报文路由方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质用于存储程序,所述程序用于执行权利要求1所述的基于AUTOSAR协议栈的诊断报文路由方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211432286.1A CN115766559A (zh) | 2022-11-15 | 2022-11-15 | 基于autosar协议栈的诊断报文路由方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211432286.1A CN115766559A (zh) | 2022-11-15 | 2022-11-15 | 基于autosar协议栈的诊断报文路由方法、系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115766559A true CN115766559A (zh) | 2023-03-07 |
Family
ID=85371668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211432286.1A Pending CN115766559A (zh) | 2022-11-15 | 2022-11-15 | 基于autosar协议栈的诊断报文路由方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115766559A (zh) |
-
2022
- 2022-11-15 CN CN202211432286.1A patent/CN115766559A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106375175B (zh) | 一种汽车诊断刷写电子控制单元的方法及系统 | |
CN110719199B (zh) | 一种网络自动测试及故障定位方法及装置 | |
EP3291089B1 (en) | Data processing method and apparatus | |
CN112532526B (zh) | 数据转发方法、装置及网络设备 | |
WO2024037304A1 (zh) | 车辆诊断通信方法、装置、设备、介质及程序产品 | |
CN114089713A (zh) | 一种基于uds的通信方法、ecu及上位机 | |
CN113259264B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN108445860B (zh) | 诊断设备、诊断请求处理方法及计算机可读存储介质 | |
CN112202884A (zh) | 一种车辆连接接口装置数据传输方法及相关设备 | |
WO2022268100A1 (zh) | 车用中央控制器的诊断系统及方法 | |
CN115657521A (zh) | 解析can报文数据的方法、装置、车辆及存储介质 | |
CN111953575A (zh) | 一种适用于异构多核芯片的can协议栈系统及配置方法 | |
CN112596447B (zh) | Ecu刷写数据长度的确定方法、装置、电子设备及介质 | |
CN114374583A (zh) | 一种汽车网关控制器及其控制方法 | |
CN113285973A (zh) | 一种数据转发方法、装置、系统、车辆和存储介质 | |
CN115766559A (zh) | 基于autosar协议栈的诊断报文路由方法、系统 | |
CN114785684B (zh) | 车辆交换机的端口配置方法、装置、车辆及存储介质 | |
CN111031514A (zh) | 基于无线通信的数据转发处理器、数据转发处理方法 | |
CN117651021B (zh) | 过滤器及其控制方法和装置、电气设备 | |
CN114007152B (zh) | 一种针对光纤交换机的端口汇聚处理方法及装置 | |
CN118444662A (zh) | 车辆诊断方法、装置、车辆及存储介质 | |
CN112615932B (zh) | 一种基于车辆总线的通讯方法和车辆网关设备 | |
CN114584590B (zh) | 数据传输方法、系统、设备和存储介质 | |
CN118244735A (zh) | 数据丢失节点定位方法、装置、设备以及存储介质 | |
CN114764236A (zh) | 一种基于uds协议的双重控制系统及诊断方法 |
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 |