基于LVDS的高速数据存储系统优化设计

2018-07-03 00:45程洪涛赵冬青储成群袁小康杨文豪中北大学仪器科学与动态测试教育部重点实验室太原03005中国电子科技集团公司第五十八研究所江苏无锡4035
实验室研究与探索 2018年5期
关键词:高速数据存储系统存储器

程洪涛, 赵冬青, 储成群, 袁小康, 杨文豪(. 中北大学 仪器科学与动态测试教育部重点实验室,太原 03005; . 中国电子科技集团公司 第五十八研究所,江苏 无锡 4035)

0 引 言

遥测数据存储器是遥测系统的重要组成部分,其功能是实时记录飞行器发射、飞行过程中的各种状态参数,为飞行器的性能分析验证提供数据支持[1,2]。随着飞行器向着智能化的方向发展,飞行器飞行过程中需要采集存储的参数越来越多,对存储系统实时数据存储速率及容量的要求越来越高;传统的单片FLASH写入速率较低不能匹配数据传输速率[3];传统的并行数据回收接口,回收读数速率慢,数据量较大时,回收需要耗费大量的时间。因此,需要对存储系统进行综合优化设计。

1 总体方案设计

在某次工程应用中要求存储系统能够正确、实时记录采集系统发送来的44.65 MB/s的高速有效LVDS数据,存储容量不低于8 GB,存储系统在完成8 GB数据记录后能够自动停止记录。

为满足工程需要设计了以FPGA作为控制核心,LVDS作为高速数据接口,NAND FLASH为存储介质的高速存储系统[4];存储系统采用模块化设计思想,按功能分为高速数据存储模块、数据接口模块以及配置模块;数据存储模块用以接收存储数据采集系统发送来的高速LVDS数据;数据回收读数接口模块能够与地面测试设备通信,实现存储系统的功能测试及数据回收读数;配置模块包括电源、晶振、PROM等,保障系统能够正常、可靠地工作。整体设计方案见图1。

图1 数据存储系统设计框图

2 LVDS接口设计

数据回收读数接口常采用简单的并行传输方式进行数据回收,由于并行传输易受到外界干扰及信号间的串扰影响,并行接口回收读数线缆长度仅为几十cm,数据回收速率仅为2MByte/s,对于大容量存储系统采用该低速的并行接口,将会耗费数小时才能完成数据回收工作,因传输距离不足在某些场合进行数据回收读数十分不便[5],为此采用LVDS接口代替传统的并行接口。LVDS是一种低压差分信号传输技术,其逻辑状态的变换电压值仅有350 mV,能够快速改变传输状态,有着较大的传输带宽;对于LVDS数据的发送与接收选用SN65LV1023和SN65LV1224驱动芯片;为满足数据远程传输的需要,减少信号在传输过程中的损耗,保障传输信号的完整性,在硬件电路上采用了为解决LVDS传输距离的专用芯片高速驱动器CLC001和数据均衡器CLC012,经过驱动均衡后保证了信号的完整性[6],传输距离可以增加至百米,数据发送端与数据接收端通过屏蔽双绞线进行连接;接收端和发送端电路设计原理图如图2所示。其中,电容C1和C2的作用是在LVDS串行发送芯片与电缆驱动芯片之间进行AC耦合;R2=1.5 kΩ电阻用于调整驱动芯片CLC001输出信号电压为1.0V;电阻R7和R8的精度为1%,阻值为100 Ω,用于改善电缆均衡器输入端的电感效应以及避免上升或下降过快产生振铃现象;信号接收端R13=100 Ω的匹配电阻其作用是防止因阻值不匹配造成的信号反射[7]。

图2 LVDS接口收发原理图

3 存储速率优化设计

设计采用NAND FLASH K9WBG08U1M芯片作为存储介质,单片容量为4GB,其数据输入端口及命令、地址输入端口均由外部的8个I/O引脚实现,使用CLE和ALE信号作为地址与命令的区分信号,完成地址、命令和数据的分时复用。K9WBG08U1M芯片内部集成了两个独立的存储空间chip1和chip2,通过CE1和CE2信号进行选通控制,1个chip内包含8 192个block,分为4个平面plan0、plan1、plan2、plan3,内部结构如图3所示[8];NAND FLASH是基于页读写,块擦除的工作模式,进行数据写入时首先拉高CLE信号将外部的8个I/O锁定为命令输入,写入编程命令“80h”,然后拉低CLE信号,同时拉高ALE信号将外部IO锁定地址输入,写入5个周期的地址数据,接着拉低CLE信号,写入数据,最后再切换为命令输入写入确认命令“10 h”完成数据加载过程,数据经过自动编程过程后将数据写入到FLASH内;其中编程过程中需要等待一个较长的时间,页编程典型时间为200 μs,最大为700 μs,且该时间内不响应外部指令,页编程时间的存在限制了数据写入的速率[9]。

