文獻(xiàn)標(biāo)識(shí)碼: B
隨著數(shù)字電子技術(shù)的發(fā)展,大型電子設(shè)備中數(shù)字電路的比例越來(lái)越大[1]。為便于故障診斷,一些電子設(shè)備(如雷達(dá)系統(tǒng))預(yù)留了大量的數(shù)字信號(hào)檢測(cè)口[2]。采用示波器采集此類(lèi)測(cè)試接口的信號(hào)時(shí),由于示波器采集通道數(shù)的限制,無(wú)法保留同步信息;采用邏輯分析儀或ATE設(shè)備不但價(jià)格昂貴,而且不便于攜帶,不適宜廣泛使用。因此,設(shè)計(jì)一款便攜式并行數(shù)字信號(hào)高速同步采集系統(tǒng),為大型電子設(shè)備的維護(hù)提供支持是十分必要的。
此類(lèi)檢測(cè)口信號(hào)采集中多通路、高采樣率的特性要求瞬時(shí)大量數(shù)據(jù)的高速緩存實(shí)現(xiàn)方法。文獻(xiàn)[3]以硬盤(pán)為存儲(chǔ)介質(zhì),采用DMA技術(shù)實(shí)現(xiàn)了接近6 MB/s的存儲(chǔ)速率。文獻(xiàn)[4],文獻(xiàn)[5],基于SoPC技術(shù)采用SDRAM作為存儲(chǔ)介質(zhì),相對(duì)硬盤(pán)存儲(chǔ)速度有了很大的提高。但是當(dāng)通道數(shù)超過(guò)SDRAM數(shù)據(jù)位數(shù)時(shí),SoPC的處理速度就會(huì)影響數(shù)據(jù)的存儲(chǔ)速度,適用于多通路同步采集。本文采用讀寫(xiě)速度最高的SRAM作為存儲(chǔ)介質(zhì),并利用虛擬多個(gè)DMA通道的技術(shù)極大地提高了數(shù)據(jù)存儲(chǔ)速度,實(shí)現(xiàn)多路并行數(shù)字信號(hào)的高速同步采集。
1 系統(tǒng)整體設(shè)計(jì)
采集系統(tǒng)采用了嵌入式技術(shù)達(dá)到便攜性的目的,由FPGA子系統(tǒng)和ARM子系統(tǒng)兩部分組成,如圖1所示。
FPGA子系統(tǒng)接收ARM子系統(tǒng)的指令,完成數(shù)據(jù)的采集、緩存和發(fā)送功能。數(shù)字信號(hào)緩沖電路用于數(shù)字信號(hào)的電平轉(zhuǎn)換和驅(qū)動(dòng)。輸入數(shù)字信號(hào)可能是TTL或CMOS電平,采用緩沖電路一方面減小對(duì)原電路的影響,另一方面將電平轉(zhuǎn)換為FPGA輸入所需的CMOS電平。FPGA子系統(tǒng)以Altera公司的EP1C12Q240C6芯片為核心,EP1C12Q240C6擁有12 060個(gè)邏輯單元以及173個(gè)用戶(hù)可使用IO,能充分滿(mǎn)足開(kāi)發(fā)及調(diào)試中的要求。FPGA搭配SRAM采用DMA的方式實(shí)現(xiàn)數(shù)據(jù)的高速緩存,選用SRAM容量為1 MB,訪(fǎng)問(wèn)時(shí)間為10 ns,利用SRAM訪(fǎng)問(wèn)速度快的特點(diǎn),可達(dá)到200 MB/s的數(shù)據(jù)訪(fǎng)問(wèn)速率。同時(shí),F(xiàn)PGA還實(shí)現(xiàn)了與ARM的通信接口,完成緩存數(shù)據(jù)的打包發(fā)送功能。
ARM子系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和人機(jī)交互界面。采集到的數(shù)據(jù)可以通過(guò)ARM子系統(tǒng)以類(lèi)似于邏輯分析儀的方式圖形化地呈現(xiàn)給用戶(hù),方便用戶(hù)管理數(shù)據(jù)采集過(guò)程。
2 DMA高速數(shù)據(jù)緩存
由于ARM系統(tǒng)通信速度的限制,要想避免數(shù)據(jù)的溢出,采集的數(shù)據(jù)需要先緩存到FPGA子系統(tǒng)的SRAM中。對(duì)于62路并行數(shù)據(jù)信號(hào)進(jìn)行同步采集,采集頻率為5 MHz時(shí),數(shù)據(jù)量達(dá)310 Mb/s,因而選用了DMA的方式來(lái)高速地緩存采集數(shù)據(jù)?;贔PGA系統(tǒng),數(shù)字信號(hào)首先在采樣時(shí)刻被存放到FPGA的寄存器中,并在2個(gè)連續(xù)采樣時(shí)刻之間的采樣間隔內(nèi)將FPGA寄存器中的數(shù)據(jù)通過(guò)多個(gè)虛擬的DMA通道存儲(chǔ)到SRAM中。DMA高速數(shù)據(jù)緩存結(jié)構(gòu)如圖2所示。
采集系統(tǒng)選用了1片16 bit的SRAM,62路數(shù)字信號(hào)需要分為4組緩存入SRAM中,因而構(gòu)建了4個(gè)DMA通道分時(shí)與SRAM連接。由于SRAM的訪(fǎng)問(wèn)時(shí)鐘是FPGA系統(tǒng)中的最高時(shí)鐘,所以SRAM的訪(fǎng)問(wèn)時(shí)鐘選用了系統(tǒng)時(shí)鐘。SRAM的訪(fǎng)問(wèn)時(shí)間為10 ns,系統(tǒng)時(shí)鐘必須低于100 MHz,才能保證每次能將數(shù)據(jù)完整正確地寫(xiě)入SRAM中。本FPGA系統(tǒng)選用了50 MHz的系統(tǒng)時(shí)鐘,這樣采樣時(shí)鐘頻率最高為5 MHz,一個(gè)采樣周期內(nèi)的數(shù)據(jù)有10個(gè)系統(tǒng)時(shí)鐘周期的時(shí)間來(lái)處理。在FPGA系統(tǒng)的控制下,一個(gè)采樣周期內(nèi)的10個(gè)系統(tǒng)時(shí)鐘有1個(gè)用于等待數(shù)據(jù)寫(xiě)入FPGA寄存器,4個(gè)用于向SRAM寫(xiě)入數(shù)據(jù)。數(shù)字信號(hào)并行采集的數(shù)據(jù)緩存時(shí)序如圖3所示。
圖3中‘0’時(shí)刻為采樣時(shí)鐘上升沿,此時(shí)刻FPGA系統(tǒng)將并行的62路數(shù)字信號(hào)緩存入62 bit寄存器中。由于傳輸延時(shí)時(shí)間受系統(tǒng)布線(xiàn)和FPGA內(nèi)部布局的影響,系統(tǒng)時(shí)鐘和采樣時(shí)鐘上升沿不一定是同步的,圖中‘0’時(shí)刻到‘2’時(shí)刻之間可能有1~2個(gè)系統(tǒng)時(shí)鐘周期,這段時(shí)間內(nèi),系統(tǒng)不動(dòng)作等待采集信號(hào)可靠地寫(xiě)入寄存器,這樣可以避免‘0’和‘1’時(shí)間間隔過(guò)小,采集的數(shù)據(jù)未完全寫(xiě)入寄存器的情況。在之后的‘2’時(shí)刻至下一周期‘0’時(shí)刻,系統(tǒng)完成寫(xiě)入SRAM的工作。其中‘2’時(shí)刻至‘3’時(shí)刻為第一寫(xiě)入周期,系統(tǒng)將寄存器中的0 bit~15 bit寫(xiě)入SRAM中;‘3’時(shí)刻至‘4’時(shí)刻為第二寫(xiě)入周期,系統(tǒng)將寄存器中的16 bit~31 bit寫(xiě)入SRAM中;‘4’時(shí)刻至‘5’時(shí)刻為第三寫(xiě)入周期,系統(tǒng)將寄存器中的32 bit~47 bit寫(xiě)入SRAM中;‘5’時(shí)刻至下一周期‘0’時(shí)刻為第四寫(xiě)入周期,系統(tǒng)將寄存器中的48 bit~61 bit寫(xiě)入SRAM中。這樣,同一采樣時(shí)刻的62通路的數(shù)字信號(hào)被分時(shí)地寫(xiě)入SRAM中,信號(hào)保持真實(shí)的同步信息。此時(shí),系統(tǒng)的數(shù)據(jù)緩存速率達(dá)310 Mb/s。
上述方法中,‘5’時(shí)刻至下一周期‘0’時(shí)刻只進(jìn)行了一次寫(xiě)入,實(shí)際上這段時(shí)間可以容納6個(gè)寫(xiě)入周期,時(shí)間并沒(méi)有被充分地利用。對(duì)其進(jìn)一步擴(kuò)展,將系統(tǒng)時(shí)鐘周期充分地利用,可以同時(shí)采集更多通路的信號(hào),將第六到第十個(gè)系統(tǒng)時(shí)鐘周期也用于信號(hào)緩存,則可以同時(shí)緩存16×9=144路數(shù)字信號(hào)。這種情況下,系統(tǒng)的數(shù)據(jù)緩存速率可達(dá)720 Mb/s。
考慮采用SRAM的極限訪(fǎng)問(wèn)速率的情況,可以選用100 MHz的系統(tǒng)時(shí)鐘,這時(shí)系統(tǒng)的數(shù)據(jù)緩存速率可達(dá)1 520 Mb/s。
選用的SRAM的數(shù)據(jù)寫(xiě)入極限速率為1 600 Mb/s,此種方法的數(shù)據(jù)緩存速率達(dá)SRAM數(shù)據(jù)緩存極限的95%,實(shí)現(xiàn)了高速的數(shù)據(jù)緩存。
3 緩存數(shù)據(jù)重組織
按照上述數(shù)據(jù)緩存的方法,同一通道的數(shù)據(jù)不是連續(xù)地存儲(chǔ)在SRAM中。SRAM中的數(shù)據(jù)存儲(chǔ)順序如圖4所示。圖中第一列表示SRAM地址,offset為數(shù)據(jù)存儲(chǔ)的初始地址偏移;第一行表示數(shù)據(jù)位,選用的SRAM中一個(gè)地址對(duì)應(yīng)2字節(jié)數(shù)據(jù),有16個(gè)數(shù)據(jù)位;剩余每個(gè)方格表示一個(gè)數(shù)據(jù)存儲(chǔ)單元,方格里的數(shù)字表示該單元用于存儲(chǔ)第幾通道的數(shù)據(jù)。
定位一個(gè)通道的一位數(shù)據(jù)需要知道其對(duì)應(yīng)的SRAM地址和位號(hào)。假設(shè)通道m(xù)的第i位數(shù)據(jù)由[addr(m,i),bit(m,i)]定位。分析SRAM中的數(shù)據(jù)存儲(chǔ)順序可知:
addr(m,i)=offset+1+[(m-1)/16]+(i-1)×4;
bit(m,i)=(m-1)%16。
其中m=1,2,3,…,64;i=1,2,3,4,…。
FPGA系統(tǒng)向ARM系統(tǒng)發(fā)送數(shù)據(jù)時(shí),將同一通路的數(shù)據(jù)抽取出來(lái),以一個(gè)字節(jié)為單位連續(xù)發(fā)送,所以需要對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行重組織。在FPGA系統(tǒng)中,使用6 bit變量dch[5:0]表示通道號(hào),其中000000(b)表示通道1(m=1),000001(b)表示通道2(m=2),依此類(lèi)推。數(shù)據(jù)位計(jì)數(shù)i使用N位變量bitcnt[N-1:0]來(lái)表示,其中N由存儲(chǔ)的總數(shù)據(jù)量決定,與通道號(hào)類(lèi)似,全零表示i=1情況,1(b)表示i=2情況,依此類(lèi)推。因而有:
[(m-1)/16]=dch[5:4];
(i-1)×4={bitcnt[N-1:0],00(b)};
(m-1)%16=dch[3:0]。
數(shù)據(jù)由FPGA中的變量定位表示為:
addr=offset+1+{bitcnt[N-1:0],dch[5:4]};
bit=dch[3:0]。
FPGA系統(tǒng)根據(jù)以上公式將各個(gè)通道數(shù)據(jù)逐位地從SRAM中讀出,并移入移位寄存器中,從而把同一通路的數(shù)據(jù)以字節(jié)為單位連續(xù)地組織起來(lái)。
4 采集實(shí)驗(yàn)結(jié)果
為了進(jìn)行測(cè)試,基于FPGA設(shè)計(jì)了專(zhuān)用信號(hào)發(fā)生器,產(chǎn)生62路數(shù)字信號(hào)用于測(cè)試。62路數(shù)字信號(hào)中包括4.07 kHz~520.8 kHz(50 MHz的96分頻)的TTL信號(hào)及恒高、恒低電平信號(hào)。
由于數(shù)字信號(hào)通道數(shù)較多,這里以其中不包含恒高和恒低的9~12通道來(lái)說(shuō)明采集精度,采集結(jié)果如表1。
依此可知,各通道采集結(jié)果與輸入信號(hào)對(duì)應(yīng),說(shuō)明個(gè)通道采集結(jié)果正確,本采集系統(tǒng)可靠。
以某型雷達(dá)做為被測(cè)對(duì)象,系統(tǒng)進(jìn)行了實(shí)際工作測(cè)試。采集性能如表2所示。
本文介紹基于嵌入式技術(shù)的并行數(shù)字信號(hào)采集系統(tǒng)的設(shè)計(jì),系統(tǒng)采用DMA技術(shù)實(shí)現(xiàn)了62路數(shù)字信號(hào)同步采集,用于某型雷達(dá)預(yù)留測(cè)試接口信號(hào)的采集,整體采集速率達(dá)310 Ms/s。利用本設(shè)計(jì)中提出的DMA方法,系統(tǒng)可以進(jìn)一步擴(kuò)展,從而實(shí)現(xiàn)128路數(shù)字信號(hào)同步采集,并使整體采集速率達(dá)1 520 Ms/s,此時(shí)SRAM的寫(xiě)入速度已成為主要的限制。
參考文獻(xiàn)
[1] 唐玉蘭,陶偉,于宗光.一種實(shí)現(xiàn)數(shù)?;旌想娐分械腄AC測(cè)試的BIST結(jié)構(gòu)[J].電子器件,2006,29(1):231-234.
[2] 張開(kāi)德.1553B數(shù)據(jù)總線(xiàn)技術(shù)在某艇作戰(zhàn)系統(tǒng)中的應(yīng)用[J].艦船科學(xué)技術(shù),1994,(003):48-51.
[3] 詹艷艷.數(shù)據(jù)采集系統(tǒng)并行存儲(chǔ)的實(shí)現(xiàn)[J].科技資訊,2009(4).
[4] 奚素霞.基于SOPC的高速數(shù)據(jù)采集系統(tǒng)的分析與設(shè)計(jì)[J].電子元器件應(yīng)用,2009,11(4).
[5] 馮萍,李秀華.基于FPGA的高速高精度數(shù)據(jù)采集系統(tǒng)的研究[J].中國(guó)科技信息,2008,(021):105-106.