
本发明涉及车辆技术领域,公开了一种车辆远程诊断方法、装置、车辆、系统、电子设备及介质,该方法通过设置在跨域多核控制器的第一核中的远程诊断软件模块接收车载联网终端传输的远程诊断请求,将远程诊断请求进行第一格式转换得到远程诊断指令,并发送至诊断协议栈,基于目标逻辑地址将远程诊断指令路由至目标节点,触发目标节点进行诊断,并接收目标节点反馈的诊断反馈消息,反馈给到远程诊断软件模块,进行第二格式转换,再通过车载联网终端进行上传,提供了一种基于跨域多核控制器的中央集中式的整车电子电气架构下的远程诊断功能接入
远程诊断软件模块接收车载联网终端传输的远程诊断请求,将所述远程诊断请求进行
第一格式转换得到远程诊断指令,并发送至诊断协议栈,所述远程诊断软件模块和所述诊
断协议栈设置于跨域多核控制器的第一核中,所述远程诊断请求包括目标逻辑地址和请求
所述诊断协议栈基于所述目标逻辑地址将所述远程诊断指令路由至目标节点,以触发
所述诊断协议栈接收所述目标节点反馈的诊断反馈消息,并发送至远程诊断软件模
所述远程诊断软件模块将接收的所述诊断反馈消息进行第二格式转换,并将第二格式
2.如权利要求1所述的车辆远程诊断方法,其特征在于,所述诊断协议栈基于所述目标
根据所述远程诊断指令的请求类型匹配得到目标诊断管理模块,所述诊断客户端将所
述远程诊断指令发送至所述目标诊断管理模块,以及所述诊断客户端调用所述目标诊断管
通过所述目标诊断管理模块对协议报头和所述远程诊断指令进行封装,得到封装后的
将封装后的远程诊断指令通过所述目标诊断管理模块传输至第一路由模块,以通过所
述第一路由模块基于所述目标逻星空体育科技有限公司辑地址和所述第一路由模块的第一路由表确定目标节点,
并将封装后的远程诊断指令发送至所述目标节点,其中,所述诊断客户端、目标诊断管理模
3.如权利要求2所述的车辆远程诊断方法,其特征在于,根据所述远程诊断指令的请求
根据所述远程诊断指令的请求类型对每一诊断管理模块对应的请求类型进行匹配;
若匹配得到至少一诊断管理模块,将一诊断管理模块确定为所述目标诊断管理模块;
若每一诊断管理模块对应的请求类型与所述远程诊断指令的请求类型均不匹配,根据
所述远程诊断指令的请求类型创建诊断管理模块,并将所述诊断管理模块确定为目标诊断
4.如权利要求2所述的车辆远程诊断方法,其特征在于,所述诊断客户端将所述远程诊
所述诊断客户端将客户端源地址封装入所述远程诊断指令,所述客户端源地址为所述
所述诊断客户端将封装有所述客户端源地址的远程诊断指令发送至所述目标诊断管
5.如权利要求4所述的车辆远程诊断方法,其特征在于,所述诊断协议栈接收所述目标
所述第一路由模块接收所述目标节点发送的诊断反馈报文,并转发至所述目标诊断管
通过所述目标诊断管理模块去除诊断反馈报文中的协议报头,得到诊断反馈消息,并
将所述诊断反馈消息传输至所述诊断客户端,以通过所述诊断客户端将所述诊断反馈消息
6.如权利要求5所述的车辆远程诊断方法,其特征在于,通过所述目标诊断管理模块将
通过所述目标诊断管理模块根据所述诊断反馈消息中的客户端源地址将诊断反馈消
息传输至诊断客户端,所述诊断反馈消息中还包括所述远程诊断指令中的客户端源地址。
7.如权利要求1‑6任一项所述的车辆远程诊断方法,其特征在于,所述诊断协议栈基于
若所述目标节点为第一核,所述诊断协议栈将所述远程诊断指令通过进程间通信传输
8.如权利要求1‑6任一项所述的车辆远程诊断方法,其特征在于,所述诊断协议栈基于
若所述目标节点为第二核,所述诊断协议栈将所述远程诊断指令通过核间通信传输到
9.如权利要求1‑6任一项所述的车辆远程诊断方法,其特征在于,所述诊断协议栈基于
若所述目标节点为第一通信协议节点,所述诊断协议栈的第一路由模块基于所述目标
逻辑地址和所述第一路由模块的第一路由表确定目标节点,将所述远程诊断指令通过第一
10.如权利要求9所述的车辆远程诊断方法,其特征在于,将所述远程诊断指令通过第
通过所述转换节点将所述远程诊断指令通过所述第一通信协议发送至所述目标节点。
11.如权利要求1‑6任一项所述的车辆远程诊断方法,其特征在于,所述诊断协议栈基
若所述目标节点为第二通信协议节点,所述诊断协议栈将所述远程诊断指令通过核间
通信转发至第二核的第二路由模块,所述第二通信协议节点包括第三核和支持第二通信协
通过所述第二路由模块基于所述目标逻辑地址匹配确定所述目标逻辑地址对应的目
标总线标识,根据所述目标总线标识和所述第二路由模块的第二路由表确定目标节点,并
12.如权利要求1‑6任一项所述的车辆远程诊断方法,其特征在于,远程诊断软件模块
所述远程诊断软件模块向车机系统发送内容显示请求,所述内容显示请求包括显示内
所述车机系统基于所述显示内容的显示状态生成显示响应消息,并反馈至所述远程诊
若所述显示状态为显示,所述车机系统显示所述显示内容的显示窗口,并接收基于所
述显示内容的输入指令,基于所述输入指令确定所述显示内容的响应结果,并基于所述响
所述远程诊断软件模块基于接收到的所述结果响应消息生成接收响应消息,并发送至
所述远程诊断软件模块基于接收到的所述结果响应消息确定诊断介入操作,并执行,
所述车机系统接收到所述显示窗口关闭请求,执行窗口关闭动作,执行窗口关闭动作
13.一种车辆远程诊断装置,其特征在于,所述车辆远程诊断装置包括设置于跨域多核
所述远程诊断软件模块,用于接收车载联网终端传输的远程诊断请求,将所述远程诊
断请求进行第一格式转换得到远程诊断指令,并发送至所述诊断协议栈,所述远程诊断请
所述诊断协议栈用于接收所述远程诊断指令,并基于所述目标逻辑地址将所述远程诊
所述诊断协议栈还用于接收所述目标节点反馈的诊断反馈消息,并发送至远程诊断软
所述远程诊断软件模块还用于将接收的所述诊断反馈消息进行第二格式转换,并将第
二格式转换后的诊断反馈消息通过车载联网终端进行上传,以对车辆进行远程诊断。
14.一种车辆,其特征在于,所述车辆包括车载联网终端和跨域多核控制器,所述跨域
多核控制器包括第一核,所述第一核中设置有远程诊断软件模块和诊断协议栈,其中:
所述车载联网终端用于接收远程诊断请求,并将所述远程诊断请求传输到所述远程诊
所述远程诊断软件模块,用于接收远程诊断请求,将所述远程诊断请求进行第一格式
转换得到远程诊断指令,并发送至诊断协议栈,所述远程诊断请求包括目标逻辑地址和请
所述诊断协议栈用于接收所述远程诊断指令,并基于所述目标逻辑地址将所述远程诊
所述诊断协议栈还用于接收所述目标节点反馈的诊断反馈消息,并发送至远程诊断软
所述远程诊断软件模块还用于将接收的所述诊断反馈消息进行第二格式转换,并将第
所述车载联网终端还用于将接收的第二格式转换后的诊断反馈消息进行上传,以对车
15.一种车辆远程诊断系统,其特征在于,所述车辆远程诊断系统包括云端、远程诊断
所述车辆用于接收所述远程诊断后台和用户端中至少之一通过所述云端下发的远程
诊断请求,和/或用于将第二格式转换后的诊断反馈消息通过所述云端发送至所述远程诊
所述云端用于传输所述远程诊断请求至所述车辆,和/或用于传输第二格式转换后的
所述远程诊断后台用于以下至少之一,通过所述云端向所述车辆下发所述远程诊断请
求,接收所述车辆通过所述云端发送的第二格式转换后的诊断反馈消息,接收所述用户端
传输的所述远程诊断请求并通过所述云端向所述车辆下发所述远程诊断请求,接收所述车
所述用户端用于以下至少之一,向所述远程诊断后台发送所述远程诊断请求,接收所
16.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上
运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至12
17.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在
于,所述计算机程序被处理器执行时实现如权利要求1至12任一项所述的方法。
[0001]本发明涉及车辆技术领域,尤其涉及一种车辆远程诊断方法、装置、车辆、系统、电
[0002]汽车诊断一直是车载网络中必不可少的功能之一。常见的传统诊断方式是用专用
[0003]但该诊断方式需要专业技术人员持有特定的设备通过有线连接对实车进行现场
诊断。要么需要故障车辆通过转运等方式转移到指定地点,再由专业人员进行检测,要么需
要专业人员携带专业设备上门检测,不论是上述何种方式,诊断的效率较低,成本较高。随
着近年来随着互联网云技术在汽车领域的渗透,开发者和售后服务人员已不满足这种有线
的本地诊断方式。在当前中央集中式的整车电子电气架构下,如何打通云端与车端的诊断
[0004]本发明提供一种车辆远程诊断方法、装置、车辆、系统、电子设备及介质,以解决相
关技术中在当前中央集中式的整车电子电气架构下,如何打通云端与车端的诊断链路的技
[0005]本发明实施例提供了一种车辆远程诊断方法,所述车辆远程诊断方法包括:远程
诊断软件模块接收车载联网终端传输的远程诊断请求,将所述远程诊断请求进行第一格式
转换得到远程诊断指令,并发送至诊断协议栈,所述远程诊断软件模块和所述诊断协议栈
设置于跨域多核控制器的第一核中,所述远程诊断请求包括目标逻辑地址和请求内容;所
述诊断协议栈基于所述目标逻辑地址将所述远程诊断指令路由至目标节点,以触发所述目
标节点基于所述请求内容进行诊断;所述诊断协议栈接收所述目标节点反馈的诊断反馈消
息,并发送至远程诊断软件模块,所述诊断反馈消息基于所述目标节点的诊断结果生成;所
述远程诊断软件模块将接收的所述诊断反馈消息进行第二格式转换,并将第二格式转换后
[0006]于本发明一实施例中,所述诊断协议栈基于所述目标逻辑地址将所述远程诊断指
令路由至目标节点,包括:通过所述诊断协议栈中的诊断客户端接收所述远程诊断指令;根
据所述远程诊断指令的请求类型匹配得到目标诊断管理模块,所述诊断客户端将所述远程
诊断指令发送至所述目标诊断管理模块,以及所述诊断客户端调用所述目标诊断管理模块
的组件发起诊断服务,所述请求类型基于所述请求内容得到;通过所述目标诊断管理模块
对协议报头和所述远程诊断指令进行封装,得到封装后的远程诊断指令,所述协议报头基
于所述远程诊断指令的请求类型确定;将封装后的远程诊断指令通过所述目标诊断管理模
块传输至第一路由模块,以通过所述第一路由模块基于所述目标逻辑地址和所述第一路由
模块的第一路由表确定目标节点,并将封装后的远程诊断指令发送至所述目标节点,其中,
[0007]于本发明一实施例中,根据所述远程诊断指令的请求类型匹配得到目标诊断管理
模块,包括:根据所述远程诊断指令的请求类型对每一诊断管理模块对应的请求类型进行
匹配;若匹配得到至少一诊断管理模块,将一诊断管理模块确定为所述目标诊断管理模块;
若每一诊断管理模块对应的请求类型与所述远程诊断指令的请求类型均不匹配,根据所述
远程诊断指令的请求类型创建诊断管理模块,并将所述诊断管理模块确定为目标诊断管理
[0008]于本发明一实施例中,所述诊断客户端将所述远程诊断指令发送至所述目标诊断
管理模块,包括:所述诊断客户端将客户端源地址封装入所述远程诊断指令,所述客户端源
地址为所述诊断客户端的地址;所述诊断客户端将封装有所述客户端源地址的远程诊断指
[0009]于本发明一实施例中,所述诊断协议栈接收所述目标节点反馈的诊断反馈消息,
包括:所述第一路由模块接收所述目标节点发送的诊断反馈报文,并转发至所述目标诊断
管理模块,所述诊断反馈报文包括诊断反馈消息和协议报头;通过所述目标诊断管理模块
去除诊断反馈报文中的协议报头,得到诊断反馈消息,并将所述诊断反馈消息传输至所述
诊断客户端,以通过所述诊断客户端将所述诊断反馈消息发送至远程诊断软件模块。
[0010]于本发明一实施例中,通过所述目标诊断管理模块将所述诊断反馈消息传输至所
述诊断客户端,包括:通过所述目标诊断管理模块根据所述诊断反馈消息中的客户端源地
址将诊断反馈消息传输至诊断客户端,所述诊断反馈消息中还包括所述远程诊断指令中的
[0011]于本发明一实施例中,所述诊断协议栈基于所述目标逻辑地址将所述远程诊断指
令路由至目标节点,包括:所述诊断协议栈基于所述目标逻辑地址确定目标节点;若所述目
标节点为第一核,所述诊断协议栈将所述远程诊断指令通过进程间通信传输到第一核诊断
[0012]于本发明一实施例中,所述诊断协议栈基于所述目标逻辑地址将所述远程诊断指
令路由至目标节点,包括:所述诊断协议栈基于所述目标逻辑地址确定目标节点;若所述目
标节点为第二核,所述诊断协议栈将所述远程诊断指令通过核间通信传输到第二核诊断应
[0013]于本发明一实施例中,所述诊断协议栈基于所述目标逻辑地址将所述远程诊断指
令路由至目标节点,包括:所述诊断协议栈基于所述目标逻辑地址确定目标节点;若所述目
标节点为第一通信协议节点,所述诊断协议栈的第一路由模块基于所述目标逻辑地址和所
述第一路由模块的第一路由表确定目标节点,将所述远程诊断指令通过第一通信协议发送
[0014]于本发明一实施例中,将所述远程诊断指令通过第一通信协议发送至所述目标节
点,包括:所述诊断协议栈将所述远程诊断指令发送至转换节点;通过所述转换节点将所述
[0015]于本发明一实施例中,所述诊断协议栈基于所述目标逻辑地址将所述远程诊断指
令路由至目标节点,包括:所述诊断协议栈基于所述目标逻辑地址确定目标节点;若所述目
标节点为第二通信协议节点,所述诊断协议栈将所述远程诊断指令通过核间通信转发至第
二核的第二路由模块,所述第二通信协议节点包括第三核和支持第二通信协议的控制器中
至少之一,所述第二核和第三核设置于所述跨域多核控制器;通过所述第二路由模块基于
所述目标逻辑地址匹配确定所述目标逻辑地址对应的目标总线标识,根据所述目标总线标
识和所述第二路由模块的第二路由表确定目标节点,并将所述远程诊断指令发送至所述目
[0016]于本发明一实施例中,远程诊断软件模块接收车载联网终端传输的远程诊断指令
之后,所述车辆远程诊断方法还包括:所述远程诊断软件模块向车机系统发送内容显示请
求,所述内容显示请求包括显示内容;所述车机系统基于所述显示内容的显示状态生成显
示响应消息,并反馈至所述远程诊断软件模块;若所述显示状态为显示,所述车机系统显示
所述显示内容的显示窗口,并接收基于所述显示内容的输入指令,基于所述输入指令确定
所述显示内容的响应结果,并基于所述响应结果生成结果响应消息,并反馈至所述远程诊
断软件模块;所述远程诊断软件模块基于接收到的所述结果响应消息生成接收响应消息,
并发送至所述车机系统;所述远程诊断软件模块基于接收到的所述结果响应消息确定诊断
介入操作,并执行,执行诊断介入操作完成后生成显示窗口关闭请求,发送至所述车机系
统;所述车机系统接收到所述显示窗口关闭请求,执行窗口关闭动作,执行窗口关闭动作完
[0017]本发明实施例还提供了一种车辆远程诊断装置,所述车辆远程诊断装置包括设置
于跨域多核控制器的第一核中的远程诊断软件模块和诊断协议栈,其中:所述远程诊断软
件模块,用于接收车载联网终端传输的远程诊断请求,将所述远程诊断请求进行第一格式
转换得到远程诊断指令,并发送至所述诊断协议栈,所述远程诊断请求包括目标逻辑地址
和请求内容;所述诊断协议栈用于接收所述远程诊断指令,并基于所述目标逻辑地址将所
述远程诊断指令路由至目标节点,以触发所述目标节点基于所述请求内容进行诊断;所述
诊断协议栈还用于接收所述目标节点反馈的诊断反馈消息,并发送至远程诊断软件模块,
所述诊断反馈消息基于所述目标节点的诊断结果生成;所述远程诊断软件模块还用于将接
收的所述诊断反馈消息进行第二格式转换,并将第二格式转换后的诊断反馈消息通过车载
[0018]本发明实施例还提供了一种车辆,所述车辆包括车载联网终端和跨域多核控制
器,所述跨域多核控制器包括第一核,所述第一核中设置有远程诊断软件模块和诊断协议
栈,其中:所述车载联网终端用于接收远程诊断请求,并将所述远程诊断请求传输到所述远
程诊断软件模块;所述远程诊断软件模块,用于接收远程诊断请求,将所述远程诊断请求进
行第一格式转换得到远程诊断指令,并发送至诊断协议栈,所述远程诊断请求包括目标逻
辑地址和请求内容;所述诊断协议栈用于接收所述远程诊断指令,并基于所述目标逻辑地
址将所述远程诊断指令路由至目标节点,以触发所述目标节点基于所述请求内容进行诊
断;所述诊断协议栈还用于接收所述目标节点反馈的诊断反馈消息,并发送至远程诊断软
件模块,所述诊断反馈消息基于所述目标节点的诊断结果生成;所述远程诊断软件模块还
用于将接收的所述诊断反馈消息进行第二格式转换,并将第二格式转换后的诊断反馈消息
发送到所述车载联网终端;所述车载联网终端还用于将接收的第二格式转换后的诊断反馈
[0019]本发明实施例还提供了一种车辆远程诊断系统,所述车辆远程诊断系统包括云
端、远程诊断后台、用户端和上述实施例所述的车辆;所述车辆用于接收所述远程诊断后台
和用户端中至少之一通过所述云端下发的远程诊断请求,和/或用于将第二格式转换后的
诊断反馈消息通过所述云端发送至所述远程诊断后台和用户端中至少之一;所述云端用于
传输所述远程诊断请求至所述车辆,和/或用于传输第二格式转换后的诊断反馈消息至所
述远程诊断后台;所述远程诊断后台用于以下至少之一,通过所述云端向所述车辆下发所
述远程诊断请求,接收所述车辆通过所述云端发送的第二格式转换后的诊断反馈消息,接
收所述用户端传输的所述远程诊断请求并通过所述云端向所述车辆下发所述远程诊断请
求,接收所述车辆通过所述云端发送的第二格式转换后的诊断反馈消息并发送至所述用户
端;所述用户端用于以下至少之一,向所述远程诊断后台发送所述远程诊断请求,接收所述
[0020]本发明实施例还提供了一种电子设备,包括存储器、处理器以及存储在所述存储
器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上
[0021]本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计
[0022]上述提供的车辆远程诊断方法、装置、车辆、系统、电子设备及介质所实现的方案
中,该方法通过设置在跨域多核控制器的第一核中的远程诊断软件模块接收车载联网终端
传输的远程诊断请求,将远程诊断请求进行第一格式转换得到远程诊断指令,并发送至诊
断协议栈,通过诊断协议栈基于目标逻辑地址将远程诊断指令路由至目标节点,触发目标
节点进行诊断,并接收目标节点反馈的诊断反馈消息,反馈给到远程诊断软件模块,通过远
程诊断软件模块将接收的诊断反馈消息进行第二格式转换,并将第二格式转换后的诊断反
馈消息通过车载联网终端进行上传,以对车辆进行远程诊断,提供了一种基于跨域多核控
制器的中央集中式的整车电子电气架构下的远程诊断功能接入车端的方式,打通了云端与
[0023]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所
需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图
[0026]图3为本发明实施例提供的车辆远程诊断方法的一个具体的流程示意图;
[0027]图4为本发明实施例提供的车辆远程诊断方法的另一个具体的流程示意图;
[0031]图8为本发明实施例提供的车辆远程诊断系统的一个具体的结构示意图;
[0034]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完
整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发
明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施
[0035]请参阅图1所示,图1为本发明实施例提供的车辆远程诊断方法的一个流程示意
[0036]步骤S110,远程诊断软件模块接收车载联网终端传输的远程诊断请求,将远程诊
[0037]其中,远程诊断软件模块和诊断协议栈设置于跨域多核控制器(或跨域多核网关
[0038]在一实施例中,目标逻辑地址表征所需要诊断的目标节点的逻辑地址,请求内容
表征需要执行的诊断的具体内容,可以是具体的诊断策略,或者某一诊断策略所预先配置
的诊断代码,或者其他本领域技术人员所设置的内容。例如该请求内容可以用于指示目标
节点执行相关诊断步骤,或者用于触发目标节点执行相关诊断的操作,或者该远程诊断请
求与本领域技术人员所知晓的诊断报文的内容相同,区别在于该远程诊断请求是通过云端
[0039]随着整车电子电气结构的迭代升级变得愈发的复杂化,中央集中架构中的网关控
制器产品从传统的MCU演变成MPU(+MCU,再升级为“中央计算平台”,即跨域多核控制器(跨
域多核网关控制器)。该跨域多核控制器可以为中央网关控制器。例如,该跨域多核控制器
可以包括A核和R核,又例如,该跨域多核控制器可以包括A核、R核和M核。其中R核、M核的数
量可以为一个或多个。以第一核为A核,第二核为R核和/或M核为例,在A核中设置有远程诊
断软件模块和诊断协议栈,诊断协议栈中设置有诊断客户端、诊断管理模块和第一路由模
[0040]若需要对车辆进行诊断,往往需要专用的诊断仪器与车辆进行有线连接的方式以
进行本地诊断,从云端后台实现对车辆本地诊断信息的获取,这种被称作为“云诊断”或者
“远程诊断”的诊断方式,其中云端的开发技术可以采用本领域技术人员所知晓的方式进行
开发,但是云诊断通信链路并不能直接和当前常用的车端诊断通信链路简单对接,特别是
针对中央集中式的整车电子电气架构下,需要提供一种安全有效的方式来打通云端与车端
[0041]当前汽车诊断在车端接入主节点或称作“边缘节点”一般都是网关控制器,诊断的
通信协议栈一般也是部署在网关控制器中,对于跨域多核的中央网关也一般是部署在其中
的网关核。但是考虑到中央网关产品或中央计算平台产品的设计定位是车载计算单元,而
接入车端,需要引入通信的中间节点。根据当前市场的产品矩阵一般选用车载T‑Box,其搭
载的无线通信模块可以将数据流上传至诊断云端,从而实现和无线电子设备(如手机、电脑
等)的交互。基于以上原因,车载联网终端可以选用车载T‑Box等搭载有无线页
[0042]云端下发远程诊断请求的方式可以是通过4G/5G等移动网络发送,也可以是通过
WiFi等无线网络发送,或者通过蓝牙、NFC等通信方式发送,在此不做限定。只要云端下发远
[0043]由于云诊断下发到车端的远程诊断请求一般为json等格式,然后当前车端标准的
诊断报文格式一般基于UDS协议,所以A核(第一核)的云诊断应用(远程诊断软件模块)接收
到云端下行数据(远程诊断请求)后,需要再做数据第一格式转换,再将传递到诊断应用,反
之上行数据(诊断反馈消息)也需要进行第二格式转换(第一格式转换的逆过程),以便上传
到云端。为此,可以对远程诊断请求进行第一格式转换,以使得该远程诊断请求能够满足后
续诊断报文下发的需求。也即,在远程诊断软件模块接收车载联网终端传输的远程诊断请
求后,会通过格式转换模块对远程诊断请求进行第一格式转换得到远程诊断指令,再将远
程诊断指令发送至诊断协议栈,这样可以由云端下发的远程诊断请求的初始格式转换为车
端支持的诊断报文的车端格式,也即由初始格式转换为车端格式,例如可以将json格式的
远程诊断请求转换为UDS协议的远程诊断指令。需要说明的是远程诊断指令中仍然包括目
标逻辑地址和请求内容,其信息内容并没有改变。相应的,后续目标节点反馈的诊断反馈消
息也是车端格式(UDS协议),因此,远程诊断软件模块将接收的诊断反馈消息进行第二格式
[0044]转换节点在一实施例中,远程诊断软件模块接收车载联网终端传输的远程诊断请
求之前,该方法还包括:车载联网终端接收远程诊断请求并将该远程诊断请求传输至远程
[0045]在一示例性的实施例中,云端向车端下发远程诊断请求时可以采用https等本领
域技术人员所需要的通信协议,车载联网终端将远程诊断请求发送至远程诊断软件模块,
或车载联网终端将远程诊断请求经转换节点发送至远程诊断软件模块,基于车载以太网的
架构,车载联网终端与网关控制器(跨域多核控制器中的A核)中间的通信方式可以采用通
信中间件SOME/IP协议等本领域技术人员所选择的通信协议。对于跨域多核的网关产品,使
设计专门处理云诊断交互数据的进程或应用,来收发云端下行的数据(也即远程诊断请求)
和本地诊断的上行数据(也即诊断反馈消息)。该专门处理云诊断交互数据的进程或应用可
[0046]为解决云端下发数据给到车端的通信协议与车端内部的通信协议不一致的问题,
远程诊断软件模块接收车载联网终端传输的远程诊断请求之前,该方法还包括:车载联网
终端接收远程诊断请求,对远程诊断请求进行第一传输协议转换;将第一传输协议转换后
的远程诊断请求发送至远程诊断软件模块。这样可以通过车载联网终端(如T‑BOX)对云端
到车端的远程诊断请求转换为满足车端内部通信协议的数据,也可以将车端反馈的满足车
端内部通信协议的诊断反馈消息转换为满足云端需要的通信协议的数据。例如,云端下发
远程诊断请求时采用https等方式,通过车载联网终端接收后,转换为通信中间件SOME/IP
协议的数据,再发送给到远程诊断软件模块。相应的,远程诊断软件模块接收到的诊断反馈
消息通过通信中间件SOME/IP协议发送给到车载联网终端,由该车载联网终端通过https方
[0047]在本实施例中,车载联网终端接收远程诊断请求之后,将该远程诊断请求发送至
设置于跨域多核网关控制器的第一核中的远程诊断软件模块,该远程诊断软件模块可以利
用车端已经部署的诊断软件模块,这样可以减少开发难度和开发成本,大幅缩短研发周期。
当然,该远程诊断软件模块也可以是为实现本实施例提供的车辆远程诊断方法所单独开发
Protocol,基于以太网的诊断通信)诊断的车端一般会在第一核已经部署了诊断应用,所以
当云诊断作为新增的诊断源,也需要将其接入到已有的诊断应用(也即远程诊断软件模块)
[0049]远程诊断软件模块接收远程诊断请求后,发送至诊断协议栈,诊断协议栈设置于
跨域多核网关控制器的第一核中,该诊断协议栈也可以利用车端已部署的诊断协议栈,这
[0050]通过上述方式,能够成功的将云端所要下发的远程诊断请求接入到车辆。
[0051]步骤S120,诊断协议栈基于目标逻辑地址将远程诊断指令路由至目标节点,以触
[0052]在一实施例中,诊断协议栈基于目标逻辑地址将远程诊断指令路由至目标节点,
包括:通过诊断协议栈中的诊断客户端接收远程诊断指令;根据远程诊断指令的请求类型
匹配得到目标诊断管理模块,诊断客户端将远程诊断指令发送至目标诊断管理模块,以及
诊断客户端调用目标诊断管理模块的组件发起诊断服务;通过目标诊断管理模块对协议报
头和远程诊断指令进行封装,得到封装后的远程诊断指令,协议报头基于远程诊断指令的
请求类型确定;将封装后的远程诊断指令通过目标诊断管理模块传输至第一路由模块,以
通过第一路由模块基于目标逻辑地址和第一路由模块的第一路由表确定目标节点,并将封
装后的远程诊断指令发送至目标节点,其中,诊断客户端、目标诊断管理模块和第一路由模
块设置于诊断协议栈中,请求类型基于请求内容得到,请求类型包括但不限于以下至少之
[0053]在本实施例中,诊断客户端将远程诊断指令发送至目标诊断管理模块,包括:诊断
客户端将客户端源地址封装入远程诊断指令,客户端源地址为诊断客户端的地址;诊断客
户端将封装有客户端源地址的远程诊断指令发送至目标诊断管理模块。这样可以通过客户
端源地址区别每一个远程诊断指令是由哪一个诊断客户端发出的,后续目标节点接收到远
程诊断指令后,也可以继承其中的协议报头、客户端源地址和目标逻辑地址,增加诊断结果
生成诊断反馈报文,以通过客户端源地址指示该诊断反馈报文返回给诊断客户端。
[0054]在本实施例中,根据远程诊断指令的请求类型匹配得到目标诊断管理模块,包括:
根据远程诊断指令的请求类型对每一诊断管理模块对应的请求类型进行匹配;若匹配得到
至少一诊断管理模块,将一诊断管理模块确定为目标诊断管理模块;若每一诊断管理模块
对应的请求类型与远程诊断指令的请求类型均不匹配,根据远程诊断指令的请求类型创建
诊断管理模块,并将诊断管理模块确定为目标诊断管理模块。也即,当第一次得到某一请求
类型的远程诊断指令时,可以创建诊断管理模块,后续再得到该请求类型的远程诊断指令
时,若该诊断管理模块空闲,可以直接选用诊断管理模块,若诊断管理模块占用,也可以再
次创建另一个诊断管理模块。这样,诊断客户端拆解得到的远程诊断指令,先匹配尝试找到
[0055]例如,诊断客户端可以用于接收远程诊断请求,其可以同时接收多个远程诊断请
求,将每一个远程诊断请求进行第一格式转换,得到远程诊断指令,一个远程诊断请求可以
包括对多个目标节点的诊断需求,也可以是对一个目标节点的多个诊断事件,因此,可以基
于一个远程诊断请求第一格式转换,得到一个或多个远程诊断指令。每一个远程诊断指令
都会基于其所对应的请求内容配置有一个请求类型,该请求类型可以是直接记载在请求内
容中的,也可以是基于请求内容按照预设的规则匹配得到的。可以在诊断协议栈接收到第
一个远程诊断请求就创建诊断客户端,也可预先创建好诊断客户端以用来接收远程诊断请
求。诊断客户端将远程诊断请求进行第一格式转换得到远程诊断指令,确定每一个远程诊
断指令请求类型,然后基于远程诊断指令的请求类型会对现有的诊断管理模块对应的请求
类型进行匹配,若匹配到一个或多个诊断管理模块对应的请求类型与远程诊断指令的请求
类型相同,则将其中一个诊断管理模块作为目标诊断管理模块,若全部的诊断管理模块对
应的请求类型与远程诊断指令的请求类型均不相同,则可以创建一个该远程诊断指令的请
求类型对应的诊断管理模块作为目标诊断管理模块,每一个诊断管理模块均设置有一个固
定的协议报头,该协议包头基于远程诊断指令的请求类型确定。由诊断客户端将远程诊断
指令发送至目标诊断管理模块,通过该目标诊断管理模块对远程诊断指令加装该请求类型
对应的协议报头,得到封装后的远程诊断指令,再传输至第一路由模块,以通过第一路由模
块基于目标逻辑地址和第一路由表确定目标节点,并将远程诊断请求发送至目标节点,该
第一路由表为第一路由模块自身维护的路由表。在一实施例中,诊断协议栈基于目标逻辑
地址将远程诊断指令路由至目标节点,包括:诊断协议栈基于目标逻辑地址确定目标节点;
若目标节点为第一核,诊断协议栈将远程诊断指令通过进程间通信传输到第一核诊断应用
[0056]例如,以A核为第一核为例,如果目标节点是跨域多核控制器自身的A核,可以直接
[0057]在另一实施例中,诊断协议栈基于目标逻辑地址将远程诊断指令路由至目标节
点,包括:诊断协议栈基于目标逻辑地址确定目标节点;若目标节点为第二核,诊断协议栈
将远程诊断指令通过核间通信传输到第二核诊断应用模块,第二核设置于跨域多核控制
器。例如,A核为第一核,一个R核为第二核,若目标节点为R核,可以通过核间通信将远程诊
断指令传输给到R核。在另一实施例中,诊断协议栈基于目标逻辑地址将远程诊断指令路由
至目标节点,包括:诊断协议栈基于目标逻辑地址确定目标节点;若目标节点为第一通信协
议节点,诊断协议栈的第一路由模块基于目标逻辑地址和第一路由模块的第一路由表确定
[0058]在一实施例中,将远程诊断请求通过第一通信协议发送至目标节点,包括:诊断协
议栈将远程诊断指令发送至转换节点,通过转换节点将远程诊断指令通过第一通信协议发
[0059]例如,第一通信协议节点可以为支持DoIP协议栈的各车载以太网节点。对该第一
通信协议节点可以预先定义唯一的逻辑地址,第一路由模块解析远程诊断指令得到目标逻
辑地址,通过查询第一路由表的方式确定该远程诊断指令的发送对象(目标节点),通过以
太网传输至该节点。由于诊断协议栈与第一通信协议节点可能不能直接通信,此时可以借
助于转换节点,通过诊断协议栈将远程诊断指令发送至转换节点,再由转换节点将远程诊
[0060]在一实施例中,诊断协议栈基于目标逻辑地址将远程诊断指令路由至目标节点,
包括:诊断协议栈基于目标逻辑地址确定目标节点;若目标节点为第二通信协议节点,诊断
协议栈将远程诊断指令通过核间通信转发至第二核的第二路由模块,第二核设置于跨域多
核控制器;通过第二路由模块基于目标逻辑地址匹配确定目标逻辑地址对应的目标总线标
识,根据目标总线标识和第二路由模块的第二路由表确定目标节点,并将远程诊断指令发
送至目标节点。其中,第二通信协议节点包括第三核和支持第二通信协议的控制器中至少
之一,第三核也设置于跨域多核控制器。该第三核为跨域多核控制器中除第一核和第二核
之外的其他的核,例如,跨域多核控制器中设置有一个A核、多个R核,则可以将A核作为第一
核,其中一个R核作为第二核,其他的R核作为第三核。本实施例中,第三核与第一核之间的
[0061]例如,第二通信协议节点包括支持传统CAN诊断的控制器和跨域多核控制器中支
持CAN诊断的其他核(第三核),此时,由于中央网关控制器的CAN诊断路由主节点通常不在A
核(第一核),而是部署在某一个R核(第二核),所以针对这种情况,需要DoIP
诊断指令先通过核间通信转发给R核,R核的诊断路由节点(第二路由模块)通过目标逻辑地
址TA和CANID(总线标识)的对应关系矩阵,查表识别出CANID(目标总线标识),再路由到相
应目标节点,即待诊断的车载控制器(包括中央网关控制器中各个仅支持CAN诊断的其他第
[0062]在本实施例中,若目标节点为第三核,诊断协议栈将远程诊断指令通过核间通信
转发至第二核的第二路由模块,通过第二路由模块基于目标逻辑地址确定目标第三核,将
远程诊断指令发送至目标第三核的第三核诊断应用模块,第三核设置于跨域多核控制器,
[0063]在另一实施例中,若第二通信协议节点为支持CAN诊断的其他核(第三核,设置于
跨域多核控制器中除第一核和第二核外的其他的R核或M核),也即若第二通信协议节点为
第三核,诊断协议栈将远程诊断指令通过核间通信转发至第三核的第三核诊断应用模块
(如R核诊断应用(DM)模块)。该方式与上述实施例中的第三核通信方式不同的是,不需要借
助第二核中的第二路由模块来进行信息交互,直接通过第一核与第三核之间的核间通信完
成远程诊断指令的传输。通过上述方式实现了针对不同节点的远程诊断指令的转发。
[0064]步骤S130,诊断协议栈接收目标节点反馈的诊断反馈消息,并发送至远程诊断软
[0066]在一实施例中,诊断协议栈接收目标节点反馈的诊断反馈消息,包括:第一路由模
块接收目标节点发送的诊断反馈报文,并转发至目标诊断管理模块,诊断反馈报文包括诊
断反馈消息和协议报头;通过目标诊断管理模块去除诊断反馈报文中的协议报头,得到诊
断反馈消息,并将诊断反馈消息传输至诊断客户端,以通过诊断客户端将诊断反馈消息发
[0067]在本实施例中,基于上述诊断客户端将客户端源地址添加到远程诊断指令的方
案,通过目标诊断管理模块将诊断反馈消息传输至诊断客户端,包括:通过目标诊断管理模
块根据诊断反馈消息中的客户端源地址将诊断反馈消息传输至诊断客户端,诊断反馈消息
中还包括远程诊断指令中的客户端源地址。基于客户端源地址能够准确地将诊断反馈消息
[0068]其中,目标节点接收到的远程诊断指令中包括协议报头、请求内容、目标逻辑地址
和客户端源地址,目标节点执行诊断操作后,基于协议报头、诊断结果、目标逻辑地址和客
户端源地址生成诊断反馈报文,将该诊断反馈报文发送至第一路由模块,第一路由模块将
该诊断反馈报文传输至上述目标诊断管理模块,目标诊断管理模块将其中的协议报头去
除,基于剩余的诊断结果、目标逻辑地址和客户端源地址作为诊断反馈消息,基于客户端源
[0069]步骤S140,远程诊断软件模块将接收的诊断反馈消息进行第二格式转换,并将第
二格式转换后的诊断反馈消息通过车载联网终端进行上传,以对车辆进行远程诊断。
[0070]在一实施例中,远程诊断软件模块将接收的诊断反馈消息进行第二格式转换,并
将第二格式转换后的诊断反馈消息通过车载联网终端进行上传,包括:远程诊断软件模块
将接收的诊断反馈消息进行第二格式转换,并将第二格式转换后的诊断反馈消息发送至转
换节点;经过转换节点对第二格式转换后的诊断反馈消息发送至车载联网终端,以通过车
载联网终端对第二格式转换后的诊断反馈消息进行第二传输协议转换并进行上传。如上述
实施例中提到的,由于云端到车载联网终端采用的格式A(如json格式等)与车载联网终端
到中央网关控制器(跨域多核控制器),以及车端内部通信时采用的格式B(基于UDS协议的
报文)不同,因此,在车载联网终端下发远程诊断请求时,需要通过远程诊断软件模块对远
程诊断请求进行第一格式转换,将格式A的远程诊断请求转换为格式B的远程诊断指令,以
便A核能够成功接收识别。在诊断反馈消息上传时,远程诊断软件模块需要将格式B的诊断
反馈消息进行第二格式转换,转为格式A的诊断反馈消息再上传到云端。可见第一格式转换
[0071]如上述实施例中提到的,目标节点接收到的远程诊断指令中包括协议报头、请求
内容、目标逻辑地址和客户端源地址,目标节点执行诊断操作后,基于协议报头、诊断结果、
目标逻辑地址和客户端源地址生成诊断反馈报文,通过目标诊断管理模块去除协议报头
后,基于剩余的诊断结果、目标逻辑地址和客户端源地址作为诊断反馈消息传输至诊断客
户端。此时可以通过对诊断反馈消息进行解析,得到客户端源地址,该源地址表征诊断客户
[0072]在一实施例中,远程诊断软件模块接收车载联网终端传输的远程诊断请求之后,
车辆远程诊断方法还包括:远程诊断软件模块向车机系统发送内容显示请求,内容显示请
求包括显示内容;车机系统基于显示内容的显示状态生成显示响应消息,并反馈至远程诊
断软件模块;若显示状态为显示,车机系统对显示内容的显示窗口,并接收基于显示内容的
输入指令,基于输入指令确定显示内容的响应结果,并基于响应结果生成结果响应消息,并
反馈至远程诊断软件模块;远程诊断软件模块基于接收到的结果响应消息生成接收响应消
息,并发送至车机系统;远程诊断软件模块基于接收到的结果响应消息确定诊断介入操作,
并执行,执行诊断介入操作完成后生成显示窗口关闭请求,发送至车机系统;车机系统接收
到显示窗口关闭请求,执行窗口关闭动作,执行窗口关闭动作完成后生成显示窗口关闭响
[0073]由于在远程诊断执行开始时、执行远程诊断过程中会需要驾驶相关的控制器做某
些参数的写入,或需要对其静默处理、执行远程诊断时有其他诊断源接入等,需要用户关闭
某些正在使用的功能或停车后进行确认,或者需要获得用户的准许,或者需要告知用户。请
参见图2,图2为一种示例的人机交互通信示意图,如图2所示,在远程诊断执行开始时、执行
求),该内容显示请求包括显示内容,显示内容可以是要求用户(具有车机操作权限的人员)
执行配合操作(如停车、关闭某些应用等),该显示内容可以基于远程诊断请求(远程诊断指
令)来确定,某些远程诊断请求预先配置有对应的配合操作,在诊断执行过程中,或者诊断
执行开始前就向用户提示相应的要求。车机系统接收到该内容显示请求,会检查弹出条件
(可以由本领域技术人员根据需要预设,在此不作限定),若满足弹出条件,则显示状态为显
示,车机系统显示显示内容的显示窗口,若不满足弹出条件,则显示状态为不显示,车机系
统不显示显示内容的显示窗口。车机系统基于显示内容的显示状态生成显示响应消息(也
即图2中的从上到下的第一响应),并反馈至远程诊断软件模块。对于显示窗口的显示内容
会引导用户进行用户输入,也即车机系统可以接收基于显示内容的输入指令,例如,对于要
求用户停用某些应用,则可以显示是否停车完成的按钮,基于用户选择的按钮确定当前是
否停止某些应用,也可以基于车系系统应用的终止情况来确定输入指令。对于显示内容为
询问是否可以进行远程诊断的问询,可以基于用户选择的允许还是不允许的按钮来确定输
入指令。用户输入后,基于输入指令确定显示内容的响应结果,基于响应结果生成结果响应
消息(也即图2中的窗体事件),并反馈至远程诊断软件模块。远程诊断软件模块接收到结果
响应消息会反馈一个接收响应消息(也即图2中的第二响应),以证明其接收到了该结果响
应消息。远程诊断软件模块基于接收到的结果响应消息确定诊断介入操作,并执行,该诊断
介入操作可以是停止诊断、启动诊断、对驾驶相关的控制器做某些参数的写入、对预设的其
他诊断源进行接入、对某些控制器进行静默处理等,当执行诊断介入操作完成后生成显示
窗口关闭请求(也即图2中的关闭对话框请求),发送至车机系统,车机执行窗口关闭,对显
示窗口进行关闭,并在关闭完成后生成显示窗口关闭响应消息(第三响应),发送至远程诊
机系统)车机的中控屏上以弹窗形式与终端用户交互,例如远程诊断执行开始时、执行远程
诊断过程中有对驾驶相关的控制器做某些参数的写入,或需要对其静默处理、执行远程诊
断时有其他诊断源接入等情况时,诊断文件中会加入触发弹出对话框请求的指令,并通过
断请求)中解析到相应的指令后,向车机转发,以推送人机交互的任务,车机在弹出条件满
足时,回复正响应,并检测用户输入值。用户输入后生成窗体事件(一般为判断是否继续诊
断)回复给远程诊断应用,根据其具体指示,远程诊断应用做出响应并请求关闭对线为本发明实施例提供的车辆远程诊断方法的一个具体的流程示意
图,如图3所示,设置在跨域多核控制器的第一核中的远程诊断软件模块将远程诊断指令发
送至诊断协议栈,该远程诊断指令包括客户端源地址SA、目标逻辑地址TA和请求内容UDS
Msg.,诊断协议栈包括诊断客户端、目标诊断管理模块和第一路由模块,通过诊断客户端接
收该远程诊断指令,根据远程诊断指令的请求类型匹配得到目标诊断管理模块,若没有匹
配到已经创建好的目标诊断管理模块,则触发创建目标诊断管理模块,通过目标诊断管理
指令,但在具体执行时,可以通过一个目标诊断管理模块对应一个远程诊断指令。目标诊断
管理模块将封装后的远程诊断指令发送至第一路由模块,通过第一路由模块路由至对应的
端源地址SA、目标逻辑地址TA封装得到诊断反馈报文,反馈给到第一路由模块,由第一路由
模块传输至目标诊断管理模块,通过目标诊断管理模块去除协议报头,得到诊断反馈消息
[0076]请参见图4,图4为本发明实施例提供的车辆远程诊断方法的另一个具体的流程示
意图,如图4所示,以第一核为设置在跨域多核控制器的A核(ACore)为例,中央网关控制器
实现,或本领域技术人员所知晓的其他方式实现),该远程诊断指令包括客户端源地址SA、
Client接收该远程诊断指令,匹配或者创建得到目标诊断管理模块DoIP
Header后进行封装,也即将诊断报文按照DoIP协议格式进行封装,并创建一
域技术人员所知晓的其他方式实现),根据DoIP报文的目标逻辑地址将其路由到相应的
Header、客户端源地址SA、目标逻辑地址TA封装得到诊断反馈报文,反馈给到第一路
方式实现),由第一路由模块传输至目标诊断管理模块(可以通过图4中DoIP
数实现,或本领域技术人员所知晓的其他方式实现),通过目标诊断管理模块去除协议报头
得到诊断反馈消息(包括客户端源地址SA、目标逻辑地址TA和诊断结果UDS
端源地址将诊断反馈消息传输给诊断客户端,诊断客户端将该诊断反馈消息反馈给远程诊
中的Router模块,根据DoIP报文的目标逻辑地址TA将其路由到相应的DoIP节点(目标节
点)。该目标节点包括第一核自身(ACore),SoC上的其他异构核(如R核、M核等),或者其他下
的Linux系统,可以将远程诊断应用的功能和诊断功能设计为两个独立进程,同样适用。对
车载联网终端的远程诊断请求可以是json文件格式等能够转换成为UDS协议栈(诊断协议
栈)可用的诊断报文格式即可。对于云端等上传对象与车载联网终端之间的通信协议不局
[0079]上述实施例提供的车辆远程诊断方法,通过设置在跨域多核控制器的第一核中的
远程诊断软件模块接收车载联网终端传输的远程诊断请求,将远程诊断请求进行第一格式
转换得到远程诊断指令,并发送至诊断协议栈,通过诊断协议栈基于目标逻辑地址将远程
诊断指令路由至目标节点,触发目标节点进行诊断,并接收目标节点反馈的诊断反馈消息,
反馈给到远程诊断软件模块,通过远程诊断软件模块将接收的诊断反馈消息进行第二格式
转换,并将第二格式转换后的诊断反馈消息通过车载联网终端进行上传,以对车辆进行远
程诊断,提供了一种基于跨域多核控制器的中央集中式的整车电子电气架构下的远程诊断
功能接入车端的方式,打通了云端与车端的诊断链路,提升了诊断效率,降低了诊断成本,
[0080]上述实施例提供的车辆远程诊断方法,可以利用车端已部署的诊断软件模块和诊
断协议栈,减少开发难度和开发成本,大幅缩短了研发周期,该方案不仅适用于简单的网关
控制器架构,充分考虑了未来中央网关控制器升级为跨域多核架构时的车载以太网通信和
诊断通信拓扑,提升了产品的使用周期。此外,云端数据格式到UDS数据格式的转换单独封
装到独立应用(远程诊断软件模块中的格式转换应用模块中),解耦性和可拓展性好,为不
同的云端协议数据的转换预留了开发空间。另外,该方案还考虑了远程诊断时与车机的交
互行为,融入了终端用户决策与监视的过程,提升了远程诊断任务的覆盖面和功能延展性。
[0081]应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程
的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限
[0082]在一实施例中,提供一种车辆远程诊断装置,该车辆远程诊断装置与上述实施例
中车辆远程诊断方法一一对应。请参见图5,图5为本发明实施例提供的车辆远程诊断装置
的一个结构示意图,如图5所示,该车辆远程诊断装置500包括设置于跨域多核控制器的第
一核中的远程诊断软件模块501和诊断协议栈502。各功能模块详细说明如下:远程诊断软
件模块501,用于接收车载联网终端传输的远程诊断请求,将远程诊断请求进行第一格式转
换得到远程诊断指令,并发送至诊断协议栈502,远程诊断请求包括目标逻辑地址和请求内
容;诊断协议栈502用于接收远程诊断指令,并基于目标逻辑地址将远程诊断指令路由至目
标节点,以触发目标节点基于请求内容进行诊断;诊断协议栈502还用于接收目标节点反馈
的诊断反馈消息,并发送至远程诊断软件模块501,诊断反馈消息基于目标节点的诊断结果
生成;远程诊断软件模块501还用于将接收的诊断反馈消息进行第二格式转换,并将第二格
[0083]在一实施例中,该车辆远程诊断装置还包括转换节点和车载联网终端,其中,车载
联网终端用于接收远程诊断请求,以及对远程诊断请求进行第一传输协议转换;将第一传
[0084]在一实施例中,诊断协议栈包括诊断客户端、目标诊断管理模块和第一路由模块,
其中:诊断客户端用于接收远程诊断请求,根据远程诊断指令的请求类型匹配得到目标诊
断管理模块,将远程诊断指令发送至目标诊断管理模块,以及调用目标诊断管理模块的组
件发起诊断服务,请求类型基于请求内容得到;目标诊断管理模块用于对协议报头和远程
诊断指令进行封装,得到封装后的远程诊断指令,协议报头基于远程诊断指令的请求类型
确定;目标诊断管理模块还用于将封装后的远程诊断指令传输至第一路由模块;第一路由
模块用于基于目标逻辑地址和第一路由模块的第一路由表确定目标节点,并将封装后的远
[0085]在本实施例中,诊断客户端还被配置为:根据远程诊断指令的请求类型对每一诊
断管理模块对应的请求类型进行匹配;若匹配得到至少一诊断管理模块,将一诊断管理模
块确定为目标诊断管理模块;若每一诊断管理模块对应的请求类型与远程诊断指令的请求
类型均不匹配,根据远程诊断指令的请求类型创建诊断管理模块,并将诊断管理模块确定
[0086]在本实施例中,诊断客户端还被配置为:将客户端源地址封装入远程诊断指令,客
户端源地址为诊断客户端的地址,将封装有客户端源地址的远程诊断指令发送至目标诊断
管理模块。在一实施例中,第一路由模块还用于接收目标节点发送的诊断反馈报文,并转发
至目标诊断管理模块,诊断反馈报文包括诊断反馈消息和协议报头;目标诊断管理模块还
用于去除诊断反馈报文中的协议报头,得到诊断反馈消息,并将诊断反馈消息传输至诊断
[0087]在本实施例中,目标诊断管理模块还被配置为:根据诊断反馈消息中的客户端源
地址将诊断反馈消息传输至诊断客户端,诊断反馈消息中还包括所远程诊断指令中的客户
[0088]在一实施例中,诊断协议栈还用于基于目标逻辑地址确定目标节点;若目标节点
为第一核,诊断协议栈将远程诊断指令通过进程间通信传输到第一核诊断应用模块。
[0089]在一实施例中,诊断协议栈还用于诊断协议栈基于目标逻辑地址确定目标节点;
若目标节点为第二核,诊断协议栈将远程诊断指令通过核间通信传输到第二核诊断应用模
[0090]在一实施例中,诊断协议栈还用于基于目标逻辑地址确定目标节点;若目标节点
为第一通信协议节点,诊断协议栈的第一路由模块还用于基于目标逻辑地址和第一路由模
块的第一路由表确定目标节点,将远程诊断指令通过第一通信协议发送至目标节点。
[0091]在一实施例中,诊断协议栈还用于将远程诊断指令发送至转换节点;通过转换节
[0092]在一实施例中,诊断协议栈还用于基于目标逻辑地址确定目标节点;若目标节点
为第二通信协议节点,诊断协议栈还用于将远程诊断指令通过核间通信转发至第二核的第
二路由模块,第二通信协议节点包括第三核和支持第二通信协议的控制器中至少之一,第
二核和第三核设置于跨域多核控制器;第二路由模块还用于基于目标逻辑地址匹配确定目
标逻辑地址对应的目标总线标识,根据目标总线标识和第二路由模块的第二路由表确定目
[0093]在一实施例中,该装置还包括车机系统,远程诊断软件模块还用于接收车载联网
终端传输的远程诊断请求之后,向车机系统发送内容显示请求,内容显示请求包括显示内
容;车机系统用于基于显示内容的显示状态生成显示响应消息,并反馈至远程诊断软件模
块;若显示状态为显示,车机系统还用于显示显示内容的显示窗口,并接收基于显示内容的
输入指令,基于输入指令确定显示内容的响应结果,并基于响应结果生成结果响应消息,并
反馈至远程诊断软件模块;远程诊断软件模块还用于基于接收到的结果响应消息生成接收
响应消息,并发送至车机系统;远程诊断软件模块还用于基于接收到的结果响应消息确定
诊断介入操作,并执行,执行诊断介入操作完成后生成显示窗口关闭请求,发送至车机系
统;车机系统还用于接收到显示窗口关闭请求,执行窗口关闭动作,执行窗口关闭动作完成
[0094]本发明实施例提供了一种车辆远程诊断装置,通过设置在跨域多核控制器的第一
核中的远程诊断软件模块接收车载联网终端传输的远程诊断请求,将远程诊断请求进行第
一格式转换得到远程诊断指令,并发送至诊断协议栈,通过诊断协议栈基于目标逻辑地址
将远程诊断请求路由至目标节点,触发目标节点进行诊断,并接收目标节点反馈的诊断反
馈消息,反馈给到远程诊断软件模块,通过远程诊断软件模块将接收的诊断反馈消息进行
第二格式转换,并将第二格式转换后的诊断反馈消息通过车载联网终端进行上传,以对车
辆进行远程诊断,提供了一种基于跨域多核控制器的中央集中式的整车电子电气架构下的
远程诊断功能接入车端的方式,打通了云端与车端的诊断链路,提升了诊断效率,降低了诊
[0095]在本实施例中,该装置实质上是设置了多个模块用以执行上述任一实施例中的方
[0096]在一实施例中,提供一种车辆,该车辆用于执行上述实施例中车辆远程诊断方法。
请参见图6,图6为本发明实施例提供的车辆的一个结构示意图,如图6所示,该车辆600包括
车载联网终端601和跨域多核控制器602,跨域多核控制器包括第一核603,第一核中设置有
远程诊断软件模块6031和诊断协议栈6032,其中:车载联网终端601用于接收远程诊断请
求,并将远程诊断请求传输到远程诊断软件模块6031;远程诊断软件模块6031,用于接收远
程诊断请求,将远程诊断请求进行第一格式转换得到远程诊断指令,并发送至诊断协议栈
6032,远程诊断请求包括目标逻辑地址和请求内容;诊断协议栈6032用于接收远程诊断指
令,并基于目标逻辑地址将远程诊断指令路由至目标节点604,以触发目标节点604基于请
求内容进行诊断;诊断协议栈6032还用于接收目标节点604反馈的诊断反馈消息,并发送至
远程诊断软件模块6031,诊断反馈消息基于目标节点604的诊断结果生成;远程诊断软件模
块6031还用于将接收的诊断反馈消息进行第二格式转换,并将第二格式转换后的诊断反馈
消息发送到车载联网终端601;车载联网终端601还用于将接收的第二格式转换后的诊断反
[0097]上述实施例提供的车辆,通过设置在跨域多核控制器的第一核中的远程诊断软件
模块接收车载联网终端传输的远程诊断请求,发送至诊断协议栈,通过诊断协议栈基于目
标逻辑地址将远程诊断请求路由至目标节点,触发目标节点进行诊断,并接收目标节点反
馈的诊断反馈消息,反馈给到远程诊断软件模块,通过远程诊断软件模块将接收的诊断反
馈消息通过车载联网终端进行上传,以对车辆进行远程诊断,提供了一种基于跨域多核控
制器的中央集中式的整车电子电气架构下的远程诊断功能接入车端的方式,打通了云端与
[0098]在本实施例中,该车辆实质上是设置了多个模块用以执行上述任一实施例中的方
[0099]在一实施例中,提供一种车辆远程诊断系统,该车辆远程诊断系统用于执行上述
实施例中车辆远程诊断方法。请参见图7,图7为本发明实施例提供的车辆远程诊断系统的
一个结构示意图,如图7所示,该车辆远程诊断系统700包括图6中的车辆600和云端701,远
[0100]车辆600用于接收远程诊断后台702和用户端703中至少之一通过云端701下发的
远程诊断请求,和/或用于将第二格式转换后的诊断反馈消息通过云端701发送至远程诊断
[0101]云端701用于传输远程诊断请求至车辆600,和/或用于传输第二格式转换后的诊
[0102]远程诊断后台702用于以下至少之一,通过云端701向车辆600下发远程诊断请求,
接收车辆600通过云端701发送的第二格式转换后的诊断反馈消息,接收用户端703传输的
远程诊断请求并通过云端701向车辆600下发远程诊断请求,接收车辆600通过云端701发送
[0103]用户端703用于以下至少之一,向远程诊断后台702发送远程诊断请求,接收远程
[0104]上述实施例提供的车辆远程诊断系统,通过设置在跨域多核控制器的第一核中的
远程诊断软件模块接收车载联网终端传输的远程诊断请求,发送至诊断协议栈,通过诊断
协议栈基于目标逻辑地址将远程诊断请求路由至目标节点,触发目标节点进行诊断,并接
收目标节点反馈的诊断反馈消息,反馈给到远程诊断软件模块,通过远程诊断软件模块将
接收的诊断反馈消息通过车载联网终端进行上传,以对车辆进行远程诊断,提供了一种基
于跨域多核控制器的中央集中式的整车电子电气架构下的远程诊断功能接入车端的方式,
打通了云端与车端的诊断链路,提升了诊断效率,降低了诊断成本,提升了用户体验。
[0105]在本实施例中,该车辆远程诊断系统实质上是设置了多个模块用以执行上述任一
[0106]请参见图8,图8为本发明实施例提供的车辆远程诊断系统的一个具体的结构示意
图,如图8所示,该车辆远程诊断系统包括用户端、远程诊断后台、云端和车端(车辆),其中
用户端可以为电脑、手机等面向用户的终端,远程诊断后台可以为面向于开发者的后台,云
Cloud等,用户端用于以下至少之一,向远程诊断后台发送远程诊断请求,接
收远程诊断后台传输的诊断反馈消息。远程诊断后台用于以下至少之一,通过云端向车辆
下发远程诊断请求,接收车辆通过云端发送的诊断反馈消息,接收用户端传输的远程诊断
请求并通过云端向车辆下发远程诊断请求,接收车辆通过云端发送的诊断反馈消息并发送
至用户端。云端用于传输远程诊断请求至车端的车载联网终端,和/或用于传输诊断反馈消
息至远程诊断后台。云端与车端之间的通信方式可以为https或其他本领域技术人员所知
晓的方式。云端下发远程诊断请求的格式可以为json文件格式等格式,车端支持的协议栈
可以为UDS协议栈等。车载联网终端可以选用车载T‑BOX等设备,车载T‑Box搭载的无线通信
模块可以将数据流上传至诊断云端,从而实现和无线电子设备(如手机、电脑等)的交互。跨
域多核控制器以中央网关控制器为例,第一核选用A核,第二核选用一个R核,该中央网关控
制器中还设置有多个R核或M核作为第三核,图8中虚线框中的R核的数量可以根据需要设
计,根据需要,至少部分R核也可以替换为M核。车端搭载的中央网关控制器为跨域异构多核
控制器,A核应用层需要设计专门处理云诊断交互数据的进程或应用,来收发云端下行的数
据和本地诊断的上行数据。云诊断下发到车端的诊断请求数据一般为json格式,然后当前
车端标准的诊断报文格式一般基于UDS协议,所以A核的云诊断应用接收到云端下行数据
后,需要再做数据格式转换,再将传递到诊断应用,反之上行数据也需要进行相反的格式转
[0107]在云端下发远程诊断请求阶段,T‑BOX接收远程诊断请求,如图8所示,T‑BOX支持
与云端通过https的通信方式进行通信,T‑BOX还支持与中央网关控制器通过SOME/IP的通
信方式进行通信,T‑BOX将远程诊断请求通过转换节点Switch传输给到第一核A
用通信中间件SOME/IP协议等通信方式。对于跨域多核的网关产品,使用其A核作为SOME/IP
端,为每一个远程诊断指令匹配得到一个对应的目标诊断管理模块,通过诊断协议栈中的
目标诊断管理模块对远程诊断指令加装协议报头,将封装后的远程诊断指令发送至第一路
由模块,通过第一路由模块基于目标逻辑地址将远程诊断指令路由至目标节点,该目标节
点包括但不限于括A核自身,SoC上的其他异构核(第二核、第三核),或者其他下挂ECU节点
第二通信协议节点(图8中DoCAN的ECU,其数量不限)、第一通信协议节点(图8中与Switch通
[0108]对于目前支持DoIP协议栈的各车载以太网节点(包括中央网关控制器自身支持以
太网通信的核),也即第一通信协议节点,均需要定义唯一的逻辑地址,目标诊断管理模块
Client节点)发送的报文中含有目标逻辑地址(TA),第一路由模块解析到该地址后,
通过查表的方式识别该报文的发送对象并通过以太网传输至该节点。如图8所示,如果目标
节点为第一通信协议节点(除了A核自身外,支持DoIP协议栈的各车载以太网节点),则通过
第一路由模块解析到该地址后,通过查表的方式识别该报文的发送对象,经由Switch将远
[0109]如果目标节点是中央网关控制器自身的A核,则该远程诊断指令直接通过进程间
[0110]对于只支持传统CAN诊断的控制器,由于中央网关控制器的CAN诊断路由主节点通
模块)通过目标逻辑地址TA和CANID的对应关系矩阵,查表识别出CANID,再路由到相应目标
节点,即待诊断的车载控制器(包括中央网关控制器中各个仅支持CAN诊断的其他核)。如图
8所示,如果目标节点为第二通信协议节点(只支持传统CAN诊断的控制器),则通过第一路
由模块解析到该地址后,将远程诊断指令通过核间通信转发给R核,R核的第二路由模块(图
Route)匹配确定目标逻辑地址对应的目标总线标识,也即通过预设的逻辑地址
和总线标识CANID的对应关系矩阵,该对应关系矩阵存储在DCM(Diagnostic
TA对应的目标总线标识CANID,基于第二路由表确定目标节点,再将远程诊断指令通过
[0111]需要说明的是,上述示例以中央网关控制器设置有CAN诊断路由主节点,若中央网
[0112]诊断过程中根据需要会在HUT车机的中控屏上以弹窗形式与终端用户交互,例如
远程诊断执行开始时、执行远程诊断过程中有对驾驶相关的控制器做某些参数的写入,或
需要对其静默处理、执行远程诊断时有其他诊断源接入等情况时,诊断文件中会加入触发
正在使用的功能或停车后进行确认。A核的云诊断应用在下发的json数据文件中解析到相
应的指令后,向车机转。