CN117041370A - 一种通信方法及系统 - Google Patents

一种通信方法及系统 Download PDF

Info

Publication number
CN117041370A
CN117041370A CN202311061531.7A CN202311061531A CN117041370A CN 117041370 A CN117041370 A CN 117041370A CN 202311061531 A CN202311061531 A CN 202311061531A CN 117041370 A CN117041370 A CN 117041370A
Authority
CN
China
Prior art keywords
frame
data
protocol
data packet
communication
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
CN202311061531.7A
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.)
Beijing Huafeng Test & Control Technology Co ltd
Original Assignee
Beijing Huafeng Test & Control 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 Beijing Huafeng Test & Control Technology Co ltd filed Critical Beijing Huafeng Test & Control Technology Co ltd
Priority to CN202311061531.7A priority Critical patent/CN117041370A/zh
Publication of CN117041370A publication Critical patent/CN117041370A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

本申请提供了一种通信方法及系统,该方法包括:通过第一协议从LAN网络接收第一数据包;第一数据包中包括帧头、帧尾标识和帧头和帧尾标识之间的第一数据帧,第一协议包括UDP协议或TCP/IP协议;基于第一协议解析第一数据包,并基于帧头和帧尾标识获得第一数据帧,第一数据帧使用SMU通信协议格式封装;使用SMU通信协议解析第一数据帧,确定第一数据帧中记录的目标地址;目标地址位于CAN网络内时,使用CAN协议分包封装第一数据帧形成各CAN数据包,并发送到CAN网络,其中,各CAN数据包中包括表示帧类型的标志位、第一数据帧被分包处理形成的子数据帧。本申请可实现基于LAN网络与CAN网络的多设备通信,拥有高速率、高可靠性、易拓展等特点。

Description

