謝玲芳,孟令軍
(中北大學(xué),電子測(cè)試技術(shù)國(guó)防科技重點(diǎn)實(shí)驗(yàn)室,山西太原 030051)
Zynq-7000可擴(kuò)展處理平臺(tái)由ARM處理器和7系列FPGA資源構(gòu)成,分別叫做PS(processing system)和PL(programmable logic)[1]。PS包含雙核Cortex-A9,其啟動(dòng)和操作系統(tǒng)的運(yùn)行不依賴可編程邏輯單元,PL包含F(xiàn)PGA邏輯單元,在該部分完成的各個(gè)功能模塊可以封裝為獨(dú)立的IP核掛載在內(nèi)部總線上,由ARM選擇驅(qū)動(dòng)與調(diào)度。這一架構(gòu)充分發(fā)揮FPGA并行運(yùn)算的優(yōu)勢(shì),同時(shí)利用處理器系統(tǒng)的靈活性,增強(qiáng)了實(shí)時(shí)數(shù)據(jù)傳輸?shù)姆€(wěn)定性,為高速信號(hào)的采集與處理提供一種新的設(shè)計(jì)方案。通過(guò)軟硬件協(xié)同設(shè)計(jì)實(shí)現(xiàn)多路振動(dòng)信號(hào)采集及頻譜分析,提取信號(hào)的頻譜信息,分析特征完成振動(dòng)故障分析。
系統(tǒng)選擇Zynq-7000 SOC平臺(tái)作為控制核心,經(jīng)過(guò)前端信號(hào)調(diào)理后,由可編程A/D轉(zhuǎn)換、DMA傳輸、FFT變換和以太網(wǎng)傳輸來(lái)實(shí)現(xiàn)振動(dòng)信號(hào)的采集和頻譜分析。系統(tǒng)框架如圖1所示。
圖1 系統(tǒng)整體框架圖
振動(dòng)傳感器采集的模擬信號(hào)作為前端輸入信號(hào)。Zynq-7000的PL部分控制AD7606進(jìn)行模數(shù)轉(zhuǎn)換、FFT變換,通過(guò)AXI4總線協(xié)議進(jìn)行DMA傳輸,將數(shù)據(jù)傳輸?shù)教幚砥?,?jīng)過(guò) DDR3緩存,PS部分實(shí)現(xiàn)串口、千兆以太網(wǎng)的控制,完成PS端到PC端的數(shù)據(jù)傳輸以及PC端到PS端的指令傳輸。
在本設(shè)計(jì)中,信號(hào)輸入頻率最大為50 kHz,即fmax=50 kHz。為了保證信號(hào)被完整復(fù)原,采樣頻率需滿足fs≥2fmax,實(shí)際應(yīng)用中,常選取2.5倍,因此fs至少取125 kHz,而且對(duì)采樣精度有較高的要求[2]。綜上所述,采用AD7606,具備 200 Ksps 的采樣率,16 bit 采樣精度,8路同步采樣,靈活的串行并行接口,并且內(nèi)部配有可設(shè)置的 FIR 濾波器[3]。A/D電路采用5 V單電源供電。AD7606與Zynq接口如圖2所示。
圖2 AD7606與Zynq硬件接口圖
A/D控制模塊首先進(jìn)行AD7606初始化,OS信號(hào)接低電平設(shè)置為無(wú)過(guò)采樣;RANG引腳接地用來(lái)設(shè)定模擬輸入電壓范圍是±5 V;V1~V8共8路模擬輸入信號(hào)為調(diào)理后的輸出電壓;PAR/SER/ BYTESEL引腳接地設(shè)置A/D為并行工作模式。其控制流程如圖3所示,仿真結(jié)果如圖4所示。
圖3 AD7606控制流程圖
由圖4可知,在轉(zhuǎn)換開(kāi)始信號(hào)ad_con- vsta/b的上升沿開(kāi)始進(jìn)行模數(shù)轉(zhuǎn)換,隨后轉(zhuǎn)換忙碌標(biāo)志ad_busy跳轉(zhuǎn)為高電平,等待8個(gè)通道均完成轉(zhuǎn)換再恢復(fù)低電平。此時(shí)等到片選信號(hào)ad_cs和讀取使能ad_rd有效時(shí),依次讀出所有通道新的轉(zhuǎn)換結(jié)果(圖4列出了2個(gè)通道ad_ch1和ad_ch2)?;蛘呖梢栽赼d_busy為高電平時(shí)讀取數(shù)據(jù),此時(shí)讀取的為上一次轉(zhuǎn)換的舊數(shù)據(jù)。
圖4 AD7606時(shí)序仿真波形
如何將PL端采集的數(shù)據(jù)傳輸?shù)絇S端是系統(tǒng)設(shè)計(jì)的關(guān)鍵部分。Zynq 內(nèi)部 PS 和 PL 之間的接口包括AXI總線接口、EMIO接口、中斷、DMA、時(shí)鐘和調(diào)試接口[4]以及配置接口。其中,AXI 互聯(lián)總線是 PS 與 PL進(jìn)行數(shù)據(jù)傳輸?shù)闹饕ǖ繹5]。PS部分配置DMA中斷系統(tǒng),控制流程如圖5所示。
為了方便PL與DDR進(jìn)行高速數(shù)據(jù)交互,選擇PS內(nèi)部 AXI-HP接口以及DMA傳輸通道。DMA是一種快速數(shù)據(jù)交換技術(shù),數(shù)據(jù)吞吐率達(dá)到1 200 MB/s,滿足實(shí)時(shí)數(shù)據(jù)處理中高速傳輸?shù)囊骩6]。
圖5 DMA傳輸流程
由于控制命令傳輸部分對(duì)數(shù)據(jù)量及數(shù)據(jù)吞吐率要求不高,所以選擇AXI-GP 接口,通過(guò) AXI-Lite總線連接到PL其他外設(shè)接口,由 PS 向外發(fā)送控制信息;AXI-HP0和AXI-HP1分別連接2個(gè)數(shù)據(jù)傳輸通路。這樣能夠?qū)⒏髂K的數(shù)據(jù)傳輸效率發(fā)揮到最大,保證PS與PL之間數(shù)據(jù)傳輸更加高效[7]。PS與PL數(shù)據(jù)交互框圖如圖6所示。
圖6 PS與PL數(shù)據(jù)交互框圖
FFT(快速傅里葉變換),是離散傅里葉變換的快速算法[8]。系統(tǒng)采用 FFT IP 核進(jìn)行FFT變換,處理器負(fù)責(zé)接收DMA傳輸?shù)臄?shù)據(jù)并控制PL部分的FFT模塊,F(xiàn)FT與DMA之間的數(shù)據(jù)傳輸符合AXI-Stream流傳輸。使用IP核可以選擇占用不同的底層資源,提高可編程邏輯資源的利用率,使Zynq資源利用與速度達(dá)到最優(yōu)。
FFT IP核最大可工作在500 MHz頻率下,100、500 MHz工作頻率下不同點(diǎn)數(shù)對(duì)應(yīng)的處理速度如表1所示。
表1 不同點(diǎn)數(shù)與延遲時(shí)間對(duì)比表
為了驗(yàn)證 FFT 這個(gè)模塊的設(shè)計(jì)結(jié)果是否正確,首先對(duì)采樣的位寬為16 bit 的1 024個(gè)數(shù)據(jù)點(diǎn)進(jìn)行FFT變換。調(diào)用IP核,采用Radix-2,BurstI/O結(jié)構(gòu),輸出數(shù)據(jù)精度由相位因子決定,相位因子選擇16 bit,占用6個(gè)DSP48,5個(gè)塊RAM。在100 MHz的工作頻率下,變換周期為7 351,延遲時(shí)間為73 μs,數(shù)據(jù)吞吐率為50 Msps。
采集到的振動(dòng)波形近似正弦波,由于信號(hào)帶來(lái)的雜波比較多,所以示波器測(cè)量的幅值和頻率不準(zhǔn)。數(shù)據(jù)采集模塊對(duì)振動(dòng)信號(hào)進(jìn)行濾波、放大,把信號(hào)調(diào)理到AD7606的輸入電壓范圍,再進(jìn)行低通抗混疊濾波,如圖7所示,波形頻率為2 kHz,幅值為3 V。
圖7 濾波放大后的振動(dòng)信號(hào)
啟動(dòng)SDK,連接串口,設(shè)置網(wǎng)絡(luò)IP地址,以及網(wǎng)絡(luò)端口號(hào),由網(wǎng)絡(luò)調(diào)試助手發(fā)送啟動(dòng)傳輸命令,數(shù)據(jù)開(kāi)始傳輸。信號(hào)通過(guò)數(shù)據(jù)采集板完成模數(shù)轉(zhuǎn)換過(guò)程,再通過(guò) FEP高速擴(kuò)展接口連接至主控板,添加ILA(在線調(diào)試工具),以模擬波形的形式觀察通道ad_ch1和ad_ch2,時(shí)域波形如圖8所示。
圖8 采集的2路振動(dòng)信號(hào)
由圖8可知,經(jīng)過(guò)調(diào)理后的信號(hào)呈現(xiàn)正弦波,沒(méi)有噪聲干擾,并且未出現(xiàn)信號(hào)失真等問(wèn)題,證明了A/D采集轉(zhuǎn)換電路設(shè)計(jì)合理,芯片正常工作。
主控板PL部分利用一個(gè)異步FIFO完成跨時(shí)鐘域的數(shù)據(jù)傳輸。通過(guò)在AXIS總線添加System ILA IP核,可以觀測(cè)PL接收端AXIS-Stream流數(shù)據(jù)[9],仿真波形如圖9所示。
圖9 AXIS-Stream 流數(shù)據(jù)仿真
由圖9可知,AXI4協(xié)議是通過(guò)數(shù)據(jù)發(fā)送端TVALID信號(hào)和數(shù)據(jù)接收端TREADY信號(hào)之間的握手協(xié)議來(lái)傳輸數(shù)據(jù)的。本設(shè)計(jì)中保持TVALID信號(hào)有效,當(dāng)TREADY為高電平時(shí)(圖9中TREADY一直為高電平)表示PL準(zhǔn)備好接收數(shù)據(jù),在二者均有效時(shí)主從設(shè)備之間進(jìn)行數(shù)據(jù)通信[10]。
在SDK調(diào)試界面可以添加內(nèi)存地址來(lái)查詢相應(yīng)地址處的數(shù)據(jù)。添加寫(讀)內(nèi)存初始地址0x1032(0)0000,如圖10和圖11所示。寫(讀)內(nèi)存地址0x1032(0)0000~0x1032(0)0007處8字節(jié)數(shù)據(jù)為包頭,代表數(shù)據(jù)包開(kāi)始。0x1032(0)0008~0x1032(0)000B處4字節(jié)為包序列號(hào)。0x1032(0)000C~0x1032(0)000F處4字節(jié)為本包數(shù)據(jù)長(zhǎng)度。0x1032(0)0010之后為A/D轉(zhuǎn)換后的數(shù)據(jù)。
圖10 查詢寫內(nèi)存數(shù)據(jù)
圖11 查詢讀內(nèi)存數(shù)據(jù)
100 MHz工作頻率下,對(duì)16 bit 數(shù)據(jù)進(jìn)行1 024點(diǎn)FFT 變換,仿真結(jié)果如圖12所示。IP核輸入端口s_axis_data_tdata為原始數(shù)據(jù),變量i表示1 024個(gè)數(shù)據(jù);FFT核處理結(jié)果為復(fù)數(shù),輸出端口m_ax- is_data_tdata位寬為64 bit,其中高32位為虛部,低32位為實(shí)部,分別對(duì)應(yīng)信號(hào)data_im、data_re。將復(fù)數(shù)實(shí)部虛部結(jié)果導(dǎo)入MATLAB進(jìn)行頻譜圖繪制,并與MATLAB計(jì)算的FFT結(jié)果相比較,如圖13所示。
圖12 FFT IP核仿真波形
(b)MATLAB FFT處理結(jié)果
由圖13可知,信號(hào)主要頻率為2 kHz,幅度為3 V,2 kHz以外的信號(hào)基本沒(méi)有。IP核處理結(jié)果與MATLAB處理結(jié)果一致,實(shí)際應(yīng)用工程中,可根據(jù)需要對(duì)FFT變換點(diǎn)數(shù)進(jìn)行調(diào)整。
設(shè)計(jì)了一種以Zynq-7000 SOC芯片為核心的數(shù)據(jù)采集及頻譜分析系統(tǒng),由振動(dòng)傳感器采集振動(dòng)信號(hào),進(jìn)行信號(hào)調(diào)理后通過(guò)A/D轉(zhuǎn)換芯片說(shuō)明了振動(dòng)信號(hào)采集的正確性,通過(guò)驗(yàn)證PL與PS之間的DMA通信、AXI4協(xié)議,設(shè)計(jì)達(dá)到了高的吞吐率,采用官方IP核進(jìn)行了1 024點(diǎn)FFT變換,精度速度滿足系統(tǒng)要求;根據(jù)頻譜特征可得知機(jī)械振動(dòng)并無(wú)故障。