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