一种通信方法及系统
技术领域
本申请涉及基本电子电路技术领域,特别涉及一种通信方法及系统。
背景技术
微控制单元(Microcontroller Unit,MCU),又称单片机,是把CPU、内存、计数器、A/D转换、通用异步收发器UART、控制器局域网总线CAN、直接内存访问DMA等周边接口,整合在单一芯片上,形成芯片级的计算机。
局域网(Local Area Network,LAN),是将小区域内的各种通信设备互联在一起所形成的网络,具有距离短、延迟小、数据速率高等特点。
若PC与各MCU之间通过局域网的方式进行通信,则各MCU必须拥有相应的硬件资源(PHY芯片、以太网外设、运行协议簇所需RAM等),以及还需要交换机进行组网,该通信方式的成本高、性价比低。
更常见的PC与MCU通信的方式,是通过串口,包括RS-232、RS-485、USB转串口等。RS-232是一种较老标准的异步串口协议,传输距离较短、速率较低,且其采用端到端的形式传输数据,不适合总线扩展。RS-485相较于RS-232,具有更高的数据速率、更长的传输距离以及更好的抗噪性,且其适用于多点系统,适合总线扩展。典型的PC与MCU串口通信模型,如图1所示,该方式连接简单、成本低,但受限于MCU硬件与现场环境,其串口波特率常见最高为115200,速率较低。
CAN是一种用于实时应用的串行通讯协议的总线,其网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发送信息,具有高性能、高可靠性、高速率等特点。标准CAN最高速率可达1Mbps,当串口波特率为115200时,此时CAN传输速率是串口的8倍以上。然而由于普通PC不对外提供CAN接口,须设计一种方式,以能将PC接入到CAN总线中,且接入方式速率不应低于CAN总线速率。
发明内容
有鉴于此,本申请提出一种通信方法及系统、计算设备、介质,可实现基于LAN网络与CAN网络的多设备通信,网络中任意两设备均可互相通信,拥有高速率、高可靠性、易拓展等特点。
第一方面,本申请提供了一种通信方法,包括:
通过第一协议从LAN网络接收第一数据包;所述第一数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的第一数据帧,其中,所述第一协议包括UDP协议或TCP/IP协议;
基于第一协议解析所述第一数据包,并基于所述帧头和帧尾标识获得所述第一数据帧,所述第一数据帧使用SMU通信协议格式封装;
使用SMU通信协议解析所述第一数据帧,确定所述第一数据帧中记录的目标地址;
所述目标地址位于CAN网络内时,使用CAN协议分包封装所述第一数据帧形成各CAN数据包,并发送到所述CAN网络,其中,所述各CAN数据包中包括表示帧类型的标志位、第一数据帧被分包处理形成的子数据帧。
由上,本申请通过构建基于LAN与CAN的通信网络,然后通过设计一种SMU通信协议,对通过第一协议传输过来的第一数据包进行解析,然后根据解析得到的目标地址处理为对应的数据包,例如CAN数据包,并转发到对应的CAN网络,从而实现LAN网络向CAN网络的数据传输,该通信网络中的任意两设备均可互相通信,拥有高速率、高可靠性、易拓展等特点。
第二方面,本申请提供了一种通信方法,包括:
使用SMU通信协议格式生成第一数据帧;
使用第一协议封装所述第一数据帧形成第一数据包,所述第一数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的所述第一数据帧,其中,所述第一协议包括UDP协议或TCP/IP协议;
通过第一协议发送所述第一数据包。
由上,在生成第一数据包之前,可根据自设计的SMU通信协议格式生成第一数据帧,然后通过在该第一数据帧的头尾添加帧头、帧尾生成第一数据包,以便于通过第一协议发送生成的UDP数据包,其中,该第一协议可以是UDP协议或TCP/IP协议。
第三方面,本申请提供了一种通信方法,包括:
通过CAN协议接收至少一个CAN数据包,所述CAN数据包中包括表示帧类型的标志位、第一数据帧被分包处理形成的子数据帧,所述第一数据帧使用SMU通信协议格式封装;
使用CAN协议解析所述至少一个CAN数据包,并根据所述表示帧类型的标志位获取各个子数据帧,形成完整的所述第一数据帧;
使用SMU通信协议解析所述第一数据帧。
由上,当CAN网络中的设备通过CAN协议接收到CAN数据包时,可根据CAN协议解析得到该CAN数据包中的第一数据帧,然后再通过自设计的SMU通信协议对该第一数据帧进行解析,以得到其中的数据内容并交由应用层进行处理。
第四方面,本申请提供了一种通信方法,包括:
通过CAN协议从CAN网络接收至少一个CAN数据包,所述CAN数据包中包括表示帧类型的标志位、第二数据帧被分包处理形成的子数据帧,所述第二数据帧使用SMU通信协议格式封装;
使用CAN协议解析所述至少一个CAN数据包,并根据所述表示帧类型的标志位获取各个子数据帧,形成完整的所述第二数据帧;
使用SMU通信协议解析所述第二数据帧,确定所述第二数据帧中记录的目标地址;
所述目标地址位于LAN网络内时,使用第一协议封装所述第二数据帧形成第二数据包,并发送到所述LAN网络;所述第二数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的所述第二数据帧,其中,所述第一协议包括UDP协议或TCP/IP协议。
由上,本申请的基于LAN与CAN的通信网络,当通过CAN网络向LAN网络传输数据时,通过CAN协议将CAN网络传输的CAN数据包进行解析,以得到CAN数据包中的第二数据帧,然后通过自设计的SMU通信协议,对第二数据帧进行解析,并根据解析得到的目标地址处理为对应的数据包,例如UDP数据包,并转发到对应的LAN网络,以实现CAN网络向LAN网络的数据传输。
第五方面,本申请提供了一种通信方法,包括:
通过第一协议接收第二数据包,所述第二数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的第二数据帧,其中,所述第一协议包括UDP协议或TCP/IP协议;
使用第一协议解析所述第二数据包,获得所述帧头和帧尾标识之间的第二数据帧;
使用SMU通信协议解析所述第二数据帧。
由上,当LAN网络中的设备通过第一协议接收到第二数据包时,可根据第一协议解析得到该第二数据包中的第二数据帧,然后再通过自设计的SMU通信协议对该第二数据帧进行解析,以得到其中的数据内容并交由应用层进行处理。
第六方面,本申请提供了一种通信方法,包括:
使用SMU通信协议格式生成第二数据帧;
使用CAN协议分包封装所述第二数据帧形成各CAN数据包,所述各CAN数据包中包括表示帧类型的标志位、第二数据帧被分包处理形成的子数据帧;
使用CAN协议发送所述各CAN数据包。
由上,在生成CAN数据包之前,可根据自设计的SMU通信协议格式生成第二数据帧,然后通过在该第二数据帧的头尾添加帧头、帧尾生成CAN数据包,以便于通过CAN协议发送生成的CAN数据包。
第七方面,本申请提供了一种通信方法,包括:
通过第一设备执行上述第二方面所述的一种通信方法,通过第二设备执行上述第一方面所述的一种通信方法,通过第三设备执行上述第三方面所述的一种通信方法;或
通过第三设备执行上述第六方面所述的一种通信方法,通过第二设备执行上述第四方面所述的一种通信方法,通过第一设备执行上述第五方面所述的一种通信方法。
由上,第一设备与第二设备之间通过LAN连接,第二设备和第三设备之间通过CAN连接,本申请通过构建基于LAN与CAN的通信网络,然后通过设计一种SMU通信协议,第一设备通过使用SMU通信协议格式生成第一数据帧,并给第一数据帧添加帧头标识和帧尾标识以形成第一数据包,如UDP数据包,再通过UDP协议传输至第二设备,第二设备对UDP数据包进行解析,然后根据解析得到的目标地址处理为对应的数据包,例如CAN数据包,并转发到对应的CAN网络给第三设备,第三设备接收并解析CAN数据包,得到第一数据帧,从而实现LAN网络向CAN网络的数据传输,除了上述从第一设备经第二设备转发传输给第三设备的形式外,第三设备还可以通过第二设备发回给第一设备,从而实现LAN网络和CAN网络中的多个设备之间,可以跨越不同的协议的数据收发和解析,该通信网络中的任意两设备均可互相通信,拥有高速率、高可靠性、易拓展的特点。
可选的,所述SMU通信协议格式包括:
目标节点字段,用于记录目标地址;
当前节点字段,用于记录当前的发送端地址;
数据类型字段,用于记录功能码,其值含义由应用层定义;
数据长度字段,表示记录第一数据帧的字节长度;
数据内容字段,用于记录数据包内容;
校验位字段,用于记录计算的校验值。
由上,通过采用包括目标节点字段、当前节点字段、数据类型字段、数据长度字段、数据内容字段及校验位字段的SMU通信协议格式,可以实现对完整的第一数据帧或第二数据帧的解析,以得到目标地址、发送端地址、功能、字节长度、内容和校验值,以便于后续处理,比如,第一设备通过解析第一数据帧得到其中的数据内容并交由应用层进行处理;第三设备对第二数据帧进行解析,并根据解析得到的目标地址处理为对应的数据包,并转发到对应的LAN网络,以实现CAN网络向LAN网络的数据传输,同时可提高带宽利用率和响应速度。
可选的,使用CAN-ID中的部分字段来作为所述CAN数据包中包括表示帧类型的标志位,所表示的帧类型包括以下之一:
起始帧类型,为帧的起始标志;
结束帧类型,为帧的结束标志;
数据帧类型,为数据内容传输标志;
单包数据帧类型,为单包数据即可完成命令传输的帧标志。
由上,采用将标准CAN-ID中的部分字段来定义帧类型,从而识别包括表示帧类型的标志位的各CAN数据包,实现根据帧类型快速识别出完整一帧的效果,帧类型除了用于标志起始、结束和内容传输外,还包括单包数据的帧标志,对于单包数据的传输识别更加高效,进而提高带宽利用率和响应速度。
第八方面,本申请提供了一种通信系统,包括:
第一设备,用于执行上述第二方面或第五方面所述的一种通信方法;
第二设备,用于执行上述第一方面或第四方面所述的一种通信方法;
第三设备,用于执行上述第三方面或第六方面所述的一种通信方法。
由上,该通信系统可以实现第一设备将数据包经第二设备转发至第三设备,第三设备将数据包经第二设备转发至第一设备,还可以实现第二设备单独与第一设备或第三设备的通信,以及在第三设备为多个时,各第三设备之间的通信。也即实现LAN网络向CAN网络的数据传输,该通信网络中的任意两设备均可互相通信,拥有高速率、高可靠性、易拓展等特点。
可选的,所述第一设备为主控设备、所述第二设备和所述第三设备分别为微控制单元,所述第一设备与所述第二设备通过LAN网络连接,所述第二设备和各所述第三设备通过CAN网络连接。
由上,第二设备和第三设备均为微控制单元,第二设备具有协议转发功能和桥梁功能,第三设备可以为多个,本申请通过将多个微控制单元(MCU)中的一个进行以太网资源配置,作为可实现协议转发的桥梁功能的第二设备,该第二设备可以称为SMU,其他各第三设备可以为不同功能的MCU,其可称为BMU,该SMU通过LAN与第一设备(如,PC)连接,还通过CAN与其他各BMU连接,从而构成基于LAN与CAN的多设备通信系统,然后通过设计一种SMU通信协议,对PC与SMU通过第一协议数据传输过程中的数据包进行解析和处理,比如通过UDP协议数据传输过程中的UDP数据进行解析和处理,同时对SMU与各BMU通过CAN协议数据传输过程中的CAN数据进行解析和处理,从而实现PC、SMU、BMU之间基于LAN与CAN的通信,该通信网络中的任意两设备均可互相通信,拥有高速率、高可靠性、易拓展等特点。
第九方面,本申请提供了一种计算设备,所述计算设备包括:
处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述处理器执行,使得所述处理器实现上述的任意一种通信方法。
第十方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述的任意一种通信方法。
本申请的这些和其它方面在以下(多个)实施例的描述中会更加简明易懂。
附图说明
图1为现有的一种PC与MCU串口通信的示意图;
图2为本申请实施例提供的第一种通信方法的流程图;
图3为本申请实施例提供的第二种通信方法的流程图;
图4为本申请实施例提供的一种多设备通信系统的示意图;
图5为本申请实施例提供的另一种多设备通信系统的示意图;
图6为本申请实施例提供的一种PC向BMU发送数据的流程图;
图7为本申请实施例提供的一种BMU向PC发送数据的流程图;
图8为本申请实施例提供的一种SMU解析处理UDP数据包的流程图;
图9为本申请实施例提供的一种计算设备的结构图。
应理解,上述结构示意图中,各框图的尺寸和形态仅供参考,不应构成对本申请实施例的排他性的解读。结构示意图所呈现的各框图间的相对位置和包含关系,仅为示意性地表示各框图间的结构关联,而非限制本申请实施例的物理连接方式。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本申请实施例通过提供一种通信方法及系统,可实现基于LAN网络与CAN网络的多设备通信,网络中任意两设备均可互相通信,拥有高速率、高可靠性、易拓展等特点。
实施例一
如图2所示,本申请实施例提供了第一种通信方法,该通信方法对应的通信系统为基于LAN和CAN的多设备通信系统,该通信系统包括第一设备、第二设备和第三设备,第一设备与第二设备通过LAN网络连接,第二设备和各第三设备通过CAN网络连接,第二设备具有协议中转和桥梁功能,该第二种通信方法应用于第二设备,该第一种通信方法包括:
S101:通过第一协议从LAN网络接收第一数据包;
本步骤中,所述第一协议可以包括UDP协议或TCP/IP协议,该第一数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的第一数据帧;例如,当第一协议为UDP协议时,则第一数据包为UDP数据包,该UDP数据包的生成及发送步骤包括:
使用SMU通信协议格式生成第一数据帧;
使用UDP协议封装所述第一数据帧形成UDP数据包,所述UDP数据包中包括帧头标识、帧尾标识和在所述帧头标识和帧尾标识之间的所述第一数据帧;
通过UDP协议发送所述UDP数据包。
S102:基于第一协议解析所述第一数据包,并基于所述帧头和帧尾标识获得所述第一数据帧,所述第一数据帧使用SMU通信协议格式封装;
S103:使用SMU通信协议解析所述第一数据帧,确定所述第一数据帧中记录的目标地址;
S104:所述目标地址位于CAN网络内时,使用CAN协议分包封装所述第一数据帧形成各CAN数据包,并发送到所述CAN网络,其中,所述各CAN数据包中包括表示帧类型的标志位、第一数据帧被分包处理形成的子数据帧。
在一些实施例中,通过CAN协议将上述生成的CAN数据包发送到CAN网络后,可通过CAN网络中的设备对该CAN数据包进行解析和进一步处理,具体包括:
通过CAN协议接收至少一个CAN数据包,所述CAN数据包中包括表示帧类型的标志位、第一数据帧被分包处理形成的子数据帧,所述第一数据帧使用SMU通信协议格式封装;
使用CAN协议解析所述至少一个CAN数据包,并根据所述表示帧类型的标志位获取各个子数据帧,形成完整的所述第一数据帧;
使用SMU通信协议解析所述第一数据帧。
实施例二
如图3所示,本申请实施例提供了第二种通信方法,该通信方法对应的通信系统为基于LAN和CAN的多设备通信系统,该通信系统包括第一设备、第二设备和第三设备,第一设备与第二设备通过LAN网络连接,第二设备和第三设备通过CAN网络连接,第二设备具有协议中转和桥梁功能,该第二种通信方法应用于第二设备,该第二种通信方法包括:
S201:通过CAN协议从CAN网络接收至少一个CAN数据包;
本步骤中,所述CAN数据包中包括表示帧类型的标志位、第二数据帧被分包处理形成的子数据帧,所述第二数据帧使用SMU通信协议格式封装;具体的,该CAN数据包的生成及发送步骤包括:
使用SMU通信协议格式生成第二数据帧;
使用CAN协议分包封装所述第二数据帧形成各CAN数据包,所述各CAN数据包中包括表示帧类型的标志位、第二数据帧被分包处理形成的子数据帧;
使用CAN协议发送所述各CAN数据包。
S202:使用CAN协议解析所述至少一个CAN数据包,并根据所述表示帧类型的标志位获取各个子数据帧,形成完整的所述第二数据帧;
S203:使用SMU通信协议解析所述第二数据帧,确定所述第二数据帧中记录的目标地址;
S204:所述目标地址位于LAN网络内时,使用第一协议封装所述第二数据帧形成第二数据包,并发送到所述LAN网络;所述第二数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的所述第二数据帧,其中,所述第一协议包括UDP协议或TCP/IP协议。
在一些实施例中,通过第一协议将上述生成的第二数据包发送到LAN网络后,可通过LAN网络中的设备对该第二数据包进行解析和进一步处理,具体包括:
通过第一协议接收第二数据包,所述第二数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的第二数据帧,其中,所述第一协议包括UDP协议或TCP/IP协议;
使用第一协议解析所述第二数据包,获得所述帧头和帧尾标识之间的第二数据帧;
使用SMU通信协议解析所述第二数据帧。
实施例三
如图4所示,本申请实施例提供了一种多设备通信系统,通过将多个MCU中的一个进行以太网硬件资源配置,以实现协议转发的桥梁功能,该桥梁功能的MCU作为SMU,该SMU可对应上述的第二设备,其他各特定功能的MCU作为BMU,该BMU可对应上述的第三设备,该SMU通过LAN与PC连接,该PC可对应上述的第一设备,还通过CAN与其他各BMU连接,从而构成基于LAN与CAN的多设备通信系统,然后通过设计一种SMU通信协议,对PC与SMU通过UDP协议数据传输过程中的UDP数据包进行解析和处理,同时对SMU与各BMU通过CAN协议数据传输过程中的CAN数据包进行解析和处理,从而实现PC、SMU、BMU之间基于LAN与CAN的通信。参照图4所示,该通信系统包括PC100、SMU200及多个BMU310、320,该PC100与SMU200通过LAN连接,SMU200与各BMU310、320通过CAN连接。
其中SMU200为进行以太网硬件资源配置的MCU,用于实现协议转发的桥梁功能,BMU310、320为特定功能的MCU,无需进行以太网硬件资源配置。
在一些实施例中,如图5所示,在该通信系统中,PC100与SMU200通过LAN连接,SMU200与BMU310通过CAN连接,而其他BMU320、330、340、350则可以通过设置于背板上,并统一连接到背板的传输线路上,然后通过该传输线路将该背板连接到CAN网络中。
为实现上述PC与SMU间的LAN通信,以及SMU与BMU间的CAN通信,本申请实施例设计了一种SMU通信协议,该SMU通信协议对PC与SMU之间的LAN链路层通信,作出了以下规定:
PC与SMU通过LAN连接,使用UDP协议传输数据;
为识别与校验一帧,发送一帧UDP数据时,额外增加帧头、帧尾标识,其中,帧头标识和帧尾标识也可以称之为帧头标志和帧尾标志;
接收到一帧UDP数据时,校验与去除帧头、帧尾标志后,再交至SMU通信协议中的解析协议进行解析处理;
帧头为两字节:0×55AA,帧尾为两字节:0×AA55。
需要说明的是,上述帧头、帧尾标识的长度及其值定义,还可以为其他,如:帧头为3字节,值为0x112233;帧尾为3字节,值为0x332211。该SMU通信协议对SMU与BMU之间的CAN链路层通信,作出了以下规定:
SMU与BMU通过CAN连接,使用CAN协议传输数据;
为对CAN收、发的各包数据进行一帧识别,从CAN-ID中划分出部分位,以表示帧类型。
标准CAN-ID为11bit,[0:4]位为原CAN-ID,[5:7]位重定义为CAN帧类型,其余保留;CAN帧类型定义如下所示;
帧类型 帧分类 帧含义
0×1 起始帧 帧的起始标志
0×2 结束帧 帧的结束标志
0×3 数据帧 数据内容传输标志
0×6 单包数据帧 单包数据即可完成命令传输的帧标志
需要说明的是,上述"使用[0:4]位段表示原CAN-ID,[5:7]位段重定义为CAN帧类型,其余位保留"的方式并不唯一,例如:还可使用[0:7]位段表示原CAN-ID,[8:10]位段重定义为CAN帧类型。换言之,使用CAN-ID中的部分字段来作为CAN数据包中包括标识帧类型的标志位,其中,使用“CAN-ID中的部分字段”可以包括两位或以上。使用更多位表示原CAN-ID,能增加允许使用的CAN-ID范围,可根据实际应用自行定义。
接收或发送CAN数据包时,对CAN-ID中的帧类型进行解析或处理,识别出一帧时,再将完整数据交至SMU通信协议中的解析协议进行解析处理。
在该SMU通信协议中,还设计了一套解析协议,对一帧数据格式及其意义进行了定义,该解析协议帧格式如下:
目标节点 当前节点 数据类型 数据长度 数据内容 校验位
该解析协议帧意义如下:
名称 说明
1 目标节点 用于表示目标地址
2 当前节点 用于表示当前的发送端地址
3 数据类型 用于表示功能码,其值含义由应用层定义
4 数据长度 表示从目标节点到校验位的数据长度
5 数据内容 数据包内容
6 校验位 计算从目标地址到数据内容的校验值
基于上述设计的SMU通信协议,如图6所示,本申请实施例提供了一种PC向BMU发送数据的通信方法,包括:
S301:PC使用SMU通信协议将待发送数据生成为UDP数据包后通过UDP协议发送至SMU;
本步骤中,PC根据上述SMU通信协议中的解析协议帧格式,将待发送数据填充为UDP数据包,并在该UDP数据包的头、尾对应添加LAN链路层帧头、帧尾标志,然后调用UDP数据发送接口,将该UDP数据包发送至SMU。
S302:SMU使用SMU通信协议对接收到的UDP数据包进行解析处理后,生成CAN数据包并通过CAN协议分包转发至BMU;
本步骤中,SMU对接收到的UDP数据包进行头、尾校验,判断是否符合LAN链路层帧头、帧尾标志,若不符合,则丢弃该UDP数据包,若符合,则去除帧头、帧尾标志并使用SMU通信协议中的解析协议对UDP数据包进行解析,解析通过后判断该UDP数据包中的目标地址是否为自己,若是,则递交至应用层进行进一步处理,若该目标地址是CAN链路层的BMU,则将该UDP数据包生成为CAN数据包,并在该CAN数据包的头、尾对应添加CAN链路层帧头、帧尾标志,调用CAN链路层发送接口,并根据目标地址分包转发至对应的BMU。
S303:BMU通过CAN协议接收并缓存CAN数据包,使用SMU通信协议中的解析协议对该CAN数据包进行解析,并将解析出的数据内容递交至应用层进行处理;
本步骤中,BMU通过CAN协议接收并缓存SMU发送的CAN数据包,并在每接收一包CAN数据时,对CAN-ID中的帧类型进行检测,判断是否为一帧结束,并缓存该包数据,当识别到CAN帧传输结束标志后,此时已缓存一帧完整的CAN数据,即可通过SMU通信协议中的解析协议对该帧CAN数据进行解析,并判断目标地址是否为自己,若不是则不进行处理,若是则将解析出的数据内容递交至应用层进行处理。
由此,一次完整的由PC发送一帧数据至指定BMU的通信结束。
基于上述设计的SMU通信协议,如图7所示,本申请实施例还提供了一种BMU向PC发送数据的通信方法,包括:
S401:BMU将待发送的数据生成为CAN数据包,并通过CAN协议将该CAN数据包发送至SMU;
本步骤中,当BMU完成对数据的处理,需要向PC发送数据时,该BMU通过将待发送的数据生成为CAN数据包,并在该CAN数据包的头、尾对应添加CAN链路层帧头、帧尾标志,然后调用CAN链路层发送接口,将该CAN数据包发送至SMU。
S402:SMU使用SMU通信协议将接收到的BMU发送的CAN数据包生成为UDP数据包后通过UDP协议发送至PC;
本步骤中,SMU通过CAN协议接收BMU发送的CAN数据包,并对接收到的CAN数据包进行头、尾校验,判断是否符合CAN链路层帧头、帧尾标志,若不符合,则丢弃该CAN数据包,若符合,则去除帧头、帧尾标志后使用SMU通信协议中的解析协议对CAN数据包进行解析,解析通过后判断该CAN数据包中的目标地址是否为自己,若是,则递交至应用层进行进一步处理,若该目标地址是LAN链路层的PC,则将该CAN数据包生成为UDP数据包,并在该UDP数据包的头、尾对应添加LAN链路层帧头、帧尾标志,调用UDP数据发送接口,将该UDP数据包发送至PC。
S403:PC使用SMU通信协议对通过UDP协议接收到的SMU发送的UDP数据包进行解析,并将解析出的数据内容递交至应用层进行处理;
本步骤中,PC对接收到的UDP数据包进行头、尾校验,判断是否符合LAN链路层帧头、帧尾标志,若不符合,则丢弃该UDP数据包,若符合,则去除帧头、帧尾标志后使用SMU通信协议中的解析协议对UDP数据包进行解析,解析通过后判断该UDP数据包中的目标地址是否为自己,若是,则将解析出的数据内容递交至应用层进行处理。
由此,一次完整的由指定BMU发送一帧数据至PC的通信结束。
需要说明的是,上述PC或SMU使用SMU通信协议进行数据解析时,若解析不通过则丢弃该数据,若解析通过,则判断该数据的目标地址是否为自己,若是则提取其中各段数据(节点地址、数据类型、数据长度等),并调用注册的应用层回调函数,由应用层根据实际功能需求做进一步处理,若不是则根据目标地址及链路层,调用对应的发送函数进行协议转发。
如图8所示,SMU通过UDP协议接收UDP数据包时,基于UDP协议对该UDP数据包进行包头、尾校验,判断是否符合LAN链路层帧头、帧尾标志。若解析不通过则丢弃该UDP数据包,若解析通过,则基于SMU通信协议对该UDP数据包中的数据帧进行解析,判断该帧数据校验是否通过,格式是否正确。若解析不通过则丢弃该数据帧,若解析通过则判断该数据帧的目标地址是否为自己,若是则递交至应用层进行处理,执行对应的功能,并根据执行结果生成应答帧,然后将该应答帧进行封包生成UDP数据包,并发送到LAN网络。若目标地址不是自己,则根据目标地址进行转发,例如将该数据帧封包为CAN数据包,并转发到CAN网络中。由此,可实现通过SMU对接收的UDP数据包的解析、转发或处理。
综上所述,本申请实施例提供的一种基于LAN与CAN的多设备通信方法及系统,充分利用LAN与CAN的优势,只需一块MCU有支持以太网而所需的硬件资源即可,且无需交换机,保证了数据传输的高稳定性、高速率,以及接线简单、总线易拓展的同时,也兼顾了成本。
图9是本申请实施例提供的一种计算设备500的结构图。该计算设备500包括:处理器510、存储器520、通信接口530、总线540。
应理解,图9所示的计算设备500中的通信接口530可以用于与其他设备之间进行通信。
其中,该处理器510可以与存储器520连接。该存储器520可以用于存储该程序代码和数据。因此,该存储器520可以是处理器510内部的存储单元,也可以是与处理器510独立的外部存储单元,还可以是包括处理器510内部的存储单元和与处理器510独立的外部存储单元的部件。
可选的,计算设备500还可以包括总线540。其中,存储器520、通信接口530可以通过总线540与处理器510连接。总线540可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线540可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本申请实施例中,该处理器510可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器510采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器520可以包括只读存储器和随机存取存储器,并向处理器510提供指令和数据。处理器510的一部分还可以包括非易失性随机存取存储器。例如,处理器510还可以存储设备类型的信息。
在计算设备500运行时,所述处理器510执行所述存储器520中的计算机执行指令执行上述方法的操作步骤。
应理解,根据本申请实施例的计算设备500可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备500中的各个模块的上述其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行上述方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
需要说明的是,本申请所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,上述对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在上述的描述中,所涉及的表示步骤的标号,并不表示一定会按此步骤执行,还可以包括中间的步骤或者由其他的步骤代替,在允许的情况下可以互换前后步骤的顺序,或同时执行。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
注意,上述仅为本申请的较佳实施例及所运用的技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明的构思的情况下,还可以包括更多其他等效实施例,均属于本发明的保护范畴。

