欢迎来到天天文库
浏览记录
ID:53874251
大小:237.44 KB
页数:8页
时间:2020-04-10
《工业以太网协议栈FPGA IP核的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、冉冉红日的博客工业以太网协议栈FPGA IP核的实现随着物联网的广泛应用,在嵌入式系统中,越来越多的设备、传感器使用工业以太网作为通信媒介,因为工业以太网有着速度与安全可靠双重优势。在较高端设备中,由于存在如DSP、ARM之类的处理器,指令代码运行处理速度很快,再有OS进行管理,此时将以太网网卡芯片驱动程序和协议栈加入进来,比较简单方便,易于设备管理和功能更改,这种方案已经应用的非常成熟了。在某些低端设备中,只有单片机作为处理器,如果还是像上述那样实现以太网的话,单片机的负荷势必会大大增加,对于与单片机相连的设备的实时性
2、控制就会大大降低。因此,在要加入以太网通信的设备中选用单片机作为处理器不是一种好方案。除了单片机、DSP、ARM外,还有一种处理器也被广泛应用,那就是FPGA。现在FPGA的功能越来越多,片内资源也越来越多。像新出的ALTERAFPGA内部就已有ARM硬核,在ALTERA的所有系列中都能实现软核CPU,此CPU的运行速度相比一般的单片机来说还要更快些。但如果用它来管理TCP/IP协议栈,我觉得也就会像单片机一样,负载过重,就像让一个10岁的小孩挑50斤的担子一样。此外,我个人觉得,软核CPU毕竟没有单片机稳定,在FPGA
3、系统中,让软核CPU只做管理就好了,而像以太网协议栈的这样独立性强,又比较复杂的工作就由一个IP核来实现。虽然这样的IP核实现起来不容易,但对于实时性要求高、数据传输速度要求高、稳定性要求高的设备,采用这种方案是非常好的。因此,我想根据嵌入式设备的特点,简化TCP/IP协议栈的内容,实现嵌入式设备需要的功能,而不需要的就剔除掉。比如,不需要那么复杂的ARP管理,只需将缓存上一次有效的IP-MAC地址;如果只用UDP协议,那么就只需实现简易ARP、IP和UDP就可以了。这样不仅能节约硬件资源,同时简化了程序,简化了逻辑,提
4、高了系统的稳定性,越简单的事物,稳定性越好。1 NET_STACKIP核概述1.1 IP核功能简介1) 此IP核支持TCP/IP协议栈中的ARP(简化)、IP、UDP、TCP(简化)、ICMP-Ping协议,覆盖协议栈中的网络接口层、网际层和传输层,能应用于10/100/1000Mbps网络系统中。2) 此IP核中只处理ARP应答,不发送ARP请求;只有一个MAC-IP对缓冲区,即只保存上次接收到的来自主机的ARP请求中的MAC-IP对。3) IP协
5、议支持IP首部长度为20,协议类型为IPV4,不支持分片、选项等功能,发送IP包中的TTL值固定为64。4) TCP协议支持TCP首部长度为20,不支持SACK、窗等选项功能,单次传输最大净负荷数据为1460字节。5) 此IP核支持完整的UDP协议,单次传输最大净负荷数据为1472字节。6) 在IP核配置时UDP和TCP不能同时被包含,ICMP可以和他们组合包含,只需在配置文件中通过宏定义来加载、卸除组件,操作非常简单。7) IP核中用于缓冲接收和发送的数据
6、的缓存区大小可以独立配置。8) 应用于IP核的网络参数可以动态在线调整。9) 此IP核能应用于交换机组成的局域网络中。1.2 IP核接口此IP核在UDP模式和在TCP模式下的顶层接口分别如下图1.1和图1.2所示,前缀为nat_的信号为需要设置的网络参数;前缀为L3的信号为与应用层逻辑接口的信号,它遵循AvalonStream接口协议,其中ready信号对应的readyLatency等于0,data信号的数据模式是大端模式,此接口在SignalTapII中捕获传输奇数字节的时序图如
7、下图1.3所示;前缀为L1的信号为与网络芯片控制器逻辑接口的信号,它也遵循AvalonStream接口协议。图1.1NET_STACKIP核UDP模式顶层接口图1.2NET_STACKIP核TCP模式顶层接口图1.3 接口时序图1.3 IP核使用NET_STACKIP核使用非常简单,在应用时可以采用三种方式将此IP核集成到您的系统中:1) 采用Verilog源码方式,将此IP核看做一个模块集成到您的系统中;2) 采用原理图方式,将此IP的顶层模块转化为原理图符号,进而集成到您的系统
8、中;3) 采用组件方式,在SOPCBuilder或Qsys中将此IP核转化为一个组件,进而集成到您的系统中。无论采用哪种方式,在系统工程编译之前,需要做如下工作:1) 设置IP核的工作模式,UDP或TCP模式,加载/卸除Ping功能组件;2) 设置IP核内接收缓冲区和发
此文档下载收益归作者所有