李 媛,王 暢,郭建新,劉尚峰③
(①空軍工程大學 電訊工程學院,陜西 西安 710077;②華北水利水電學院,河南 鄭州 450011;③空軍雷達學院,湖北 武漢 430019)
數據采集處理技術是現代信號處理的基礎,廣泛應用于雷達、通信、遙測遙感等領域。隨著信息科學的飛速發展,人們面臨的信號處理任務愈來愈繁重,對數據采集處理系統的要求也愈來愈高[1]。數字采集卡[2]是現代數字通信接收機和信號分析處理的常用設備,其基本功能就是對接收到的模擬信號進行受控采樣,獲得滿足要求的數字信號。常用的數據采集方案往往采用單片機(MUC)或數字信號處理器(DSP)作為控制器,以控制模數轉換器(AD)、存儲器和其他外圍電路的工作,但因單片機自身指令周期及處理速度的影響,很難達到多通道高速數據采集系統的要求,雖然 DSP可以實現較高速的數據采集,但在提高其速度的同時,也增加了系統成本[3]。由于FPGA[4]技術具有工作頻率高,設計靈活,可編程性好,適合于時序、組合邏輯電路應用等特點,使得FPGA在實現數據采集上有著不可比擬的優勢?;贔PGA平臺,運用VHDL語言[5]設計并實現數據采集控制電路系統,最大限度地提高信號采集和處理能力。
系統的設計需求如下:
①采樣率:20 MHz和20.32 MHz可選,通過外部選擇信號控制;
②采樣位寬:12 bits;
③采樣開始條件:支持軟件軟觸發和外部硬觸發;
④采樣批次控制:通過控制可以實現一次采1、2、4、8或16批數據;
⑤采樣深度控制:每一批深度可分別為128、256、512、1024、2048、4096、8192、16384。
⑥采樣時延控制:接收到采樣開始命令后,要延時規定時間才能進行采樣,延時時間為 16、32、64、128、512、1024、2048、4096個采樣時間。
采用自頂向下的設計思路,將控制電路各功能對應到各個具體設計模塊,將系統劃分為以下4個模塊:時鐘產生與選擇模塊、延時控制模塊、深度和批次控制模塊、存儲輸出模塊。其組成如圖1所示。

圖1 系統組成
其中,時鐘產生與選擇模塊的主要功能是對外部輸入的2個時鐘信號源進行選擇,并輸出其中一個作為整個控制系統的主時鐘;時延控制模塊的主要功能是接收到觸發脈沖后,對其進行規定時長延遲處理后,輸出使能信號至采樣深度和批次模塊;深度和批次控制模塊的主要功能是在時延控制模塊使能信號的控制下,按照規定深度和批次對信號進行采樣,并產生寫地址、讀地址和存儲輸出使能控制信號至存儲和輸出控制模塊;存儲和輸出模塊的主要功能是在深度和批次控制模塊寫地址、讀地址和存儲輸出使能信號的控制下,對輸入采樣信號進行緩存和輸出。
系統工作流程如圖2所示,可歸納為4步。①讀取時鐘選擇信號,進行主時鐘選擇;②等待采樣觸發信號,收到,系統跳入下一步,否則等待;③讀取采樣延時控制字,并延時處理,滿足控制要求跳入下一步,不滿足則繼續延時處理;④讀取采樣深度和批次控制字,對輸入信號進行采樣、緩存、讀取處理,滿足控制要求停止操作轉入初始等待狀態,不滿足則繼續處理。需要指出的是,存儲操作和讀取操作之間有3個時鐘差,外部表現為RAM存儲操作第3個采樣數據后,讀取操作開始。
2.2.1 時鐘產生與選擇模塊
該模塊在設計時采用模塊庫中的ALTCLKCTRL元件。其工作原理是通過時鐘選擇器通過電平變化控制20 MHz和20.32 MHz時鐘輸出。
2.2.2 延時控制模塊
延時控制模塊的工作原理是接收到采樣使能信號后,通過比較器對計數結果與延時控制字進行比較后,到達延時規定時間時產生采樣開始使能信號,并輸出至后續模塊,延時時間為16、32、64、128、512、1024、2048、4096 個采樣時間。

