基于fpga的多通道数据记录与回放方法_2

文档序号:9489399阅读:来源:国知局
BF”,其余均以“00”填充。所有通道发送的数据记录时将被形成单个任务存储管理。数据源的发送频率设置为50kHz,故单路数据吞吐率可达32.1MByte/s,记录仪接口板以50kHz的频率记录数据且回放数据时数据以50kHz的间隔时间回放至数据源。现有数据记录仪吞吐率最高可达70MByte/s的设备,实际使用时数据发送频率甚至可以更高。记录仪接口板上FPGA内部数据流图如图3所示。
[0054]根据图3所示的数据流图,本发明包含记录和回放两个流程,具体包括以下几个步骤:
[0055]在本实施例中,本发明提供的基于FPGA的多通道数据记录与回放方法,包括以下步骤:
[0056]步骤1:接收待记录数据,具体为,记录仪接口板上的FPGA接收数据源发送的数据包;
[0057]步骤2:记录同步工作的多通道数据,具体为,从所述FPGA的FIFO队列中读取的数据并送入数据记录仪的数据总线上,通过数据选择器进行数据的记录;
[0058]设每路通道数据的发送频率为f,则设置数据选择器的时钟为nXf,η为通道数量;按照设置的时钟频率将每路通道的数据依次送入数据记录仪的数据总线上,保证一次记录操作可以实现记录所有通道上的数据。
[0059]步骤3:添加标记记录数据,具体为,记录仪接口板将从FIFO队列中读出的数据添标记,记录操作触发数据记录仪内部的记录写时钟,依次将各个通道的数据记录至数据记录仪的硬盘且形成单个任务;
[0060]步骤4,数据记录仪回放数据,具体为,将存储在数据记录仪硬盘的单个任务里各通道数据回放至记录仪接口板并写入FIFO队列中;
[0061]步骤5:根据回放间隔时间将剥离标记后的回放数据发送回数据源。
[0062]所述步骤I包括如下步骤:步骤101:记录仪接口板上的FPGA通过光纤以8bit形式接收数据源发送的数据包,所述数据包包括数据传输的目的MAC地址、源MAC地址、实际数据帧长度以及数据源端发送数据;
[0063]步骤102 =FPGA通过MAC传输的帧协议依次接收所述数据包的每个字节数据;
[0064]步骤103 =FPGA最大化的开辟若干FIFO队列,用以缓存所述数据包并将数据包中数据位宽转换成16bit。
[0065]在本实施例中,更为具体地,记录操作开始时,记录仪接口板上FPGA通过光纤以Sbit形式接收数据源发送的数据包,内含数据传输的目的MAC地址,源MAC地址,实际数据帧长度以及数据源端发送的所有数据,共计638个Byte。FPGA的MAC核以MAC传输的帧协议依次接收每个Byte数据,光纤以太网接收数据的时序图如图4所示。FPGA根据其内部资源,最大化的开辟若干FIFO,用以缓存FPGA通过光纤接收到的数据并将数据位宽转换成16bit,同时解决后续数据记录过程中的跨时钟域的同步问题。FIFO开辟的空间越大,其缓存的数据包数目越多,数据传输速率可以越高。
[0066]所述步骤3包括如下步骤,步骤301:添加所述标记中的帧长度值,帧长度值用于记录一帧数据的总长度;
[0067]步骤302:添加所述标记中的通道号,通道号用于表示不同的物理通道上的数据;
[0068]步骤303:记录操作触发数据记录仪内部的记录写时钟,依次将各个通道的数据记录至数据记录仪的硬盘且形成单个任务。
[0069]在本实施例中,具体为,记录过程中,记录仪接口板将数据选择器选取的相应通道上的数据读出并触发数据记录仪内部的记录写时钟,该时钟下降沿时数据变化,上升沿时数据记录仪锁存外部数据。为了实现一次记录操作完成同步工作多通道数据记录的功能,需要结合MAC传输的帧格式在其中添加标记,用以区分每个通道的数据。添加的标记包括两个部分:
[0070]帧长度值:如图2所示,MAC传输的帧协议格式中的实际帧长度值用以指明数据源端发送数据的长度,而添加2个Byte的该帧长度值用以表示一帧数据的总长度。
[0071]通道号:在添加的帧长度值后再添加2个Byte数据,与FPGA中的MAC核相对应,分别指代不同的物理通道上的数据。
[0072]记录仪接口板将从FIFO中读出的数据添加4个Byte的“标记”,同时记录操作触发数据记录仪内部的记录写时钟,依次将各个通道的数据记录至数据记录仪的硬盘且形成单个任务。记录仪接口板的记录接口时序如图5所示。
[0073]添加的的帧长度值等于MAC传输的帧协议格式中的实际帧长度值加上18个Byte的计算值。记录仪接口板的逻辑设计中,实际帧长度值将被暂存与寄存器中,该寄存器值加上18个Byte后的值添加到MAC传输的帧协议格式中的实际帧长度值之后一并记录至数据记录仪的任务中,利用该设计方法添加该标记后记录的每帧数据长度将不受限制;另一方面,添加的通道号可以将每帧数据区别,实现单个任务记录各个通道数据的功能,同时也为回放操作时数据通道的判断做好标记。记录仪接口板的FPGA逻辑设计流程如图6所示。
[0074]所述步骤4包括如下步骤,步骤401:记录仪接口板向数据记录仪发送请求振荡时钟,数据记录仪返回给记录仪接口板回放读时钟,其中回放读时钟频率与请求时钟频率一致;
[0075]步骤402:记录仪接口板将单个任务里各个通道的数据回放至16bit数据宽度的数据总线并写入FIFO队列,并缓存回放数据的FIFO队列将数据位宽转换成8位;
[0076]步骤403:等待通过光纤将回放的数据发送回数据源。
[0077]在本实施例中,具体为,通用数据记录仪的对外接口数据总线为16bit数据宽度,回放数据时,存储在数据记录仪硬盘任务中的数据将按照16bit数据总线的格式回放至记录仪接口板并写入FIFO中。开始回放时,记录仪接口板向数据记录仪发送请求振荡时钟,数据记录仪返回给记录仪接口板回放读时钟,其中回放读时钟频率与请求时钟频率一致,结合如图7所示的记录仪接口板回放接口时序图将单个任务里各个通道的数据回放至16bit数据宽度的数据总线并写入FIFO,同时用于缓存回放数据的FIFO将数据位宽转换成8位,等待通过光纤发送回数据源。回放操作时,每帧数据回放间隔时间与记录时数据传输速率保持一致。
[0078]回放数据的标记剥离,具体为,
[0079]-所述FPGA的光纤以太网MAC核在发送回放的数据时,判断完整一帧数据传输的控制信号,所述控制信号在发送完整一帧数据时一直保持低电平有效;
[0080]-在所述FPGA的逻辑设计中,建立计数器,当计数器计数到需要剥离的标记的位置时,将控制完整一帧数据传输的控制信号拉为高电平,若干个时钟周期后恢复为低电平有效传输状态。
[0081]在本实施例中,具体为,回放的数据写入记录仪接口板内部开辟的FIFO队列后,FPGA队列不断读取FIFO中的帧数据,按照如图8所示的光纤以太网MAC传输的发送时序,通过不同MAC核的不同通道发还给数据源。回放时的数据相比于数据源发送的数据多出4个Byte,为了复现数据源发送的每帧数据,需将该4个Byte的数据剥离,剥离的标记包括两个部分:
[0082]帧长度值,帧长度值在记录操作的逻辑设计时已暂存于寄存器中,回放的数据通过光纤发还给数据源时剥离该标记不会影响实际数据的帧长度。
[0083]通道号,回放时根据该标记区分每个通道的数据。回放的数据通过光纤发还给数据源时剥离该“标记”不会影响实际数据的内容。
[0084]记录仪接口板FPGA内部的光纤以太网MAC核在发送数据时,除了判断一帧数据的起始和结束标志外,还需要判断完整一帧数据传输的控制信号,该信号在发送完整一帧数据时一直保持低电平有效。在记录仪接口板的FPGA的逻辑设计中,建立一个计数器,当计数器计到需要剥离的“标记”的位置时,将之前控制完整一帧数据传输的信号线拉高,4个时钟周期后恢复为低电平有效传输状态。该处理方法将记录时添加的4个Byte的“标记”剥离,能够实现通过光纤回放至各个数据源的数据完全复现记录时的情形。回放过程的逻辑设计流程如图9所示。
[0085]所述回放间隔时间,具体为,根据光纤以太网发送时钟,相邻两帧数据的包头信息,得到所述回放间隔时间;所述回放间隔时间与所述数据源发送数据的频率一致。在本实施例中,具体为,在数据源的逻辑设计中,根据光纤以太网发送时钟,结合相邻两帧数据的包头信息,计算回放间隔时间为20us,与数据源发送数据的频率50kHz—致。已记录的
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1