摘 要: 針對復雜液壓系統數據采集" title="數據采集">數據采集的特點,采用數據流驅動" title="數據流驅動">數據流驅動多模塊并行" title="多模塊并行">多模塊并行技術和USB2.0" title="USB2.0">USB2.0接口,設計了基于CPLD" title="CPLD">CPLD+FX2的高速便攜式數據采集系統,同時給出了自主開發的USB設備在LABVIEW" title="LABVIEW">LABVIEW中的簡便驅動方法。實踐表明,該方案大大提高了系統的采集、傳輸速率,具有電路設計簡單、可靠性高和易移植等特點。
關鍵詞: CPLD 數據流驅動 多模塊并行 USB2.0 LABVIEW 數據采集
液壓系統具有結構輕小、傳動比大、運行平穩、易于實現無級調速和自動化等優點, 已被廣泛應用于工業生產的各個領域。但液壓傳動系統(特別是大型液壓系統) 也存在一些缺點, 主要是結構復雜、其內部狀態難以檢測, 給液壓系統的狀態監測和日常維護帶來一定的困難。因此如何提取系統的特征信號,有效地對液壓系統進行狀態監測,及時發現故障和隱患, 有著十分重要的工程意義。
目前國內專門針對液壓系統的數據采集產品比較少,而且存在諸如采集參數選擇不當或不夠、采集速率偏低、未能準確反映液壓系統的工作狀況、接口不利于安裝或傳輸速度太慢等問題。本文設計了一種基于CPLD(復雜可編程邏輯器件)+FX2(單片機CY7C68013)的便攜式高速數據采集系統,采用了數據流驅動多模塊并行技術和USB2.0接口。實踐證明,該方案結構簡單,成本低廉,實時同步采集和傳輸速度相當于DSP系列的數據采集產品。
1 設計思路
數據采集包括采集量到電參量的轉換、信號調理、模/數轉換、數據緩沖、數據發送等幾部分。一般采用主控芯片直接控制模/數轉換、數據緩沖、數據發送等模塊順序執行的方式,如圖1(a)所示。要達到較高的采集速度,必須使用如DSP等高速主控芯片,為此而增加了系統成本和軟、硬件的調試難度。
本設計選用Cypress公司帶智能USB接口引擎和4K FIFO的單片機CY7C68013(FX2),其USB數據發送部分可獨立自動執行。選用Altera公司的CPLD器件EPM7128,采用VerilogHDL語言編程,設計模/數轉換、數據緩存集成控制電路。并采用數據流驅動多模塊并行技術,當模塊執行所需的數據滿足條件時立即執行,三種模塊可并行執行,如圖1(b)所示,從而可通過低主頻CPU來控制高速數據采集。
上位機軟件采用美國國家儀器公司的LabVIEW語言編寫。基于圖形化編程的G語言使得上位機軟件的開發效率大大提高。特別是其NI-VISA3.0(Virtual Instrumentation Software Architecture)控件的推出,可以通過調用其標準化面向具體功能的、通用儀器的API(Application Programmer Interface)驅動接口實現自主開發的USB設備的驅動。
2 硬件設計
系統硬件配置如圖2所示。液壓系統中的壓力、流量、溫度以及振動頻率等模擬量通過傳感器變換為電信號后,經放大、緩沖、濾波等調理電路處理后,由模擬開關電路選擇后送A/D芯片(AD574)轉換成數字信號,并寫入FX2內置的FIFO,由內部集成的USB控制器自動發往上位機,完成數據采集。CPLD控制器除控制模擬開關電路和ADC(模/數轉換電路)外,還控制將采集得到的數據寫入FX2的FIFO。控制器設計采用數據流驅動多模塊并行技術,以提高控制電路的執行效率。系統固件程序燒錄于E2PROM中,通電或復位時,FX2自動加載。系統配備了直流電源,以滿足室外便攜采集的需要。
3 軟件設計
3.1 CPLD程序設計
CPLD內含ADC采集控制和FIFO控制兩個模塊,A/D采集控制模塊包括通道選擇、轉換時序發生和轉換狀態檢測等部分,FIFO控制模塊實現FIFO的寫時序控制。FIFO寫控制模塊采用轉換數據為觸發條件,當A/D轉換完成并把數據送到總線時,發出寫FIFO觸發脈沖,FIFO寫控制模塊將總線數據寫入FIFO;A/D采集控制模塊則以自身的采集數據狀態和FIFO寫完成作為執行條件。兩個模塊在單片機控制下并行執行,與此同時,當FIFO寫滿,智能USB控制器將FIFO內的數據發往上位機,實現了低主頻CPU控制高速同步數據的采集和傳輸。由于USB控制器的傳輸率可高達480Mbps,采用兩片FIFO緩沖,采集頻率低于10MHz則可避免因USB傳輸丟失數據。
3.1.1 A/D采集控制模塊
AD574獨立操作模式(stand alone)工作時,通過R/C腳進行轉換和讀取控制,同時需要監控STATUS腳,在A/D芯片轉換完畢后將12位轉換數據并行輸出到總線,同時輸出寫FIFO觸發脈沖。圖3所示為ADC控制器流程圖,據此可設計相應的VerilogHDL程序。
3.1.2 FIFO控制模塊
CY68013除自帶USB2.0控制器外,還有一個4K×8b的FIFO,共分成4個端點,端點大小和緩沖層次可編程設置。本文設置成SLAVE FIFO工作模式,兩個上傳FIFO片(端點)。通過SLWR控制總線上的數據寫入FIFO。當數據寫滿一片FIFO時,FIFO控制模塊切換地址,以避免數據丟失,保證轉換、發送的連續性。寫滿數據的端點由USB控制器自動發送。
如果在采集過程中FIFO控制器接到停止采集命令后,FIFO控制模塊產生PKTEND信號,指示USB控制器將采集停止后未滿FIFO中的剩余數據發往上位機。
3.2 底層固件及設備驅動
高速數據采集系統軟件設計分為兩部分:USB外設端的固件程序和主機操作系統上的主機應用軟件。主機應用軟件采用LabVIEW編寫,本文主要介紹基于LabVIEW的自主開發的USB設備簡便驅動方法。
3.2.1 固件程序
固件程序功能比較復雜,采用Keil uVsion2集成環境進行單片機C語言開發,完成源代碼的編寫、仿真和調試。固件程序包括主程序Main()、設備描述符表DSCR.A51、固件程序源碼FW.C、用戶程序Ad_control.c等部分。固件程序流程如圖4所示。
固件程序調試編譯成功后,將其轉換成C2文件,通過Cypress公司提供的控制面板下載至E2PROM中。當系統加電或復位時,會自動檢查E2PROM的第1個字節,如該字節為C2,則由E2PROM加載USB設備的相關信息和固件程序,進行重枚舉。
3.2.2 基于LabVIEW的USB設備驅動程序
客戶應用軟件在操作系統中處于用戶態,不能直接對USB設備進行操作。通常是采用DDK直接編寫驅動程序,也可用DriverStudio或windriver產生驅動程序框架,再添加自己的代碼,編譯出驅動程序。雖然LabVIEW與NI公司的硬件接口編程非常方便,但對于自主開發的USB設備,并不具有通用性。用戶不僅要設計驅動程序,還要在此基礎上編寫USB.DLL,用于LabVIEW與USB接口。VISA通用的儀器驅動軟件結構是VPP(VXI Plug&Play)聯盟制定的新一代儀器I/O標準,具有與儀器接口和具體計算機無關的特性,特別是VISA3.0的推出,提供了自主開發或第三方USB設備在LabVIEW中的簡便驅動方法。
本文利用NI-VISA3.3,直接調用驅動開發向導(Driver Development Wizard),根據設備的PID、VID以及生成廠家、產品名稱等重要參數生成inf文件。安裝此文件后調用MAX(Measurement&Automation Explore)即可以看到設備安裝成功,如圖5所示。
在實際操作過程中,需特別注意在安裝VISA生成的驅動程序時,不能安排設備的Windows驅動程序,否則LABVIEW無法正常調用VISA開發的驅動程序,發現不了USB設備。
4 實驗與分析
采用本文所述的采集系統對某一高頻液壓沖擊器工作時的工作壓力(1)、回油壓力(2)和沖擊活塞運動速度(3)進行了現場實時數據采集,如圖6所示,其最高采集頻率為28.6kHz。采集數據準確反映了研究對象的狀態,完全滿足設計目標需要。
基于項目的需要,選用的A/D芯片(AD574)其采集頻率為28kHz,如欲進行更高速率的數據采集,只需更改A/D轉換芯片部分的硬件電路和CPLD與A/D轉換相關的程序。由于系統采用了數據流驅動多模塊并行技術,在成本增加不多的情況下達到了非常高的采集和傳輸速率。從理論上分析,如果A/D轉換芯片選擇適當,系統采集頻率可以達到10MHz。
本文提出的液壓系統數據采集方案,利用廉價的單片機FX2+CPLD,采用數據流驅動多模塊并行體系結構和USB接口,以取代DSP為主控芯片進行高速、實時同步液壓數據采集,可以方便地移植于其他高速數據采集系統中,且成本低,可靠性高。同時,提出了自主開發的USB設備在LabVIEW中的簡便驅動方法。
參考文獻
1肖金球. 高速多路實時數據采集處理系統設計[J].計算機工程, 2004;(24):180~182
2 蔡菲娜. 利用FPGA實現DMA方式的高速數據采集[J].微電子學與計算機,2005;(3):239~241
3 石 磊. 一種基于單片機的高速數據采集系統的設計與實現[J].電測與儀表,2005;(1):53~54
4 Cant C. WindowsWDM設備驅動程序開發指南[M].北京:機械工業出版社,2000
5 張 凱. LabVIEW 虛擬儀器工程設計與開發[M].北京:國防工業出版社,2004