[发明专利]基于FPGA的UDP/IPv6硬件协议栈及实现方法有效
申请号: | 201310137881.7 | 申请日: | 2013-04-19 |
公开(公告)号: | CN103248579A | 公开(公告)日: | 2013-08-14 |
发明(设计)人: | 谭洪舟;谢舜道;谢凯;刘忆琨;陈荣军;朱雄泳 | 申请(专利权)人: | 中山大学 |
主分类号: | H04L12/781 | 分类号: | H04L12/781;H04L29/08 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 林丽明;林伟斌 |
地址: | 510006 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga udp ipv6 硬件 协议 实现 方法 | ||
1.一种基于FPGA的UDP/IPv6硬件协议栈,其特征在于,该协议栈包括:
外部接口模块,用于外部跟协议栈的通信;
UDP发送数据寄存器模块,用于存放待发送的UDP数据;
UDP发送控制模块,用于把UDP数据组装成IPv6报文;
配置寄存器模块,用于存放协议栈的配置信息;
ICMPv6发送控制模块,用于组装ICMPv6报文;
发送优先级控制模块,用于解决当同时需要发送UDP报文和ICMPv6报文时的冲突问题;
DM9000驱动模块,用于把组装好的IPv6报文通过DM9000发送出去并且通过DM9000接收报文;
接收数据预处理模块,用于过滤掉接收到的不需要处理的报文;
ICMPv6处理模块,用于提取接收到的ICMPv6报文中的有用信息;
数据更新模块,用于根据从ICMPv6提取的信息更新协议栈的配置信息;
UDP接收数据寄存器模块,用于存放接收到的UDP报文。
2.根据权利要求1所述的基于FPGA的UDP/IPv6硬件协议栈,其特征在于,所述UDP发送控制模块包含模块化的邻节点高速缓存表、网络前缀列表和默认路由表,这些表由若干条基本表项模块组成,并由ICMPv6数据更新模块进行数据更新;所述基本表项模块用于自动计时清零。
3.根据权利要求2所述的基于FPGA的UDP/IPv6硬件协议栈,其特征在于,所述基本表项模块包括一个X位的数据寄存器,用于存放表项的有效数据,一个Y位的生存时间定时器,用来对表项的有效时间进行倒计时,当倒数到0时清除数据寄存器和允许位,一个1位的允许位,表示该表项是否有效。
4.一种根据权利要求1所述的基于FPGA的UDP/IPv6硬件协议栈的实现方法,其特征在于,当协议栈开始工作时,用户需要通过外部接口把配置信息写入配置寄存器模块,然后用户向配置寄存器相应地址写入初始化命令,当初始化完成时再写入自动配置命令,自动配置的结果从配置寄存器相应的地址读出来;当自动配置完成,通过外部接口模块向UDP发送数据寄存器模块写入数据,并向配置寄存器模块写入相应的发送命令开始发送数据;当有接收到数据时,外部接口模块会产生中断信号,通知用户到UDP接收数据寄存器模块读取数据。
5.根据权利要求4所述的实现方法,其特征在于,所述UDP发送数据寄存器模块、UDP接收数据寄存器模块由普通的双端口RAM实现,包括一个时钟信号、一组读数据总线、一组读地址总线、一条读允许信号、一组写数据总线、一组写地址总线、一条写允许信号及一个复位信号;
所述配置寄存器模块由普通的三端口RAM实现,包括一个时钟信号、一组读数据总线、一组读地址总线、一条读允许信号、两组写数据总线、两组写地址总线、两条写允许信号、一组控制输出信号及一个复位信号。
6.根据权利要求4所述的实现方法,其特征在于,所述UDP发送控制模块的实现包括如下步骤:
1)等待启动信号;
2)无状态自动配置是否成功,如果是,进行下一步,否则退出流程;
3)目的IP地址是否为链路本地地址,如果是转到5),否则转到4);
4)目的IP的前缀在前缀列表中是否有匹配的项目,如果有,转到5),否则转到7);
5)在邻节点高速缓存表中是否有匹配的邻节点高速缓存项,如果是则组装UDP报文并启动DM9000驱动模块的发送功能,否则转到6);
6)地址解析是否有进行过,如果是,结束流程,否则进行地址解析并转到3);
7)默认路由表中是否有可用的默认路由表项,如果是则组装UDP报文并启动DM9000驱动模块的发送功能,否则结束流程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310137881.7/1.html,转载请声明来源钻瓜专利网。