CN113609059A - 一种通信***及通信方法 - Google Patents

一种通信***及通信方法 Download PDF

Info

Publication number
CN113609059A
CN113609059A CN202110925667.2A CN202110925667A CN113609059A CN 113609059 A CN113609059 A CN 113609059A CN 202110925667 A CN202110925667 A CN 202110925667A CN 113609059 A CN113609059 A CN 113609059A
Authority
CN
China
Prior art keywords
cortex
processor
data
application layer
bus
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
Application number
CN202110925667.2A
Other languages
English (en)
Other versions
CN113609059B (zh
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.)
Jingwei Hengrun Tianjin Research And Development Co ltd
Original Assignee
Jingwei Hengrun Tianjin Research And Development 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 Jingwei Hengrun Tianjin Research And Development Co ltd filed Critical Jingwei Hengrun Tianjin Research And Development Co ltd
Priority to CN202110925667.2A priority Critical patent/CN113609059B/zh
Publication of CN113609059A publication Critical patent/CN113609059A/zh
Application granted granted Critical
Publication of CN113609059B publication Critical patent/CN113609059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种通信***及通信方法,通过在Cortex‑A处理器创建虚拟can设备的网络节点,并在Cortex‑A处理器与Cortex‑M4处理器之间创建rpmsg通道,使应用层能利用Cortex‑A处理器的Linux网络框架,实现应用层与Cortex‑M4处理器之间的can报文通信,在不需要开发网络框架的基础上,保证can报文的实时性。

Description

