岳小宣
(北京航星機(jī)器制造有限公司,北京 100080)
近年來,信號(hào)的采集與處理領(lǐng)域發(fā)展迅速,信號(hào)采集技術(shù)是指將實(shí)際的物理信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)的過程,它包括傳感器、模擬電路、模數(shù)轉(zhuǎn)換器等部件。信號(hào)采集技術(shù)的發(fā)展趨勢(shì)是提高采樣率、分辨率、動(dòng)態(tài)范圍和抗干擾能力,以及實(shí)現(xiàn)多通道、多模態(tài)、多功能的信號(hào)采集系統(tǒng)。利用信號(hào)采集和處理技術(shù)解決的實(shí)際問題包括了通信、圖像、聲音、生物醫(yī)學(xué)、工業(yè)控制等多個(gè)方面。當(dāng)前常用的采集系統(tǒng)大多采用單片機(jī)來控制A/D 轉(zhuǎn)換、驅(qū)動(dòng)存儲(chǔ)芯片和其他功能的外圍電路來實(shí)現(xiàn)采集功能,單片機(jī)為主控芯片的系統(tǒng)構(gòu)造其采集速度受限于處理器的運(yùn)行速度和處理周期等影響,難以滿足對(duì)高速、大數(shù)據(jù)量信號(hào)的采集。對(duì)此問題,對(duì)國(guó)內(nèi)關(guān)于采集系統(tǒng)的設(shè)計(jì)進(jìn)行了研究,中北大學(xué)的周浩提出高速數(shù)據(jù)存儲(chǔ)的FPGA 實(shí)現(xiàn)方式,適配采集信號(hào)的實(shí)時(shí)存儲(chǔ),通過各個(gè)功能模塊協(xié)同完成信號(hào)采集與波形輸出功能。北京理工大學(xué)的胡東方設(shè)計(jì)實(shí)現(xiàn)了多通道高速采集、存儲(chǔ)與傳輸系統(tǒng),滿足多種應(yīng)用環(huán)境下對(duì)高速信號(hào)采集與傳輸?shù)男枨?。北京交通大學(xué)的陳源林等人結(jié)合了FPGA 和STM32微處理器的功能特點(diǎn),對(duì)各通道A/D 進(jìn)行并行控制,完成了超聲信號(hào)的同步采集,采集的數(shù)據(jù)有很好的同步性。通過對(duì)上述學(xué)者的研究分析,發(fā)現(xiàn)使用FPGA 芯片對(duì)通用信號(hào)的高速采集能夠充分發(fā)揮FPGA 芯片的并行處理的優(yōu)點(diǎn),對(duì)大容量、高速率的數(shù)據(jù)采集場(chǎng)合能夠完美實(shí)現(xiàn)。且近些年來,F(xiàn)PGA 制造行業(yè)飛速發(fā)展,許多FPGA制造廠商都已經(jīng)將FPGA 的工藝達(dá)到了納米級(jí),更加有利于處理高速運(yùn)算。因此,本系統(tǒng)采用基于FPGA 為主體同時(shí)驅(qū)動(dòng)A/D 模塊、DDR2 高速存儲(chǔ)模塊以及其他外圍電路的系統(tǒng)架構(gòu)。設(shè)計(jì)了一種基于FPGA 和DDR2 的通用信號(hào)采集系統(tǒng),該系統(tǒng)可以通過切換2 種采樣頻率分別為1Msps 和10Msps,實(shí)現(xiàn)對(duì)100KHz 以下的通用信號(hào)進(jìn)行高速采集。
根據(jù)系統(tǒng)的基本組成,結(jié)合信號(hào)采集需求,系統(tǒng)主要由A/D 信號(hào)采集驅(qū)動(dòng)模塊、DDR2 存儲(chǔ)驅(qū)動(dòng)模塊、時(shí)鐘模塊和頂層控制與顯示模塊組成。采集的信號(hào)通過BNC接口首先進(jìn)入A/D 轉(zhuǎn)換電路模塊完成A/D 轉(zhuǎn)換,之后在FPGA 的控制下數(shù)據(jù)存儲(chǔ)進(jìn)入DDR2SDRAM 芯片中,使用兩塊DDR2 芯片,增加了存儲(chǔ)容量。采集信號(hào)數(shù)據(jù)最后通過串口發(fā)送至上位機(jī),對(duì)數(shù)據(jù)進(jìn)行顯示(圖1)。
圖1 通用信號(hào)高速采集系統(tǒng)整體結(jié)構(gòu)
硬件設(shè)備決定系統(tǒng)的上限,而對(duì)于信號(hào)高速采集系統(tǒng),硬件設(shè)備的性能將影響采集的信號(hào)的質(zhì)量、完整度和系統(tǒng)采集的速率。所以,要根據(jù)系統(tǒng)的需求設(shè)計(jì)硬件系統(tǒng),實(shí)現(xiàn)所需功能的同時(shí)適當(dāng)降低成本。主要分為采集部分和處理分析部分硬件設(shè)計(jì)需求。信號(hào)采集部分:采樣信號(hào)的完整度與質(zhì)量,是后續(xù)信號(hào)分析判定的基礎(chǔ)。信號(hào)采樣部分要實(shí)現(xiàn)的功能包括:(1)匹配阻抗,最大程度減小信號(hào)衰減;(2)濾除采集的干擾信號(hào),提高采集到的信號(hào)的信噪比;(3)實(shí)現(xiàn)對(duì)信號(hào)的高速采集,以便于保存信號(hào)的原本特征;(4)為采集的導(dǎo)波信號(hào)提供充足的存儲(chǔ)與緩存的空間,緩存大量采集到的波形信號(hào)數(shù)據(jù)。信號(hào)處理部分:該模塊主要完成此采樣信號(hào)的本地存儲(chǔ)與發(fā)送。根據(jù)系統(tǒng)包括的外設(shè)設(shè)備所消耗的I/O 資源數(shù)目以及引腳的所需的驅(qū)動(dòng)速度,選擇使用FPGA 來驅(qū)動(dòng)信號(hào)采集所需要的A/D 芯片和信號(hào)存儲(chǔ)所需要的DDR2SDRAM 芯片。硬件系統(tǒng)主要包括FPGA 最小系統(tǒng)以及本系統(tǒng)特有的A/D 采集模塊、DDR2SDRAM 模塊等。
軟件設(shè)計(jì)需求主要是所設(shè)計(jì)的上位機(jī)與FPGA 的串口通訊協(xié)議、將通過FPGA 串口發(fā)來的采集到的數(shù)據(jù)并通過波形顯示出來便于對(duì)信號(hào)的分析與處理。串口通訊采用的是RS485 通訊協(xié)議,一次發(fā)送的數(shù)據(jù)包括有10位數(shù)據(jù)其中1 位起始位、1 位停止位、8 位數(shù)據(jù)位。上位機(jī)軟件通過QT 界面設(shè)計(jì)軟件,使用其串口發(fā)送與接收模塊相關(guān)庫,將FPGA 傳來的數(shù)據(jù)重塑波形便于更直觀地顯示。
硬件系統(tǒng)主要完成信號(hào)的采集功能和信號(hào)存儲(chǔ)與傳輸功能。系統(tǒng)主體為一枚FPGA 芯片帶動(dòng)2 片高速A/D采集芯片、兩片DDR2 存儲(chǔ)芯片等(圖2)。
圖2 FPGA 數(shù)字硬件系統(tǒng)組成
系統(tǒng)FPGA 要完成的功能包括驅(qū)動(dòng)A/D 芯片采集輸入系統(tǒng)的信號(hào)、驅(qū)動(dòng)信號(hào)緩存和信號(hào)傳輸。系統(tǒng)圖如圖2 所示。該系統(tǒng)主要包括FPGA 最小系統(tǒng)單元、信號(hào)采集單元和信號(hào)存儲(chǔ)單元。FPGA 最小系統(tǒng)是指能夠使FPGA正常工作的必備系統(tǒng)構(gòu)造,其主要包括一個(gè)JTAG 程序下載接口、一個(gè)全局復(fù)位設(shè)計(jì)、電源電壓轉(zhuǎn)換模塊設(shè)計(jì)為FPGA 提供合適的工作電壓、晶振模塊為FPGA 提供系統(tǒng)時(shí)鐘以及LED 指示燈來指示程序下載和FPGA 是否正常工作。而信號(hào)采集單元包括兩塊A/D 芯片及其相關(guān)電路部分設(shè)計(jì)、信號(hào)存儲(chǔ)的單元包括兩片DDR2 芯片以及其相關(guān)電路部分設(shè)計(jì)和部分按鍵電路等。FPGA 端通過計(jì)算系統(tǒng)各個(gè)模塊所需的引腳資源個(gè)數(shù)、系統(tǒng)的采集速率需求從而來確定FPGA 的芯片選型。通過查找FPGA的芯片資料手冊(cè)進(jìn)行對(duì)FPGA 芯片的篩選。綜合評(píng)估系統(tǒng)所占用的引腳資源,最終確定使用EP4CE30F23C6 芯片。其邏輯資源(LE)為29000、最大嵌入式內(nèi)存為594Kb、外部?jī)?nèi)存支持DDR、最大用戶I/O 計(jì)數(shù)為532。
信號(hào)采集電路主要由換能器、信號(hào)放大電路、濾波電路和增益控制電路以及A/D 轉(zhuǎn)換電路組成。采集的信號(hào)往往會(huì)混入一些噪聲,如采集高速振動(dòng)信號(hào)或一些導(dǎo)波信號(hào)時(shí),如果不對(duì)其進(jìn)行處理,會(huì)對(duì)后續(xù)的信號(hào)分析造成一定的困難。而對(duì)不同類型信號(hào)的采集,其信號(hào)在傳輸過程中的頻散和衰減往往是不同的,對(duì)于不同種類的信號(hào)采集,需要?jiǎng)討B(tài)的進(jìn)行增益調(diào)節(jié)。針對(duì)以上信號(hào)的特點(diǎn),設(shè)計(jì)了通用信號(hào)采集電路的調(diào)理電路部分,能夠一定程度上提高采樣信號(hào)的信噪比。
(1)鉗位電路設(shè)計(jì)。為了保護(hù)后級(jí)的帶通濾波電路以及程控增益放大電路等在BNC 接口后加入鉗位電路,該電路利用了半導(dǎo)體二極管的單向?qū)ㄐ詠硐拗戚斎牒竺骐娐返碾妷?,?shí)現(xiàn)保護(hù)后級(jí)電路的作用。
(2)濾波器設(shè)計(jì)。在信號(hào)調(diào)理過程中,合適的濾波器的設(shè)計(jì)是提升采集信號(hào)的信噪比的重要一環(huán)。巴特沃斯濾波器、契比雪夫?yàn)V波器和貝塞爾濾波器,通過比較以上幾種濾波器的性能,發(fā)現(xiàn)巴特沃斯濾波器在通帶內(nèi)具有最大平坦幅度響應(yīng),較為適合作為本系統(tǒng)信號(hào)采集模塊的濾波器。本系統(tǒng)經(jīng)過綜合考慮選擇采用兩個(gè)二階巴特沃斯濾波器級(jí)聯(lián)作為帶通濾波電路設(shè)計(jì)方案。其結(jié)構(gòu)圖如圖3 所示。
圖3 巴特沃斯濾波器電路設(shè)計(jì)
由上述帶通濾波電路設(shè)計(jì)方案可得:
式中,B為帶寬;0ω為角頻率;G為增益。
由此可知,二階帶通濾波器得傳遞函數(shù)為:
則兩個(gè)二階級(jí)聯(lián)得巴特沃斯濾波器得傳遞函數(shù)為:
本系統(tǒng)所采集頻率在100kHz 以下的通用信號(hào),選取其中心頻率為60kHz,使用TINA 軟件對(duì)帶通濾波電路進(jìn)行仿真,得到如圖4 所示的濾波器特性圖,由圖不難看出,信號(hào)在通帶內(nèi)衰減系數(shù)平坦,達(dá)到了系統(tǒng)的需求。
圖4 帶通濾波器特性曲線
(3)信號(hào)放大電路設(shè)計(jì)。信號(hào)放大電路設(shè)計(jì)方案采用AD603 如圖5 所示,根據(jù)其技術(shù)手冊(cè)設(shè)計(jì)了外圍電路。該器件會(huì)跟隨增益提高,減小信噪比。為了進(jìn)一步增高整個(gè)信號(hào)采樣模塊的信噪比,在該器件后級(jí)增添了一個(gè)同相放大器,使得調(diào)理電路信噪比繼續(xù)降低。
圖5 增益控制電路
(4)采樣電路設(shè)計(jì)。采用了AD9226 器件作為信號(hào)采樣電路主要轉(zhuǎn)換器件,同時(shí)使用型號(hào)為EP4CE30F23C6的FPGA 芯片可以驅(qū)動(dòng)兩片AD9226 芯片。
A/D 采集模塊的程序流程圖如圖6 所示,當(dāng)系統(tǒng)全局復(fù)位后進(jìn)入IDLE 空閑態(tài),當(dāng)接收到采樣開始觸發(fā)脈沖后進(jìn)EXCITE 激勵(lì)態(tài),否則保持空閑態(tài),在激勵(lì)態(tài)中,判斷采樣點(diǎn)的數(shù)據(jù)是否大于設(shè)定的采集電壓閾值,如果大于則進(jìn)入ADSAM 采樣態(tài),開始進(jìn)行A/D 采樣,在采樣過程中將采樣點(diǎn)數(shù)據(jù)緩沖至FIFO 中,如此循環(huán)直至實(shí)際采樣點(diǎn)數(shù)大于預(yù)設(shè)的采樣點(diǎn)數(shù)。查詢A/D 采樣是否結(jié)束之后,進(jìn)入空閑態(tài)等待下一次采集開始。
圖6 A/D 轉(zhuǎn)化模塊程序流程圖
本系統(tǒng)采用MT47H64M16DDR2 芯片作為存儲(chǔ)器,容量為1Gbit。其物理接口主要包括差分時(shí)鐘信號(hào)線CK/CK#,指令線DQ。DDR2 讀寫數(shù)據(jù)是在差分時(shí)鐘的上下沿交錯(cuò)時(shí)進(jìn)行的,DQS/DQS#上下沿交錯(cuò)時(shí)數(shù)據(jù)讀出或?qū)懗觯WC了數(shù)據(jù)的準(zhǔn)確與有效性。
Intel 提供了具有ALTMEMPHY IP 的DDR2 SDRAM 控制器提供了簡(jiǎn)化的接口。DDR2 SDRAM 控制器是用來控制和管理DDR2 SDRAM 的操作,包括讀、寫、預(yù)充電等操作。它與CPU 或其他主控制器之間進(jìn)行數(shù)據(jù)交互,從而實(shí)現(xiàn)對(duì)DDR2SDRAM 的控制。而ALTMEMPHY 是一種IP 核,用于物理內(nèi)存設(shè)備和內(nèi)存控制器之間的接口。它實(shí)現(xiàn)了DDR2 SDRAM 標(biāo)準(zhǔn)中規(guī)定的物理層協(xié)議,包括傳輸數(shù)據(jù)和同步時(shí)序。通過ALTMEMPHY,DDR2 SDRAM 控制器可以與DDR2 SDRAM 進(jìn)行高速、穩(wěn)定的數(shù)據(jù)傳輸。因此,通過使用標(biāo)準(zhǔn)的DDR2 的IP 核,可以實(shí)現(xiàn)高效、穩(wěn)定、可靠的DDR2 SDRAM 操作。
DDR2 高速數(shù)據(jù)存儲(chǔ)器狀態(tài)遷移從上電復(fù)位開始,上電復(fù)位后處在空閑態(tài)(IDEL),檢測(cè)到A/D 采樣連接的FIFO 模塊非空,進(jìn)入讀FIFO 態(tài)(RD_FIFO)后自動(dòng)遷移至寫DDR2 態(tài)(WR_DDR2),每寫入一次數(shù)據(jù)地址累加,如此循環(huán),直至A/D 采樣FIFO 為空,整個(gè)寫入DDR2 流程結(jié)束。當(dāng)處在空閑態(tài)時(shí),收到上層模塊發(fā)出的RD_PLUSE 脈沖之后,進(jìn)入讀激活態(tài)(RD_ACTIVE)鎖存地址數(shù)據(jù)和將要讀出的點(diǎn)信息,然后移至讀DDR2 態(tài)(RD_DDR2),讀出數(shù)據(jù)后自動(dòng)進(jìn)入寫FIFO 態(tài)(WD_FIFO)將讀出的數(shù)據(jù)先暫時(shí)緩存在和DDR2 連接的FIFO 中,之后移入讀檢查態(tài)判斷讀取的點(diǎn)數(shù)是否滿足,若不滿,則在此進(jìn)入讀DDR2 態(tài),若滿足則回到空閑態(tài)(IDEL)。這樣一次完整的讀寫流程就走完了。
(1)DDR2 存儲(chǔ)數(shù)據(jù)功能測(cè)試。通過上層邏輯控制模塊向本邏輯模塊發(fā)送存儲(chǔ)開始同步脈沖,收到后開始向采樣緩沖區(qū)FIFO 中寫入0-255 的數(shù)據(jù),通過查詢異步FIFO 是否為空,自動(dòng)向DDR2 芯片寫入。如圖7 所示為存儲(chǔ)結(jié)果,當(dāng)local_init_done 為高(‘1’)后,即DDR2 芯片初始化完成之后,將異步FIFO 中的數(shù)據(jù)先傳給Local_wdata,等待突發(fā)寫脈沖信號(hào)到達(dá)(Local_burstbegin)同時(shí)拉高一個(gè)脈沖的突發(fā)寫數(shù)據(jù)控制請(qǐng)求(Local_write_req)等待DDR2 控制器就緒標(biāo)志信號(hào)(Local_ready)為“1”后,數(shù)據(jù)存入DDR2,通過觀察可知,存入DDR2 的數(shù)據(jù)和采樣FIFO 中的數(shù)據(jù)相同,寫入時(shí)序正確。說明采樣數(shù)據(jù)存儲(chǔ)邏輯功能測(cè)試正確。
圖7 數(shù)據(jù)存儲(chǔ)功能測(cè)試
(2)采樣數(shù)據(jù)讀出邏輯功能測(cè)試。通過上層邏輯控制模塊向本邏輯模塊發(fā)送讀數(shù)據(jù)開始同步脈沖(RD_PLUAE),收到后通過設(shè)置讀取數(shù)據(jù)首地址信息和讀取數(shù)據(jù)的長(zhǎng)度信息,首地址設(shè)為初始地址“0”,讀取的數(shù)據(jù)量長(zhǎng)度為255,每個(gè)讀請(qǐng)求到來,讀出一次數(shù)據(jù)。如圖8 為測(cè)試結(jié)果,當(dāng)local_init_done為高(‘1’)后,即DDR2 芯片初始化完成之后,等待突發(fā)讀寫脈沖信號(hào)到達(dá)(Local_burstbegin)同時(shí)拉高一個(gè)脈沖的突發(fā)讀請(qǐng)求(Local_read_req)等待DDR2 控制器就緒標(biāo)志信號(hào)(Local_ready)為高后,數(shù)據(jù)讀出DDR2,當(dāng)讀取數(shù)據(jù)有效標(biāo)志信號(hào)(Local_read_valid)發(fā)出一次脈沖信號(hào)后,代表成功讀出一次數(shù)據(jù),讀出數(shù)據(jù)依次從0x00-0xFE遞增。當(dāng)達(dá)到設(shè)定的讀取數(shù)據(jù)長(zhǎng)度后,讀數(shù)據(jù)進(jìn)程結(jié)束,測(cè)試通過。
圖8 采樣數(shù)據(jù)讀出邏輯測(cè)試
為了驗(yàn)證本系統(tǒng)功能,本章主要進(jìn)行功能測(cè)試驗(yàn)證,實(shí)驗(yàn)驗(yàn)證本系統(tǒng)的通用信號(hào)采集基本功能。將本系統(tǒng)與實(shí)驗(yàn)室條件下常用儀器搭建的采集系統(tǒng)做對(duì)比,以此來驗(yàn)證本系統(tǒng)的采集和存儲(chǔ)能力?;谙到y(tǒng)需求,搭建采集系統(tǒng)平臺(tái)。
(1)采樣功能性測(cè)試。通過設(shè)置1/10Msps 兩種采集速率,分別進(jìn)行采樣實(shí)驗(yàn)測(cè)試,如圖9 展示了1Msps 下和10Msps 下的采樣結(jié)果。
圖9 采樣速率1Msps 與10Msps 測(cè)試
(2)采集性能以及誤差分析、使用高性能濾波器對(duì)比本系統(tǒng)還原采樣信號(hào)的能力,用兩種方式采集到的信號(hào)的均方誤差量化采集性能,誤差計(jì)算公式如(6)所示,式中,N為采樣點(diǎn)數(shù);iY為真值,為測(cè)量值。
結(jié)果如圖10 所示,分別為信號(hào)全貌圖和局部放大示意圖,結(jié)果表明,二者波形基本一致。在放大示意圖中可以看出本系統(tǒng)采集的波形數(shù)據(jù)更加平滑,均方誤差更小,經(jīng)計(jì)算其MSE= 0.00029,滿足測(cè)量要求。
圖10 信號(hào)全局與局部放大對(duì)比圖
本文分析了信號(hào)采集的方法以及高速采集相關(guān)理論背景,闡述了國(guó)內(nèi)外學(xué)者針對(duì)本論文研究方面的理論、技術(shù)和方法。本文所設(shè)計(jì)的系統(tǒng)主要從硬件和軟件兩個(gè)方面,設(shè)計(jì)了系統(tǒng)整體方案。完成了基于FPGA 的通用信號(hào)高速采集系統(tǒng)的A/D 采樣電路及驅(qū)動(dòng)器設(shè)計(jì)、高速讀取存儲(chǔ)器DDR2 的選型與讀寫控制器設(shè)計(jì),完成了對(duì)100Khz 以下的信號(hào)的采集電路的設(shè)計(jì)其中包括信號(hào)放大電路、濾波電路、增益控制電路以及A/D轉(zhuǎn)換電路的設(shè)計(jì),完成了系統(tǒng)的硬件平臺(tái)搭建。通過進(jìn)行實(shí)驗(yàn)驗(yàn)證系統(tǒng)的基礎(chǔ)功能,主要對(duì)系統(tǒng)的信號(hào)采集功能以及其采樣結(jié)果的準(zhǔn)確性方面進(jìn)行評(píng)估,得到了在1Msps/10Msps 采樣速率下,采樣結(jié)果的均方誤差MSE= 0.00029,誤差在毫伏級(jí),符合采集要求。綜合上述結(jié)果,可得本通用信號(hào)高速采集系統(tǒng)的功能符合設(shè)計(jì)需求。