APP下载

基于FPGA的遥测系统数据存储器控制模块设计

2019-08-29

计算机测量与控制 2019年8期
关键词:寄存器存储器时序

(厦门海洋学院 信息技术系,福建 厦门 361000)

0 引言

由于遥测系统数据信息量较大,在存储过程中所占用的空间也相对较大,为了减少数据传输过程中所耗费的时间和所占用的空间,尽可能在有限信道内对数据进行存储,能够有效降低功率和带宽要求。数据存储目的就是数据能够更高效传输,节省存储空间,因此对于数据存储器控制模块设计在工程上具有很大应用前景[1]。早期采用分离式、小规模芯片搭建的控制模块,结构复杂,可靠性较差,随着大规模器件的出现,早期控制模块受到噪声影响已经无法满足数据高效存储需求[2]。因此,在遥测技术背景下,提出了基于FPGA的遥测系统数据存储器控制模块设计,具有实时高速大容量存储功能,能够及时记录数据在存储过程中状态参数,采用多个存储单元并行存储,能够更好匹配数据传输,并提高存储控制速率,经过此控制模块后,数据量减少,传输频带也相对减少,有效提高了数据存储效率。

1 控制模块方案总体设计

在实际环境中,要求数据存储器控制模块,低电压差分信号接口的数据传输速率低于60 MB/S,并保证数据存储器能够可靠传输数据,存储容量不低于10 GB[3]。

模块总体设计框图如图1所示。

图1 模块总体设计框图

由图1可知:FPGA芯片的功能是辅助数字缓冲单元、数字存储单元和数据位数转换单元模块实现数据存储器控制。其通过与外部控制单元相连接,能够缓冲存储后的编码数据。在数据读取模块,将存储后的数据通过接口电路显示在电脑中进行读取,由此获取被高效控制后的数据[4]。

在模块总体设计框图下,设计实现方案:输入数字信号,添加数据缓冲模块降低数据流速,并缓冲输入数字信号。将数据存储编码后,输出数据编码流,经过数据位数转换单元,将数据编码流转换为数据形式,流向外部控制单元[5]。经过接口电路将存储后的数据读取到电脑之中,经过模块软件功能设计,使数据存储不会受到噪声干扰,保证数据存储高效性[6]。

1.1 控制模块结构

数据存储器控制模块总体结构设计如图2所示。

图2 控制模块总体结构

由图2可知,将控制模块结构分为三部分,分别是自体测试接口模块、低速读写控制模块、高速流读写控制模块。其中自体测试接口模块是将随机数发生器产生的数据写入控制模块之中,并将读出与写入数据进行对比,实现自体测试,如果测试结果显示正常,则说明控制模块有效果[7]。反之,如果测试结果显示错误,则说明控制模块无效果;低速读写控制模块可直接写入读取控制模块指定地址的单个数据;高速流读写控制模块可大批量写入读取控制模块任意地址的数据。

1.1.1 存储器命令控制

高速大容量数据存储器控制系统是以SATA2.0接口为存储介质设计的控制器,采用MSM6290高速存储芯片作为存储介质,能够大大缩短寻道时间[8]。SATA2.0控制器工作性能是由物理层、链路层、传出层和命令控制层决定的,当数据从物理层数据收发到命令层过程中,每一层都是由自体检测状态机进行控制的[9]。存储器命令控制界面设计如图3所示。

图3 存储器命令控制界面

根据存储器命令控制界面,将采集命令与数据分层,可加快控制部分速度,并提高数据传输稳定性,使数据在极短时间内完成原语交互、信息处理和命令生成,最大程度发挥固态硬盘优势[10]。

1)物理层为控制器最底层,其性能好坏决定了数据传输质量,与链路层模块之间使用原语级别通讯[11]。

2)链路层是数据传输的一个通路,负责原语的收发控制,以此保证比特一级数据到帧一级数据能够成功转变。链路层例化接口示意图如图4所示。

图4 链路层例化接口示意图

在每一帧收发状态链路层控制模块下,启动相应收发控制状态机,使原语不受到限制完成交互行为,同时启动扰码校验,使整个传输工作完成控制后,并重新返回给控制模块,以此等待新传输命令[12]。

3)传输层负责接收不同帧中数据和命令,从中提取出来,转交给命令层使用,通过构建不同帧实现链路层数据间的传输转换。

4)命令控制层是将用户输入读写的起始和结束地址转换成命令帧的一系列命令值,无需CPU干预,直接依靠硬盘与传输设备之间进行数据传输。

在该控制器下,设计触发接口电路。

1.1.2 触发接口电路

FPGA虽然有多种接口标准,但是承载负载能力较差,因此,对于触发接口驱动电流应保持在100mA左右,才可满足设计要求。

主控单元在接收到触发信号后,需立即触发控制模块,并监测各模块运行状态。外触发信号包括按钮和外部触发信号,无论信号上升或下降都可随时触发延时,因此,在FPGA程序中采用自体检测状态机实现触发信号判断,其原理如图5所示。

图5 触发接口电路

为了防止数据丢失,设计稳态触发接口电路,其中S1为高电平时,C2释放电量,LM393比较器输出高电平;S1为低电平时,C2通过R2进行充电,LM393比较器反相端电位升高,如果C2电压比流经LM393比较器电压要高,那么LM393比较器旋转,输出低电平,进而达到触发目的。

1.1.3 高速流读写控制模块

一旦接口电路被触发,那么控制模块可进行高速流读写控制。高速流读写控制模块中最重要的部分是缓冲单元,在每次写入数据时,需重新对HALF_DEPTH进行定义。通过用户使用流读写操作,可完成存储数据快速读写,对于大批量数据流处理具有重要作用。

针对数据流读写,用户需将提供的数据写入模块之中,等待模块中数据量达到总容量1/2时,开始读取将要存储的数据,将读取后的数据存储到存储器之中;当控制器接收到用户读取信号时,直接将读取的数据写入存储器控制模块之中。如果信号有效,则表示数据中存在未读取数据,用户可再次读取;如果信号无效,则需继续等待。此时,用户需提供数据起始和终止地址以及请求信号,实现跨时钟域存储控制。

采用高速存储SATA2.0接口为存储介质设计控制器,可在物理层、链路层、传输层和命令控制层中进行数据间传输转换,最大程度发挥固态硬盘优势,在该控制器下,设计触发接口电路。触发接口驱动电流保持在100 mA左右,为防止数据丢失,添加LM393比较器,防止电平输出过高,达到高速流读写控制触发目的,由此完成模块结构设计。

1.2 模块控制流程

硬件采用Cyclone系列FPGA芯片,编译环境为QuartusⅡ集成开发环境,使用LPC2214芯片,设计模块功能。模块功能设计主要包括主控单元、延时控制单元和通信单元,其中主控单元采用C语言进行设计,该部分程序包括液晶显示子程序、键盘操作子程序、数据存储子程序和RS485通信子程序;延时控制单元包括输出控制子程序、测试子程序;通信单元包括主控单元分别与主机通信和延时控制单元与主机通信的协议。

数据存储器控制模块启动时,需先自体检查,如果需要参数设置,那么将该参数全部写入存储器之中;反之,如果不需要参数设置,则直接从数据器中读取即可。软件主流程设计如下所示:

1)模块初始化;

2)功能选择;

3)启动功能,触发外接电路,查看延时是否结束?如果结束,则需及时记录并存储;如果没有结束,则需显示状态数据;

4)功能设置,通道注册管理,按照通道进行参数设置,存储相关参数,并传送至延时控制单元;

5)通信功能负责直接与PC主机通信;

重复步骤3)、4)、5)完成软件主流程设计,根据该流程分别对FPGA时序和分时操作进行控制,以此实现数据高效存储。

1.2.1 FPGA时序控制

为了提高模块控制效率采用FPGA时序控制,根据插入寄存器减小延迟,使触发接口电路内部所达到的最高传输频率是由模块本身时频来决定,组合逻辑延时情况如图6所示。

图6 组合逻辑延时

图中T1表示时钟输出时间;T2表示组合逻辑延迟;T3表示网线延迟;T4表示时序逻辑建立时间;T5表示时钟信号偏斜。

数据每存储一次所经历的最小周期为:

T=T1+T2+T3+T4-T5

(1)

其中:T5=TCD1-TCD2,在触发接口电路设计中的网线延迟T3和时钟信号偏斜T5出现概率极低,因此可以忽略不计,由此得到最小周期为:

T=T1+T2+T4

(2)

在组合逻辑中插入寄存器使逻辑延迟,由2*25 ns降到25 ns,保证电路具有极高运行速率。

1.2.2 分时控制

为了有效实现过传输层完成帧的收发,需要模块进行分时控制。在FPGA时序控制条件下,逻辑延迟由2*25 ns降到25 ns,使编程在加载过程中地址和命令的下发时间更为精准,通过FPGA自动编程可完成数据存储。对命令层中控制器传输模式工作流程进行设计,也就是对数据读写模式进行控制,具体设计内容如下所示:

1)SATA2.0控制器接口命令为:

逻辑区块LBA地址X1——Xn&读/写命令&工作模式;

2)逻辑区块LBA读/写地址计算,需要的参数有:

寄存器同步带及内存存取组建帧数量、数据帧数量、内存存取初始化参数配置;

3)读/写控制状态机:

命令层收发帧命令:数据帧组建命令、寄存器组建命令、帧接收正确命令、寄存器接收命令、内存存取帧组建命令、协调帧组建命令;

4)寄存器同步带和寄存器设备反馈经过组建命令,开始初始化整理,获取初始化地址X1,调整数据帧,依次获取寄存器同步带逻辑区块LBA地址Xn和寄存器设备反馈地址Xn。

从SATA2.0控制器接口命令接口为出发点,经过命令层控制最终实现传输层完成帧的收发。

根据软件主流程对FPGA时序和分时操作进行控制,其中FPGA时序控制是在组合逻辑中插入寄存器使逻辑出现延迟,计算数据每存储一次所经历的最小周期,使逻辑延迟由2*25 ns降到25 ns,提高电路运行速率。通过FPGA自动编程对数据读写模式进行控制,采用分时操作方法,实现传输层完成帧的控制收发,由此完成模块软件功能设计。

2 测试与验证

通过 QuartusⅡ软件开发平台对基于FPGA的遥测系统数据存储器控制模块设计合理性进行验证,同时对控制后的实验结果通过软件编译进行分析。

实验参数界面设置如图7所示。

图7 实验参数界面设置

针对命令层接口各个信号进行标记分析,为实验研究提供支持,接口信号表如表1所示。

表1 接口信号表

通过观察信号选择命令,结合时序图对数据的读写情况进行分析。

数据读取与写入过程时序如图8所示。

图8 数据读写过程时序

数据读取时序:生成命令并输入有效命令,下达命令并输出有效命令,通过Data_ out输出数据,经过Data_ outv输出有效数据。

数据写入时序:生成命令并输入有效命令,下达命令并输出有效命令,通过Data_in输入数据,经过Data_ inv输入有效数据。

通过命令接口输入读命令,用户端通过启动读允许rd_en开始读取控制器缓存数据;而控制器通过写允许wt_allow暂停数据接收。根据数据读写过程时序,分析数据存储波形,如图9所示。

图9 数据存储波形图

图9所示为实际环境中数据存储波形图,测试输入为a0、a1、a2、a3、a4循环的一组数据,经过存储器存储后的数据为a0、a4、a8、a15、a27、a39、a48、a6...,说明该存储器中还有其它存储数据,但不影响整体数据存储都是以a种数据存储的标准。在该条件下,将传统模块与基于FPGA的遥测系统模块对数据存储器控制情况进行对比分析,结果如图10所示。

