引言
隨著現(xiàn)代科學(xué)技術(shù)的日益發(fā)展,顆粒尺寸及其分布在諸如石油、冶金、制藥、建材等領(lǐng)域占據(jù)著越來(lái)越重要的地位。激光粒度儀就是用來(lái)測(cè)量微小顆粒尺寸及其分布的儀器,其基本原理是光的衍射理論。數(shù)據(jù)采集系統(tǒng)對(duì)激光粒度儀的光電探測(cè)器上光能信號(hào)的采集速度是激光粒度儀的性能指標(biāo)之一,一般來(lái)說(shuō)采集速度越快測(cè)量結(jié)果的準(zhǔn)確性、重復(fù)性和穩(wěn)定性越好[2]。隨著各種新型光電探測(cè)器的不斷出現(xiàn),原有的數(shù)據(jù)采集系統(tǒng)需要重新設(shè)計(jì)升級(jí)。在新的設(shè)計(jì)方案中,數(shù)據(jù)采集系統(tǒng)的模擬通道容量增加到了 112路,并且系統(tǒng)的采集速度也有了大幅度的提高。
FPGA具有硬件資源豐富、設(shè)計(jì)靈活等特點(diǎn),適用于數(shù)據(jù)通訊、數(shù)據(jù)采集和系統(tǒng)控制中,特別是它的并行結(jié)構(gòu)和算術(shù)運(yùn)算的特點(diǎn),已越來(lái)越受到科技開(kāi)發(fā)人員的青睞,被廣泛應(yīng)用到數(shù)據(jù)信號(hào)處理當(dāng)中。對(duì)本系統(tǒng)而言, FPGA作為一種可編程、可重配置的數(shù)字集成電路,為實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)目標(biāo)提供了有力的保證。
1 系統(tǒng)硬件設(shè)計(jì)
根據(jù)激光粒度儀的應(yīng)用場(chǎng)合,本數(shù)據(jù)采集系統(tǒng)采用單通道采集的方案,它主要由模擬部分、數(shù)字部分和接口部分三部分組成。其中模擬部分包括光電探測(cè)器、電信號(hào)放大、多路選通、信號(hào)調(diào)理和 12位 AD轉(zhuǎn)換,數(shù)字部分則完全在 FPGA內(nèi)部實(shí)現(xiàn),接口部分主要是計(jì)算機(jī)的 PCI總線接口。系統(tǒng)組成框圖如圖 1所示。
光電探測(cè)器電信號(hào)放大
激光粒度儀所用的光電探測(cè)器是由多個(gè)同心的光敏環(huán)組成的,每一光敏環(huán)輸出的模擬電信號(hào)反映了照射到該環(huán)上的光能量大小。隨著對(duì)激光粒度測(cè)量研究的不斷深入,天津大學(xué)研制的 LSA系列激光粒度儀的光電探測(cè)器組件,其模擬輸出已經(jīng)發(fā)展到 96路之多[3]。為實(shí)現(xiàn)對(duì)這么多路模擬信號(hào)的采集,多路選通采用七片 16選 1模擬開(kāi)關(guān) DG406和一片 8 選 1模擬開(kāi)關(guān) MAX308組成雙層級(jí)聯(lián)結(jié)構(gòu),共可容納 112路模擬信號(hào),它的地址信號(hào)是由 FPGA提供的。AD轉(zhuǎn)換芯片是數(shù)據(jù)采集系統(tǒng)的關(guān)鍵器件,采用 ADI公司的 12位逐次逼近型模數(shù)轉(zhuǎn)換芯片 AD7321,在本文中該芯片使用其內(nèi)部的 2.5V參考電壓,模擬輸入范圍選擇為 0~10V,它使用由 FPGA分頻產(chǎn)生的 8.3MHz時(shí)鐘信號(hào),這樣該芯片可在 2μs內(nèi)完成一次模數(shù)轉(zhuǎn)換。若連續(xù)兩次采樣間隔的時(shí)間設(shè)置為 2μs,則系統(tǒng)的數(shù)據(jù)平均傳輸速率可達(dá)到3Mbps。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 FPGA內(nèi)部邏輯設(shè)計(jì)
本文采用了片上系統(tǒng)的設(shè)計(jì)理念,在 FPGA內(nèi)部設(shè)計(jì)了所有所需的數(shù)字邏輯,可以實(shí)現(xiàn)數(shù)據(jù)采集控制、數(shù)據(jù)存儲(chǔ)和 PCI接口方式的數(shù)據(jù)傳輸?shù)裙δ堋T诒痉桨钢?,系統(tǒng)初始化后,首先上位機(jī)將采集的參數(shù)信息(模擬通道數(shù)、采樣方式、AD7321工作模式等等)通過(guò) PCI總線送給 FPGA中,F(xiàn)PGA再根據(jù)這些參數(shù)信息控制多路開(kāi)關(guān)和 AD7321的工作,完成數(shù)據(jù)采集任務(wù)。采集過(guò)程中 FPGA將 AD轉(zhuǎn)換得到的數(shù)據(jù)存入其內(nèi)部的 FIFO中,當(dāng) FIFO快滿時(shí),它向上位機(jī)產(chǎn)生中斷,上位機(jī)再通過(guò) PCI總線讀取 FIFO中的數(shù)據(jù)。
根據(jù)以上的設(shè)計(jì)思想,整個(gè) FPGA內(nèi)部邏輯的設(shè)計(jì)框圖如圖 2所示。本文中 FPGA選用 ALTERA公司的 EP2C5Q208C7芯片,采用自頂向下的設(shè)計(jì)方法,使用 Quartus II 7.0 等相關(guān)軟件進(jìn)行硬件代碼的開(kāi)發(fā)。下面給出各模塊的設(shè)計(jì)過(guò)程。
1)PCI_t32模塊。該模塊是采用 ALTERA公司的 32位 PCI TARGET接口宏核邏輯,它支持 PCI配置空間讀寫(xiě)、內(nèi)存方式讀寫(xiě)和 I/O方式讀寫(xiě),支持可參數(shù)化的配置寄存器,具有奇偶校驗(yàn)功能,能提供靈活的本地端接口,可以將復(fù)雜的、電氣和時(shí)序要求高的 PCI總線邏輯轉(zhuǎn)換為易于操作的本地接口邏輯[4]。
2)本地控制模塊。該模塊主要由一個(gè)能根據(jù) PCI_t32的控制信號(hào)和 FIFO的狀態(tài)跳轉(zhuǎn)的有限狀態(tài)機(jī)實(shí)現(xiàn)。它主要負(fù)責(zé)控制 PCI_t32和 FIFO之間的數(shù)據(jù)傳送以及協(xié)調(diào)數(shù)據(jù)傳輸路徑上其它相關(guān)模塊的工作。當(dāng) FIFO快滿時(shí),該模塊將產(chǎn)生中斷信號(hào)通知上位機(jī)讀取 FIFO中的數(shù)據(jù)。
3)命令寄存器模塊。該模塊用來(lái)保存并譯碼由計(jì)算機(jī)傳來(lái)的 16位命令字,配置 AD轉(zhuǎn)換控制模塊和地址輸出模塊的工作方式。這 16位命令字包含要采集的模擬通道數(shù)、AD7321工作模式和是否允許硬件中斷等信息。 4)AD轉(zhuǎn)換控制模塊。該模塊可輸出 AD7321所需的 SPI總線接口、片選信號(hào)和 8.3MHz時(shí)鐘信號(hào),其內(nèi)部主要由一個(gè)狀態(tài)機(jī)和兩個(gè) 16位移位寄存器組成。其中移位寄存器可以將 AD7321送來(lái)的 16位串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)存入 FIFO中,也可以將命令寄存器模塊中的配置數(shù)據(jù)串行的發(fā)送給 AD7321芯片,狀態(tài)機(jī)將兩次 AD轉(zhuǎn)換的間隔時(shí)間設(shè)置為 2μs。
5)地址輸出模塊。該模塊提供多路模擬開(kāi)關(guān)的片選和地址信號(hào),其內(nèi)部主要由一個(gè)地址計(jì)數(shù)器組成,當(dāng) AD轉(zhuǎn)換控制模塊完成一路數(shù)據(jù)的采集時(shí)它會(huì)自動(dòng)加 1。 6)PLL和四分頻模塊。 PLL是 FPGA的模擬鎖相環(huán),它工作于 Normal模式下,給其他模塊提供全局時(shí)鐘信號(hào)。四分頻模塊用來(lái)對(duì) 33MHz的時(shí)鐘信號(hào)四分頻,產(chǎn)生 AD轉(zhuǎn)換控制模塊所需的 8.3MHz時(shí)鐘。
在設(shè)計(jì)中需要特別注意的是異步時(shí)鐘域之間的數(shù)據(jù)同步問(wèn)題,尤其是 AD轉(zhuǎn)換控制模塊和 FIFO之間的數(shù)據(jù)傳遞。本文中參考了通常所說(shuō)的用寄存器打兩次的方法,在 33MHz的時(shí)鐘域中采用兩個(gè)寄存器采樣 AD轉(zhuǎn)換控制模塊的控制信號(hào),并利用一個(gè)同或門(mén)檢測(cè)兩個(gè)寄存器輸出是否一致,再根據(jù)同或門(mén)的輸出信號(hào)就可以實(shí)現(xiàn)這兩個(gè)模塊之間的數(shù)據(jù)傳遞。
2.2 PCI驅(qū)動(dòng)程序設(shè)計(jì)
硬件系統(tǒng)一般都需要軟件的支持才能實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)功能,驅(qū)動(dòng)程序就是控制硬件設(shè)備的一組函數(shù)。本系統(tǒng)的驅(qū)動(dòng)程序的開(kāi)發(fā)使用的是 Jungo公司的 WinDriver集成開(kāi)發(fā)包,它可以自動(dòng)生成設(shè)備的信息定向文件.INF和系統(tǒng)文件 WINPNP.SYS。利用 WinDriver 9.01開(kāi)發(fā)設(shè)備驅(qū)動(dòng)程序時(shí),驅(qū)動(dòng)程序中的所有函數(shù)都是工作在用戶態(tài)下的,因此不需要熟悉操作系統(tǒng)的內(nèi)核。本文在 Visual C++ 6.0的平臺(tái)下,通過(guò)一個(gè)動(dòng)態(tài)鏈接庫(kù) wdapi901.dll調(diào)用 WinDriver提供的 API函數(shù)來(lái)編寫(xiě)設(shè)備的驅(qū)動(dòng)程序,實(shí)現(xiàn)了用戶程序?qū)τ布牟僮鳌F滠浖鞒虉D如圖 3所示。
3實(shí)驗(yàn)結(jié)果與分析
由天津大學(xué)研制的 LSA-III型激光粒度儀可測(cè)粒徑范圍為 6μm-2000μm,其光電探測(cè)器由 32個(gè)同心光敏環(huán)和 1個(gè)位于中心的光敏點(diǎn)組成。由于本系統(tǒng)可以軟件選擇模擬通道數(shù),因此只要將計(jì)算機(jī)發(fā)送到命令寄存器模塊中的命令的模擬通道數(shù)改為 33就可以應(yīng)用到該儀器上。在 LSA-III型激光粒度儀上使用焦距為 300mm的傅立葉物鏡對(duì)標(biāo)準(zhǔn)粒子板進(jìn)行測(cè)試,利用 R-R分布模型處理得到的數(shù)據(jù),對(duì)標(biāo)準(zhǔn)粒子板測(cè)量 5次的試驗(yàn)結(jié)果如表 1所示。其中 D50表示小于該直徑的粒子體積占粒子總體積的 50%,D10和 D90的意義與此類(lèi)似 [5]。變異系數(shù) Cv和相對(duì)誤差△是 ISO13320標(biāo)準(zhǔn)的指標(biāo),其中 Cv用來(lái)衡量測(cè)量的重復(fù)性,△用來(lái)衡量測(cè)量的準(zhǔn)確性。
由表 1數(shù)據(jù)可知, D50的變異系數(shù)和相對(duì)誤差均在1.5%以內(nèi), D10和 D90的變異系數(shù)和相對(duì)誤差均在3.5%以內(nèi),符合 ISO13320標(biāo)準(zhǔn)對(duì)重復(fù)性和準(zhǔn)確性的規(guī)定。試驗(yàn)表明該系統(tǒng)在對(duì)顆粒粒徑的測(cè)量中表現(xiàn)穩(wěn)定,結(jié)果準(zhǔn)確,完全滿足了激光粒度測(cè)試系統(tǒng)的要求。
4結(jié)語(yǔ)
本文創(chuàng)新點(diǎn):本文以 FPGA為核心為 LSA系列激光粒度儀量身定制的數(shù)據(jù)采集系統(tǒng),實(shí)現(xiàn)了 PCI總線方式的數(shù)據(jù)采集與傳輸。系統(tǒng)可在 0-112路范圍內(nèi)軟件選擇模擬通道的采集路數(shù)和 AD7321芯片的工作方式,這使得系統(tǒng)具有了一定的通用性,適應(yīng)了目前光電探測(cè)器越來(lái)越復(fù)雜的趨勢(shì)。將該系統(tǒng)應(yīng)用到 LSA-III型激光粒度儀上時(shí),系統(tǒng)對(duì)光電探測(cè)器的采樣速率可達(dá)到 7.5Ksps,數(shù)據(jù)平均傳輸速率可達(dá)到 3Mbps。另外,由于設(shè)計(jì)中貫穿了 SOC的設(shè)計(jì)理念,系統(tǒng)還具有集成度高、成本低、升級(jí)方便、使用靈活等優(yōu)點(diǎn)。該項(xiàng)目已經(jīng)在激光粒度儀中得到應(yīng)用,產(chǎn)生的直接經(jīng)濟(jì)效益達(dá) 6萬(wàn)元。
-
FPGA
+關(guān)注
關(guān)注
1625文章
21637瀏覽量
601331 -
測(cè)試儀
+關(guān)注
關(guān)注
6文章
3674瀏覽量
54709 -
數(shù)據(jù)采集
+關(guān)注
關(guān)注
38文章
5842瀏覽量
113439
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論