一种应用于vlbi硬件相关处理机的全硬件网络接口的制作方法

文档序号:7667985阅读:182来源:国知局
专利名称:一种应用于vlbi硬件相关处理机的全硬件网络接口的制作方法
技术领域
本发明涉及一种应用于VLBI (Very Long Baseline Interferometry,甚长基线干涉测量技术)硬件相关处理机的全硬件网络接口。
背景技术
硬件相关处理机作为VLBI数据处理的核心设备被广泛应用在射电天文观测,精密卫星定轨道等场合,它通过网络接口从外部数据回放设备接收数据,然后由相关处理部分进行相关运算,得到VLBI观测数据的时延。上海天文台现有的硬件相关处理机已经使用多年,工作时经常出现死机的情况,且硬件处理机的数据回放部分和中心控制计算机间的接口为RS232串口,数据传输速率较 低,人机交互不方便。而且,由于现有的相关处理机的每块PCB (Printed Circuit Board,印刷电路板)只有一片小容量的FPGA(Field -Programmable Gate Array,现场可编程门阵列)芯片(型号为XILINX公司的VIRTEX-4FX12),因此对其进行升级,不仅不经济,而且性能也不能得到很大的提高。鉴于上述原因,目前上海天文台VLBI实验室正在开发下一代硬件相关处理机,正在开发的处理机所采用的PCB芯片连接原理图如图I所示,此款PCB带有五片高性能FPGA芯片,分别为四片串联的型号为VIRTEX-4LX160的第一 FPGA芯片I’和一片同时与四片第一 FPGA芯片I’连接的型号为VIRTEX-4FX60的第二 FPGA芯片2’,其中,第一 FPGA芯片I’含有大量CLB (可编程逻辑资源),适合实现硬件处理机中的信号处理算法;第二 FPGA芯片2’则含有嵌入式处理器PowerPC和其他硬核资源,适合构建嵌入式系统以完成各种控制功倉泛。但是上述PCB与现有的相关处理机所用的PCB相比,存在没有大容量FLASH,不能存储大量外部数据的缺点。现有的硬件相关处理机所采用的FPGA芯片内部也含有嵌入式处理器PowerPC,且具有大容量FLASH,可以存储大量数据,其网络接口的实现是通过在PowerPC上移植嵌入式Linux操作系统,然后基于Linux的标准TCP/IP协议栈用C语言编写应用层网络程序,在MTU (Maximum Transmission Unit,最大传输单元)为8000时,此网络部分速率大约为200Mbps。而正在开发的硬件相关处理机,由于没有大容量FLASH,不能在其嵌入式处理器上移植嵌入式Linux,所以要实现网络接口必须要采用别的方法。

