<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è) > 測試測量 > 設計應用 > 基于LabVIEW德USB實(shí)時(shí)數據采集處理系統實(shí)現

基于LabVIEW德USB實(shí)時(shí)數據采集處理系統實(shí)現

作者: 時(shí)間:2017-01-12 來(lái)源:網(wǎng)絡(luò ) 收藏
  通用串行總線(xiàn)USB(Universal Serial Bus)作為一種新型的數據通信接口在越來(lái)越廣闊的領(lǐng)域得到應用。而基于USB接口的數據采集卡與傳統的PCI卡及ISA卡相比具有即插即用、熱插拔、傳輸速度快、通用性強、易擴展和性?xún)r(jià)比高等優(yōu)點(diǎn)。

  USB的應用程序一般用Visual C++編寫(xiě),較為復雜,LabVIEW語(yǔ)言是一種基于圖形程序的編程語(yǔ)言,內含豐富的數據采集、數據信號分析分析以及控制等子程序,用戶(hù)利用創(chuàng )建和調用子程序的方法編寫(xiě)程序,使創(chuàng )建的程序模塊化,易于調試、理解和維護,而且程序編程簡(jiǎn)單、直觀(guān)。因此它特別適用于數據采集處理系統。利用它編制USB應用程序,把LabVIEW語(yǔ)言和USB總線(xiàn)緊密結合起來(lái)的數據采集系統將集成兩者的優(yōu)點(diǎn)。USB總線(xiàn)可以實(shí)現對外部數據實(shí)時(shí)高速的采集,把采集的數據傳送到主機后再通過(guò)LabVIEW的功能模塊順利實(shí)現數據顯示、分析和存儲。