一种通信***及通信方法
技术领域
本发明涉及通信技术领域,更具体的,涉及一种通信***及通信方法。
背景技术
目前,socket can通信方式有两种,一种为在Cortex-A处理器情况下的socketcan通信方式,另一种为在Cortex-M4处理器情况下的socket can通信方式。
其中,在Cortex-A处理器情况下的socket can通信方式,可以直接使用Linux***下的socket can通信方式,但是Linux***实时性差,无法保证can报文的实时性。
在Cortex-M4处理器情况下的socket can通信方式,虽然可以保证can报文的实时性,但是无法利用Linux***提供的网络框架,需要开发人员针对网络框架进行软件开发,费时费力。
发明内容
有鉴于此,本发明提供了一种通信***及通信方法,在利用Linux***提供的网络框架的基础上,保证can报文的实时性。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种通信***,包括:Cortex-A处理器和Cortex-M4处理器,所述Cortex-A处理器运行Linux操作***,所述Linux操作***包括Linux网络框架;
所述Cortex-A处理器包括至少一个虚拟can设备的网络节点;
所述Cortex-M4处理器与至少一条can总线通信连接;
所述Cortex-A处理器与所述Cortex-M4处理器之间部署有至少一条rpmsg通道,所述虚拟can设备的网络节点通过所述rpmsg通道与所述can总线一一对应;
应用层通过所述Cortex-A处理器以及所述rpmsg通道与所述Cortex-M4处理器连接的所述can总线进行can报文通信。
可选的,所述Cortex-A处理器包括发送缓存区;
所述Cortex-A处理器的内核驱动在接收到应用层通过所述Linux操作***下的Linux网络框架以socket can的方式发送的sk_buff数据结构的应用层数据之后,将所述sk_buff数据结构的应用层数据转换为符合所述Cortex-M4处理器中的can报文结构的数据,并将转换后的数据以先入先出的方式存入所述发送缓存区;
当数据存入所述发送缓存区之后触发第一数据发送事件,在所述第一数据发送事件触发后,所述Cortex-A处理器调用所述第一数据发送事件对应的事件处理函数从所述发送缓存区中提取该数据,通过所述rpmsg通道发给所述Cortex-M4处理器,经由所述Cortex-M4处理器解析数据,将数据发送给所述can总线。
可选的,所述Cortex-A处理器还包括接收缓存区;
所述Cortex-A处理器在接收到所述can总线发送的can总线报文之后,将所述can总线报文存入所述接收缓存区;
在所述can总线报文存入所述接收缓存区之后触发第二数据发送事件,在所述第二数据发送事件触发后,所述Cortex-A处理器调用所述第二数据发送事件对应的事件处理函数,按照先入先出的顺序将所述接收缓存区存储的所述can总线报文转换为符合所述Linux操作***的can数据结构的数据,并封装成所述sk_buff数据结构的数据,并将其通过所述Linux操作***下的Linux网络框架发送到应用层。
可选的,所述Cortex-A处理器和所述Cortex-M4处理器共同分配一个所述Cortex-A处理器与所述Cortex-M4处理器的共享内存空间,并通过所述rpmsg通道将所述虚拟can设备的网络节点与所述can总线进行绑定。
一种通信方法,应用于上述实施例公开的通信***,所述方法包括:
Cortex-A处理器在接收到应用层通过Linux操作***下的Linux网络框架发送的应用层数据的情况下,将所述应用层数据转换为符合Cortex-M4处理器中的can报文结构的数据,并将其通过rpmsg通道发送到所述Cortex-M4处理器连接的can总线;
所述Cortex-M4处理器在接收到所述can总线发送的can总线报文的情况下,将所述can总线报文通过所述rpmsg通道发送到所述Cortex-A处理器;
所述Cortex-A处理器将接收到的所述can总线报文转换为符合所述应用层数据结构的数据,并将其通过所述Linux操作***下的Linux网络框架发送到应用层。
可选的,在所述Cortex-A处理器接收所述应用层通过所述Linux操作***下的Linux网络框架发送的应用层数据之前,所述方法还包括:
所述Cortex-A处理器创建至少一个虚拟can设备的网络节点;
所述Cortex-A处理器和所述Cortex-M4处理器共同创建所述Cortex-A处理器与所述Cortex-M4处理器之间的至少一条所述rpmsg通道,并将所述Cortex-A处理器创建的所述虚拟can设备的网络节点通过所述rpmsg通道与所述Cortex-M4处理器连接的所述can总线进行绑定。
可选的,所述Cortex-A处理器和所述Cortex-M4处理器共同将所述Cortex-A处理器创建的所述虚拟can设备的网络节点通过所述rpmsg通道与所述Cortex-M4处理器连接的所述can总线进行绑定,包括:
所述Cortex-A处理器和所述Cortex-M4处理器共同分配一个所述Cortex-A处理器与所述Cortex-M4处理器的共享内存空间,并通过所述rpmsg通道将所述Cortex-A处理器创建的所述虚拟can设备的网络节点与所述Cortex-M4处理器连接的所述can总线进行绑定。
可选的,在所述Cortex-A处理器接收所述应用层通过Linux操作***下的Linux网络框架发送的应用层数据之前,所述方法还包括:
所述Cortex-A处理器创建发送缓存区和接收缓存区。
可选的,所述Cortex-A处理器将所述应用层数据转换为符合Cortex-M4处理器中的can报文结构的数据,并将其通过rpmsg通道发送到所述Cortex-M4处理器连接的can总线,包括:
所述Cortex-A处理器的内核驱动接收应用层利用所述Linux操作***下的Linux网络框架以socket can的方式发送的sk_buff数据结构的应用层数据;
所述Cortex-A处理器的内核驱动将所述sk_buff数据结构的应用层数据转换为符合所述Cortex-M4处理器中的can报文结构的数据;
所述Cortex-A处理器的内核驱动将转换后的数据以先入先出的方式存储在所述发送缓存区,触发第一数据发送事件;
在所述第一数据发送事件触发后,所述Cortex-A处理器调用所述第一数据发送事件对应的事件处理函数将所述发送缓存区存储的转换后的数据通过所述rpmsg通道发送到所述Cortex-M4处理器连接的所述can总线。
可选的,所述Cortex-A处理器将接收到的所述can总线报文转换为符合所述应用层数据结构的数据,并将其通过所述Linux操作***下的Linux网络框架发送到应用层,包括:
所述Cortex-A处理器将接收到的can总线报文存储在所述接收缓存区,触发第二数据发送事件;
在所述第二数据发送事件触发后,所述Cortex-A处理器调用所述第二数据发送事件对应的事件处理函数,按照先入先出的顺序将接收缓存区存储的所述can总线报文转换为符合所述Linux操作***的can数据结构的数据后,封装成sk_buff数据结构的数据,并将其通过所述Linux操作***下的Linux网络框架发送到应用层。
相对于现有技术,本发明的有益效果如下:
本发明公开的一种通信***,通过在Cortex-A处理器创建虚拟can设备的网络节点,并在Cortex-A处理器与Cortex-M4处理器之间创建rpmsg通道,使应用层能利用Cortex-A处理器的Linux网络框架,实现应用层与Cortex-M4处理器之间的can报文通信,在不需要开发网络框架的基础上,保证can报文的实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种通信***的结构示意图;
图2为本发明实施例公开的另一种通信***的结构示意图;
图3为本发明实施例公开的一种通信方法的流程示意图;
图4为本发明实施例公开的一种通信***的应用场景示意图;
图5为本发明实施例公开的另一种通信***的应用场景示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现在不需要开发网络框架的基础上,保证应用层与Cortex-M4处理器之间can报文通信的实时性,本发明提供了一种通信***,请参阅图1,该通信***包括:Cortex-A处理器和Cortex-M4处理器。
Cortex-A处理器为基于v7A架构一系列处理器,如高性能的Cortex-A处理器15、可伸缩的Cortex-A处理器9、经过市场验证Cortex-A处理器8处理器以及高效的Cortex-A处理器7和Cortex-A处理器5处理器。
Cortex-M4处理器即ARMCortexTM-M4处理器,为基于v7ME架构的处理器。
Cortex-A处理器运行Linux操作***,Linux操作***包括Linux网络框架。
Cortex-A处理器包括至少一个虚拟can设备的网络节点。
Cortex-M4处理器与至少一条can总线通信连接。
Cortex-A处理器与Cortex-M4处理器之间部署有至少一条rpmsg(英文全称:Remote Processor Messaging)通道,rpmsg协议定义了异构多核处理***中核与核之间进行通信时所使用的标准二进制接口。虚拟can设备的网络节点通过rpmsg通道与can总线一一对应,也就是说,虚拟can设备的网络节点通过rpmsg通道与Cortex-M4处理器连接的can总线进行绑定,rpmsg通道可以为一条,也可以为多条,也就是说,虚拟can设备的网络节点既可以与rpmsg通道一一对应,也可以多个网络节点对应一条rpmsg通道。
具体的,Cortex-A处理器和Cortex-M4处理器共同分配一个Cortex-A处理器与Cortex-M4处理器的共享内存空间,并通过rpmsg通道将虚拟can设备的网络节点与can总线进行绑定。
应用层通过Cortex-A处理器以及rpmsg通道与Cortex-M4处理器连接的can总线进行can报文通信,使应用层能利用Cortex-A处理器的Linux网络框架,实现应用层与Cortex-M4处理器连接的can总线之间的can报文通信,在不需要开发网络框架的基础上,保证can报文的实时性。
并且,本发明公开的通信***的软件程序的可复用性较强,无视底层硬件,不关心can总线放到Cortex-A处理器还是Cortex-M4处理器,例如,不需要每次换一个can总线的控制器就需要重新写一套代码进行适配,降低了***开发成本,缩短了开发时间,代码可移植性强。
进一步,为了提高了通信效率,请参阅图2,本实施例公开的一种通信***,在Cortex-A处理器的Linux环境下创建发送缓存区和接收缓存区。
其中,发送缓存区用于存储待向can总线发送的经过处理的应用层数据,接收缓存区用于存储Cortex-A处理器接收到的Cortex-M4处理器发送的经过打包后的can总线报文。
应用层数据利用Linux操作***下的网络框架,以socket can的方式,将sk_buff数据结构的数据发送给Cortex-A处理器的内核驱动,该内核驱动通过将sk_buff数据结构的数据转换为符合Cortex-M4处理器中的can报文结构的数据,将转换好的数据以先入先出的方式存入发送缓存区。当数据存入发送缓存区后会触发一个事件,为了便于描述,本实施例将该事件定义为第一数据发送事件,第一数据发送事件触发后,Cortex-A处理器调用第一数据发送事件对应的事件处理函数从发送缓存区中取数据,通过rpmsg通道发给Cortex-M4处理器,经由Cortex-M4处理器解析数据,将数据发送给can总线。
can总线上的数据,发送给Cortex-M4处理器,Cortex-M4处理器经过数据处理并打包后,通过rpmsg通道将数据发送给Cortex-A处理器,Cortex-A处理器将数据存入接收缓存区,当数据存入接收缓存区后会触发一个事件,为了便于描述,本实施例将该事件定义为第二数据发送事件。然后第二数据发送事件触发后,Cortex-A处理器调用第二数据发送事件对应的事件处理函数从这个接收缓存区中取数据,并将数据拆解并打包成一个个sk_buff数据结构的数据,并通过Linux操作***的网络框架发送给应用层。
基于上述实施例公开的一种通信***,本实施例对应公开了一种通信方法,应用于上述实施例公开的通信***,请参阅图3,该方法包括以下步骤:
S101:Cortex-A处理器在接收到应用层通过Linux操作***下的Linux网络框架发送的应用层数据的情况下,将应用层数据转换为符合Cortex-M4处理器中的can报文结构的数据,并将其通过rpmsg通道发送到Cortex-M4处理器连接的can总线;
S102:Cortex-M4处理器在接收到can总线发送的can总线报文的情况下,将can总线报文通过rpmsg通道发送到Cortex-A处理器;
S103:Cortex-A处理器将接收到的can总线报文转换为符合应用层数据结构的数据,并将其通过Linux操作***下的Linux网络框架发送到应用层。
需要说明的是,在Cortex-A处理器与Cortex-M4处理器通信之前,Cortex-A处理器需要创建至少一个虚拟can设备的网络节点,并注册rpmsg设备驱动,搭建rpmsg设备驱动框架,Cortex-A处理器与Cortex-M4处理器再共同创建Cortex-A处理器与Cortex-M4处理器之间的至少一条rpmsg通道,实现Cortex-A处理器与Cortex-M4处理器之间的通信。
还需要将Cortex-A处理器创建的虚拟can设备的网络节点与Cortex-M4处理器的can总线进行绑定,具体的,Cortex-A处理器与Cortex-M4处理器共同分配一个Cortex-A处理器与Cortex-M4处理器的共享内存空间,Cortex-A处理器与Cortex-M4处理器都可以访问该共享内存空间,并通过rpmsg通道将虚拟can设备的网络节点与can总线进行绑定。
由于linux***是在Cortex-A处理器核上运行的,linux***有一套网络框架,应用层可以直接调用用linux***的网络框架,不需要自己重新开发一套网络框架。在此基础上,通过socket can通信方式,应用层数据通过Cortex-A处理器的linux操作***的网络框架传输给内核驱动,该内核驱动为基于rpmsg通道的socket can通信的驱动,并利用rpmsg通道将数据发送给Cortex-M4处理器端can总线硬件设备的目的。具体实现方法如下:
利用Linux操作***中的网络框架,Cortex-A处理器将从应用层得到的sk_buff数据结构的数据,通过数据转换为符合Cortex-M4处理器端can报文的标准数据结构,让双方数据格式保持一致,以达到数据传输目的。
应用层发送sk_buff数据结构数据,Linux操作***的网络框架与Cortex-A处理器进行通信,Cortex-A处理器将从应用层接收的sk_buff数据结构的数据进行处理并转换成与Cortex-M4处理器的可以通信的数据结构,然后通过rpmsg通道发送给Cortex-M4处理器,反之Cortex-M4处理器也可以实时的将can总线上获取的数据通过rpmsg通道传给Cortex-A处理器,Cortex-A处理器将接收到的数据转换为符合Linux操作***的can数据结构的数据后,封装成sk_buff数据结构的数据,并将其通过Linux操作***下的Linux网络框架发送到应用层。
进一步,为了提高了通信效率,在Cortex-A处理器的Linux环境下创建发送缓存区和接收缓存区。
具体的,请参阅图4,应用层通过Cortex-A处理器向Cortex-M4处理器端can总线发送数据的场景下,Cortex-A处理器接收应用层利用Linux操作***下的Linux网络框架以socket can的方式发送的sk_buff数据结构的应用层数据;Cortex-A处理器的内核驱动将sk_buff数据结构的应用层数据转换为符合Cortex-M4处理器中的can报文结构的数据;Cortex-A处理器的内核驱动将转换后的数据以先入先出的方式存储在发送缓存区,触发第一数据发送事件,在第一数据发送事件触发后,Cortex-A处理器调用第一数据发送事件对应的事件处理函数将发送缓存区存储的转换后的数据通过rpmsg通道发送到Cortex-M4处理器连接的can总线。
请参阅图5,Cortex-A处理器接收Cortex-M4处理器端can总线发送的数据,并发送到应用层场景下,Cortex-A处理器将接收到的can总线报文存储在接收缓存区,触发第二数据发送发送事件;在第二数据发送事件触发后,Cortex-A处理器调用第二数据发送事件对应的事件处理函数,按照先入先出的顺序将接收缓存区存储的can总线报文转换为符合Linux操作***的can数据结构的数据后,封装成sk_buff数据结构的数据,并将其通过Linux操作***下的Linux网络框架发送到应用层。
本实施例公开的一种通信方法,通过在Cortex-A处理器创建虚拟can设备的网络节点,并在Cortex-A处理器与Cortex-M4处理器之间创建rpmsg通道,使利用层能利用Cortex-A处理器的Linux网络框架,实现应用层与Cortex-M4处理器之间的can报文通信,在不需要开发网络框架的基础上,保证can报文的实时性。
并且,本实施例公开的通信方法,无视底层硬件,不关心can总线放到Cortex-A处理器还是Cortex-M4处理器,例如,不需要每次换一个can总线的控制器就需要重新写一套代码进行适配,降低了***开发成本,缩短了开发时间,代码可移植性强。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
上述各个实施例之间可任意组合,对所公开的实施例的上述说明,本说明书中各实施例中记载的特征可以相互替换或者组合,使本领域专业技术人员能够实现或使用本申请。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种通信***,其特征在于,包括:Cortex-A处理器和Cortex-M4处理器,所述Cortex-A处理器运行Linux操作***,所述Linux操作***包括Linux网络框架;
所述Cortex-A处理器包括至少一个虚拟can设备的网络节点;
所述Cortex-M4处理器与至少一条can总线通信连接;
所述Cortex-A处理器与所述Cortex-M4处理器之间部署有至少一条rpmsg通道,所述虚拟can设备的网络节点通过所述rpmsg通道与所述can总线一一对应;
应用层通过所述Cortex-A处理器以及所述rpmsg通道与所述Cortex-M4处理器连接的所述can总线进行can报文通信。
2.根据权利要求1所述的***,其特征在于,所述Cortex-A处理器包括发送缓存区;
所述Cortex-A处理器的内核驱动在接收到应用层通过所述Linux操作***下的Linux网络框架以socket can的方式发送的sk_buff数据结构的应用层数据之后,将所述sk_buff数据结构的应用层数据转换为符合所述Cortex-M4处理器中的can报文结构的数据,并将转换后的数据以先入先出的方式存入所述发送缓存区;
当数据存入所述发送缓存区之后触发第一数据发送事件,在所述第一数据发送事件触发后,所述Cortex-A处理器调用所述第一数据发送事件对应的事件处理函数从所述发送缓存区中提取该数据,通过所述rpmsg通道发给所述Cortex-M4处理器,经由所述Cortex-M4处理器解析数据,将数据发送给所述can总线。
3.根据权利要求2所述的***,其特征在于,所述Cortex-A处理器还包括接收缓存区;
所述Cortex-A处理器在接收到所述can总线发送的can总线报文之后,将所述can总线报文存入所述接收缓存区;
在所述can总线报文存入所述接收缓存区之后触发第二数据发送事件,在所述第二数据发送事件触发后,所述Cortex-A处理器调用所述第二数据发送事件对应的事件处理函数,按照先入先出的顺序将所述接收缓存区存储的所述can总线报文转换为符合所述Linux操作***的can数据结构的数据,并封装成所述sk_buff数据结构的数据,并将其通过所述Linux操作***下的Linux网络框架发送到应用层。
4.根据权利要求1所述的***,其特征在于,所述Cortex-A处理器和所述Cortex-M4处理器共同分配一个所述Cortex-A处理器与所述Cortex-M4处理器的共享内存空间,并通过所述rpmsg通道将所述虚拟can设备的网络节点与所述can总线进行绑定。
5.一种通信方法,其特征在于,应用于权利要求1~4中任意一项所述的通信***,所述方法包括:
Cortex-A处理器在接收到应用层通过Linux操作***下的Linux网络框架发送的应用层数据的情况下,将所述应用层数据转换为符合Cortex-M4处理器中的can报文结构的数据,并将其通过rpmsg通道发送到所述Cortex-M4处理器连接的can总线;
所述Cortex-M4处理器在接收到所述can总线发送的can总线报文的情况下,将所述can总线报文通过所述rpmsg通道发送到所述Cortex-A处理器;
所述Cortex-A处理器将接收到的所述can总线报文转换为符合所述应用层数据结构的数据,并将其通过所述Linux操作***下的Linux网络框架发送到应用层。
6.根据权利要求5所述的方法,其特征在于,在所述Cortex-A处理器接收所述应用层通过所述Linux操作***下的Linux网络框架发送的应用层数据之前,所述方法还包括:
所述Cortex-A处理器创建至少一个虚拟can设备的网络节点;
所述Cortex-A处理器和所述Cortex-M4处理器共同创建所述Cortex-A处理器与所述Cortex-M4处理器之间的至少一条所述rpmsg通道,并将所述Cortex-A处理器创建的所述虚拟can设备的网络节点通过所述rpmsg通道与所述Cortex-M4处理器连接的所述can总线进行绑定。
7.根据权利要求6所述的方法,其特征在于,所述Cortex-A处理器和所述Cortex-M4处理器共同将所述Cortex-A处理器创建的所述虚拟can设备的网络节点通过所述rpmsg通道与所述Cortex-M4处理器连接的所述can总线进行绑定,包括:
所述Cortex-A处理器和所述Cortex-M4处理器共同分配一个所述Cortex-A处理器与所述Cortex-M4处理器的共享内存空间,并通过所述rpmsg通道将所述Cortex-A处理器创建的所述虚拟can设备的网络节点与所述Cortex-M4处理器连接的所述can总线进行绑定。
8.根据权利要求5所述的方法,其特征在于,在所述Cortex-A处理器接收所述应用层通过Linux操作***下的Linux网络框架发送的应用层数据之前,所述方法还包括:
所述Cortex-A处理器创建发送缓存区和接收缓存区。
9.根据权利要求8所述的方法,其特征在于,所述Cortex-A处理器将所述应用层数据转换为符合Cortex-M4处理器中的can报文结构的数据,并将其通过rpmsg通道发送到所述Cortex-M4处理器连接的can总线,包括:
所述Cortex-A处理器的内核驱动接收应用层利用所述Linux操作***下的Linux网络框架以socket can的方式发送的sk_buff数据结构的应用层数据;
所述Cortex-A处理器的内核驱动将所述sk_buff数据结构的应用层数据转换为符合所述Cortex-M4处理器中的can报文结构的数据;
所述Cortex-A处理器的内核驱动将转换后的数据以先入先出的方式存储在所述发送缓存区,触发第一数据发送事件;
在所述第一数据发送事件触发后,所述Cortex-A处理器调用所述第一数据发送事件对应的事件处理函数将所述发送缓存区存储的转换后的数据通过所述rpmsg通道发送到所述Cortex-M4处理器连接的所述can总线。
10.根据权利要求8所述的方法,其特征在于,所述Cortex-A处理器将接收到的所述can总线报文转换为符合所述应用层数据结构的数据,并将其通过所述Linux操作***下的Linux网络框架发送到应用层,包括:
所述Cortex-A处理器将接收到的can总线报文存储在所述接收缓存区,触发第二数据发送事件;
在所述第二数据发送事件触发后,所述Cortex-A处理器调用所述第二数据发送事件对应的事件处理函数,按照先入先出的顺序将接收缓存区存储的所述can总线报文转换为符合所述Linux操作***的can数据结构的数据后,封装成sk_buff数据结构的数据,并将其通过所述Linux操作***下的Linux网络框架发送到应用层。
CN202110925667.2A 2021-08-12 2021-08-12 一种通信***及通信方法 Active CN113609059B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110925667.2A CN113609059B (zh) 2021-08-12 2021-08-12 一种通信***及通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110925667.2A CN113609059B (zh) 2021-08-12 2021-08-12 一种通信***及通信方法

