一种局域网节点数据交互方法、介质和系统技术方案

技术编号:38906723 阅读:16 留言:0更新日期:2023-09-22 14:25
本申请公开了一种局域网节点数据交互方法,包括如下步骤:定义CAN消息管理结构体;将所述待发送数据按照所述CAN消息管理结构体格式进行填充,以得到所述第一格式数据;创建UDP协议下的发送套接字;根据所述发送套接字和所述第一格式数据,以UDP协议下、通过以太网传输报文格式设计第一报文;将所述第一报文通过以太网发送至局域网中其他节点;创建UDP协议下的接收套接字,以接收其他节点发送的若干第二报文。该方法即可利用CAN数据帧传输优势,又能提升局域网各节点间数据交互效率。提升局域网各节点间数据交互效率。提升局域网各节点间数据交互效率。

【技术实现步骤摘要】
一种局域网节点数据交互方法、介质和系统


[0001]本申请一般涉及数据传输
,尤其涉及一种局域网节点数据交互方法、介质和系统。

技术介绍

[0002]CAN总线作为局域网中不同节点进行数据交互的传输媒介,在工业组网中有着较为普遍的应用。上述交互数据以CAN总线进行传输,可利用CAN总线数据帧长度短,且数据帧中附有优先级标识等优势。但受限于CAN总线的物理特点,其在传输大规模数据,或被用在对传输数据有速度要求的场景下时,往往不能满足对于传输速度的要求,而如果单纯将局域网的传输介质更换为各节点间的以太网,则不能利用原有的CAN数据帧的传输优势。

技术实现思路

