<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 基于CPLD的高速數據采集系統的實(shí)現

基于CPLD的高速數據采集系統的實(shí)現

作者: 時(shí)間:2013-05-26 來(lái)源:網(wǎng)絡(luò ) 收藏
液壓系統具有結構輕小、傳動(dòng)比大、運行平穩、易于實(shí)現無(wú)級調速和自動(dòng)化等優(yōu)點(diǎn),已被廣泛應用于工業(yè)生產(chǎn)的各個(gè)領(lǐng)域。但液壓傳動(dòng)系統(特別是大型液壓系統)也存在一些缺點(diǎn)。主要是結構復雜、其內部狀態(tài)難以檢測,給液壓系統的狀態(tài)監測和日常維護帶來(lái)一定的困難。因此如何提取系統的特征信號。有效地對液壓系統進(jìn)行狀態(tài)監測,及時(shí)發(fā)現故障和隱患,有著(zhù)十分重要的工程意義。

  目前國內專(zhuān)門(mén)針對液壓系統的產(chǎn)品比較少,而且存在諸如采集參數選擇不當或不夠、采集速率偏低、未能準確反映液壓系統的工作狀況、接口不利于安裝或傳輸速度太慢等問(wèn)題。本文設計了一種基于(復雜可編程邏輯器件)+FX2(單片機CY7C68013)的便攜式系統,采用了數據流驅動(dòng)多模塊并行技術(shù)和USB2.0接口。實(shí)踐證明,該方案結構簡(jiǎn)單,成本低廉,實(shí)時(shí)同步采集和傳輸速度相當于DSP系列的產(chǎn)品。

  1 設計思路

  數據采集包括采集量到電參量的轉換、信號調理、模/數轉換、數據緩沖、數據發(fā)送等幾部分。一般采用主控芯片直接控制模,數轉換、數據緩沖、數據發(fā)送等模塊順序執行的方式,如圖1(a)所示。要達到較高的采集速度,須使用如DSP等主控芯片,為此而增加了系統成本和軟、硬件的調試難度。

  基于CPLD的高速數據采集系統的實(shí)現

  本設計選用Cypress公司帶智能USB接口引擎和4K FTFO的單片杌CY7C68013(FX2),其USB數據發(fā)送部分可獨立自動(dòng)執行。選用Altem公司的器件EPM7128,采用VefilogHDL語(yǔ)言編程,設計模/數轉換、數據緩存集成控制電路。并采用數據流驅動(dòng)多模塊并行技術(shù),當模塊執行所需的數據滿(mǎn)足條件時(shí)立即執行,三種模塊可并行執行,如圖1(b)所示,從而可通過(guò)低主頻CPU來(lái)控制數據采集。

  上位機軟件采用美國國家儀器公司的IabVIEW語(yǔ)言編寫(xiě)?;趫D形化編程的G語(yǔ)言使得上位機軟件的開(kāi)發(fā)效率大大提高。特別是其N(xiāo)I-VISA3.0(Virtual Instrumentation Software Arehitecture)控件的推出,可以通過(guò)調用其標準化面向具體功能的、通用儀器的API(Application Programmer Interface)驅動(dòng)接口實(shí)現自主開(kāi)發(fā)的USB設備的驅動(dòng)。

  2 硬件設計

  系統硬件配置如圖2所示。液壓系統中的壓力、流量、溫度以及振動(dòng)頻率等模擬量通過(guò)傳感器變換為電信號后,經(jīng)放大、緩沖、濾波等調理電路處理后,由模擬開(kāi)關(guān)電路選擇后送A/D芯片(AD574)轉換成數字信號,并寫(xiě)入FX2內置的FIFO,由內部集成的uSB控制器自動(dòng)發(fā)往上位機,完成數據采集。控制器除控制模擬開(kāi)關(guān)電路和ADC(模,數轉換電路)外,還控制將采集得到的數據寫(xiě)入FX2的FIFO??刂破髟O計采用數據流驅動(dòng)多模塊并行技術(shù),以提高控制電路的執行效率。系統固件程序燒錄于E2ROM中,通電或復位時(shí),FX2自動(dòng)加載。系統配備了直流電源,以滿(mǎn)足室外便攜采集的需要。

  基于CPLD的高速數據采集系統的實(shí)現

