熱門關(guān)鍵字:谷物容重器 降落值測定儀 粉質(zhì)儀 拉伸儀 羅維朋比色計 纖維素測定儀 脂肪測定儀 油脂煙點測定儀 凱氏定氮儀 錘式旋風(fēng)磨  硬度計

新型軟件在攝譜儀器儀表預(yù)設(shè)中作用

來源: http://yuanweishulai.cn  類別:實用技術(shù)  更新時間:2015-03-23  閱讀

  1 USB數(shù)據(jù)采集卡原理

  1. 1 USB簡介

  USB即通用串行總線,它支持在主機與各式各樣即插即用的外設(shè)之間進(jìn)行數(shù)據(jù)傳輸。一個完整的USB總線系統(tǒng)可以分為3個部分: USB總線的主機、USB總線的設(shè)備以及它們之間的連接。U SB總線連接外設(shè)和主機時,采用菊花鏈的形式對端點加以擴展,有效地避免了PC機上插槽數(shù)量對擴充外設(shè)的限制,減少PC機I/O接口的數(shù)量。

  根據(jù)設(shè)備對系統(tǒng)資源需求的不同,在USB規(guī)范中規(guī)定了4種不同的數(shù)據(jù)傳輸方式:等時傳輸方式( I sochronous)、中斷傳輸方式( In terrupt)、控制傳輸方式( Control)和批( Bulk)傳輸方式,這些傳輸方式各有特點,分別用于不同的場所。

  USB協(xié)議支持兩種傳輸速度,即低速1. 5 M bps和高速12 M bps,而USB2. 0協(xié)議的最高傳輸速率可以到480M bps.并且U SB端口可以輸出最大500 mA的電流,可用長達(dá)5 m的傳輸線進(jìn)行設(shè)備連接。

  1. 2系統(tǒng)框圖

  高速數(shù)據(jù)采集具有系統(tǒng)數(shù)據(jù)吞吐率高的特點,要求系統(tǒng)在短時間內(nèi)能夠傳輸并存儲采集結(jié)果。因此,采集數(shù)據(jù)的快速存儲能力和容量是制約加快系統(tǒng)速度和容許采集時間的主要因素之一。通常在數(shù)據(jù)采集系統(tǒng)中增加存儲器件充當(dāng)緩存器來滿足要求,常用存儲器有FIFO、雙端口RAM以及靜態(tài)RAM等,但容量小,已經(jīng)不能滿足高速數(shù)據(jù)采集系統(tǒng)的需求。目前市場上的SDRAM和DDR SDRAM具有工作頻率高、容量大、功耗低的特點,數(shù)據(jù)線位寬可以達(dá)到64 bi,t完全適用于高速數(shù)據(jù)采集系統(tǒng)。因此,在本設(shè)計中采用一個FPGA和SDRAM構(gòu)成一個大容量的FIFO,從而可有效的避免F IFO溢出,同時也提供了一個低成本的滿足高速實時流數(shù)據(jù)傳輸?shù)慕鉀Q方案(系統(tǒng)框圖如1所示。)

  2 USB數(shù)據(jù)采集卡硬件設(shè)計

  2. 1芯片介紹

  2. 1. 1 EZ- USB芯片

  選用Cypress公司的FX2系列產(chǎn)品CY7C68013,它提供了對USB2. 0的完整解決方案。該芯片包括帶8 kByt片內(nèi)RAM的高速CPU、16位并行地址總線加8位數(shù)據(jù)總線、I2C總線、4 kByt FIFO存儲器以及通用可編程接口( GPIF)、串行接口引擎( SIE)和U SB2. 0收發(fā)器。CY7C68013與外設(shè)有兩種接口方式:可編程接口GPIF和S lave F IFO.FX2的SLAVEFIFO接口可以直接與外部設(shè)備無縫連接。它的一個主要的特點是:在AU TOOUT和AUTO IN模式下,數(shù)據(jù)流從主機傳出或者向主機輸入不需要經(jīng)過CPU的處理。這樣,低主頻的8051CPU將不會影響高帶寬的數(shù)據(jù)流傳輸。本系統(tǒng)內(nèi)采用了SLAVEFIFO的AUTO IN傳輸模式。

  2. 1. 2 FPGA芯片

  設(shè)計中, FPGA采用A ltera公司的CYCLONE芯片EP1C6- Q240.該芯片支持多種不同的I / O標(biāo)準(zhǔn)(包括PCI接口,可連接ASSP和ASIC設(shè)備的接口以及串行設(shè)備接口等)。實際應(yīng)用中, FPGA除了與SDRAM構(gòu)成一個大容量的FIFO以外,還需要完成最為重要的SDRAM的讀寫控制功能。

  2. 1. 3 A /D芯片

  采用M axim公司MAX1180, MAX1180是采用差分輸入,帶有寬帶跟蹤/保持( Trackand- Hold)的雙通道9級流水線型結(jié)構(gòu)的ADCs,采樣速率可達(dá)到105 MH z.完全滿足高速數(shù)據(jù)采樣的要求。

  2. 2硬件連接

  設(shè)計方案中, SDRAM控制器是數(shù)據(jù)流控制核心,負(fù)責(zé)數(shù)據(jù)的高速猝發(fā)讀/寫和定時刷新。當(dāng)主機啟動A /D轉(zhuǎn)換后, SDRAM控制器將采集結(jié)果存儲到SDRAM存儲器中,采集結(jié)束后,主機通過USB接口采用DMA傳輸方式將采集數(shù)據(jù)讀到主機系統(tǒng)中。

  設(shè)計中采用了8 32M b it的SDRAM,采集數(shù)據(jù)先送入A /D數(shù)據(jù)緩存器,由SDRAM控制器讀出并寫入大容量SDRAM存儲器。當(dāng)A /D轉(zhuǎn)換結(jié)束后,板卡修改狀態(tài)標(biāo)志或者發(fā)出中斷請求,主機發(fā)出讀取命令,SDRAM控制器切換工作狀態(tài),把數(shù)據(jù)從SDRAM中取出,寫入輸出緩存器,由主機通過總線接口將結(jié)果讀到系統(tǒng)中。其中, SDRAM控制器負(fù)責(zé)對SDRAM的定時刷新。SDRAM控制器根據(jù)設(shè)計,可以對SDRAM執(zhí)行猝發(fā)讀寫、刷新等12種命令,完成對數(shù)據(jù)的訪問。SDRAM控制器由FPGA編程實現(xiàn)。

  A /D轉(zhuǎn)換器的采樣時鐘同時作為CY7C68013的S lave F IFO模式的讀寫控制時鐘,即CY7C68013的接口時鐘連接到IFCLK引腳。SLWR /SLRD是CY7C68013 S lave FIFO的寫使能/讀允許信號。FPGA向CY7C68013 Slave FIFO提供S lave FIFO輸出允許信號SLOE,僅在數(shù)據(jù)輸出時有效。FD < 15: 0>為16位雙向數(shù)據(jù)總線。FIFOADR < 1: 0>為端點FIFO選擇信號。具體的硬件連接框圖如2所示。

  3系統(tǒng)軟件設(shè)計與實現(xiàn)

  本系統(tǒng)軟件設(shè)計包括:固件程序、驅(qū)動程序和應(yīng)用程序的設(shè)計。其中,固件程序是整個程序設(shè)計的核心。

  3. 1 USB設(shè)備固件程序設(shè)計

  固件程序相對比較復(fù)雜,需要用到大量的函數(shù),但基本結(jié)構(gòu)卻相對簡單,包括下面3個過程:初始化:包括處理器和外圍電路的初始化;主函數(shù):包括完成符合設(shè)備特定要求的代碼;中斷處理:包括處理各種中斷的程序代碼。

  設(shè)計中采用CY7C68013的端點4接收從主機發(fā)來的命令字,然后根據(jù)命令字進(jìn)行相應(yīng)操作,當(dāng)端點4接收主機發(fā)來命令并進(jìn)行完相應(yīng)操作后,在端點8返回主機要求的操作結(jié)果或者僅僅返回控制命令執(zhí)行的狀態(tài)。接收數(shù)據(jù)端點6被設(shè)置為SLAVEFIFO模式,所以接收FPGA發(fā)來的數(shù)據(jù),等待主機提取。由于端點6的SLAVEFIFO接口使用了AUTO IN模式,所以數(shù)據(jù)流由外部FIFO控制器控制,直接傳入端點6的F IFO,然后由主機提取。這里CY7C68013僅作為一條數(shù)據(jù)通道,而CPU并不參與這個過程。所以只要在固件程序的初始化程序段內(nèi)配置好端點6的SLAVEF IFO接口模式,剩下的傳輸控制和其它的工作則由FPGA來做。

  以下為部分固件程序代碼,主要給出了端點6 SLAVEFIFO接口的AUTO IN模式配置程序。

  voidTD _In it( void) / /FX2固件的初始化程序段,設(shè)置FX2的相應(yīng)寄存器{ / /設(shè)置SLAVEFIFO時鐘由外部控制器提供。之前FPGA向IFCLK引腳提供接口時鐘IFCONF IG = 0x43; / /FIFO接口時鐘由外部控制器提供,最后兩位設(shè)置FIFO接口模式為SLAVEFIFO SYNCDELAY; / /同步延遲,由FX2技術(shù)手冊規(guī)定EP6FIFOCFG = 0x0D; / /設(shè)為AUTO IN方式,允許0長度包,最后一位為1,設(shè)置接口為16位SYNCDELAY;EP6CFG= 0xE0; / /EP6方向為輸入,塊端點,包大小為512字節(jié),雙緩存。

  SYNCDELAY;PINFLAGSAB= 0x00; / /, FLAGB= FF,為FIFO滿標(biāo)志SYNCDELAY;PINFLAGSCD= 0x00; / /FLAGC= EF,為FIFO空標(biāo)志, FLAGD= EP2PF SYNCDELAY;FIFOPINPOLAR= 0x00; / /選擇引腳極性, 0為低電平有效SYNCDELAY;EP6AUTO INLENH = 0x02; / /和低位寄存器確定傳輸包大小為512字節(jié)/包SYNCDELAY;EP6AUTO INLENL= 0x00;SYNCDELAY;} void TD_Poll( void ) / /此函數(shù)在設(shè)備運行時反復(fù)被調(diào)用,主要完成外部FIFO狀態(tài)檢測和數(shù)據(jù)傳輸。

  { } BOOL TD_Suspend( void ) / /該函數(shù)在設(shè)備進(jìn)入掛起狀態(tài)前調(diào)用{ return( TRUE );} BOOL TD_Resume( void ) / /設(shè)備重啟后調(diào)用{ return( TRUE );}

  在程序開始執(zhí)行后,固件程序會執(zhí)行以下步驟:第一步,初始化所有的內(nèi)部狀態(tài)變量;第二步,調(diào)用用戶的初始設(shè)置函數(shù)TD _Init( ),初始化USB總線設(shè)備(即數(shù)據(jù)采集系統(tǒng))接口為非配置狀態(tài),并同時打開中斷;第三步, EZ- USB固件程序開始重新枚舉設(shè)備(R eNum erate),直到收到SETUP包為止;第四步,一旦SETUP包被檢測到,固件程序框架就開始進(jìn)行任務(wù)分配。任務(wù)分配就是依次重復(fù)地執(zhí)行下面的過程:調(diào)用用戶函數(shù)TDPoll( );檢測是否有標(biāo)準(zhǔn)的設(shè)備請求,如果有,則執(zhí)行指令并做出相應(yīng)的操作;檢測USB核是否有USB掛起事件,如果有USB掛起事件,則調(diào)用用戶程序TD_Suspend( ), TD_Suspend( )返回為真時, USB核檢測是否有新開始事件;如果沒有USB掛起事件,則使處理器處于掛起狀態(tài)。當(dāng)檢測到有重新開始的事件, USB核調(diào)用用戶程序TD_R esum e( ),并繼續(xù)執(zhí)行步驟;當(dāng)TD_Suspend( )返回為假時,則繼續(xù)執(zhí)行步驟。

  3. 2驅(qū)動程序及PC應(yīng)用程序設(shè)計

  在W INDOWS平臺下, USB驅(qū)動程序由3部分組成: USB設(shè)備驅(qū)動程序、USB總線驅(qū)動程序和USB主控制器驅(qū)動程序,它們必須遵循W IN32驅(qū)動程序模型(WDM )。其中, W INDOWS操作系統(tǒng)已經(jīng)提供了處于驅(qū)動程序棧底的USB總線驅(qū)動程序和USB主控制器驅(qū)動程序。在USB設(shè)備驅(qū)動程序開發(fā)時,可以利用W in dows DDK ,也可以通過借助一些輔助軟件工具,如DriverStudio、W inDriver等。本設(shè)計中采用Jungo公司的W inDriver進(jìn)行驅(qū)動程序開發(fā), W inDriver提供的驅(qū)動向?qū)В筛鶕?jù)用戶的需要,自動生成代碼框架,從而簡化了驅(qū)動程序的開發(fā),且和DDK的結(jié)合良好。

  在PC機應(yīng)用程序設(shè)計時,采用LabW indows/CV I進(jìn)行應(yīng)用程序的設(shè)計,以完成虛擬示波器和虛擬頻譜分析儀的設(shè)計。最終實現(xiàn)的虛擬儀器前面板如3所示,該虛擬儀器可實現(xiàn)示波器和頻譜分析儀的功能。

  4結(jié)束

  本文設(shè)計的數(shù)據(jù)采集卡解決了虛擬儀器在實現(xiàn)上的瓶頸制約,完成了外部數(shù)據(jù)與計算機的高速傳輸,理論上本數(shù)據(jù)采集卡可采集50 MH z的外部信號,可完全滿足各方面的測量要求。本文中設(shè)計的虛擬示波器和虛擬頻譜分析儀在實際應(yīng)用中功能全面,使用方便,在具體運用中用戶還可以根據(jù)功能需要設(shè)計PC機的應(yīng)用程序,這也正是虛擬儀器的最大優(yōu)勢,即功能可由用戶自定義。

  【中國糧油儀器在線】部分信息來自互聯(lián)網(wǎng),力求安全及時、準(zhǔn)確無誤,目的在于傳遞更多信息,并不代表本網(wǎng)對其觀點贊同或?qū)ζ湔鎸嵭载?fù)責(zé)。