圖2 系統總體流程
2.2.3 深度和批次控制模塊
如圖3所示是深度和批次控制模塊的設計原理圖,可看到該模塊由深度和批次控制部分、寫地址產生器、讀地址產生器3部分組成。

圖3 深度和批次控制模塊
深度和批次控制部分由非門、D觸發器、“sampling_ctrl”和 “en_gate”塊構成?,F對“sampling_ctrl”4 個輸出端口的功能進行簡要說明:①“ctrl”:當完成1個批次的采樣后,輸出一個脈沖,對地址產生器進行清零。完成全部批次采樣后,保持高電平“1”;②“stuck1”:經過非門和“en_gate”處理,產生寫計數器和寫存儲器的使能信號“wren”;③“stuck2”:經過非門、“en_gate”和延遲處理,產生讀計數器和讀存儲器的使能信號“rden”;④“done”:采樣結束后,產生清零脈沖,輸出至延時計數、地址計數、存儲輸出等模塊。
地址產生器,利用模塊庫中的LPM_COUNTER元件,將時鐘、使能和清零信號“ctrl”分別接入對應端口,實現對存儲輸出模塊的地址選擇。
2.2.4 存儲輸出模塊
該模塊采用模塊庫中的LPM_RAM_DP元件,其工作原理是在寫地址、讀地址和存儲讀取使能信號的共同控制下,對端口輸入的采樣數據進行緩存和讀取輸出。
采用Quartus Ⅱ[6]Simulator進行時序仿真和功能驗證。如表1所示。

表1 主要控制端口功能說明
通過對上述控制端口的選項進行逐個測試,時序仿真結果均滿足預定的各項要求。
現選擇時鐘“clk1”,延時64個時鐘、深度控制128點、批次控制3為例進行仿真驗證。結果如圖4所示,在對“ready”觸發脈沖進行 64個時鐘延遲后,采樣控制電路對測試信號進行采樣存儲操作,經過3個時鐘的延遲處理后,對存儲的采樣數據進行同步讀取。
在每批次完成后,寫地址和讀地址計數器分別進行清零操作,值得注意的是由于讀地址計數器計數開始時間稍晚于寫地址計數器,故其清零也較寫地址計數器有所延遲。最后,在所有采樣緩存、讀取操作完成后,各控制端口收到清零信號,恢復等待狀態。

圖4 系統時序仿真驗證
對其他參數做了相應仿真驗證,實現了此控制電路的各項功能,限于篇幅,不再贅述。
基于FPGA平臺,采用原理圖設計輸入和硬件描述語言設計輸入相結合的方式,實現了可變參數數字采集器的多采樣率、多深度、多批次以及多采樣時延控制功能。電路的設計提高了數據采集的直觀可控性,參數調節方便,有重要的應用價值,進一步可增加其他如顯示、繪圖、打印的功能并可實現可視化的人機界面。實際測試和應用表明,可廣泛應用各種過程控制和自動化過程中。
[1] 牛國朋,袁洪,范建軍.一種基于FPGA和DSP的高性能PCI數據采集處理卡設計[J]. 《微計算機信息》(嵌入式與 SOC)2006(22):137-139.
[2] 朱志亮,邱紹峰.基于FPGA的STM-1數據采集卡的硬件設計[J].通信技術,2007,40(11):262-264.
[3] 王永水,任勇峰,焦新泉.基于FPGA的160路數據采集系統設計[J].國外電子元器件,2008(10):4-5.
[4] 樂健,陳紹偉,吳婷婷.基于FPGA的PCI接口的設計與實現[J].信息安全與通信保密,2010(05):41-43.
[5] 姜立東.VHDL語言程序設計及應用 [M]. 第2版.北京:北京郵電大學出版社,2004:152-168.
[6] 褚振勇 齊亮.FPGA設計與應用 [M].第2版.西安:西安電子科技大學出版社,2006:139-179.