一、概述 谷物品質(zhì)快速檢測儀是應用近紅外光譜分析技術(shù)來(lái)檢測谷物的內部品質(zhì),如粗蛋白,水分等。隨著(zhù)光學(xué)、計算機處理技術(shù)、化學(xué)計量學(xué)理論和方法的不斷發(fā)展,以及新型近紅外儀器的不斷出現和軟件版本的不斷翻新,近紅外光譜技術(shù)的穩定性、實(shí)用性和準確性不斷提高;其分析快速,簡(jiǎn)便,非破壞性以及可同時(shí)測定多成分的優(yōu)點(diǎn)不斷為人們所認識;不僅可用來(lái)測定樣品的水分、粗蛋白、脂肪、淀粉等常量成分,還被用來(lái)測定氨基酸、脂肪酸,以及對生產(chǎn)加工過(guò)程進(jìn)行在線(xiàn)質(zhì)量控制;分析對象也從粉樣樣品擴展到分析完整籽粒樣品[5]。 本文研究的目的就是快速、準確地測得谷物品質(zhì)的相關(guān)參數,所以?xún)x器的性能就體現在快速、準確的測試并分析測試結果的能力。圖1為近紅外光譜儀的裝置示意圖,近紅外光譜儀一般由光源、分光系統、測樣器件、檢測器和控制及數據采集處理系統組成;其中的關(guān)鍵部件就是光譜數據采集和分析單元,本文主要討論數據采集部分的設計及實(shí)現。 ![]() 圖1.近紅外光譜儀器示意圖 1-光源;2-分光系統;3-反光鏡;4-測樣器件;5-漫反射檢測器;6-透射檢測器;7-計算機;8-USB數據采集通訊部分 由于我們使用的是基于電荷耦合器件(CCD)的多通道近紅外光譜儀,這類(lèi)儀器掃描光譜速度快,一般單張光譜的掃描速度只有幾十毫秒,所以對CCD信號的采集和傳輸速度有比較高的要求,為滿(mǎn)足這些速度要求所以采用USB接口方式取代原來(lái)的并口通訊方式。同時(shí)為了適應現代儀器的小型化和通用化,儀器和計算機的連接也要求我們選擇USB接口總線(xiàn),從而實(shí)現光譜數據的高速采集和傳輸,并完成谷物品質(zhì)的快速檢測。 二、系統設計 該系統可對4路模擬信號進(jìn)行不間斷采集,輸入信號范圍-10V~+10V,AD轉換位數16位。設計多通道數據采集目的,為了實(shí)現多通道的差分信號采集來(lái)補償溫度等其它因素產(chǎn)生的噪聲。由于溫度的變化對CCD有很大的影響,所以系統采用了兩個(gè)CCD,每?jì)陕穼ν粋(gè) CCD進(jìn)行差分采集。其中一個(gè)CCD作為光譜掃描,另一個(gè)放置和前一個(gè)相鄰的位置用作差分補償。通過(guò)多通道差分補償能提高系統的性能,從而保證測量的準確性。 該采集系統總體框架為主機(能支持USB2.0計算機)、內部包含CPU及FIFO高速緩存的USB接口控制芯片FX2 和高速模數轉換器(ADS7825)。系統分為硬件設計和軟件設計兩部分。其中硬件設計主要是以ADS7825為核心的數據采集單元和以FX2為核心的 USB接口單元兩部分。軟件可分為三部分:采用Keil C51語(yǔ)言編寫(xiě)的FX2的芯片固件程序、Visual C++編寫(xiě)的USB設備驅動(dòng)程序和上位機Win32應用程序。下面分別介紹數據采集的軟硬件設計部分。 2.1 硬件設計 硬件設計主要是實(shí)現數據采集單元和USB數據傳輸單元電路設計。其數據傳輸為控制信號和采集數據?刂菩盘柗较驗橹鳈C到外設(OUT),數據量較;采集到的數據由外設到主機(IN),數據量較大。系統基本操作過(guò)程為:主機給外設一個(gè)采樣控制信號CLK;A/D轉換完成的數據直接進(jìn)入CY7C68013的內部端點(diǎn)FIFO,當FIFO容量達到指定程度后,自動(dòng)將數據打包傳送給USB總線(xiàn),主機進(jìn)行接收,保證有較高的傳輸速度。 1 數據采集模塊[1] 數據采集模塊主要實(shí)現以ADS7825為核心對4路模擬輸入信號進(jìn)行AD轉換。ADS7825是BB公司生產(chǎn)的高性能模數轉換器件,它具有4路模擬輸入通道,5V單電源供電,16位并行輸出等獨特性能。 其工作原理,在此著(zhù)重介紹ADS7825在并行輸出方式下的工作過(guò)程,如下圖2所示為其并行輸出時(shí)電路原理圖。在并行輸出方式下,啟動(dòng)初始化過(guò)程是由R/C(pin22)腳變?yōu)榈碗娖讲⒅辽俦3?0ns開(kāi)始,啟動(dòng)轉換。BUSY(pin24)腳變?yōu)榈碗娖,并保持到數據轉換和數據輸出寄存器刷新完畢。如果BYTE(pin21)腳為低電平,在BUSY的上升沿,觸發(fā)輸出信號的高8位數字;相反,若BYTE腳為高電平,輸出信號的低8位數字。最終轉換的數據以完全二進(jìn)制數字格式輸出。REF是外部參考電壓輸入端或內部參考2.5V電壓輸出端。此引腳應與一個(gè)2.2μF電容相連,并與REF腳的輸出阻抗構成一個(gè)低通濾波器濾過(guò)帶限噪聲。CAP為內部參考電壓的緩沖輸出端,也應與一個(gè)2.2μF電容相連,在A(yíng)DS7825的轉換周期內,這樣連接可提供給內置D/A轉換器最佳的轉換寫(xiě)入電流,同時(shí)對緩沖輸出也是一種補償。另外,在BUSY為低電平期間,不再接受新的轉換指令。 ADS7825在并行輸出模式情況下,根據通道選擇方式的不同,還可以分為連續轉換方式和可編程通道選擇方式。在CS、R/C和PWRD同時(shí)接低電平的情況下,若CONTC(pin25)腳為高電平時(shí),ADS7825處于連續轉換工作模式。此時(shí),ADS7825將按順序連續采集和轉換4路通道中的信號;而在CONTC變?yōu)楦唠娖街,當前通道號就相應存入A0和A1通道選擇的寄存器中,也就是說(shuō)在連續轉換模式下(即CONTCE為HIGH),A0和A1為輸出端。對于前一個(gè)通道來(lái)說(shuō),輸出數據BUSY在跳變?yōu)楦唠娖綍r(shí)變?yōu)橛行。另外,每一次轉換結束,BUSY要跳變?yōu)楦唠娖綍r(shí),A0和A1能夠輸出將要轉換信號的通道號。 在可編程通道選擇方式下,模擬輸入通道的選擇是由程序控制指令完成的?刂破靼l(fā)出數據轉換指令和要轉換的通道號,通過(guò)片選信號與A0和A1端譯碼選擇需要的模擬通道,此時(shí)A0和A1為數據通道選擇輸入端。在完成數據通道的選擇之后,后續各引腳的工作過(guò)程與連續轉換方式下的情況類(lèi)似。 ![]() 圖2. ADS7825并行輸出電路原理圖 ![]() 圖3. CY7C68013和ADS7825連接原理圖 2 USB接口單元 USB接口單元的主要實(shí)現芯片是Cypress公司的CY7C68013,負責完成硬件系統和PC上位機之間的數據傳輸。Cypress公司的 EZ-USB FX2系列芯片是世界上第一個(gè)集成USB2.0協(xié)議的微處理器,它支持12Mb/s的全速傳輸和480Mb/s的高速傳輸,可使用4種USB傳輸方式:控制傳輸、中斷傳輸、塊傳輸和同步傳輸,完全適用于USB2.0,并向下兼容USB1.1。其CPU采用增強型8051,它比標準8051的速度更快、功能更強,且指令集和標準8051完全兼容,并可使用C51編譯器。FX2內部包含8.5KB的RAM,它們兼做程序存儲器和數據存儲器,增強型8051的固件代碼就存儲在該區域內,FX2也具有I2C總線(xiàn),以使其能從外部EEPROM中下載芯片程序。另外,FX2系列芯片采用3.3V供電,且可使用USB總線(xiàn)電源,但是功耗較大。 [2] 本系統中使用CY7C68013的PA0-PA6管腳作為AD工作狀態(tài)的控制信號,以決定ADS7825數據采集和存儲,PB0-PB7為8位數據總線(xiàn)根據工作狀態(tài)進(jìn)行高低8位的數據傳輸。如圖3所示為CY7C68013和ADS7825連接原理圖。 2.2 軟件程序的編寫(xiě) 軟件程序包括包括三部分,芯片固件程序、驅動(dòng)程序、上位機Win32應用程序。 1 芯片固件程序 CY7C68013芯片固件程序負責PC發(fā)來(lái)的各種USB請求,以完成主機與外圍電路間的數據傳輸。該固件框架使用 Keil C51 C編寫(xiě),其中使用了許多Keil C對標準C的擴展。固件框架主要包含初始化、處理標準USB設備請求以及USB掛起時(shí)的電源管理。 框架完成了一個(gè)簡(jiǎn)單的任務(wù)循環(huán)(見(jiàn)圖4)。首先框架初始化內部的狀態(tài)變量,然后條用用戶(hù)初始化函數TD_Init。從該函數返回后,框架初始化USB接口到未配置狀態(tài)并使能中斷。然后每隔1s進(jìn)行一次設備重枚舉,直到端點(diǎn)0接收到一個(gè)SETUP包。一旦檢測到SETUP 包,框架將開(kāi)始交互的任務(wù)調度,其任務(wù)調度的步驟如下: ①調用用戶(hù)函數TD_Poll,實(shí)現數據采集。 ②判斷是否有標準設備請求等待處理,如果有,則分析該請求并響應;其中,DR_VendorCmnd函數負責處理上位機發(fā)出的供應商定義請求,通過(guò)上位機發(fā)送請求來(lái)控制AD采集的開(kāi)始和結束。 ③判斷USB內核是否收到USB掛起信號。如果收到,則調用用戶(hù)函數TD_Suspend。從該函數成功返回后,再檢測是否發(fā)生USB喚醒事件。如果未檢測到,則處理器進(jìn)入掛起方式;如果檢測到,則調用用戶(hù)函數TD_Resume,程序繼續運行。如果從 TD_Suspend函數返回FALSE,則程序繼續運行。 ![]() 圖4. 固件程序流程圖 ![]() 圖5. 驅動(dòng)程序流程圖 2 USB驅動(dòng)程序和應用程序的開(kāi)發(fā) GPD(General Purpose Driver)是一個(gè)通用目的的設備驅動(dòng)程序,是應用程序與EZ-USB 外設進(jìn)行通信的橋梁。EZ-USB的GPD 代碼Cypress公司提供原型,用戶(hù)可以在此基礎上生成定制驅動(dòng)程序。 1)定制驅動(dòng)程序的生成 采用Cypress 提供的GPD,由于GPD 只能執行一些標準的USB 設備請求和數據傳輸, 不能滿(mǎn)足用戶(hù)特定外設的需要,需進(jìn)行擴充以生成用戶(hù)定制驅動(dòng)程序。對GPD 中的EZUSBSYS. C,EZUSBSYS. H,SOURCES 進(jìn)行修改,再在WindowsDDK 與VC ++ 6. 0 下利用Build 命令重新編譯即可生成用戶(hù)定制驅動(dòng)程序。 2)設備驅動(dòng)程序與應用程序的接口 設備驅動(dòng)程序介于硬件與用戶(hù)應用軟件之間。用戶(hù)可以以一種規范的方式調用Win32API函數訪(fǎng)問(wèn)硬件,而不必考慮如何控制硬件。為了方便人們開(kāi)發(fā)新的驅動(dòng)程序,Windows已經(jīng)自帶了一些類(lèi)驅動(dòng)程序,用戶(hù)只需要在這些類(lèi)驅動(dòng)程序的基礎上編寫(xiě)功能驅動(dòng)程序來(lái)實(shí)現特定的功能。圖5給出了驅動(dòng)程序的調用流程,可以清楚地看到功能驅動(dòng)程序所處的層次。 開(kāi)發(fā)過(guò)程中主要是了解應用程序中如何調用驅動(dòng)提供的接口函數。用戶(hù)應用程序通過(guò) I / O 控制調用訪(fǎng)問(wèn)EZ-USB 設備驅動(dòng)程序達到控制USB 設備的目的,應用程序首先通過(guò)調用Win32函數CreateFile來(lái)取得訪(fǎng)問(wèn)設備驅動(dòng)程序的句柄,再利用Win32函數 DeviceIoControl對設備進(jìn)行I / O 控制。 (1) 獲取設備句柄。 EZ-USB 設備驅動(dòng)程序可以與多個(gè)EZ-USB 設備通信。每一個(gè)連接到主機的EZ-USB 設備,驅動(dòng)程序都為它創(chuàng )建一個(gè)形如Ezusb-i(i從0遞增)的鏈接符。Win32 函數CreateFile以設備鏈接符為參數獲取第i個(gè)Ezusb設備的句柄。通過(guò)CreateFile函數獲取USB 設備句柄后,再利用I / O控制來(lái)處理設備的I / O 請求。[2] (2)設備I / O 控制 應用程序通過(guò)Win32 函數DeviceIoControl向設備驅動(dòng)程序發(fā)送I / O 請求。DeviceIoControl函數通過(guò)I / O 控制碼(IOCTRL)及其他輔助參數向設備驅動(dòng)程序發(fā)送特定的I / O 請求并返回操作結果,來(lái)實(shí)現數據或控制命令的傳輸。[2] 3.2.3 Win32應用程序 上位機應用程序主要負責讀取硬件所輸出的數據采集結果并向下發(fā)送控制指令,而且能存儲和顯示采集到的波形。Win32程序使用VC++6.0實(shí)現,通過(guò)USB中斷或塊傳輸來(lái)讀取AD采集結果,采樣速度可以達到20K。 五、結速語(yǔ) 本文通過(guò)介紹ADS7825和EZ-USB FX2芯片的特點(diǎn)及相關(guān)的軟硬件基本開(kāi)發(fā)過(guò)程,闡述了實(shí)現光譜數據采集系統的全過(guò)程。筆者根據上文提到方法設計了硬件并編寫(xiě)了相應的固件程序、驅動(dòng)程序和應用程序,在實(shí)際應用中已獲得正常使用。 參考文獻 1. www.burr-brown.com/databook/ADS7825.htm 2. EZ-USB-FX2_TRM_version2-2.pdf 3. Cypress Semiconductor Corporation EZ-USB Series FX2 Getting Started 2002 4. 茍新運.張禹.季仲梅 USB2.0 接口芯片CY7C68013的固件程序開(kāi)發(fā) [期刊論文] -微計算機信息2005(4) 5. 陸婉珍.袁洪福 現代近紅外光譜分析技術(shù) 2000 6. 武安河 Windows 2000/XP WDM設備驅動(dòng)程序開(kāi)發(fā) 2005 作者:王輝 張小超 傅劍濤 中國農業(yè)機械化科學(xué)研究院,北京,100083 來(lái)源:微計算機信息 2008 24(20) |