可动态适配传输层的UDS协议栈、诊断方法及电子设备与流程
未命名
07-12
阅读:108
评论:0

可动态适配传输层的uds协议栈、诊断方法及电子设备
技术领域
1.本公开涉及汽车诊断领域,具体地,涉及一种可动态适配传输层的uds协议栈、诊断方法及电子设备。
背景技术:
2.uds(unified diagnostic services,统一诊断服务)协议栈,是一个应用层协议(iso 14229-1),用于汽车电子设备在线诊断功能,uds传输层有udsoncan(iso14229-3)、udsonip(iso14229-5)和udsonlin(iso14229-7)等,传统的uds协议栈运行期间只能接收一种传输层的诊断请求。can一般指控制器局域网总线,controller area network,ip是指网际互连协议,intemet protocol,lin是指局域互联网络,local interconnect network。
3.当前越来越多的实际场景中需要同时支持udsoncan(iso 14229-3)、udsonip(iso 14229-5)两种或更多的诊断传输请求,兼容更多的诊断设备。单个诊断设备同时支持多种诊断传输协议的价格昂贵,整车开发过程涉及诊断研发的有几十上百个ecu(electronic control unit,电子控制单元),要求每个厂家都配置功能全备的诊断测试仪不够现实,此时需要研发出适配不同诊断仪的uds协议栈,降低研发过程中的成本。
技术实现要素:
4.本公开的目的是提供一种可动态适配传输层的uds协议栈、诊断方法及电子设备,用于解决现有技术中存在的,单个诊断设备同时支持多种诊断传输协议导致成本太高的技术问题。
5.为了实现上述目的,本公开第一方面提供一种可动态适配传输层的u ds协议栈,所述uds协议栈包括动态适配层;
6.所述动态适配层用于接收不同传输层发起的诊断请求,动态的识别当前诊断请求来自的传输层的类型,并将用于表征所述传输层的类型的标识符添加到诊断请求数据结构中;在所述uds协议栈完成诊断处理后,所述动态适配层根据所述传输层的标识符将所述诊断结果发送至对应的传输层。
7.可选的,所述动态适配层用于接收不同传输层发送的诊断请求原始报文,并重组所述诊断请求原始报文,将所述不同传输层的标识符附加到重组的诊断请求报文;将重组的诊断请求报文发送至所述uds协议栈的会话层;
8.所述会话层用于接收所述动态适配层重组后的诊断请求报文,在所述重组后的诊断请求报文满足条件时,将所述重组后的诊断请求报文发送至所述uds协议栈的应用层;
9.所述应用层用于根据所述重组后的诊断请求报文,获得诊断响应原始报文,并将所述诊断响应原始报文返回至所述动态适配层;
10.所述动态适配层还用于根据所述传输层的标识符重组不同传输层的诊断响应原始报文,并调用传输层的发送接口,完成重组后的响应报文的传输;其中,重组后的响应报文包括所述诊断响应原始报文和所述传输层的标识符。
11.可选的,所述传输层为can传输层;所述uds协议栈和所述can传输层建立通信连接,当所述uds协议栈接收到诊断请求原始报文时,所述uds协议栈读取所述诊断请求原始报文,并重组诊断请求原始报文,将所述can传输层的标识符填写到重组后的诊断请求报文中,并将所述重组后的诊断请求报文发送至所述会话层。
12.可选的,所述传输层为dolp传输层;所述uds协议栈和所述doip传输层建立通信连接,所述dolp传输层将接收到的诊断请求回调给uds协议栈的动态适配层,所述u ds协议栈读取所述诊断请求原始报文,并重组所述诊断请求原始报文,将所述dol p传输层的标识符填写到重组后的诊断请求报文中,并将所述重组后的诊断请求报文发送至所述会话层。
13.本公开第二方面提供一种可动态适配传输层的诊断方法,应用于uds协议栈中,所述uds协议栈包括动态适配层,所述方法包括:
14.接收不同传输层发起的诊断请求,动态的识别当前诊断请求来自的传输层的类型,并将用于表征所述传输层的类型的标识符添加到诊断请求数据结构中;
15.在完成诊断处理后,根据所述传输层的标识符将所述诊断结果发送至对应的传输层。
16.可选的,接收不同传输层发起的诊断请求,动态的识别当前诊断请求来自的传输层的类型,并将用于表征所述传输层的类型的标识符添加到诊断请求数据结构中,包括:
17.接收不同传输层发送的诊断请求原始报文,并重组所述诊断请求原始报文,将所述不同传输层的标识符附加到重组的诊断请求报文。
18.可选的,在完成诊断处理后,根据所述传输层的标识符将所述诊断结果发送至对应的传输层,包括:
19.在完成诊断处理后,根据所述传输层的标识符重组不同传输层的诊断响应原始报文,并调用传输层的发送接口,完成所述重组后的响应报文的传输;其中,重组后的响应报文包括所述诊断响应原始报文和所述传输层的标识符。
20.本公开第三方面提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第二方面所述方法的步骤。
21.本公开第四方面提供一种电子设备,包括:
22.存储器,其上存储有计算机程序;
23.处理器,用于执行所述存储器中的所述计算机程序,以实现第二方面所述方法的步骤。
24.本公开实施例中,通过在uds协议栈中增加动态适配层,针对不同传输层进行动态适配,使得uds协议栈能够适配不同诊断仪,降低研发过程中的成本。
25.本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
26.附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
27.图1是根据一示例性实施例示出的可动态适配传输层的uds协议栈组成架构的示意图;
28.图2是根据一示例性实施例示出的可动态适配传输层的诊断方法的流程示意图。
具体实施方式
29.以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
30.汽车诊断通信过程为诊断仪发送诊断请求,ecu给出诊断响应,uds就是为不同诊断功能和诊断响应定义统一的内容和格式。诊断通信用于建立诊断仪与ecu之间的通信连接,并负责将ecu中的诊断结果输送到诊断仪中。
31.本发明设计了一种可以动态适配传输层的uds协议栈,动态支持多种uds传输层发起的诊断请求,在uds协议栈增加动态适配层,动态的识别当前诊断请求来自于那种uds传输层,并将uds传输层的识别标识添加到诊断请求数据结构中,uds协议栈完成诊断处理后将诊断结果返回给诊断测试仪,发送诊断结果时根据uds传输层的识别id将数据发送给对应的诊断传输层。
32.如图1所示,是根据一示例性实施例示出的可动态适配传输层的uds协议栈组成架构的示意图,包括传输层、传输层动态适配层、会话层和应用层,各组成部分的功能如下。
33.传输层
34.传输层用于把数据转换成能适应不同总线规范的单一数据帧,从而进行传输,常见的是can总线和以太总线,对应的传输协议分别是iso15765和iso13400,不同传输层具有相同的通用结构,定义了三种类型的服务原语,分别为请求服务、指示服务和确认服务。
35.请求服务用于向网络层传递控制报文信息及要发送的数据,应用于更高层或应用层,比如诊断仪向ecu发送数据。
36.指示服务用于向更高层或应用层传递状态信息及接收到的数据,应用于网络层,比如ecu收到了诊断仪的数据,传至应用层。
37.确认服务被网络层使用,用于向更高层或应用层传递状态信息,比如诊断仪收到了ecu返回的数据。
38.传输层收到的指示服务数据发送给uds协议栈的传输动态适配层,将数据报文重组,即将传输层的标识符和原始数据报文结合组成新的指示服务数据报文。
39.传输层动态适配层
40.传输层动态适配层用于接收不同传输层诊断请求,并重组诊断请求的数据报文,将不同传输层的标识符附加到重组的诊断请求报文,将重组的诊断请求报文发送给uds协议栈的会话层,进行下一步的诊断处理,处理完成的诊断请求报文根据传输层的标识符发送给诊断测试仪。
41.会话层
42.会话层接收传输层动态适配层处理后的诊断请求,处理诊断会话、安全访问会话模式控制等。
43.应用层
44.在会话模式和安全访问满足当前的诊断请求时,将诊断请求发送给诊断应用层做进一步的诊断处理,比如数据读取服务请求,应用层完成具体数据项读取,读取数据组包到诊断响应报文返回给动态传输适配层。
45.接下来,以can传输层和doip(diagnostic communication over ip,基于ip的诊断通信协议)传输层为例对本公开实施例中的方案进行说明。
46.can传输层的标准协议规范是iso 15765-2,can传输层用于把数据转换成能适应can总线规范的单一数据帧,从而进行传输;如果将要传输的报文长度超过了can数据帧的长度,则需要将报文信息进行拆分;can传输层既是将iso 15765-2标准规范实现。
47.doip传输层的标准规范协议是iso 13400-2,既在以太网总线之上实现的uds传输层协议规范,doip传输层需要实现doip实体,doip实体的组成包括doip协议栈,该协议栈完成参照iso 13400标准实现,外部诊断设备可以发现、连接和激活doip实体,完成doip实体进行数据传输。
48.本公开实施例中,传输层动态适配层能接收不同uds传输层发送的诊断请求原始报文,且能正确识别解析报文数据,并将传输层的标识符合原始诊断请求数据进行重组。
49.uds协议栈和can传输层建立通信连接,当有诊断请求指示数据时,uds协议栈读取报文数据,uds协议栈读取报文后新构建一个请求报文数据结构,将can传输层的标识符填写到对应的数据元,并将数据进一步传递给uds协议栈的会话层进行处理。
50.uds协议栈和doip传输层建立通信连接,创建doip实体并设置实体的逻辑地址,以便设备诊断仪发现、激活doip实体,诊断仪发送诊断请求,doip传输层将请求回调给uds协议栈的传输层动态适配,uds协议栈读取报文后新构建一个请求报文数据结构,将doip传输层标识符填写到对应的数据元,并将数据传递给uds协议栈的会话层进行处理。
51.uds协议栈完成诊断处理后,会有相应的积极响应或消极响应,构建响应数据结构,响应数据单元包含响应的原始报文和传输层标识符,根据传输层标识符构建不同传输层的响应原始报文,调用传输层的发送接口,完成响应报文的传输。
52.在一种可能的实施方式中,uds协议栈同一时刻只能处理单个诊断请求,由于诊断会话模式是全局唯一的;uds协议栈可以增加诊断并行处理逻辑,从而提高诊断效率。
53.基于同一发明构思,本公开实施例还提供一种可动态适配传输层的诊断方法,应用于uds协议栈中,如图2所示,所述方法包括以下步骤。
54.步骤201,接收不同传输层发起的诊断请求,动态的识别当前诊断请求来自的传输层的类型,并将用于表征所述传输层的类型的标识符添加到诊断请求数据结构中;
55.步骤202,在完成诊断处理后,根据所述传输层的标识符将所述诊断结果发送至对应的传输层。
56.关于上述实施例中的各个步骤,其中各个步骤的具体实施方式已经在有关该uds协议栈的实施例中进行了详细描述,此处将不做详细阐述说明。
57.在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的可动态适配传输层的诊断方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器,上述程序指令可由电子设备的处理器执行以完成上述的可动态适配传输层的诊断方法。
58.在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的可动态适配传输层的诊断方法的代码部分。
59.在另一示例性实施例中,本公开还提供一种电子设备,包括:存储介质,其上存储有计算机程序;处理器,用于执行所述存储介质中的所述计算机程序,以实现上述可动态适配传输层的诊断方法的步骤。
60.以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
61.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
62.此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
技术特征:
1.一种可动态适配传输层的uds协议栈,其特征在于,所述uds协议栈包括动态适配层;所述动态适配层用于接收不同传输层发起的诊断请求,动态的识别当前诊断请求来自的传输层的类型,并将用于表征所述传输层的类型的标识符添加到诊断请求数据结构中;在所述uds协议栈完成诊断处理后,所述动态适配层根据所述传输层的标识符将所述诊断结果发送至对应的传输层。2.如权利要求1所述的uds协议栈,其特征在于,所述动态适配层用于接收不同传输层发送的诊断请求原始报文,并重组所述诊断请求原始报文,将所述不同传输层的标识符附加到重组的诊断请求报文;将重组的诊断请求报文发送至所述uds协议栈的会话层;所述会话层用于接收所述动态适配层重组后的诊断请求报文,在所述重组后的诊断请求报文满足条件时,将所述重组后的诊断请求报文发送至所述uds协议栈的应用层;所述应用层用于根据所述重组后的诊断请求报文,获得诊断响应原始报文,并将所述诊断响应原始报文返回至所述动态适配层;所述动态适配层还用于根据所述传输层的标识符重组不同传输层的诊断响应原始报文,并调用传输层的发送接口,完成重组后的响应报文的传输;其中,重组后的响应报文包括所述诊断响应原始报文和所述传输层的标识符。3.如权利要求2所述的uds协议栈,其特征在于,所述传输层为can传输层;所述uds协议栈和所述can传输层建立通信连接,当所述uds协议栈接收到所述诊断请求原始报文时,所述uds协议栈读取所述诊断请求原始报文,并重组诊断请求原始报文,将所述can传输层的标识符填写到重组后的诊断请求报文中,并将所述重组后的诊断请求报文发送至所述会话层。4.如权利要求2所述的uds协议栈,其特征在于,所述传输层为doip传输层;所述uds协议栈和所述doip传输层建立通信连接,所述doip传输层将接收到的诊断请求回调给uds协议栈的动态适配层,所述uds协议栈读取所述诊断请求原始报文,并重组所述诊断请求原始报文,将所述doip传输层的标识符填写到重组后的诊断请求报文中,并将所述重组后的诊断请求报文发送至所述会话层。5.一种可动态适配传输层的诊断方法,应用于uds协议栈中,其特征在于,所述uds协议栈包括动态适配层,所述方法包括:接收不同传输层发起的诊断请求,动态的识别当前诊断请求来自的传输层的类型,并将用于表征所述传输层的类型的标识符添加到诊断请求数据结构中;在完成诊断处理后,根据所述传输层的标识符将所述诊断结果发送至对应的传输层。6.如权利要求5所述的方法,其特征在于,接收不同传输层发起的诊断请求,动态的识别当前诊断请求来自的传输层的类型,并将用于表征所述传输层的类型的标识符添加到诊断请求数据结构中,包括:接收不同传输层发送的诊断请求原始报文,并重组所述诊断请求原始报文,将所述不同传输层的标识符附加到重组的诊断请求报文。7.如权利要求6所述的方法,其特征在于,在完成诊断处理后,根据所述传输层的标识符将所述诊断结果发送至对应的传输层,包括:在完成诊断处理后,根据所述传输层的标识符重组不同传输层的诊断响应原始报文,并调用传输层的发送接口,完成所述重组后的响应报文的传输;其中,重组后的响应报文包
括所述诊断响应原始报文和所述传输层的标识符。8.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求5-7中任一项所述方法的步骤。9.一种电子设备,其特征在于,包括:存储器,其上存储有计算机程序;处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求5-7中任一项所述方法的步骤。
技术总结
本公开涉及一种可动态适配传输层的UDS协议栈、诊断方法及电子设备,所述UDS协议栈包括动态适配层;所述动态适配层用于接收不同传输层发起的诊断请求,动态的识别当前诊断请求来自的传输层的类型,并将用于表征所述传输层的类型的标识符添加到诊断请求数据结构中;在所述UDS协议栈完成诊断处理后,所述动态适配层根据所述传输层的标识符将所述诊断结果发送至对应的传输层。上述方案用于解决现有技术中存在的,单个诊断设备同时支持多种诊断传输协议导致成本太高的技术问题,通过UDS协议栈针对不同传输层的动态适配,使得UDS协议栈能够适配不同诊断仪,降低研发过程中的成本。降低研发过程中的成本。降低研发过程中的成本。
技术研发人员:请求不公布姓名
受保护的技术使用者:中瓴智行(成都)科技有限公司
技术研发日:2023.04.03
技术公布日:2023/7/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/