史磊 于骏申
(中国船舶重工集团公司第七二六研究所 上海市 201108)
声纳系统数据贯穿于声纳发射机、接收机及信号处理机的各个环节,是反映声纳系统各项技术指标的直接载体,这些数据需要进行传输、存储和事后分析处理。尤其针对一些特定区域,声纳系统工作产生的数据更是弥足珍贵,所以,有必要对声纳系统数据进行有效管理。对于单部声纳系统,配置对应的数据管理设备可满足对声纳系统数据的管理,但是,随着声纳系统性能指标的提升,其规模也日趋庞大,已发展成为分布式声纳系统协同工作的常规工作模式,若仍沿用单部声纳系统的数据管理方案,即为分布式声纳系统下属的各子设备均配置对应的数据管理设备,一方面增加了系统设计的成本,另一方面无疑又扩大了声纳系统的冗余规模,因此,对于分布式声纳系统的数据管理也提出了新的设计需求。本文设计的一种基于分布式声纳系统数据管理方案,涉及声纳数据全周期管理中的标记、记录、存储、清洗、回放、校验等多个环节,设计基于现场可编程逻辑门阵列FPGA 的数据管理接口模块,结合数据管理设备,完成分布式声纳系统数据的全周期管理,它的实现可在不增加声纳系统冗余规模的基础上,有效降低系统的设计成本,满足分布式声纳系统数据通信的高速性、可靠性要求。
分布式声纳系统实际工作时,为了规避水下声信号不相兼容对探测性能的负面影响,通常采用分时工作模式,即各声纳基阵按照工作时序,依次顺序实时工作,通过数据管理接口模块的协调调度,各声纳工作过程产生的数据便可依次顺序录入数据管理设备。其总体设计如图1 所示。
图1: 分布式声纳系统数据管理方案总体设计
对于各声纳基阵产生的原始数据,在进入数据管理设备前,依据实际使用需要,有必要对数据做标记、清洗、校验等处理,诸如对子声纳设备的编号、数据实时使用信息等标记,数据复现时清洗各附加标记。此外,声纳系统工作存在的干扰中,海面和海底的混响将目标回波淹没而难以检测到,而由声波的多径传播、传播中介质的不均匀性、目标的高速运动以及虚源的干涉等引起的回波的起伏效应,更使目标的检测变得困难,因此在数据存储前,还需进行数据误码率的校验及数据传输时序的控制。通过设计基于FPGA 的数据管理接口模块上述数据相关操作,抽象出分布式声纳系统数据管理流程图2 所示。
如图2 所示,分布式声纳系统数据均由数据管理接口模块协调调度,通过数据缓存FIFO 对数据的标记、记录、存储、清洗、回放、延迟等一系列操作处理,实现对系统数据的精准有效管理。
图2: 分布式声纳数据管理流程图
当今,嵌入式系统的复杂程度越来越高,数据通信量不断增加,总线类型也不在单一,开发过程中需要对各种总线的数据进行记录,事后分析数据得出系统的性能指标,甚至需要在系统出现故障时,可以将记录的数据回放到总线上,重现故障,方便快速定位故障。因此,解决数据的记录与回放成为关键问题。分布式声纳系统工作产生的数据以拟定好的数据帧格式在不同设备总线上传输,数据帧在硬件中容易实现,能节省软件的处理时间。数据管理接口模块依次对数据帧进行校验、标记、记录、清洗、回放等操作,完成数据帧的实时检索处理功能。
循环校验码(CRC)在数据通信和计算机通信中有着广泛的应用,它具有编码和解码方法简单,检错和纠错能力强等特点,可以显著地提高系统的检错能力。在通信系统的数据传输过程中,由于信道中各种复杂因素的影响,往往使传输的信号受到干扰,造成误码的出现。接收方为了检查所接收的数据是否有误码,可采用多种检测方法。差错控制编码是目前数据传输过程中普遍采用的一种在提高数据通信可靠性的方法。通用的CRC 串行编码原理就可由n 个D 触发器和若干个异或门电路结构来实现,如图3 所示。
图3: 通用CRC 串行编码原理图
CRC-32 校验码的产生就是由上一个并行输入的8bit 数据的校验结果作为下一个数据校验过程中移位寄存器的初始值,如此循环往复,在整个数据帧最后一个字节数据并行输入后的下一拍,就能输出整个数据帧的CRC-32 校验码。
2.2.1 数据标记记录的时序控制分布式声纳系统分时工作时各子声纳设备产生的数据由数据管理接口模块接收,并依次写入FPGA 开辟的FIFO 硬核中,触发数据管理设备内部对数据敏感的的记录时钟,结合数据管理设备16 位的数据总线,依照数据传输协议在每帧数据的“实际数据帧长度”后顺序添加4Byte 的标记并由数据管理设备按照数据控制时序依次录取分布式声纳系统的每帧数据。以两部声纳设备组成的分布式声纳系统分时工作为例,数据管理接口模块对两部声纳分时工作产生的数据标记记录的逻辑设计流程图如图4 所示。
图4: 数据标记记录逻辑设计流程图
图中,添加的标记包括两个部分:
帧长度值:依照数据帧传输协议中的“实际数据帧长度”用以指明声纳基阵拾取的回波有效数据的长度,而添加的2个Byte 的该标记用以表示数据记录过程中该帧数据的总长度,用以数据清洗回放环节时序的控制。
声纳号:在添加的“帧长度值”标记位后再添加2 个Byte“声纳号”标记,内部与数据管理接口模块FPGA 中的传输通道相对应,外部用于区分两部声纳设备的数据。
2.2.2 数据清洗回放的时序控制
分布式声纳系统的数据在经过标记记录并存储于数据管理模块后,为了满足系统性能的分析推演需求,必要时复现系统分时工作状态的全过程,这就涉及到数据管理的清洗回放环节。仍已两部声纳组成的分布式声纳系统为例,数据回放时首先通过判断传输协议地址过滤掉数据协议层的无效数据。其次,回放两部声纳设备数据时,需要在回放数据前对“声纳号”标记进行清洗,用于区分与定位数据的归属。由于数据以回放间隔时间串行送出,与数据回放判断时间产生时序冲突,导致一帧数据截成两段,出现在不同的传输通道上。通过设计数据管理接口模块内数据延迟器,采用流水线延迟结构,对回放时钟和回放数据分级缓存,均延迟若干个时钟周期后送出,使数据判断时间与传输时间分离,实现一个通道上只出现完整一帧数据即数据对应声纳设备回放的功能。最后为了配合对两部声纳数据做后续算法处理,在数据管理协议中加入的“同步头”顺序回放每个周期第一帧与其余帧的数据。数据清洗回放逻辑设计流程如图5 所示。
图5: 数据清洗回放逻辑设计流程图
数据管理接口模块根据接口回放时序,依次读取16 位数据总线上的数据并写入FIFO 队列中,回放的数据较之于记录的数据多出记录时添加的4 个Byte 的标记位。为了还原声纳设备的数据,需要将记录时的标记清洗,通过控制数据传输信号,可有效清洗标记位,还原记录的数据。
在实际应用中,考虑到分布式声纳系统有时可处于单部声纳或某几部声纳子设备工作的状态,数据清洗回放时序也做了相应设计。通过与上一周期中第一帧数据的“声纳号”做对比,明确回放时是否含有单部或局部声纳的数据即记录时是否出现过单部或局部声纳工作的情况。在上图所示的流程图中出现的分支即是两部声纳中出现的单部声纳工作时的处理流程,回放数据时判断到相邻两周期第一帧数据中“声纳号”相同,即此时回放的数据是记录的单部声纳的数据。
此外,为了满足工作状态复现和算法设计的需要,在回放时还需根据数据管理协议中包含的“同步头”、“状态字”等状态指示信息精确控制回放时序以期回放数据完全复现分布式声纳系统单部、局部或全部的工作状态。
本文主要基于Xilinx 公司Virtex-5 系列现场可编程门阵列FPGA 芯片作为主控芯片开展设计,其内置有用于构建大型阵列的FIFO 逻辑,逻辑单元多达330000 个,在ISE13.3 开发环境下采用Verilog 语言描述电路结构,通过片上资源实现数据校验、时序控制等功能。为了验证该方案能否对数据进行有效管理,开展了某型分布式声纳系统数据管理的测试,该分布式声纳系统包含两部声纳子设备并记作声纳设备1 和声纳设备2。
数据有效管理的最终目的是用来对分布式声纳系统算法与性能设计提供直接的数据支撑,在实际系统的测试中,对由两部声纳设备组成的分布式声纳系统分时工作产生的数据进行了数据标记录取并存储,为了算法设计的需要,存储的数据由数据管理接口模块清洗后与声纳系统的信号处理机握手通信,并回放至信号处理中进行诸如波束形成、跟踪算法及声光提示等处理,最终以图像形式复现分布式声纳实际工作的情形并验证算法的稳健性。单部和两部声纳设备数据最终在显控界面上回放图像分别如图6 和图7 所示。
图6: 单部声纳数据的回放图像
图7: 两部声纳数据的回放图像
图6 中回放的单部声纳工作周期为2s,图7 中两部声纳设备可切换回放,其他技术指标例如信号形式、通道选择、跟踪目标的方位等信息也可回放得到。加入波束形成、跟踪算法及声光提示等处理后,分布式声纳系统数据以图像形式复现了数据标记录取时的情形。
本文提出了一种分布式声纳系统数据管理方案,设计了一种基于FPGA 的数据管理接口模块。该方案已成功应用于某型声纳系统,表明了该方法具备的有效性和通用性。可实现对分布式声纳系统单部、局部或全部子声纳设备分时工作时产生的数据进行校验、标记、记录、存储、清洗、回放等各个环节的精确控制及有效管理,为声纳系统算法与性能设计提供扎实的数据支撑及保障。