水聲信號(hào)記錄電路設(shè)計(jì)研究

時(shí)間:2022-03-29 11:07:29

導(dǎo)語:水聲信號(hào)記錄電路設(shè)計(jì)研究一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

水聲信號(hào)記錄電路設(shè)計(jì)研究

1引言

進(jìn)行水聲研究需要進(jìn)行大量的測(cè)量工作,并對(duì)測(cè)量數(shù)據(jù)進(jìn)行比對(duì)、分析。因此對(duì)測(cè)量到的原始信號(hào)進(jìn)行記錄就顯得格外重要。行業(yè)內(nèi)存儲(chǔ)水聲信號(hào)主要使用的是磁帶機(jī),保存經(jīng)放大處理的模擬信號(hào)。雖然磁帶機(jī)有可靠性高、容量大、速度快等諸多優(yōu)點(diǎn),但是對(duì)數(shù)據(jù)再次使用時(shí)需要再次把模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),這給數(shù)據(jù)分析帶來了不便。而且磁帶機(jī)受體積、抗沖擊性能等方面因素的影響,通常配置于地面設(shè)備,無法搭載于水下航行體中,這使磁帶機(jī)的應(yīng)用受到了很大的限制。因此,設(shè)計(jì)一種體積小,環(huán)境適應(yīng)性強(qiáng),可置于水下設(shè)備中的記錄電路,替代傳統(tǒng)的數(shù)據(jù)記錄設(shè)備,以滿足行業(yè)內(nèi)特殊條件下水聲信號(hào)記錄的需要,具有重要的實(shí)踐意義和實(shí)用價(jià)值。

2記錄電路功能及設(shè)計(jì)思路

記錄電路以標(biāo)準(zhǔn)板卡的結(jié)構(gòu)置于電子組件機(jī)箱內(nèi)。通過接插件與底板連接。接收數(shù)字前置放大器輸出的串行數(shù)字流信號(hào),將其進(jìn)行串并轉(zhuǎn)換操作后,存入大容量存儲(chǔ)器當(dāng)中。記錄電路可將記錄數(shù)據(jù)讀出到計(jì)算機(jī)或通過串行接口回放輸出[1]。記錄電路所處理的信號(hào)速率達(dá)到400kByte/s,需要FIFO進(jìn)行緩沖,同時(shí)要針對(duì)CAN總線、IIC總線、串行數(shù)字信號(hào)接口以及FLASH芯片等開展多種接口設(shè)計(jì)[2]。FPGA作為目前最流行的可編程邏輯器件,具有應(yīng)用靈活的特點(diǎn),成為記錄電路硬件構(gòu)架的首選。數(shù)據(jù)存儲(chǔ)介質(zhì)選擇了普通U盤所使用的FLASH芯片,該類芯片具有存儲(chǔ)密度高、可靠性高、價(jià)格便宜等優(yōu)點(diǎn)。電路還內(nèi)置電源管理電路,用于電源的自檢、上電控制和復(fù)位控制功能。同時(shí)還配有CAN總線接口,便于接收上級(jí)系統(tǒng)的命令并將自檢信息上報(bào)。

3電路硬件設(shè)計(jì)

