基于千兆网的FPGA多通道数据采集系统设计
的格式。如图5所示,如果以太网帧"帧类型"区域的值为0x0806,则表示该帧后面的数据填充为一个ARP包。至于是ARP请求还是ARP回复,需要根据ARP首部的操作码来辨别:操作码为0x0001,则是ARP请求包;操作码为0x0002,则是ARP回复包。ARP请求包填入一个广播帧并发向网络中的所有主机,所以其以太网目的地址为广播帧地址0xffffffffffff,并且由于它的目标是请求目的主机的MAC地址,故图中"接收方MAC地址"区域没有确切值,可为任意6 Byte的填充;ARP回复包已经得到了所需的MAC地址,但是要注意,此时的发送方和接收方已经对调,相应区域的填写也应适当改变。
以太网协议规定的最短帧长为64Byte,这就要求其数据填充至少为46 Byte,如图4所示,而图5中的ARP字段共有28 Byte,所以无论是ARP请求还是回复,均应有18 Byte的填充数据。有些PC机会发送其他设备的ARP请求,即使此时只有一根直连线将设备与上位机相连。这时设备是不能响应该请求的,应当在MAC层和IP层之间就将这样的请求屏蔽,防止干扰正常的数据包传输。
4.2 Jumbo帧的利弊
以太网标准规定的最大帧长度为1 518 Byte,这包括IP层和UDP层添加的首部,一般发送的数据包也都应该限制在这一范围内。但千兆以太网有一种厂商标准的超长帧格式,目前还没有获得IEEE标准委员会的认可,它规定的帧格式与普通以太网帧相同,只是其数据填充区域可以突破原有限制,整个帧长度为9 000~64 000 Byte不等,即Jumbo巨型帧。
在本系统中采用Jumbo帧的好处:(1)可以适当提高网络带宽的利用率。这主要靠节省各层首部的添加得到。(2)减少操作系统因频繁响应网络设备的中断而带来的CPU资源的过多占用。这可以说是采用Jumbo帧的主要原因,因为要处理千兆以太网较高的数据率,无论上位机软件如何优化,CPU的占用仍然很高,这时如果能减少其他地方的CPU开销,将大幅增加软件的处理能力。
但Jumbo帧在使用时也有一些不利的地方。首先,目前很多PC机的网络适配器不支持Jumbo帧的传输,虽然Altera的以太网控制器IP核支持,但这不足以使两个设备进行通信;其次,Jumbo帧会长时间占用网络通道,这会影响那些对数据延迟敏感的设备和应用;第三,Jumbo帧的丢包意味着严重的灾难,一帧相当于十多个正常帧,这会将处理能力弱的PC机迅速引入重传的陷阱,丢包越来越多,直到网络带宽被全部占用,导致上位机软件崩溃。所以在考虑支持Jumbo帧之前,应先充分权衡这些优势与不足。
5 结束语
系统硬件设备与上位机软件配合工作,可以较好地完成双路彩色PAL制数据流的采集任务。通过实际测试与分析,采用Jumbo帧进行传输,有效地减少了软件运行过程中的系统中断数,从而最大限度地降低了CPU的占用。利用搭建起来的千兆以太网运行环境,可以扩展类似的高速数据传输应用。
- 用大电流LDO为FPGA供电需要低噪声、低压差和快速瞬态响应(08-17)
- 基于FPGA 的谐波电压源离散域建模与仿真(01-30)
- 基于FPGA的VRLA蓄电池测试系统设计(06-08)
- 降低从中间总线电压直接为低电压处理器和FPGA供电的风险(10-12)
- FPGA和功能强大的DSP的运动控制卡设计(03-27)
- DE0-Nano-SoC 套件 / Atlas-SoC 套件(10-30)