根据任务需求可知,若想准确接收存储采集系统发送来的LVDS数据,存储系统的最小存储速率不能低于采集系统的数据传输速率;较长的页编程时间是制约写入速率的关键因素,页编程时间为芯片的固有特性不可以减小和消除,设计采用双平面交替编程、流水线式操作思想来实现时间复用,如图3所示。将NAND FLASH 2个chip内的8个pane分为4组,其中:chip1中的plan0和plan、plan2和plan3;chip2中的plane0和plane1、plane2和plane3为1组,选择两片plane同时进行读写操作,提高数据的写入速率。

图3 NAND FLASH 内部结构图

双平面交替编程的过程如图4所示,利用芯片内部不同平面可以单独进行操作的特性,连续循环对各组进行数据加载和页编程操作,大幅度提高了单片Flash的存储速率[10-12]。当第1组加载完成后,页编程的最大时间约为700 μs,此时对2、3、4组加载,加载时间大约为{2×[(4×1 024+7)×clk_period]+t_DBSY}×3=823.2 μs>700 μs其中,clkperiod=1/30 MB/s为读写时钟周期,tDBSY=1 μs为等待时间,由此可知完成3组数据加载需要的时间大于页编程的最大时间,即第4组完成加载时,第1组一定完成页编程操作,可以实现4组连续循环加载。在此操作方式下,单片FLASH的最大数据写入速率为(4 096×8 Byte)/{2×[(4×1 024+7)×clk_period+t_DBSY]×4}=29.85 MB/s[13]存储系统采用双片容量为4 GB的FLASH,通过扩展两片FLASH的数据存储速率为,能够满足正确接收存储采集系统发送来的高速LVDS数据。

图4 双平面交叉编程操作流程图

4 降频缓存设计

为保证存储器接收数据的完整性,实现数据的可靠接收存储,使用FPGA内部的双口RAM构建一个2级ping-pang缓存结构对数据进行缓存,采用数据分流的思想降低写入FLASH端口的数据速率[14-15]。设计采用了2级缓存结构,以8 KB的双口RAM作为1级缓存,以2个4 KB的RAM构建的ping-pang结构作为2级缓存;FPGA接收到采集系统发送来的高速数据后在60 MB的时钟下写入1级的缓存;缓存切换实时监测1级缓存的半满信号,如果1级缓存内的数据量大于6144 Byte,控制模块从1级缓存内读出4KByted的数据交替写入后级的ping-pang缓存内,FLASH控制模块在30 MB的时钟下依次从ping-pang缓存内读出数据并交替写入FLASH_A和FLASH_B。通过2级ping-pang降频缓存设计可有效提高写入数据的完整性,避免复杂的时序控制导致存储数据发生位置错乱的情况,1级、2级缓存切换时序如图5所示。

图5 缓存切换控制时序图

5 命令接收的可靠性优化设计

存储器能够准确接收综合控制装置发送的指令信息是存储器能够正确工作的关键,避免存储器因外界干扰进入错误的工作状态需要对命令方式做可靠性优化设计。传统的命令识别采用三线制组合命令解码来实现[16],三线制组合解码实现命令识别的方式可靠性并不高,在工作环境中因强磁场等干扰使命令线上高低电平发生变化,势必会导致存储器接收到错误指令,造成数据记录失败。设计提出了采用命令与数据组合识别的方式实现指令接收,在某一命令码下与数据线上出现特定数据时才会执行相应操作,记录命令解码如图6所示,只有当命令线上高低电平连续为000、001、010、011、100的同时,数据上为连续的76h、85h、41h、14h、90h才认为是记录命令。通过该复合指令识别方式可以大大降低存储系统对命令的误判而进入错误的工作方式;存储器接收成功命令后会进行相应操作进入特定的工作模式,与此同时,存储系统将会以串行的通信方式向外反馈当前的工作模式,作为判断命令发送成功的判断依据。

