史磊 于駿申
(中國船舶重工集團(tuán)公司第七二六研究所 上海市 201108)
聲納系統(tǒng)數(shù)據(jù)貫穿于聲納發(fā)射機、接收機及信號處理機的各個環(huán)節(jié),是反映聲納系統(tǒng)各項技術(shù)指標(biāo)的直接載體,這些數(shù)據(jù)需要進(jìn)行傳輸、存儲和事后分析處理。尤其針對一些特定區(qū)域,聲納系統(tǒng)工作產(chǎn)生的數(shù)據(jù)更是彌足珍貴,所以,有必要對聲納系統(tǒng)數(shù)據(jù)進(jìn)行有效管理。對于單部聲納系統(tǒng),配置對應(yīng)的數(shù)據(jù)管理設(shè)備可滿足對聲納系統(tǒng)數(shù)據(jù)的管理,但是,隨著聲納系統(tǒng)性能指標(biāo)的提升,其規(guī)模也日趨龐大,已發(fā)展成為分布式聲納系統(tǒng)協(xié)同工作的常規(guī)工作模式,若仍沿用單部聲納系統(tǒng)的數(shù)據(jù)管理方案,即為分布式聲納系統(tǒng)下屬的各子設(shè)備均配置對應(yīng)的數(shù)據(jù)管理設(shè)備,一方面增加了系統(tǒng)設(shè)計的成本,另一方面無疑又?jǐn)U大了聲納系統(tǒng)的冗余規(guī)模,因此,對于分布式聲納系統(tǒng)的數(shù)據(jù)管理也提出了新的設(shè)計需求。本文設(shè)計的一種基于分布式聲納系統(tǒng)數(shù)據(jù)管理方案,涉及聲納數(shù)據(jù)全周期管理中的標(biāo)記、記錄、存儲、清洗、回放、校驗等多個環(huán)節(jié),設(shè)計基于現(xiàn)場可編程邏輯門陣列FPGA 的數(shù)據(jù)管理接口模塊,結(jié)合數(shù)據(jù)管理設(shè)備,完成分布式聲納系統(tǒng)數(shù)據(jù)的全周期管理,它的實現(xiàn)可在不增加聲納系統(tǒng)冗余規(guī)模的基礎(chǔ)上,有效降低系統(tǒng)的設(shè)計成本,滿足分布式聲納系統(tǒng)數(shù)據(jù)通信的高速性、可靠性要求。
分布式聲納系統(tǒng)實際工作時,為了規(guī)避水下聲信號不相兼容對探測性能的負(fù)面影響,通常采用分時工作模式,即各聲納基陣按照工作時序,依次順序?qū)崟r工作,通過數(shù)據(jù)管理接口模塊的協(xié)調(diào)調(diào)度,各聲納工作過程產(chǎn)生的數(shù)據(jù)便可依次順序錄入數(shù)據(jù)管理設(shè)備。其總體設(shè)計如圖1 所示。
圖1: 分布式聲納系統(tǒng)數(shù)據(jù)管理方案總體設(shè)計
對于各聲納基陣產(chǎn)生的原始數(shù)據(jù),在進(jìn)入數(shù)據(jù)管理設(shè)備前,依據(jù)實際使用需要,有必要對數(shù)據(jù)做標(biāo)記、清洗、校驗等處理,諸如對子聲納設(shè)備的編號、數(shù)據(jù)實時使用信息等標(biāo)記,數(shù)據(jù)復(fù)現(xiàn)時清洗各附加標(biāo)記。此外,聲納系統(tǒng)工作存在的干擾中,海面和海底的混響將目標(biāo)回波淹沒而難以檢測到,而由聲波的多徑傳播、傳播中介質(zhì)的不均勻性、目標(biāo)的高速運動以及虛源的干涉等引起的回波的起伏效應(yīng),更使目標(biāo)的檢測變得困難,因此在數(shù)據(jù)存儲前,還需進(jìn)行數(shù)據(jù)誤碼率的校驗及數(shù)據(jù)傳輸時序的控制。通過設(shè)計基于FPGA 的數(shù)據(jù)管理接口模塊上述數(shù)據(jù)相關(guān)操作,抽象出分布式聲納系統(tǒng)數(shù)據(jù)管理流程圖2 所示。
如圖2 所示,分布式聲納系統(tǒng)數(shù)據(jù)均由數(shù)據(jù)管理接口模塊協(xié)調(diào)調(diào)度,通過數(shù)據(jù)緩存FIFO 對數(shù)據(jù)的標(biāo)記、記錄、存儲、清洗、回放、延遲等一系列操作處理,實現(xiàn)對系統(tǒng)數(shù)據(jù)的精準(zhǔn)有效管理。
圖2: 分布式聲納數(shù)據(jù)管理流程圖
當(dāng)今,嵌入式系統(tǒng)的復(fù)雜程度越來越高,數(shù)據(jù)通信量不斷增加,總線類型也不在單一,開發(fā)過程中需要對各種總線的數(shù)據(jù)進(jìn)行記錄,事后分析數(shù)據(jù)得出系統(tǒng)的性能指標(biāo),甚至需要在系統(tǒng)出現(xiàn)故障時,可以將記錄的數(shù)據(jù)回放到總線上,重現(xiàn)故障,方便快速定位故障。因此,解決數(shù)據(jù)的記錄與回放成為關(guān)鍵問題。分布式聲納系統(tǒng)工作產(chǎn)生的數(shù)據(jù)以擬定好的數(shù)據(jù)幀格式在不同設(shè)備總線上傳輸,數(shù)據(jù)幀在硬件中容易實現(xiàn),能節(jié)省軟件的處理時間。數(shù)據(jù)管理接口模塊依次對數(shù)據(jù)幀進(jìn)行校驗、標(biāo)記、記錄、清洗、回放等操作,完成數(shù)據(jù)幀的實時檢索處理功能。
循環(huán)校驗碼(CRC)在數(shù)據(jù)通信和計算機通信中有著廣泛的應(yīng)用,它具有編碼和解碼方法簡單,檢錯和糾錯能力強等特點,可以顯著地提高系統(tǒng)的檢錯能力。在通信系統(tǒng)的數(shù)據(jù)傳輸過程中,由于信道中各種復(fù)雜因素的影響,往往使傳輸?shù)男盘柺艿礁蓴_,造成誤碼的出現(xiàn)。接收方為了檢查所接收的數(shù)據(jù)是否有誤碼,可采用多種檢測方法。差錯控制編碼是目前數(shù)據(jù)傳輸過程中普遍采用的一種在提高數(shù)據(jù)通信可靠性的方法。通用的CRC 串行編碼原理就可由n 個D 觸發(fā)器和若干個異或門電路結(jié)構(gòu)來實現(xiàn),如圖3 所示。
圖3: 通用CRC 串行編碼原理圖
CRC-32 校驗碼的產(chǎn)生就是由上一個并行輸入的8bit 數(shù)據(jù)的校驗結(jié)果作為下一個數(shù)據(jù)校驗過程中移位寄存器的初始值,如此循環(huán)往復(fù),在整個數(shù)據(jù)幀最后一個字節(jié)數(shù)據(jù)并行輸入后的下一拍,就能輸出整個數(shù)據(jù)幀的CRC-32 校驗碼。
2.2.1 數(shù)據(jù)標(biāo)記記錄的時序控制分布式聲納系統(tǒng)分時工作時各子聲納設(shè)備產(chǎn)生的數(shù)據(jù)由數(shù)據(jù)管理接口模塊接收,并依次寫入FPGA 開辟的FIFO 硬核中,觸發(fā)數(shù)據(jù)管理設(shè)備內(nèi)部對數(shù)據(jù)敏感的的記錄時鐘,結(jié)合數(shù)據(jù)管理設(shè)備16 位的數(shù)據(jù)總線,依照數(shù)據(jù)傳輸協(xié)議在每幀數(shù)據(jù)的“實際數(shù)據(jù)幀長度”后順序添加4Byte 的標(biāo)記并由數(shù)據(jù)管理設(shè)備按照數(shù)據(jù)控制時序依次錄取分布式聲納系統(tǒng)的每幀數(shù)據(jù)。以兩部聲納設(shè)備組成的分布式聲納系統(tǒng)分時工作為例,數(shù)據(jù)管理接口模塊對兩部聲納分時工作產(chǎn)生的數(shù)據(jù)標(biāo)記記錄的邏輯設(shè)計流程圖如圖4 所示。
圖4: 數(shù)據(jù)標(biāo)記記錄邏輯設(shè)計流程圖
圖中,添加的標(biāo)記包括兩個部分:
幀長度值:依照數(shù)據(jù)幀傳輸協(xié)議中的“實際數(shù)據(jù)幀長度”用以指明聲納基陣拾取的回波有效數(shù)據(jù)的長度,而添加的2個Byte 的該標(biāo)記用以表示數(shù)據(jù)記錄過程中該幀數(shù)據(jù)的總長度,用以數(shù)據(jù)清洗回放環(huán)節(jié)時序的控制。
聲納號:在添加的“幀長度值”標(biāo)記位后再添加2 個Byte“聲納號”標(biāo)記,內(nèi)部與數(shù)據(jù)管理接口模塊FPGA 中的傳輸通道相對應(yīng),外部用于區(qū)分兩部聲納設(shè)備的數(shù)據(jù)。
2.2.2 數(shù)據(jù)清洗回放的時序控制
分布式聲納系統(tǒng)的數(shù)據(jù)在經(jīng)過標(biāo)記記錄并存儲于數(shù)據(jù)管理模塊后,為了滿足系統(tǒng)性能的分析推演需求,必要時復(fù)現(xiàn)系統(tǒng)分時工作狀態(tài)的全過程,這就涉及到數(shù)據(jù)管理的清洗回放環(huán)節(jié)。仍已兩部聲納組成的分布式聲納系統(tǒng)為例,數(shù)據(jù)回放時首先通過判斷傳輸協(xié)議地址過濾掉數(shù)據(jù)協(xié)議層的無效數(shù)據(jù)。其次,回放兩部聲納設(shè)備數(shù)據(jù)時,需要在回放數(shù)據(jù)前對“聲納號”標(biāo)記進(jìn)行清洗,用于區(qū)分與定位數(shù)據(jù)的歸屬。由于數(shù)據(jù)以回放間隔時間串行送出,與數(shù)據(jù)回放判斷時間產(chǎn)生時序沖突,導(dǎo)致一幀數(shù)據(jù)截成兩段,出現(xiàn)在不同的傳輸通道上。通過設(shè)計數(shù)據(jù)管理接口模塊內(nèi)數(shù)據(jù)延遲器,采用流水線延遲結(jié)構(gòu),對回放時鐘和回放數(shù)據(jù)分級緩存,均延遲若干個時鐘周期后送出,使數(shù)據(jù)判斷時間與傳輸時間分離,實現(xiàn)一個通道上只出現(xiàn)完整一幀數(shù)據(jù)即數(shù)據(jù)對應(yīng)聲納設(shè)備回放的功能。最后為了配合對兩部聲納數(shù)據(jù)做后續(xù)算法處理,在數(shù)據(jù)管理協(xié)議中加入的“同步頭”順序回放每個周期第一幀與其余幀的數(shù)據(jù)。數(shù)據(jù)清洗回放邏輯設(shè)計流程如圖5 所示。
圖5: 數(shù)據(jù)清洗回放邏輯設(shè)計流程圖
數(shù)據(jù)管理接口模塊根據(jù)接口回放時序,依次讀取16 位數(shù)據(jù)總線上的數(shù)據(jù)并寫入FIFO 隊列中,回放的數(shù)據(jù)較之于記錄的數(shù)據(jù)多出記錄時添加的4 個Byte 的標(biāo)記位。為了還原聲納設(shè)備的數(shù)據(jù),需要將記錄時的標(biāo)記清洗,通過控制數(shù)據(jù)傳輸信號,可有效清洗標(biāo)記位,還原記錄的數(shù)據(jù)。
在實際應(yīng)用中,考慮到分布式聲納系統(tǒng)有時可處于單部聲納或某幾部聲納子設(shè)備工作的狀態(tài),數(shù)據(jù)清洗回放時序也做了相應(yīng)設(shè)計。通過與上一周期中第一幀數(shù)據(jù)的“聲納號”做對比,明確回放時是否含有單部或局部聲納的數(shù)據(jù)即記錄時是否出現(xiàn)過單部或局部聲納工作的情況。在上圖所示的流程圖中出現(xiàn)的分支即是兩部聲納中出現(xiàn)的單部聲納工作時的處理流程,回放數(shù)據(jù)時判斷到相鄰兩周期第一幀數(shù)據(jù)中“聲納號”相同,即此時回放的數(shù)據(jù)是記錄的單部聲納的數(shù)據(jù)。
此外,為了滿足工作狀態(tài)復(fù)現(xiàn)和算法設(shè)計的需要,在回放時還需根據(jù)數(shù)據(jù)管理協(xié)議中包含的“同步頭”、“狀態(tài)字”等狀態(tài)指示信息精確控制回放時序以期回放數(shù)據(jù)完全復(fù)現(xiàn)分布式聲納系統(tǒng)單部、局部或全部的工作狀態(tài)。
本文主要基于Xilinx 公司Virtex-5 系列現(xiàn)場可編程門陣列FPGA 芯片作為主控芯片開展設(shè)計,其內(nèi)置有用于構(gòu)建大型陣列的FIFO 邏輯,邏輯單元多達(dá)330000 個,在ISE13.3 開發(fā)環(huán)境下采用Verilog 語言描述電路結(jié)構(gòu),通過片上資源實現(xiàn)數(shù)據(jù)校驗、時序控制等功能。為了驗證該方案能否對數(shù)據(jù)進(jìn)行有效管理,開展了某型分布式聲納系統(tǒng)數(shù)據(jù)管理的測試,該分布式聲納系統(tǒng)包含兩部聲納子設(shè)備并記作聲納設(shè)備1 和聲納設(shè)備2。
數(shù)據(jù)有效管理的最終目的是用來對分布式聲納系統(tǒng)算法與性能設(shè)計提供直接的數(shù)據(jù)支撐,在實際系統(tǒng)的測試中,對由兩部聲納設(shè)備組成的分布式聲納系統(tǒng)分時工作產(chǎn)生的數(shù)據(jù)進(jìn)行了數(shù)據(jù)標(biāo)記錄取并存儲,為了算法設(shè)計的需要,存儲的數(shù)據(jù)由數(shù)據(jù)管理接口模塊清洗后與聲納系統(tǒng)的信號處理機握手通信,并回放至信號處理中進(jìn)行諸如波束形成、跟蹤算法及聲光提示等處理,最終以圖像形式復(fù)現(xiàn)分布式聲納實際工作的情形并驗證算法的穩(wěn)健性。單部和兩部聲納設(shè)備數(shù)據(jù)最終在顯控界面上回放圖像分別如圖6 和圖7 所示。
圖6: 單部聲納數(shù)據(jù)的回放圖像
圖7: 兩部聲納數(shù)據(jù)的回放圖像
圖6 中回放的單部聲納工作周期為2s,圖7 中兩部聲納設(shè)備可切換回放,其他技術(shù)指標(biāo)例如信號形式、通道選擇、跟蹤目標(biāo)的方位等信息也可回放得到。加入波束形成、跟蹤算法及聲光提示等處理后,分布式聲納系統(tǒng)數(shù)據(jù)以圖像形式復(fù)現(xiàn)了數(shù)據(jù)標(biāo)記錄取時的情形。
本文提出了一種分布式聲納系統(tǒng)數(shù)據(jù)管理方案,設(shè)計了一種基于FPGA 的數(shù)據(jù)管理接口模塊。該方案已成功應(yīng)用于某型聲納系統(tǒng),表明了該方法具備的有效性和通用性??蓪崿F(xiàn)對分布式聲納系統(tǒng)單部、局部或全部子聲納設(shè)備分時工作時產(chǎn)生的數(shù)據(jù)進(jìn)行校驗、標(biāo)記、記錄、存儲、清洗、回放等各個環(huán)節(jié)的精確控制及有效管理,為聲納系統(tǒng)算法與性能設(shè)計提供扎實的數(shù)據(jù)支撐及保障。