论文部分内容阅读
本文介绍了一种使用FPGA可编程技术实现的硬件协议的高速可靠数据传输和时钟同步方法。并且介绍了其原理验证系统(称为HSDN系统:High-SpeedData Node)的详细设计和测试结果。
数据传输技术在当前的信息时代具有无可争辩的重要性。在各种不同的场合中,人们需要将数据从一个设备无差错地传输到另一个设备上。对于设备间距离较近的场合,人们可以选择PCIe(典型距离是15~30cm)或者USB(最长传输距离5m)等总线接口。而对于距离较远的场合,人们可以选择RS232、RS485、以太网等传输介质,并在此基础上,通过上层协议来保证数据的可靠性,在实际中通常由网络协议的传输层实现数据可靠传输。上层协议通常是用检错重传机制来实现数据的可靠传输,如TFTP、TCP/IP、SCTP、以及可靠UDP等。这些协议都必须依靠较为复杂的CPU运算和内存拷贝来实现数据可靠传输的功能。比如在Linux下,TCP/IP协议每发送一个数据包CPU需要执行约14000条指令。因此CPU的工作频率,内存的读写速度,硬件I/O带宽都会影响TCP/IP的速度。
很多实验数据的采集、传输往往发生在点对点传输和局域网传输中,在这种情况下不需要完善的路由机制和流量控制,但同样需要一种可靠的数据传输手段。传统的TCP协议依赖CPU运算的特性,使得传输速度受到限制,并且受CPU负荷变化影响而速率不稳定。从提高传输效率、稳定性和减轻对CPU依赖的多方面考虑,本论文提出了一个基于硬件实现的高速可靠数据传输方法,将CPU从频繁的协议运算中解放出来。该方法使用各种成熟技术:我们可以在千兆以太网PHY所提供的物理层通信链路的基础上,通过设计编写FPGA逻辑,在硬件上实现可靠数据传输的协议,然后使用如PCIe这样的接口将数据提供给计算机系统。
另一方面,时钟同步是一个多节点系统中常常需要考虑的问题。比如在采集网络中,多个采集站节点需要同时开始采集,然后按照一定秩序传输数据。因而网络中的的不同节点需要一个共同的时间标准来实施需要协作的动作。通过的IEEE1588协议的分析,我们发现,协议的同步精度来源于对同步帧到达和发出的时间的精确记录。一般运行于计算机网络的IEEE1588协议使用软件计时,在整个网络协议比较复杂的情况下,软件计时的方法迎入协议抖动等不确定因素,无法精确记录同步帧的发出、接受时间戳信息。因此,使用硬件记录时间戳对于同步精度的提高有很大的意义。使用硬件在相对底层的位置记录帧到达和发出的时间,具有极高的稳定性,因而可以极大地提高同步精度。
对HSDN系统的测试结果:一、在数据传输方面,点对点数据传输速度达到了理论预计的最好水平,在帧长度大于或等于1kB时超过120MB/s,在以太网最小帧长情况下依然大于60MB/s;二、在时钟同步方面,同步精度和收敛过程符合预期。结果表明,该可靠数据传输的方法相对于TCP协议具有带宽利用率高,传输速度稳定,CPU占用率低的优点,适用于点到点的高速可靠数据传输,同时,硬件支持的时间同步协议达到了理想的精度。