CN117749565A - 组网数据传输方法、芯片和通信系统 - Google Patents

组网数据传输方法、芯片和通信系统 Download PDF

Info

Publication number
CN117749565A
CN117749565A CN202311825182.1A CN202311825182A CN117749565A CN 117749565 A CN117749565 A CN 117749565A CN 202311825182 A CN202311825182 A CN 202311825182A CN 117749565 A CN117749565 A CN 117749565A
Authority
CN
China
Prior art keywords
node
data
packet
sub
common
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
Application number
CN202311825182.1A
Other languages
English (en)
Inventor
王继辉
柳玉平
郁新华
毛健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Goodix Technology Co Ltd
Original Assignee
Shenzhen Goodix Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Goodix Technology Co Ltd filed Critical Shenzhen Goodix Technology Co Ltd
Priority to CN202311825182.1A priority Critical patent/CN117749565A/zh
Publication of CN117749565A publication Critical patent/CN117749565A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种组网数据传输方法、芯片和通信系统,以形成更灵活地组网数据传输,提升数据传输的效率、带宽和降低数据传输的时延,组网数据传输方法包括:首节点发起传输第一公共包,第一公共包包括第一公共数据;第i个子节点接收在组网中依次传输的第一公共包,并将第一节点数据添加至第一公共包;终止节点接收在组网中经N个子节点依次传输的第一公共包,此时第一公共包包括第一公共数据和第一节点数据,或者,第k个子节点接收在组网中依次传输的第一公共包并获取第一公共包中的第一节点数据后,由终止节点接收在组网中经N个子节点依次传输的第一公共包,此时第一公共包包括第一公共数据,其中,在传输方向上,i小于k。

Description

