引 言
我国遥测记录设备经历了倍密度磁带机和旋转头磁带机两代产品,目前仍在使用。从记录原理上说他们皆属于模拟记录设备,在长期使用当中,已暴露出诸多缺陷:
(1)磁带耗材依赖进口,价格昂贵且记录容量小、重复使用率低、数据保存时间短。
(2)磁头和机械运带机构属精密加工器件,调校过程相当复杂,长期使用磨损严重,记录性能显著恶化,给设备维护带来极大不便。
随着计算机硬盘制造技术的飞速发展和数字存储技术的问世及不断应用,采用大容量高速硬盘记录模拟遥测信号的数字化记录设备DRS(Digital Record System)[1]已经出现,并成为遥测记录设备的换代产品,但设计上存在不足:
(1)数字化程度低:记录信号中心频率只有2.1 MHz,不能对左右旋圆极化70 MHz检前信号直接记录,要依赖额外的模拟下变频器作转换处理,不适应对全新的数字综合基带遥外测设备的记录要求。
(2)扩展性差:由于采用专用的数据传输通道,带宽有限(16 b)且固定,故一旦要增加记录信号的路数,只能靠增加硬件通道数来增加带宽,相应地要增加控制驱动记录的板卡数量,并导致输入输
出接口关系发生变化。
(3)单硬盘工作模式可靠性难以保证,一旦硬盘损坏,整个系统瘫痪,已记录数据无法恢复。 (4)未能利用国际通行的技术规范和标准,不利于产品升级换代,从长远看难以形成新的业内标准。
以上不足说明DRS在初的体系结构设计上存在根本性的缺陷,若想彻底克服,必须重新改进体系结构设计,尽量采用当前国内外在数字存储方面先进、通行的技术,因此RAID(廉价冗余磁盘阵列)技术为我们提供了新的设计思路和理念。作者经过深入研究论证和大量的前期试验,终于设计并实现了以RAID阵列为的全数字遥测记录系统RDRS。
2 系统设计
2.1整机体系结构设计
RAID标准提供了数字存储方面全方位的解决方案,其中RAID5采用具有分布式奇偶校验的磁盘物理条带(stripings)来跨越单个磁盘平均分配数据和冗余校验信息[2],在保证数据安全的前提下,可获得极高的数据吞吐率和磁盘利用率,尤其适合高速连续大块数据的传输。综合考虑遥测记录的极高安全性、实时性、超大存储空间和更多的记录通道,阵列模组选用以5块容量各为100 GB的SA TA硬盘组成RAlD5标准,用高性能的ARECA-1120 SA-TA RAID控制卡作驱动,RAID卡采用OEM产品,可减少硬件开发工作量。之所以未选用更高性能的SCSI硬盘作模组是由于SCSI硬盘数据接口过于宽大(50芯),而SATA硬盘是目前市场上渐趋流行的串行ATA接口的新一代高性能硬盘,其外部数据传输率已达300 MB/s,接近SCSI硬盘(320 MB/s),但其接口电缆只有8芯,布线十分方便灵活,非常适合组成阵列模组,可节省机箱空间,便于快速更换。整机体系结构如图1所示。
他以64位扩展的PCI总线作为硬件开发平台,可提供528 Mb/s的高数据传输带宽,而CPU仍采用高性能的32位P4(2.4 GHz)处理器,通过主桥实现总线缓冲来直接映射到64位总线地址空间。硬件部分独立开发了通用性和扩展性非常强的基于PCI总线的中频和视频采集卡。软件环境采用基于RT-Linux 3.1实时操作系统内核,在RedHat 8.0(内核版本 Linux 2.4.18)系统平台下开发,采用标准C语言编制底层驱动及用户应用程序。在 Kylix开发环境下,用C++编写X-Windows下的用户界面程序。由于系统规定的录放速度高达500 Mb/s,PCI视频采集卡对系统中断响应时间的要求就非常高,为此专门选用了基于Linux的实时操作系统RT-Linux平台,RT-Linux可在Linux内核源代码的基础上通过修改部分系统程序代码来改善Linux的实时性,修改后的Linux(即RT-Linux)能快速响应硬件中断(中断响应时间小于15 μs)[3],满足了系统的实时性要求,为高速采集而不丢数据提供保证。同时提供了一套标准接口函数,以实现RT-Linux进程与普通Linux进程间的数据传输及共享。由于系统记录的数据文件有时高达几十GB甚至上百GB的容量,用普通的文件系统在RT-Linux下已不能满足容量要求,为此移植了XFS文件系统来管理采集的文件。XFS是Silicon Graphics公司开发的一种全新的高性能64位文件系统,该文件系统既扩展了分区及文件容量的限制(为9 000 TB),又提高了文件存储处理速度。
2.2系统硬件设计
硬件结构设计如图2所示。其中主要设计部件为中频和视频采集卡,他分为记录电路和回放电路两部分,数据记录时,70 MHz中频信号首先经声表面波滤波器滤除带外信号,再经固定增益和AGC电路将信号强度控制在A/D采样的理想电平范围内,用高速ADC(40 MSPS)对70 MHz信号直接采样后送人中频采集卡的FPGA,经数字下变频将中频带通信号频谱向下搬移至基带,形成I,Q两路正交的基带信号,并CIC滤波器进行抽样率变换,得到多路合流的视频数字群信号,通过LVDS高速接口送人视频采集卡的FPGA,完成数据打包、缓冲和时序控制,当数据填满一个数据块大小,视频采集卡向系统发中断,请求数据传输,系统应答后,以DMA方式通过64位PCI总线发送到系统内存,内存中数据累积到一定数据量,通过PCI总线将数据块写入RAID卡并分发到磁盘阵列中。回放过程是记录的逆过程,电路上的主要差别是视频数字群信号要分别通过数字移相网络和数字群延迟网络恢复I,Q两路正交信号并经共同的DDS时钟控制分频的数字本振NCO进行数字上变频,完成基带频谱向上搬移,后经高速DAC得到70 MHz中频模拟信号完成回放过程。
2.3 系统软件设计
系统软件的主要作用就是与配套的硬件相互协调工作完成中频检前信号实时记录和事后回放。他分成视频采集卡驱动模块、主控进程、记录/回放进程和用户界面。其中视频采集卡驱动模块作为驱动程序以模块的形式插入内核空间运行,由于用户空间进程不能直接访问底层硬件设备,所以驱动模块是上层应用程序和设备物理层之间的桥梁,上层应用程序不必关心硬件设备的具体信息,即可通过RT-Linux的指令FIFO完成对视频采集卡的控制。驱动模块负责完成对视频采集卡的设置、控制和状态采集,以及定时读取视频采集卡内的B码值和锁定标志。上层应用程序也可通过指令FIFO来设置视频采集卡内的B码值。视频数据采集卡模块和上层应用之间通过RT-Linux的共享内存来共享系统的关键性状态、控制数据,实现内核态和用户态程序的数据共享。主控进程为用户空间的普通Linux进程,他负责完成系统的初始化、维护和指令传输等任务。完成用户空间程序到内核空间程序间的指令传递。他多处于等待状态,当接收到来自用户(X-Window窗口界面或文本调试界面)的指令(通过信号量实现)时,经过FIFO发给内核进程,实现指令的传递。同时当他发送启动采集/回放命令后,会负责创建独立的读/写盘进程,来实现数据的硬盘记录和回放。主控进程维护了一个初始的系统配置参数文件,系统停止运行后,他会保存系统的当前状态,在系统再次启动时用于初始化系统参数,同时主控进程在每次启动时会对盘阵上的任务文件进行修复,以保证因停电等意外故障导致的关机发生时,对没有结束的任务文件进行修复。记录/回放进程被主控进程创建后,便不断地在硬盘和采集缓存间(MBUFF)传输数据,记录时只要采集缓存(MBUFF)有数据,他就将数据写入硬盘阵列中。而回放时他首先将回放的数据填满采集缓存(MBUFF),然后当数据被DMA传送完成后,再次读取硬盘阵列中数据,将空出的采集缓存(MBUFF)填满。当记录/回放停止后,该进程自动结束。用户界面是基于X-window的用户进程。他以窗口的形式提供给用户一可视的操控平台,实时显示系统状态、任务内容信息和盘阵空间使用状态,接受用户如下指令:B码设置/显示、开始记录、盘阵上任务文件的回放、改名、转储、删除及数据正确性校验等管理性功能。当用户启动开始采集记录时,控制命令发给主控进程,主控进程建立一个写盘进程,同时将采集命令通过指令FIFO发给底层的视频采集卡,使视频采集设备开始采集数据。视频采集设备会连续的采集输入的中频检前信号流数据到的视频采集卡内的乒乓缓存内,当乒乓缓存缓存满时,他会切换到另一片乒乓缓存继续采集数据,同时会产生一个数据就绪中断,触发系统的中断服务程序。中断服务程序启动DMA传输将乒乓缓存内的数据依次传输到采集缓存(MBUFF)内,并调整下存储数据的采集缓存(MBUFF)指针,使采集数据在这里暂存且不被覆盖。而写盘进程实时的检测采集缓存(MBUFF)内是否有新采集的数据,如果有会马上写入的硬盘阵列中,512 MB的采集缓存(MBUFF),保证了采集数据未被覆盖前既被写入到盘阵。同样的,当回放时,预先将盘上的回放数据读到缓存内,再发送回放命令,这样即使读盘速度暂时降低,也可以保证缓存内有足够的回放数据被输出到视频采集卡,保证了回放的连续性。
3 结 语
为了检验系统性能和工作可靠性,研制样机进行了累计1 000 h的环境应力试验(包括测试时间)和100 h的加速寿命试验,表现均稳定可靠,记录数据满足各项指标。同时还反复进行了记录过程磁盘阵列单盘掉电数据恢复测试,结果令人满意,充分验证了RAID技术用于数字记录的优越性。
[1]. PCI datasheet https://www.dzsc.com/datasheet/PCI_1201469.html.
[2]. LVDS datasheet https://www.dzsc.com/datasheet/LVDS_457917.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。