本文引用地址:http://dyxdggzs.com/article/201701/337652.htm

  1 、USB及其在數據采集設備中的應用

  USB 自1995年在Comdex上亮相以來(lái),已廣泛地為各PC廠(chǎng)家所支持?,F在生產(chǎn)的PC幾乎都配置了USB接口,Microsoft的Windows 98、NT以及Mac OS、Linux等流行操作系統都增加對USB的支持。USB具有速度快、設備安裝和配置容易、易于擴展、能夠采用總線(xiàn)供電、使用靈活等主要優(yōu)點(diǎn),應用越來(lái)越廣泛。

  一個(gè)實(shí)用的USB數據采集系統硬件一般包括微控制器、USB通信接口以及根據系統需要添加的A/D轉換器和EPROM、 SRAM等。為了擴展其用途,還可以加上多路模擬開(kāi)關(guān)和數字I/O端口。系統的A/D、數字I/O的設計可沿用傳統的設計方法,根據采集的精度、速率、通道數等諸元素選擇合適的芯片,設計時(shí)應充分注意抗干擾性,尤其對A/D采集更是如此。在微控制器和USB接口的選擇上有兩種方式:一種是采用普通單片機加上專(zhuān)用的USB通信芯片;另一種是采用具備USB通信功能的單片機。USB的另一大優(yōu)點(diǎn)是可以總線(xiàn)供電,在數據采集設備中耗電量通道不大,因此可以設計成總線(xiàn)供電。

  一個(gè)USB設備的軟件一般包括主機的驅動(dòng)程序、應用程序和寫(xiě)進(jìn)ROM里面的Firmware。Windows98提供了多種USB設備的驅動(dòng)程序,但還沒(méi)有一種專(zhuān)門(mén)針對數據采集系統,所以必須針對特定的設備編制驅動(dòng)程序。盡管系統已經(jīng)提供了很多標準接口函數,但編制驅動(dòng)程序仍然是USB開(kāi)發(fā)中最困難的一件事。通常采用Windows DDK實(shí)現,但現在有許多第三方軟件廠(chǎng)商提供了各種各樣的生成工具,如Compuware的Driver Works、Blue Waters的Driver Wizard等軟件能夠輕易地生成高質(zhì)量的USB驅動(dòng)程序。單片機程序的編制也同樣困難,而且沒(méi)有任何一家廠(chǎng)商提供了自動(dòng)生成的工具。編制一個(gè)穩定、完善的單片機程序直接關(guān)系到設備性能,必須給予充分的重視。以上兩個(gè)程序是開(kāi)發(fā)者所關(guān)心的,而用戶(hù)卻不太關(guān)心。用戶(hù)關(guān)心的是如何高效地通過(guò)鼠標操作設備,如何處理和分析采集進(jìn)來(lái)的大量數據。因此還必須有高質(zhì)量的用戶(hù)軟件。用戶(hù)軟件必須有友好的界面、強大的數據分析和處理能力以及提供給用戶(hù)進(jìn)行再開(kāi)發(fā)的接口。

  2、 LabVIEW及其外部動(dòng)態(tài)鏈接庫的調用

  LabVIEW是美國國家儀器(NI)公司開(kāi)發(fā)的一種基于圖形程序的虛擬儀表編程語(yǔ)言,其在測試與測量、數據采集、儀器控制、數字信號分析、工廠(chǎng)自動(dòng)化等領(lǐng)域獲得了廣泛的應用。LabVIEW程序稱(chēng)為虛擬儀器程序(簡(jiǎn)稱(chēng)VI),主要包括兩部分:前面板(即人機界面)和方框圖程序。前面板用于模擬真實(shí)儀器的面板操作,可設置輸入數值、觀(guān)察輸出值以及實(shí)現圖表、文本等顯示??驁D程序應用圖形編程語(yǔ)言編寫(xiě),相當于傳統程序的源代碼。其用于傳送前面板輸入的命令參數到儀器以執行相應的操作。LabVIEW的強大功能在于層次化結構,用戶(hù)可以把創(chuàng )建的VI程序當作子程序調用,以創(chuàng )建更復雜的程序,而且,調用階數可以是任意的。 LabVIEW這種創(chuàng )建和調用子程序的方法使創(chuàng )建的程序模塊化,易于調試、理解和維護。LabVIEW編程方法與傳統的程序設計方法不同,它擁有流程圖程序設計語(yǔ)言的特點(diǎn),擺脫了傳統程序語(yǔ)言線(xiàn)形結構的束縛。LabVIEW的執行順序依方塊圖間數據的流向決定,而不像一般通用的編程語(yǔ)言逐行執行。在編寫(xiě)方框圖程序時(shí),只需從功能模塊中選用不同的函數圖標,然后再以線(xiàn)條相互連接,即可實(shí)現數據的傳輸。

  LabVIEW雖有接口卡的驅動(dòng)和管理程序,但主要是針對NI公司自己生產(chǎn)的卡。對于普通的I/O卡,還不能直接被LabVIEW所應用,必須采取其他方法。其中可以用LabVIEW的 PortIn和PortOut功能,但此法應用簡(jiǎn)單,無(wú)法實(shí)現較復雜的接口功能。而采用動(dòng)態(tài)鏈接庫,可以根據具體需要編寫(xiě)適當的程序,靈活利用 LabVIEW的各項功能。用戶(hù)可以自己編寫(xiě)DLLs實(shí)現LabVIEW與硬件的鏈接。用VC++6.0編制動(dòng)態(tài)鏈接庫,首先生成DLL框架, AppWizard將自動(dòng)生成項目文件,但不產(chǎn)生任何代碼,所有代碼均需用戶(hù)自己鍵入。DLL需要的文件有:①h函數聲明文件;②c源文件;③def定義文件。H文件的作用是聲明DLL要實(shí)現的函數原型,供DLL編譯使用,同時(shí)還提供應用程序編譯使用。C文件是實(shí)現具體文件的源文件,它有一個(gè)入口點(diǎn)函數, 在DLL被初次調用的運行,做一些初始化工作。一般情況下,用戶(hù)無(wú)須做什么初始化工作,只需保留入口點(diǎn)函數框架即可。def文件是DLL項目中比較特殊的文件,它用來(lái)定義該DLL項目將輸出哪些函數,只有該文件列出的函數才能被應用函數調用。要輸出的函數名列在該文件EXPORTS關(guān)鍵字下面。

  3、 基于A(yíng)N2131Q的單光子采集系統

  該采集系統由筆者自行開(kāi)發(fā)并用于單光子計數種子活性快速檢測儀中。它主要由將光子信號轉為電信號的光電倍增管(PMT)及其輔助電路和基于A(yíng)N2131Q的 USB采集卡組成。PMT及其前置放大器、放大器、甄別器等輔助電路能將微弱的光子信號轉換為15ns的標準TTL脈沖信號,脈沖信號經(jīng)過(guò)分頻處理后再被 USB采集,USB將采集的結果實(shí)時(shí)地傳給主機處理。

  3.1 USB采集卡的硬件組成

  該采集卡由微控制器、USB通信接口、主機以及數字I/O端口組成,如圖1所示。

  筆者設計了一種同步傳輸方式的單片方案,應用了內置微處理器的USB設計——EZ-USB AN2131Q。它是Cypress公司的一種內嵌微控制器的80腳USB芯片,包含三個(gè)8位多功能口,8位數據端口,16位地址端口,二個(gè)USB數據端口,二個(gè)可定義16位的定時(shí)/計數器和其他輸入輸出端口。其采用一種基于內部RAM的解決方案,允許客戶(hù)隨時(shí)不斷地設置和升級,不受端口數、緩沖大小和傳輸速度及傳輸方式的限制。片內嵌有一個(gè)增強型8051微控制器,其4個(gè)時(shí)鐘的循環(huán)周期使它比標準8051的速度快3倍。采用同步傳輸方式將單片機的計數值實(shí)時(shí)傳送給主機,而主機對計數器的控制信號則采用塊傳輸方式傳送。EZ-USB是Cypress公司推出的USB開(kāi)發(fā)系統,它為USB外設提供了一種很好的集成化解決方案。EZ-USB在其內核已做了大量繁瑣的、重復性的工作,這樣就簡(jiǎn)化了開(kāi)發(fā)代碼,進(jìn)而縮短了開(kāi)發(fā)周期。此外,開(kāi)發(fā)商還提供了配套的開(kāi)發(fā)軟件(包括編譯軟件uVision 51、調試軟件dScope 51、控制軟件EZUSB Controll Panel)以及驅動(dòng)程序GPD(General Purpose Driver)接口,以便于用戶(hù)進(jìn)行開(kāi)發(fā)使用。


上一頁(yè) 1 2 3 下一頁(yè)

評論


技術(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>