O 引言
面对不同的应用场景,原始采样数据可能包含多种不同样式的信号,这给传统基于连续存储方式的数据缓存系统带来了挑战。除此之外,由于对不同信号的处理往往需要不同的数据帧结构,缓存系统的设计需要保存原始采样数据并能够实现数据的重组帧,以满足不同处理需求。针对以上问题,本文提出了一种基于文件结构存储方式的数据缓存系统,该系统利用FPGA设计结构化状态机实现对SDRAM的控制,完成了对数据的缓存与重组帧,具有速度快、可靠性高、灵活性强和功能可扩展等优点。
1 系统总体设计
在系统设计上,采样的数据都会采用数据帧结构,一般的设计大多是基于帧头加数据的格式。在帧头中包含一些数据的特征信息,其中最常见的有数据到达时间和数据结束时间。
传统缓存系统的设计一般是采用帧头加数据,帧头加数据的连续存储方式,系统发读命令将帧头和数据连续读出送往后端,后端处理系统通过识别帧头信息判断该数据帧的长度,然后把该长度的数据做进一步处理。这种设计在单一的信号环境下具有结构简单,控制容易的优点,但是它仅适应于单一处理模式的系统,扩展性和移植性较差。
面对不同的应用场景,传统设计已经不能满足不同的处理需求,因为单次采样的原始数据可能包含多种不同信号样式的信号,对不同信号的处理往往也需要不同的数据帧结构,如不同的抽取,不同的数据帧长等。而连续存储结构很难在缓存系统中实现对数据的灵活操作及数据的重组帧,只能把重组帧任务放在后端系统来处理,加重了后端系统的负担。基于此,本文提出了一种基于文件结构的存储方式,并且在缓存系统中实现了数据重组帧的任务,减轻了后端的负担。
整个系统的设计以FPGA为核心控制器来组织工作,它由系统总控System Master与SDRAM驱动控制器SDRAM Controller组成。System Mas-ter接收高层控制指令,向SDRAM Controller发出命令,SDRAM Controller将命令翻译为底层SDRAM芯片的读写指令字精确控制其完成读写操作。系统主要解决的问题是基于文件结构的数据存储,数据重组帧和数据事后读取。系统整体框图如图1所示。
2 系统工作原理
2.1 文件结构的存储方式
所谓文件结构指的是,将帧头与其所对应的数据分区存储,在存储时将存储数据的首地址添加到帧头信息中,在读出时,先读取帧头找到数据的首地址,然后加上系统给定的偏移地址算出读取的起始地址,从该地址开始顺序读取要求长度(小于等于帧长)的数据,在送往后端系统时更新帧头信息,后端系统收到数据无需做预处理直接进行计算即可。图2是2种存储结构的比较。
基于文件结构的存储方式便于对数据进行管理与操作,功能扩展容易。例如有些处理只对数据的帧头信息进行相关操作,基于文件结构的存储模式可以很方便地支持这种工作模式,只需对缓存介质的帧头区进行操作,而传统的设计则很难满足这种需求,因此新的设计极大地提高了系统的灵活性。
2.2 数据重组帧的实现
在设计上,用SDRAM的BANK0(BANK地址“00")和BANKl(BANK地址“01”)存储原始数据,BANK2(BANK地址“10”)存储要送往后端计算的数据,BANK3(BANK地址“11”)存储数据的帧头信息。系统在接收到数据重组帧命令后,按照要求抽取,帧数,帧长和帧间隔从低BANK区读取原始数据送入数据重组帧模块形成新的数据帧结构,然后将新的数据帧结构按照文件结构存储到高BANK区中。其实现框图如图3所示。
作者:于跃忠 黄 振 林孝康 来源:现代电子技术