CN113114708B - 一种Zonal控制器数据转发方法及*** - Google Patents
一种Zonal控制器数据转发方法及*** Download PDFInfo
- Publication number
- CN113114708B CN113114708B CN202110664229.5A CN202110664229A CN113114708B CN 113114708 B CN113114708 B CN 113114708B CN 202110664229 A CN202110664229 A CN 202110664229A CN 113114708 B CN113114708 B CN 113114708B
- Authority
- CN
- China
- Prior art keywords
- data
- message
- bus
- queue
- udp
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/165—Combined use of TCP and UDP protocols; selection criteria therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种Zonal控制器数据转发方法及***,包括总线接口数据转以太网和以太网数据转总线接口。其中,总线接口数据转以太网包括总线数据接收模块、总线接收数据输入队列、调度算法模块、参数配置表、报文解析模块、队列映射模块、UDP报文发送模块、以太网底层发送模块。以太网数据转总线接口包括以太网底层接收模块、UDP报文接收模块、UDP接收数据输入队列、调度算法模块、参数配置表、报文解析模块、队列映射模块、总线报文发送模块。本发明可根据产品需求和使用场景,通过软件配置参数的方式部署不同的数据转发调度规则,在有限的网络带宽下,提高数据传输效率,解决数据延迟。
Description
技术领域
本发明属于汽车电子软件领域,尤其涉及一种Zonal控制器数据转发方法及***。
背景技术
由于TSN协议以及随之而来的基于IP的端到端实时通信的引入,车辆中的线束将完全改变汽车电子电气架构。可以预见不久的将来,汽车EE架构“Zonal”将成主流,而“Zonal”架构以车载以太网为骨干串联数个Zonal控制器在局部区域中形成一个或几个环形结构,这些Zonal控制器将提供对CAN和LIN等传统汽车网络的访问,同时Zonal 控制器还充当着当网关和智能接线盒的角色。
一个 Zonal控制器上需要连接多个传感器和执行器,而这些传感器和执行器往往只提供传统的CAN和LIN等通讯接口,这就需要Zonal控制器通过 CAN和LIN等通讯接口采集传感器的数据,然后通过车载以太网转发出去,同时也需要通过车载以太网接收控制指令及数据,然后通过CAN和LIN等通讯接口下发给执行器。
那么多路传感器数据采用什么样的调度算法转发,以及如何在有限的网络带宽下提高数据传输效率,以及解决数据延迟等问题,则是绕不开的技术痛点。
发明内容
为解决现有技术中存在的不足,本发明的目的在于,提供一种Zonal控制器数据转发方法及***,设计一种最优调度算法,解决常规CAN和LIN等通讯接口和车载以太网数据转发中,在有限的网络带宽下,提高数据传输效率,以及解决数据延迟等问题。
为实现本发明的目的,本发明所采用的技术方案是:
一种Zonal控制器数据转发方法,包括总线接口数据转以太网和以太网数据转总线接口;
总线接口数据转以太网,包括:
通过总线数据接收模块实时监测并接受总线上的数据,并通过总线数据接收端口的总线接收线程把数据放入对应的总线接收数据输入队列中;
调度算法模块根据参数配置表中的参数,将总线接收数据输入队列中的数据按序放入转发队列;
报文解析模块将转发队列中的数据按设定的报文格式解析好报文直接发送到队列映射模块;
队列映射模块把解析好的报文依次映射到UDP报文发送模块,并通过对应的UDP报文发送端口转发;UDP报文发送端口通过对应的UDP发送线程把报文发送出去,经以太网底层发送模块的TCP/IP协议发送报文;
以太网数据转总线接口,包括:
以太网底层接收模块实时监测并接收以太网上的数据,通过TCP/IP协议把有效报文映射到UDP报文接收模块;并通过UDP报文接收端口的UDP接收线程接收报文数据并判断报文的完整性,将正确的报文放入对应的UDP接收数据输入队列中;
调度算法模块根据参数配置表中的参数,将UDP接收数据输入队列中的数据按序放入转发队列;
报文解析模块将转发队列中的数据按设定的报文格式解析好报文直接发送到队列映射模块;
队列映射模块把解析好的报文依次映射到总线报文发送模块,并通过对应的总线报文发送端口转发;总线报文发送端口通过对应的总线发送线程把报文发送出去。
进一步地,参数配置表中的参数包括:优先级、门控状态以及调度序列;
门控状态分为开启和关闭,控制闸门的开启和关闭;
调度序列是由开启和关闭门控状态组成的一个序列,按时间片轮转调度法来控制闸门开启和关闭;
当门控状态为开启时,按优先级转发队列数据。
进一步地,总线接收数据输入队列和UDP接收数据输入队列,其长度可在参数配置表中设置,亦可在程序中定义缺省值;
当两者都定义了队列长度时,优先使用参数配置表中的值。
进一步地,UDP报文包括报头和数据;
报头包括报文数据类型、报文序列号、数据帧类型和数据帧个数,数据包括一个及以上总线数据帧;
总线数据帧包括总线标识符、总线类型标识符、数据长度和数据区。
进一步地,总线接口数据转以太网的报文解析模块,是一个组包的过程,把总线数据帧加上报头组成UDP数据包;
以太网数据转总线接口的报文解析模块,是一个拆包的过程,把UDP数据包拆解成总线数据帧。
进一步地,每个UDP报文发送端口分配一个私有转发队列来存放需要转发的报文,UDP发送线程实时查询UDP报文发送端口的转发队列是否为空,当转发队列不为空时,从转发队列取数然后从对应的UDP报文发送端口上把数据发送出去,发送完成后,UDP发送线程又回头查询UDP报文发送端口的转发队列是否为空,如此不断循环。
进一步地,每个总线报文发送端口对应一路物理总线通道,同时在软件中每个总线报文发送端口分配一个私有的转发队列来存放需要转发的报文,总线发送线程实时查询总线报文发送端口的转发队列是否为空,当队列不为空时,从队列取数然后从对应的总线报文发送端口上把数据发送出去,发送完成后总线发送线程又回头查询端口转发队列是否为空,如此不断循环。
一种Zonal控制器数据转发***,包括总线接口数据转以太网***和以太网数据转总线接口***;
总线接口数据转以太网***,包括总线数据接收模块、总线接收数据输入队列、调度算法模块、参数配置表、报文解析模块、队列映射模块、UDP报文发送模块、以太网底层发送模块;
总线数据接收模块实时监测并接受总线上的数据,并通过总线数据接收端口的总线接收线程把数据放入对应的总线接收数据输入队列中;调度算法模块根据参数配置表中的参数,将总线接收数据输入队列中的数据按序放入转发队列;报文解析模块将转发队列中的数据按设定的报文格式解析好报文直接发送到队列映射模块;队列映射模块把解析好的报文依次映射到UDP报文发送模块,并通过对应的UDP报文发送端口转发;UDP报文发送端口通过对应的UDP发送线程把报文发送出去,经以太网底层发送模块的TCP/IP协议发送报文;
以太网数据转总线接口***,包括以太网底层接收模块、UDP报文接收模块、UDP接收数据输入队列、调度算法模块、参数配置表、报文解析模块、队列映射模块、总线报文发送模块;
以太网底层接收模块实时监测并接收以太网上的数据,通过TCP/IP协议把有效报文映射到UDP报文接收模块;并通过UDP报文接收端口的UDP接收线程接收报文数据并判断报文的完整性,将正确的报文放入对应的UDP接收数据输入队列中;调度算法模块根据参数配置表中的参数,将UDP接收数据输入队列中的数据按序放入转发队列;报文解析模块将转发队列中的数据按设定的报文格式解析好报文直接发送到队列映射模块;队列映射模块把解析好的报文依次映射到总线报文发送模块,并通过对应的总线报文发送端口转发;总线报文发送端口通过对应的总线发送线程把报文发送出去。
本发明的有益效果在于,与现有技术相比,本发明所述的Zonal控制器数据转发方法及***,可根据产品需求和使用场景,通过软件配置参数的方式部署不同的数据转发调度规则,同时在有限的网络带宽下,提高数据传输效率,以及解决数据延迟等问题。本发明既解决了现有技术的痛点,又在生产实践中提高了工作效率。
附图说明
图1是Zonal控制器数据转发原理框图;
图2是报文格式示意图;
图3是调度算法逻辑框图。
具体实施方式
下面结合附图和实施例对本发明的技术方案作进一步的说明。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本申请的保护范围。
如图1所示,本发明所述的Zonal控制器数据转发方法,设计一种最优的调度算法,来解决常规CAN和LIN等通讯接口和车载以太网数据转发中,数据传输效率以及数据延迟等问题。本发明所述的Zonal控制器数据转发方法,包括两种数据转发方式:总线接口数据转以太网和以太网数据转总线接口。
总线接口数据转以太网包括总线数据接收模块、总线接收数据输入队列、调度算法模块、参数配置表、报文解析模块、队列映射模块、UDP报文发送模块、以太网底层发送模块。
以太网数据转总线接口包括以太网底层接收模块、UDP报文接收模块、UDP接收数据输入队列、调度算法模块、参数配置表、报文解析模块、队列映射模块、总线报文发送模块。
为了描述方便,本发明以CAN代替常规通讯中CAN和LIN等,但这不代表本发明数据转发方法只适用于CAN。且,本发明中以4路CAN数据转发为例进行说明,但不仅仅表示只转发4路,在本发明中,4路表示多路的意思。
本发明所述的Zonal控制器数据转发方法,包括两种数据转发方式:CAN转以太网和以太网转CAN。
CAN转以太网包括CAN数据接收模块(CAN Recv)、CAN接收数据输入队列(InputQueue、IQ)、调度算法模块、参数配置表、报文解析模块、队列映射模块、UDP报文发送模块(UDP Send)、以太网底层发送模块(EMAC TX)。
CAN数据接收模块(CAN Recv)实时监测CAN总线上的数据变化,当有数据需要接收时,触发硬实时中断,在中断服务进程中读取数据,并通过对应的CAN数据接收端口(CANPort),CAN接收线程把数据放入与之相对应的CAN接收数据输入队列(IQ)中。
调度算法模块根据参数配置表中的优先级(prio)、门控状态(gate)以及调度序列(Schedule)等参数来决定CAN接收数据输入队列(IQ)中哪个通道的数据优先转发,以及根据转发时占用网络资源的时间长短等调度信息进行排序,然后按序放入转发队列。
报文解析模块实时判断转发队列是否有数据,如果有数据则从转发队列中取数,然后按设定的报文格式进行编解码计算,完成报文解析;解析好的报文直接发送到队列映射模块,这样就完成一次报文解析循环;然后报文解析模块从头开始(即从转发队列取数)进行新一轮循环,直到转发队列为空。
队列映射模块把解析好的报文按参数配置表中的内容依次映射到UDP报文发送模块的对应的端口(UDP Port)上排队转发;UDP报文发送端口(UDP Port)在参数配置表中已设置好,由UDP发送线程(UDP socket)绑定既可。每个UDP报文发送端口(UDP Port)分配一个私有的转发队列来存放需要转发的报文,对列长度在参数配置表中设置。每个UDP报文发送端口(UDP Port)都有一个对应的UDP发送线程(UDP socket),此UDP发送线程实时查询UDP报文发送端口(UDP Port)的转发队列是否为空,当转发队列不为空时,从转发队列取数然后从对应的UDP报文发送端口上把数据发送出去,发送完成后,UDP发送线程又回头查询UDP报文发送端口(UDP Port)的转发队列是否为空,如此,周而复始、不断循环。
UDP报文发送模块通过以太网底层发送模块(EMAC TX)的TCP/IP协议将报文发送出去。
如图1所示,以太网转CAN包括以太网底层接收模块(EMAC RX)、UDP报文接收模块(UDP Recv)、UDP接收数据输入队列(IQ)、调度算法模块、参数配置表、报文解析模块、队列映射模块、CAN报文发送模块(CAN Send)。
以太网底层接收模块(EMAC RX)实时监测以太网输入通道上的数据变化,当有数据需要接收时,触发硬实时中断,在中断服务进程中读取以太网数据并传递给TCP/IP协议栈进一步的处理,TCP/IP协议栈把有效报文映射到UDP报文接收模块(UDP Recv)中对应的UDP报文接收端口(UDP Port),同时触发 UDP接收线程接收报文数据,UDP接收线程接收到报文并判断报文的完整性,只有正确的报文才被放入与之相对应的UDP接收数据输入队列(IQ)中。
调度算法模块根据参数配置表中优先级(prio)、门控状态(gate)以及调度序列(Schedule)等参数来决定UDP接收数据输入队列(IQ)中哪个通道的数据优先转发,以及转发时占用硬件资源的时间长短等调度信息进行排序,然后按序放入转发队列。
报文解析模块实时判断转发队列是否有数据,如果有数据则从转发队列中取数,然后按设定的报文格式进行编解码计算,完成报文解析;解析好的报文直接发送到队列映射模块,这样就完成一次报文解析循环;然后报文解析模块从头开始(即从转发队列取数)进行新一轮循环,直到转发队列为空。
队列映射模块把解析好的报文按参数配置表中的内容依次映射到对应的CAN报文发送模块的对应的端口(CAN Port)上排队转发;CAN报文发送端口(CAN Port)在参数配置表中已设置好。每个CAN报文发送端口(CAN Port)都对应一路物理CAN通道。同时在软件中每个CAN报文发送端口(CAN Port)分配一个私有的转发队列来存放需要转发的报文,对列长度在参数配置表中设置。对应的,每个CAN报文发送端口都有一个 CAN发送线程(CANSend),此线程实时查询CAN报文发送端口的转发队列是否为空,当队列不为空时,从队列取数然后从对应的CAN报文发送端口上把数据发送出去,发送完成后CAN发送线程又回头查询端口转发队列是否为空,如此,周而复始、不断循环。
下面结合图例进行详细描述调度算法。
如图1所示,CAN转以太网包括CAN数据接收模块(CAN Recv)、CAN接收数据输入队列(InputQueue、IQ)、调度算法模块、参数配置表、报文解析模块、队列映射模块、UDP报文发送模块(UDP Send)、以太网底层发送模块(EMAC TX)。
CAN数据接收模块(CAN Recv)实时监测CAN总线上的数据变化,当有数据需要接收时,触发硬实时中断,在中断服务进程中读取数据,并把数据放入与之相对应的CAN接收数据输入队列(IQ)中。CAN接收数据输入队列(IQ)的长度可在参数配置表中设置,亦可在程序中定义缺省值,当两者都定义了队列长度时,优先使用参数配置表中的值,当参数配置表中没有定义此项参数时,则使用程序中定义的缺省值。
如图3所示,调度算法模块根据参数配置表中优先级(prio)、门控状态(gate)以及调度序列(Schedule)等参数来决定CAN接收数据输入队列(IQ)中哪个通道数据优先转发,以及转发时占用网络资源的时间长短等调度信息进行排序,然后按序放入转发队列。
如图3所示,每个CAN接收数据输入队列(IQ)都可以设置转发优先级(prio),优先级(prio)为1-7,共7级;其中,数值越大优先级越高。门控状态(gate)分两种,分别为开启(Open,O)和关闭(Close,C),门控状态(gate)控制闸门的开启与关闭,当门控状态为关闭(C)时,即使优先级(prio)再高,数据也只能在队列中排队等待,而优先转发的是门控状态(gate)为开启(O)且在所有开启(O)状态中优先级(prio)最高的队列。
调度序列(Schedule)是由开启(O)和关闭(C)门控状态组成的一个序列,用来解决转发时占用网络资源的时间长短。调度序列(Schedule)是按时间片轮转调度法来控制闸门开启和关闭的,本发明中,时间片的粒度可在参数配置表中设定,亦可在程序中设定缺省值,一般缺省值为 1us。
如图3所示,在时间轴(Time)对应的0时刻,根据调度序列(Schedule)中的门控状态,同时打开prio=6 和 prio=4的两个队列闸门,优先转发的则是prio=6的队列中的数据,其次则是prio=4队列中的数据,当一个时间片结束后,则关闭闸门,至于队列中没有转发完的数据,则继续排队等待下次闸门开启后再进行转发。
报文解析模块实时判断转发队列是否有数据,如果有数据则从转发队列中取数,然后按设定的报文格式把CAN数据帧解析组合成UDP数据包,如图2所示,报文格式由两大部分组成:报头(Header)和数据(CFD)。
报头(Header)由4部分组成:Type(2byte)、Seq No.(1byte)、OP Code(1byte)和Frame cnt(1byte)。具体的,报头(Header)的Type 表示本报文转发的是何种数据类型,本发明以CAN为例进行说明,但这不仅仅限定于CAN,也可以是LIN、UART或者其它低速的通讯数据。Seq No.为报文的序列号,这个字段的作用:一是为了区分相邻几个报文,尤其是报文内容相同时避免混淆或者漏掉报文;二是对批量数据需要多个UDP包转发且有顺序要求时必不可少。OP Code标注数据(CFD)的帧类型,如CAN通讯中的远程帧,数据长度为0,数据为空;这类帧在报文中需特殊处理。Frame cnt 表示报文中有多少个完整的CAN数据帧,本发明转发的报文中可以只有一个CAN数据帧,也可以有多个CAN数据帧。
报文中的数据(CFD)区可以包含一个CAN数据帧,也可以包含多个CAN数据帧。具体的,报文解析模块从对应的转发队列中取出一帧数据,然后按报文格式解析,解析完一帧数据后,继续从队列中取数解析,直到队列为空,才算完成一次CAN数据帧转UDP数据包的解析。
某一时刻,当转发队列中有多个CAN数据帧时,则解析出的报文就包含多个CAN数据帧;同理,某一时刻,当转队列中只有一个CAN数据帧时,则解析出的报文只含一个CAN数据帧。
CAN数据帧(CAN Frame)由4部分组成,分别是:CAN ID(4byte)、FD(1byte)、len(1byte)和payload(数据区)。CAN ID 为CAN标识符,分标准帧(11bit)和扩展帧(29bit);不管那种帧,CAN ID 都占4个字节的宽度。FD为CAN总线类型标识符,当FD=0时,表示普通CAN,当FD=1时,表示CAN-FD。Len为CAN数据帧的数据长度;当 FD=0时,len最大值为8,当FD=1时,len最大值为64。Payload为CAN数据帧的数据区,它的有效长度由len标定。
解析好的报文直接发送到队列映射模块,这样就完成一次报文解析循环;然后报文解析模块从头开始(即从转发队列取数)进行新一轮循环,直到转发队列为空。
队列映射模块把解析好的报文按参数配置表中的内容依次映射到UDP报文发送端口(UDP Port)上排队转发;UDP报文发送端口(UDP Port)在参数配置表中已设置好,由UDP发送线程(UDP socket)绑定既可。每个UDP报文发送端口(UDP Port)分配一个私有的转发队列(对列长度在参数配置表中设置)来存放需要转发的报文,对应的,每个UDP报文发送端口(UDP Port)都有一个 UDP发送线程(UDP socket),此线程实时查询UDP报文发送端口(UDP Port)转发队列是否为空,当队列不为空时,从队列取数然后从对应的UDP报文发送端口(UDP Port)上把数据发送出去,发送完成后UDP发送线程(UDP socket)又回头查询UDP报文发送端口(UDP Port)的转发队列是否为空,如此,周而复始、不断循环。
如图1所示,以太网转CAN包括以太网底层接收模块(EMAC RX)、UDP报文接收模块(UDP Recv)、UDP接收数据输入队列(IQ)、调度算法模块、参数配置表、报文解析模块、队列映射模块、CAN报文发送模块(CAN Send)。
以太网底层接收模块(EMAC RX)实时监测以太网输入通道上的数据变化,当有数据需要接收时,触发硬实时中断,在中断服务进程中读取以太网数据并传递给TCP/IP协议栈进一步的处理,TCP/IP协议栈把有效报文映射到UDP报文接收模块(UDP Recv)中对应的UDP报文接收端口(UDP Port),同时触发 UDP接收线程接收报文数据,UDP接收线程接收到报文并判断报文的完整性,只有正确的报文才被放入与之相对应的UDP接收数据输入队列(IQ)中。
UDP接收数据输入队列(IQ)的长度可在参数配置表中设置,亦可在程序中定义缺省值,当两者都定义了队列长度时,优先使用参数配置表中的值,当参数配置表中没有定义此项参数时,则使用程序中定义的缺省值。
如图3所示,调度算法模块根据参数设置表中优先级(prio)、门控状态(gate)以及调度序列(Schedule)等参数来决定UDP接收数据输入队列(IQ)中那哪个通道数据优先转发,以及转发时占用网络资源的时间长短等调度信息进行排序,然后按序放入转发队列。
在本发明中,CAN转以太网和以太网转CAN中都有调度算法模块,它们的算法逻辑相同,不同的是参数配置表中设定的优先级(prio)、门控状态(gate)和调度序列(Schedule)等参数,所以在此不再赘述。
如图1所示, CAN转以太网和以太网转CAN两种数据转发方式中都有报文解析模块,不同的是在CAN转以太网中,报文解析是一个组包的过程,即把一个CAN数据帧或多个CAN数据帧加上报头(Header)组成一个UDP数据包;而在以太网转CAN中,报文解析是一个拆包的过程,即把一个UDP数据包拆解成一个或者多个CAN数据帧。
在以太网转CAN报文解析完成后,拆解好的CAN数据帧按参数配置表中的设置值依次映射到CAN报文发送端口(CAN Port)上排队转发;CAN报文发送端口(CAN Port)在参数配置表中已设置好。每个CAN报文发送端口(CAN Port)对应一路物理CAN通道。同时在软件中每个CAN报文发送端口(CAN Port)分配一个私有的转发队列(对列长度在参数配置表中设置)来存放需要转发的CAN数据帧,对应的,每个CAN报文发送端口(CAN Port)都有一个CAN发送线程(CAN Send),此线程实时查询CAN报文发送端口转发队列是否为空,当队列不为空时,从队列取数然后从对应的CAN报文发送端口上把数据发送出去,发送完成后CAN发送线程又回头查询CAN报文发送端口转发队列是否为空,如此,周而复始、不断循环。
本发明还提供一种Zonal控制器数据转发***,包括总线接口数据转以太网***和以太网数据转总线接口***。
总线接口数据转以太网***包括总线数据接收模块、总线接收数据输入队列、调度算法模块、参数配置表、报文解析模块、队列映射模块、UDP报文发送模块、以太网底层发送模块。
总线数据接收模块实时监测并接受总线上的数据,并通过总线数据接收端口的总线接收线程把数据放入对应的总线接收数据输入队列中;调度算法模块根据参数配置表中的参数,将总线接收数据输入队列中的数据按序放入转发队列;报文解析模块将转发队列中的数据按设定的报文格式解析好报文直接发送到队列映射模块;队列映射模块把解析好的报文依次映射到UDP报文发送模块,并通过对应的UDP报文发送端口转发;UDP报文发送端口通过对应的UDP发送线程把报文发送出去,经以太网底层发送模块的TCP/IP协议发送报文。
以太网数据转总线接口***,包括以太网底层接收模块、UDP报文接收模块、UDP接收数据输入队列、调度算法模块、参数配置表、报文解析模块、队列映射模块、总线报文发送模块。
以太网底层接收模块实时监测并接收以太网上的数据,通过TCP/IP协议把有效报文映射到UDP报文接收模块;并通过UDP报文接收端口的UDP接收线程接收报文数据并判断报文的完整性,将正确的报文放入对应的UDP接收数据输入队列中;调度算法模块根据参数配置表中的参数,将UDP接收数据输入队列中的数据按序放入转发队列;报文解析模块将转发队列中的数据按设定的报文格式解析好报文直接发送到队列映射模块;队列映射模块把解析好的报文依次映射到总线报文发送模块,并通过对应的总线报文发送端口转发;总线报文发送端口通过对应的总线发送线程把报文发送出去。
本发明的有益效果在于,与现有技术相比,本发明所述的Zonal控制器数据转发方法,可根据产品需求和使用场景,通过软件配置参数的方式部署不同的数据转发调度规则,同时在有限的网络带宽下,提高数据传输效率,以及解决数据延迟等问题。本发明既解决了现有技术的痛点,又在生产实践中提高了工作效率。
本发明申请人结合说明书附图对本发明的实施示例做了详细的说明与描述,但是本领域技术人员应该理解,以上实施示例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。
Claims (8)
1.一种Zonal控制器数据转发方法,其特征在于,包括总线接口数据转以太网数据的步骤和以太网数据转总线接口数据的步骤;
总线接口数据转以太网数据的步骤,包括:
通过总线数据接收模块实时监测并接收总线上的数据,并通过总线数据接收端口的总线接收线程把数据放入对应的总线接收数据输入队列中;
调度算法模块根据参数配置表中的优先级、门控状态以及调度序列来决定总线接收数据输入队列中哪个通道的数据优先转发,以及根据转发时占用网络资源的时间长短进行排序,按序放入转发队列;
报文解析模块将转发队列中的数据按设定的报文格式解析好报文直接发送到队列映射模块;
队列映射模块把解析好的报文依次映射到UDP报文发送模块,并通过对应的UDP报文发送端口转发;UDP报文发送端口通过对应的UDP发送线程把报文发送出去,经以太网底层发送模块的TCP/IP协议发送报文;
以太网数据转总线接口数据的步骤,包括:
以太网底层接收模块实时监测并接收以太网上的数据,通过TCP/IP协议把有效报文映射到UDP报文接收模块;并通过UDP报文接收端口的UDP接收线程接收报文数据并判断报文的完整性,将正确的报文放入对应的UDP接收数据输入队列中;
调度算法模块根据参数配置表中的优先级、门控状态以及调度序列来决定UDP接收数据输入队列中哪个通道的数据优先转发,以及根据转发时占用硬件资源的时间长短进行排序,按序放入转发队列;
报文解析模块将转发队列中的数据按设定的报文格式解析好报文直接发送到队列映射模块;
队列映射模块把解析好的报文依次映射到总线报文发送模块,并通过对应的总线报文发送端口转发;总线报文发送端口通过对应的总线发送线程把报文发送出去。
2.根据权利要求1所述的Zonal控制器数据转发方法,其特征在于,
门控状态分为开启和关闭,控制闸门的开启和关闭;
调度序列是由开启和关闭门控状态组成的一个序列,按时间片轮转调度法来控制闸门开启和关闭;
当门控状态为开启时,按优先级转发队列数据。
3.根据权利要求1所述的Zonal控制器数据转发方法,其特征在于,
总线接收数据输入队列和UDP接收数据输入队列,其长度可在参数配置表中设置,亦可在程序中定义缺省值;
当两者都定义了队列长度时,优先使用参数配置表中的值。
4.根据权利要求1所述的Zonal控制器数据转发方法,其特征在于,UDP报文包括报头和数据;
报头包括报文数据类型、报文序列号、数据帧类型和数据帧个数,数据包括一个及以上总线数据帧;
总线数据帧包括总线标识符、总线类型标识符、数据长度和数据区。
5.根据权利要求4所述的Zonal控制器数据转发方法,其特征在于,
总线接口数据转以太网的报文解析模块,是一个组包的过程,把总线数据帧加上报头组成UDP数据包;
以太网数据转总线接口的报文解析模块,是一个拆包的过程,把UDP数据包拆解成总线数据帧。
6.根据权利要求1所述的Zonal控制器数据转发方法,其特征在于,每个UDP报文发送端口分配一个私有转发队列来存放需要转发的报文,UDP发送线程实时查询UDP报文发送端口的转发队列是否为空,当转发队列不为空时,从转发队列取数然后从对应的UDP报文发送端口上把数据发送出去,发送完成后,UDP发送线程又回头查询UDP报文发送端口的转发队列是否为空,如此不断循环。
7.根据权利要求1所述的Zonal控制器数据转发方法,其特征在于,每个总线报文发送端口对应一路物理总线通道,同时在软件中每个总线报文发送端口分配一个私有的转发队列来存放需要转发的报文,总线发送线程实时查询总线报文发送端口的转发队列是否为空,当队列不为空时,从队列取数然后从对应的总线报文发送端口上把数据发送出去,发送完成后总线发送线程又回头查询端口转发队列是否为空,如此不断循环。
8.一种Zonal控制器数据转发***,其特征在于,包括总线接口数据转以太网数据的***和以太网数据转总线接口数据的***;
总线接口数据转以太网数据的***,包括总线数据接收模块、总线接收数据输入队列、调度算法模块、参数配置表、报文解析模块、队列映射模块、UDP报文发送模块、以太网底层发送模块;
总线数据接收模块实时监测并接收总线上的数据,并通过总线数据接收端口的总线接收线程把数据放入对应的总线接收数据输入队列中;
调度算法模块根据参数配置表中的优先级、门控状态以及调度序列来决定总线接收数据输入队列中哪个通道的数据优先转发,以及根据转发时占用网络资源的时间长短进行排序,按序放入转发队列;
报文解析模块将转发队列中的数据按设定的报文格式解析好报文直接发送到队列映射模块;队列映射模块把解析好的报文依次映射到UDP报文发送模块,并通过对应的UDP报文发送端口转发;UDP报文发送端口通过对应的UDP发送线程把报文发送出去,经以太网底层发送模块的TCP/IP协议发送报文;
以太网数据转总线接口数据的***,包括以太网底层接收模块、UDP报文接收模块、UDP接收数据输入队列、调度算法模块、参数配置表、报文解析模块、队列映射模块、总线报文发送模块;
以太网底层接收模块实时监测并接收以太网上的数据,通过TCP/IP协议把有效报文映射到UDP报文接收模块;并通过UDP报文接收端口的UDP接收线程接收报文数据并判断报文的完整性,将正确的报文放入对应的UDP接收数据输入队列中;
调度算法模块根据参数配置表中的优先级、门控状态以及调度序列来决定UDP接收数据输入队列中哪个通道的数据优先转发,以及根据转发时占用硬件资源的时间长短进行排序,按序放入转发队列;
报文解析模块将转发队列中的数据按设定的报文格式解析好报文直接发送到队列映射模块;队列映射模块把解析好的报文依次映射到总线报文发送模块,并通过对应的总线报文发送端口转发;总线报文发送端口通过对应的总线发送线程把报文发送出去。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110664229.5A CN113114708B (zh) | 2021-06-16 | 2021-06-16 | 一种Zonal控制器数据转发方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110664229.5A CN113114708B (zh) | 2021-06-16 | 2021-06-16 | 一种Zonal控制器数据转发方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113114708A CN113114708A (zh) | 2021-07-13 |
CN113114708B true CN113114708B (zh) | 2021-09-03 |
Family
ID=76723560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110664229.5A Active CN113114708B (zh) | 2021-06-16 | 2021-06-16 | 一种Zonal控制器数据转发方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113114708B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113746815B (zh) * | 2021-08-18 | 2023-06-06 | 南昌智能新能源汽车研究院 | 数据转发方法、装置、可读存储介质及控制终端 |
CN113709047B (zh) * | 2021-10-26 | 2022-02-08 | 奥特酷智能科技(南京)有限公司 | 一种汽车域控制器数据转发***及方法 |
CN113884895A (zh) * | 2021-11-15 | 2022-01-04 | 武汉长海高新技术有限公司 | 一种电池测试用can总线-以太网数据转换装置及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103684944A (zh) * | 2012-09-10 | 2014-03-26 | 西门子信号有限公司 | 嵌入式网关、采用该网关的铁路监测***及其方法 |
CN103685560A (zh) * | 2013-12-30 | 2014-03-26 | 长城汽车股份有限公司 | 一种汽车电子***网络架构 |
CN107707418A (zh) * | 2016-08-09 | 2018-02-16 | 上汽通用汽车有限公司 | 一种通信诊断***以及通信诊断刷新方法 |
CN110460621A (zh) * | 2019-09-10 | 2019-11-15 | 上海怿星电子科技有限公司 | 一种基于some/ip协议的以太网总线与can总线数据转换方法及*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9527515B2 (en) * | 2011-12-23 | 2016-12-27 | Zonar Systems, Inc. | Vehicle performance based on analysis of drive data |
CN107450518A (zh) * | 2017-08-16 | 2017-12-08 | 北京车和家信息技术有限责任公司 | 一种基于车载以太网构架的程序升级装置及其控制方法 |
CN212828223U (zh) * | 2020-07-29 | 2021-03-30 | 华人运通(上海)自动驾驶科技有限公司 | 车载网络及车辆 |
-
2021
- 2021-06-16 CN CN202110664229.5A patent/CN113114708B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103684944A (zh) * | 2012-09-10 | 2014-03-26 | 西门子信号有限公司 | 嵌入式网关、采用该网关的铁路监测***及其方法 |
CN103685560A (zh) * | 2013-12-30 | 2014-03-26 | 长城汽车股份有限公司 | 一种汽车电子***网络架构 |
CN107707418A (zh) * | 2016-08-09 | 2018-02-16 | 上汽通用汽车有限公司 | 一种通信诊断***以及通信诊断刷新方法 |
CN110460621A (zh) * | 2019-09-10 | 2019-11-15 | 上海怿星电子科技有限公司 | 一种基于some/ip协议的以太网总线与can总线数据转换方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN113114708A (zh) | 2021-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113114708B (zh) | 一种Zonal控制器数据转发方法及*** | |
CN105052081B (zh) | 通信流量处理架构和方法 | |
US7519076B2 (en) | Method and node for using a communication network in parallel for real-time applications and non-real-time applications | |
EP1816530B1 (en) | Extending industrial control system communications capabilities | |
US20080285572A1 (en) | Single device for handling client side and server side operations for a/v bridging and a/v bridging extensions | |
US8165115B2 (en) | System for switching variable-length data packets of heterogeneous network and method for the same | |
JP7394960B2 (ja) | データ送信方法及び装置 | |
CN109995675B (zh) | 一种基于软件定义的自适应工业以太网网关***与方法 | |
CN113709047B (zh) | 一种汽车域控制器数据转发***及方法 | |
WO2020150872A1 (en) | Ethernet and controller area network protocol interconversion for in-vehicle networks | |
CN111279656B (zh) | 数据传输方法和通信网络 | |
US8660117B2 (en) | Packet switching device and local communication network with such a packet switching device | |
US20090129395A1 (en) | Method, communication network, and control unit for the cyclical transmission of data | |
CN112260957B (zh) | 一种时间感知整形器分级交叉流量调度*** | |
US20060227752A1 (en) | Packet transmission method and apparatus | |
US20110022721A1 (en) | Method and system for packetizing data for servicing traffic end-to-end | |
CN113923265B (zh) | 一种端计算网关协议转换***及方法 | |
CN111464409A (zh) | 一种can总线并入时间敏感网络的数据交换装置及网络 | |
CN112039746B (zh) | 一种工业控制网络*** | |
EP3881508A1 (en) | Transmission of packets over a tsn aware network | |
US20210203720A1 (en) | Data transmission method and automation communication network | |
CN109787981A (zh) | 协议转换***、方法、装置、设备和存储介质 | |
CN114301995A (zh) | 实时工业以太网协议的转换切换与互通融合***及其方法 | |
EP2926506B1 (en) | Communication module in an industrial network for reducing latency | |
CN101651658A (zh) | 无线Mesh网络中跨层联合优化的方法、装置及*** |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 210012 room 401-404, building 5, chuqiaocheng, No. 57, Andemen street, Yuhuatai District, Nanjing, Jiangsu Province Patentee after: AUTOCORE INTELLIGENT TECHNOLOGY (NANJING) Co.,Ltd. Address before: 211800 building 12-289, 29 buyue Road, Qiaolin street, Pukou District, Nanjing City, Jiangsu Province Patentee before: AUTOCORE INTELLIGENT TECHNOLOGY (NANJING) Co.,Ltd. |