3 軟件設計

  3.1 CPLD程序設計

  CPLD內含ADC采集控制和FIFO控制兩個(gè)模塊,A/D采集控制模塊包括通道選擇、轉換時(shí)序發(fā)生和轉換狀態(tài)檢測等部分,FIFO控制模塊實(shí)現FIFO的寫(xiě)時(shí)序控制。FIF0寫(xiě)控制模塊采用轉換數據為觸發(fā)條件,當A/D轉換完成并把數據送到總線(xiàn)時(shí),發(fā)出寫(xiě)FIFO觸發(fā)脈沖,FIFO寫(xiě)控制模塊將總線(xiàn)數據寫(xiě)入FIFO;A/D采集控制模塊則以自身的采集數據狀態(tài)和FIFO寫(xiě)完成作為執行條件。兩個(gè)模塊在單片機控制下并行執行,與此同時(shí),當FIFO寫(xiě)滿(mǎn),智能USB控制器將FIFO內的數據發(fā)往上位機,實(shí)現了低主頻CPU控制高速同步數據的采集和傳輸。由于USB控制器的傳輸率可高達480Mbps,采用兩片FIFO緩沖,采集頻率低于10MHz則可避免因uSB傳輸丟失數據。

  3.1.1 A/D采集控制模塊

  AD574獨立操作模式(stand alone)工作時(shí),通過(guò)R/C腳進(jìn)行轉換和讀取控制,同時(shí)需要監控STATUS腳,在A(yíng)/D芯片轉換完畢后將12位轉換數據并行輸出到總線(xiàn),同時(shí)輸出寫(xiě)FIFO觸發(fā)脈沖。圖3所示為ADC控制器流程圖,據此可設計相應的VefilogHDL程序。

  基于CPLD的高速數據采集系統的實(shí)現

  3.1.2 FIFO控制模塊

  CY68013除自帶USB2.0控制器外,還有一個(gè)4K×8b的FIFO,共分成4個(gè)端點(diǎn),端點(diǎn)大小和緩沖層次可編程設置。本文設置成SLAVE FIFO工作模式,兩個(gè)上傳FIF0片(端點(diǎn))。通過(guò)SLWR控制總線(xiàn)上的數據寫(xiě)入FIFO。當數據寫(xiě)滿(mǎn)一片FIFO時(shí),FIFO控制模塊切換地址,以避免數據丟失,保證轉換、發(fā)送的連續性。寫(xiě)滿(mǎn)數據的端點(diǎn)由USB控制器自動(dòng)發(fā)送。

  如果在采集過(guò)程中FIFO控制器接到停止采集命令后,FIFO控制模塊產(chǎn)生PKTEND信號,指示USB控制器將采集停止后未滿(mǎn)FIF0中的剩余數據發(fā)往上位機。

  3.2 底層固件及設備驅動(dòng)

  高速數據采集系統軟件設計分為兩部分:USB外設端的固件程序和主機操作系統上的主機應用軟件。主機應用軟件采用LabVIEW編寫(xiě),本文主要介紹基于LabVIEW的自主開(kāi)發(fā)的USB設備簡(jiǎn)便驅動(dòng)方法。

  3.2.1 固件程序

  固件程序功能比較復雜,采用Keil uVsion2集成環(huán)境進(jìn)行單片機C語(yǔ)言開(kāi)發(fā),完成源代碼的編寫(xiě)、仿真和調試。固件程序包括主程序Main()、設備描述符表DSCR.A51、固件程序源碼FW.C、用戶(hù)程序Ad_control.c等部分。固件程序流程如圖4所示。

  基于CPLD的高速數據采集系統的實(shí)現

  固件程序調試編譯成功后,將其轉換成C2文件,通過(guò)Cypress公司提供的控制面板下載至E2pROM中。當系統加電或復位時(shí),會(huì )自動(dòng)檢查E2ROM的第1個(gè)字節,如該字節為C2,則由EWROM加載USB設備的相關(guān)信息和固件程序,進(jìn)行重枚舉。

  3.2.2 基于LabVlEW的USB設備驅動(dòng)程序

  客戶(hù)應用軟件在操作系統中處于用戶(hù)態(tài),不能直接對USB設備進(jìn)行操作。通常是采用DDK直接編寫(xiě)

  驅動(dòng)程序,也可用DriverStudio或windriver產(chǎn)生驅動(dòng)程序框架,再添加自己的代碼,編譯出驅動(dòng)程序。雖然LabVIEW與NI公司的硬件接口編程非常方便,但對于自主開(kāi)發(fā)的USB設備,并不具有通用性。用戶(hù)不僅要設計驅動(dòng)程序,還要在此基礎上編寫(xiě)USB.DLL,用于LabVIEW與USB接口。VISA通用的儀器驅動(dòng)軟件結構是VPP(VXIPlagPlay)聯(lián)盟制定的新一代儀器I/O標準,具有與儀器接口和具體計算機無(wú)關(guān)的特性,特別是VISA3.0的推出,提供了自主開(kāi)發(fā)或第三方USB設備在LabVIEW中的簡(jiǎn)便驅動(dòng)方法。

  本文利用NI-VISA3.3,直接調用驅動(dòng)開(kāi)發(fā)向導(Driver Development Wizard),根據設備的PID、VID以及生成廠(chǎng)家、產(chǎn)品名稱(chēng)等重要參數生成inf文件。安裝此文件后調用MAX(MeasurementAutomation Explore)即可以看到設備安裝成功。

  在實(shí)際操作過(guò)程中,需特別注意在安裝VISA生成的驅動(dòng)程序時(shí),不能安排設備的Windows驅動(dòng)程序,否則LABVIEW無(wú)法正常調用VISA開(kāi)發(fā)的驅動(dòng)程序.發(fā)現不了USB設備。

  4 實(shí)驗與分析

  采用本文所述的采集系統對某一高頻液壓沖擊器工作時(shí)的工作壓力(1)、回油壓力(2)和沖擊活塞運動(dòng)速度(3)進(jìn)行了現場(chǎng)實(shí)時(shí)數據采集,如圖6所示,其最高采集頻率為28.6kHz。采集數據準確反映了研究對象的狀態(tài),完全滿(mǎn)足設計目標需要。

  基于項目的需要,選用的A/D芯片(AD574)其采集頻率為28kHz,如欲進(jìn)行更高速率的數據采集,只需更改A/D轉換芯片部分的硬件電路和CPLD與A/D轉換相關(guān)的程序。由于系統采用了數據流驅動(dòng)多模塊并行技術(shù),在成本增加不多的情況下達到了非常高的采集和傳輸速率。從理論上分析,如果A/D轉換芯片選擇適當,系統采集頻率可以達到1OMHz。

  本文提出的液壓系統數據采集方案,利用廉價(jià)的單片機FX2+CPLD,采用數據流驅動(dòng)多模塊并行體系結構和USB接口,以取代DSP為主控芯片進(jìn)行高速、實(shí)時(shí)同步液壓數據采集,可以方便地移植于其他高速數據采集系統中,且成本低,可靠性高。同時(shí),提出了自主開(kāi)發(fā)的USB設備在LabVIEW中的簡(jiǎn)便驅動(dòng)方法。



關(guān)鍵詞: CPLD 高速 數據采集

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>