馬 雪
(昆明船舶設(shè)備研究試驗(yàn)中心,云南昆明,650051)
基于FPGA的電磁場信號(hào)采集與處理系統(tǒng)研究
馬 雪
(昆明船舶設(shè)備研究試驗(yàn)中心,云南昆明,650051)
為滿足對(duì)水下電磁場信號(hào)的采集與實(shí)時(shí)處理,并將處理結(jié)果上傳主機(jī)的需求,設(shè)計(jì)了一種三維磁場信號(hào)采集及處理系統(tǒng)。系統(tǒng)采用FPGA控制6通道A/D轉(zhuǎn)換器對(duì)磁場信號(hào)同步采樣,并將原始數(shù)據(jù)存儲(chǔ)在NAND Flash中,同時(shí)FPGA對(duì)采樣數(shù)據(jù)進(jìn)行濾波、FFT等初步計(jì)算分析。ARM芯片完成信號(hào)特征的提取和估計(jì),將結(jié)果通過CAN總線上傳遠(yuǎn)端主機(jī)。為適應(yīng)小型水下航行器對(duì)空間和航行時(shí)間的要求,系統(tǒng)采用低功耗、小型化設(shè)計(jì)。
水下電磁場;FPGA;CAN總線
鋼鐵艦船在地磁場中被磁化,成為一大塊磁鐵,海底水雷靠艦船磁場觸發(fā),這在第二次世界大戰(zhàn)中廣泛應(yīng)用。隨著艦艇消音降噪技術(shù)和聲干擾技術(shù)的發(fā)展,以傳統(tǒng)的聲吶對(duì)水下目標(biāo)進(jìn)行探測、定位和跟蹤顯得越來越困難,因此水下電磁場在這方面的研究顯的更加重要。依項(xiàng)目需求,以FPGA芯片EP4CE75、32位單片機(jī)STM32F407、16位AD轉(zhuǎn)換器AD7656為核心,采用STM32固件庫和IP核完成了軟件開發(fā),實(shí)現(xiàn)了小型水下航行器子系統(tǒng)的研制。
圖1 系統(tǒng)總體框圖
系統(tǒng)按功能劃分有4個(gè)單元:1)數(shù)據(jù)采集單元,由一片6通道16位A/D轉(zhuǎn)換芯片及FPGA組成;2)數(shù)據(jù)存儲(chǔ)單元,由一片4G容量的NAND Flash芯片及FPGA組成;3)系統(tǒng)通信單元,由STM32F407IGH6及外圍以太網(wǎng)PHY芯片、CAN接口收發(fā)芯片組成;4)信號(hào)特征提取和估計(jì)單元,由一片STM32芯片及RS-232接口組成??傁到y(tǒng)方案如圖1所示。
主控芯片選用Altera公司Cyclone IV E系列 FPGA 器件EP4CE75,該器件可在1.0V和1.2V核電壓下使用。主要用于低功耗、低成本實(shí)現(xiàn)較高性能的領(lǐng)域。
信號(hào)特征提取和估計(jì)和系統(tǒng)通信采用ARM Cortex-M4 內(nèi)核的32位MCU。該器件具有以下特性:
1)ARM Cortex-M4 內(nèi)核具備浮點(diǎn)運(yùn)算單元(FPU)和增強(qiáng)的DSP處理指令,168MH主頻下可達(dá)到210DMIPS的處理能力,滿足系統(tǒng)對(duì)信號(hào)處理速度的要求;2)2個(gè)CAN控制器支持CAN2.0B協(xié)議,滿足系統(tǒng)處理結(jié)果上傳主機(jī)的要求;3)1個(gè)IEEE 802.3-2002標(biāo)準(zhǔn)的以太網(wǎng)控制器,支持外部PHY接口實(shí)現(xiàn)10/100 Mbit/s 數(shù)據(jù)傳輸速率。系統(tǒng)采用簡化介質(zhì)獨(dú)立接口(RMII)與外部物理層(PHY) 相連,節(jié)約I/O資源的同時(shí)簡化PCB布線。
2.1數(shù)據(jù)采集單元硬件設(shè)計(jì)
數(shù)據(jù)采集單元設(shè)計(jì)中,采用Bartington公司的磁場傳感器mag-03,傳感器具有X,Y和Z三個(gè)正交分量,量程為±100uT,帶寬為0-3kHz,具有分辨率高,低噪聲和工作穩(wěn)定性等特點(diǎn)。只需為其提供±12V的電源,磁場傳感器集成反接保護(hù)電路和電源濾波電路,降低電源噪聲,提高電路的可靠性。Vx、Vy、Yz三軸磁場信號(hào)經(jīng)過放大器和抗混疊濾波器后供A/D轉(zhuǎn)換器采樣。
采樣電路部分由一片ADI公司的AD7656數(shù)模轉(zhuǎn)換器和FPGA連接,芯片集成6個(gè)獨(dú)立16位雙極性 ADC。本設(shè)計(jì)采用高速并口模式傳輸采樣數(shù)據(jù),并口模式由16位數(shù)據(jù)總線和控制信號(hào)組成,3 個(gè)CONVST管腳連接到一起,進(jìn)行6 通道同步采樣。這樣降低了FPGA軟件編寫的難度,減少邏輯資源和存儲(chǔ)器的消耗。
2.2數(shù)據(jù)存儲(chǔ)單元硬件設(shè)計(jì)
K9F4G08UOC 是一個(gè)4Gbit 并帶備用的32Mbit 容量的存儲(chǔ)器。系統(tǒng)工作在20k的采樣率下,以NAND Flash的讀寫速度,4Gbit的容量能滿足系統(tǒng)1小時(shí)以上的數(shù)據(jù)存儲(chǔ)。I/O 引腳可作為地址和數(shù)據(jù)輸入輸出以及命令輸入,F(xiàn)PGA通過控制信號(hào)及I/O,對(duì)NANO Flash進(jìn)行編程、擦除、讀等操作。數(shù)字存儲(chǔ)單元電路如圖2所示。
圖2 數(shù)據(jù)存儲(chǔ)單元原理圖
2.3系統(tǒng)通信單元硬件設(shè)計(jì)
在硬件設(shè)計(jì)中,STM32芯片集成2個(gè)支持CAN2.0B協(xié)議控制器,1個(gè)以太網(wǎng)控制器。CAN總線控制器通過RxD 和TxD連接到高速光耦HCPL-0600并通過接口芯片TJA1050轉(zhuǎn)換為差動(dòng)信號(hào),接口芯片通過CANL和CANH連接到CAN總線。以太網(wǎng)控制器通過簡化介質(zhì)獨(dú)立接口(RMII)連接到外部物理層(PHY)芯片DP83848。為保證電氣隔離性,提高電路抗干擾能力,CAN總線采用DC-DC隔離模塊和高速光耦進(jìn)行隔離,以太網(wǎng)采用網(wǎng)絡(luò)變壓器進(jìn)行隔離。系統(tǒng)通信單元電路如圖3所示。
2.4信號(hào)特征提取和估計(jì)單元硬件設(shè)計(jì)
圖3 系統(tǒng)通信單元原理圖
該單元的主要功能是,讀取存儲(chǔ)在FPGA雙口RAM的FFT結(jié)果數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行頻率估計(jì)、相位、幅度計(jì)算。STM32F407采用ARM公司Cortex-M4內(nèi)核設(shè)計(jì),集成FPU(浮點(diǎn)運(yùn)算單元)和增強(qiáng)的DSP處理指令,最高工作主頻168MHz,1M字節(jié)的片上閃存(Flash),196K字節(jié)的內(nèi)嵌SRAM。硬件電路設(shè)計(jì)中,該芯片的工作電壓范圍1.8V到3.6V,系統(tǒng)供電為其提供穩(wěn)定的3.3V電源。8MHz的外部晶振通過時(shí)鐘管理器倍頻和分頻后為其提供168MHz的工作時(shí)鐘。STM32F407這些特性滿足系統(tǒng)對(duì)實(shí)時(shí)性的要求。
系統(tǒng)有兩種工作模式,實(shí)航模式和回放模式,系統(tǒng)通過判斷命令控制字來決定工作模式。系統(tǒng)軟件設(shè)計(jì)主要在FPGA平臺(tái)和STM32平臺(tái)上完成,為縮短開發(fā)周期,F(xiàn)PGA平臺(tái)采用Verilog語言配合Altera IP核設(shè)計(jì),STM32平臺(tái)采用STM32F4固件庫和開源的TCP/IP協(xié)議棧LwIP進(jìn)行設(shè)計(jì)。系統(tǒng)程序流程如圖4所示。
圖4 系統(tǒng)程序流程圖
3.1實(shí)航模式程序設(shè)計(jì)
在實(shí)航模式下,CAN控制器初始化,通過設(shè)置寄存對(duì)工作模式、波特率和數(shù)據(jù)幀格式等參數(shù)的設(shè)置,根據(jù)設(shè)計(jì)要求,CAN總線波特率設(shè)置為500Kbps,工作模式設(shè)置為常規(guī)模式,數(shù)據(jù)幀格式設(shè)置為標(biāo)準(zhǔn)幀格式。CAN總線初始化完成后接收主機(jī)發(fā)來的命令控制字,接收到AD采樣開始命令時(shí),在FPGA的雙口RAM中寫入啟動(dòng)AD開始轉(zhuǎn)換命令字。FPGA控制AD轉(zhuǎn)換器對(duì)磁傳感器信號(hào)進(jìn)行采集并將數(shù)據(jù)存儲(chǔ)在FIFO中。當(dāng)FIFO狀態(tài)為滿時(shí),一方面將數(shù)據(jù)寫入NAND Flash中,另一方面將數(shù)據(jù)發(fā)送至信號(hào)處理模塊進(jìn)行數(shù)字濾波和FFT變換,結(jié)果寫入雙口RAM。信號(hào)特征提取和估計(jì)單元通過FSMC總線讀取雙口RAM的數(shù)據(jù),進(jìn)行頻率估計(jì)、相位補(bǔ)償、幅度計(jì)算。
3.2回放模式程序設(shè)計(jì)
LwIP是輕量級(jí)IP協(xié)議,可在無操作系統(tǒng)的支持下運(yùn)行。系統(tǒng)采用UDP模式傳輸數(shù)據(jù),該模式不需要建立連接的請求和應(yīng)答,直接進(jìn)行雙向數(shù)據(jù)傳輸,具有更高的傳輸速度。在回放模式下,以太網(wǎng)初始化對(duì)MAC地址、IP地址、端口地址、子網(wǎng)掩碼參數(shù)設(shè)置。初始化成功后創(chuàng)建一個(gè)UDP控制塊,并連接到指定IP地址和端口號(hào)的主機(jī)。系統(tǒng)通過上位機(jī)發(fā)來的命令字判別數(shù)據(jù)回放或者NAND Flash管理模式,接收到數(shù)據(jù)回放命令字時(shí),系統(tǒng)對(duì)NAND Flash寫保護(hù),確保數(shù)據(jù)不被覆蓋,并讀取存儲(chǔ)在NAND Flash中的數(shù)據(jù)通過UDP發(fā)送至上位機(jī)。
基于上述的設(shè)計(jì),對(duì)本系統(tǒng)進(jìn)行了水下測試。測試中采用信號(hào)源輸出不同頻率的信號(hào),經(jīng)過功率放大器后,提供給電磁輻射器,系統(tǒng)采集和處理數(shù)據(jù)后發(fā)至上位機(jī)機(jī)進(jìn)行顯示,對(duì)不同的信號(hào)頻率、水深、輻射器與傳感器距離進(jìn)行多次測試。測試結(jié)果如圖5所示。電磁輻射器布放在20m水深處,磁傳感器布放在15m水深處,傳感器和電磁輻射器距離6m,從頻譜圖可見信號(hào)在800Hz處形成明顯譜線,滿足設(shè)計(jì)要求。
圖5 測試結(jié)果頻譜圖
針對(duì)小型水下航行器對(duì)水下磁場采集、存儲(chǔ)、分析的需求,設(shè)計(jì)了一套低功耗、小體積、實(shí)時(shí)性高的磁場信號(hào)處理系統(tǒng)。系統(tǒng)利用FPGA資源豐富的優(yōu)勢,對(duì)磁場信號(hào)進(jìn)行多路同步采集,大容量NAND Flash芯片實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),浮點(diǎn)運(yùn)算IP核完成FIR和FFT運(yùn)算。利用外設(shè)豐富的高性能STM32實(shí)現(xiàn)了CAN總線和以太網(wǎng)通信。STM32與FPGA采用FSMC接口高效并行通信的方式。系統(tǒng)經(jīng)過水下測試,功能滿足設(shè)計(jì)需求,測量誤差在可接受的范圍內(nèi)。系統(tǒng)可用于其他數(shù)據(jù)采集與信號(hào)處理系統(tǒng),具有較好的運(yùn)用前景。
[1]楊國義.艦船水下電磁場國外研究現(xiàn)狀[J].艦船科學(xué)技術(shù).2011,33(12) 138-142.
[2]LwIP--A Lightweight TCP/IP stack[EB/OL]. http:// savannah.nongnu.org/projects/lwip.2015
[3]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].電子工業(yè)出版社.2006
[4]魯力,張波.嵌入式TCP/IP協(xié)議的高速電網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)[J]. 儀器儀表學(xué)報(bào). 2009(02)
[5]林濤,鄒黎華,耿勇男.多類型多通道的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子測量與儀器學(xué)報(bào). 2009(S1)
[6]ST.AN4488 Application note[EB/OL].2015(03)
Research on electromagnetic field signal acquisition and processing system based on FPGA
Ma Xue
(Kunming ship equipment research and test center,Kunming,Yunnan,650051)
In order to meet the needs of the data acquisition and real-time processing of underwater electromagnetic field,the processing results are uploaded to the host computer,a three-dimensional magnetic field signal acquisition and processing system is designed.The system adopts FPGA control 6 channel A/D converter to sample the magnetic field signal synchronously,and store the original data in Flash NAND,at the same time,the FPGA is used to filter the sampled data,FFT and so on.ARM chip to complete the signal feature extraction and estimation,the results will be uploaded through the CAN bus remote host.In order to meet the requirements of the space and time of the small underwater vehicle,the system is designed with low power consumption and small size.
underwater electromagnetic field;FPGA;CAN bus