一種基于arm的高速數(shù)據(jù)采集系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)采集系統(tǒng),尤其涉及一種基于ARM的高速數(shù)據(jù)采集系統(tǒng)。
【背景技術(shù)】
[0002]自20世紀(jì)下半葉以來(lái),微電子技術(shù)得到了迅速發(fā)展,集成電路設(shè)計(jì)和工藝技術(shù)水平有了很大的提高,單片集成度中每片已能包含上億個(gè)晶體管,手持式的嵌入式信號(hào)采集和處理系統(tǒng)的性能得到了極大的提升,使得其有機(jī)會(huì)應(yīng)用于許多更高端的科技領(lǐng)域。
[0003]在現(xiàn)代雷達(dá)系統(tǒng)、激光測(cè)距以及高能物理試驗(yàn)中往往產(chǎn)生寬帶信號(hào)或者上升沿比較陡的信號(hào)(一般10ns左右)。要對(duì)此類信號(hào)進(jìn)行數(shù)字化處理,要求A/D部分的采樣率至少應(yīng)該在200M/S以上。而對(duì)高頻采樣得到的數(shù)據(jù)存儲(chǔ),數(shù)據(jù)處理,例如波形存儲(chǔ)、波形還原顯示,頻譜分析等等,現(xiàn)階段主要是在臺(tái)式設(shè)備上實(shí)現(xiàn)的,價(jià)格也較高,采樣頻率50M的臺(tái)式數(shù)字存儲(chǔ)示波器動(dòng)輒要上萬(wàn)元。而現(xiàn)有的手持型設(shè)備,如美國(guó)fluk公司的產(chǎn)品,非常昂蟲(chóng)貝ο
【發(fā)明內(nèi)容】
[0004]本發(fā)明設(shè)計(jì)了一種基于ARM的高速數(shù)據(jù)采集系統(tǒng),該系統(tǒng)具有結(jié)構(gòu)上的靈活,性能上的高效,應(yīng)用廣泛。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:一種基于ARM的高速數(shù)據(jù)采集系統(tǒng),包括A/D轉(zhuǎn)換器、FPGA芯片、ARM處理器和IXD顯示屏;所述FPGA芯片上集成有快速鎖相環(huán)、4個(gè)雙時(shí)鐘FIFO緩存器、4個(gè)閾值比較器和雙端雙時(shí)鐘RAM ;所述A/D轉(zhuǎn)換器將高速數(shù)據(jù)采集并轉(zhuǎn)換成數(shù)字信號(hào)之后,分成4路傳入FPGA芯片,在FPGA芯片中,利用乒乓原理將數(shù)據(jù)4倍緩沖之后,存入FPGA芯片上的一塊雙端雙時(shí)鐘RAM,并作閾值比較,當(dāng)采集到的數(shù)據(jù)達(dá)到或超過(guò)閾值要求的時(shí)候,觸發(fā)相關(guān)信號(hào)中斷,ARM處理器提供雙端雙時(shí)鐘RAM的讀時(shí)鐘,讀取RAM中觸發(fā)點(diǎn)的前1024個(gè)點(diǎn)和后1024個(gè)點(diǎn),在FIQ中斷處理程序中將數(shù)值傳入ARM處理器,對(duì)數(shù)據(jù)作對(duì)應(yīng)處理之后在IXD顯示屏上加以顯示。
[0006]優(yōu)選地,所述A/D轉(zhuǎn)換器的型號(hào)為AD9841。
[0007]優(yōu)選地,所述FPGA芯芯片的型號(hào)為EP1S10F780C6。
[0008]優(yōu)選地,所述ARM處理器采用的CPU型號(hào)為EP7312。
[0009]優(yōu)選地,所述雙時(shí)鐘FIFO緩存器的大小為1KB,雙端雙時(shí)鐘的RAM的大小為4KB。
[0010]本發(fā)明提供了一種基于ARM的高速數(shù)據(jù)采集系統(tǒng),綜合ARM和FPGA 二者的優(yōu)點(diǎn),采用新型的ARM+FPGA體系結(jié)構(gòu),將主要的運(yùn)算和控制交給ARM實(shí)現(xiàn),功耗上避免了 FPGA的缺點(diǎn),而將前端的基本采集處理工作交給FPGA并行完成,在性能和涉及靈活上充分發(fā)揮了 FPGA的長(zhǎng)處,能夠?qū)崿F(xiàn)高速數(shù)據(jù)采集。由于本系統(tǒng)采用的結(jié)構(gòu)的靈活性,性能上的高效,其可以有廣泛的應(yīng)用。
【附圖說(shuō)明】
[0011]圖1為本發(fā)明的系統(tǒng)功能流程圖;
[0012]圖2為系統(tǒng)硬件架構(gòu)框圖。
【具體實(shí)施方式】
[0013]下面結(jié)合【具體實(shí)施方式】對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)敘述。
[0014]—種基于ARM的高速數(shù)據(jù)采集系統(tǒng),包括A/D轉(zhuǎn)換器、FPGA芯片、ARM處理器和IXD顯示屏;所述FPGA芯片上集成有快速鎖相環(huán)、4個(gè)雙時(shí)鐘FIFO緩存器、4個(gè)閾值比較器和雙端雙時(shí)鐘RAM ;所述A/D轉(zhuǎn)換器將高速數(shù)據(jù)采集并轉(zhuǎn)換成數(shù)字信號(hào)之后,分成4路傳入FPGA芯片,在FPGA芯片中,利用乒乓原理將數(shù)據(jù)4倍緩沖之后,存入FPGA芯片上的一塊雙端雙時(shí)鐘RAM,并作閾值比較,當(dāng)采集到的數(shù)據(jù)達(dá)到或超過(guò)閾值要求的時(shí)候,觸發(fā)相關(guān)信號(hào)中斷,ARM處理器提供雙端雙時(shí)鐘RAM的讀時(shí)鐘,讀取RAM中觸發(fā)點(diǎn)的前1024個(gè)點(diǎn)和后1024個(gè)點(diǎn),在FIQ中斷處理程序中將數(shù)值傳入ARM處理器,對(duì)數(shù)據(jù)作對(duì)應(yīng)處理之后在IXD顯示屏上加以顯示。
[0015]本發(fā)明研究基于ARMLinux的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)問(wèn)題。完成了以ARM+FPGA結(jié)構(gòu)為平臺(tái),ARMLinux為核心的系統(tǒng)的軟、硬件設(shè)計(jì)。從軟硬件兩方面入手,闡述了基于ARM處理器和FPGA芯片進(jìn)行高速數(shù)據(jù)采集的硬件系統(tǒng)設(shè)計(jì)方法,以及利用AIMLinux操作系統(tǒng)進(jìn)行高速數(shù)據(jù)采集的軟件程序設(shè)計(jì)問(wèn)題。硬件方面,為實(shí)現(xiàn)高速采集目的,選擇了AD公司的AD9481芯片。并在FPGA平臺(tái)上,基于乒乓原理,設(shè)計(jì)實(shí)現(xiàn)了多路FIFO緩沖和雙端口數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。利用閾值控制方式獲取目標(biāo)信號(hào),并觸發(fā)ARM平臺(tái)的外部FIQ,在FIQ中斷處理程序中通過(guò)GP10高速并行獲取觀察數(shù)據(jù)。軟件方面,為了更好更有效地管理和拓展系統(tǒng)功能,我們移植了 ARMLinux。在ARMLinux平臺(tái)上,設(shè)計(jì)實(shí)現(xiàn)了 EP7312平臺(tái)上的IXD設(shè)備驅(qū)動(dòng)程序和數(shù)據(jù)采集應(yīng)用程序。并通過(guò)修訂內(nèi)核,實(shí)現(xiàn)了利用FIQ機(jī)制高速獲取外部設(shè)備數(shù)據(jù),用戶進(jìn)程通過(guò)訪問(wèn)系統(tǒng)空間獲取實(shí)驗(yàn)數(shù)據(jù)并在LCD加以顯示。論文實(shí)現(xiàn)了利用FIQ機(jī)制控制前端外設(shè)進(jìn)行高速數(shù)據(jù)采集的系統(tǒng)功能。在前端采樣頻率達(dá)到125MHz時(shí),系統(tǒng)仍能夠正常地進(jìn)行數(shù)據(jù)采集、傳輸和顯示的工作。
[0016]關(guān)于硬件功能描述:
[0017]硬件部分包括了前端的ADC、利用FPGA搭建的緩沖模塊、ARM平臺(tái),需要完成的功能主要包括下面幾個(gè)方面,具體流程如圖1所示:
[0018]1)對(duì)高頻模擬信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù)字信號(hào),分成四路分別傳入對(duì)應(yīng)的FPGA緩沖模塊;
[0019]2)依據(jù)乒乓原理對(duì)數(shù)據(jù)進(jìn)行緩沖之后,存入雙端雙時(shí)鐘RAM之中;
[0020]3)對(duì)4個(gè)FIFO同時(shí)彈出四個(gè)8bit的數(shù)據(jù)逐個(gè)比較,假如達(dá)到或者超過(guò)閾值,需要觸發(fā)ARM平臺(tái)的FIQ中斷,按照FIQ例程要求進(jìn)行響應(yīng)動(dòng)作;
[0021]4)將FIFO每次彈出的4個(gè)8bit的值,拼接成32bit的長(zhǎng)字,并行放入用以臨時(shí)存儲(chǔ)數(shù)據(jù)的RAM之中;
[0022]5)將FPGA傳過(guò)來(lái)的數(shù)據(jù)存放入ARM平臺(tái)的內(nèi)存之中,供后續(xù)進(jìn)程讀取、處理并驅(qū)動(dòng)IXD顯示。
[0023]圖1表明了整個(gè)系統(tǒng)硬件層的體系結(jié)構(gòu)關(guān)系。為使整個(gè)結(jié)構(gòu)看起來(lái)清晰簡(jiǎn)潔,F(xiàn)PGA部分用以穩(wěn)定和分配時(shí)鐘的PLL并未在結(jié)構(gòu)中表示出來(lái)。同時(shí),當(dāng)ADC前端需要采集的信號(hào)電壓比較高時(shí),比如上千伏,需要在前端添加相應(yīng)規(guī)格的變壓器進(jìn)行比例調(diào)整,以保證輸入信號(hào)電壓值在ADC的正常工作電壓范圍之內(nèi)。
[0024]器件選擇和功能模塊劃分:
[0025]所述A/D轉(zhuǎn)換器的型號(hào)為AD9841。
[0026]所述FPGA芯芯片的型號(hào)為EP1S10F780C6。
[0027]所述ARM處理器采用的CPU型號(hào)為EP7312。
[0028]所述雙時(shí)鐘FIFO緩存器的大小為1KB,雙端雙時(shí)鐘的RAM的大小為4KB。
[0029]為了實(shí)現(xiàn)硬件功能設(shè)計(jì)和硬件結(jié)構(gòu)圖,我們采用了以下幾個(gè)器件來(lái)完成硬件結(jié)構(gòu)的搭建工作,我們?cè)趯?duì)應(yīng)的器件主要參數(shù)說(shuō)明后描述了其需要完成的功能:
[0030]前端高速ADC (模數(shù)轉(zhuǎn)換器)
[0031]該器件的核心芯片是AD公司的AD9481芯片,AD9481是一種采樣精度為8bit,最高采樣頻率達(dá)250MHz的ADC轉(zhuǎn)換芯片。其優(yōu)點(diǎn)之一,就是帶有解多路分用CMOS輸出以便于很容易地連接到現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)或者標(biāo)準(zhǔn)邏輯電路。為了降低ADC的成本和功耗,AD9481內(nèi)部包含了一個(gè)參照和跟蹤保持的電路,用戶只需要提供一個(gè)3.3V的電源電壓和一個(gè)差分解碼時(shí)鐘即可驅(qū)動(dòng)芯片正常工作。
[0032]AD9481的模擬輸入是一個(gè)差分緩沖,為了達(dá)到最好的動(dòng)態(tài)效果,在VIN+和VIN-兩個(gè)模擬輸入端口的阻抗需要匹配。另外,AD9481還針對(duì)外部定時(shí)信號(hào)和多個(gè)ADC同步等應(yīng)用,提供了兩個(gè)數(shù)字輸入端口。經(jīng)過(guò)前端變壓器調(diào)整之后,該ADC實(shí)際輸入信號(hào)電壓峰峰值最大不可超過(guò)IV。
[0033]作為一款新型的高速低功耗的ADC,AD9481內(nèi)部采用了流水線的結(jié)構(gòu),在實(shí)現(xiàn)高速的前提下保證了采樣精度。輸出由兩個(gè)輸出口(PORT A和PORT B)交叉輸出,每一路的輸出頻率為最高為125MHz,相位差為180°。AD9481的數(shù)字輸出是TTL-/CM0S-兼容的。
[0034]為了對(duì)應(yīng)這里的兩路輸出口,后面在FPGA前端輸入設(shè)計(jì)上作了一些簡(jiǎn)單調(diào)整,也就是4路FIFO每?jī)陕贩謩e對(duì)應(yīng)一個(gè)輸出口 A或B。在這里,該器件主要實(shí)現(xiàn)的功能是對(duì)高速數(shù)據(jù)進(jìn)行采樣之后,將模擬信號(hào)轉(zhuǎn)換成為數(shù)字信號(hào),然后分兩路傳入FPGA中,同時(shí)提供對(duì)應(yīng)通路的時(shí)鐘信號(hào)輸出(測(cè)試試中單路時(shí)鐘為62.5MHz)。
[0035]Stratix 開(kāi)發(fā)板
[0036]Altera公司的stratix開(kāi)發(fā)板是一個(gè)強(qiáng)大的FPGA平臺(tái),我們所采用的具體器件型號(hào)為L(zhǎng)PC2210,LPC2210是基于一個(gè)支持實(shí)時(shí)仿真和嵌入式跟蹤的16/32位144腳ARM7TDM1-S核的微控制器。它內(nèi)部包含ARM7TDM1-S核與片內(nèi)存儲(chǔ)器控制器接口的ARM7局部總線、與中斷控制器接口的AMBA高性能總線(AHB)和連接片內(nèi)外設(shè)功能的VLSI外設(shè)總線(VPBARM AMBA總線的兼容超集)。LPC2210 (LPC2210及其外部電路如附錄A)具有16KB片內(nèi)靜態(tài)RAM ;片內(nèi)外設(shè)與器件引腳的連接由引腳連接模塊控制,該模塊由軟件進(jìn)行控制以符合外設(shè)功能與引腳在特定應(yīng)用中的需求;通過(guò)外部存儲(chǔ)器接口可將存儲(chǔ)器配置成4組,每組的容量高達(dá)16MB。FPGA最顯著的特點(diǎn)之一是其并行特性,結(jié)合乒乓原理,我們利用VHDL語(yǔ)言和Quartus II提供的IP core,設(shè)計(jì)了一個(gè)4FIF0結(jié)構(gòu)對(duì)高速數(shù)據(jù)進(jìn)行緩沖,然后并行地對(duì)每一個(gè)輸出的數(shù)據(jù)進(jìn)行閾值檢測(cè)。假如沒(méi)有達(dá)到閾值條件,則將4個(gè)8bit的數(shù)值拼接之后放入一個(gè)雙端雙時(shí)鐘的RAM,否則,產(chǎn)生ARM平臺(tái)的外部FIQ中斷信號(hào),然后按照ARM平臺(tái)提供的讀時(shí)鐘,在RAM中從觸發(fā)點(diǎn)向前向后各取1024字節(jié)的值輸出。LPC2210芯片如附錄