发明内容
为了解决上述现有技术存在的问题,本发明旨在提供一种应用于VLBI硬件相关处理机的全硬件网络接口,以实现硬件相关处理机的数据传输功能。本发明所述的一种应用于VLBI硬件相关处理机的全硬件网络接口,用于实现所述硬件相关处理机从外部的数据回放设备,即客户端接收数据,该网络接口包括降序排列的顶层模块、以太网协议层、IP协议层和传输层,所述顶层模块包括一第一 FIF0(FirstInput First Output,先进先出队列)、一第二 FIFO、一与该第一 FIFO、第二 FIFO连接的协议封装模块以及依次与该协议封装模块连接的一 LLFIFO(带有L0CALLINK接口标准的FIFO)、一 TEMAC模块和一物理层芯片,其中,所述TEMAC模块通过所述物理层芯片与所述客户端进行数据交互;所述LLFIFO与所述TEMAC模块进行数据交互;所述协议封装模块对所述LLFIFO中的数据进行读/写操作,并分别通过所述第一FIFO和第二 FIFO与所述硬件相关处理机的相关处理单元进行数据交互。在上述的应用于VLBI硬件相关处理机的全硬件网络接口中,当所述TEMAC模块从所述物理层芯片接收数据后,判断数据巾贞的CRC(Cyclic Redundancy Check,循环冗余校验码)校验和计算是否正确,若正确则把该数据帧传送至所述LLFIF0,否则根据外部配置,选择丢弃所述数据帧或把该数据帧传送至所述LLFIF0。
在上述的应用于VLBI硬件相关处理机的全硬件网络接口中,当所述协议封装模块从所述LLFIFO中读取以太网格式的数据帧后,将该数据帧按序剥去以太网帧头、IP帧头和UDP(User Datagram Protocol,用户数据包协议)巾贞头,提取原始的应用层数据,并把该应用层数据通过所述第二 FIFO发送至所述硬件相关处理机的相关处理单元。在上述的应用于VLBI硬件相关处理机的全硬件网络接口中,所述传输层为应答方式的m)P协议。在上述的应用于VLBI硬件相关处理机的全硬件网络接口中,所述TEMAC模块包括一与所述LLFIFO连接的客户端接口、一与所述物理层芯片连接的GMII/MII (GigabitMedium Independent Interface,千兆介质独立接口/Medium Independent Interface,介质独立接口)模块、一连接在所述客户端接口的发送接口与所述GMII/MII模块的接收接口之间的传输引擎、一连接在所述GMII/MII模块的发送接口与所述客户端接口的接收接口之间的接收引擎、一分别与所述传输引擎和接收引擎连接的流量控制模块、一与所述接收引擎连接的地址过滤模块以及一管理接口,且该管理接口包括一配置模块和一 MDIO (管理数据输入输出)接口,其中所述传输引擎从所述客户端接口接收数据后,将该数据转换为GMII格式,并在加入以太网的前导码和帧校验和后,输送至所述GMII/MII模块;所述接收引擎从所述GMII/MII模块接收收据后,检查数据帧是否符合标准的以太网协议,在去除填充数据和以太网的前导码后,向所述客户端接口提交数据,并提供一个错误帧或正确帧的指示器;所述流量控制模块根据所述传输引擎提供的发送数据包的数量的统计信息以及所述接收引擎提供的接收到的数据包的数量的统计信息,配置MAC (Medium/Media AccessControl,介质访问控制层)并控制所述传输引擎发送一个具有可变暂停时间的暂停帧;所述地址过滤模块用于设置若干个MAC地址为特定的源地址,当所述接收引擎接收的数据帧的源MAC地址与所述特定的源地址均不相同时,则控制所述接收引擎阻止该数据帧进入所述客户端接口;所述GMII/MII模块用于将接收到的数据格式转化为MII格式或GMII格式后输出;所述管理接口一方面通过所述配置模块配置和监测MAC,另一方面用于访问所述MDIO接口,且该MDIO接口用于监测和配置所述物理层芯片。
在上述的应用于VLBI硬件相关处理机的全硬件网络接口中,当所述GMII/MII模块从所述传输引擎接收数据时,若数据的速度低于lGbps,则将数据格式转化为MII格式,并发送至所述物理层芯片;当所述GMII/MII模块从所述物理层芯片接收数据时,则将数据格式转化为GMII格式,并发送至所述接收引擎。在上述的应用于VLBI硬件相关处理机的全硬件网络接口中,当所述传输引擎接收的数据帧在加入以太网的前导码和帧校验和后少于64字节时,则对该数据帧加入填充数据。在上述的应用于VLBI硬件相关处理机的全硬件网络接口中,所述客户端接口接收和发送的数据位宽均为8bit。由于采用了上述的技术解决方案,本发明具有以下优点I、应用范围广泛;由于本发明作为一个硬件IP core(核)比较独立,且占 用的FPGA逻辑资源很少,经测试,LUT(Look-Up-Table,显示查询表)只占用了 4%,RAM (RAM-random access memory,随机存储器)只用了 I %,所以本发明不仅仅局限在应用于硬件相关处理机中,也可以作为一个硬件IP core应用于其他基于FPGA的设备中,作为这些设备的网络接口。2、由于本发明不是采用嵌入式软件,而是用FPGA硬件实现的,因此本发明与硬件相关处理机的相关处理单元(即信号处理部分)数据交互更加直接且接口简单,本发明与应用层部分的接口采用的是标准的FIFO,FIFO的操作是非常方便而简单的,应用层只需操作FIFO即可,不必关心网络接口的实现方式。3、本发明是用FPGA全硬件实现的,因此,不需要嵌入式CPU、外部大容量存储器、DMA (Direct Memory Access,直接内存存取)以及各种总线,从而简化了硬件相关处理机系统的复杂度,节约了其成本,节省了硬件相关处理机中PCB的面积。4、由于本发明与应用层数据交互直接,数据缓存直接开在PCB的FPGA芯片上,不使用外部存储器作为缓存,所以数据速率非常高;在組^为1500时,如果传输层采用标准的UDP协议,S卩服务器(此处指本发明的网络接口)无应答信号,则数据速率可达到980Mbps ;如果采用有应答方式的Μ)Ρ协议,则最高速率可以达到430Mbps,虽然比无应答时慢,但仍远远超过用嵌入式方式实现的网络系统(用嵌入式CPU构造的网络系统,网络速率一般低于300Mbps ;原有的硬件处理机网络速率最高只有200Mbps)。5、为了提高数据传输的可靠性,对本发明中的传输层进行了改进,即采用了应答方式的UDP协议,即当服务器(在此处指本发明的网络接口)收到客户端的一个UDP数据包后会回复一个ACK(ACKnowledge Character,确认字符)应答信号,当客户端收到ACK应答信号后再传送下一个UDP数据包;这种方式即避免了 TCP协议的复杂性,又克服了 UDP协议传输数据的不可靠性。