图6 命令识别时序

6 试验验证

对存储系统进行优化设计后,将系统连接到地面的综合测试设备上进行测试,测试设备以50MB/s的数据传输速率向存储系统发送自加数,存储器存储8GByte数据后,使用长度为5 m的屏蔽双绞线缆通过LVDS接口以5MByte/s的速率进行数据回收读数。读取的部分数据如图7所示,EB90为数据帧结束标志,EB 90前面的4个Byte为数据帧计数;对回收的数据进行数据处理分析,对数据帧格式、帧计数连续性及误码进行校验,经多次存储、读取验证,数据正确无误,无误码、丢帧现象存在,存储系统工作稳定可靠。

图7 部分回读数据示例

7 结 语

设计采用双平面交替编程、流水线式操作方法提高存储系统的数据写入速率;改进数据回收读数接口,解决数据回收读数传输距离及读数速率的不足,节省回收读数时间;在时序上对命令接收进行了可靠性优化,采用2级ping-pang结构对数据进行缓存保证数据写入时序完整性;优化后存储器工作稳定、可靠,数据存储速率可以达到60 MByte/s。

参考文献(References):

[1] 武永鹏. 动力学参数测量装置的研究与实现[D].太原:中北大学,2014.

[2] 焦新泉,袁 强,韩朝辉,等. 一种高清视频图像的实时压缩与存储设计[J]. 实验室研究与探索,2016,35(7):117-119,138.

[3] 魏 敏,刘文怡,王金陵. 基于交叉双平面技术的图像采集存储系统[J]. 电视技术,2013,37(15):63-66,81.

[4] 赵盼盼,孟令军,文 波,等. 箭载图像压缩与存储系统设计与实现[J]. 实验室研究与探索,2015,34(12):92-96.

[5] 赵阳刚,郭 涛,黄玉岗. 基于FPGA和LVDS的弹载数据回读系统设计[J]. 电子器件,2017,40(1):113-117.

[6] 鄢玲玲,文 丰,李辉景. 一种基于LVDS高速传输的接口优化设计[J]. 电测与仪表,2016(20):80-83.

[7] 李治华,赵冬青,甄国涌,等. 高可靠性远程数据传输系统设计[J]. 电子器件,2017,40(2):490-494.

[8] 吴 凡. 基于FPGA和NAND Flash的嵌入式存储系统设计[J]. 电子科技,2016,29(3):97-101.

[9] 梁永刚,崔永俊,郇 弢. 基于NAND型FLASH的双备份固态存储系统[J]. 科学技术与工程,2013,13(26):7675-7682.

[10] 徐永刚. 基于NAND Flash的嵌入式图像记录技术[D].北京:中国科学院研究生院(光电技术研究所),2013.

[11] 张凯华,任勇峰,贾兴中. 基于FPGA的高速数据存储系统优化设计[J]. 电子技术应用,2014,40(9):37-40.

[12] 彭 军. 基于NAND Flash的多路并行存储系统的研究与实现[D]. 长沙:湖南大学,2013.

[13] 梁永刚,张会新. 基于LVDS的高速远程图像采集存储系统[J]. 科学技术与工程,2013,13(20):6001-6006.

[14] 储成群. 基于LVDS接口的高速数据记录器的设计[D]. 太原:中北大学,2011.

[15] 刘东海,任勇峰,储成君. 基于FPGA控制的NAND Flash存储设计[J]. 科学技术与工程,2013,13(34):10349-10353.

[16] 甄国涌,王淑琴,李辉景. 弹载记录器存储模块优化设计与实现[J]. 计算机测量与控制,2014,22(12):4098-4100.

猜你喜欢
高速数据存储系统存储器
静态随机存储器在轨自检算法
分布式存储系统在企业档案管理中的应用
天河超算存储系统在美创佳绩
基于AD9250的高速数据接口设计
PCI-e高速数据采集卡的驱动与上位机软件设计
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统
一种基于STM32的具有断电保护机制的采集存储系统设计
基于AD7891的浮空器高速数据采集系统设计
存储器——安格尔(墨西哥)▲
基于Nand Flash的高速存储器结构设计