記錄電路的硬件設(shè)計(jì)主要圍繞FPGA電路設(shè)計(jì)展開,同時(shí)進(jìn)行接口電路部分設(shè)計(jì)、存儲(chǔ)電路部分設(shè)計(jì)和數(shù)據(jù)交換電路部分的設(shè)計(jì)。FPGA電路是以FPGA嵌入式微處理器為核心的電路結(jié)構(gòu)。所謂嵌入式微處理器是FPGA芯片內(nèi)嵌了MICRO⁃BLZE軟內(nèi)核,內(nèi)核作為獨(dú)立的微處理器被FPGA邏輯電路調(diào)用以完成和其它處理器一樣的功能。整個(gè)電路分為電源管理、FPGA電路、存儲(chǔ)器和通信幾大部分。幾部分的連接關(guān)系如圖1所示。3.1電源管理電路設(shè)計(jì)。電源管理電路的主要功能是向整個(gè)電路板供電。除了供電作用外,還具有控制上電順序和復(fù)位管理功能。電路中設(shè)有小的51系列單片機(jī),可按需要對(duì)各個(gè)電源的上電順序進(jìn)行控制,同時(shí)實(shí)時(shí)檢測(cè)電路板的各組供電電壓情況和FPGA電路工作情況。電壓情況異常或者FPGA電路工作異常時(shí),對(duì)電源進(jìn)行復(fù)位操作。電路采用+24VDC輸入的供電模式,通過DC/DC轉(zhuǎn)變成+5VDC。電路板用到的其它直流電源由+5VDC轉(zhuǎn)換提供。為了實(shí)現(xiàn)電源控制的功能,電源芯片選用了TI公司生產(chǎn)的TPS5461X系列DC/DC開關(guān)電源芯片。可通過單片機(jī)控制電源芯片上的“SS/ENA”腳實(shí)現(xiàn)對(duì)各組電源的控制[3]。完成電源管理的單片機(jī)選用了C8051系列的F206單片機(jī),該單片機(jī)體積較小、資源不多,但完全可以滿足電源管理的需要。電壓檢測(cè)芯片則選用了國(guó)家半導(dǎo)體公司的LM87芯片。單片機(jī)通過IIC串行總線控制LM87檢測(cè)電路的各組電源供電情況和主控芯片的溫度信息,當(dāng)電源電壓或者溫度出現(xiàn)異常時(shí)對(duì)電源進(jìn)行復(fù)位操作。3.2存儲(chǔ)器電路設(shè)計(jì)。記錄電路選用了三星公司的1G×8bitNANDFlashMemory作為存儲(chǔ)介質(zhì)。需要記錄數(shù)據(jù)的速率為400kByte/s,一片F(xiàn)lash芯片能記錄的時(shí)間為40多分鐘。考慮到存儲(chǔ)容量的問題,選用了6片同規(guī)格的Flash芯片,可存儲(chǔ)數(shù)據(jù)時(shí)間為4個(gè)小時(shí)。也可選擇更大容量的FLASH芯片增加記錄時(shí)間。Flash的接口相對(duì)簡(jiǎn)單,除了8位復(fù)用的地址、數(shù)據(jù)線以外,有7個(gè)控制引腳。它們分別為R/B、RE、CE、CLE、ALE、WE和WP。其中R/B引腳為狀態(tài)指示輸出腳,向處理器提供FLASH的工作狀態(tài);CE引腳為片選信號(hào);CLE和ALE分別為命令使能信號(hào)和地址使能信號(hào);RE和WE分別為讀寫信號(hào);WP為寫保護(hù)信號(hào)。FPGA內(nèi)部微處理器MiroBlaze通過通用I/O口連接FLASH芯片的8個(gè)地址、數(shù)據(jù)引腳和7個(gè)控制引腳,控制其內(nèi)部寄存器完成對(duì)FLASH的讀寫操作,將數(shù)據(jù)記錄到FLASH芯片上或者讀出。6片F(xiàn)LASH芯片以并聯(lián)方式與處理器相連,除片選信號(hào)CE外其余引腳均為復(fù)用。3.3通信電路設(shè)計(jì)。(CAN總線設(shè)計(jì))CAN總線是一種全數(shù)字化雙向和多主的現(xiàn)場(chǎng)總線,在汽車制造業(yè)應(yīng)用非常廣泛。現(xiàn)在水聲領(lǐng)域應(yīng)用方面,CAN總線的應(yīng)用也已經(jīng)較為普遍。CAN總線采用雙線傳輸方式,設(shè)備以節(jié)點(diǎn)的方式掛于總線上,通過設(shè)置幀ID控制數(shù)據(jù)的接收與發(fā)送。總線上的節(jié)點(diǎn)數(shù)可根據(jù)需要自行增加,應(yīng)用非常方便。采用SJA1000CAN控制器結(jié)合驅(qū)動(dòng)芯片PCA82C250的電路結(jié)構(gòu),實(shí)現(xiàn)CAN總線通信[4]。3.4FPGA電路設(shè)計(jì)。FPGA選用Xilinx公司Virtex-2Pro系列產(chǎn)品XC2VP20FG676芯片,此芯片是該電路的核心,中央處理器為其內(nèi)嵌的軟核MicroBlaze。FPGA的配置芯片選取XCF08P的大容量存儲(chǔ)芯片。外圍電路需要按數(shù)據(jù)手冊(cè)的要求完成FPGA芯片與配置芯片的設(shè)計(jì),正確配置好電源、晶振、復(fù)位芯片和JTAG口,按需求分配好I/O口與相關(guān)電路相連。需要注意的是XCF08P具有串行和并行兩種加載方式,在配置時(shí)需看清相對(duì)的電路結(jié)構(gòu)。本設(shè)計(jì)中為了減短程序加載時(shí)間,選擇了并行加載的配置方式。FPGA電路主要邏輯功能仍然由FPGA內(nèi)部的邏輯門電路部分完成。邏輯門電路在記錄狀態(tài)主要負(fù)責(zé)串行數(shù)字流信號(hào)的接收并送入FIFO中進(jìn)行緩沖,當(dāng)FIFO標(biāo)志置位時(shí),向微處理器提出取數(shù)申請(qǐng);在數(shù)據(jù)回放狀態(tài),主要負(fù)責(zé)將微處理器送出的數(shù)據(jù)放入FIFO緩沖,再按照規(guī)定的速率通過串行數(shù)字流輸出模塊向外發(fā)送。FIFO的主體選用了XILINX公司的IPCORE:FIFOGeneratorV2.3。FIFO緩沖區(qū)緩沖數(shù)據(jù)寬度為16位,緩沖的深度為8192。這種FIFO具有可編程狀態(tài)位,當(dāng)FIFO中數(shù)據(jù)滿足設(shè)定狀態(tài)時(shí),可編程狀態(tài)位置位,可方便地將FIFO的狀態(tài)反饋給微處理器。本設(shè)計(jì)中調(diào)用了兩個(gè)FIFO內(nèi)核,分別作為輸入和輸出時(shí)的數(shù)據(jù)緩沖。輸入緩沖區(qū)設(shè)定可編程狀態(tài)位在緩沖區(qū)內(nèi)數(shù)據(jù)將要溢出時(shí)置位,輸出緩沖區(qū)設(shè)定可編程狀態(tài)位在緩沖區(qū)內(nèi)數(shù)據(jù)數(shù)將要取空時(shí)置位。微處理器可以根據(jù)此狀態(tài)位判斷緩沖數(shù)據(jù)情況,決定是否讀取或者寫入新的數(shù)據(jù)。