图I是正在开发的硬件相关处理机中PCB的结构示意图;图2是本发明一种应用于VLBI硬件相关处理机的全硬件网络接口的硬件框图;图3是本发明一种应用于VLBI硬件相关处理机的全硬件网络接口中LLFIFO的L0CALLINK接口数据传输时序图4是本发明一种应用于VLBI硬件相关处理机的全硬件网络接口中TEMAC模块的内部结构示意图;图5是本发明一种应用于VLBI硬件相关处理机的全硬件网络接口在接收数据时的流程图。
具体实施例方式下面结合附图,对本发明的具体实施例进行详细说明。本发明的总体实施思路如下本发明的实质是采用FPGA芯片(型号为XILINX公司的VIRTEX-4FX60),通过在其内部编写VHDL程序(VHDL程序和软件程序不同,它用于描述硬件电路,最终生成的是硬件结构),用硬件的方式实现网络接口功能。完整的网络系统包括客户端和服务器两部分;客户端用于发送数据,服务器用于 接收数据。由于硬件相关处理机用于从外部数据回放设备接收数据,因此在本实施例中,硬件相关处理机是服务器,数据回放设备是客户端。本发明的具体结构包括降序排列的全硬件的顶层模块10、以太网协议层(图中未示)、IP协议层(图中未示)和传输层(图中未示),且传输层采用的是应答方式的UDP协议。如图2所示,顶层模块10包括第一 FIFO I、第二 FIFO 2、与该第一 FIFO I、第二FIFO 2连接的协议封装模块3以及依次与该协议封装模块3连接的LLFIFO 4,TEMAC模块5和物理层芯片6。具体来说TEMAC模块5通过物理层芯片6与外部的客户端(图中未示)进行数据交互。
LLFIFO 4与TEMAC模块5进行数据交互;以TEMAC模块5从物理层芯片6接收数据为例,当TEMAC模块5从物理层芯片6接收数据后,判断数据帧的CRC校验和计算是否正确,若正确则把该数据帧传送至LLFIFO 4,否则根据外部配置,选择丢弃数据帧或继续把该数据帧传送至LLFIFO 4。协议封装模块3对LLFIFO 4中的数据进行读/写操作,并分别通过第一 FIFO I和第二 FIFO 2与硬件相关处理机的相关处理单元(图中未示)进行数据交互;以协议封装模块3对LLFIFO 4中的数据进行读操作为例,当协议封装模块3从LLFIFO 4中读取以太网格式的数据帧后,将该数据帧按序剥去以太网帧头、IP帧头和UDP帧头,提取原始的应用层数据,并把该应用层数据通过第二 FIFO 2发送至硬件相关处理机的相关处理单元去处理。本实施例中,LLFIFO 4的L0CALLINK接口标准传输数据的时序图如图3所示,图中只画出了传输8个数据的样图。图中,clock为时钟信号,data[7:0]为要传输的数据,sof_n为每巾贞数据的起始标志,eof_n为每巾贞数据的结束标志,src_rdy_n为源端是否准备就绪的标志,dst_rdy_n为目的端是否准备就绪的标志。在传输第一个数据时,sof_n信号电平拉低一个时钟时间,此后的传输过程中sof_rWf号恢复高电平,在传输最后一个数据时,enf_n信号电平拉低一个时钟时间,在整个传输过程中src_rdy_n信号和dst_rdy_n信号一直处于低电平。本实施例中,TEMAC模块5的内部结构如图4所示,下面对TEMAC模块5内部各模块进行介绍。TEMAC模块5包括与LLFIFO 4连接的客户端接口 51、与物理层芯片6连接的GMII/MII模块52、连接在客户端接口 51的发送接口与GMII/MII模块52的接收接口之间的传输引擎53、连接在GMII/MII模块52的发送接口与客户端接口 51的接收接口之间的接收引擎54、分别与传输引擎53和接收引擎54连接的流量控制模块55、与接收引擎54连接的地址过滤模块56以及管理接口 57,且该管理接口 57包括配置模块571和MDIO接口 572。具体来说客户端接口 51对于上层应用是非常灵活的,即适合于类似交换机功能的存储转发也适合于网络层及更高层次的处理;客户端接口 51接收和发送的数据位宽均为8bit,且数据的接收和发送分别与时钟信号txgmiimiiclk和rxgmiimiiclk同步。传输引擎53从客户端接口 51接收数据后,将该数据转换为GMII格式,并在加入以太网的前导码和帧校验和后(若传输引擎53接收的数据帧在加入以太网的前导码和帧校验和后少于64字节,则对该数据帧加入填充数据),输送至GMII/MII模块52。接收引擎54从GMII/MII模块52接收收据后,将该数据与IEEE 802. 3标准进行比对,检查数据帧是否符合标准的以太网协议,在去除填充数据和以太网的前导码后,向客 户端接口 51提交数据,并提供一个错误帧或正确帧的指示器。流量控制模块55根据传输引擎53提供的发送数据包的数量的统计信息以及接收引擎54提供的接收到的数据包的数量的统计信息,配置MAC并控制传输引擎53发送一个具有可变暂停时间的暂停帧,且作用于GMII/MII模块52的接收接口 ;在本实施例中,流量控制模块55是按照IEEE802. 3-2005第31条设计的。地址过滤模块56用于设置若干个MAC地址为特定的源地址,当选择地址过滤功能后,如果接收引擎54接收的数据帧的源MAC地址与设定的源地址均不相同,即不是这些特定地址中的某一个时,则控制接收引擎54阻止该数据帧进入客户端接口 51。GMII/MII模块52用于将接收到的数据格式转化为MII格式或GMII格式后输出,即当GMII/MII模块52从传输引擎53接收数据时,若数据的速度低于lGbps,则将数据格式转化为MII格式,并发送至物理层芯片6 ;当GMII/MII模块52从物理层芯片6接收数据时,则将数据格式转化为GMII格式,并发送至接收引擎54。管理接口 57—方面通过配置模块571配置和监测MAC,另一方面用于访问MDIO接口 572,该MDIO接口 572用于监测和配置物理层芯片6,其信号可由管理接口 57进行读和写;在本实施例中,MDIO接口 572的设计符合IEEE802. 3第22条。下面结合图5,对本发明主要实现的硬件相关处理机的数据接收功能进行介绍(为方便起见,以下服务器即代表本发明的网络接口,客户端即代表数据回放设备的网络发送部分)服务器应答模式的数据传输工作过程如下步骤SI,服务器等待接收数据;步骤S2,服务器收到一帧数据;步骤S3,服务器判断收到的数据帧的数据类型,即ARP或UDP数据帧;步骤S4,服务器将原始数据送入硬件相关处理机应用层处理;步骤S5,构造应答帧,即UDP应答帧或ARP应答帧;步骤S6,将应答帧通过发送状态机发送给客户端;步骤S7,服务器发送数据完成,处于等待状态,等待接收新数据,即返回步骤S2。
具体来说,数据开始传输前,客户端发送ARP (地址解析协议)请求帧,询问服务器MAC地址,服务器收到ARP请求帧后,发送ARP应答帧,之后数据传输开始。在本发明中传输层虽然采用的是UDP协议,但在设计时采用了改进的应答模式,这是为了使数据传输更加可靠,也为了配合此后的相关处理部分的实际工作情况,即硬件相关处理机是用FPGA芯片开发的,没有很大的缓存空间,但由于硬件相关处理机工作时,要等待多个台站的数据全部到达才能处理,所以硬件相关处理机不能一直处于收数据状态,否则会出现因为某个台站的数据迟迟不到,而造成其他台站数据的溢出。当客户端发送完一帧UDP数据后就处于等待状态,等待接收服务器的应答帧;此时超时计时器启动,若收到服务器的应答帧,则继续发送下一帧UDP数据,同时超时计时器清零;若超时计时器超过设定的某一门限值,则认为UDP数据帧丢失,客户端重新发送刚才的UDP数据帧;服务器收到UDP数据帧后,把UDP数据帧的以太网等帧头、IP帧头和UDP帧头逐层剥去,并把原始数据送入应用层处理,然后构造UDP应答帧,通过发送状态机发送给客户端,并处于等待状态等待接收下一帧UDP数据。
·
本实施例中应答帧全部为ARP应答帧。这样做的原因如下(I)因为客户端发送一个UDP数据包就等待接收一个应答帧,所以应答帧无需序号,且服务器每收到一个UDP数据包都可以直接调用原来的ARP应答帧,无需每次都构造新的应答帧,特别是不用每次都花大量时间去计算复杂的IP和UDP校验和,节约了时间,提高了网络速率。(2)客户端的网络程序一般采用操作系统的标准TCP/IP协议栈,每隔特定的时间都会清空ARP缓存,会向服务器发送ARP请求帧,因此如果服务器每次都是发送ARP应答帧,客户端很快会刷新自己的ARP缓存表,然后发送下一帧UDP数据包。目前,本发明的网络接口已经通过测试,在局域网条件下,数据传输完全正确。以IG以太网为例,在无应答信号模式时,数据速率可达到极限的980Mbps ;在有应答信号模式时议,最高速率可以达到430Mbps。本发明目前已经应用于正在开发的硬件相关处理机中且工作良好,满足使用要求,经测试,服务器(即网络接口)接收数据的速率(即客户端发送数据包的速率)大约为421. 608Mbps。综上所述,本发明基于FPGA芯片,以全硬件的方式实现了网络接口功能,从而实现了硬件相关处理机和外围客户端(数据回放设备)之间可靠的数据交互(事实上为单向,硬件处理机只负责接收数据回放设备的数据,但收到数据后会向数据回放设备发送ACK,但ACK中是没有数据的),即硬件相关处理机从数据回放设备获取数据进行处理(处理后的数据不是通过此网络接口送出的)。以上结合附图实施例对本发明进行了详细说明,本领域中普通技术人员可根据上述说明对本发明做出种种变化例。因而,实施例中的某些细节不应构成对本发明的限定,本发明将以所附权利要求书界定的范围作为本发明的保护范围。
权利要求
1.一种应用于VLBI硬件相关处理机的全硬件网络接口,用于实现所述硬件相关处理机从外部的数据回放设备,即客户端接收数据,该网络接口包括降序排列的顶层模块、以太网协议层、IP协议层和传输层,其特征在于,所述顶层模块包括一第一 FIFO、一第二 FIFO、一与该第一 FIFO、第二 FIFO连接的协议封装模块以及依次与该协议封装模块连接的一LLFIFO,- TEMAC模块和一物理层芯片,其中, 所述TEMAC模块通过所述物理层芯片与所述客户端进行数据交互; 所述LLFIFO与所述TEMAC模块进行数据交互; 所述协议封装模块对所述LLFIFO中的数据进行读/写操作,并分别通过所述第一 FIFO和第二 FIFO与所述硬件相关处理机的相关处理单元进行数据交互。
2.根据权利要求I所述的应用于VLBI硬件相关处理机的全硬件网络接口,其特征在于,当所述TEMAC模块从所述物理层芯片接收数据后,判断数据帧的CRC校验和计算是否正确,若正确则把该数据帧传送至所述LLFIF0,否则根据外部配置,选择丢弃所述数据帧或把该数据帧传送至所述LLFIF0。
3.根据权利要求I所述的应用于VLBI硬件相关处理机的全硬件网络接口,其特征在于,当所述协议封装模块从所述LLFIFO中读取以太网格式的数据帧后,将该数据帧按序剥去以太网帧头、IP帧头和UDP帧头,提取原始的应用层数据,并把该应用层数据通过所述第二 FIFO发送至所述硬件相关处理机的相关处理单元。
4.根据权利要求I所述的应用于VLBI硬件相关处理机的全硬件网络接口,其特征在于,所述传输层为应答方式的UDP协议。
5.根据权利要求I或2所述的应用于VLBI硬件相关处理机的全硬件网络接口,其特征在于,所述TEMAC模块包括一与所述LLFIFO连接的客户端接口、一与所述物理层芯片连接的GMII/MII模块、一连接在所述客户端接口的发送接口与所述GMII/MII模块的接收接口之间的传输引擎、一连接在所述GMII/MII模块的发送接口与所述客户端接口的接收接口之间的接收引擎、一分别与所述传输引擎和接收引擎连接的流量控制模块、一与所述接收引擎连接的地址过滤模块以及一管理接口,且该管理接口包括一配置模块和一 MDIO接口,其中 所述传输引擎从所述客户端接口接收数据后,将该数据转换为GMII格式,并在加入以太网的前导码和帧校验和后,输送至所述GMII/MII模块; 所述接收引擎从所述GMII/MII模块接收收据后,检查数据帧是否符合标准的以太网协议,在去除填充数据和以太网的前导码后,向所述客户端接口提交数据,并提供一个错误帧或正确帧的指示器; 所述流量控制模块根据所述传输引擎提供的发送数据包的数量的统计信息以及所述接收引擎提供的接收到的数据包的数量的统计信息,配置MAC并控制所述传输引擎发送一个具有可变暂停时间的暂停帧; 所述地址过滤模块用于设置若干个MAC地址为特定的源地址,当所述接收引擎接收的数据帧的源MAC地址与所述特定的源地址均不相同时,则控制所述接收引擎阻止该数据帧进入所述客户端接口; 所述GMII/MII模块用于将接收到的数据格式转化为MII格式或GMII格式后输出; 所述管理接口一方面通过所述配置模块配置和监测MAC,另一方面用于访问所述MDIO接口,且该MDIO接口用于监测和配置所述物理层芯片。
6.根据权利要求5所述的应用于VLBI硬件相关处理机的全硬件网络接口,其特征在于,当所述GMII/MII模块从所述传输引擎接收数据时,若数据的速度低于lGbps,则将数据格式转化为MII格式,并发送至所述物理层芯片;当所述GMII/MII模块从所述物理层芯片接收数据时,则将数据格式转化为GMII格式,并发送至所述接收引擎。
7.根据权利要求5所述的应用于VLBI硬件相关处理机的全硬件网络接口,其特征在于,当所述传输引擎接收的数据帧在加入以太网的前导码和帧校验和后少于64字节时,则对该数据帧加入填充数据。
8.根据权利要求5所述的应用于VLBI硬件相关处理机的全硬件网络接口,其特征在于,所述客户端接口接收和发送的数据位宽均为8bit。
全文摘要
本发明涉及一种应用于VLBI硬件相关处理机的全硬件网络接口,用于实现所述硬件相关处理机从外部的数据回放设备,即客户端接收数据,该网络接口包括降序排列的顶层模块、以太网协议层、IP协议层和传输层,所述顶层模块包括一第一FIFO、一第二FIFO、一与该第一FIFO、第二FIFO连接的协议封装模块以及依次与该协议封装模块连接的一LLFIFO、一TEMAC模块和一物理层芯片。本发明基于FPGA芯片,以全硬件的方式实现了网络接口功能,从而实现了硬件相关处理机从外部的数据回放设备接收数据,并进行处理的目的。
文档编号H04L1/16GK102790663SQ201110126398
公开日2012年11月21日 申请日期2011年5月16日 优先权日2011年5月16日
发明者于威, 吴亚军, 张秀忠, 徐志骏, 郭绍光 申请人:中国科学院上海天文台
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1