基于PCI總線的數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:在虛擬儀器的設(shè)計(jì)中,選擇適合的數(shù)據(jù)采集系統(tǒng)是很重要的。文章在對各種現(xiàn)成數(shù)據(jù)采集卡,接口總線的理解對比的基礎(chǔ)上,以ADS8412為核心設(shè)計(jì)了集多路選通、模擬信號(hào)調(diào)理、A/D轉(zhuǎn)換為一體的模擬信號(hào)采集系統(tǒng),借助CPLD時(shí)序控制功能以PCI 9054為核心芯片設(shè)計(jì)實(shí)現(xiàn)廠基于PCI總線的數(shù)據(jù)采集卡的控制系統(tǒng),用Builder C++編寫了采集卡的動(dòng)態(tài)鏈接庫,利用LabVIEW提供的調(diào)用庫函數(shù)節(jié)點(diǎn),完成了通過動(dòng)態(tài)鏈接庫調(diào)用數(shù)據(jù)采集卡的過程。
關(guān)鍵詞:LabVIEW;PCI總線;數(shù)據(jù)采集;動(dòng)態(tài)鏈接庫
0 引言
LabvIEW是美國NI公司的創(chuàng)新產(chǎn)品,也是目前應(yīng)用最廣、發(fā)展最快、功能最強(qiáng)的圖形化軟件開發(fā)集成環(huán)境。
數(shù)據(jù)采集卡是虛擬儀器的重要組成部件,其性能指標(biāo)直接影響虛擬示波器的采樣速率、精度等主要指標(biāo)。
PCI總線是一個(gè)地址/數(shù)據(jù)、命令/字節(jié)選擇信號(hào)復(fù)用的總線,它采用主從信號(hào)雙向握手的方式來控制數(shù)據(jù)的傳輸。PCI總線具有即插即用、兼容性強(qiáng)的特點(diǎn),能提供32/64位,33/66MHz的DMA(直接內(nèi)存訪問)數(shù)據(jù)傳輸方式,使得它工作時(shí)不受計(jì)算機(jī)內(nèi)存大小的影響,傳輸速率最高可達(dá)133Mb/s,這些特性使得它的應(yīng)用范圍很廣,能夠適用于多種體系結(jié)構(gòu),多種工作平臺(tái),也很容易升級(jí),為未來的發(fā)展留有足夠的空間。上述這些優(yōu)良特性正是本設(shè)計(jì)選擇PCI接口總線的原因。
1 數(shù)據(jù)采集卡的硬件設(shè)計(jì)
本系統(tǒng)的總體設(shè)計(jì)主要包括:采集模塊設(shè)計(jì)、信號(hào)調(diào)理模塊設(shè)計(jì)、PCI總線接口設(shè)計(jì)、FIFO數(shù)據(jù)緩存設(shè)計(jì)的實(shí)現(xiàn)等部分。系統(tǒng)框圖如下圖1所示。
1.1 信號(hào)調(diào)理模塊設(shè)計(jì)
信號(hào)調(diào)理模塊實(shí)現(xiàn)信號(hào)放大、模擬通道選擇和差分轉(zhuǎn)換,這部分電路對整個(gè)系統(tǒng)至關(guān)重要,在設(shè)計(jì)的過程中應(yīng)該著重注意降低信號(hào)失真,減少系統(tǒng)噪聲。
1.2 采集模塊設(shè)計(jì)
模數(shù)轉(zhuǎn)換是采集板卡的核心,系統(tǒng)要求采樣速度至少在250kHz以上,采樣精度16位,動(dòng)態(tài)范圍也要求足夠?qū)?。綜合各因素,選擇了ADS 8412芯片。
ADS8412使用外部參考電壓工作,與PCI總線接口的原理如圖2所示。
本文中設(shè)置了8路采集通道,控制時(shí)序控制8/1模擬開關(guān)依次選通其中一路信號(hào),差分轉(zhuǎn)換電路將單端信號(hào)轉(zhuǎn)換成差分信號(hào)送入ADS8412中,ADS8412內(nèi)部自帶轉(zhuǎn)換時(shí)鐘,無需外接。多通道數(shù)據(jù)采集按照分時(shí)采樣,即8通道進(jìn)行輪流采樣,只用一路A/D。
1.3 PCI總線接口設(shè)計(jì)
PCI 9054通過PCI總線與計(jì)算機(jī)相連,PCI協(xié)議和時(shí)序由PCI 9054接口芯片完成,這里只需要對PCI9054接口進(jìn)行設(shè)計(jì)即可,無需去了解復(fù)雜的總線協(xié)議,簡化了設(shè)計(jì)的過程,這正是用專用芯片實(shí)現(xiàn)總線接口的優(yōu)點(diǎn)。
PCI接口電路應(yīng)當(dāng)完成以下幾種功能:地址譯碼及命令譯碼;地址產(chǎn)生;控制信號(hào)的產(chǎn)生。
實(shí)現(xiàn)PCI總線控制器大體有兩種方式:使用可編程器件和專用接口芯片。采用EPLD和FPGA等編程邏輯器件的優(yōu)點(diǎn)在于其靈活的可編程性。專用芯片可以實(shí)現(xiàn)完整的PCI主控模塊和目標(biāo)模塊接口功能,將復(fù)雜的PCI總線接口轉(zhuǎn)換為相對簡單的接口。用戶可以集中精力于應(yīng)用設(shè)計(jì),而不是調(diào)試PCI總線的接口,明顯縮短了開發(fā)時(shí)間。本設(shè)計(jì)應(yīng)用PLX公司的PCI 9054實(shí)現(xiàn)總線控制器。
PCI接口原理圖如圖3所示。啟動(dòng)采樣后,PCI 9054作為主控設(shè)備,利用其DMA通道進(jìn)行數(shù)據(jù)傳輸。當(dāng)雙口SRAM采滿1kB數(shù)據(jù)之后,通過控制時(shí)序產(chǎn)生局部總線中斷,PCI 9054獲得局部總線的控制權(quán)后,根據(jù)DMA的起始位將1kB的數(shù)據(jù)讀到DMA傳輸?shù)膶S肍IFO中,PCI 9054申請占用PCI總線,獲得PCI總線的控制權(quán)后,將數(shù)據(jù)寫入PCI總線存儲(chǔ)空間,從而實(shí)現(xiàn)一次采樣和傳輸。
圖3中,中斷申請是控制時(shí)序電路判斷FIFO滿標(biāo)志端提出的。響應(yīng)中斷期間PCI總線以DMA方式向上位機(jī)傳輸數(shù)據(jù),以便應(yīng)用程序調(diào)用數(shù)據(jù)進(jìn)行分析處理。93S66為配置存儲(chǔ)器,用于PCI設(shè)備卡的識(shí)別。圖4是PCI接口控制器工作流程圖。
2 數(shù)據(jù)采集過程的實(shí)現(xiàn)
2.1 動(dòng)態(tài)鏈接庫的設(shè)計(jì)
LabVIEW軟件本身提供了對端口的操作函數(shù),可以對外設(shè)的端口進(jìn)行讀寫,而其他對外設(shè)的實(shí)時(shí)控制則需要通過DLL技術(shù)來實(shí)現(xiàn)。
在本系統(tǒng)中,自行應(yīng)用硬件芯片設(shè)計(jì)了數(shù)據(jù)采集卡,要實(shí)現(xiàn)系統(tǒng)中的各個(gè)硬件與計(jì)算機(jī)之間的通信,必須設(shè)計(jì)相應(yīng)的動(dòng)態(tài)鏈接庫。DLL庫的設(shè)計(jì)在這里主要包括:設(shè)備初始化;確定設(shè)備名;創(chuàng)建設(shè)備句柄;獲取通道信息;等待客戶軟件信息。
2.2 數(shù)據(jù)采集過程
先對數(shù)據(jù)采集卡有關(guān)的采樣參數(shù)設(shè)置;采樣開始,多路開關(guān)對采樣通道進(jìn)行一次掃描,每個(gè)通道采樣一個(gè)點(diǎn);接著開始A/D轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)字信號(hào)存到數(shù)據(jù)緩存區(qū)中。重復(fù)上述過程直到采集到了所需的采樣次數(shù),全部數(shù)據(jù)順序存儲(chǔ)到緩存區(qū)中,需要時(shí)從數(shù)據(jù)采集卡的緩存中讀取數(shù)據(jù)到計(jì)算機(jī)的內(nèi)存中進(jìn)行處理。采集流程如圖5所示。
2.3 LabviEW中的動(dòng)態(tài)鏈接庫調(diào)用
在LabVIEW的編程狀態(tài)下,打開Function Palette工具箱中“調(diào)用動(dòng)態(tài)鏈接庫功能”,將數(shù)據(jù)采集卡驅(qū)動(dòng)程序轉(zhuǎn)化為一個(gè)圖標(biāo)/連接器,然后在框圖程序中就可以調(diào)用該模塊,通過在其輸入端設(shè)置相應(yīng)的參數(shù),在程序運(yùn)行時(shí),驅(qū)動(dòng)模塊啟動(dòng)數(shù)據(jù)采集卡的工作,并將采集數(shù)據(jù)返回。圖6為動(dòng)態(tài)鏈接庫調(diào)用的一個(gè)例子。
圖6中CLF節(jié)點(diǎn)I/O數(shù)據(jù)類型決定于外輸入,采集通道數(shù)輸入控件“channel”、采集次數(shù)輸入控件“times”均為32位無符號(hào)長整形,對0~5V電壓經(jīng)采集后的輸出為雙精度浮點(diǎn)型離散的數(shù)值,先送入緩存器中存儲(chǔ)待用。
4 結(jié)論
本文采用硬件芯片設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng),在本地總線的晶振頻率為20MHz時(shí),能穩(wěn)定地達(dá)到160Mb/s的采集速率;晶振頻率為40MHz時(shí),能穩(wěn)定的達(dá)到200Mb/s的采集速率。
將虛擬儀器技術(shù)與各種物理信號(hào)的采集、分析及結(jié)果顯示結(jié)合起來為新型儀器的開發(fā)提供了一個(gè)很好的方向。將先進(jìn)的儀器開發(fā)軟件LabVIEW與普通數(shù)據(jù)采集系統(tǒng)很好地結(jié)合起來又將使虛擬儀器技術(shù)在各個(gè)領(lǐng)域得到更廣泛的應(yīng)用。