Claims (11)

1.一种通信方法,其特征在于,包括:
通过第一协议从LAN网络接收第一数据包;所述第一数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的第一数据帧,其中,所述第一协议包括UDP协议或TCP/IP协议;
基于第一协议解析所述第一数据包,并基于所述帧头和帧尾标识获得所述第一数据帧,所述第一数据帧使用SMU通信协议格式封装;
使用SMU通信协议解析所述第一数据帧,确定所述第一数据帧中记录的目标地址;
所述目标地址位于CAN网络内时,使用CAN协议分包封装所述第一数据帧形成各CAN数据包,并发送到所述CAN网络,其中,所述各CAN数据包中包括表示帧类型的标志位、第一数据帧被分包处理形成的子数据帧。
2.一种通信方法,其特征在于,包括:
使用SMU通信协议格式生成第一数据帧;
使用第一协议封装所述第一数据帧形成第一数据包,所述第一数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的所述第一数据帧,其中,所述第一协议包括UDP协议或TCP/IP协议;
通过第一协议发送所述第一数据包。
3.一种通信方法,其特征在于,包括:
通过CAN协议接收至少一个CAN数据包,所述CAN数据包中包括表示帧类型的标志位、第一数据帧被分包处理形成的子数据帧,所述第一数据帧使用SMU通信协议格式封装;
使用CAN协议解析所述至少一个CAN数据包,并根据所述表示帧类型的标志位获取各个子数据帧,形成完整的所述第一数据帧;
使用SMU通信协议解析所述第一数据帧。
4.一种通信方法,其特征在于,包括:
通过CAN协议从CAN网络接收至少一个CAN数据包,所述CAN数据包中包括表示帧类型的标志位、第二数据帧被分包处理形成的子数据帧,所述第二数据帧使用SMU通信协议格式封装;
使用CAN协议解析所述至少一个CAN数据包,并根据所述表示帧类型的标志位获取各个子数据帧,形成完整的所述第二数据帧;
使用SMU通信协议解析所述第二数据帧,确定所述第二数据帧中记录的目标地址;
所述目标地址位于LAN网络内时,使用第一协议封装所述第二数据帧形成第二数据包,并发送到所述LAN网络;所述第二数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的所述第二数据帧,其中,所述第一协议包括UDP协议或TCP/IP协议。
5.一种通信方法,其特征在于,包括:
通过第一协议接收第二数据包,所述第二数据包中包括帧头、帧尾标识和所述帧头和帧尾标识之间的第二数据帧,其中,所述第一协议包括UDP协议或TCP/IP协议;
使用第一协议解析所述第二数据包,获得所述帧头和帧尾标识之间的第二数据帧;
使用SMU通信协议解析所述第二数据帧。
6.一种通信方法,其特征在于,包括:
使用SMU通信协议格式生成第二数据帧;
使用CAN协议分包封装所述第二数据帧形成各CAN数据包,所述各CAN数据包中包括表示帧类型的标志位、第二数据帧被分包处理形成的子数据帧;
使用CAN协议发送所述各CAN数据包。
7.一种通信方法,其特征在于,包括:
通过第一设备执行权利要求2所述的方法,通过第二设备执行权利要求1所述的方法,通过第三设备执行权利要求3所述的方法;或
通过第三设备执行权利要求6所述的方法,通过第二设备执行权利要求4所述的方法,通过第一设备执行权利要求5所述的方法。
8.根据权利要求1-7任一所述的方法,其特征在于,所述SMU通信协议格式包括:
目标节点字段,用于记录目标地址;
当前节点字段,用于记录当前的发送端地址;
数据类型字段,用于记录功能码,其值含义由应用层定义;
数据长度字段,表示记录第一数据帧的字节长度;
数据内容字段,用于记录数据包内容;
校验位字段,用于记录计算的校验值。
9.根据权利要求1-7任一所述的方法,其特征在于,使用CAN-ID中的部分字段来作为所述CAN数据包中包括表示帧类型的标志位,所表示的帧类型包括以下之一:
起始帧类型,为帧的起始标志;
结束帧类型,为帧的结束标志;
数据帧类型,为数据内容传输标志;
单包数据帧类型,为单包数据即可完成命令传输的帧标志。
10.一种通信系统,其特征在于,包括:
第一设备,用于执行权利要求2或5所述的方法;
第二设备,用于执行权利要求1或4所述的方法;
第三设备,用于执行权利要求3或6所述的方法。
11.根据权利要求10所述的通信系统,其特征在于,所述第一设备为主控设备、所述第二设备和所述第三设备分别为微控制单元,所述第一设备与所述第二设备通过LAN网络连接,所述第二设备和各所述第三设备通过CAN网络连接。
CN202311061531.7A 2023-08-22 2023-08-22 一种通信方法及系统 Pending CN117041370A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311061531.7A CN117041370A (zh) 2023-08-22 2023-08-22 一种通信方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311061531.7A CN117041370A (zh) 2023-08-22 2023-08-22 一种通信方法及系统

