本技术涉及通信,特别是涉及一种多cpu间通信方法及相关装置。
背景技术:
1、随着智能网联车辆的发展,车辆上会搭载各种控制单元以实现不同的功能。由于功能的复杂程度不同,一些控制单元内部可能包括多个cpu(central processing unit,中央处理器),多个cpu共同配合完成所需实现的功能。
2、在相关技术中,多个cpu间一般是基于spi(serial peripheral interface,串行外设接口)总线进行通信,spi通信的工作原理为多个cpu分为master(主节点)和slave(从节点),cpu间的通信由master发起和控制,但是由于master无法确定slave所发送的通信数据的数据量的大小,一般会提供最大数量的时钟,此时若slave所发送的通信数据的数据量较小,则会造成时钟的浪费,进一步降低了spi通信的数据传输效率。
技术实现思路
1、基于上述问题,本技术提供了一种多cpu间通信方法及相关装置,旨在解决spi通信的数据传输效率低的问题。
2、本技术实施例公开了如下技术方案:
3、第一方面,本技术实施例提供一种多cpu间通信方法,所述方法应用于通信节点为主节点的第一cpu,包括:
4、向第二cpu发送预设字节的第一时钟信号;所述第二cpu为通信节点为从节点的cpu;其中,所述第一cpu与所述第二cpu之间建立通信连接;
5、接收所述第二cpu基于所述第一时钟信号发送的响应数据;所述响应数据指示所述第二cpu待发送的目标数据的数据长度;
6、向所述第二cpu发送第二时钟信号;所述第二时钟信号的字节数量基于所述数据长度确定;
7、接收所述第二cpu基于所述第二时钟信号发送的所述目标数据。
8、可选地,所述接收所述第二cpu基于所述第一时钟信号发送的响应数据,包括:
9、接收所述第二cpu基于所述第一时钟信号发送的目标响应数据;所述目标响应数据指示所述第二cpu待发送的拼接数据的拼接数据长度;所述拼接数据长度小于或等于预设数据长度;所述预设数据长度为所述第一cpu与所述第二cpu单次通信的最大数据长度;所述拼接数据为多个业务数据拼接后的数据;所述多个业务数据的业务类型相同;
10、所述向所述第二cpu发送第二时钟信号,包括:
11、向所述第二cpu发送第二目标时钟信号;所述第二目标时钟信号的字节数量基于所述拼接数据长度确定;
12、所述接收所述第二cpu基于所述第二时钟信号发送的目标数据,包括:
13、接收所述第二cpu基于所述第二目标时钟信号发送的所述拼接数据。
14、可选地,在接收到所述拼接数据后,所述方法还包括:
15、对所述拼接数据中的多个业务数据进行数据校验;
16、若所述多个业务数据中存在数据校验未通过的目标业务数据,则向所述第二cpu发送重发请求;所述重发请求指示所述第二cpu重新发送所述目标业务数据的请求。
17、可选地,若所述第二cpu还包括待发送的第二目标数据,所述方法还包括:
18、在接收所述目标数据的预设时间间隔后,向所述第二cpu发送预设字节的第三时钟信号;
19、接收所述第二cpu基于所述第三时钟信号发送的第二响应数据;所述第二响应数据指示所述第二cpu待发送的第二目标数据的第二数据长度;
20、向所述第二cpu发送第四时钟信号;所述第四时钟信号的字节数量基于所述第二数据长度确定;
21、接收所述第二cpu基于所述第四时钟信号发送的所述第二目标数据。
22、可选地,所述第一cpu与所述第二cpu通过以下方式建立通信:
23、接收所述第二cpu发送的数据发送请求;所述数据发送请求指示所述第二cpu向所述第一cpu发送数据的请求;
24、若所述数据发送请求校验通过,则向所述第二cpu发送确认结果;所述确认结果指示所述第一cpu与所述第二cpu建立通信。
25、第二方面,本技术实施例提供一种多cpu间通信方法,所述方法应用于通信节点为从节点的第二cpu,包括:
26、接收第一cpu发送的预设字节的第一时钟信号;所述第一cpu为通信节点为主节点的cpu;其中,所述第一cpu与所述第二cpu之间建立通信连接;
27、基于所述第一时钟信号向所述第一cpu发送响应数据;所述响应数据指示待发送的目标数据的数据长度;
28、接收所述第一cpu发送的第二时钟信号;所述第二时钟信号的字节数量基于所述数据长度确定;
29、基于所述第二时钟信号向所述第一cpu发送所述目标数据。
30、可选地,所述目标数据,通过以下方式确定:
31、获取一个业务数据,将所述业务数据作为目标数据;
32、或者,
33、获取多个业务数据,并将所述多个业务数据进行拼接,得到拼接数据;所述拼接数据作为目标数据;所述多个业务数据的业务类型相同;所述拼接数据的拼接数据长度小于或等于预设数据长度;所述预设数据长度为所述第一cpu与所述第二cpu单次通信的最大数据长度。
34、可选地,若所述目标数据为拼接数据,所述基于所述第一时钟信号向所述第一cpu发送响应数据,包括:
35、基于所述第一时钟信号向所述第一cpu发送目标响应数据;所述目标响应数据指示所述拼接数据的拼接数据长度;
36、所述接收所述第一cpu发送的第二时钟信号,包括:
37、接收所述第一cpu发送的第二目标时钟信号;所述第二目标时钟信号的字节数量基于所述拼接数据长度确定;
38、所述基于所述第二时钟信号向所述第一cpu发送所述目标数据,包括:
39、基于所述第二时钟信号向所述第一cpu发送所述拼接数据。
40、第三方面,本技术实施例提供一种多cpu间通信装置,所述装置应用于通信节点为主节点的第一cpu,包括:
41、第一发送模块,用于向第二cpu发送预设字节的第一时钟信号;所述第二cpu为通信节点为从节点的cpu;其中,所述第一cpu与所述第二cpu之间建立通信连接;
42、第一接收模块,用于接收所述第二cpu基于所述第一时钟信号发送的响应数据;所述响应数据指示所述第二cpu待发送的目标数据的数据长度;
43、第二发送模块,用于向所述第二cpu发送第二时钟信号;所述第二时钟信号的字节数量基于所述数据长度确定;
44、第二接收模块,用于接收所述第二cpu基于所述第二时钟信号发送的所述目标数据。
45、第四方面,本技术实施例提供一种多cpu间通信装置,所述装置应用于通信节点为从节点的第二cpu,包括:
46、第三接收模块,用于接收第一cpu发送的预设字节的第一时钟信号;所述第一cpu为通信节点为主节点的cpu;其中,所述第一cpu与所述第二cpu之间建立通信连接;
47、第三发送模块,用于基于所述第一时钟信号向所述第一cpu发送响应数据;所述响应数据指示待发送的目标数据的数据长度;
48、第四接收模块,用于接收所述第一cpu发送的第二时钟信号;所述第二时钟信号的字节数量基于所述数据长度确定;
49、第四发送模块,用于基于所述第二时钟信号向所述第一cpu发送所述目标数据。
50、第五方面,本技术实施例提供一种计算机设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如第一方面或第二方面所述的多cpu间通信方法。
51、第六方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如第一方面或第二方面所述的多cpu间通信方法。
52、相较于现有技术,本技术具有以下有益效果:
53、本技术实施例提供的多cpu间通信方法,通过向通信节点为从节点的第二cpu发送预设字节的第一时钟信号,然后接收第二cpu基于第一时钟信号发送的响应数据,其中响应数据指示第二cpu待发送的目标数据的数据长度,进一步向第二cpu发送第二时钟信号,其中第二时钟信号的字节数量基于数据长度确定,然后接收第二cpu基于第二时钟信号发送的目标数据。其中,通过在第一cpu与第二cpu建立通信后,由第一cpu向第二cpu发送用于传输目标数据的数据长度的第一时钟信号,以获取目标数据的数据长度,从而根据数据长度确定第二时钟信号的字节数量,避免时钟浪费,进而提高传输效率。
1.一种多cpu间通信方法,其特征在于,所述方法应用于通信节点为主节点的第一cpu,包括:
2.根据权利要求1所述的方法,其特征在于,所述接收所述第二cpu基于所述第一时钟信号发送的响应数据,包括:
3.根据权利要求2所述的方法,其特征在于,在接收到所述拼接数据后,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,若所述第二cpu还包括待发送的第二目标数据,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述第一cpu与所述第二cpu通过以下方式建立通信:
6.一种多cpu间通信方法,其特征在于,所述方法应用于通信节点为从节点的第二cpu,包括:
7.根据权利要求6所述的方法,其特征在于,所述目标数据,通过以下方式确定:
8.根据权利要求7所述的方法,其特征在于,若所述目标数据为拼接数据,所述基于所述第一时钟信号向所述第一cpu发送响应数据,包括:
9.一种多cpu间通信装置,其特征在于,所述装置应用于通信节点为主节点的第一cpu,包括:
10.一种多cpu间通信装置,其特征在于,所述装置应用于通信节点为从节点的第二cpu,包括: