摘要:针对当前遥感系统存储器早期控制模块存在控制效率低的问题,提出了基干
FPGA的谣测系统数据存储器控制模块设计;根据模块总体设计方案,设计模块结构和功能;其中模块结构是由自体测试接口模块、低速读写控制模块、高速流读写控制模块组成的,以
SATA2.0 接口为存储介质设计控制器,构建不同帧,进行数据间传输转换;设计稳态触发接口电路,达到高速流读写控制触发目的;根据软件主流程,在组合逻辑中插入寄存器使逻辑延迟,实现 FPGA时序控制; 采用分时操作方法,对命令层中控制器读写模式进行控制,实现传输层完成帧的控制收发;由实验结果可知,该模块最高控制效率优于传统模块,为数据高效存储提供支持。
由于遥测系统数据信息量较大,在存储过程中所占用的空间也相对较大,为了减少数据传输过程中所耗费的时间和所占用的空间,尽可能在有限信道内对数据进行存储,能够有效降低功率和带宽要求。数据存储目的就是数据能够更高效传输,节省存储空间,因此对于数据存储器控制模块设计在工程上具有很大应用前景。早期采用分离式、小规模
芯片搭建的控制模块,结构复杂,可靠性较差,随着大规模器件的出现,早期控制模块受到噪声影响已经无法满足数据高效存储需求。因此,在遥测技术背景下,提出了基于 FPGA 的遥测系统数据存储器控制模块设计,具有实时高速大容量存储功能,能够及时记录数据在存储过程中状态参数,采用多个存储单元并行存储,能够更好匹配数据传输,并提高存储控制速率,经过此控制模块后,数据量减少,传输频带也相对减少,有效提高了数据存储效率。
1、控制模块方案总体设计
在实际环境中,要求数据存储器控制模块,低电压差分信号接口的数据传输速率低于 60 MB/S,并保证数据存储器能够可靠传输数据,存储容量不低于10 GB。
模块总体设计框图如图1所示。
由图1可知∶FPGA芯片的功能是辅助数字缓冲单元、数字存储单元和数据位数转换单元模块实现数据存储器控制。其通过与外部控制单元相连接,能够缓冲存储后的编码数据。在数据读取模块,将存储后的数据通过接口电路显示在电脑中进行读取,由此获取被高效控制后的数据。
在模块总体设计框图下,设计实现方案∶输入数字信号,添加数据缓冲模块降低数据流速,并缓冲输入数字信号。将数据存储编码后,输出数据编码流,经过数据位数转换单元,将数据编码流转换为数据形式,流向外部控制单元。经过接口电路将存储后的数据读取到电脑之中,经过模块软件功能设计,使数据存储不会受到噪声干扰,保证数据存储高效性。
1.1 控制模块结构
数据存储器控制模块总体结构设计如图 2所示。
由图2可知,将控制模块结构分为三部分,分别是自体测试接口模块、低速读写控制模块、高速流读写控制模块。其中自体测试接口模块是将随机数发生器产生的数据写入控制模块之中,并将读出与写入数据进行对比,实现自体测试,如果测试结果显示正常,则说明控制模块有效果。反之,如果测试结果显示错误,则说明控制模块无效果;低速读写控制模块可直接写入读取控制模块指定地址的单个数据;高速流读写控制模块可大批量写入读取控制模块任意地址的数据。
1.1.1 存储器命令控制
高速大容量数据存储器控制系统是以 SATA2.0接口为存储介质设计的控制器,采用
MSM6290 高速存储芯片作为存储介质,能够大大缩短寻道时间。SATA2.0控制器工作性能是由物理层、链路层、传出层和命令控制层决定的,当数据从物理层数据收发到命令层过程中,每一层都是由自体检测状态机进行控制的9。存储器命令控制界面设计如图3所示。
根据存储器命令控制界面,将采集命令与数据分层,可加快控制部分速度,并提高数据传输稳定性,使数据在极短时间内完成原语交互、信息处理和命令生成,最大程度发挥固态硬盘优势。
1)物理层为控制器最底层,其性能好坏决定了数据传输质量,与链路层模块之间使用原语级别通讯。
2)链路层是数据传输的一个通路,负责原语的收发控制,以此保证比特一级数据到帧一级数据能够成功转变。 链路层例化接口示意图如图4所示。
在每一帧收发状态链路层控制模块下,启动相应收发控制状态机,使原语不受到限制完成交互行为,同时启动扰码校验,使整个传输工作完成控制后,并重新返回给控制模块,以此等待新传输命令。
3)传输层负责接收不同帧中数据和命令,从中提取出来,转交给命令层使用,通过构建不同帧实现链路层数据间的传输转换。
4)命令控制层是将用户输入读写的起始和结束地址转换成命令帧的一系列命令值,无需 CPU 干预,直接依靠硬盘与传输设备之间进行数据传输。
在该控制器下,设计触发接口电路。
1.1.2 触发接口电路
FPGA 虽然有多种接口标准,但是承载负载能力较差,因此,对于触发接口驱动电流应保持在 100mA左右,才可满足设计要求。
主控单元在接收到触发信号后,需立即触发控制模块,并监测各模块运行状态。外触发信号包括按钮和外部触发信号,无论信号上升或下降都可随时触发延时,因此,在FPGA程序中采用自体检测状态机实现触发信号判断,其原理如图 5所示。
为了防止数据丢失,设计稳态触发接口电路,其中 S1 为高电平时,C2 释放电量,LM393 比较器输出高电平;S1 为低电平时,C2通过 R2进行充电,LM393 比较器反相端电位升高,如果C2 电压比流经 LM393 比较器电压要高,那么 LM393 比较器旋转,输出低电平,进而达到触发目的。
1.1.3 高速流读写控制模块
一旦接口电路被触发,那么控制模块可进行高速流读写控制。高速流读写控制模块中最重要的部分是缓冲单元,在每次写入数据时,需重新对 HALF_DEPTH进行定义。通过用户使用流读写操作,可完成存储数据快速读写,对于大批量数据流处理具有重要作用。
针对数据流读写,用户需将提供的数据写入模块之中,等待模块中数据量达到总容量 1/2时,开始读取将要存储的数据,将读取后的数据存储到存储器之中;当控制器接收到用户读取信号时,直接将读取的数据写入存储 器控制模块之中。如果信号有效,则表示数据中存在未读取数据,用户可再次读取;如果信号无效,则需继续等待。此时,用户需提供数据起始和终止地址以及请求信号,实现跨时钟域存储控制。
采用高速存储 SATA2.0接口为存储介质设计控制器,可在物理层、链路层、传输层和命令控制层中进行数据间传输转换,最大程度发挥固态硬盘优势,在该控制器下,设计触发接口电路。触发接口驱动电流保持在 100 mA左右,为防止数据丢失,添加LM393 比较器,防止电平输出过高,达到高速流读写控制触发目的,由此完成模块结构设计。
更多详细内容请下载附件查看