组网数据传输方法、芯片和通信系统
技术领域
本申请涉及电子通信技术领域,特别地,涉及一种组网数据传输方法、芯片和通信系统。
背景技术
现如今,车载的设备和功能趋于多样化,车载内存在多种数据的传输以满足车载系统的不同应用场景,例如车载音频数据,然而车载音频数据的传输仍然依赖于模拟方案,具体为先通过集中式功放处理完音频数据后再通过模拟音频线连接到各个音响设备进行播放,目前基于车载音频总线(Automotive Audio Bus,A2B)的数字音频方案也正在兴起,然而A2B的数字音频方案仅支持单条串行菊花链传输,存在带宽低、时延长、可靠性差等缺点,并且A2B的数字音频方案无法承载除音频数据之外的大数据传输。另外,目前车载非音频数据传输的主流方案为基于以太网和控制器局域网络(Controller Area Network,CAN)总线传输,然而随着智能化发展,CAN总线无法满足传输速率和时延的要求,而目前车内以太网采用的是传统的以交换机为基础的通信,虽成熟可靠,但是需要较多的交换机将车内电子控制单元(Electronic Control Unit,ECU)连接,并且不支持和车载传感器直接通信,成本较高,实现复杂,无法支持更灵活的节点互联场景以及复杂通信结构的应用。
因此,如何实现一种能够满足多种数据类型传输、配置灵活、可靠性高、成本低且传输时延低的组网系统,成为了需要解决的问题。
发明内容
本申请提供一种组网数据传输方法、芯片和通信系统,能够满足多种数据类型在同一数据包中传输,形成灵活配置的组网,提升了组网传输的可靠性且降低了传输数据的时延。
第一方面,提供了一种组网数据传输方法,所述组网包括首节点和N个子节点,N大于1,所述组网数据传输方法包括:所述首节点发起传输第一公共包,所述第一公共包包括第一公共数据;第i个子节点接收在所述组网中依次传输的所述第一公共包,并将第一节点数据添加至所述第一公共包;终止节点接收在所述组网中经所述N个子节点依次传输的所述第一公共包,此时所述第一公共包包括所述第一公共数据和所述第一节点数据,或者,第k个子节点接收在所述组网中依次传输的所述第一公共包并获取所述第一公共包中的所述第一节点数据后,由所述终止节点接收在所述组网中经所述N个子节点依次传输的所述第一公共包,此时所述第一公共包包括所述第一公共数据,其中,在传输顺序上,i小于k。
在一种可能的实现方式中,所述终止节点为所述首节点,或者,所述终止节点为所述N个子节点中的末尾子节点。
在一种可能的实现方式中,所述组网还包括第i个子节点的分支子节点,所述第i个子节点接收所述第一公共包,并将第一节点数据添加至所述第一公共包的同时,所述方法还包括:所述第i个子节点将所述第一公共包发送至所述第i个子节点的分支子节点,所述第i个子节点的分支子节点仅与所述第i个子节点连接。
在一种可能的实现方式中,所述组网还包括第i个子节点的分支子节点,所述第i个子节点接收所述第一公共包,并将第一节点数据添加至所述第一公共包之前,所述方法还包括:所述第i个子节点的分支子节点将所述第一节点数据发送至所述第i个子节点,所述第i个子节点的分支子节点仅与所述第i个子节点连接,所述第一节点数据由所述第i个子节点的分支子节点产生或者所述第i个子节点的分支子节点连接的外围设备产生。
在一种可能的实现方式中,所述第一公共包还包括第一非公共数据,所述第一公共数据包括音频数据、广播数据中的至少一项,所述第一非公共数据包括配置数据、读取数据、中断数据、控制数据、命令数据、雷达数据、视频数据、图像数据、传感数据、车机管理数据中的至少一项。
在一种可能的实现方式中,首节点对所述第一公共包中的空闲部分划分一个或多个空闲字段,所述多个空闲字段等长。
在一种可能的实现方式中,第f个子节点接收在所述组网中依次传输的所述第一公共包并获取所述第一非公共数据后,将所述第一非公共数据对应的字段标记为空闲字段,或者,所述第f个子节点接收在所述组网中依次传输的所述第一公共包,将所述第一公共包发送至所述f个子节点的分支子节点,由所述第f个子节点的分支子节点获取所述第一公共包中的所述第一非公共数据,同时,所述第f个子节点还将所述第一非公共数据对应的字段标记为所述空闲字段后发送至与其连接的下一个节点,所述下一个节点为所述子节点或所述终止节点。
在一种可能的实现方式中,所述第i个子节点将第一节点数据添加至所述第一公共包,包括:所述第i个子节点将所述第一节点数据添加至所述第一公共包中的所述空闲字段。
在一种可能的实现方式中,所述第i个子节点将所述第一节点数据添加至所述第一公共包中的所述空闲字段,包括:所述第i个子节点将所述第一节点数据划分,使得所述第一节点数据包括至少两段第一节点数据;所述第i个子节点将所述至少两段第一节点数据分别添加至所述第一公共包中的所述多个空闲字段。
在一种可能的实现方式中,所述第i个子节点将所述第一节点数据添加至所述第一公共包中的所述空闲字段,包括:所述第i个子节点将所述第一节点数据划分,使得所述第一节点数据包括至少两段第一节点数据;所述第i个子节点将所述至少两段第一节点数据的第一部分分别添加至所述第一公共包中的所述空闲字段。
在一种可能的实现方式中,所述方法还包括:所述首节点发起传输第二公共包,所述第二公共包包括第二公共数据;所述第i个子节点接收在所述组网中依次传输的所述第一公共包,并将所述至少两段第一节点数据的第二部分添加至所述第二公共包中的空闲字段;所述终止节点接收所述第一公共包和所述第二公共包,并将所述至少两段第一节点数据的第一部分和所述至少两段第一节点数据的第二部分组合为所述第一节点数据。
在一种可能的实现方式中,所述第i个子节点接收所述第一公共包,并将第一节点数据添加至所述第一公共包,包括:所述第i个子节点接收所述第一公共包,解析所述第一公共包是否还有空闲部分,若有所述空闲部分则将所述第一节点数据添加至所述第一公共包中。
在一种可能的实现方式中,当所述终止节点为所述首节点时,所述方法还包括:所述首节点解析所述第一公共包,判断所述第一公共包中的所述第一节点数据的目标节点是否为所述首节点。
在一种可能的实现方式中,若所述第一节点数据的目标节点为所述首节点,则所述首节点获取所述第一公共包中的所述第一节点数据;若所述第一节点数据的目标节点不为所述首节点,则所述首节点发起传输第一节点包,所述第一节点包包括所述第一节点数据,所述第一节点包的传输方向和所述第一公共包的传输方向相同或不同。
在一种可能的实现方式中,所述第一节点数据包括第一寻址信息,所述第一寻址信息信息用于指示所述第一节点数据的目标节点。
在一种可能的实现方式中,所述第一节点数据由所述第i个子节点产生,或者由所述第i个子节点连接的外围设备产生。
第二方面,提供了一种组网数据传输方法,所述组网包括首节点和N个子节点,N大于1,所述组网数据传输方法包括:起始节点发起传输第一节点包,所述第一节点包包括第一包头;第i个子节点接收在所述组网中依次传输的所述第一节点包,并将第一节点数据添加至所述第一节点包;终止节点接收在所述组网中经所述N个子节点依次传输的所述第一节点包,此时所述第一节点包包括所述第一包头和所述第一节点数据,或者,第k个子节点接收在所述组网中依次传输的所述第一节点包并获取所述第一节点包中的所述第一节点数据后,由所述首节点接收在所述组网中经所述N个子节点依次传输的所述第一节点包,此时所述第一节点包包括所述第一包头,在传输顺序上,i小于k。
在一种可能的实现方式中,所述起始节点和所述终止节点均为所述首节点,或者,所述起始节点为所述首节点,所述终止节点所述多个子节点中的末尾子节点,或者,所述起始节点为所述多个子节点中的末尾子节点,所述终止节点为所述首节点。
在一种可能的实现方式中,所述组网还包括第i个子节点的分支子节点,在所述第i个子节点接收所述第一节点包,并将第一节点数据添加至所述第一节点包的同时,所述方法还包括:所述第i个子节点将所述第一节点包发送至所述第i个子节点的分支子节点,所述第i个子节点的分支子节点仅与所述第i个子节点连接。
在一种可能的实现方式中,所述组网还包括第i个子节点的分支子节点,在所述第i个子节点接收所述第一节点包,并将第一节点数据添加至所述第一节点包之前,所述方法还包括:所述第i个子节点的分支子节点将所述第一节点数据发送至所述第i个子节点,所述第i个子节点的分支子节点仅与所述第i个子节点连接,所述第一节点数据由所述第i个子节点的分支子节点产生或者所述第i个子节点的分支子节点连接的外围设备产生。
在一种可能的实现方式中,所述第一节点数据包括第一公共数据,所述第一节点包还包括公共数据字段,所述第i个子节点接收所述第一节点包,并将第一节点数据添加至所述第一节点包,包括:所述第i个子节点接收所述第一节点包,并将所述第一公共数据添加至所述第一节点包中的所述公共数据字段。
在一种可能的实现方式中,所述方法还包括:所述起始节点对所述第一节点包划分一个或多个空闲字段,所述空闲字段等长。
在一种可能的实现方式中,所述起始节点在第一方向上发起传输第一节点包,所述第一节点包还包括第一目标数据,所述方法还包括:当所述第一目标数据的目标节点为所述第j个子节点,所述第j个子节点接收所述组网中依次传输的所述第一节点包,并获取所述第一节点包中的所述第一目标数据;或者,当所述第一目标数据的目标节点为所述第j个子节点的分支子节点,所述第j个子节点接收所述组网中依次传输的所述第一节点包,将所述第一节点包发送至所述第j个子节点的分支节点,所述第j个子节点的分支子节点接收所述第一节点包,并获取所述第一节点包中的所述第一目标数据。
在一种可能的实现方式中,所述第k个子节点接收在所述组网中依次传输的所述第一节点包并获取所述第一节点包中的所述第一节点数据,包括:所述第k个子节点接收在所述组网中依次传输的所述第一节点包并获取所述第一节点包中的所述第一节点数据,并将所述第一节点数据对应的字段标记为空闲字段。
在一种可能的实现方式中,所述第i个子节点接收在所述组网中依次传输的所述第一节点包,并将第一节点数据添加至所述第一节点包,包括:所述第i个子节点接收在所述组网中依次传输的所述第一节点包,并将所述第一节点数据添加至所述第一节点包中的所述空闲字段。
在一种可能的实现方式中,所述第一节点数据包括第一非公共数据和/或第一公共数据,所述第i个子节点接收在所述组网中依次传输的所述第一节点包,并将所述第一非公共数据添加至所述第一节点包中的所述空闲字段,和/或,所述第一节点包还包括公共数据字段,所述第i个子节点接收在所述组网中依次传输的所述第一节点包,并将所述第一公共数据添加至所述公共数据字段。
在一种可能的实现方式中,所述第一公共数据包括音频数据、广播数据中的至少一项,所述第一非公共数据包括配置数据、读取数据、中断数据、控制数据、命令数据、雷达数据、视频数据、图像数据、传感数据、车机管理数据中的至少一项。
在一种可能的实现方式中,所述方法还包括:所述第i个子节点将所述第一节点数据划分,使得所述第一节点数据包括至少两段第一节点数据;所述第i个子节点将所述至少两段第一节点数据分别添加至所述第一节点包中的多个所述空闲字段。
在一种可能的实现方式中,所述方法还包括:所述第i个子节点将所述第一节点数据划分,使得所述第一节点数据包括至少两段第一节点数据;所述第i个子节点将所述至少两段第一节点数据的第一部分分别添加至所述第一节点包中的所述空闲字段。
在一种可能的实现方式中,所述方法还包括:所述起始节点发起传输第二节点包,所述第二节点包包括第二包头;所述第i个子节点接收在所述组网中依次传输的所述第二节点包,所述第二节点包包括第二节点包的空闲字段,所述第i个子节点将所述至少两段第一节点数据的第二部分添加至所述第二节点包的空闲字段;所述终止节点接收所述第一节点包和所述第二节点包,并将所述至少两段第一节点数据的第一部分和所述至少两段第一节点数据的第二部分组合为所述第一节点数据。
在一种可能的实现方式中,第i个子节点接收所述第一节点包,并将第一节点数据添加至所述第一节点包,包括:所述第i个子节点接收所述第一节点包,解析所述第一节点包中是否还有空闲部分,若有则将所述第一节点数据添加至所述第一节点包中,或者,所述第一节点数据包括第一非公共数据,所述第i个子节点接收所述第一节点包,解析所述第一节点包中是否还有空闲部分,若有则将所述第一非公共数据添加至所述第一节点包中。
在一种可能的实现方式中,当所述起始节点和所述终止节点均为所述首节点时,所述方法还包括:所述首节点解析所述第一节点包,判断所述第一节点包中的第一节点数据的目标节点是否为所述首节点。
在一种可能的实现方式中,若所述第一节点数据的目标节点为所述首节点,则所述首节点获取所述第一节点包中的所述第一节点数据;若所述第一节点数据的目标节点不为所述首节点,则所述首节点发起传输第三节点包,所述第三节点包包括所述第一节点数据,所述第一节点包的传输方向和所述第三节点包的传输方向相同或不同。
在一种可能的实现方式中,所述第一目标数据包括第一寻址信息,所述第一寻址信息用于指示所述第一目标数据的目标节点。
在一种可能的实现方式中,所述第一节点由所述第i个子节点产生,或者由所述第i个子节点连接的外围设备产生。
在一种可能的实现方式中,当所述起始节点为所述末尾子节点,所述终止节点为所述首节点,所述组网包括第一条链路和第二条链路,所述首节点连接所述第一条链路和所述第二条链路,所述方法还包括:所述首节点解析所述第一节点包,判断所述第一节点包中的所述第一节点数据的目标节点是否为所述首节点,其中,所述第一节点包由所述第一条链路传输至所述首节点;若所述第一节点包中的所述第一节点数据的目标节点不为所述首节点,则所述首节点在所述第二条链路发起传输第四节点包,所述第四节点包包括所述第一节点数据。
第三方面,提供了一种芯片,芯片包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行第一方面或第二方面中任一项所述的方法。
第四方面,提供了一种系统,系统包括如第三方面所述的芯片以及外围设备,所述外围设备和所述芯片连接且通信。
附图说明
图1为本申请实施例提供的一种系统结构示意图;
图2为本申请实施例提供的一种组网系统示意图一;
图3为本申请实施例提供的一种组网系统示意图二;
图4为本申请实施例提供的又一种组网系统示意图一;
图5为本申请实施例提供的又一种组网系统示意图二;
图6为本申请实施例提供的一种数据传输方法100的示意性流程图一;
图7(a)为本申请实施例提供的一种基于方法100的过程示意图一;
图7(b)为本申请实施例提供的一种基于方法100的过程示意图二;
图7(c)为本申请实施例提供的一种基于方法100的过程示意图三;
图7(d)为本申请实施例提供的一种基于方法100的过程示意图四;
图8(a)为本申请实施例提供的一种基于方法100中第一公共包的数据格式示意图一;
图8(b)为本申请实施例提供的一种基于方法100中第一公共包的数据格式示意图二;
图9为本申请实施例提供的又一种基于方法100中第一公共包的数据格式示意图一;
图10(a)为本申请实施例提供的再一种基于方法100中第一公共包的数据格式示意图一;
图10(b)为本申请实施例提供的再一种基于方法100中第一公共包的数据格式示意图二;
图11为本申请实施例提供的一种示例流程200对应的数据传输示意图;
图12为本申请实施例提供的一种数据传输方法100的示意性流程图二;
图13为本申请实施例提供的一种数据传输方法300的示意性流程图;
图14(a)为本申请实施例提供的一种基于方法300中第一节点包的数据格式示意图一;
图14(b)为本申请实施例提供的一种基于方法300中第一节点包的数据格式示意图二;
图15(a)为本申请实施例提供的一种基于方法300的过程示意图一;
图15(b)为本申请实施例提供的一种基于方法300的过程示意图二;
图15(c)为本申请实施例提供的一种基于方法300的过程示意图三;
图16(a)为本申请实施例提供的又一种基于方法300的过程示意图一;
图16(b)为本申请实施例提供的又一种基于方法300的过程示意图二;
图17(a)为本申请实施例提供的一种基于方法300中第一节点包的数据格式示意图一;
图17(b)为本申请实施例提供的一种基于方法300中第一节点包的数据格式示意图二;
图18为本申请实施例提供的一种示例流程400对应的数据传输示意图;
图19为本申请实施例提供的一种数据传输方法300的示意性流程图二;
图20为本申请实施例提供的一种芯片的结构示意图;
图21为本申请实施例提供的一种通信系统的结构示意图。
具体实施方式
现如今,车载的设备和功能趋于多样化,车载内存在多种数据的传输以满足车载系统的不同应用场景,例如车载音频数据,然而车载音频数据的传输仍然依赖于模拟方案,具体为先通过集中式功放处理完音频数据后再通过模拟音频线连接到各个音响设备进行播放,目前基于A2B的数字音频方案也正在兴起,然而A2B的数字音频方案仅支持单条串行菊花链传输,存在带宽低、时延长、可靠性差等缺点,并且A2B的数字音频方案无法承载除音频数据之外的大数据传输。另外,目前车载非音频数据传输的主流方案为基于以太网和CAN总线传输,然而随着智能化发展,CAN总线无法满足传输速率和时延的要求,而目前车内以太网采用的是传统的以交换机为基础的通信,虽成熟可靠,但是需要较多的交换机将车内ECU连接,并且不支持和车载传感器直接通信,成本较高,实现复杂,无法支持更灵活的节点互联场景以及复杂通信结构的应用。因此,目前缺乏一种能够适应于多种类型的数据传输组网系统,能够同时实现音频数据传输和非音频数据传输。
因此,本申请提出了一种组网传输方法、芯片和系统,能够实现满足多种数据类型传输、配置灵活、可靠性高、成本低且传输时延低的组网数据传输。
应理解,此处所使用的术语“车辆”、“车载”或“车内”或其它类似术语一般包括例如轿车、运动型多用途车辆、公共汽车、卡车等各种私用或商用汽车,还包括各种舟艇、船舶、航空器等,并且包括混合动力车辆、电动车辆、可插式混合动力电动车辆、氢动力车辆以及其它替代性燃料车辆等。
下面将结合附图,对本申请中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅用于解释本发明,而非对本发明的限定。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
本公开实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
如在此描述通篇以及在权利要求中所使用的,由术语“中的至少一个”或“中的一个或多个”连接的项目的列表可意味着所列出项目的任何组合。例如,短语“A、B或C中的至少一个”可意味着A;B;C;A和B;A和C;B和C;或者A、B和C。
术语“电路”或“模块”可以指一个或多个无源和/或有源组件,它们被布置成与彼此协作以提供期望的功能。术语“耦合”和“连接”连同它们的派生词在本文中可以用来描述组件之间的功能或结构关系。应该理解,这些术语不意图作为彼此的同义词。相反,在特定实施例中,“连接”包括但不限于通信连接、电连接等各种连接方式,可用于指示两个或多于两个元件与彼此直接物理、光或电接触。“耦合”可以用于指示两个或多于两个元件与彼此直接或间接(在它们之间有其他中间元件)物理接触或电接触,和/或两个或多于两个元件与彼此协作或交互(例如,如在因果关系中)。
图1为本申请实施例提供的一种系统结构示意图,如图1所示,在该系统结构中,包括主机(host)、首节点0以及N个子节点,N大于1,N个子节点包括子节点1、子节点2、……、子节点N,主机可以通过任意外设接口例如集成电路内部电路(Inter-Integrated Circuit,I2C)、串行外围接口(Serial Peripheral Interface,SPI)、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)、系统管理接口(SystemManagement Interface,SMI)与首节点连接,首节点和N个子节点可以通过物理传输介质依次连接并通信,物理传输介质例如为双绞线,本申请对此不做具体限定,主机、首节点以及N个子节点之间进行通信以形成组网链路。首节点可以直接接收主机发送的数据、信息、命令等,并可以将该数据、信息、命令封装整合处理后下行传输至N个子节点,首节点也可以直接产生数据下行传输至N个子节点,主机通过首节点控制和指示组网链路中的N个子节点,具体地,主机通过首节点进行数据处理后将数据下行传输至N个子节点或者收集N个子节点上行传输的数据,在下行传输中,数据处理包括数据封装、拆包等,在上行传输中,数据处理包括数据解封装、组包等。子节点则可以将上一相邻节点发送的数据转发至下一相邻节点,以及可以获取外围设备采集的数据上行传输至首节点,首节点可以直接接收该采集的数据也可以经处理后进一步传输至主机。
主机为控制或处理组网链路的设备,例如,主机可以是或者可以包括数字信号处理器(Digital Signal Processor,DSP)、微控制器(Microcontroller Unit,MCU)、中央处理器(Central Processing Unit)等各种处理器中的一个或多个。首节点和子节点用于组网链路中的数据传输,可以是任意能执行本申请方案的设备、模组或芯片,例如可以是物理层(Physical Layer,PHY)芯片。为了实现更短的时延、更高带宽的利用率和更高精度的数据传输,本申请实施例中的组网链路传输可以基于以太网协议,也可以基于私有的以太网包格式定义,以支持全双工的传输方式,增加传输带宽。
另外,首节点和子节点均可以连接外围设备,本申请对首节点或子节点与外围设备之间的连接方式不做限制,例如,子节点1可以通过一根I2C总线与一个或多个外围设备连接,也可以通过多根I2C总线与多个外围设备连接。通过首节点和子节点与外围设备连接,可以实现不同的功能应用。外围设备可以是麦克风、扬声器、音频放大器、毫米波雷达、激光雷达、超声波雷达、摄像头、定位系统、速度传感器、湿度传感器、光强度传感器、扬声器等各种通信传感设备。例如,当图1所示系统结构应用在车载音频场景时,外围设备可以是扬声器和/或麦克风。
应理解,本申请实施例涉及的主机、首节点、子节点等特征可以是逻辑概念也可以是实体概念,进一步地,多个特征可以分别是多个实体设备,也可以多个特征集合成一个实体设备,例如主机和首节点可以集成在一个电路板或者一个实体设备中,本申请对此不做具体限定。
本申请实施例提供了一种图1所示系统结构形成的环形组网系统示意图一,如图2所示,图中节点包括首节点0和N个子节点,N大于1,应理解,本申请实施例对于子节点的数量不做限制,并且首节点和子节点均可以连接外围设备,为了简洁,在图中未示出首节点和子节点连接的外围设备,图1中首节点0、子节点1、子节点2、子节点3、子节点4、……、子节点N依次通过物理传输介质连接,并且形成环形组网系统,使得通信数据可在该环形组网系统中进行传输。也就是说,不同于现有的串行菊花链组网传输方案中首节点不与最后一个子节点进行连接通信,本申请实施例提供的环形组网传输中,组网链路中的第一个子节点和最后一个子节点均连接到首节点,并且可以进行数据通信。在该环形组网系统中,分成两个方向的数据传输,分别是第一方向和第二方向,第二方向与第一方向相反。例如,第一方向可视为图示环形组网的顺时针方向,第二方向可视为图示环形组网的逆时针方向,在第一方向上,数据传输的流向可以是首节点0→子节点1→子节点2→子节点3→子节点4→……→子节点N→首节点0→子节点1→……,应理解,数据可以在沿第一方向上的任意几个节点中传输,也可以在第一方向上循环传输。在第二方向中,数据传输的流向可以是首节点0→子节点N→……→子节点4→子节点3→子节点2→子节点1→首节点0→子节点N→……,应理解,数据可以在沿第二方向上的任意几个节点中传输,也可以在第二方向上循环传输。
图2所示环形组网结构能够支持更加灵活化多样化的数据传输和节点配置方案,满足多种场景下的组网传输需求。
在图2所示环形组网系统的基础上,本申请还提供了一种图1所示系统结构形成的环形组网系统示意图二,如图3所示,图中节点包括首节点0、N个子节点以及分支子节点1,分支子节点1在该组网系统中仅与某一个子节点连接例如子节点3,应理解,本申请实施例对于子节点和分支子节点的数量不做限制,并且首节点、子节点、分支子节点均可以连接外围设备,为了简洁,在图中未示出首节点和子节点连接的外围设备。图1中首节点0、子节点1、子节点2、子节点3、子节点4、……、子节点N依次通过物理传输介质连接,而分支子节点1仅与子节点3通过物理传输介质连接,并且分支子节点1仅能与子节点3进行通信,以此形成特殊的带有分支的环形组网系统,使得通信数据可在该环形系统中进行传输。与上述图2所示环形组网系统不同的是,分支子节点1作为环形组网系统中的分支子节点,仅与其连接的子节点3进行通信,应理解,在该带有分支子节点的环形组网系统中,可以有多个子节点作为分支子节点,分支子节点可以连接同一子节点也可以连接不同子节点,例如子节点3可以连接多个分支子节点,例如子节点4也可以连接一个或多个子节点并且该一个或多个子节点作为分支子节点,本申请实施例仅以分支子节点1连接子节点3并且分支子节点1作为分支子节点作为示例性说明。在该环形组网系统中,同样分为两个方向的传输,分别是第一方向和第二方向,第二方向和第一方向相反。例如,第一方向可视为图示环形组网的顺时针方向,第二方向可视为图示环形组网的逆时针方向,在第一方向上,数据传输的流向可以是首节点0→子节点1→子节点2→子节点3→子节点4→……→子节点N→首节点→子节点1→……,应理解,数据可以在沿第一方向上的任意几个节点中传输,也可以在第一方向上循环传输。在第二方向中,数据传输的流向可以是首节点→子节点N→……→子节点4→子节点3→子节点2→子节点1→首节点→子节点N→……,应理解,数据可以在沿第二方向上的任意几个节点中传输,也可以在第二方向上循环传输。另外,若数据传输需要分支子节点例如分支子节点1参与时,由与分支子节点连接的子节点将第一方向或第二方向上传输的数据发送至分支子节点,或者由分支子节点将数据发送至与分支子节点连接的子节点后再由第一方向或第二方向传输,例如,在第一方向的传输中,子节点3接收到的数据发给子节点4的同时也发给了分支子节点1,或者,分支子节点1将其数据发送至子节点3后由子节点3将数据发送至子节点4继续传输,也就是说,若分支子节点1作为分支子节点在环形组网系统中进行数据传输,则必须经过与其连接的子节点3。需要说明的是,即使该环形组网系统包括例如分支子节点1所示的分支子节点,当该分支子节点例如分支子节点1不参与环形组网系统的传输时,数据传输的流向依旧如图2所示,也就是说,若分支子节点1不参与环形组网系统的传输例如不需要接收或者是添加任何数据时,子节点3可将数据直接发送至子节点4,而不需要经过分支子节点1。
如图3所示的带有分支子节点的环形组网分案,能够减少组网节点之间的布线,节约组网系统的整体成本。
基于图2或图3所示环形组网系统,本申请实施例进一步提出了一种如图4所示的组网系统和如图5所示的组网系统,如图4所示,该组网系统中包括多个子节点,例如包括6个子节点,其中,若子节点4故障,可将子节点4和子节点5之间断开,则整体组网结构可划分为两条链路,第一条链路包括首节点0、子节点1、子节点2、子节点3以及故障节点子节点4,第二条链路则包括首节点0、子节点6、子节点5,应理解,由于子节点4故障,子节点4不参与第一条链路的数据传输,并且子节点4的故障不会影响第一条链路的数据传输,并且在第二条链路中,也不会影响首节点0、子节点6、子节点5的数据传输,因此图4所示组网结构能够提高组网的系统容错性,降低子节点故障对数据传输的影响。另外,采用图4所示组网结构,可以支持子节点之间断开从而划分为两条链路,那么首节点下发的数据可以同时在第一条链路和第二条链路进行传输,相比图2或图3所示一条完整的环形链路的组网结构,采用图4所示组网结构进行数据传输能够缩短数据传输时延从而确保数据在不同节点之间传输的同步性和实时性,提高用户体验。应理解,在图4所示组网结构中,虽然存在两条链路,也可以仅使用其中一条链路进行数据传输。
同样地,如图5所示组网系统可以例如图3所示环形组网系统类似,带有分支子节点例如图5中的分支子节点1,具体地,图5所示组网系统包括多个子节点例如包括6个子节点和1个分支子节点,其中若子节点4故障,可将子节点4和子节点5之间断开,则整体组网结构可划分为两条链路,第一条链路包括首节点0、子节点1、子节点2、子节点3以及故障节点子节点4,并且还包括仅与子节点2连接的分支子节点1,第二条链路则包括首节点0、子节点6、子节点5,由于子节点4为故障节点,子节点4不参与第一条链路的数据传输,子节点4的故障不会影响第一条链路的数据传输,并且在第二条链路中,也不会影响首节点0、子节点6、子节点5的数据传输。应理解,在图5所示组网结构中,虽然存在两条链路,也可以仅使用其中一条链路进行数据传输。如图5所示的带有分支子节点的组网方案,能够减少组网节点之间的布线,节约组网系统的整体成本。
在图2或图3所示环形组网系统以及图4或图5所示组网系统中,主机可以通过媒体独立接口(Media Independent Interface,MII)、集成电路内置音频(Inter-IC Sound,I2S)接口、时分复用(Time Division Multiplexing,TDM)接口等各种外设接口给首节点传输数据,首节点和子节点之间通过物理传输介质传输数据,物理传输介质例如为双绞线,进一步地,首节点或子节点则可以通过MII接口、串行外围接口(Serial PeripheralInterface,SPI)、内部集成电路(Inter-Integrated Circuit,I2C)接口、脉冲宽度调制(Pulse Width Modulation,PWM)接口、通用输入/输出接口(General Purpose Input/Output,GPIO)、控制器局域网总线(Controller Area Network,CAN)总线、局域互联网络(Local Interconnect Network,LIN)总线等方式将数据进一步传输至外围设备。
进一步地,本申请实施例提供了一种数据传输方法100,从而可以形成如图2或图3所述的环形组网系统的数据传输或者如图4或图5所述的组网系统的数据传输,从而支持实现数据包在组网的传输过程中,子节点可以根据配置和实际应用需求从而添加新的数据至首节点发起的数据包中,或者获取组网传输的数据包中的数据,并且同一数据包中可以同时承载不同类型的数据,以形成更灵活的组网数据传输,提升数据传输的效率、带宽和降低数据传输的时延,且相比现有方法降低了组网的成本。
需要说明的是,在本申请实施例提供的方法和系统中传输的数据可以分为公共数据和非公共数据,公共数据例如为音频数据、广播数据等公共传输的数据,即公共数据表示在组网中各个节点之间公共传输的数据,可以被多个节点接收或处理,非公共数据例如为配置数据、读取数据、中断数据、控制数据、命令数据、雷达数据、视频数据、图像数据、传感数据、车机管理数据等非公共传输的数据,即非公共数据为除公共数据之外的任何数据,表示在组网中各个节点之间非公共传输的数据,其仅被设定的目标节点接收或处理。
图6为本申请实施例提供的一种数据传输方法100流程图,图7(a)、图7(b)、图7(c)为本申请实施例提供的一种基于方法100的过程示意图,如图6所示,该数据传输方法100应用于图2或图3所述的环形组网系统的数据传输或者如图4或图5所述的组网系统的数据传输,方法100包括以下步骤的部分或者全部:
步骤110:首节点发起传输第一公共包,该第一公共包包括第一公共数据。
具体地,例如当方法100应用于如图2或图3所示环形组网时,如图7(a)或图7(b)所示,首节点0产生第一公共包并在第一方向上发起传输该第一公共包,如图8(a)所示,此时第一公共包包括第一公共数据,第一公共数据为首节点下发至子节点的公共数据,公共数据例如为音频数据、广播数据等公共传输的数据,即公共数据表示在组网中各个节点之间公共传输的数据,可以被多个节点接收或处理,若应用在车载音频场景时,公共数据则可以是音频数据。
需要说明的是,当方法300应用于图2或图3所示环形组网时,起始节点为首节点,终止节点为首节点,第一方向为图示顺时针传输方向,第二方向与第一方向相反,即图示逆时针传输方向,例如首节点在第一方向即图示顺时针方向上发起第一节点包的传输,当方法300应用于图4或图5所示组网时,起始节点为首节点而终止节点为组网链路的末尾子节点,第一方向则为首节点向子节点传输数据的方向,第二方向则与第一方向相反,第二方向为子节点向首节点传输数据的方向。公共数据。第一公共包还可以包括第一包头,第一包头为环组网数据传输中数据包的公共包头,可用于指示各个节点的实时信息。
步骤120:第i个子节点接收在组网中依次传输的该第一公共包,并将第一节点数据添加至第一公共包。
在步骤120中,第一公共包在组网中传输,并且第一公共包在第一方向上传输至第i个子节点,i小于N,第i个子节点将第一节点数据添加至第一公共包中,需要说明的是,该第一节点数据可以由第i个子节点自身产生,也可以由第i个子节点连接的外围设备产生,该第一节点数据可以是任何上述涉及的公共数据或非公共数据,例如第i个子节点连接的外围设备采集的音频数据,据、本申请实施例对第一节点数据的具体内容和功能不做限制。
步骤130:终止节点接收在组网中经N个子节点依次传输的第一公共包,此时第一公共包包括第一公共数据和第一节点数据;或者,第k个子节点接收在组网中依次传输的第一公共包并获取第一公共包中的第一节点数据后,由终止节点接收在组网中经N个子节点依次传输的第一公共包,此时第一公共包包括第一公共数据,在传输顺序上,i小于k。
在步骤130中,当应用于图2或图3所示环形组网系统时,终止节点为首节点,即首节点作为起始节点发起传输且作为终止节点结束本次传输,当应用于图4或图5所示组网系统时,终止节点为末尾子节点即图4或图5中第一链路或第二链路上连接且正常工作的最末尾的子节点。第i个子节点添加的节点数据可以经过组网传输后由终止节点接收,也可以由某个子节点例如第k个子节点接收,k小于N,在数据传输的第一方向顺序上,i小于k。
进一步地,若方法100应用于图3或图5所示的组网系统,即组网系统还包括分支子节点,并且分支子节点参与组网数据传输时,则在执行方法100中的步骤120的同时,还可以包括:
步骤121:第i个子节点将第一公共包发送至第i个子节点的分支子节点,第i个子节点的分支子节点仅与第i个子节点连接。
具体地,在组网系统中,第i个子节点的分支子节点仅与第i个子节点连接。第i个子节点在步骤120接收到了第一公共包后,若第i个子节点的分支子节点作为分支子节点参与组网数据传输时,第i个子节点将第一公共包发送至第i个子节点的分支子节点,应理解,第i个子节点将第一公共包发送给分支子节点的同时,也会将第一公共包继续在第一方向上传输至第i个子节点的下一个子节点。在步骤121中,第i个子节点的分支子节点可以接收到第一公共包中的第一公共数据。
或者,在方法100中的步骤120之前,还可以包括:
步骤122:第i个子节点的分支子节点将第一节点数据发送至第i个子节点,第i个子节点的分支子节点仅与第i个子节点连接。
具体地,在组网系统中,第i个子节点的分支子节点仅与第i个子节点连接。在步骤120即第i个子节点将第一节点数据添加至第一公共包之前,第i个子节点的分支子节点将第一节点数据发送至第i个子节点,该第一节点数据则由第i个子节点的分支子节点或者第i个子节点的分支子节点连接的外围设备产生,然后由第i个子节点将该第一节点数据添加至第一公共包后继续沿着第一方向在组网中传输。也就是说,当执行了步骤122之后再执行步骤120时,步骤120中的第一节点数据由第i个子节点的分支子节点或者第i个子节点的分支子节点连接的外围设备产生。
现给出上述方法100若应用于图2或图3所示的环形组网系统的示例性传输流程图,若在步骤130中,首节点接收经所述第一方向上的N个子节点传输的所述第一公共包,此时所述第一公共包包括第一公共数据和第一节点数据,如图7(a)所示,第一公共包在沿着第一方向传输的过程中,例如,经过N个子节点中的第3个子节点即子节点3,子节点3接收带有第一公共数据的第一公共包后,将第一节点数据添加至该第一公共包中,该节点数据可以由子节点3自身产生,也可以由子节点3连接的外围设备产生。此时第一公共包包括首节点产生的第一公共数据和子节点3添加的第一节点数据,子节点3将带有第一公共数据和第一节点数据的第一公共包继续沿着第一方向发往下一个节点,经过子节点4、……、子节点N后由首节点接收,如图8(b)所示,接收到的第一公共包包括第一公共数据和第一节点数据。应理解,第一公共包在沿着第一方向传输的过程中,N个节点中的一个或多个都可以添加节点数据至第一公共包中,后经过环形组网传输至首节点,也就是除了第i个子节点即子节点i之外的其他子节点也可以添加相应的数据至第一公共包中,本申请实施例仅以子节点3添加第一节点数据至第一公共包为例。
或者,进一步地,若方法100包括步骤121,即在步骤120的同时还执行步骤121,则如图7(b)所示,第一公共包在沿着第一方向传输的过程中,当传输至子节点3时,由于子节点3连接有分支子节点即分支子节点1,子节点3接收到包括第一公共数据的第一公共包后,将第一公共包发送至分支子节点1,同时,子节点3添加第一节点数据至第一公共包后继续沿着第一方向向下一个节点传输,此时第一公共包包括第一公共数据和第一节点数据,该第一节点数据由子节点3或者子节点3连接的外围设备产生。又例如,若方法100包括步骤122,则在执行步骤120之前,执行步骤122,如图7(c),所示,包括第一公共数据的第一公共包沿着第一方向传输,分支子节点1作为子节点3的分支子节点,将第一节点数据发送至子节点3,当第一公共包传输至子节点3时,子节点3将该分支子节点1发送的第一节点数据添加至第一公共包中,由子节点3将包括第一节点数据和第一公共数据的第一公共包发送至下一节点从而继续在第一方向上传输,该第一节点则是由分支子节点1或者分支子节点1连接的外围设备产生。应理解,可以存在多个子节点作为图3中的分支子节点,以及N个节点中的一个或多个都可以经过分支子节点连接的子节点接收第一公共包,或者经过分支子节点连接的子节点添加分支子节点发送的节点数据至第一公共包,后经过环形组网传输至首节点,本申请实施例仅以分支子节点1作为分支子节点执行步骤121和步骤122为例。
又或者,若在步骤130中,第k个子节点接收第一公共包并获取第一公共包中的所述第一节点数据后,由首节点接收经所述第一方向上的N个子节点传输的第一公共包,此时所述第一公共包包括第一公共数据,则可如图7(d)所示,第一公共包在沿着第一方向传输的过程中,例如经过N个子节点中的第3个子节点即子节点3,子节点3接收带有第一公共数据的第一公共包后,将第一节点数据添加至该第一公共包中,该第一节点数据可以由子节点3自身产生,也可以由子节点3连接的外围设备产生。此时第一公共包包括首节点产生的第一公共数据和子节点3添加的第一节点数据,子节点3将带有第一公共数据和第一节点数据的第一公共包继续沿着第一方向发往下一节点,经过子节点4时,由子节点4接收第一公共包中的第一节点数据,此时第一公共包则不带有第一节点数据,之后子节点4将带有第一公共数据的第一公共包继续沿着第一方向发往下一节点,直至最后传输至首节点0,首节点0接收的第一公共包中包括第一公共数据。应理解,第一公共包在沿着第一方向传输的过程中,N个节点中的一个或多个都可以添加节点数据至第一公共包中,并且由添加节点数据的子节点在第一方向上的传输顺序后的某个子节点接收,也就是由第k个子节点接收第一公共包并获取第一公共包中的第一节点数据,i小于k,最后由首节点0接收包括第一公共数据的第一公共包,本申请实施例仅以子节点3添加第一节点数据至第一公共包,而后由子节点4接收并获取第一公共包中的第一节点数据为例进行示例性说明。
应理解,图7(d)中第一节点数据的目标节点以子节点4为例进行说明,可选地,图7(d)中第一节点数据的目标节点可以为在第一方向的传输顺序上子节点3之后的任意节点。
应理解,若方法100应用于图4或图5所示系统,传输过程与上述示例类似,区别仅在于最后传输的终止节点为末尾子节点,例如子节点3,为了简洁,此处不再给出示例。
因此,通过上述方法100,可以支持多种组网系统的传输,例如图2或图3环形组网系统的传输和图4或图5所示单链路及双链路的传输,并且实现数据包在组网的传输过程中,子节点可以根据配置和实际应用需求从而添加新的数据至首节点发起的数据包中,或者组网中的数据包中的数据,并且在同一数据包中可以承载不同类型的数据如公共数据和节点数据等,以形成更灵活地组网数据传输,提升数据传输的效率、带宽和降低数据传输的时延,且降低了整体组网的成本,若方法100还包括步骤121或者步骤122,则还能进一步减少组网的布线,进一步节约整体组网系统的成本。
在一种可选地实施例中,在组网传输的步骤110中,如图9所示,首节点发送的第一公共包还可以包括第一非公共数据,该第一非公共数据例如为首节点下发至子节点的配置数据、读取数据、中断数据、控制数据、命令数据、雷达数据、视频数据、图像数据、传感数据、车机管理数据等非公共传输的数据,本申请对第一非公共数据的具体内容和功能不做限制。具体地,在该组网系统中,首节点除了可以向各个子节点传输公共数据外,还可以向一个或多个子节点发送非公共数据,即该非公共数据可以被一个或多个目标节点获取,若第一非公共数据是用于对第一非公共数据的目标节点进行配置,例如配置节点接口、收发周期、节点状态、配置节点的外围设备等。应理解,第一公共包可以包括多个非公共数据,从而分别被多个子节点获取,本申请仅以第一非公共数据为例进行说明。
可选地,第一非公共数据还可以附加第一非公共数据目标信息,该第一非公共数据目标信息用于指示第一非公共数据的目标节点即第一非公共数据由哪一个节点所获取,本申请对第一非公共数据目标信息的具体数据形式不做限制,优选地,第一非公共数据目标信息可以设置成第一非公共数据的包头。
若第一公共包还包括第一非公共数据,且第一非公共数据的目标节点为第f个子节点时,则第f个子节点接收在组网中依次传输的第一公共包,并获取第一公共数据。
具体地,当首节点执行步骤110后,如图9所示的第一公共包在该组网中按,第一方向依次传输,当传输经过第一非公共数据的目标节点时,该第一非公共数据的目标节点则获取该第一公共包中的第一非公共数据,此时第一公共包则不带有第一非公共数据,该第一非公共数据的目标节点继续将不带有第一非公共数据的第一公共包按第一方向继续向下一节点传输。。
第一公共数据的目标节点也可以为分支子节点,即若第一公共包还包括第一非公共数据,且第一非公共数据的目标节点为第f个子节点的分支子节点时,则第f个子节点接收在组网中依次传输的第一公共包,将该带有第一公共数据的第一公共包传输至第f个子节点的分支子节点,第f个子节点的分支子节点获取第一公共包中的第一非公共数据,同时,第f个子节点还将第一非公共数据对应的字段标记为空闲字段后发送至与其连接的下一节点,该下一个节点可以为子节点也可以为终止节点。如上步骤120和步骤130所述,在如图9所示的第一公共包在该组网中按第一方向依次传输的过程中,第i个子节点可以将节点数据添加至该第一公共包中,并且该带有节点数据的第一公共包经组网传输至终止节点。应理解,本申请实施例对第一非公共数据的目标节点和节点数据的添加节点不做限制,第一非公共数据的目标节点和节点数据的添加节点可以为同一节点,也可以为不同节点,本申请实施例对第一非公共数据的接收和节点数据的添加的先后顺序也不做限制。
因此,首节点发起的第一公共包除了包括第一公共数据外还可以包括第一非公共数据,即可以同时不同类型的数据即公共数据和非公共数据放置于同一数据包中进行组网传输,以提升不同数据的传输效率,节约数据传输的时延。
进一步地,在一种可选地实施例中,在步骤110中,方法100还包括:
步骤111:首节点对第一公共包中的空闲部分划分一个或多个空闲字段,该多个空闲字段等长。
如图10(a)所示,当该第一公共包包括第一公共数据,并且由于当前包括第一公共数据的第一公共包未占用数据传输的最大带宽,第一公共包存在空闲部分,首节点对该空闲部分划分一个或多个空闲字段,并且多个空闲字段等长,应理解,例如第一空闲字段、第二空闲字段,且第一空闲字段和第二空闲字段等长。
若该第一公共包还包括第一非公共数据,则如图10(b)所示,当该第一公共包包括第一公共数据和第一非公共数据,第一公共包仍存在空闲部分,首节点对该空闲部分划分多个空闲字段,并且多个空闲字段等长。
即,若第一公共包还包括第一非公共数据,则方法100还可以包括:
步骤140:第f个子节点接收该第一公共包,获取第一公共包中的第一非公共数据后,将第一非公共数据对应的字段标记为空闲字段。
具体地,若该第一公共包包括第一非公共数据,并且该第一非公共数据的目标节点为子节点f,即该第一公共包包括子节点f的第一非公共数据,除了步骤111可以划分空闲字段,在步骤140中,即第一公共包在第一方向上的传输过程中,包括第一非公共数据的第一公共包经过子节点f接收后,子节点f可以将第一非公共数据对应的字段标记为空闲,以便于第一公共包能够具备更多的空闲字段用于添加新的数据。
因此,通过步骤111和/或步骤140,可以使得第一公共包中包括空闲字段,并且多个空闲字段等长,以便于各个子节点能够更快速地识别第一公共包中是否还有空闲带宽能够添加新的数据,进而降低子节点的配置复杂度,提升子节点添加数据的效率,实现简单。
当执行步骤111和/或步骤140后,第一公共包中带有空闲字段,因此在执行步骤120时,步骤120包括步骤123:
第i个子节点可以将第一节点数据添加至第一公共包中的空闲字段。
具体地,当在第一公共包在组网中传输到第i个子节点时,第i个子节点即子节点i解析该第一公共包是否存在空闲字段,若存在空闲字段则将子节点i节点数据添加至该空闲字段中,进而传输至终止节点,该子节点i的第一节点数据可以由子节点i自身产生,也可以由子节点i连接的外围设备产生,本申请实施例对此不作限制。
应理解,步骤111和步骤140可以同时存在,也可以仅存在步骤111或步骤140,以及,步骤120中的第i个子节点和步骤140中的第f个子节点可以为同一子节点,也可以为不同子节点。若执行步骤123,则必须先执行步骤111和/或步骤140,若执行步骤123中的空闲字段是由步骤140产生的,则在第一方向上,f小于等于i。
应理解,在第一公共包在第一方向上的传输过程中,可以多次出现步骤120中某个子节点添加某个子节点的节点数据的过程和步骤140中获取第一非公共数据并标记空闲字段的过程,本申请对此不做限制。具体地,本申请给出了以上方法100的一种示例流程200,图11为示例流程200对应的数据传输示意图,流程200包括以下步骤:
流程201:首节点0在第一方向上发送第一公共包,第一公共包包括第一公共数据、第一非公共数据、第二非公共数据和第一空闲字段。该第一空闲字段为通过步骤111划分的空闲字段。其中,第一非公共数据的目标节点为子节点1,第二非公共数据的目标节点为子节点3。
可选地,当首节点发送的第一公共包中的数据量过大而没有空余空间划分空闲字段时,也可以不存在空闲字段,即不执行步骤111。
流程202:子节点1接收第一公共包以及获取第一公共包中的子节点1的第一非公共数据,并将子节点1的第一非公共数据对应的字段标记为空闲字段即第二空闲字段,并将子节点1的第一节点数据添加至第一空闲字段后发送至子节点2。可选地,子节点1也可以将第一节点数据添加至第二空闲字段后发送至子节点2,本申请对子节点1添加第一节点数据的空闲字段不做限制。该第一节点数据可以由子节点1自身产生,也可以由子节点1的外围设备产生,本申请实施例对此不做限制。
流程203:子节点2接收第一公共包,并将第二节点数据添加至第一公共包中的第二空闲字段后发送至子节点3,如图所示,此时第一公共包包括第一公共数据、第二非公共数据、第一节点数据、第二节点数据。该第二节点数据可以由子节点2自身产生,也可以由子节点2的外围设备产生,本申请实施例对此不做限制。
流程204:子节点3接收第一公共包,并获取第一公共包中的第二非公共数据后将该子节点3的第二非公共数据对应的字段标记为第三空闲字段,并在第一方向上发送至下一节点。可选地,若此时子节点3有需要在第一方向上传输的子节点3的节点数据,可以将子节点3的节点数据添加至第三空闲字段后发送至下一节点。
流程205:包括第一公共数据、第三空闲字段、第二节点数据、第一节点数据的第一公共包在第一方向上剩余的子节点进行依次传输,最后传输至终止节点,由终止节点接收,例如方法100应用于图2或图3所示环形组网,则终止节点为首节点0。
进一步地,在执行步骤123中,可能存在某一节点的节点数据的数据长度太长以至于单个空闲字段或者当前第一公共包中的所有空闲字段无法放置该节点的节点数据的情况,则步骤123还可以包括:
步骤1231:第i个子节点将第一节点数据划分,使得所述第一节点数据包括至少两段第一节点数据。
若当前第一公共包中的多个空闲字段可以放置该节点的节点数据时,则步骤123包括:
步骤1232:第i个子节点将至少两段第一节点数据分别添加至第一公共包中的多个空闲字段。
应理解,步骤1232中,至少两段第一节点数据中的一段第一节点数据和一个空闲字段对应,多段第一节点数据和多个空闲字段对应。之后,终止节点接收到了该带有至少两段第一节点数据的第一公共包时,组合成完整的第一节点数据。
若当前第一公共包中的所有空闲字段无法放置该节点的节点数据时,则步骤123包括:
步骤1233:第i个子节点将至少两段第一节点数据的第一部分分别添加至第一公共包中的所有空闲字段。
应理解,步骤1233中,由于当前第一公共包中的空闲字段有限,则第i个子节点先将至少两段第一节点数据的一部分先放入当前的第一公共包中的所有空闲字段,同样,一段第一节点数据和一个空闲字段对应。
进一步地,方法100还包括:
步骤150:首节点发起传输第二公共包,该第二公共包包括第二公共数据。
可选地,在步骤150中,若方法100应用于图2或图3所示环形组网系统,则首节点可以在第一方向或第二方向上发起传输第二公共包,若方法100应用于图4或图5所示组网系统,则首节点在第一方向上发起传输第二公共包,步骤160:第i个子节点接收该第二公共包,该第二公共包包括空闲字段,并将至少两段第一节点数据的第二部分添加至第二公共包中的空闲字段。
步骤170:终止节点接收所述第一公共包和第二公共包,并将至少两段第一节点数据的第一部分和至少两段第一节点数据的第二部分组合为第一节点数据。
具体地,首节点在组网中可以传输一个或多个业务包,多个业务包例如第一公共包和第二公共包,当应用于图2或图3所示环形组网时,第一公共包和第二公共包的传输方向可以相同,也可以不相同,例如,第一公共包和第二公共包均从第一方向上在环形组网中进行传输。第一公共包中包括第一公共数据,第二公共包中包括第二公共数据,当第一公共包传输至第i个子节点时,由于第i个子节点需要添加的节点数据太长,以至于此时第一公共包中的空闲字段不能够支持第i个子节点添加全部的节点数据,则第i个子节点将第一节点数据划分成至少两段第一节点数据,将至少两段第一节点数据的第一部分添加至当前第一公共包中的空闲字段,第一公共包则继续在组网中沿着第一方向传输至终止节点,此时第一公共包包括第一公共数据和子节点i添加的至少两段第一节点数据的第一部分。当终止节点继续沿着第一方向传输第二公共包至第i个子节点时,第i个子节点再将剩余的至少两段第一节点数据的第二部分填充至第二公共包中的空闲字段,应理解,第二公共包中的空闲字段同样可以通过步骤111和步骤140得到,第二公共包继续在组网中沿着第一方向传输至终止节点,此时第二公共包包括第二公共数据和子节点i的至少两段第一节点数据的第二部分。终止节点接收到包括子节点i的至少两段第一节点数据的第一部分的第一公共包和包括子节点i的至少两段第一节点数据的第二部分的第二公共包后,将至少两段第一节点数据的第一部分和至少两段第一节点数据的第二部分组合成完整的第一节点数据。
应理解,子节点i的节点数据可能需要划分成多段,本申请实施例仅以子节点i的节点数据划分成两端即第一段第一节点数据和第二段第一节点数据作为示例性说明。若子节点i的节点数据划分成多段,则在多个业务包中分别将多段节点数据添加至业务包中的空闲字段,直至多段节点数据添加完毕,最后由终止节点进行组合。
因此,通过上述步骤对节点数据分段,并将分段后的节点数据放置于不同的业务包中分次传输,能够实现过长的数据也能够完整地在组网中传输,并且提升此类长数据的传输效率和时延。
上述方法100中的步骤涉及到将数据添加至业务包中的空闲字段,并且多个空闲字段等长,降低子节点的配置复杂度,提升节点添加数据的效率,实现简单,并且可靠性高,数据传输的稳定性高。
需要说明的是,若不通过步骤111和步骤140划分空闲字段,即不执行步骤123,则在步骤120中,还包括步骤124:
第i个子节点接收第一公共包,解析第一公共包是否还有空闲部分,若有则将第一节点数据添加至第一公共包中。
当子节点i接收到第一公共包时,解析第一公共包是否还有空闲部分,若有,则将节点数据添加至第一公共包中,当多个子节点都需添加节点数据至第一公共包时,每个子节点根据自身节点数据的实际长度直接放入第一公共包中,每个子节点产生的节点数据可能长度不同。
通过步骤124,各个子节点都能根据当前第一公共包的具体情况添加节点数据,能够更加有效地利用带宽,提升带宽利用率,但是相比于空闲字段添加节点数据的步骤,该步骤124的数据传输的可靠性略差,组网传输的稳定性低。
进一步地,若在步骤130中,终止节点为首节点,则在第一方向上,第一公共包经过N个节点后传输至首节点后即经过步骤130后,如图12所示,方法100还可以包括步骤180:
步骤180:首节点解析第一公共包,判断第一公共包中的第一节点数据的目标节点是否为首节点。
具体地,首节点接收到第一公共包后,第一公共包带有第一节点数据,首节点解析并判断该第一节点数据的目标节点是否为首节点。应理解,第一公共包可以带有多个子节点的节点数据,并由首节点解析判断,本申请实施例仅以第一节点数据作为示例性说明。可选地,第一节点数据还可以包括第一寻址信息,该第一寻址信息用于指示该第一节点数据的目标节点。应理解,各节点所添加的节点数据都可以带有寻址信息,该寻址信息用于指示该节点数据的目标节点,目标节点可以为首节点也可以为其他子节点。首节点可以通过该寻址信息来判断该节点数据的目标节点是否为首节点,其他子节点也可以通过该寻址信息得知该节点数据的目标节点是否为自身。
若是,则执行步骤181,步骤181:首节点获取第一公共包中的第一节点数据。
若否,则执行步骤182,步骤182:首节点发起传输第一节点包,该第一节点包包括第一节点数据。
具体地,若节点数据的目标节点不为首节点,而为N个节点中的第m个子节点时,首节点则将该目标节点为子节点m的节点数据放入第一节点包中,从第一方向或者第二方向上传输至子节点m,m小于N。
可选地,第一节点包还可以包括第三公共数据,即该第一节点包可以视为第三公共包,该第三公共数据为公共数据,并且该第一节点包的传输过程中,依然可以执行上述步骤110、步骤111、步骤140、步骤120、步骤130中对第一公共包进行处理的相关过程,为了简洁,此处不再赘述。第一节点包也可以不包括第三公共数据,而包括其他非公共数据等。本申请对第一节点包的具体功能和形式不做限制。
通过图12所示步骤180、步骤181或步骤182,能够支持各个子节点的数据传输需求,使得子节点添加的数据可以被任意节点接收,即可以使得子节点添加的数据被首节点接收,也可以被其他任意子节点接收,提升了组网数据的数据灵活性,满足各类数据传输的需求。
进一步地,若在步骤130中,终止节点为首节点,即当方法100应用于图2或图3所示环形组网系统时,且若在步骤120中,第i个子节点添加的第一节点数据的目标节点为第m个子节点,且在第一方向上,i大于m,则方法100还可以包括:
步骤190:第i个子节点接收首节点在第二方向上传输的第四公共包,并将第一节点数据添加至第四公共包中。
也就是说,第i个子节点若想要传输第一节点数据给第m个子节点,且在第一方向上,i大于m,则第i个子节点可以根据步骤120、步骤180、步骤182来实现,也可以直接通过步骤190来实现,第i个子节点可被配置为遵循优先传输原则,判断哪种方式的传输路径更近,则选择两种方式其一来传输第一节点数据给第m个子节点。应理解,对于第i个子节点而言,可以同时存在第一方向和第二方向上的传输,意味着第i个子节点可以任意选择将第一节点数据添加至第一方向上传输的第一公共包或者第二方向上传输的第四公共包。
通过上述步骤190,能够更加灵活地支持子节点和子节点之间互相传输数据的场景,节省子节点之间数据传输的时延。
本申请实施例还提供了一种数据传输方法300,图13所示数据传输方法300同样可以应用于图2或图3所示环形组网系统或者如图4或图5所述的组网系统的数据传输,从而支持实现数据包在组网的传输过程中,子节点可以根据配置和实际应用需求从而添加新的数据至起始节点发起的数据包中,或者获取组网中传输的数据包中的数据,并且同一个数据包中可以同时承载多种类型的数据,以形成更灵活地环形组网数据传输,提升数据传输的效率、带宽和降低数据传输的时延,且相比现有方法降低了组网的成本。
需要说明的是,在本申请实施例提供的方法和系统中传输的数据可以包括公共数据和非公共数据,公共数据例如为音频数据、广播数据等公共传输的数据,即公共数据表示在组网中各个节点之间公共传输的数据,可以被多个节点接收或处理,非公共数据例如为配置数据、读取数据、中断数据、控制数据、命令数据、雷达数据、视频数据、图像数据、传感数据、车机管理数据等非公共传输的数据,即非公共数据为除公共数据以外的任何数据,表示在组网中各个节点之间非公共传输的数据,其仅被设定的目标节点接收或处理。
如图13所示,方法300包括以下步骤的部分或者全部:
步骤310:起始节点发起传输第一节点包,所述第一节点包包括第一包头。
具体地,第一包头为组网数据传输中数据包的公共包头,可用于指示各个节点的实时信息,需要说明的是,在步骤310中,第一节点包可以仅包括第一包头,首节点可以不添加任何数据至第一节点包中。如图14(a)所示,起始节点发起传输的第一节点包包括第一包头。需要说明的是,当方法300应用于图2或图3所示环形组网时,起始节点为首节点,终止节点为首节点,第一方向为图示顺时针传输方向,第二方向与第一方向相反,即图示逆时针传输方向,例如首节点在第一方向即图示顺时针方向上向环形组网系统中的N个子节点发送该第一节点包,当方法300应用于图4或图5所示组网时,起始节点为首节点而终止节点为组网链路的末尾子节点,或者起始节点为组网链路的末尾子节点或者终止节点为首节点,第一方向则为首节点向子节点传输数据的方向,第二方向则与第一方向相反,第二方向为子节点向首节点传输数据的方向。应理解,在步骤310中,若起始节点为首节点,终止节点为首节点,则起始节点可以从第一方向或者第二方向上发起传输第一节点包,若起始节点为首节点而终止节点为末尾子节点,则起始节点从第一方向发起传输,或者起始节点为末尾子节点而终止节点为首节点,则起始节点从第二方向发起传输。
步骤320:第i个子节点接收在组网中依次传输的该第一节点包,并将第一节点数据添加至第一节点包。
在步骤320中,第i个子节点接收在组网中依次传输的第一节点包,并将第一节点数据添加至第一节点包,该第一节点数据可以由第i个子节点自身产生,也可以由第i个子节点连接的外围设备产生,该第一节点数据可以是任何公共数据或者非公共数据,公共数据,本申请实施例对第一节点数据的具体内容和功能不做限制。
步骤340:终止节点接收在组网中经N个子节点依次传输的第一节点包,此时第一节点包包括第一包头和第一节点数据;或者,第k个子节点接收在组网中依次传输的第一节点包并获取第一节点包中的第一节点数据后,由终止节点接收在组网中经N个子节点依次传输的第一节点包,此时第一节点包包括第一包头,在传输顺序上,i小于k。
在步骤340中,终止节点接收在组网中传输的N个子节点传输的第一节点包,如图14(b)所示,此时接收到的第一节点包包括第一包头和第i个子节点添加的第一节点数据;或者,第一节点包在传输的过程中,第k个子节点接收第一节点包后获取第一节点包中的第一节点数据,最后由首节点接收第一节点包时,第一节点包则不包括第一节点数据。
进一步地,若方法300应用于图3或图5所示的组网系统,即环形组网系统还包括分支子节点,并且分支子节点参与环形组网数据传输时,则在方法300中的步骤320的同时,还可以包括:
步骤321:第i个子节点将第一节点包发送至第i个子节点的分支子节点,第i个子节点的分支子节点仅与第i个子节点连接。
或者,在步骤320之前,还可以包括:
步骤322:第i个子节点的分支子节点将第一节点数据发送至第i个子节点,第i个子节点的分支子节点仅与第i个子节点连接。
步骤321和步骤322的具体过程和参考方法100中的步骤121和步骤122,为了简洁,此处不再赘述。
在一种可选地实施例中,在方法300的步骤310中,首节点发送的第一节点包还可以包括第一目标数据,所述第一目标数据可以在传输过程中被第j个子节点或者第j个子节点的分支子节点接收,也可以最后由终止节点接收。
例如,当第一目标数据的目标节点为第j个子节点或者第j个子节点的分支节点时,j小于N,具体地,如图15(a)或图15(b)所示,首节点0在第一方向上发起传输第一节点包,第一方向如图15(a)或图15(b)所示的环形组网中的顺时针方向,应理解,第一方向也可以为如图15(a)或图15(b)所示的环形组网中的逆时针方向。此时第一节点包还包括第一目标数据,该第一目标数据的目标节点为第j个子节点或者第j个子节点的分支子节点,也就是说,第一目标数据将会被第j个子节点或者第j个子节点的分支子节点获取。可选地,第一目标数据可以包括第一寻址信息,该第一寻址信息用于指示该第一目标数据的目标节点即该第一目标数据由哪个节点所接收,该第一寻址信息可以设置成第一目标数据的包头,本申请对第一寻址信息的具体数据形式不做限制。该第一目标数据可以由起始节点自身产生,也可以由起始节点连接的外围设备产生,当起始节点为首节点时,第一目标数据可以由首节点连接的主机产生,该第一目标数据可以是任何公共数据或者非公共数据,例如可以节点或节点连接的外围设备产生的公共数据、或者非公共数据例如节点寄存器数据、节点中断数据等任何由节点自身或者外围设备产生的非公共数据,本申请实施例对第一目标数据的具体内容和功能不做限制。公共数据公共数据
需要说明的是,若第一目标数据的目标节点为终止节点,即若第一目标数据的目标节点不是某个子节点或者某个子节点连接的分支节点,则第一目标数据可以不带有第一寻址信息,最后经过组网传输至终止节点。
若第一节点包还包括第一目标数据且第一目标数据的目标节点为第j个子节点时,则在步骤340之前,方法300还包括:
步骤330:第j个子节点接收该第一节点包,并获取该第一节点包中的第一目标数据。
在步骤330中,带有第一目标数据的第一节点包在组网传输方向上依次传输并由第j个子节点接收,由于第一目标数据的目标节点为第j个子节点,第j个子节点接收第一节点包并获取第一节点包中的第一目标数据。应理解,执行步骤320和步骤330的节点可以为同一节点,即第j个子节点可以为第i个子节点,j等于i。并且若步骤320和步骤330不为同一子节点,本申请实施例对步骤320和步骤330执行的先后顺序不做限制。
若第一节点包还包括第一目标数据且第一目标数据的目标节点为第j个子节点的分支子节点时,则在步骤321之后、步骤340之前,方法300还包括:
步骤331:第j个子节点的分支子节点接收该第一节点包,并获取第一节点包中的第一目标数据。应理解,在第一方向上,执行步骤320和步骤330的子节点可以为同一子节点,也可以为不同子节点,即i可以等于j。
现给出上述方法300中当步骤310的第一节点包还包括第一目标数据且应用于图2或图3所示环形组网系统的3个示例性传输流程图,如图15(a)所示,首节点0在第一方向上即图示环形组网顺时针方向发起传输第一节点包,第一节点包包括第一包头和第一目标数据,该第一目标数据的目标节点为子节点2,则经过2个子节点传输后,第一节点包由第2个子节点即子节点2接收,子节点2执行步骤330,即子节点2获取第一节点包中的第一目标数据,之后子节点2将包括第一包头和第一节点数据的第一节点包继续在环形组网中传输,传输至子节点3时,子节点3执行步骤320,即添加第一节点数据至第一节点包,该第一节点数据的目标节点为子节点4,则之后子节点3将包括第一包头和第一节点数据的第一节点包沿第一方向发送至下一个节点即子节点4,子节点4获取第一节点包中的第一节点数据,此时第一节点包中包括第一包头而不包括第一节点数据,包括第一包头的第一节点包沿着第一方向继续传输,最后传输至首节点0,首节点0接收经过所有子节点即N个子节点传输的第一节点包,此时第一节点包包括第一包头,而不包括第一目标数据以及第一节点数据。
如图15(b)所示,图15(b)与图15(a)不同点在于,在图15(b),中,子节点3添加的第一节点数据最后由首节点0接收,首节点0接收的第一节点包包括第一包头和第一节点数据,而不包括第一目标数据。
应理解,以上图15(a)或图15(b)所示的实施例,在步骤310中,第一节点包还可以包括多个目标数据,如第一目标数据、第二目标数据等,第一目标数据的目标节点为第j个子节点,第二目标数据的目标节点例如为第i个子节点,本申请实施例对第一节点包中的目标数据的数量不做限制,仅以目标节点为第j个子节点为例进行示例性说明。执行步骤320的过程可以重复多次,即可以有多个节点添加对应的节点数据至第一节点包中,例如第i个子节点添加第一节点数据,第k个子节点添加第二节点数据,本申请实施例仅以第i个子节点为例进行示例性说明。
或者,进一步地,若方法300应用于如图3所示带有分支子节点的组网系统中,并且分支子节点执行步骤331时,则可例如图15(c)所示,首节点0发起传输的第一节点包包括第一包头和第一目标数据,第一目标数据的目标节点为分支子节点1,则第一节点包在沿着第一方向传输的过程中,当传输至连接有分支子节点1的子节点3时,子节点3同时执行步骤320和步骤321,即子节点3将该带第一节点包发送至分支子节点1,并添加第一节点数据至该第一节点包,该第一节点数据由子节点3或者子节点3连接的外围设备产生,然后继续将带有第一包头、第一节点数据的第一节点包沿着第一方向发送至下一子节点,最后依次传输至首节点0。而分支子节点1接收到子节点3发送的第一节点包后,执行步骤331,即获取第一节点包中的第一目标数据。应理解,子节点3同时执行步骤320和步骤321是互不干扰的,并且可以存在多个分支子节点,以及多个分支子节点都可以执行步骤321,或者是在子节点3执行步骤320之前,分支子节点执行步骤322,将分支子节点产生或分支子节点连接的外围设备产生的第一节点数据先发送至子节点3,后由子节点3执行步骤322即将第一节点数据添加至第一节点包后经过环形组网传输至首节点。本申请实施例仅以子节点3执行步骤320以及分支子节点1执行步骤321和步骤331作为示例。
现给出当上述方法300中的步骤310中第一节点包还包括第一目标数据且应用于如图4或图5所示组网系统的2个示例性传输流程图,并且以起始节点为末尾子节点,终止节点为首节点为例,应理解,执行步骤310时,第一节点包可以仅包括第一包头而不包括其他数据,本示例性传输流程图以图4和图5所示组网中的第一条链路为例进行说明,如图16(a)所示,在该组网中,首节点0、子节点1、子节点2、子节点3形成一条串行组网链路,应理解,若是在该串行组网链路中,数据由首节点发起,则依次经过子节点1、子节点2、子节点3,若是数据由子节点3发起,则依次经过子节点2、子节点1、首节点0。
子节点3作为该链路的末尾子节点,子节点3发起传输第一节点包,第一节点包中包括第一目标数据,继而子节点3将该第一节点包传输至子节点2,子节点2接收第一节点包后,添加第一节点数据至第一节点包中,该第一节点数据的目标节点为子节点1。子节点3将该带有第一目标数据和第一节点数据的第一节点包发送至子节点1,由于第一节点数据的目标节点为子节点1,子节点1接收第一节点包并获取其中的第一节点数据,此时第一节点包则不包括第一节点数据,子节点1继而将该带有第一目标数据的第一节点包继续发送至首节点0,由首节点0接收。可选地,第一节点数据的目标节点也可以不为子节点1,而由首节点0接收第一节点数据,第一目标数据的目标节点也可以为某个子节点例如子节点2,而首节点接收到的第一节点包中则不包括第一目标数据,可选地,子节点1也可以同时获取第一节点包中的第一目标数据,并另外还添加节点数据至第一节点包中。
或者,进一步地,若方法300应用于如图5所示带有分支子节点的系统中,则可如图16(b)所示,在该组网中,首节点0、子节点1、子节点2、子节点3形成一条串行组网链路,另外子节点2还连接分支子节点1,分支子节点1参与传输时仅与子节点2通信。子节点3作为该链路的末尾子节点,发起传输第一节点包,第一节点包中包括第一目标数据,继而子节点3将该第一节点包传输至子节点2,在子节点2执行步骤320之前,分支子节点1将第一节点数据发送至子节点2,该第一节点数据则由分支子节点1或者分支子节点1连接的外围设备产生,之后子节点2执行步骤320,将第一节点数据添加至第一节点包,此时第一节点包包括第一目标数据和第一节点数据,第一节点包继续传输至下一节点即子节点1,由于第一节点数据的目标节点为子节点1,子节点1接收第一节点包并获取第一节点包中的第一节点数据,此时第一节点包则不包括第一节点数据,子节点1继而将该带有第一目标数据的第一节点包继续发送至首节点0,由首节点0接收。
因此,通过上述方法300,可以支持实现数据包在组网的传输过程中,子节点可以根据配置和实际应用需求从而添加新的数据至起始节点发起的数据包中,或者获取组网中的数据包中的数据,并且同一数据包中可以同时承载多种类型的数据,以形成更灵活地环形组网数据传输,提升数据传输的效率、带宽和降低数据传输的时延,若方法300还包括涉及到分支子节点的步骤321、步骤322、步骤331,则还能进一步减少组网的布线,节约整体组网系统的成本。
在一种可选地实施例中,在环形组网传输的步骤310中,起始节点发送的第一节点包中还可以包括公共数据字段,第一节点数据包括第一公共数据和/或第一非公共数据,第一目标数据也可以包括第二公共数据和/或第二非公共数据。也就是说,可选地,为了有利于不同类型的数据传输管理,从而提升数据传输的稳定性,将某个子节点添加的节点数据和起始节点发起的第一目标数据细分为公共数据和非公共数据,例如第i个子节点添加的第一节点数据包括第一公共数据,起始节点发起的第一目标数据包括第二非公共数据。需要说明的是,公共数据例如为音频数据、广播数据等公共传输的数据,即公共数据表示在组网中各个节点之间公共传输的数据,可以被多个节点接收或处理,非公共数据例如为配置数据、读取数据、中断数据、控制数据、命令数据、雷达数据、视频数据、图像数据、传感数据、车机管理数据等非公共传输的数据,即非公共数据为除公共数据以外的任何数据,表示在组网中各个节点之间非公共传输的数据,其仅被设定的目标节点接收或处理。应理解,第i个子节点添加的第一节点数据可以同时包括第一公共数据和第一非公共数据,也可以仅包括第一公共数据,起始节点发起的第一目标数据可以同时包括第二公共数据和第二非公共数据,也可以仅包括第二非公共数据。首节点发起的第一节点包中包括公共数据字段,应理解,在未添加公共数据之前,公共数据字段为无效数据,例如可以为空,在添加公共数据之后,公共数据字段则包括有效数据。当首节点发起的第一节点包中还包括公共数据字段,则第一包头还可以包括指示长度信息,该指示长度信息用于指示公共数据字段的长度,有利于子节点识别在公共数据字段之外的其他数据的起始位置,以便于子节点能够快速识别和获取自身所需的数据。
通过将节点数据细分为公共数据和非公共数据,有利于不同类型的数据传输管理,从而提升数据传输的稳定性。
当起始节点发起传输的第一节点包包括公共数据字段,且第一节点包包括第一目标数据,而第一目标数据包括第二公共数据时,步骤310包括:
步骤312:起始节点发起传输第一节点包,所述第一节点包包括第一目标数据和公共数据字段,所述第一目标数据包括第二公共数据,所述公共数据字段用于放置第二公共数据。
应理解,在步骤312中,第一目标数据还可以包括第二非公共数据,然而仅有第二公共数据才可以被放置于公共数据字段中,此时公共数据字段可以被第二公共数据填充满,也可以被第二公共数据填充后仍有空余部分可以放置其他子节点的公共数据。
当起始节点发起传输时的第一节点包包括公共数据字段,第一节点数据包括第一公共数据时,方法300中的步骤320包括:
步骤323:第i个子节点接收第一节点包,并将第一公共数据添加至第一节点包中的公共数据字段。
具体地,在步骤323中,由于第一节点数据包括第一公共数据,第i个子节点则将第一公共数据添加至第一节点包中的公共数据字段,添加后,应理解,此时公共数据字段包括有效数据。
通过上述步骤320,将公共数据添加至公共数据字段中,能够更好地集中传输公共数据,实现简单,并且使得公共数据传输的时延可控。
进一步地,在一种可选地实施例中,在步骤310中,方法300还包括:
步骤311:起始节点对第一公共包中的空闲部分划分一个或多个空闲字段,该多个空闲字段等长。
在步骤311中,如图17(a)所示,若第一节点包仅包括第一目标数据,则对第一节点包中除第一目标数据之外的空闲部分划分一个或多个空闲字段,例如第一空闲字段、第二空闲字段,并且第一空闲字段和第二空闲字段等长;如图17(b)所示,若第一节点包仅包括公共数据字段和第一目标数据,且第一目标数据仅包括非公共数据,则对第一公共包中除公共数据字段和第一目标数据之外的空闲部分划分一个或多个空闲字段,若划分多个空闲字段,则多个空闲字段等长,应理解,若第一目标数据包括第二公共数据,则可将第二公共数据放置于公共数据字段中。
在一种可选地实施例中,在步骤330中,方法300还包括:
步骤332:第j个子节点接收该第一节点包,并获取该第一节点包中的该第一目标数据,并将该第一目标数据对应的字段标记为空闲字段。
具体地,第j个子节点接收第一节点包后,获取该第一节点包中的第一目标数据,并将该第一目标数据对应的字段标记为空闲字段,以便第一节点包能够具备更多的空闲字段用于添加新的数据。
特别地,若第一目标数据的目标节点为第j个子节点的分支子节点,则第j个子节点接收第一节点包,将第一节点包中第一目标数据对应的字段标记为空闲字段并传输至下一个节点的同时,第j个子节点执行步骤321,使得第j个子节点的分支子节点获取第一目标数据,因为第一目标数据对于第一方向上剩余节点的传输而言是无效数据,该第一目标数据对应的字段可以被标记为空闲字段从而用于添加新的数据。
以及,在步骤340中,还可以包括:
步骤341:第k个子节点接收第一节点包并获取第一节点包中的第一节点数据,并将该第一节点数据对应的字段标记为空闲字段。
应理解,第j个子节点和第k个子节点可以为同一节点,也可以为不同节点。步骤341的实现方式可参照步骤311,此处不再赘述。
因此,通过步骤311和/或步骤332和/或步骤341,可以使得第一节点包中包括空闲字段,并且多个空闲字段等长,以便于各个子节点能够更快速地识别第一节点包中是否还有空闲带宽能够添加新的数据,提升子节点添加数据的效率,降低子节点的配置复杂度,实现简单。
当执行步骤311和/或步骤332和/或步骤341后,第一节点包中则包括空闲字段,因此在执行步骤320时,步骤320可以包括:
步骤324:第i个子节点接收第一节点包,并将第一节点数据添加至第一节点包中的该空闲字段。
或者,若第一节点数据包括第一非公共数据,所述方法300还可以包括:
步骤325:第i个子节点接收第一节点包,并将第一非公共数据添加至第一节点包中的空闲字段。
若节点数据被划分为公共数据和非公共数据,则添加节点数据时,将公共数据添加至公共数据字段,将非公共数据添加至空闲字段,即将不同类型的数据添加至不同的字段中,便于数据传输的管理,提高组网数据传输的稳定性。公共数据在执行步骤311和/或332和/或步骤341后,第一节点包中包括空闲字段,则各个子节点都可以将其需要在组网传输的节点数据添加至第一节点包中的空闲字段。若节点数据未划分公共数据和非公共数据,则执行步骤324,子节点将节点数据添加至第一节点包中的空闲字段;若节点数据划分公共数据和非公共数据,则执行步骤325,子节点将节点数据中的非公共数据添加至第一节点包中的空闲字段,以及执行步骤323,子节点将节点数据中的公共数据添加至第一节点包中的公共数据字段,应理解,执行步骤323和执行步骤325不存在先后顺序,可以先执行步骤323,也可以先执行步骤325,并且可以存在多个子节点分别执行步骤323和步骤325。
上述步骤311、步骤332和步骤341可以同时存在,也可以仅存在步骤311或步骤332或步骤341,若执行步骤324或步骤325,则必须先执行步骤311和/或步骤332和/或步骤341。
应理解,在第一节点包在第一方向的传输过程中,可以多次出现步骤332、步骤341中某个子节点获取数据并标记空闲字段的过程以及步骤323、步骤324、步骤325中某个子节点添加节点数据的过程,本申请对此不做限制。具体地,本申请给出了以上方法300的一种示例流程400,该示例性流程400为方法300应用于图2或图3所示环形组网的示例性流程图,图18为示例流程400对应的数据传输示意图,在该示例流程400和对应的数据传输示意图图18中,节点数据划分为公共数据和非公共数据,而第一目标数据仅包括非公共数据,在示例流程400中,执行了上述步骤310、步骤311、步骤323、步骤332、步骤325。
具体地,流程400包括以下步骤:
流程401:首节点0在第一方向上发送第一节点包,第一节点包包括第一包头、公共数据字段、第一目标数据、第二目标数据、第一空闲字段。
其中,第一目标数据的目标节点为子节点1,第二目标数据的目标节点为子节点3,该第一空闲字段为通过步骤311划分的空闲字段。可选地,当首节点发送的第一节点包中的数据量过大而没有空余空间划分空闲字段时,也可以不存在空闲字段,即不执行步骤311。
流程402:子节点1接收第一节点包以及获取第一节点包中的第一目标数据,并将第一目标数据对应的字段标记为空闲字段即第二空闲字段。
具体地,由于第一目标数据的目标节点为子节点1,因此第一节点包传输至子节点1时,子节点获取第一目标数据并执行步骤332。
流程403:子节点2接收第一节点包,子节点2的第一节点数据包括第一公共数据和第一非公共数据,子节点2将第一公共数据添加至公共数据字段,以及将第一非公共数据添加至第一空闲字段。
可选地,也可以将第一非公共数据添加至第二空闲字段,即第一非公共数据可以添加至除公共数据字段之外的任意空闲字段。
流程404:子节点3接收第一节点包,并获取第一节点包中的第二目标数据,并将第二目标数据标记为第三空闲字段,以及子节点3的第二节点数据包括第二公共数据和第二非公共数据,子节点3将第二公共数据添加至公共数据字段,以及将第二非公共数据添加至第二空闲字段。此时第一节点包包括第一公共数据、第二公共数据、第二非公共数据、第三空闲字段、第一非公共数据,子节点3将该第一节点包继续沿着第一方向向下一个节点传输。
在流程404中,子节点3同时执行了步骤323、步骤351、步骤332。经过流程404后,第一节点包包括第一公共数据、第二公共数据、第二非公共数据、第三空闲字段、第一非公共数据。
流程405:包括第一公共数据、第二公共数据、第二非公共数据、第三空闲字段、第一非公共数据的第一节点包在第一方向上剩余的子节点进行依次传输,最后传输至首节点0,由首节点0接收。
进一步地,在执行步骤324或者步骤351时,可能存在某一节点的节点数据的数据长度太长以至于单个空闲字段或者所有空闲字段无法放置该节点的节点数据的情况,其中,节点数据可以仅包括非公共数据,则步骤324还可以包括:
步骤3241:第i个子节点将第一节点数据划分,使得所述第一节点数据包括至少两段第一节点数据。
若当前第一节点包中的多个空闲字段可以放置该节点的节点数据时,则步骤324包括:
步骤3242:第i个子节点将至少两段第一节点数据分别添加至第一节点包中的多个空闲字段。
若当前第一节点包中的所有空闲字段无法放置该节点的节点数据时,则步骤324包括:步骤3243:第i个子节点将至少两段第一节点数据的第一部分分别添加至第一节点包中的空闲字段。
进一步地,方法300还包括步骤361、步骤362、步骤363:
步骤361:起始节点发起传输第二节点包,该第二节点包包括第二包头。
步骤362:第i个子节点接收该第二节点包,该第二节点包包括空闲字段,第i个子节点将至少两段第一节点数据的第二部分添加至该第二节点包的空闲字段。
步骤363:终止节点接收该第一节点包和第二节点包,并将至少两段第一节点数据的第一部分和至少两段第一节点数据的第二部分组合为第一节点数据。
上述步骤3241、步骤3242、步骤3243、步骤361、步骤362、步骤363的具体过程和描述可参照上述方法100中的步骤1231、步骤1232、步骤1233、步骤150、步骤160、步骤170的相关描述,为了简洁,此处不再赘述。
因此,通过上述步骤对节点数据分段,并将分段后的节点数据放置于不同的节点包中分次传输,能够实现过长的数据也能够完整地在组网中传输,并且提升此类长数据的传输效率和时延。
同理,若节点数据包括公共数据和非公共数据,则可仅对非公共数据执行上述对第一节点数据执行的操作,为了简洁,此处不再赘述。
需要说明的是,若不通过步骤311和步骤323划分空闲字段,即不执行步骤324和步骤325,因此,步骤320则可以包括:
步骤326:第i个子节点接收第一节点包,解析第一节点包是否还有空闲部分,若有则将第一节点数据添加至第一节点包中。
或者,当第一节点数据包括第一非公共数据时,步骤320则可以包括:
步骤327:第i个子节点接收第一节点包,解析第一节点包是否还有空闲部分,若有则将第一非公共数据添加至第一节点包中。
也就是说,当子节点i接收到第一节点包时,解析第一节点包是否还有空闲部分,若有,则将第一节点数据或第一节点数据中的第一非公共数据添加至第一节点包中,当多个子节点都需添加节点数据或非公共数据至第一节点包时,每个子节点根据自身节点数据或非公共数据的实际长度直接放入第一节点包中,每个子节点产生的节点数据或非公共数据可能长度不同。
通过步骤326或者步骤327,各个子节点都能根据当前第一节点包的具体情况添加节点数据,能够更加有效地利用带宽,提升带宽利用率,但是相比于空闲字段添加节点数据的步骤,该步骤326或者步骤327的数据传输的可靠性略差,组网传输的稳定性低。
进一步地,在方法300中,当起始节点为首节点且终止节点也为首节点时,则在组网传输方向上,当第一节点数据或第一目标数据经过N个节点后传输至首节点0即经过步骤340后,如图19所示,方法300还可以包括:
步骤371:首节点解析第一节点包,判断第一节点包中的第一节点数据或第一目标数据的目标节点是否为首节点。
具体地,第一目标数据可以包括第一寻址信息,用于指示该第一目标数据的接收节点,第一节点数据可以包括第二寻址信息,用于指示该第一节点数据的目标节点。应理解,起始节点发起的第一目标数据和各节点所添加的节点数据都可以带有寻址信息,该寻址信息用于指示该节点数据的目标节点,目标节点可以为首节点也可以为其他子节点。首节点可以通过该寻址信息来判断该节点数据的目标节点是否为首节点,其他子节点也可以通过该寻址信息得知该节点数据的目标节点是否为自身。
若是,则执行步骤372:首节点获取第一节点包中的第一节点数据或第一目标数据。
若否,则执行步骤373:首节点发起传输第三节点包,该第三节点包包括第一节点数据或第一目标数据。
或者,当应用在图4或图5所示组网系统,且该组网系统同时存在两条链路的传输时,即第一条链路和第二条链路同时在传输数据,所述两条链路通过首节点连接,且此时起始节点为末尾子节点,终止节点为首节点,当第一节点数据或第一目标数据经过N个节点传输至首节点0即经过步骤340之后,则方法300还可以包括:
步骤381:首节点解析第一节点包,判断第一节点包中的第一节点数据或第一目标数据的目标节点是否为首节点,其中,该第一节点包由第一条链路传输至首节点。
步骤381的具体过程可参照上述步骤371的描述,为了简洁,此处不再赘述。
若是,则执行步骤382:首节点获取第一节点包中的第一节点数据或第一目标数据。
若否,则执行步骤383:首节点在第二条链路发起传输第四节点包,该第四节点包包括第一节点数据或第一目标数据。
具体地,例如,在步骤381中,第一节点包中的第一节点数据由如图4中的第一条链路的子节点3添加,并且其目标节点为第二条链路中的子节点6,则先由第一条链路将第一节点包传输至首节点0,首节点0判断其中的第一节点数据不是由自身接收而是由第二条链路的子节点6接收,则在第二条链路发起传输第四节点包,并且将第一节点数据放入第四节点包,之后第四节点包在第二条链路传输至子节点6时可由子节点6接收。如此则可满足第一条链路和第二条链路之间的节点进行数据互传,使得组网传输更加灵活。
需要说明的是,当数据被划分为公共数据和非公共数据后,公共数据会被首节点接收获取,而首节点可对非公共数据执行如上述步骤371和步骤373。
上述过程可参照方法100中步骤180、步骤181、步骤182的相关过程和描述,为了简洁,此处不再赘述。
通过图19所示步骤,能够支持各个子节点的数据传输需求,使得子节点添加的数据可以被任意节点接收,即可以使得子节点添加的数据被首节点接收,也可以被其他任意子节点接收,提升了组网数据的数据灵活性,满足各类数据传输的需求。
进一步地,若方法300应用于图4或图5所示环形组网中,即起始节点为首节点且终止节点为首节点,则在步骤320中,第i个子节点添加的第一节点数据的目标节点为第m个子节点,且在第一方向上,i大于m,则方法300还可以包括:
步骤384:第i个子节点接收首节点在第二方向上传输的第五节点包,并将第一节点数据添加至第五节点包中。
也就是说,第i个子节点若想要传输第一节点数据给第m个子节点,且在第一方向上,i大于m,则第i个子节点可以根据步骤320、步骤381、步骤383来实现,也可以直接通过步骤384来实现,第i个子节点可被配置为遵循优先传输原则,判断哪种方式的传输路径更近,则选择两种方式其一来传输第一节点数据给第m个子节点。应理解,对于第i个子节点而言,可以同时存在第一方向和第二方向上的传输,意味着第i个子节点可以任意选择将第一节点数据添加至第一方向上传输的第一公共包或者第二方向上传输的第五节点包。
通过上述步骤384,能够更加灵活地支持子节点和子节点之间互相传输数据的场景,节省子节点之间数据传输的时延。
如图20所示,本申请实施例还提供了一种芯片500,该芯片500包括处理器510和存储器520,其中,处理器510用于调用并运行存储器520中存储的计算机程序,以执行上述方法100或者上述方法300中的任意步骤,该芯片500可以是方法100中的首节点或子节点,以实现上述方法100中由首节点或子节点对应实现的步骤,或者可以是方法300中的首节点或子节点,以实现上述方法300中由首节点或子节点对应实现的步骤。
如图21所示,本申请实施例还提供了一种通信系统600,该通信系统600包括图20中的芯片500以及外围设备610,芯片和外围设备610连接和通信,以实现组网系统不同的应用场景。
在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器或处理设备可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、微控制器(Microcontroller Unit,MCU)、中央处理器(Central Processing Unit)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上述的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例中的具体的例子只是为了帮助本领域技术人员更好地理解本申请实施例,而非限制本申请实施例的范围,本领域技术人员可以在上述实施例的基础上进行各种改进和变形,而这些改进或者变形均落在本申请的保护范围内。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (39)

