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