一种基于UDP的上层协议与以太网MAC层的数据传输方法技术

技术编号:9960781 阅读:242 留言:0更新日期:2014-04-23 20:48
本发明专利技术涉及一种基于UDP的上层协议与以太网MAC层的数据传输方法,基于UDP协议实现对网络数据的封装,并将其模块接口化。将该模块与以太网MAC子层连接,实现了不同数据长度、不同数据率的FPGA与计算机的数据传输。本发明专利技术的创新点在于:将以太网MAC帧封装接口化,可以方便快速的添加到以太网系统中,实现上层协议与用户逻辑和以太网MAC层的连接。添加UDP和IP协议报头,根据首部校验和和数据校验和字段,检测数据在传输中是否有错,提高数据传输的可靠性。

【技术实现步骤摘要】

【技术保护点】
一种基于UDP的上层协议与以太网MAC层的数据传输方法,其特征在于上层协议与用户逻辑之间的接口通过一个异步FIFO连接,FPGA与计算机之间通过以太网进行通信时数据以MAC帧格式传输;具体步骤如下:步骤1:将用户要发送的数据先存入FIFO中,根据FIFO的空满信号控制FIFO写数据和封装开始信号;所述FIFO深度根据发送数据包长度自行决定,FIFO宽度为32bit;步骤2:当封装开始信号标志数据开始封装时,在数据前面添加UDP、IP以及MAC帧首部,组成以太网MAC帧格式,其中MAC帧头插入的8字节和FCS字段是由以太网MAC核自动添加;数据封装的具体实现由状态机控制,状态机包括三个状态:TX_IDLE初始状态、TX_UDP_HEAD帧头封装状态、TX_UDP_READ数据封装状态;1、上层协议接到封装开始信号时,控制状态机进入TX_UDP_HEAD状态,帧头计数器累加;标识字段在系统中是一个计数器,每产生一个数据报,标识计数器就加1,帧头计数器为0时执行此操作;当帧头计数器为3时开始计算头部校验和,头部校验和字段只检验IP数据报的首部;所述计算头部校验和:首先把IP数据报首部划分为许多16bit的序列,并把校验和字段置零;其次用反码算术运算把所有16bit相加,将得到的和的反码写入校验和字段;当帧头计数器为4时,开始对IP数据首部协议字段之前的字段封装;当帧头计数器为9时,进入TX_UDP_READ状态,数据计数器进行累加;当计数器为0时,开始IP首部的其他字段以及UDP首部和发送数据部分封装,将IP首部的剩余字段和UDP首部字段完全封装;在发送状态机将数据从FIFO读出的过程中同时进行UDP校验;所述UDP校验和是把UDP伪首部、UDP首部以及发送数据一起检验;当计数器为2时开始从FIFO读取数据;当计数器为3时开始计算数据校验和,首先置UDP校验和初始值为0x0000,并添加到UDP校验和字段;当计数器为4时,开始数据封装;当计数器值等于数据长度加4时,从FIFO读出的数据封装结束;当计数器值等于数据长度加7时,校验和计算完成,进入TX_IDLE状态;步骤3:将封装数据和校验和分别存入FIFO中,当FIFO的写计数器长度为发送数据长度时,开始从FIFO中将数据读出,写入FIFO的校验和在写入的下一个周期立即读出,当校验和使能有效时,将计算所得的校验和重新写入MAC帧的UDP校验和字段;将所得MAC帧数据再经过FIFO缓存,根据以太网速度要求,控制读出数据宽度;步骤4:将FIFO缓存的MAC帧数据末尾多加的数据截掉,传输数据至以太网MAC层。...

【技术特征摘要】

【专利技术属性】
技术研发人员:张金凤李军辉袁子乔张楠
申请(专利权)人:西安电子工程研究所
类型:发明
国别省市:陕西;61

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

1