中國人民解放軍92236部隊 王旭東 陳濤 鄭磊
隨著當(dāng)今科學(xué)技術(shù)的不斷發(fā)展,各種信號采集技術(shù)的研究也得到了不斷深入。其中,以FPGA為基礎(chǔ)的多通道數(shù)據(jù)采集系統(tǒng)更是備受關(guān)注。為實現(xiàn)該系統(tǒng)的良好應(yīng)用與發(fā)展,本文特以某數(shù)據(jù)多通道采集系統(tǒng)為例,對其FPGA設(shè)計進(jìn)行了研究。希望通過本次的研究,可以為該FPGA技術(shù)的應(yīng)用與多通道數(shù)據(jù)采集技術(shù)的發(fā)展提供相應(yīng)參考。
在進(jìn)行數(shù)據(jù)采集系統(tǒng)的設(shè)計和研究中,FPGA技術(shù)所發(fā)揮的優(yōu)勢十分顯著。將該技術(shù)合理應(yīng)用到多通道數(shù)據(jù)采集系統(tǒng)中,并將其作為系統(tǒng)的核心,便可有效解決傳統(tǒng)數(shù)據(jù)采集系統(tǒng)中的接口復(fù)雜難題,為系統(tǒng)的應(yīng)用和擴(kuò)展提供足夠便利。因此,在對此類系統(tǒng)進(jìn)行研究的過程中,技術(shù)人員一定要加強FPGA的應(yīng)用研究,使其在該系統(tǒng)中發(fā)揮出充分的技術(shù)優(yōu)勢。
在傳統(tǒng)形式的數(shù)據(jù)多路采集系統(tǒng)中,其數(shù)據(jù)采集系統(tǒng)通常是將MCU作為核心,以此來實現(xiàn)多路信號采集與處理的控制。但是因為單片機(jī)處理速度和指令周期的影響,普通形式的MCU在數(shù)據(jù)處理以及A/D轉(zhuǎn)換方面都很難達(dá)到系統(tǒng)的實際應(yīng)用需求。但是如果可以將FPGA作為該系統(tǒng)的核心部分,憑借著其集成度非常高的器件以及十分豐富的內(nèi)部資源,便可對多路形式的并行數(shù)據(jù)進(jìn)行有效處理,讓系統(tǒng)對于相應(yīng)數(shù)據(jù)的實時采集與實時同步需求得以良好滿足。
本次某數(shù)據(jù)多通道采集系統(tǒng)的設(shè)計中,將FPGA和ARM進(jìn)行結(jié)合,通過FPGA來實現(xiàn)采集主控制邏輯;通過ARM對控制數(shù)據(jù)的儲存與傳輸。其中,A/D形式的轉(zhuǎn)換器為TI公司所生產(chǎn)的ADS1255高精度模數(shù)24位轉(zhuǎn)換器;FPGA應(yīng)用的是Altera公司所生產(chǎn)的EP2C35型FPGA;ARM應(yīng)用的是ARM9內(nèi)核形式的S3C2410處理器。通過EP2C35型內(nèi)存處理器塊來進(jìn)行雙口形式的RAM配置,這個雙口形式的RAM連接著ARM系統(tǒng)中的總線,并映射成為ARM中的一個內(nèi)存區(qū)域。以下是該系統(tǒng)中的主要組成及其功能簡述。
(1)AD前端處理電路:其主要功能是對信號進(jìn)行衰減、放大和阻抗匹配,讓系統(tǒng)對于輸入信號的實際要求得以良好滿足。
(2)濾波網(wǎng)絡(luò):其主要功能是將工頻信號以及高頻噪聲干擾濾除,對ARM中的控制信號進(jìn)行增益放大,讓模擬信號得到不同程度的增益放大處理。
(3)ADS1255:其主要功能是實現(xiàn)模擬電信號到數(shù)字信號的轉(zhuǎn)換,具體應(yīng)用中 可通過相應(yīng)的設(shè)置使其在各種工作模式中發(fā)揮出有效作用。
(4)FPGA:其主要功能是為ADS1255進(jìn)行工作時鐘提供,通過其輸出時鐘頻率的改變便可改變AD采樣頻率。FPGA可以對5路AD數(shù)據(jù)采集實現(xiàn)并行控制,同時也可以將采集到的每一路數(shù)據(jù)按照相應(yīng)順序,在雙口形式的RAM中進(jìn)行字節(jié)寫入與緩存。對于雙口形式的RAM數(shù)據(jù),FPGA主要借助于乒乓傳輸結(jié)構(gòu)來進(jìn)行讀取,在將雙口形式的RAM上半?yún)^(qū)寫滿之后,FPGA便會將中斷申請發(fā)送給ARM,在ARM接收到這個申請并響應(yīng)中斷之后,便會將上半?yún)^(qū)的數(shù)據(jù)讀出,并將其儲存到內(nèi)存中[1]。在此過程中,FPGA會繼續(xù)將相應(yīng)的數(shù)據(jù)寫入到ARM下半?yún)^(qū),然后以同樣的方式發(fā)出中斷申請。在此過程中,借助于乒乓傳輸?shù)男问?可以讓系統(tǒng)采樣以及數(shù)據(jù)傳輸?shù)倪M(jìn)行保持連續(xù)。
在本次所涉及的以FPGA為基礎(chǔ)的某數(shù)據(jù)采集系統(tǒng)中,其數(shù)據(jù)采集的基本流程如下:首先是系統(tǒng)的初始化,在完成了系統(tǒng)的初始化之后,ARM會借助于控制信號向FPGA發(fā)送通道選擇以及采集頻率等參數(shù)情況的通知,在FPGA接到了相應(yīng)的通知之后,便會將一個統(tǒng)一形式的時鐘提供出來,這一步驟主要借助于同步采樣通道中相應(yīng)的AD芯片來完成。然后便是進(jìn)行相應(yīng)通道的選擇,并對數(shù)據(jù)進(jìn)行同步采樣與轉(zhuǎn)換,采樣和轉(zhuǎn)換的結(jié)果會通過FPGA進(jìn)行接收,通過RAM中與之對應(yīng)的空間進(jìn)行儲存。接下來再通過ARM在相應(yīng)雙口形式的RAM空間中進(jìn)行數(shù)據(jù)讀取,并根據(jù)實際需求將其儲存在本地,或者是通過網(wǎng)絡(luò)上傳到上位機(jī)中對其進(jìn)行進(jìn)一步的處理。
在該系統(tǒng)的具體應(yīng)用中,并不是所有的通道都會參與到工作中,而AD也不僅僅有一種采樣率,基于此,在對通道控制以及采樣率進(jìn)行設(shè)置的過程中,應(yīng)使其具備良好的可選擇性特征。在本次所研究的以FPGA為基礎(chǔ)的多通道數(shù)據(jù)采集系統(tǒng)中,通道以及采樣率選擇模塊中包含兩個控制寄存器,分別為寄存器A和寄存器B,其規(guī)格均為8Bit。具體情況如圖1所示:
圖1 寄存器A和寄存器BFig.1 Register A and Register B
在儲存器A中,0-4Bit分別和ADC這一通道中的CH0-CH4相對應(yīng),而5-7Bit則需要保留;在寄存器B中,8Bit分別和采集率中的FS0-FS7相對應(yīng)。若需要對某幾個通道進(jìn)行選擇,僅僅將寄存器A內(nèi)的相應(yīng)位置設(shè)置為1,其他位置設(shè)置為0,AD采樣控制模塊便會按照這個寄存器里的具體內(nèi)容來形成相應(yīng)通道。如果需要對某采樣頻率進(jìn)行選擇,僅僅需要將寄存器B內(nèi)與之對應(yīng)的位置設(shè)置為1,將其他位置設(shè)置為0,便會在時鐘模塊中產(chǎn)生一個與之對應(yīng)的AD采樣率控制時鐘[2]。在數(shù)據(jù)采集系統(tǒng)開啟之前,ARM將會按照實際需求將通道以及采樣頻率命令字寫入到儲存器A與儲存器B中。
在本次設(shè)計中,外部輸入形式的時鐘是16.384MHz,因每一個模塊都具有不同的工作時鐘,AD采樣率也具有不同的變化形式,所以就需要很多不同形式的時鐘信號。而在該系統(tǒng)設(shè)計中,時鐘模塊便可按照采樣率的不同來將不同的時鐘信號提供給與之對應(yīng)的模塊。因本次設(shè)計所應(yīng)用的電路為同步時序形式,它是時鐘終觸發(fā)沿作為基礎(chǔ)來進(jìn)行設(shè)計的電路形式,對于時鐘的抖動、延時、占空比以及周期都有著非常高的設(shè)計要求?;诖?在被測設(shè)計中,主要是通過FPGA中帶有的PLL時鐘資源來進(jìn)行主時鐘的驅(qū)動設(shè)計,使其抖動和延遲都降到最低。
在本次系統(tǒng)設(shè)計中,雙口形式的RAM模塊主要用來進(jìn)行時護(hù)具儲存,首先是AD芯片轉(zhuǎn)換之后的數(shù)據(jù)進(jìn)行儲存,其次是對為ARM數(shù)據(jù)讀取所做的進(jìn)一步數(shù)據(jù)儲存和處理。該模塊中的兩個端口控制線、數(shù)據(jù)線以及地址線都相互獨立,可同時存取數(shù)據(jù)。具體設(shè)計中,這個雙端口形式的RAM模塊主要是通過對Altera中帶有的參數(shù)化模型庫調(diào)動來實現(xiàn)。
在該系統(tǒng)中,A/D形式的采樣模塊主要是按照ADS 1255中具體的轉(zhuǎn)換時序圖,讓時序控制信號從芯片引腳發(fā)出,以此來完成ADS1255的啟動、配置以及數(shù)據(jù)讀取等的各項操作。在對ADS1255進(jìn)行控制的過程中,首先需要對其參數(shù)配置進(jìn)行設(shè)置,并進(jìn)行數(shù)據(jù)模讀取,然后才可以啟動轉(zhuǎn)換,通過對ADS1255中DRDY信號的查詢,便可對是否完成了轉(zhuǎn)換進(jìn)行判斷,在轉(zhuǎn)換完成之后,系統(tǒng)便會按照Bit大小順序?qū)?shù)據(jù)讀出,并將數(shù)據(jù)輸出到串并轉(zhuǎn)換模塊中,對其進(jìn)行A/D轉(zhuǎn)換[3]。在每一次的采樣操作完成之后,采樣控制模塊都會停止下來,并等待下一次的觸發(fā)脈沖。
因為ADS1255的轉(zhuǎn)換結(jié)果輸出形式為串行輸出,所以在具體設(shè)計中,這一模塊需要再一次對串行輸出數(shù)據(jù)進(jìn)行轉(zhuǎn)換,使其變成并行輸出數(shù)據(jù)。本次設(shè)計中,主要借助于移位寄存器來滿足這一功能需求,而其移位信號則是通過AD采樣控制模塊來進(jìn)行提供。
在本次所設(shè)計的系統(tǒng)中,數(shù)據(jù)儲存控制模塊的主要功能是將五個通道中的24Bit數(shù)據(jù)通過串并轉(zhuǎn)換之后,再按照通道順序,以字節(jié)從低到高的次序中逐一將各個字節(jié)寫入到雙口形式的RAM中,所以就實際而言,這一模塊類似于字節(jié)并串轉(zhuǎn)換裝置。在這一模塊中,reg24Data-0-4這五路采樣數(shù)據(jù)是其輸入數(shù)據(jù);dataF字節(jié)數(shù)據(jù)是其輸出數(shù)據(jù),wernF是雙口形式的RAM寫控信號數(shù)據(jù)。為確保該模塊的應(yīng)用效果,本次設(shè)計中特對其進(jìn)行了仿真,具體仿真中,其輸入數(shù)據(jù)為0x030103、0x060504、0x090807、0x121110以及0x151413,在將這五路采樣數(shù)據(jù)輸入之后,其輸出的字節(jié)數(shù)據(jù)是10-15,同時可以寫入到RAM中[4]。由此可見,本次的數(shù)據(jù)儲存和控制模塊設(shè)計滿足該系統(tǒng)的實際設(shè)計需求。
在本次所研究的系統(tǒng)中,ARM模塊的主要作用是給ARM和FPGA與雙口形式的RAM提供出一個交互的橋梁。在通過RAM將采集參數(shù)信息寫入到控制儲存器的過程中,接口模塊便會向采集選擇以及通道模塊進(jìn)行相應(yīng)信息的通知。在通過ARM對雙口形式RAM內(nèi)的數(shù)據(jù)進(jìn)行讀取的過程中,接口模塊便會進(jìn)行ARM訪問地址的譯碼操作,在選中了相應(yīng)儲存空間之后,便可將數(shù)據(jù)取出。
綜上所述,在數(shù)據(jù)多通道采集系統(tǒng)的設(shè)計中,通過FPGA以及ARM這兩者的結(jié)合應(yīng)用,可有效實現(xiàn)多通道條件下的高精度數(shù)據(jù)采集和數(shù)據(jù)處理?;诖?在該系統(tǒng)的具體設(shè)計中,設(shè)計者應(yīng)該將FPGA作為系統(tǒng)核心,以此來實現(xiàn)數(shù)據(jù)采集、轉(zhuǎn)換、處理以及傳輸?shù)鹊母黜棽僮骺刂?然后通過ARM來進(jìn)行采樣數(shù)據(jù)的儲存和相應(yīng)處理。在此過程中,設(shè)計者應(yīng)格外重視FPGA中的各個邏輯模塊設(shè)計。通過這樣的方式,才可以讓FPGA在數(shù)據(jù)多通道采集系統(tǒng)中發(fā)揮出充分的技術(shù)優(yōu)勢,解決傳統(tǒng)數(shù)據(jù)多通道采集系統(tǒng)中的技術(shù)弊端,實現(xiàn)相應(yīng)數(shù)據(jù)的全面、精確獲取,為各方面工作提供足具科學(xué)性的技術(shù)與數(shù)據(jù)支撐,以此來有效促進(jìn)相關(guān)領(lǐng)域的良好發(fā)展。
引用
[1] 賈亮,叢龍杰.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)研究[J].電腦與信息技術(shù),2021(3):69-71.
[2] 錢素琴,孫悅.基于AD9226的FPGA高速數(shù)據(jù)采集電路設(shè)計[J].電子測試,2021(11):5-8.
[3] 孫嘉霖,李艷輝,霍琦,等.基于FPGA的六維并聯(lián)機(jī)構(gòu)的數(shù)據(jù)采集系統(tǒng)設(shè)計[J].機(jī)電工程技術(shù),2021(5):121-124.
[4] 李茂林.多路數(shù)據(jù)采集傳輸系統(tǒng)的FPGA設(shè)計與實現(xiàn)[J].計算機(jī)時代,2021(4):49-53.