Publications (2)

Publication Number Publication Date
CN113609059A true CN113609059A (zh) 2021-11-05
CN113609059B CN113609059B (zh) 2023-09-05

Family

ID=78308338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110925667.2A Active CN113609059B (zh) 2021-08-12 2021-08-12 一种通信***及通信方法

Country Status (1)

Country Link
CN (1) CN113609059B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363425A (zh) * 2021-11-30 2022-04-15 岚图汽车科技有限公司 一种some/ip服务管理方法及相关设备
CN114710513A (zh) * 2022-03-30 2022-07-05 广州导远电子科技有限公司 一种网络数据的处理***及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137169A (zh) * 2011-01-30 2011-07-27 华为技术有限公司 一种绑定物理网口的方法、网卡及通信***
US20170203436A1 (en) * 2014-07-08 2017-07-20 Hongxing Wei Robotic hybrid system application framework based on multi-core processor architecture
EP3244311A1 (en) * 2016-05-10 2017-11-15 Huawei Technologies Co., Ltd. Multiprocessor system and method for operating a multiprocessor system
CN112347015A (zh) * 2021-01-08 2021-02-09 南京芯驰半导体科技有限公司 芯片片上***异构多处理器间的通信装置及方法
CN112667420A (zh) * 2021-01-18 2021-04-16 科东(广州)软件科技有限公司 实现异构***内部通信的方法、装置、设备及存储介质
CN112947235A (zh) * 2021-03-11 2021-06-11 深圳市阿丹能量信息技术有限公司 一种基于X9平台和Xen技术的座舱域控制器***及应用方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137169A (zh) * 2011-01-30 2011-07-27 华为技术有限公司 一种绑定物理网口的方法、网卡及通信***
US20170203436A1 (en) * 2014-07-08 2017-07-20 Hongxing Wei Robotic hybrid system application framework based on multi-core processor architecture
EP3244311A1 (en) * 2016-05-10 2017-11-15 Huawei Technologies Co., Ltd. Multiprocessor system and method for operating a multiprocessor system
CN112347015A (zh) * 2021-01-08 2021-02-09 南京芯驰半导体科技有限公司 芯片片上***异构多处理器间的通信装置及方法
CN112667420A (zh) * 2021-01-18 2021-04-16 科东(广州)软件科技有限公司 实现异构***内部通信的方法、装置、设备及存储介质
CN112947235A (zh) * 2021-03-11 2021-06-11 深圳市阿丹能量信息技术有限公司 一种基于X9平台和Xen技术的座舱域控制器***及应用方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A. A. SALUNKHE ET AL.: "Design and implementation of CAN bus protocol for monitoring vehicle parameters", IEEE XPLORE *
张洪;吴钦章;杜春蕾;: "基于Linux虚拟网卡测试平台的***设计", 电子设计工程, no. 17 *
曾定立等: "面向基带处理的异构多核架构软硬件平台设计", 单片机与嵌入式***应用, no. 3 *
汪杰君等: "基于CAN现场总线的远程控制***设计", 仪表技术与传感器, no. 2 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363425A (zh) * 2021-11-30 2022-04-15 岚图汽车科技有限公司 一种some/ip服务管理方法及相关设备
CN114363425B (zh) * 2021-11-30 2023-06-13 岚图汽车科技有限公司 一种some/ip服务管理方法及相关设备
CN114710513A (zh) * 2022-03-30 2022-07-05 广州导远电子科技有限公司 一种网络数据的处理***及方法
CN114710513B (zh) * 2022-03-30 2024-03-08 广州导远电子科技有限公司 一种网络数据的处理***及方法