1.一种组网数据传输方法,所述组网包括首节点和N个子节点,N大于1,所述组网数据传输方法包括:
所述首节点发起传输第一公共包,所述第一公共包包括第一公共数据;
第i个子节点接收在所述组网中依次传输的所述第一公共包,并将第一节点数据添加至所述第一公共包;
终止节点接收在所述组网中经所述N个子节点依次传输的所述第一公共包,此时所述第一公共包包括所述第一公共数据和所述第一节点数据,
或者,第k个子节点接收在所述组网中依次传输的所述第一公共包并获取所述第一公共包中的所述第一节点数据后,由所述终止节点接收在所述组网中经所述N个子节点依次传输的所述第一公共包,此时所述第一公共包包括所述第一公共数据,
其中,在传输顺序上,i小于k。
2.根据权利要求1所述的方法,其特征在于,所述终止节点为所述首节点,或者,所述终止节点为所述N个子节点中的末尾子节点。
3.根据权利要求1所述的方法,其特征在于,所述组网还包括第i个子节点的分支子节点,所述第i个子节点接收所述第一公共包,并将第一节点数据添加至所述第一公共包的同时,所述方法还包括:
所述第i个子节点将所述第一公共包发送至所述第i个子节点的分支子节点,所述第i个子节点的分支子节点仅与所述第i个子节点连接。
4.根据权利要求1所述的方法,其特征在于,所述组网还包括第i个子节点的分支子节点,所述第i个子节点接收所述第一公共包,并将第一节点数据添加至所述第一公共包之前,所述方法还包括:
所述第i个子节点的分支子节点将所述第一节点数据发送至所述第i个子节点,所述第i个子节点的分支子节点仅与所述第i个子节点连接,所述第一节点数据由所述第i个子节点的分支子节点产生或者所述第i个子节点的分支子节点连接的外围设备产生。
5.根据权利要求1所述的方法,其特征在于,所述第一公共包还包括第一非公共数据,所述第一公共数据包括音频数据、广播数据中的至少一项,所述第一非公共数据包括配置数据、读取数据、中断数据、控制数据、命令数据、雷达数据、视频数据、图像数据、传感数据、车机管理数据中的至少一项。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
首节点对所述第一公共包中的空闲部分划分一个或多个空闲字段,所述多个空闲字段等长。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
第f个子节点接收在所述组网中依次传输的所述第一公共包并获取所述第一非公共数据后,将所述第一非公共数据对应的字段标记为空闲字段,
或者,所述第f个子节点接收在所述组网中依次传输的所述第一公共包,将所述第一公共包发送至所述f个子节点的分支子节点,由所述第f个子节点的分支子节点获取所述第一公共包中的所述第一非公共数据,同时,所述第f个子节点还将所述第一非公共数据对应的字段标记为所述空闲字段后发送至与其连接的下一个节点,所述下一个节点为所述子节点或所述终止节点。
8.根据权利要求6或7所述的方法,其特征在于,所述第i个子节点将第一节点数据添加至所述第一公共包,包括:
所述第i个子节点将所述第一节点数据添加至所述第一公共包中的所述空闲字段。
9.根据权利要求8所述的方法,其特征在于,所述第i个子节点将所述第一节点数据添加至所述第一公共包中的所述空闲字段,包括:
所述第i个子节点将所述第一节点数据划分,使得所述第一节点数据包括至少两段第一节点数据;
所述第i个子节点将所述至少两段第一节点数据分别添加至所述第一公共包中的所述多个空闲字段。
10.根据权利要求8所述的方法,其特征在于,所述第i个子节点将所述第一节点数据添加至所述第一公共包中的所述空闲字段,包括:
所述第i个子节点将所述第一节点数据划分,使得所述第一节点数据包括至少两段第一节点数据;
所述第i个子节点将所述至少两段第一节点数据的第一部分分别添加至所述第一公共包中的所述空闲字段。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述首节点发起传输第二公共包,所述第二公共包包括第二公共数据;
所述第i个子节点接收在所述组网中依次传输的所述第一公共包,并将所述至少两段第一节点数据的第二部分添加至所述第二公共包中的空闲字段;
所述终止节点接收所述第一公共包和所述第二公共包,并将所述至少两段第一节点数据的第一部分和所述至少两段第一节点数据的第二部分组合为所述第一节点数据。
12.根据权利要求1所述的方法,其特征在于,所述第i个子节点接收所述第一公共包,并将第一节点数据添加至所述第一公共包,包括:
所述第i个子节点接收所述第一公共包,解析所述第一公共包是否还有空闲部分,若有所述空闲部分则将所述第一节点数据添加至所述第一公共包中。
13.根据权利要求2所述的方法,其特征在于,当所述终止节点为所述首节点时,所述方法还包括:
所述首节点解析所述第一公共包,判断所述第一公共包中的所述第一节点数据的目标节点是否为所述首节点。
14.根据权利要求13所述的方法,其特征在于,
若所述第一节点数据的目标节点为所述首节点,则所述首节点获取所述第一公共包中的所述第一节点数据;
若所述第一节点数据的目标节点不为所述首节点,则所述首节点发起传输第一节点包,所述第一节点包包括所述第一节点数据,所述第一节点包的传输方向和所述第一公共包的传输方向相同或不同。
15.根据权利要求13所述的方法,其特征在于,所述第一节点数据包括第一寻址信息,所述第一寻址信息用于指示所述第一节点数据的目标节点。
16.根据权利要求1所述的方法,其特征在于,所述第一节点数据由所述第i个子节点产生,或者由所述第i个子节点连接的外围设备产生。
17.一种组网数据传输方法,所述组网包括首节点和N个子节点,N大于1,所述组网数据传输方法包括:
起始节点发起传输第一节点包,所述第一节点包包括第一包头;
第i个子节点接收在所述组网中依次传输的所述第一节点包,并将第一节点数据添加至所述第一节点包;
终止节点接收在所述组网中经所述N个子节点依次传输的所述第一节点包,此时所述第一节点包包括所述第一包头和所述第一节点数据,
或者,第k个子节点接收在所述组网中依次传输的所述第一节点包并获取所述第一节点包中的所述第一节点数据后,由所述首节点接收在所述组网中经所述N个子节点依次传输的所述第一节点包,此时所述第一节点包包括所述第一包头,在传输顺序上,i小于k。
18.根据权利要求1所述的方法,其特征在于,所述起始节点和所述终止节点均为所述首节点,或者,所述起始节点为所述首节点,所述终止节点所述多个子节点中的末尾子节点,或者,所述起始节点为所述多个子节点中的末尾子节点,所述终止节点为所述首节点。
19.根据权利要求17所述的方法,其特征在于,所述组网还包括第i个子节点的分支子节点,在所述第i个子节点接收所述第一节点包,并将第一节点数据添加至所述第一节点包的同时,所述方法还包括:
所述第i个子节点将所述第一节点包发送至所述第i个子节点的分支子节点,所述第i个子节点的分支子节点仅与所述第i个子节点连接。
20.根据权利要求17所述的方法,其特征在于,所述组网还包括第i个子节点的分支子节点,在所述第i个子节点接收所述第一节点包,并将第一节点数据添加至所述第一节点包之前,所述方法还包括:
所述第i个子节点的分支子节点将所述第一节点数据发送至所述第i个子节点,所述第i个子节点的分支子节点仅与所述第i个子节点连接,所述第一节点数据由所述第i个子节点的分支子节点产生或者所述第i个子节点的分支子节点连接的外围设备产生。
21.根据权利要求17所述的方法,其特征在于,所述第一节点数据包括第一公共数据,所述第一节点包还包括公共数据字段,所述第i个子节点接收所述第一节点包,并将第一节点数据添加至所述第一节点包,包括:
所述第i个子节点接收所述第一节点包,并将所述第一公共数据添加至所述第一节点包中的所述公共数据字段。
22.根据权利要求17所述的方法,其特征在于,所述方法还包括:
所述起始节点对所述第一节点包划分一个或多个空闲字段,所述空闲字段等长。
23.根据权利要求17所述的方法,其特征在于,所述起始节点在第一方向上发起传输第一节点包,所述第一节点包还包括第一目标数据,所述方法还包括:
当所述第一目标数据的目标节点为所述第j个子节点,所述第j个子节点接收所述组网中依次传输的所述第一节点包,并获取所述第一节点包中的所述第一目标数据;
或者,当所述第一目标数据的目标节点为所述第j个子节点的分支子节点,所述第j个子节点接收所述组网中依次传输的所述第一节点包,将所述第一节点包发送至所述第j个子节点的分支节点,所述第j个子节点的分支子节点接收所述第一节点包,并获取所述第一节点包中的所述第一目标数据。
24.根据权利要求23所述的方法,其特征在于,所述方法还包括:
所述第j个子节点将所述第一目标数据对应的字段标记为空闲字段。
25.根据权利要求17所述的方法,其特征在于,所述第k个子节点接收在所述组网中依次传输的所述第一节点包并获取所述第一节点包中的所述第一节点数据,包括:
所述第k个子节点接收在所述组网中依次传输的所述第一节点包并获取所述第一节点包中的所述第一节点数据,并将所述第一节点数据对应的字段标记为空闲字段。
26.根据权利要求22、24或者25所述的方法,其特征在于,所述第i个子节点接收在所述组网中依次传输的所述第一节点包,并将第一节点数据添加至所述第一节点包,包括:
所述第i个子节点接收在所述组网中依次传输的所述第一节点包,并将所述第一节点数据添加至所述第一节点包中的所述空闲字段。
27.根据权利要求25所述的方法,其特征在于,所述第一节点数据包括第一非公共数据和/或第一公共数据,所述第i个子节点接收在所述组网中依次传输的所述第一节点包,并将所述第一非公共数据添加至所述第一节点包中的所述空闲字段,和/或,所述第一节点包还包括公共数据字段,所述第i个子节点接收在所述组网中依次传输的所述第一节点包,并将所述第一公共数据添加至所述公共数据字段。
28.根据权利要求27所述的方法,其特征在于,所述第一公共数据包括音频数据、广播数据中的至少一项,所述第一非公共数据包括配置数据、读取数据、中断数据、控制数据、命令数据、雷达数据、视频数据、图像数据、传感数据、车机管理数据中的至少一项。
29.根据权利要求26所述的方法,其特征在于,所述方法还包括:
所述第i个子节点将所述第一节点数据划分,使得所述第一节点数据包括至少两段第一节点数据;
所述第i个子节点将所述至少两段第一节点数据分别添加至所述第一节点包中的多个所述空闲字段。
30.根据权利要求26所述的方法,其特征在于,所述方法还包括:
所述第i个子节点将所述第一节点数据划分,使得所述第一节点数据包括至少两段第一节点数据;
所述第i个子节点将所述至少两段第一节点数据的第一部分分别添加至所述第一节点包中的所述空闲字段。
31.根据权利要求30所述的方法,其特征在于,所述方法还包括:
所述起始节点发起传输第二节点包,所述第二节点包包括第二包头;
所述第i个子节点接收在所述组网中依次传输的所述第二节点包,所述第二节点包包括第二节点包的空闲字段,所述第i个子节点将所述至少两段第一节点数据的第二部分添加至所述第二节点包的空闲字段;
所述终止节点接收所述第一节点包和所述第二节点包,并将所述至少两段第一节点数据的第一部分和所述至少两段第一节点数据的第二部分组合为所述第一节点数据。
32.根据权利要求17所述的方法,其特征在于,第i个子节点接收所述第一节点包,并将第一节点数据添加至所述第一节点包,包括:
所述第i个子节点接收所述第一节点包,解析所述第一节点包中是否还有空闲部分,若有则将所述第一节点数据添加至所述第一节点包中,
或者,所述第一节点数据包括第一非公共数据,所述第i个子节点接收所述第一节点包,解析所述第一节点包中是否还有空闲部分,若有则将所述第一非公共数据添加至所述第一节点包中。
33.根据权利要求18所述的方法,其特征在于,当所述起始节点和所述终止节点均为所述首节点时,所述方法还包括:
所述首节点解析所述第一节点包,判断所述第一节点包中的第一节点数据的目标节点是否为所述首节点。
34.根据权利要求33所述的方法,其特征在于,
若所述第一节点数据的目标节点为所述首节点,则所述首节点获取所述第一节点包中的所述第一节点数据;
若所述第一节点数据的目标节点不为所述首节点,则所述首节点发起传输第三节点包,所述第三节点包包括所述第一节点数据,所述第一节点包的传输方向和所述第三节点包的传输方向相同或不同。
35.根据权利要求23所述的方法,其特征在于,
所述第一目标数据包括第一寻址信息,所述第一寻址信息用于指示所述第一目标数据的目标节点。
36.根据权利要求17所述的方法,其特征在于,所述第一节点由所述第i个子节点产生,或者由所述第i个子节点连接的外围设备产生。
37.根据权利要求18所述的方法,当所述起始节点为所述末尾子节点,所述终止节点为所述首节点,所述组网包括第一条链路和第二条链路,所述首节点连接所述第一条链路和所述第二条链路,所述方法还包括:
所述首节点解析所述第一节点包,判断所述第一节点包中的所述第一节点数据的目标节点是否为所述首节点,其中,所述第一节点包由所述第一条链路传输至所述首节点;
若所述第一节点包中的所述第一节点数据的目标节点不为所述首节点,则所述首节点在所述第二条链路发起传输第四节点包,所述第四节点包包括所述第一节点数据。
38.一种芯片,其特征在于,
包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1至37中任一项所述的方法。
39.一种通信系统,其特征在于,
包括如权利要求38所述的芯片以及外围设备,所述外围设备和所述芯片连接并且通信。
CN202311825182.1A 2023-12-26 2023-12-26 组网数据传输方法、芯片和通信系统 Pending CN117749565A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311825182.1A CN117749565A (zh) 2023-12-26 2023-12-26 组网数据传输方法、芯片和通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311825182.1A CN117749565A (zh) 2023-12-26 2023-12-26 组网数据传输方法、芯片和通信系统

