本发明涉及车载诊断领域,具体而言,涉及一种诊断信息同步方法、装置、电子设备及存储介质。
背景技术:
1、采用多核异构芯片作为处理器的车载导航系统,通常包含两个主核。其中一个主核符合autosar架构,另一个主核不支持autosar架构。采用双主核一起进行uds(unifieddiagnostic services,统一诊断服务)诊断时,由于不同主核的通道占用率、cpu占用率和缓存空间均不同,在主核间进行大量数据互通时会产生大量的资源消耗,并且因数据量传输过大而缓存不足,导致数据被部分或全部丢弃。
2、autosar架构的主核支持所有诊断功能时,需要消耗本身并不充足的算力和内存资源,容易导致必须由其完成的功能不稳定。而另一个主核支持所有诊断功能时,开发工作量大,且会增大车载导航系统的提成和成本。因此,亟需一种高效且低成本的诊断方法。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种诊断信息同步方法、装置、电子设备及存储介质,其能够改善传统的多核异构芯片作为处理器的车载导航系统诊断方法所存在的处理效率低和成本高的问题。
2、为了实现上述目的,本发明实施方式采用的技术方案如下:
3、第一方面,本发明实施方式提供一种诊断信息同步方法,应用于车载导航系统的控制器,所述控制器与车辆的控制单元通信连接,所述控制器包括多核异构芯片和共享内存块,所述多核异构芯片包括mcu核和soc核,所述方法包括:
4、在所述mcu核接收到所述控制单元发送的一类故障通知时,根据所述一类故障通知生成故障传递结构体,并将所述故障传递结构体的发送类型置为第一标识后写入所述共享内存块;其中,所述一类故障通知与所述mcu核检测的故障信息对应;所述第一标识用于指示故障传递结构体的接收方接收该故障传递结构体;
5、在所述soc核从所述共享内存块读取到所述mcu核写入的故障传递结构体后,将该故障传递结构体的发送类型置为第二标识后写入所述共享内存块;其中,所述第二标识用于指示故障传递结构体的发送方无需继续发送相同的故障传递结构体;
6、在所述soc核接收到所述控制单元发送的二类故障通知时,根据所述二类故障通知生成故障传递结构体,并将所述故障传递结构体的发送类型置为第一标识后写入所述共享内存块;其中,所述二类故障通知与所述soc核检测的故障信息对应;
7、在所述mcu核从所述共享内存块读取到所述soc核写入的故障传递结构体后,将该故障传递结构体的发送类型置为第二标识后写入所述共享内存块。
8、进一步的,所述控制器还包括只读存储器,所述方法还包括:
9、在所述mcu核获取到故障信息时,以快照的方式将该故障信息对应的故障关联数据写入所述只读存储器;其中,所述故障信息包括mcu核接收到的一类故障通知,以及所述soc核写入到共享内存块的二类故障通知的故障传递结构体;所述故障关联数据包括故障类型以及故障发生时刻的车辆状态数据。
10、进一步的,所述将所述故障传递结构体的发送类型置为第一标识后写入所述共享内存块的步骤,包括:
11、将所述故障传递结构体的发送类型置为第一标识后排队至待写队列;
12、将所述待写队列中排队最前的故障传递结构体作为目标结构体,写入所述共享内存块;
13、在写入时长达到预设的检测周期时,查看所述共享内存块中的目标结构体的发送类型是否为第二标识;
14、若否,则在写入时间达到预设的复写周期时,继续将所述目标结构体写入所述共享内存块,并执行所述在写入时长达到预设的检测周期时,查看所述共享内存块中的所述目标结构体的发送类型是否为第二标识的步骤,直至所述共享内存块中的该故障传递结构体的发送类型为第二标识;
15、若是,则将所述目标结构体从所述待写队列中删除,并继续执行所述将所述待写队列中排队最前的故障传递结构体作为目标结构体,写入所述共享内存块的步骤。
16、进一步的,所述根据所述一类故障通知生成故障传递结构体的步骤,包括:
17、从所述一类故障通知中获取故障诊断码,并获取所述一类故障通知对应的故障发生时刻的车辆状态数据;
18、对所述车辆状态数据进行分析,得到子故障类型;
19、根据所述故障诊断码和所述子故障类型,生成所述一类故障通知的故障传递结构体。
20、进一步的,所述根据所述二类故障通知生成故障传递结构体的步骤,包括:
21、从所述二类故障通知中获取故障诊断码,并获取所述二类故障通知对应的故障发生时刻的车辆状态数据;
22、对所述车辆状态数据进行分析,得到子故障类型;
23、根据所述故障诊断码和所述子故障类型,生成所述二类故障通知的故障传递结构体。
24、进一步的,所述方法还包括:
25、在所述soc核获取到故障信息时,解析出故障类型,并从预存的故障安全机制库中调取所述故障类型对应的安全机制,运行所述安全机制,以控制车辆作出应对措施。
26、进一步的,所述方法还包括:
27、在所述mcu核或所述soc核接收到故障恢复通知时,从所述共享内存块中确定该故障恢复通知对应的故障传递结构体,并将该故障传递结构体的故障状态标志符置为恢复标识。
28、第二方面,本发明实施方式提供一种诊断信息同步装置,应用于车载导航系统的控制器,所述控制器与车辆的控制单元通信连接,所述控制器包括多核异构芯片和共享内存块,所述多核异构芯片包括mcu核和soc核,所述装置包括第一诊断模块、第一同步模块、第二诊断模块和第二同步模块;
29、所述第一诊断模块,用于在所述mcu核接收到所述控制单元发送的一类故障通知时,根据所述一类故障通知生成故障传递结构体,并将所述故障传递结构体的发送类型置为第一标识后写入所述共享内存块;其中,所述一类故障通知与所述mcu核检测的故障信息对应;所述第一标识用于指示故障传递结构体的接收方接收该故障传递结构体;
30、所述第二同步模块,用于在所述soc核从所述共享内存块读取到所述mcu核写入的故障传递结构体后,将该故障传递结构体的发送类型置为第二标识后写入所述共享内存块;其中,所述第二标识用于指示故障传递结构体的发送方无需继续发送相同的故障传递结构体;
31、所述第二诊断模块,用于在所述soc核接收到所述控制单元发送的二类故障通知时,根据所述二类故障通知生成故障传递结构体,并将所述故障传递结构体的发送类型置为第一标识后写入所述共享内存块;其中,所述二类故障通知与所述soc核检测的故障信息对应;
32、所述第一同步模块,用于在所述mcu核从所述共享内存块读取到所述soc核写入的故障传递结构体后,将该故障传递结构体的发送类型置为第二标识后写入所述共享内存块。
33、第三方面,本发明实施方式提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现如第一方面所述的诊断信息同步方法。
34、第四方面,本发明实施方式提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的诊断信息同步方法。
35、本发明实施方式提供的诊断信息同步方法、装置、电子设备及计算机可读存储介质,在mcu核接收到由自身负责检测的一类故障通知时,生成该一类故障通知的故障传递结构体,并将故障传递结构体的发送类型置为第一标识后写入共享内存块,以指示soc核接收该故障传递结构体,soc核从共享内存块中读取到mcu核写入共享内存的该故障传递结构体后,将发送类型置为第二标识后写入共享内存,以指示mcu核无需继续发送相同的故障传递结构体,同理,在soc核接收到由自身负责检测的二类故障通知时,以相同的方式,将该二类故障通知对应的故障传递结构体写入共享内存块,mcu核从共享内存块中读取到soc核写入共享内存的该故障传递结构体后,将发送类型置为第二标识后写入共享内存,通过第一标识和第二标识实现请求-回复机制,从而在将故障检测任务分别分布于多核异构芯片的两个主核的同时,能够以mcu核和soc核间通过共享内存块和请求-回复机制进行数据同步的方式,实现数据互通传输的高效性,进而以高效率和低成本实现多核异构芯片作为处理器的车载导航系统的诊断。
36、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。