4電路軟件設(shè)計(jì)

記錄電路軟件分為單片機(jī)軟件和FPGA軟件兩大部分。其中單片機(jī)軟件主要負(fù)責(zé)電源管理功能。通過模擬IIC總線對(duì)電壓監(jiān)控芯片LM87進(jìn)行控制,實(shí)現(xiàn)對(duì)電源和FPGA電路的監(jiān)測(cè)。在電源不正常或者FPGA電路不正常的情況下,對(duì)電源芯片進(jìn)行復(fù)位操作。單片機(jī)軟件使用C語言編寫,功能比較簡(jiǎn)單,程序流程圖如圖2所示。FPGA軟件的核心部分是針對(duì)內(nèi)嵌微處理器MiroBlaze的C語言設(shè)計(jì),主要功能是完成對(duì)串行數(shù)字流信號(hào)的記錄和回放功能。負(fù)責(zé)將緩沖區(qū)中的數(shù)據(jù)讀出并存入FLASH的相應(yīng)存儲(chǔ)區(qū)域。如果接收到回放命令,則將FLASH中的數(shù)據(jù)讀出放入FIFO。如果接收到讀取命令,則將FLASH中的數(shù)據(jù)讀出并通過高速串口輸出到PC機(jī)上。[5]FLASH的讀寫是以頁為基本單位的,一頁為1056個(gè)字。在讀寫一頁之前必須先指明所需讀寫的頁地址,然后發(fā)送讀寫命令。一頁1056字需要一次性連續(xù)讀出或者寫入[6]。FPGA軟件的流程圖如圖3所示。

5應(yīng)用情況

該記錄電路已成功應(yīng)用于某水下航行器上,通過試驗(yàn)獲得了大量寶貴的試驗(yàn)數(shù)據(jù)。圖4中(a)所示的是某次水下試驗(yàn)中電路記錄的9分多鐘的水聲信號(hào)圖形,(b)和(c)分別顯示出數(shù)據(jù)其中一段的放大后和再次放大后的信號(hào)圖形。

6結(jié)語

本文提出了一種基于FPGA的水聲信號(hào)記錄電路的設(shè)計(jì)方案。經(jīng)過實(shí)驗(yàn)室調(diào)試和實(shí)際應(yīng)用,證明了電路能有效完成高速率水聲信號(hào)的記錄工作,并且具有穩(wěn)定的工作狀態(tài),可以取代傳統(tǒng)的模擬記錄設(shè)備,滿足大多數(shù)情況下水聲信號(hào)的記錄需求。

作者:朱明駿 孫現(xiàn)有 單位:海軍駐昆明軍事代表辦事處