Publications (1)

Publication Number Publication Date
CN117749565A true CN117749565A (zh) 2024-03-22

Family

ID=90281191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311825182.1A Pending CN117749565A (zh) 2023-12-26 2023-12-26 组网数据传输方法、芯片和通信系统

Country Status (1)

Country Link
CN (1) CN117749565A (zh)

Similar Documents

Publication Publication Date Title
US10678243B2 (en) Systems and methods for scalable electrical engineering (EE) architecture in vehicular environments
KR102320043B1 (ko) 차량용 제어 장치의 진단 방법 및 장치
US9813525B2 (en) In-vehicle apparatus for signal conversion between ethernet and CAN communication and control method thereof
KR101534923B1 (ko) 차량용 이더넷 백본 네트워크 시스템 및 이의 페일 세이프 제어 방법
CN106254518A (zh) 一种车载以太网系统及汽车
US20080304499A1 (en) Gateway device, network system and data converting method applied to vehicle using plurality of network protocol different from each other
CN111181829A (zh) 列车以太网数据传输设备及列车以太网数据传输方法
JP2007336267A (ja) 車載通信システム
CN117749565A (zh) 组网数据传输方法、芯片和通信系统
CN115092068A (zh) 一种整车控制系统及车辆
CN215642301U (zh) 通信系统和车辆
US9485139B2 (en) Communication node, communication system, and method for performing a communication
CN113711509B (zh) 车载通信系统、光耦合器以及车载装置
WO2021039315A1 (ja) 電子制御装置、データ送信方法
CN117377090A (zh) 一种节点配置方法、通信装置和通信系统
CN219544757U (zh) 域控制器及自动驾驶汽车
CN114650194B (zh) 数据通信的方法、装置、电子设备及存储介质
CN113132425B (zh) 一种车队信息传输方法、装置及设备
CN112671547B (zh) 车内业务切片的资源配置方法及装置、系统
CN117812104A (zh) 一种基于智驾域控制器的电子电气通信装置
CN117061518B (zh) 一种云原生虚拟can通信系统及方法
US20210092091A1 (en) Communication device for vehicle, communication system for vehicle, and communication method
JP2898684B2 (ja) 多重伝送方式
US20240089142A1 (en) Vehicle-mounted apparatus and a method for relaying
JP2904305B2 (ja) 多重伝送装置

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