Also Published As

Publication number Publication date
CN113609059B (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
CN106850402B (zh) 消息的传输方法和装置
CN110958281B (zh) 基于物联网的数据传输方法及通信装置
CN106034084B (zh) 一种数据传输方法及装置
CN113609059A (zh) 一种通信***及通信方法
CN114077480B (zh) 一种主机与虚拟机共享内存方法、装置、设备及介质
CN109547519B (zh) 反向代理方法、装置及计算机可读存储介质
CN109547162B (zh) 基于两套单向边界的数据通信方法
US20180262560A1 (en) Method and system for transmitting communication data
CN111242776B (zh) 基于区块链的记账方法、装置、存储介质及电子设备
CN111294235A (zh) 数据处理方法、装置、网关及可读存储介质
US9240952B2 (en) System and method for communication between networked applications
CN109688606B (zh) 数据处理方法、装置、计算机设备及存储介质
CN104426816A (zh) 一种虚拟机通信方法及装置
CN117176633A (zh) 一种总线跨设备通信方法、装置、设备及存储介质
CN102681969B (zh) 基于can总线的长帧数据传输方法
CN109218371B (zh) 一种调用数据的方法和设备
CN113204517B (zh) 一种电力专用以太网控制器的核间共享方法
CN116132382A (zh) 报文处理方法、设备及存储介质
CN115801498A (zh) 一种车载以太网网关***、运行方法
CN114697269A (zh) 数据通信方法、装置、设备和介质
CN113141385B (zh) 数据接收处理方法、装置、电子设备及存储介质
KR20120044086A (ko) 단말기와 스마트카드 간 인터페이스 시스템 및 그 방법
WO2012019376A1 (zh) 无线通信终端网络设备功能的实现方法及装置
CN103269319A (zh) 一种数据传输方法、设备及***
CN114710755B (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
CB02 Change of applicant information

Address after: Room 601, Building 4, Jingwei Hengrun R&D Center, No. 2, Huixiang Road, Zhangjiawo Town, Xiqing District, Tianjin, 300380

Applicant after: Jingwei Hengrun (Tianjin) research and Development Co.,Ltd.

Address before: Room 308, No.9 Fengze Road, automobile industrial zone, Xiqing District, Tianjin (Zhangjiawo Industrial Zone), 300380

Applicant before: Jingwei Hengrun (Tianjin) research and Development Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant