System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,尤其是涉及一种以太网数据的收发方法及装置。
技术介绍
1、以太网接口被应用在工业、生活等很多领域,目前的以太网接口的吞吐速度已达到了gbps的级别,但当前所采用的处理器主频大多数在50mhz~100mhz,远低于以太网接口的吞吐速度,当某节点需要通过以太网接口获取包含大量数据的数据包时,如比较常见的udp协议数据包,在局域网下其数据包长度最长可达到1472个字节,通常在一个完整的数据包接收完之后才能进行下一包数据的接收,如果在一包数据未接收完就收到新的数据会出现接收不到数据的情况。
2、但微处理器的主要任务通常不是收发数据的时序控制,而是对数据包进行解析以及运算。而微处理器的主频较低,当数据收发量较大时,微处理器内部对数据的缓存设计也较为复杂,既要保存尚未完全处理的数据内容,也需要对当前正在接收的数据进行缓存。此时就需要对接收端的缓存逻辑进行优化设计,增加了微处理器的算法复杂度。
技术实现思路
1、有鉴于此,本申请的目的在于提供一种以太网数据的收发方法及装置,通过设计以太网节点缓冲器,并采用微处理器与fpga通过apb总线相连的方式,使微处理器进行数据处理,fpga负责与phy芯片进行通信以及数据缓冲,从而简化了微处理器的中断处理设计与缓存逻辑,进而降低微处理器的算法复杂度。
2、本申请实施例提供了一种以太网数据的收发方法,应用于以太网节点缓冲器中的fpga,所述以太网节点缓冲器中还包括phy芯片,所述fpga通过apb总线与微处理器相连,所
3、通过apb总线,接收微处理器发送的以太网开启指令;
4、响应于以太网开启指令,进行以太网地址设置;
5、当确定存在目标地址后,将需进行发送的目标以太网数据存入所述以太网节点缓冲器中的指定位置处;
6、当发送端口空闲时,响应于微处理器通过apb总线发送的第一发送指令,按发送规则将所述目标以太网数据发送至目标地址所指示的以太网数据接收设备处。
7、可选的,当确定不存在目标地址,在将需进行发送的目标以太网数据存入所述以太网节点缓冲器中的指定位置处之前,所述收发方法还包括:
8、接收微处理器通过apb总线写入的目标ip地址;
9、当发送端口空闲时,响应于微处理器通过apb总线发送的第二发送指令,向phy芯片发送arp请求包;
10、接收phy根据arp请求包反馈的arp应答包,以确定所述目标地址。
11、可选的,在响应于以太网开启指令之后,所述收发方法还包括:
12、接收目标数据包,对所述目标数据包的类型进行识别;
13、当确定所述目标数据包为udp数据包,识别所述目标数据包的帧头地址是否正确;所述帧头地址包括mac地址、ip地址以及port地址;
14、若确定正确,按预设udp数据包接收流程对目标数据包进行接收,直至全部接收完成。
15、可选的,所述按预设udp数据包接收流程对目标数据包进行接收,包括:
16、将所述目标数据包以及所述目标数据包的相关信息存入所述以太网节点缓冲器中的指定位置处;
17、对所述目标数据包进行crc校验,并根据校验后的crc校验结果对所述目标数据包添加校验标识;
18、向所述微处理器反馈第一中断信号,以供所述微处理器对所述以太网节点缓冲器中所缓存的数据进行读取。
19、可选的,当确定所述目标数据包为arp数据包时,所述收发方法还包括:
20、识别所述arp数据包是否为arp请求包;
21、若为是,向所述微处理器反馈第二中断信号,以供所述微处理器获取所述arp请求包的源地址,并生成发送给fpga的arp应答地址,以及控制fpga发送对应地址arp应答包。
22、可选的,在识别所述arp数据包是否为arp请求包之后,所述收发方法还包括:
23、若确定所述arp数据包不为arp请求包,向所述微处理器反馈第三中断信号,以供所述微处理器获取arp应答包的目标地址。
24、可选的,所述发送规则中规定了单次发送的数据长度。
25、本申请实施例还提供了一种以太网数据的收发装置,应用于以太网节点缓冲器中的fpga,所述以太网节点缓冲器中还包括phy芯片,所述fpga通过apb总线与微处理器相连,所述收发装置包括:
26、第一接收模块,用于通过apb总线,接收微处理器发送的以太网开启指令;
27、设置模块,用于响应于以太网开启指令,进行以太网地址设置;
28、存储模块,用于当确定存在目标地址后,将需进行发送的目标以太网数据存入所述以太网节点缓冲器中的指定位置处;
29、发送模块,用于当发送端口空闲时,响应于微处理器通过apb总线发送的第一发送指令,按发送规则将所述目标以太网数据发送至目标地址所指示的以太网数据接收设备处。
30、可选的,当确定不存在目标地址,在将需进行发送的目标以太网数据存入所述以太网节点缓冲器中的指定位置处之前,所述收发装置还包括请求模块,所述请求模块用于:
31、接收微处理器通过apb总线写入的目标ip地址;
32、当发送端口空闲时,响应于微处理器通过apb总线发送的第二发送指令,向phy芯片发送arp请求包;
33、接收phy根据arp请求包反馈的arp应答包,以确定所述目标地址。
34、可选的,在响应于以太网开启指令之后,所述收发装置还包括第二接收模块,所述第二接收模块用于:
35、接收目标数据包,对所述目标数据包的类型进行识别;
36、当确定所述目标数据包为udp数据包,识别所述目标数据包的帧头地址是否正确;所述帧头地址包括mac地址、ip地址以及port地址;
37、若确定正确,按预设udp数据包接收流程对目标数据包进行接收,直至全部接收完成。
38、可选的,所述第二接收模块在用于按预设udp数据包接收流程对目标数据包进行接收时,所述第二接收模块用于:
39、将所述目标数据包以及所述目标数据包的相关信息存入所述以太网节点缓冲器中的指定位置处;
40、对所述目标数据包进行crc校验,并根据校验后的crc校验结果对所述目标数据包添加校验标识;
41、向所述微处理器反馈第一中断信号,以供所述微处理器对所述以太网节点缓冲器中所缓存的数据进行读取。
42、可选的,当确定所述目标数据包为arp数据包时,所述第二接收模块还用于:
43、识别所述arp数据包是否为arp请求包;
44、若为是,向所述微处理器反馈第二中断信号,以供所述微处理器获取所述arp请求包的源地址,并生成发送给fpga的arp应答地址,以及控制fpga发送对应地址arp应答包。
45、可选的,在识别所述arp数据包是否为本文档来自技高网...
【技术保护点】
1.一种以太网数据的收发方法,其特征在于,应用于以太网节点缓冲器中的FPGA,所述以太网节点缓冲器中还包括PHY芯片,所述FPGA通过APB总线与微处理器相连,所述收发方法包括:
2.根据权利要求1所述的收发方法,其特征在于,当确定不存在目标地址,在将需进行发送的目标以太网数据存入所述以太网节点缓冲器中的指定位置处之前,所述收发方法还包括:
3.根据权利要求1所述的收发方法,其特征在于,在响应于以太网开启指令之后,所述收发方法还包括:
4.根据权利要求3所述的收发方法,其特征在于,所述按预设UDP数据包接收流程对目标数据包进行接收,包括:
5.根据权利要求3所述的收发方法,其特征在于,当确定所述目标数据包为ARP数据包时,所述收发方法还包括:
6.根据权利要求5所述的收发方法,其特征在于,在识别所述ARP数据包是否为ARP请求包之后,所述收发方法还包括:
7.根据权利要求1所述的收发方法,其特征在于,所述发送规则中规定了单次发送的数据长度。
8.一种以太网数据的收发装置,其特征在于,应用于以太网节
9.一种以太网节点缓冲器中的FPGA,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当FPGA运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行如权利要求1至7任一所述的收发方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一所述的收发方法的步骤。
...【技术特征摘要】
1.一种以太网数据的收发方法,其特征在于,应用于以太网节点缓冲器中的fpga,所述以太网节点缓冲器中还包括phy芯片,所述fpga通过apb总线与微处理器相连,所述收发方法包括:
2.根据权利要求1所述的收发方法,其特征在于,当确定不存在目标地址,在将需进行发送的目标以太网数据存入所述以太网节点缓冲器中的指定位置处之前,所述收发方法还包括:
3.根据权利要求1所述的收发方法,其特征在于,在响应于以太网开启指令之后,所述收发方法还包括:
4.根据权利要求3所述的收发方法,其特征在于,所述按预设udp数据包接收流程对目标数据包进行接收,包括:
5.根据权利要求3所述的收发方法,其特征在于,当确定所述目标数据包为arp数据包时,所述收发方法还包括:
6.根据权利要求5所述的收发方法,其特征在于,在识别所述arp数据包是否为a...
【专利技术属性】
技术研发人员:郭常青,高恩宇,孔令波,华伟,
申请(专利权)人:北京微纳星空科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。