CN117544711A - 一种多处理器间的通信方法、装置、设备和介质 - Google Patents
一种多处理器间的通信方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN117544711A CN117544711A CN202410003814.4A CN202410003814A CN117544711A CN 117544711 A CN117544711 A CN 117544711A CN 202410003814 A CN202410003814 A CN 202410003814A CN 117544711 A CN117544711 A CN 117544711A
- Authority
- CN
- China
- Prior art keywords
- data
- communication
- frame
- publisher
- channel
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 119
- 238000004891 communication Methods 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000003993 interaction Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000006855 networking Effects 0.000 description 5
- 239000000725 suspension Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004378 air conditioning Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/30—Definitions, standards or architectural aspects of layered protocol stacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- 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/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种多处理器间的通信方法、装置、设备和介质,涉及通信技术领域。作为发布者的发送处理器先确定待发送消息,然后通过网络层生成数据内容并进行打包得到数据帧,然后通过数据链路层对数据帧进行完整性校验再将数据帧发送至作为订阅者的接收处理器,订阅者再通过网络层将接收到的数据帧中的数据内容存储到对应预设的虚拟设备节点中,最后订阅者通过应用层对虚拟设备节点进行读取完成与发布者之间的通信。本发明构建了一套三层通信协议,通过基于网络层中设置虚拟设备节点进行通信,发布者在与多个同类型设备进行同类型交互时,可将相同的数据内容通过对应各虚拟设备节点的数据通道进行分别发送,简化了通信数据,提高了通信效率。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种多处理器间的通信方法、装置、设备和介质。
背景技术
目前,智能网联设备的硬件方案大多都是由强实时性的数据采集单元(如,微控制单元(Micro Controller Unit,MCU))、高性能的运算控制模组(如,系统级芯片(System OnChip,SOC))以及联网模组构成,三个模块均有数据处理能力,并且相互需要高实时性的数据通信,在通信过程中,保证数据的传输效率是尤为重要的。
以MCU和SOC之间的通信为例,一般的,MCU和车辆上设置的多种控制器中的处理器直接连接,而SOC则和MCU直接连接。这里所说的多种控制器可包括车窗控制器、车门控制器以及空调控制器等等。
现有技术通常通过SOC对车辆进行控制,具体的,SOC可将所要操作的设备的控制指令通过MCU传输给所要操作的设备对应的控制器,从而实现对车辆上各设备的控制。例如,假设要控制左前车窗开启,则服务器可通过MCU将开启左前车窗的控制指令直接传输给左前车窗对应的控制器。其中,各设备对应的各种控制指令可通过预先编译的方式得到,在进行应用时直接确定并传输对应的控制指令即可。
但是,对于每类设备,车辆通常可能会包含不止一个该类设备,而在与该类设备进行交互时,通常需要针对每个设备发送相似的控制指令,导致控制指令随着车辆上设备的增加而变得越来越繁冗复杂,同时处理器间的通信效率也较低。
发明内容
基于此,有必要针对上述技术问题,提供一种多处理器间的通信方法、装置、设备和介质。
本说明书采用下述技术方案:
本说明书提供了一种多处理器间的通信方法,包括:
将发送处理器作为发布者,发布者通过应用层根据业务需求确定待发送信息;
发布者通过网络层根据待发送信息生成数据内容、及数据内容分别对应的发送通道和接收通道;对数据内容进行打包得到包含发送通道、接收通道、数据内容以及校验码的多个数据帧;
发布者通过数据链路层对数据帧基于校验码进行完整性校验,并在校验通过后将数据帧发送至作为订阅者的多个接收处理器;
各订阅者通过网络层根据接收到的数据帧中的发送通道和接收通道,确定对应于数据帧预设的虚拟设备节点,将数据帧中的数据内容存储到对应的虚拟设备节点中;其中,虚拟设备节点为各真实设备的映射;
各订阅者通过应用层根据业务需求对虚拟设备节点进行数据读取,完成与发布者之间的通信。
可选地,所述数据帧包括:标识位、发送通道、操作类型、接收通道、数据长度、数据内容以及校验码。
可选地,所述校验码为CRC16校验码;
所述对数据帧基于校验码进行完整性校验,具体包括:
提取数据帧中的标识位、数据长度以及CRC16校验码;
根据标识位和数据长度从数据帧中提取数据内容,并通过CRC16算法计算数据内容对应的CRC16检验码;
判断从数据帧中提取得到的CRC16校验码与数据内容对应的CRC16检验码是否一致;
若是,则确认数据帧通过完整性校验;
若否,则确认数据帧未通过完整性校验。
可选地,所述应用层对应的应用层协议包括CAN总线数据的处理协议包;
所述发布者通过应用层根据业务需求确定待发送信息,具体包括:
发布者通过应用层根据业务需求,基于CAN总线数据的处理协议包将多帧CAN总线数据合并为数据包,并将CAN总线数据的总帧数和数据包作为待发送信息。
可选地,所述订阅者通过网络层根据接收到的数据帧中的发送通道和接收通道,确定对应于数据帧预设的虚拟设备节点,将数据帧中的数据内容存储到虚拟设备节点中,具体包括:
订阅者通过网络层根据接收到的数据帧中的数据内容,确定CAN总线数据的总帧数,将数据内容拆分为多帧CAN总线数据;
针对每帧CAN总线数据,确定对应于该帧CAN总线数据预设的虚拟设备节点,并将该帧CAN总线数据存储到对应的虚拟设备节点中。
可选地,所述发布者网络层中预设多个虚拟设备节点;
发布者通过网络层根据待发送信息生成数据内容、及数据内容分别对应的发送通道和接收通道,具体包括:
发布者通过网络层根据待发送信息,从各虚拟设备节点中获取到对应的待发送数据,生成数据内容、及数据内容分别对应的发送通道和接收通道。
可选地,应用层对应的应用层协议、网络层对应的网络层协议以及数据链路层对应的数据链路层协议对通信所使用的硬件接口和软件接口进行解耦,使各层协议用于通过不同的数据通信接口进行通信;其中,数据通信接口包括串行外设接口、通用异步收发器接口和以太网接口。
本说明书提供了一种多处理器间的通信装置,包括:
发送处理器,用于通过应用层根据业务需求确定待发送信息,通过网络层根据待发送信息生成数据内容、及数据内容分别对应的发送通道和接收通道;对数据内容进行打包得到包含发送通道、接收通道、数据内容以及校验码的多个数据帧通过数据链路层对数据帧基于校验码进行完整性校验,并在校验通过后将数据帧发送至多个接收处理器;
多个接收处理器,用于通过网络层根据接收到的数据帧中的发送通道和接收通道,确定对应于数据帧预设的虚拟设备节点,将数据帧中的数据内容存储到对应的虚拟设备节点中;通过应用层根据业务需求对虚拟设备节点进行数据读取,完成与发布者之间的通信;其中,虚拟设备节点为各真实设备的映射。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述多处理器间的通信方法。
本说明书提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述多处理器间的通信方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
作为发布者的发送处理器先通过应用层根据业务需求确定待发送消息,然后通过网络层对数据内容进行打包得到数据帧,然后通过数据链路层对数据帧进行完整性校验再将数据帧发送至作为订阅者的接收处理器,订阅者再通过网络层将接收到的数据帧中的数据内容存储到对应预设的虚拟设备节点中,最后订阅者通过应用层根据业务需求对虚拟设备节点进行读取完成与发布者之间的通信。
本发明构建了一套三层通信协议,通过基于网络层中设置虚拟设备节点进行通信,发布者在与多个同类型设备进行同类型交互时,可将相同的数据内容通过对应各虚拟设备节点的数据通道进行分别发送,仅根据该一套协议即可实现统一的通信,简化了通信数据,提高了通信效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书提供的一种多处理器间的通信方法流程示意图;
图2为本说明书提供的一种通信模型示意图;
图3为本说明书提供的一种多处理器间通信架构示意图;
图4为本说明书提供的一种多车辆间通信架构示意图;
图5为本说明书提供的一种多处理器间的通信装置示意图;
图6为本说明书提供的一种实现多处理器间的通信方法的计算机设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下描述过程以车辆中的处理器为例进行说明,但本发明对处理器具体为何种处理器不做限制。
目前,车辆上通常会存在多种处理器或微处理器等,例如,车窗控制器和空调控制器中的处理器等,或者,多种车载终端的处理器。这些处理器之间在进行通信时,通常是通过预先编译的特定指令进行通信。而随着车辆中设备的增多,对各种设备的控制器的增加,处理器之间的通信也越来越多,导致处理器之间的通信指令逐渐复杂,通信效率和通信内容的正确性有待提高。基于此,本发明提出一种多处理器间的通信方法,以提升提升多处理器间通信效率与通信内容的正确性。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本说明书中一种多处理器间的通信方法流程示意图,具体包括以下步骤:
S101:将发送处理器作为发布者,发布者通过应用层根据业务需求确定待发送信息。
S102:发布者通过网络层根据待发送信息生成数据内容、及数据内容分别对应的发送通道和接收通道;对数据内容进行打包得到包含发送通道、接收通道、数据内容以及校验码的多个数据帧。
S103:发布者通过数据链路层对数据帧基于校验码进行完整性校验,并在校验通过后将数据帧发送至作为订阅者的多个接收处理器。
随着通信技术的发展,目前存在多种通信协议。其中,本发明提供一种基于订阅/发布模式的通信协议。
具体的,在本说明书一个或多个实施例中,本方案可基于数据通道实现,每个数据通道都有一个唯一的标识符和与其相关联的消息类型,这里所说的消息类型是指对应于不同预先定义的数据传输规则的不同消息。通常,对应于不同的业务需求,可能需要根据不同的数据传输规则进行数据传输,例如,A业务需求中,传输车速信息的时候需要携带当前时间以便于计算车辆是否超速,则可对应设置数据传输规则为(A业务:瞬时车速+时间戳),可将该数据传输规则所对应的数据内容的消息类型设置为A类型。再例如,B业务需求中,需要车辆的姿态信息,且信息传输要以z轴、y轴、x轴的顺序顺序进行传递,可对应设置数据传输规则为(B业务:z轴-y轴-x轴姿态信息),可将该数据传输规则所对应的数据内容的消息类型设置为B类型。
基于数据通道的通信中,各通信对象又分为消息发布者与消息订阅者。消息发布者可以是指将消息发送到特定数据通道以供其他对象接收的单位,在本方案中,可将发送消息的发送处理器作为发布者。对应的订阅者可以是指从数据总线上接收特定数据通道中消息的单位,同理,在本方案中,可将接收消息的接收处理器作为订阅者,如图2所示。
图2为本说明书中一种通信模型示意图。由图2可见,基于数据总线中的多个数据通道0~n,发布者0~n和订阅者0~n可基于各数据通道进行通信,具体通信可基于数据帧进行。这里所说的数据通道是指软件通道。
进一步的,在本说明书一个或多个实施例中,提出一种通信协议,包括数据链路层、网络层以及应用层。
对于数据链路层,数据链路层主要负责数据帧的发送、数据帧的接收以及数据内容的完整性校验。
对于网络层,网络层主要负责数据帧中数据内容的路由及虚拟设备节点的管理。其中,数据向上路由即为订阅者收取订阅消息的过程、向下路由即为发布者向消息总线发布消息的过程。
这里所说的虚拟设备节点是指对各真实设备的映射,如,对车辆中各真实车辆设备的映射,可以将同类型真实车辆设备映射至同一个虚拟设备节点中,通过不同的设备编号对同类型真实车辆设备的不同真实车辆设备进行区别。例如,可将车辆中四个车门映射至同一个虚拟设备节点中,并分别为左前门、右前门、左后门和右后门进行编号以进行区别。同时,各虚拟设备节点可与上述数据通道一一对应,即处于网络层的虚拟设备节点可用于固定存储通过某个数据通道传输的数据内容。
虚拟设备节点与前述的发送通道和接收通道存在对应关系,通过与虚拟节点对应的发送通道进行发送并通过对应的接收通道进行接收的消息,才能被解析以存储至虚拟设备节点中。
通过将车辆的真实车辆设备映射至虚拟设备节点的方式,使得对各真实车辆设备便于管理,无论是通过处理器之间的通信,获取各真实车辆设备的实时信息还是对各真实车辆设备进行控制,都可基于虚拟设备节点以及本通信协议实现统一形式的通信,从而避免了各真实车辆设备由于硬件之间的差异性导致通信数据的繁冗复杂多变,简化了通信数据的组织,提高了通信效率。
此外,在本说明书一个或多个实施例中,对于各处理器来说,可以是仅发布者的网络层中具备虚拟设备节点,或者仅订阅者的网络层中具备虚拟设备节点,或者发布者和订阅者的网络层中都具备虚拟设备节点。具体采用何种方式,可根据需要确定,本说明书对此不做限制。
对于应用层,应用层主要负责对数据内容的解包、打包,通过对这段数据内容的解析即可明确这条消息需要实现的具体功能。
基于上述通信协议,在本说明书一个或多个实施例中,发布者可先通过应用层根据业务需求确定待发送信息,这里所说的业务需求可以对应多种功能实现,例如,可以是消息传递,或者信息收集,或者对真实车辆设备的控制等等。待发送信息可以包括车辆设备的编号和设备对应的操作。例如,可以是发布者A要控制订阅者B执行操作1,则可通过业务需求调用相应的函数实现,函数参数可以包括订阅者B和操作1,使得发布者通过应用层确定待发送信息可以包括订阅者B和操作1。或者发布者A要向订阅者B上传发布者A的实时信息,则待发送信息可以包括发布者A和上传信息操作。
然后,发布者可通过网络层根据待发送信息生成数据内容,以发布者A要控制订阅者B执行操作1为例,则可根据订阅者B的编码对应的二进制数据和操作1的编码对应的二进制数据生成数据内容。进一步的,发布者还可根据待发送信息确定其对应的消息类型,从而确定数据内容对应的发送通道和接收通道,并对数据内容进行打包,得到至少包含发送通道、接收通道、数据内容以及校验码的数据帧。使得后续可根据数据帧明确其发送通道并发送,并使得对应的订阅者可根据接收通道确定接收该数据帧,以及在数据链路层可基于校验码对数据内容进行校验。
最后,发布者可通过数据链路层对数据帧基于校验码进行完整性校验,具体校验方法可根据需要确定,可以是基于目前已有的较为成熟的完整性校验技术,本说明书对此不做限制。在校验通过后,发布者可将数据帧通过数据链路层发送至订阅者处。
此外,在本说明书一个或多个实施例中,数据帧可包括:标识位、发送通道、操作类型、接收通道、数据长度、数据内容以及校验码,如表1所示。
表1
表1为本说明书中一种数据帧示意表,其中,标识位可以是按照预设编码规则赋予数据帧的唯一编码,便于记录或后续查看该通信数据帧。操作类型可以包括对数据通道的通道创建、通道启用、通道挂起、通道销毁等操作。
其中,通常车辆上数据采集单元、高性能的运算控制模组以及联网模组可作为主设备,车辆上设置的多种控制器中的处理器可作为从设备,从而实现主从设备之间的通信主从设备都即可作为发布者,也可作为订阅者。
于是,通道创建用于在车辆控制系统刚启动时,从设备通知主设备创建对应的软件通道,若运行过程中从设备超过一定时间未收到主设备的消息时,从设备会重新发起通道创建。通道启用用于主设备通道创建成功/通道挂起恢复后告诉从设备通道启用,此时主从两设备即可开始通讯。通道挂起用于主设备在运行过程中,根据业务需求,告知从设备通道状态此时不能再继续收发消息了(如,主设备要执行一个较为耗时的任务,该任务执行期间不能被从设备的消息打断但是该消息又不能丢失,此时主设备会告知从设备通道挂起的信息,在挂起到恢复的这段时间,从设备会将需要发送的消息暂时保存,等待通道重新启用后再发给主设备)。通道销毁用于主从设备关机或重启的时候。
本说明书中提到的处理器可以是设置于车辆的处理器,可以是指设置在同一辆车上的不同处理器,也可以是指设置于不同车辆上的不同处理器。为了方便说明,下面仅以发布者或订阅者为执行主体进行说明。
S104:各订阅者通过网络层根据接收到的数据帧中的发送通道和接收通道,确定对应于数据帧预设的虚拟设备节点,将数据帧中的数据内容存储到对应的虚拟设备节点中;其中,虚拟设备节点为各真实设备的映射。
S105:各订阅者通过应用层根据业务需求对虚拟设备节点进行数据读取,完成与发布者之间的通信。
当数据帧在数据链路层完成传输后,订阅者可通过网络层先确定接收到的数据帧对应的虚拟设备节点,由上述可知,数据帧的发送通道和接收通道与虚拟设备节点一一对应,于是,订阅者可对接收到的数据帧进行解析确定其对应的虚拟设备节点,并将其中的数据内容存储到对应的虚拟设备节点中。
从而订阅者可通过应用层根据业务需求对虚拟设备节点进行数据读取,具体读取方式可根据需要确定,本说明书对此不做限制。例如,可以是根据业务需求按照预设的时间间隔进行读取,或者实时读取等等。即完成了订阅者与发布者之间的通信。
例如,以真实车辆设备对应的控制器向车载终端上传车辆行驶数据为例,作为发布者的各真实车辆设备对应的控制器中的处理器即可通过上述过程向订阅者发送车辆行驶数据,作为订阅者的车载终端的处理器可通过网络层将接收到的各数据内容存储在对应的虚拟设备节点中,例如将车门状态数据存储在车门虚拟设备节点中,当然,可将四个车门的数据在车门虚拟设备节点内部分别进行存储。最后车载终端的处理器可通过应用层对各虚拟设备节点中的数据内容进行读取,完成真实车辆设备对应的控制器向车载终端上传车辆行驶数据的通信过程。
基于图1所示的多处理器间的通信方法,作为发布者的发送处理器先通过应用层根据业务需求确定待发送消息,然后通过网络层对数据内容进行打包得到数据帧,然后通过数据链路层对数据帧进行完整性校验再将数据帧发送至作为订阅者的接收处理器,订阅者再通过网络层将接收到的数据帧中的数据内容存储到对应预设的虚拟设备节点中,最后订阅者通过应用层根据业务需求对虚拟设备节点进行读取完成与发布者之间的通信。
本发明构建了一套三层通信协议,通过基于网络层中设置虚拟设备节点进行通信,发布者在与多个同类型设备进行同类型交互时,可将相同的数据内容通过对应各虚拟设备节点的数据通道进行分别发送,仅根据该一套协议即可实现统一的通信,简化了通信数据,提高了通信效率。
在应用本说明书提供的多处理器间的通信方法时,可不根据图1所示的各步骤的顺序执行,具体各步骤的执行顺序可根据需要确定,本说明书对此不做限制。
此外,在本说明书一个或多个实施例中,步骤S103中所说的校验码可以是CRC16校验码(循环冗余校验码,Cyclic Redundancy Check,CRC),对应的,在对数据帧基于校验码进行完整性校验时,可先提取数据帧中的标识位、数据长度以及CRC16校验码。然后根据标识位和数据长度从数据帧中提取数据内容,并通过CRC16算法计算数据内容对应的CRC16检验码,最后判断从数据帧中提取得到的CRC16校验码与数据内容对应的CRC16检验码是否一致,若是,则确认数据帧通过完整性校验,若否,则确认数据帧未通过完整性校验。通过采用CRC16校验算法进一步保证了数据帧的传输正确性、稳定性以及数据安全。
进一步的,在本说明书一个或多个实施例中,应用层协议可以根据业务需求进行高度自由化定义,比如添加控制器局域网(Controller Area Network,CAN)总线数据的处理协议包、物联网设备的通信协议包、或是自定义的解析协议到当前的应用层协议中统一进行管理,这些协议可与网络层的虚拟设备节点的缓存区的操作接口进行连接。
例如,假设车辆通过A处理器进行CAN总线数据的采集,通过B处理器进行CAN总线数据的处理,则两个处理器之间需要通过通信接口进行数据交换,以实现CAN总线数据的采集和处理。
当A处理器对整个车辆中全部CAN总线数据进行采集时,由于CAN总线数据的数据总量和类型非常多,且各项数据的上报周期并不统一,若A处理器每次都将采集到的CAN总线数据传输给B处理器,则A处理器与B处理器之间需要进行非常多次的数据通信,两个处理器之间需要执行多次步骤S101~步骤S104中的内容,对两个处理器来说都比较耗费CPU的资源。
于是,应用层对应的应用层协议可包括CAN总线数据的处理协议包,发布者可通过应用层根据业务需求,基于CAN总线数据的处理协议包将多帧CAN总线数据合并为数据包,并将CAN总线数据的总帧数和数据包作为待发送信息。
对应的,订阅者可先通过网络层根据接收到的数据帧中的数据内容,确定CAN总线数据的总帧数,将数据内容拆分为多帧CAN总线数据。然后,针对每帧CAN总线数据,确定对应于该帧CAN总线数据预设的虚拟设备节点,并将该帧CAN总线数据存储到对应的虚拟设备节点中,从而实现发布者将多帧CAN总线数据进行合并发送,减少发送次数,降低对发布者和订阅者的资源占用。
当然了,多帧数据组成的数据包中还可包括CAN总线数据通讯时间等信息,具体合并得到的数据包中包括何种数据可根据需要确定,本说明书对此不做限制。
上述仅为对应用层协议可以根据业务需求进行高度自由化定义的举例说明,在实际应用中,还可根据业务需要进行其他自定义应用,本说明书对此不做限制。
另外,在本说明书一个或多个实施例中,发布者也可在网络层中预设多个虚拟设备节点,各虚拟节点同样为车辆中各真实车辆设备的映射。
例如,当发布者为不具备联网功能的车载终端,订阅者为具备联网功能的车载终端时,该两终端可以是服务于不同的业务应用,发布者可通过将存储的车辆行驶数据发送至订阅者从而通过订阅者进行数据上报。对应的,发布者可通过应用层根据业务需求确定待发送信息,并通过网络层根据待发送信息从虚拟设备节点中获取到对应的待发送数据从而生成数据内容、及数据内容分别对应的发送通道和接收通道,对数据内容进行打包得到包含发送通道、接收通道、数据内容以及校验码的数据帧,后续可通过步骤S104和步骤S105进行数据帧的发送和订阅者对数据帧的接收。
图3为本说明书中一种多处理器间通信架构示意图。当本发明提出的通信协议应用到板级多处理器间时如图3所示,示例中共有多个处理器1~N,多个处理器之间在数据链路层使用处理器间物理硬件接口如SPI、UART等接口进行连接,在每个处理器中协议的网络层会根据业务需求虚拟出所有相关处理器的虚拟处理器1~N,对其状态统一进行管理。
再例如,当发布者和订阅者为不同车辆上的处理器时,此时,对于发布者和订阅者来说,其通信的网络层中的虚拟设备节点可以是各车辆,从而基于虚拟设备节点实现各车辆间的通信,或者说是,各车辆中不同处理器间的通信。
图4为本说明书中一种多车辆间通信架构示意图。当本发明提出的通信协议应用到车与车之间时如图4所示,示例中共有多辆车,当车辆之间需要进行数据交互时,多辆车之间在数据链路层使用车际连接接口如车际网络进行连接,在每台车辆内部中控的网络层会虚拟出所有相关车辆的虚拟车辆1~N,这样就可以方便的对每台车辆的信息进行管理。当然了,也可以是将多辆车中的某一辆车作为主车,只在主车内部中控的网络层虚拟出所有相关车辆的虚拟车辆1~N,从而通过主车对所有车辆进行统一管理。
进一步的,在本说明书一个或多个实施例中,对于通信协议,数据链路层主要负责数据帧发送、数据帧接收及数据帧的完整性校验。其中数据帧的发送与接收依靠当前处理器的通信接口实现,协议中预留了解耦后的数据收发接口,使用时需要将实际的物理硬件接口驱动添加到该接口中,如UART的收发接口、SPI的收发接口等。数据帧完整性校验通过提取数据帧中的标识位、数据长度、CRC16校验码来保证,校验无误后数据链路层将数据帧传送给网络层。
网络层主要负责数据帧中数据的路由分发及虚拟设备节点管理。对网络层的设计,可预留虚拟设备节点的添加接口,可根据需要对虚拟设备节点进行预先添加或实时添加。添加后程序在运行时网络层协议根据数据帧中的操作类型管理虚拟设备节点的打开、关闭以及多处理器之间虚拟设备节点间数据链路的畅通。在虚拟设备节点之间的数据链路建立成功后,对应用层来说网络层需要根据数据帧中的发送通道和接收通道将数据内容段的数据分发到不同的虚拟设备节点中进行缓存,对数据链路层来说网络层需要根据应用层协议的发送需求将打包好的数据帧发送给数据链路层进行发送。
应用层协议主要功能为对虚拟设备节点中缓存的数据内容的解包、打包。应用软件使用本层提供的接口就能实现不同设备之间数据的交互。应用层协议可以根据业务需求进行高度自由化定义,比如添加CAN总线消息的处理协议包、物联网设备的通信协议包、或是自定义的解析协议到当前的应用层协议中统一进行管理,这些协议会与网络层的虚拟设备节点缓存区的操作接口进行连接。应用层协议的高度自由化定义使协议的扩展能力更强。
由上述可知,本发明将处理器之间通信协议分层为三层,每一层之间都通过解耦后的接口进行连接,通过本通信协议可以使多处理器之间、多设备、多车辆之间仅靠同一套通信协议就可以快速实现数据互通。
更进一步的,在本说明书一个或多个实施例中,应用层对应的应用层协议、网络层对应的网络层协议以及数据链路层对应的数据链路层协议对通信所使用的硬件接口和软件接口进行解耦,使各层协议可用于通过不同的数据通信接口进行通信。其中,数据通信接口至少包括串行外设接口(SPI接口)、通用异步收发器接口(UART接口)和以太网接口。从而使其能够基于不同的软硬件接口实现车辆中多处理器间的数据通信,提高了该三层通信协议的可移植性。
以上为本说明书的一个或多个实施例提供的多处理器间的通信方法,基于同样的思路,本说明书还提供了相应的多处理器间的通信装置,如图5所示。
图5为本说明书提供的一种多处理器间的通信装置示意图,包括:
发送处理器201,用于通过应用层根据业务需求确定待发送信息,通过网络层根据待发送信息生成数据内容、及数据内容分别对应的发送通道和接收通道;对数据内容进行打包得到包含发送通道、接收通道、数据内容以及校验码的多个数据帧通过数据链路层对数据帧基于校验码进行完整性校验,并在校验通过后将数据帧发送至多个接收处理器;
多个接收处理器202,用于通过网络层根据接收到的数据帧中的发送通道和接收通道,确定对应于数据帧预设的虚拟设备节点,将数据帧中的数据内容存储到对应的虚拟设备节点中;通过应用层根据业务需求对虚拟设备节点进行数据读取,完成与发布者之间的通信;其中,虚拟设备节点为各真实设备的映射。
可选地,所述数据帧包括:标识位、发送通道、操作类型、接收通道、数据长度、数据内容以及校验码。
可选地,所述校验码为CRC16校验码。
所述发送处理器201,提取数据帧中的标识位、数据长度以及CRC16校验码,根据标识位和数据长度从数据帧中提取数据内容,并通过CRC16算法计算数据内容对应的CRC16检验码,判断从数据帧中提取得到的CRC16校验码与数据内容对应的CRC16检验码是否一致,若是,则确认数据帧通过完整性校验,若否,则确认数据帧未通过完整性校验。
可选地,所述应用层对应的应用层协议包括CAN总线数据的处理协议包。
所述发送处理器201,发布者通过应用层根据业务需求,基于CAN总线数据的处理协议包将多帧CAN总线数据合并为数据包,并将CAN总线数据的总帧数和数据包作为待发送信息。
可选地,所述接收处理器202,订阅者通过网络层根据接收到的数据帧中的数据内容,确定CAN总线数据的总帧数,将数据内容拆分为多帧CAN总线数据,针对每帧CAN总线数据,确定对应于该帧CAN总线数据预设的虚拟设备节点,并将该帧CAN总线数据存储到对应的虚拟设备节点中。
可选地,所述发布者网络层中预设多个虚拟设备节点。
所述发送处理器201,发布者通过网络层根据待发送信息,从虚拟设备节点中获取到对应的待发送数据,生成数据内容。
可选地,应用层对应的应用层协议、网络层对应的网络层协议以及数据链路层对应的数据链路层协议对通信所使用的硬件接口和软件接口进行解耦,使各层协议用于通过不同的数据通信接口进行通信,其中,数据通信接口包括串行外设接口、通用异步收发器接口和以太网接口。
关于多处理器间的通信装置的具体限定可以参见上文中对于多处理器间的通信方法的限定,在此不再赘述。上述多处理器间的通信装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的多处理器间的通信方法。
本说明书还提供了图6所示的计算机设备的结构示意图,如图6所述,在硬件层面,该计算机设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1提供的多处理器间的通信方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
Claims (10)
1.一种多处理器间的通信方法,其特征在于,包括:
将发送处理器作为发布者,发布者通过应用层根据业务需求确定待发送信息;
发布者通过网络层根据待发送信息生成数据内容、及数据内容分别对应的发送通道和接收通道;对数据内容进行打包得到包含发送通道、接收通道、数据内容以及校验码的多个数据帧;
发布者通过数据链路层对数据帧基于校验码进行完整性校验,并在校验通过后将数据帧发送至作为订阅者的多个接收处理器;
各订阅者通过网络层根据接收到的数据帧中的发送通道和接收通道,确定对应于数据帧预设的虚拟设备节点,将数据帧中的数据内容存储到对应的虚拟设备节点中;其中,虚拟设备节点为各真实设备的映射;
各订阅者通过应用层根据业务需求对虚拟设备节点进行数据读取,完成与发布者之间的通信。
2.如权利要求1所述的多处理器间的通信方法,其特征在于,所述数据帧包括:标识位、发送通道、操作类型、接收通道、数据长度、数据内容以及校验码。
3.如权利要求2所述的多处理器间的通信方法,其特征在于,所述校验码为CRC16校验码;
所述对数据帧基于校验码进行完整性校验,具体包括:
提取数据帧中的标识位、数据长度以及CRC16校验码;
根据标识位和数据长度从数据帧中提取数据内容,并通过CRC16算法计算数据内容对应的CRC16检验码;
判断从数据帧中提取得到的CRC16校验码与数据内容对应的CRC16检验码是否一致;
若是,则确认数据帧通过完整性校验;
若否,则确认数据帧未通过完整性校验。
4.如权利要求1所述的多处理器间的通信方法,其特征在于,所述应用层对应的应用层协议包括CAN总线数据的处理协议包;
所述发布者通过应用层根据业务需求确定待发送信息,具体包括:
发布者通过应用层根据业务需求,基于CAN总线数据的处理协议包将多帧CAN总线数据合并为数据包,并将CAN总线数据的总帧数和数据包作为待发送信息。
5.如权利要求4所述的多处理器间的通信方法,其特征在于,所述订阅者通过网络层根据接收到的数据帧中的发送通道和接收通道,确定对应于数据帧预设的虚拟设备节点,将数据帧中的数据内容存储到虚拟设备节点中,具体包括:
订阅者通过网络层根据接收到的数据帧中的数据内容,确定CAN总线数据的总帧数,将数据内容拆分为多帧CAN总线数据;
针对每帧CAN总线数据,确定对应于该帧CAN总线数据预设的虚拟设备节点,并将该帧CAN总线数据存储到对应的虚拟设备节点中。
6.如权利要求1所述的多处理器间的通信方法,其特征在于,所述发布者网络层中预设多个虚拟设备节点;
发布者通过网络层根据待发送信息生成数据内容、及数据内容分别对应的发送通道和接收通道,具体包括:
发布者通过网络层根据待发送信息,从各虚拟设备节点中获取到对应的待发送数据,生成数据内容、及数据内容分别对应的发送通道和接收通道。
7.如权利要求1所述的多处理器间的通信方法,其特征在于,应用层对应的应用层协议、网络层对应的网络层协议以及数据链路层对应的数据链路层协议对通信所使用的硬件接口和软件接口进行解耦,使各层协议用于通过不同的数据通信接口进行通信;其中,数据通信接口包括串行外设接口、通用异步收发器接口和以太网接口。
8.一种多处理器间的通信装置,其特征在于,包括:
发送处理器,用于通过应用层根据业务需求确定待发送信息,通过网络层根据待发送信息生成数据内容、及数据内容分别对应的发送通道和接收通道;对数据内容进行打包得到包含发送通道、接收通道、数据内容以及校验码的多个数据帧通过数据链路层对数据帧基于校验码进行完整性校验,并在校验通过后将数据帧发送至多个接收处理器;
多个接收处理器,用于通过网络层根据接收到的数据帧中的发送通道和接收通道,确定对应于数据帧预设的虚拟设备节点,将数据帧中的数据内容存储到对应的虚拟设备节点中;通过应用层根据业务需求对虚拟设备节点进行数据读取,完成与发布者之间的通信;其中,虚拟设备节点为各真实设备的映射。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。
10.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述权利要求1~7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410003814.4A CN117544711B (zh) | 2024-01-03 | 2024-01-03 | 一种多处理器间的通信方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410003814.4A CN117544711B (zh) | 2024-01-03 | 2024-01-03 | 一种多处理器间的通信方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117544711A true CN117544711A (zh) | 2024-02-09 |
CN117544711B CN117544711B (zh) | 2024-04-19 |
Family
ID=89788362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410003814.4A Active CN117544711B (zh) | 2024-01-03 | 2024-01-03 | 一种多处理器间的通信方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117544711B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190005534A1 (en) * | 2017-06-28 | 2019-01-03 | Satori Worldwide, Llc | Providing media assets to subscribers of a messaging system |
US20190173951A1 (en) * | 2017-12-01 | 2019-06-06 | GM Global Technology Operations LLC | Vehicle communication using publish-subscribe messaging protocol |
US20190250969A1 (en) * | 2017-12-28 | 2019-08-15 | Intel Corporation | Methods, systems and apparatus for functional safety implementation |
CN113965602A (zh) * | 2021-10-26 | 2022-01-21 | 广州小鹏汽车科技有限公司 | 车载ecu的订阅发布通信方法、服务器及系统 |
CN115277287A (zh) * | 2022-06-17 | 2022-11-01 | 重庆长安汽车股份有限公司 | 一种基于以太网的可配置的can报文采集方法及系统 |
CN115334110A (zh) * | 2022-08-08 | 2022-11-11 | 小米汽车科技有限公司 | 用于车辆控制的系统架构、通信方法、车辆、介质及芯片 |
CN115543661A (zh) * | 2022-10-26 | 2022-12-30 | 科东(广州)软件科技有限公司 | 数据分发装置及分发方法、车辆电子操作系统的架构 |
-
2024
- 2024-01-03 CN CN202410003814.4A patent/CN117544711B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190005534A1 (en) * | 2017-06-28 | 2019-01-03 | Satori Worldwide, Llc | Providing media assets to subscribers of a messaging system |
US20190173951A1 (en) * | 2017-12-01 | 2019-06-06 | GM Global Technology Operations LLC | Vehicle communication using publish-subscribe messaging protocol |
US20190250969A1 (en) * | 2017-12-28 | 2019-08-15 | Intel Corporation | Methods, systems and apparatus for functional safety implementation |
CN113965602A (zh) * | 2021-10-26 | 2022-01-21 | 广州小鹏汽车科技有限公司 | 车载ecu的订阅发布通信方法、服务器及系统 |
CN115277287A (zh) * | 2022-06-17 | 2022-11-01 | 重庆长安汽车股份有限公司 | 一种基于以太网的可配置的can报文采集方法及系统 |
CN115334110A (zh) * | 2022-08-08 | 2022-11-11 | 小米汽车科技有限公司 | 用于车辆控制的系统架构、通信方法、车辆、介质及芯片 |
CN115543661A (zh) * | 2022-10-26 | 2022-12-30 | 科东(广州)软件科技有限公司 | 数据分发装置及分发方法、车辆电子操作系统的架构 |
Also Published As
Publication number | Publication date |
---|---|
CN117544711B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021098212A1 (zh) | 软件升级方法、装置和系统 | |
US11172399B2 (en) | Default quality of service (QoS) control method and device | |
CN114268666B (zh) | 支持面向服务架构soa的通用域控制器、车辆及交互系统 | |
Damm et al. | Using transaction level modeling techniques for wireless sensor network simulation | |
CN112804100B (zh) | 一种基于容器的io接口资源的控制方法和物联终端 | |
CN110798479B (zh) | 动态可重构高速串行总线与以太网的互操作装置与方法 | |
CN110831074B (zh) | 一种直连通信的方法、amf、接入网功能实体及计算机存储介质 | |
CN117544711B (zh) | 一种多处理器间的通信方法、装置、设备和介质 | |
Kenjić et al. | Connectivity challenges in automotive solutions | |
CN115827285B (zh) | 一种跨平台通信方法、系统、装置、设备及介质 | |
Wang et al. | Design and implementation of a VANET application complying with WAVE protocol | |
CN115320673B (zh) | 一种列车运行控制方法、装置、设备及存储介质 | |
CN114095901A (zh) | 通信数据处理方法及装置 | |
CN111614741A (zh) | 一种基于ros系统的多机器人通讯方法及装置 | |
US20220360650A1 (en) | Apparatus and method for descriptor handling and computer-readable medium | |
CN113411198B (zh) | 基于双通道和rssp-i的通信方法、装置、电子设备及存储介质 | |
CN114819176A (zh) | 一种面向智能驾驶的实时分布式系统 | |
CN109660406A (zh) | 一种基于蓝图及链表实现的综合射频系统功能重构的方法 | |
CN116684506B (zh) | 数据处理方法、系统、电子设备及计算机可读存储介质 | |
CN114866534B (zh) | 一种图像处理方法、装置、设备及介质 | |
CN115396368B (zh) | 基于节点寻址及数据封装的高效复合型网络数据传输方法 | |
WO2024000214A1 (zh) | 车辆中的通信方法及相关装置 | |
CN209250664U (zh) | 数据处理装置 | |
CN114584590B (zh) | 数据传输方法、系统、设备和存储介质 | |
CN113630299B (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 |