图10 两种模块数据存储器控制情对比分析结果

由图10可知:统一测试输入为a0、a1、a2、a3、a4循环的一组数据,经过传统模块控制后的数据存储结果为a0、b3、b6、a5、b35、b48、b52、a6...,而经过基于FPGA模块控制后的数据存储结果为a0、a5、a8、a15、a65、a32、a41、a6...。传统数据存储器控制模块中出现了除a以外的b种数据存储标准,而基于FPGA模块只有a种数据存储标准。由此说明,基于FPGA模块对数据存储器控制效果较为理想,为了精准分析该模块具有较高控制效果,对这两种模块控制效率进行对比分析,结果如表2所示。

表2 两种模块控制效率对比分析 %

由表2可知:在无噪声影响下,传统模块数据存储器控制效率维持在65%以上,而基于FPGA模块数据存储器控制效率都在95%以上,且当实验次数为9次时,传统模块数据存储器控制效率达到最高为74.3%,实验次数为1次时,传统模块数据存储器控制效率达到最高为98.7%。在有噪声影响下,传统模块数据存储器控制效率都低于45%,基于FPGA模块数据存储器控制效率仍然稳定在95%以上,当实验次数为5次时,传统模块数据存储器控制效率达到最低24.3%,实验次数为6次时,传统模块数据存储器控制效率达到最低为95.1%。详细分析在噪声影响下两种模块控制效率,对比结果如下所示:

在实验次数为1次时,基于FPGA模块比传统模块控制效率高62.1%;实验次数为2时,基于FPGA模块比传统模块控制效率高59.5%;在实验次数为3次时,基于FPGA模块比传统模块控制效率高59.6%;在实验次数为4次时,基于FPGA模块比传统模块控制效率高68.3%;实验次数为5时,基于FPGA模块比传统模块控制效率高72.1%;在实验次数为6次时,基于FPGA模块比传统模块控制效率高66.4%;实验次数为7时,基于FPGA模块比传统模块控制效率高57.6%;实验次数为8时,基于FPGA模块比传统模块控制效率高56.4%;实验次数为9时,基于FPGA模块比传统模块控制效率高60.7%;实验次数为10时,基于FPGA模块比传统模块控制效率高64.8%。因此,采用基于FPGA模块控制效率较高,说明该模块控制效果较好。

使用QuartusⅡ软件开发平台对输入的数据进行实验分析,结果与理论一致,说明了基于FPGA的遥测系统数据存储器控制模块设计的合理性。通过对FPGA资源占用率可看出,该系统符合一般系统设计标准。

3 总结

围绕基于FPGA的遥测系统展开的数据存储器控制模块设计,采用FPGA 芯片实现数据高效存储。根据软件工程原理以及硬件结构功能,划分各个模块,并对模块功能进行详细设计。利用QuartusⅡ编译环境对硬件、软件进行编译与调试,并得到一组实验数据。由实验结果可知,该模块具有较高控制效率,为数据高效存储提供支持。

虽然基于FPGA的遥测系统数据存储器控制模块具有良好控制效果,但在硬件数据压缩方便还需进一步研究,使数据存储器能够在多元化压缩条件下,降低芯片逻辑数量,提高整体可靠性。在航天和医疗领域,进行数据存储时,需先对数据进行压缩再存储,进一步减少电路体积,使系统拥有更广阔应用前景。

猜你喜欢

寄存器存储器时序
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
静态随机存储器在轨自检算法
你不能把整个春天都搬到冬天来
Lite寄存器模型的设计与实现
常用电子测速法在某数字信号处理器中的应用*
移位寄存器及算术运算应用
存储器——安格尔(墨西哥)▲
Buffalo推出四硬盘网络存储器 主打Soho一族