[0003]鉴于现有技术中的上述缺陷或不足,期望提供一种即可利用CAN数据帧传输优势,又能提升局域网各节点件数据交互效率的局域网节点数据交互方法、介质和系统。
[0004]具体技术方案如下:
[0005]第一方面
[0006]本申请提供一种局域网节点数据交互方法,包括如下步骤:
[0007]定义CAN消息管理结构体;
[0008]将所述待发送数据按照所述CAN消息管理结构体格式进行填充,以得到所述第一格式数据;
[0009]创建UDP协议下的发送套接字;
[0010]根据所述发送套接字和所述第一格式数据,以UDP协议下、通过以太网传输报文格式设计第一报文;
[0011]将所述第一报文通过以太网发送至局域网中其他节点;
[0012]创建UDP协议下的接收套接字,以接收其他节点发送的若干第二报文。
[0013]作为本申请的进一步限定,还包括如下步骤:
[0014]对接收到的若干所述第二报文进行优先级排序;
[0015]在优先级最高的所述第二报文中进行查找,以获得其中的接收数据。
[0016]作为本申请的进一步限定,所述CAN消息管理结构体,具体包括如下步骤变量:
[0017]帧优先级变量,所述帧优先级变量为枚举类型,此变量赋值为0表示一级优先级,赋值为1表示二级优先级,赋值为3表示三级优先级,赋值为4表示四级优先级;
[0018]目的节点变量,所述目的节点变量为无符号字符型;
[0019]源节点变量,所述源节点变量为无符号字符型;
[0020]帧类型变量,所述帧类型变量为无符号字符型;
[0021]信息类型变量,所述信息类型变量为无符号字符型;
[0022]数据内容变量,所述数据内容变量为无符号字符型数组,数组长度为8。
[0023]作为本申请的进一步限定,所述创建UDP协议下的发送套接字,具体包括如下步骤:
[0024]创建网络套接字结构体变量sendAddr,计算此结构体长度len1,对结构体变量中所有元素进行清零;
[0025]将结构体长度len1赋值给此结构体长度字段sin_len1,将网络协议簇字段sin_family赋值为AF_INET
[0026]将端口号字段设置为接收方的端口号,并使用大小端转换接口htons进行转换,此端口由用户根据需要进行定义。将网络地址字段赋值为对方的IP;
[0027]定义整型变量sendSock,使用socket函数创建UDP发送套接字,参数中包形式为数据包形式,协议簇采用TCP/IP协议簇;
[0028]发送成功后返回句柄赋值到整型变量sendSock。
[0029]在需要发送报文的地方调用sendto函数发送报文,套接字使用所述整型变量sendSock,填入发送数据的指针和长度;
[0030]将所述变量sendAddr信息传入此函数,和所述结构体长度len1。
[0031]作为本申请的进一步限定,所述根据所述发送套接字和所述第一格式数据,以UDP协议下、通过以太网传输报文格式设计第一报文,具体包括如下步骤:
[0032]将所述第一报文长度设定为12个字节,其中8个字节为数据字节,一个32位字节为标识符,标识符中只有第29位有效;
[0033]将扩展帧29位ID分为四个域,分别为优先级域,目的节点ID域,源节点ID域;
[0034]第29位到28位为优先级,CAN总线帧报文的优先级高的为ID值小的,因此优先级设置为四种,00B为表示一级优先级,01B表示二级优先级,10B表示三级优先级,11B表示四级优先级,其中一级为最高优先级,四级为最低优先级;
[0035]第27位到20位,表示目的节点ID值;
[0036]第19位到第12位,源节点ID域;
[0037]第11位到第4位,表示帧的类型,帧类型包括有导航数据帧0x01,飞行状态帧0x02,任务数据帧0x03;
[0038]最低三位为信息类型,000B表示数据帧,001B表示数据信息帧,010B表示数据信息帧回复帧,011B表示超时重发帧,100B表示消息传输完成帧。
[0039]作为本申请的进一步限定,所述创建UDP协议下的接收套接字,具体包括如下步骤:
[0040]创建网络套接字结构体变量recvAddr,计算此结构体长度len2,对结构体变量中所有元素进行清零;
[0041]将长度len2赋值给此结构体长度字段sin_len2,将网络协议簇字段sin_family赋值为AF_INET,将端口号字段设置为本机端口号,并使用大小端转换接口htons进行转换,此端口由用户根据需要进行定义,将网络地址字段赋值为INADDR_ANY;
[0042]定义整型变量recvSock,使用socket函数创建UDP发送套接字,参数中包形式为数据包形式,协议簇采用TCP/IP协议簇;
[0043]发送成功后返回句柄赋值到所述整型变量recvSock;
[0044]使用端口绑定函数bind函数,将所述整型变量recvSock进行绑定,将所述结构体
变量recvAddr信息传入此函数,和所述结构体长度len2;
[0045]在无限循环中使用recvfrom函数阻塞接收数据,套接字使用所述整型变量recvSock,传入接收缓冲区以及最大的数据长度,将所述结构体变量recvAddr信息传入此函数和所述结构体长度len2。
[0046]作为本申请的进一步限定,所述对接收到的若干所述第二报文进行优先级排序,具体包括如下步骤:
[0047]定义Hash数据结构,对收到的数据进行缓存,Hash数据结构体的键值分别为从收到数据的序号Num从0开始,每收到一帧进行加一操作,Num为整型变量,将Num最高两位清空并赋值为两位优先级,所述Hash数据结构为HashRecv;
[0048]在以太网接收函数中定义结构体变量DataRecv,并对接收到的数据进行解析,每次接收到数据后将数据序号Num进行加一操作,并将解析后的数据赋值到变量DataRecv;
[0049]将解析出结构体中的两位优先级赋值到Num_pri中;
[0050]所述Hash数据结本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种局域网节点数据交互方法,其特征在于,包括如下步骤:定义CAN消息管理结构体;将所述待发送数据按照所述CAN消息管理结构体格式进行填充,以得到所述第一格式数据;创建UDP协议下的发送套接字;根据所述发送套接字和所述第一格式数据,以UDP协议下、通过以太网传输报文格式设计第一报文;将所述第一报文通过以太网发送至局域网中其他节点;创建UDP协议下的接收套接字,以接收其他节点发送的若干第二报文。2.根据权利要求1所述的局域网节点数据交互方法,其特征在于,还包括如下步骤:对接收到的若干所述第二报文进行优先级排序;在优先级最高的所述第二报文中进行查找,以获得其中的接收数据。3.根据权利要求1所述的局域网节点数据交互方法,其特征在于,所述CAN消息管理结构体,具体包括如下步骤变量:帧优先级变量,所述帧优先级变量为枚举类型,此变量赋值为0表示一级优先级,赋值为1表示二级优先级,赋值为3表示三级优先级,赋值为4表示四级优先级;目的节点变量,所述目的节点变量为无符号字符型;源节点变量,所述源节点变量为无符号字符型;帧类型变量,所述帧类型变量为无符号字符型;信息类型变量,所述信息类型变量为无符号字符型;数据内容变量,所述数据内容变量为无符号字符型数组,数组长度为8。4.根据权利要求1所述的局域网节点数据交互方法,其特征在于,所述创建UDP协议下的发送套接字,具体包括如下步骤:创建网络套接字结构体变量sendAddr,计算此结构体长度len1,对结构体变量中所有元素进行清零;将结构体长度len1赋值给此结构体长度字段sin_len1,将网络协议簇字段sin_family赋值为AF_INET将端口号字段设置为接收方的端口号,并使用大小端转换接口htons进行转换,此端口由用户根据需要进行定义。将网络地址字段赋值为对方的IP;定义整型变量sendSock,使用socket函数创建UDP发送套接字,参数中包形式为数据包形式,协议簇采用TCP/IP协议簇;发送成功后返回句柄赋值到整型变量sendSock;在需要发送报文的地方调用sendto函数发送报文,套接字使用所述整型变量sendSock,填入发送数据的指针和长度;将所述变量sendAddr信息传入此函数,和所述结构体长度len1。5.根据权利要求1所述的局域网节点数据交互方法,其特征在于,所述根据所述发送套接字和所述第一格式数据,以UDP协议下、通过以太网传输报文格式设计第一报文,具体包括如下步骤:将所述第一报文长度设定为12个字节,其中8个字节为数据字节,一个32位字节为标识
符,标识符中只有第29位有效;将扩展帧29位ID分为四个域,分别为优先级域,目的节点ID域,源节点ID域;第29位到28位为优先级,CAN总线帧报文的优先级高的为ID值小的,因此优先级设置为四种,00B为表示一级优先级,01B表示二级优先级,10B表示三级优先级,11B表示四级优先级,其中一级为最高优先级,四级为最低优先级;第27位到20位,表示目的节点ID值;第19位到第12位,源节点ID域;第11位到第4位,表示帧的类型,帧类型包括...

【专利技术属性】
技术研发人员:王雨龙
申请(专利权)人:天津津航计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1