Publications (1)

Publication Number Publication Date
CN117041370A true CN117041370A (zh) 2023-11-10

Family

ID=88602191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311061531.7A Pending CN117041370A (zh) 2023-08-22 2023-08-22 一种通信方法及系统

Country Status (1)

Country Link
CN (1) CN117041370A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117579709A (zh) * 2024-01-16 2024-02-20 成都数维通信技术有限公司 一种工控网络通信协议体系构建方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117579709A (zh) * 2024-01-16 2024-02-20 成都数维通信技术有限公司 一种工控网络通信协议体系构建方法
CN117579709B (zh) * 2024-01-16 2024-03-29 成都数维通信技术有限公司 一种工控网络通信协议体系构建方法

Similar Documents

Publication Publication Date Title
CN107147657B (zh) 适用于多机可靠通信的编解码方法及通讯设备
CN110380970B (zh) 一种适用于异构网络的自适应数据报文转发方法及装置
US10848442B2 (en) Heterogeneous packet-based transport
CN111352889B (zh) 一种基于mctp协议的设备管理方法、设备、装置和介质
US9166917B2 (en) Link layer preemption
CN111294235B (zh) 数据处理方法、装置、网关及可读存储介质
WO2014180297A1 (zh) 报文处理方法和装置
CN117041370A (zh) 一种通信方法及系统
WO2014135038A1 (zh) 基于pcie总线的报文传输方法与装置
CN113179216B (zh) 一种寄存器的远程配置方法、计算机设备及存储介质
CN103365810B (zh) 在c.a.n.总线上减少闪速存储装置编程时间的方法和设备
CN107370654B (zh) 一种伪线数据报文的封装、解封装方法和相关装置
CN114422617B (zh) 一种报文处理方法、系统及计算机可读存储介质
WO2021134418A1 (zh) 一种数据校验方法及装置
CN109902055B (zh) 一种适用窄带数据网络的slip编码数据流传输方法
CN109962762A (zh) 一种数据传输方法、发送装置及接收装置
CN113596017B (zh) 一种协议解析方法、装置、软网关和存储介质
CN112787902A (zh) 报文封装方法及装置、报文解封装方法及装置
CN108460044B (zh) 数据的处理方法和装置
CN113596038B (zh) 数据包解析的方法和服务器
CN115277450A (zh) 基于opnet的虚实结合异构通信网络融合系统及应用
WO2015141014A1 (en) Method of constructing software-defined pci express (pci-e) switch
EP3913865A1 (en) Message decapsulation method and device, message encapsulation method and device, electronic device, and storage medium
CN107317773B (zh) 一种片上网络通信接口及通信方法
CN115150308B (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