CN112235076A - 提高双系统之间通信速率的方法、系统与处理器 - Google Patents
提高双系统之间通信速率的方法、系统与处理器 Download PDFInfo
- Publication number
- CN112235076A CN112235076A CN202010981745.6A CN202010981745A CN112235076A CN 112235076 A CN112235076 A CN 112235076A CN 202010981745 A CN202010981745 A CN 202010981745A CN 112235076 A CN112235076 A CN 112235076A
- Authority
- CN
- China
- Prior art keywords
- period
- sending
- message
- receiving
- receiving end
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/4013—Management of data rate on the bus
Abstract
本申请提供了一种提高双系统之间通信速率的方法、系统与处理器。双系统包括第一系统和第二系统,第一系统为发送端且第二系统为接收端,或者,第二系统为发送端且第一系统为接收端,第一系统和第二系统之间通过以太网进行通信,方法包括:发送端以第一周期为发送周期向接收端发送报文,第一周期为报文的最小周期;接收端以第二周期为接收周期接收报文,第二周期小于或者等于第一周期的二分之一。第一系统和第二系统之间通过以太网进行通信,保证了双系统之间较高的通信速率,且使用以太网通信单帧通信数据长度更长。由于接收周期小于或者等于发送周期的二分之一,避免了数据丢包,即使存在调度时间差,也能保证每包报文都能正确接收。
Description
技术领域
本申请涉及双系统通信领域,具体而言,涉及一种提高双系统之间通信速率的方法、系统、计算机可读存储介质与处理器。
背景技术
随着车载ECU功能变得越来越强大,目前很多ECU采用两个或两个以上芯片联合实现ECU的功能,而多采用MCU和SOC结合的方式。MCU和SOC协同工作就涉及到通信的问题,目前市面上MCU和SOC常用的通信方式有UART、SPI、I2C等,但传统的通信速率并不能满足日益增长的大数据通信,各种总线通信速率对比如下:
UART:传输速率一般不超过20Kbps;
SPI:传输速度可达几Mb/s;
I2C:最高速率可达3.4Mbps;
Ethernet:传输理论上可达100Mbps,甚至1Gbps。
现有的车载领域的SOME/IP协议虽然已经设计基于以太网的车载双系统间的通信,但是SOME/IP协议需要双系统的同时支持,并且是基于服务的协议,协议中需要遵守的规则过于繁琐,在车载领域中,同一个EUC的双系统通信一般的配置都是静态的,造成双系统之间通信速率较低。
SOME/IP协议是车载以太网中常用的通信协议,但是需要服务发现等其他协议的支持,增加了通信的流程。在静态配置项较多的车载ECU中,通信的数据和内容是可以预先设置好的,因此采用SOME/IP的通信协议没能在这种静态系统中发挥出应有的优势(对通信数据的动态管理,订阅等),反而增加了开发难度和工作量。
发明内容
本申请的主要目的在于提供一种提高双系统之间通信速率的方法、系统、计算机可读存储介质与处理器,以解决现有技术中双系统之间的通信效率较低的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种提高双系统之间通信速率的方法,所述双系统包括第一系统和第二系统,所述第一系统为发送端且所述第二系统为接收端,或者,所述第二系统为发送端且所述第一系统为接收端,所述第一系统和所述第二系统之间通过以太网进行通信,所述方法包括:所述发送端以第一周期为发送周期向所述接收端发送报文,所述第一周期为所述报文的最小周期;所述接收端以第二周期为接收周期接收所述报文,所述第二周期小于或者等于所述第一周期的二分之一。
可选地,在所述发送端以第一周期为发送周期向所述接收端发送报文之前,所述方法还包括:在所述发送端建立第一套接字,所述第一套接字包括发送端IP和发送端端口;在所述接收端建立第二套接字,所述第二套接字包括接收端IP和接收端端口;将所述第一套接字绑定的所述发送端IP作为所述第二套接字的接收IP,所述第一套接字绑定的所述发送端端口作为所述第二套接字的接收端口;将所述第二套接字绑定的所述接收端IP作为所述第一套接字的接收IP,所述第二套接字绑定的所述接收端端口作为所述第一套接字的接收端口。
可选地,所述发送端以第一周期为发送周期向所述接收端发送报文,包括:所述发送端根据所述第一套接字,以所述第一周期为发送周期向所述接收端发送所述报文;所述接收端以第二周期为接收周期接收所述报文,包括:所述接收端根据所述第二套接字,以所述第二周期为接收周期接收所述报文。
可选地,在所述发送端以第一周期为发送周期向所述接收端发送报文之前,所述方法还包括:确定所述的报文的类型;确定单帧所述报文的长度。
可选地,所述发送端包括发送缓冲器和发送端应用层,所述发送端以第一周期为发送周期向所述接收端发送报文,包括:将所述发送缓冲器初始化为0;在所述发送端应用层预发送所述报文的情况下,将预发送的所述报文写入所述发送缓冲器中;将所述发送缓冲器上锁;将所述发送缓冲器中的所述报文以所述第一周期为所述发送周期,发送至所述接收端;更新所述发送缓冲器中的数据;将所述发送缓冲器解锁。
可选地,所述接收端包括接收缓冲器、更新缓冲器和接收端应用层,所述接收端以第二周期为接收周期接收所述报文,包括:将所述接收缓冲器初始化为0;通知所述接收端应用层已启动接收所述报文;确定所述接收端应用层是否接收到新的所述报文;在所述接收端应用层接收到新的所述报文的情况下,将接收到的新的所述报文写入所述更新缓冲器中;将所述更新缓冲器中的所述报文与所述接收缓冲器中的所述报文进行比较;在所述更新缓冲器中的报文与所述接收缓冲器中的报文不相同的情况下,更新所述接收缓冲器中的所述报文,且将更新的所述报文发送至所述接收端应用层,进入等待;在所述更新缓冲器中的报文与所述接收缓冲器中的报文相同的情况下,进入等待;等待时间到达所述第二周期后,所述接收端应用层继续接收所述报文。
可选地,所述第一系统和第二系统之间采用UDP的通信方式进行通信。
可选地,所述第一系统为MCU上的RTOS系统,所述第二系统为SOC上的Linux系统。
根据本申请的另一个方面,提供了一种提高双系统之间通信速率的系统,所述双系统包括第一系统和第二系统,所述第一系统为发送端且所述第二系统为接收端,或者,所述第二系统为发送端且所述第一系统为接收端,所述发送端包括发送单元,所述接收端包括接收单元,所述第一系统和所述第二系统之间通过以太网进行通信,所述发送单元,用于以第一周期为发送周期向所述接收端发送报文,所述第一周期为所述报文的最小周期;所述接收单元,用于以第二周期为接收周期接收所述报文,所述第二周期小于或者等于所述第一周期的二分之一。
根据本申请的又一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行任意一种所述的提高双系统之间通信速率的方法。
根据本申请的再一个方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的提高双系统之间通信速率的方法。
应用本申请的技术方案,发送端以第一周期为发送周期向接收端发送报文,接收端以第二周期为接收周期接收报文,第一系统和第二系统之间通过以太网进行通信,保证了双系统之间较高的通信速率,且使用以太网通信单帧通信数据长度更长,能满足大数据的通信需求。且以太网的协议栈的应用层实现较简单。由于接收周期小于或者等于发送周期的二分之一,避免了数据丢包,即使存在调度时间差,也能保证每包报文都能正确接收,本方案提高了双系统之间的通信速率,实现了双系统间的大数据传输。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的实施例的提高双系统之间通信速率的方法流程图。
图2示出了根据本申请的实施例的提高双系统之间通信速率的系统的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
基于IP的可扩展的面向服务的中间件(Scalable service-Oriented MiddlewarEover IP,简称SOME/IP)协议:是车载以太网通信引入的一个概念。位于OSI7层模型的层4之上。在以CAN为主的车载网络中,通信过程是面向信号的(除了诊断通信以外),这是一种根据发送者需求实现的通信过程,当发送者发现信号的值变化了,或者发送周期到了,就会发送信息,而不考虑接收者是否有需求。而SOME/IP则不同,它是在接收方有需求的时候才发送,这种方法的优点在于总线上不会出现过多不必要的数据,从而降低负载。
正如背景技术中所介绍的,现有技术中的双系统之间的通信效率较低,为解决如上双系统之间的通信效率较低的问题,本申请的实施例提供了一种提高双系统之间通信速率的方法、系统、计算机可读存储介质与处理器。
根据本申请的实施例,提供了一种提高双系统之间通信速率的方法。
图1是根据本申请实施例的提高双系统之间通信速率的方法的流程图。上述双系统包括第一系统和第二系统,上述第一系统为发送端且上述第二系统为接收端,或者,上述第二系统为发送端且上述第一系统为接收端,上述第一系统和上述第二系统之间通过以太网进行通信,如图1所示,该方法包括以下步骤:
步骤S101,上述发送端以第一周期为发送周期向上述接收端发送报文,上述第一周期为上述报文的最小周期;
步骤S102,上述接收端以第二周期为接收周期接收上述报文,上述第二周期小于或者等于上述第一周期的二分之一。
具体地,发送端和接收端之间通过以太网转发报文,发送端发送至接收端的报文的周期是不同的,若要将不同周期的报文放在同一帧通过以太网转发,就需要将报文的最小周期作为发送端的发送周期,即将报文的最小周期作为第一周期。接收端接收发送端发送的报文,接收周期小于或者等于发送周期的二分之一,通常情况,开发人员都习惯使用相同周期进行报文的发送和接收,但是由于任务调度和不同系统时间差等原因可能会导致发送的报文没有及时取出导致在接收端被覆盖,因此接收的周期至少小于等于发送周期的一半才能避免这种问题。
具体地,在第一系统为发送端时,第二系统为接收端;在第二系统为发送端时,第一系统为接收端;即第一系统和第二系统之间可以实现双向通信。通信的信号通常会有多个应用使用,但是多个应用都接收总线上信号会造成大量的系统负荷,因此每个系统采用一个数据转发模块专门用于以太网的数据发送,一个数据接收模块用于以太网的数据接收,这两个模块可以作为以太网的数据中心模块,以太网的数据中心模块负责所有以太网的通信,对应用层来说,应用层可以不关心数据使用哪种通信方式,应用层只要有想要通信的数据,直接将数据交给数据中心模块,数据中心模块会将存储的数据进行更新,数据中心模块有统一的收发周期,当时间到了自动发送所有数据,不管存储的数据是否更新过。
通常情况下,开发人员都习惯使用相同周期进行发送和接收,但是由于任务调度和不同系统时间差等原因可能发送的报文没有及时取出导致在接收端被覆盖,因此接收的周期至少小于等于发送周期的一半才能避免这种问题。
另外,周期发送避免了大量的应答式发送的逻辑。若采用应答式通信方式,需要时刻关注是否有报文丢失,报文丢失后采用什么样的策略进行补发,采用补发策略时若收到正常报文该如何处理,补发策略会不会影响部门实时性较高的数据传送等等。而采用周期的通信方式,使用最小的报文的周期作为发送周期,若某个时间报文丢失,下一个周期会同样发送一帧相同的报文,这样能避免丢包问题。
上述方案中,发送端以第一周期为发送周期向接收端发送报文,接收端以第二周期为接收周期接收报文,第一系统和第二系统之间通过以太网进行通信,保证了双系统之间较高的通信速率,且使用以太网通信单帧通信数据长度更长,能满足大数据的通信需求。且以太网的协议栈的应用层实现较简单。由于接收周期小于或者等于发送周期的二分之一,避免了数据丢包,即使存在调度时间差,也能保证每包报文都能正确接收,本方案提高了双系统之间的通信速率,实现了双系统间的大数据传输。SOME/IP协议是车载以太网中常用的通信协议,但是通信前需要使用服务发现和消息订阅协议,若通信内容只是固定信号,SOME/IP协议反而增加了通信的流程。本方案删去了SOME/IP的服务发现和服务订阅流程,因此无需SD(服务发现)模块的支持。SOME/IP协议需要双系统的同时支持,并且是基于服务的协议,协议中需要遵守的规则过于繁琐,本方案简化了协议需要遵循的规则。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请的一种实施例中,在上述发送端以第一周期为发送周期向上述接收端发送报文之前,上述方法还包括:在上述发送端建立第一套接字,上述第一套接字包括发送端IP和发送端端口;在上述接收端建立第二套接字,上述第二套接字包括接收端IP和接收端端口;将上述第一套接字绑定的上述发送端IP作为上述第二套接字的接收IP,上述第一套接字绑定的上述发送端端口作为上述第二套接字的接收端口;将上述第二套接字绑定的上述接收端IP作为上述第一套接字的接收IP,上述第二套接字绑定的上述接收端端口作为上述第一套接字的接收端口。发送端使用上述第一套接字,向第二套接字绑定的IP和端口发送报文,接收端使用上述第二套接字,向第一套接字绑定的IP和端口发送报文。例如,第一套接字本地IP和Port表示为(192.168.1.128,50000),其中,“192.168.1.128”为发送端IP,“50000”为发送端端口,第二套接字表示为(192.168.1.127,51000),其中,“192.168.1.127”为接收端IP。“51000”为接收端端口。发送端使用(192.168.1.128,50000)向接收端(192.168.1.127,51000)发送报文,接收端使用(192.168.1.127,51000)向(192.168.1.128,50000)发送报文。另外,发送端IP和接收端IP属于同一个子网,以保证发送端和接收端能进行正常以太网通信。基于UDP的套接字可以直接指定IP和端口,不需要额外的服务发现。
本申请的另一种实施例中,上述发送端以第一周期为发送周期向上述接收端发送报文,包括:上述发送端根据上述第一套接字,以上述第一周期为发送周期向上述接收端发送上述报文;上述接收端以第二周期为接收周期接收上述报文,包括:上述接收端根据上述第二套接字,以上述第二周期为接收周期接收上述报文。具体地,由于发送端和接收端都指定了发送端IP、发送端端口、接收端IP和接收端端口四种信息,也就是说发送端根据上述信息可以精确确定接收的对象(即确定接收端),同理,接收端根据上述信息也可以精确确定接收的对象(即确定发送端),发送端和接收端在通信前均已确定消息的对端,保证了发送端和接收端之间的通信效率。
本申请的再一种实施例中,在上述发送端以第一周期为发送周期向上述接收端发送报文之前,上述方法还包括:确定上述的报文的类型;确定单帧上述报文的长度。现有技术中的报文的类型主要包括请求报文、回复报文、通知报文和报错报文,本方案中的报文的类型为通知报文,通过将报文的类型固定为通知报文简化了报文的结构,减小了待处理的数据量,提高了发送端和接收端之间的通信效率;标准单帧CAN报文数据长度最大为64字节,单帧LIN数据长度最大为8字节,单帧Flexray报文数据长度最大254个字节,通过确定单帧上述报文的长度,单帧报文长度可设置为1500个字节,以满足大数据的通信需求。以太网通信方式极大提高了通信效率。无论从单帧报文长度,还是通信速率,跟UART、SPI、I2C相比都有极大的优势。
本申请的一种实施例中,上述发送端包括发送缓冲器和发送端应用层,上述发送端以第一周期为发送周期向上述接收端发送报文,包括:将上述发送缓冲器初始化为0;在上述发送端应用层预发送上述报文的情况下,将预发送的上述报文写入上述发送缓冲器中;将上述发送缓冲器上锁;将上述发送缓冲器中的上述报文以上述第一周期为上述发送周期,发送至上述接收端;更新上述发送缓冲器中的数据;将上述发送缓冲器解锁。即使用互斥锁对待发送的报文进行保护,由于发送端的发送缓冲器是应用线程和发送线程共用的,因此在使用发送端的发送缓冲器时,必须使用互斥锁,避免数据被其他人修改。该方案实现了发送端周期发送报文。
本申请的一种实施例中,上述接收端包括接收缓冲器、更新缓冲器和接收端应用层,上述接收端以第二周期为接收周期接收上述报文,包括:将上述接收缓冲器初始化为0;通知上述接收端应用层已启动接收上述报文;确定上述接收端应用层是否接收到新的上述报文;在上述接收端应用层接收到新的上述报文的情况下,将接收到的新的上述报文写入上述更新缓冲器中;将上述更新缓冲器中的上述报文与上述接收缓冲器中的上述报文进行比较;在上述更新缓冲器中的报文与上述接收缓冲器中的报文不相同的情况下,更新上述接收缓冲器中的上述报文,且将更新的上述报文发送至上述接收端应用层,进入等待;在上述更新缓冲器中的报文与上述接收缓冲器中的报文相同的情况下,进入等待;等待时间到达上述第二周期后,上述接收端应用层继续接收上述报文。避免了接收端应用层做过多冗余的处理,实现了接收端周期接收报文。
本申请的一种实施例中,上述第一系统和第二系统之间采用UDP的通信方式进行通信。基于UDP的以太网单帧报文长度可达1500个字节,能满足大数据的通信需求。
本申请的一种实施例中,将通信的数据定义成结构体,通信双方制定通信结构,为了避免不同系统间可能使用的编译器不同导致存储方式不同,通信数据统一采用一字节大端结尾对齐,由于使用的是UDP通信,为了避免协议层分包,通信的数据量应该不超过1500个字节,在制定通信数据时,尽量将相关的信号定义到一个报文,这样能避免使用的信号存在不同步的问题。UART、SPI、I2C等通信需要重新定义通信协议栈,针对不同平台或操作系统,移植难度较大。而以太网已经有成熟的TCP/IP协议栈,通信协议需要自定义部分变少,开发人员只需要更关注应用层的实现。由于TCP/IP协议栈是常用的协议栈,RTOS系统大部分可以移植开源的LWIP(Light Weight Internet Protoco)协议栈,LWIP协议栈是RAM和ROM资源都较为紧张的芯片上常用的TCP/IP协议栈,封装了套接字接口,可以供开发人员直接在套接字层以上开发。另外,SOME/IP通常是基于服务的协议,一般要使用的SOME/IP需要服务发现等其他协议的支持,无疑增加了开发和测试的工作量,而本方案只需要完成应用成数据的定义即可,大大减少了开发和测试的工作量。
本申请的一种实施例中,上述第一系统为MCU上的RTOS系统,上述第二系统为SOC上的Linux系统。因为MCU有较强的实时性,SOC有较强的存储和运算能力,因此通常采用MCU负责收集车身其他ECU的信号(包括CAN/LIN/Flexray等)与整车进行通信,SOC负责处理ECU中的业务逻辑,而SOC处理的业务逻辑需要使用到车身的信号,因此MCU在收集到车身其他ECU的信号后,需要将信号打包转发给SOC,SOC接收到信号后做对应的业务处理。实现了MCU系统与SOC之间的高效通信。由于车身上的信号大多采用周期方式进行传输,因此MCU接收到CAN/LIN/Flexray等总线信号后,若要将不同类别的信号放在同一帧通过以太网转发,就需要采用周期最小的时间作为以太网通信的周期。SOME/IP协议是基于服务的协议,协议设计的初衷为了去除周期的通信方式,采用服务订阅的方式进行通信,因此,本方案将实现以太网周期传送的方式转发CAN/LIN/Flexray等总线信号,完成双系统间的大数据传输。SOME/IP针对不同操作系统需要采用不同的实现,由于一般MCU采用Autosar架构,而SOC采用Linux架构,这就需要开发人员在两个不同的系统上对应SOME/IP协议栈,既增加了难度也不利于一致性验证。而本方案在不同系统中都是用套接字标准接口完成UDP的通信,应用层通信协议可以直接移植。
本申请实施例还提供了一种提高双系统之间通信速率的系统,需要说明的是,本申请实施例的提高双系统之间通信速率的系统可以用于执行本申请实施例所提供的用于提高双系统之间通信速率的方法。以下对本申请实施例提供的提高双系统之间通信速率的系统进行介绍。
图2是根据本申请实施例的提高双系统之间通信速率的系统的示意图。如图2所示,该装置包括:第一系统和第二系统,上述第一系统为发送端且上述第二系统为接收端,或者,上述第二系统为发送端且上述第一系统为接收端,上述发送端包括发送单元,上述接收端包括接收单元,上述第一系统和上述第二系统之间通过以太网进行通信,
上述发送单元,用于以第一周期为发送周期向上述接收端发送报文,上述第一周期为上述报文的最小周期;
上述接收单元,用于以第二周期为接收周期接收上述报文,上述第二周期小于或者等于上述第一周期的二分之一。
具体地,发送端和接收端之间通过以太网转发报文,发送端发送至接收端的报文的周期是不同的,若要将不同周期的报文放在同一帧通过以太网转发,就需要将报文的最小周期作为发送端的发送周期,即将报文的最小周期作为第一周期。接收端接收发送端发送的报文,接收周期小于或者等于发送周期的二分之一,通常情况,开发人员都习惯使用相同周期进行报文的发送和接收,但是由于任务调度和不同系统时间差等原因可能会导致发送的报文没有及时取出导致在接收端被覆盖,因此接收的周期至少小于等于发送周期的一半才能避免这种问题。
具体地,在第一系统为发送端时,第二系统为接收端;在第二系统为发送端时,第一系统为接收端;即第一系统和第二系统之间可以实现双向通信。通信的信号通常会有多个应用使用,但是多个应用都接收总线上信号会造成大量的系统负荷,因此每个系统采用一个数据转发模块专门用于以太网的数据发送,一个数据接收模块用于以太网的数据接收,这两个模块可以作为以太网的数据中心模块,以太网的数据中心模块负责所有以太网的通信,对应用层来说,应用层可以不关心数据使用哪种通信方式,应用层只要有想要通信的数据,直接将数据交给数据中心模块,数据中心模块会将存储的数据进行更新,数据中心模块有统一的收发周期,当时间到了自动发送所有数据,不管存储的数据是否更新过。
通常情况下,开发人员都习惯使用相同周期进行发送和接收,但是由于任务调度和不同系统时间差等原因可能发送的报文没有及时取出导致在接收端被覆盖,因此接收的周期至少小于等于发送周期的一半才能避免这种问题。
另外,周期发送避免了大量的应答式发送的逻辑。若采用应答式通信方式,需要时刻关注是否有报文丢失,报文丢失后采用什么样的策略进行补发,采用补发策略时若收到正常报文该如何处理,补发策略会不会影响部门实时性较高的数据传送等等。而采用周期的通信方式,使用最小的报文的周期作为发送周期,若某个时间报文丢失,下一个周期会同样发送一帧相同的报文,这样能避免丢包问题。
上述方案中,发送端的发送单元以第一周期为发送周期向接收端发送报文,接收端的接收单元以第二周期为接收周期接收报文,第一系统和第二系统之间通过以太网进行通信,保证了双系统之间较高的通信速率,且使用以太网通信单帧通信数据长度更长,能满足大数据的通信需求。且以太网的协议栈的应用层实现较简单。由于接收周期小于或者等于发送周期的二分之一,避免了数据丢包,即使存在调度时间差,也能保证每包报文都能正确接收,本方案提高了双系统之间的通信速率,实现了双系统间的大数据传输。SOME/IP协议是车载以太网中常用的通信协议,但是通信前需要使用服务发现和消息订阅协议,若通信内容只是固定信号,SOME/IP协议反而增加了通信的流程。本方案删去了SOME/IP的服务发现和服务订阅流程,因此无需SD(服务发现)模块的支持。SOME/IP协议需要双系统的同时支持,并且是基于服务的协议,协议中需要遵守的规则过于繁琐,本方案简化了协议需要遵循的规则。
本申请的一种实施例中,上述系统还包括第一建立单元、第二建立单元、第一设置单元和第二设置单元,第一建立单元用于在上述发送端以第一周期为发送周期向上述接收端发送报文之前,在上述发送端建立第一套接字,上述第一套接字包括发送端IP和发送端端口;第二建立单元用于在上述发送端以第一周期为发送周期向上述接收端发送报文之前,在上述接收端建立第二套接字,上述第二套接字包括接收端IP和接收端端口;第一设置单元用于将上述第一套接字绑定的上述发送端IP作为上述第二套接字的接收IP,上述第一套接字绑定的上述发送端端口作为上述第二套接字的接收端口;第二设置单元用于将上述第二套接字绑定的上述接收端IP作为上述第一套接字的接收IP,上述第二套接字绑定的上述接收端端口作为上述第一套接字的接收端口。发送端使用上述第一套接字,向第二套接字绑定的IP和端口发送报文,接收端使用上述第二套接字,向第一套接字绑定的IP和端口发送报文。例如,第一套接字本地IP和Port表示为(192.168.1.128,50000),其中,“192.168.1.128”为发送端IP,“50000”为发送端端口,第二套接字表示为(192.168.1.127,51000),其中,“192.168.1.127”为接收端IP。“51000”为接收端端口。发送端使用(192.168.1.128,50000)向接收端(192.168.1.127,51000)发送报文,接收端使用(192.168.1.127,51000)向(192.168.1.128,50000)发送报文。另外,发送端IP和接收端IP属于同一个子网,以保证发送端和接收端能进行正常以太网通信。基于UDP的套接字可以直接指定IP和端口,不需要额外的服务发现。
本申请的另一种实施例中,发送单元还用于根据上述第一套接字,以上述第一周期为发送周期向上述接收端发送上述报文;接收单元还用于根据上述第二套接字,以上述第二周期为接收周期接收上述报文。具体地,由于发送端和接收端都指定了发送端IP、发送端端口、接收端IP和接收端端口四种信息,也就是说发送端根据上述信息可以精确确定接收的对象(即确定接收端),同理,接收端根据上述信息也可以精确确定接收的对象(即确定发送端),发送端和接收端在通信前均已确定消息的对端,保证了发送端和接收端之间的通信效率。
本申请的再一种实施例中,上述系统还包括第一确定单元和第二确定单元,第一确定单元用于在上述发送端以第一周期为发送周期向上述接收端发送报文之前,确定上述的报文的类型;第二确定单元,用于在上述发送端以第一周期为发送周期向上述接收端发送报文之前,确定单帧上述报文的长度。现有技术中的报文的类型主要包括请求报文、回复报文、通知报文和报错报文,本方案中的报文的类型为通知报文,通过将报文的类型固定为通知报文简化了报文的结构,减小了待处理的数据量,提高了发送端和接收端之间的通信效率;标准单帧CAN报文数据长度最大为64字节,单帧LIN数据长度最大为8字节,单帧Flexray报文数据长度最大254个字节,通过确定单帧上述报文的长度,单帧报文长度可设置为1500个字节,以满足大数据的通信需求。以太网通信方式极大提高了通信效率。无论从单帧报文长度,还是通信速率,跟UART、SPI、I2C相比都有极大的优势。
本申请的一种实施例中,上述发送端包括发送缓冲器和发送端应用层,发送单元还用于将上述发送缓冲器初始化为0;在上述发送端应用层预发送上述报文的情况下,将预发送的上述报文写入上述发送缓冲器中;将上述发送缓冲器上锁;将上述发送缓冲器中的上述报文以上述第一周期为上述发送周期,发送至上述接收端;更新上述发送缓冲器中的数据;将上述发送缓冲器解锁。即使用互斥锁对待发送的报文进行保护,由于发送端的发送缓冲器是应用线程和发送线程共用的,因此在使用发送端的发送缓冲器时,必须使用互斥锁,避免数据被其他人修改。该方案实现了发送端周期发送报文。
本申请的一种实施例中,上述接收端包括接收缓冲器、更新缓冲器和接收端应用层,接收单元还用于将上述接收缓冲器初始化为0;通知上述接收端应用层已启动接收上述报文;确定上述接收端应用层是否接收到新的上述报文;在上述接收端应用层接收到新的上述报文的情况下,将接收到的新的上述报文写入上述更新缓冲器中;将上述更新缓冲器中的上述报文与上述接收缓冲器中的上述报文进行比较;在上述更新缓冲器中的报文与上述接收缓冲器中的报文不相同的情况下,更新上述接收缓冲器中的上述报文,且将更新的上述报文发送至上述接收端应用层,进入等待;在上述更新缓冲器中的报文与上述接收缓冲器中的报文相同的情况下,进入等待;等待时间到达上述第二周期后,上述接收端应用层继续接收上述报文。避免了接收端应用层做过多冗余的处理,实现了接收端周期接收报文。
上述提高双系统之间通信速率的系统包括处理器和存储器,上述发送单元和接收单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高双系统之间的通信速率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述提高双系统之间通信速率的方法。
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述提高双系统之间通信速率的方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
步骤S101,上述发送端以第一周期为发送周期向上述接收端发送报文,上述第一周期为上述报文的最小周期;
步骤S102,上述接收端以第二周期为接收周期接收上述报文,上述第二周期小于或者等于上述第一周期的二分之一。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
步骤S101,上述发送端以第一周期为发送周期向上述接收端发送报文,上述第一周期为上述报文的最小周期;
步骤S102,上述接收端以第二周期为接收周期接收上述报文,上述第二周期小于或者等于上述第一周期的二分之一。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请的提高双系统之间通信速率的方法,发送端以第一周期为发送周期向接收端发送报文,接收端以第二周期为接收周期接收报文,第一系统和第二系统之间通过以太网进行通信,保证了双系统之间较高的通信速率,且使用以太网通信单帧通信数据长度更长,能满足大数据的通信需求。且以太网的协议栈的应用层实现较简单。由于接收周期小于或者等于发送周期的二分之一,避免了数据丢包,即使存在调度时间差,也能保证每包报文都能正确接收,本方案提高了双系统之间的通信速率,实现了双系统间的大数据传输。SOME/IP协议是车载以太网中常用的通信协议,但是通信前需要使用服务发现和消息订阅协议,若通信内容只是固定信号,SOME/IP协议反而增加了通信的流程。本方案删去了SOME/IP的服务发现和服务订阅流程,因此无需SD(服务发现)模块的支持。SOME/IP协议需要双系统的同时支持,并且是基于服务的协议,协议中需要遵守的规则过于繁琐,本方案简化了协议需要遵循的规则。
2)、本申请的提高双系统之间通信速率的系统,发送端的发送单元以第一周期为发送周期向接收端发送报文,接收端的接收单元以第二周期为接收周期接收报文,第一系统和第二系统之间通过以太网进行通信,保证了双系统之间较高的通信速率,且使用以太网通信单帧通信数据长度更长,能满足大数据的通信需求。且以太网的协议栈的应用层实现较简单。由于接收周期小于或者等于发送周期的二分之一,避免了数据丢包,即使存在调度时间差,也能保证每包报文都能正确接收,本方案提高了双系统之间的通信速率,实现了双系统间的大数据传输。SOME/IP协议是车载以太网中常用的通信协议,但是通信前需要使用服务发现和消息订阅协议,若通信内容只是固定信号,SOME/IP协议反而增加了通信的流程。本方案删去了SOME/IP的服务发现和服务订阅流程,因此无需SD(服务发现)模块的支持。SOME/IP协议需要双系统的同时支持,并且是基于服务的协议,协议中需要遵守的规则过于繁琐,本方案简化了协议需要遵循的规则。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种提高双系统之间通信速率的方法,其特征在于,所述双系统包括第一系统和第二系统,所述第一系统为发送端且所述第二系统为接收端,或者,所述第二系统为发送端且所述第一系统为接收端,所述第一系统和所述第二系统之间通过以太网进行通信,所述方法包括:
所述发送端以第一周期为发送周期向所述接收端发送报文,所述第一周期为所述报文的最小周期;
所述接收端以第二周期为接收周期接收所述报文,所述第二周期小于或者等于所述第一周期的二分之一。
2.根据权利要求1所述的方法,其特征在于,在所述发送端以第一周期为发送周期向所述接收端发送报文之前,所述方法还包括:
在所述发送端建立第一套接字,所述第一套接字绑定发送端IP和发送端端口;
在所述接收端建立第二套接字,所述第二套接字绑定接收端IP和接收端端口;
将所述第一套接字绑定的所述发送端IP作为所述第二套接字的接收IP,所述第一套接字绑定的所述发送端端口作为所述第二套接字的接收端口;
将所述第二套接字绑定的所述接收端IP作为所述第一套接字的接收IP,所述第二套接字绑定的所述接收端端口作为所述第一套接字的接收端口。
3.根据权利要求2所述的方法,其特征在于,
所述发送端以第一周期为发送周期向所述接收端发送报文,包括:
所述发送端根据所述第一套接字,以所述第一周期为发送周期向所述接收端发送所述报文;
所述接收端以第二周期为接收周期接收所述报文,包括:
所述接收端根据所述第二套接字,以所述第二周期为接收周期接收所述报文。
4.根据权利要求1所述的方法,其特征在于,在所述发送端以第一周期为发送周期向所述接收端发送报文之前,所述方法还包括:
确定所述的报文的类型;
确定单帧所述报文的长度。
5.根据权利要求1所述的方法,其特征在于,所述发送端包括发送缓冲器和发送端应用层,所述发送端以第一周期为发送周期向所述接收端发送报文,包括:
将所述发送缓冲器初始化为0;
在所述发送端应用层预发送所述报文的情况下,将预发送的所述报文写入所述发送缓冲器中;
将所述发送缓冲器上锁;
将所述发送缓冲器中的所述报文以所述第一周期为所述发送周期,发送至所述接收端;
更新所述发送缓冲器中的数据;
将所述发送缓冲器解锁。
6.根据权利要求5所述的方法,其特征在于,所述接收端包括接收缓冲器、更新缓冲器和接收端应用层,所述接收端以第二周期为接收周期接收所述报文,包括:
将所述接收缓冲器初始化为0;
通知所述接收端应用层已启动接收所述报文;
确定所述接收端应用层是否接收到新的所述报文;
在所述接收端应用层接收到新的所述报文的情况下,将接收到的新的所述报文写入所述更新缓冲器中;
将所述更新缓冲器中的所述报文与所述接收缓冲器中的所述报文进行比较;
在所述更新缓冲器中的报文与所述接收缓冲器中的报文不相同的情况下,更新所述接收缓冲器中的所述报文,且将更新的所述报文发送至所述接收端应用层,进入等待;
在所述更新缓冲器中的报文与所述接收缓冲器中的报文相同的情况下,进入等待;
等待时间到达所述第二周期后,所述接收端应用层继续接收所述报文。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一系统和第二系统之间采用UDP的通信方式进行通信。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一系统为MCU上的RTOS系统,所述第二系统为SOC上的Linux系统。
9.一种提高双系统之间通信速率的系统,其特征在于,所述双系统包括第一系统和第二系统,所述第一系统为发送端且所述第二系统为接收端,或者,所述第二系统为发送端且所述第一系统为接收端,所述发送端包括发送单元,所述接收端包括接收单元,所述第一系统和所述第二系统之间通过以太网进行通信,
所述发送单元,用于以第一周期为发送周期向所述接收端发送报文,所述第一周期为所述报文的最小周期;
所述接收单元,用于以第二周期为接收周期接收所述报文,所述第二周期小于或者等于所述第一周期的二分之一。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至8中任意一项所述的提高双系统之间通信速率的方法。
11.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至8中任意一项所述的提高双系统之间通信速率的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010981745.6A CN112235076B (zh) | 2020-09-17 | 2020-09-17 | 提高双系统之间通信速率的方法、系统与处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010981745.6A CN112235076B (zh) | 2020-09-17 | 2020-09-17 | 提高双系统之间通信速率的方法、系统与处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112235076A true CN112235076A (zh) | 2021-01-15 |
CN112235076B CN112235076B (zh) | 2023-02-17 |
Family
ID=74107254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010981745.6A Active CN112235076B (zh) | 2020-09-17 | 2020-09-17 | 提高双系统之间通信速率的方法、系统与处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112235076B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118741A (zh) * | 2021-03-17 | 2022-09-27 | Aptiv技术有限公司 | 电子控制单元、包括电子控制单元的车辆和计算机实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108132896A (zh) * | 2018-01-17 | 2018-06-08 | 西安闻泰电子科技有限公司 | 数据传输方法和装置 |
CN108667890A (zh) * | 2017-03-27 | 2018-10-16 | 现代自动车株式会社 | 车辆网络中支持网络管理功能的通信节点的操作方法 |
CN111045590A (zh) * | 2019-12-04 | 2020-04-21 | 广州小鹏汽车科技有限公司 | 一种车载模拟按键的方法、系统、存储介质及车辆 |
CN111061499A (zh) * | 2019-12-31 | 2020-04-24 | 上海赫千电子科技有限公司 | 一种基于文件系统的ecu更新方法及系统 |
CN111464415A (zh) * | 2020-04-02 | 2020-07-28 | 昆易电子科技(上海)有限公司 | 用于can总线消息异常预警的方法及电子设备 |
-
2020
- 2020-09-17 CN CN202010981745.6A patent/CN112235076B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667890A (zh) * | 2017-03-27 | 2018-10-16 | 现代自动车株式会社 | 车辆网络中支持网络管理功能的通信节点的操作方法 |
CN108132896A (zh) * | 2018-01-17 | 2018-06-08 | 西安闻泰电子科技有限公司 | 数据传输方法和装置 |
CN111045590A (zh) * | 2019-12-04 | 2020-04-21 | 广州小鹏汽车科技有限公司 | 一种车载模拟按键的方法、系统、存储介质及车辆 |
CN111061499A (zh) * | 2019-12-31 | 2020-04-24 | 上海赫千电子科技有限公司 | 一种基于文件系统的ecu更新方法及系统 |
CN111464415A (zh) * | 2020-04-02 | 2020-07-28 | 昆易电子科技(上海)有限公司 | 用于can总线消息异常预警的方法及电子设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118741A (zh) * | 2021-03-17 | 2022-09-27 | Aptiv技术有限公司 | 电子控制单元、包括电子控制单元的车辆和计算机实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112235076B (zh) | 2023-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108494817B (zh) | 数据传输方法、相关装置及系统 | |
US8806030B2 (en) | Multichannel connections in file system sessions | |
WO2018059137A1 (zh) | 物联网终端接入装置及方法和计算机存储介质 | |
US11948021B2 (en) | Method for inter-core communication, processor, inter-core communication system and computer readable storage medium | |
WO2019095124A1 (zh) | 切换串口数据传输状态的方法及装置 | |
CN112804100B (zh) | 一种基于容器的io接口资源的控制方法和物联终端 | |
WO2024037296A1 (zh) | 基于协议族的quic数据传输方法及装置 | |
CN115543661B (zh) | 数据分发装置及分发方法、车辆电子操作系统的架构 | |
CN112235076B (zh) | 提高双系统之间通信速率的方法、系统与处理器 | |
CN113660127B (zh) | 基于EasyMesh组网中的组网控制方法、装置及设备 | |
CN116204487A (zh) | 远程数据访问方法及装置 | |
CN112702338B (zh) | Ike报文获取方法及装置 | |
CN114697387A (zh) | 数据包传输方法、装置及存储介质 | |
CN114095901A (zh) | 通信数据处理方法及装置 | |
CN115562887A (zh) | 基于数据组包的核间数据通信方法、系统、设备及介质 | |
CN111245794B (zh) | 数据传输方法和装置 | |
JP7399175B2 (ja) | 接続管理方法、装置、端末及びシステム | |
CN110781014B (zh) | 基于Android设备的录音数据的多进程分发方法与系统 | |
CN109257227B (zh) | 数据传输中的偶联管理方法、装置及系统 | |
US9391850B2 (en) | Method and apparatus for quality-of-service (QoS) management | |
CN115913809B (zh) | 数据分发通信方法、系统、计算机设备及存储介质 | |
CN111225452B (zh) | 一种会话管理设备及系统 | |
CN112532728B (zh) | 一种确定性的机载高性能文件传输方法和系统 | |
CN115913809A (zh) | 数据分发通信方法、系统、计算机设备及存储介质 | |
CN117749734A (zh) | 业务快速响应方法、装置、设备和介质 |
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 |