技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 基于PCI總線的DAQ卡研制及測控應(yīng)用

基于PCI總線的DAQ卡研制及測控應(yīng)用

時間:2008-09-11 09:50:00來源:ronggang

導(dǎo)語:?本文介紹了PCI總線的特點(diǎn)和工作原理,提出了PCI總線DAQ卡的設(shè)計(jì)原理,以及Windows環(huán)境下DLL驅(qū)動軟件的設(shè)計(jì)和實(shí)現(xiàn)方法;結(jié)合基于PCI總線的DAQ卡的研制,討論了對這種硬件在不同的實(shí)際測控系統(tǒng)中的應(yīng)用
摘 要:PCI總線是當(dāng)今計(jì)算機(jī)的主流I/O總線,具有高傳輸率、支持DMA操作、即插即用等性能。本文介紹了PCI總線的特點(diǎn)和工作原理,提出了PCI總線DAQ卡的設(shè)計(jì)原理,以及Windows環(huán)境下DLL驅(qū)動軟件的設(shè)計(jì)和實(shí)現(xiàn)方法;結(jié)合基于PCI總線的DAQ卡的研制,討論了對這種硬件在不同的實(shí)際測控系統(tǒng)中的應(yīng)用。 關(guān)鍵詞:PCI總線 ;DAQ卡;測控系統(tǒng)   基于DAQ(數(shù)據(jù)采集)板卡和信號調(diào)理電路為儀器硬件所組成的PC-DAQ測控系統(tǒng),是整個測控系統(tǒng)中的一個重要的組成部分。本文結(jié)合PCI總線工作原理和特性,首先簡要講述了基于PCI總線DAQ板卡的設(shè)計(jì)結(jié)構(gòu),然后對帶有GPIB[1]接口DAQ卡的硬件原理設(shè)計(jì)、DLL驅(qū)動軟件設(shè)計(jì)做了詳細(xì)的討論。 1 基于PCI總線DAQ卡的設(shè)計(jì)結(jié)構(gòu)   基于PC-DAQ[2]組成虛擬儀器測控系統(tǒng),通用的構(gòu)建方法是在計(jì)算機(jī)上插入數(shù)據(jù)采集(DAQ)卡,并由驅(qū)動軟件驅(qū)動硬件,通過應(yīng)用程序構(gòu)建虛擬面板和發(fā)送通訊命令。因此,在該系統(tǒng)中,實(shí)現(xiàn)基于PCI總線數(shù)據(jù)采集(DAQ)卡的軟硬件設(shè)計(jì),是核心內(nèi)容。   基于PCI總線的DAQ卡,在設(shè)計(jì)實(shí)現(xiàn)上,分為兩個部分:硬件電路的設(shè)計(jì)和軟件驅(qū)動程序的實(shí)現(xiàn)。由于DAQ卡是基于PCI總線的,因此,在硬件上,包括實(shí)現(xiàn)PCI總線的接口電路和實(shí)現(xiàn)數(shù)據(jù)采集及處理的虛擬儀器功能電路兩部分。驅(qū)動軟件部分,則是實(shí)現(xiàn)計(jì)算機(jī)和硬件板卡之間的通訊,把所采集的數(shù)據(jù)存儲到計(jì)算機(jī)內(nèi)存中。 [align=center] 圖1基于PCI總線DAQ卡的軟硬件設(shè)計(jì)結(jié)構(gòu)圖[/align] 2 GPIB接口卡的硬件設(shè)計(jì)與實(shí)現(xiàn)   帶有GPIB接口的DAQ卡,在硬件功能上,需要實(shí)現(xiàn)三個部分:PCI總線接口、PCI設(shè)備的即插即用和GPIB功能接口電路。   2.1 PCI總線接口協(xié)議的實(shí)現(xiàn)   在該系統(tǒng)的硬件設(shè)計(jì)中,選用了PLX公司的專用接口芯片PCI9052作為實(shí)現(xiàn)PCI總線的橋接芯片。PCI9052對于PCI總線和局部總線轉(zhuǎn)換提供了無縫鏈接。因此,在硬件實(shí)現(xiàn)上,只需要對PCI總線引腳和PCI9052引腳做一一對應(yīng)連接即可。   2.2 即插即用的實(shí)現(xiàn)   PCI總線提供了即插即用的功能,從而使得操作系統(tǒng)在啟動過程中根據(jù)檢測到的配置空間寄存器參數(shù),自動為硬件分配各種資源,實(shí)現(xiàn)了硬件設(shè)備的資源自動配置。   PCI總線的即插即用,對于使用專用集成芯片設(shè)計(jì)的板卡,主要是通過設(shè)置PCI橋接芯片內(nèi)部的配置寄存器內(nèi)容來實(shí)現(xiàn)的。實(shí)現(xiàn)的方法有兩種:通過軟件在線編程修改橋接芯片中配置寄存器內(nèi)容和使用燒寫器修改串行EEPROM內(nèi)容。   2.3 接口功能電路的實(shí)現(xiàn)   對于GPIB功能電路,為了實(shí)現(xiàn)GPIB總線接口協(xié)議,本設(shè)計(jì)中采用了德州儀器生產(chǎn)的專用接口芯片DS75160和DS75162以及74LS375芯片來實(shí)現(xiàn)。DS7560和DS75162是專門針對于實(shí)現(xiàn)GPIB功能電路的集成芯片。   2.4 接口卡電路的實(shí)現(xiàn)   GPIB接口卡的電路包括原理圖和印刷版電路兩部分。   2.4.1 原理圖設(shè)計(jì)與實(shí)現(xiàn)   硬件板卡電路原理如圖2所示。在下圖中,PCI9052用于實(shí)現(xiàn)PCI總線接口各種時序電路,EEPROM為93LC46B,用于實(shí)現(xiàn)PCI板卡的即插即用功能,外圍芯片74LS688[13]實(shí)現(xiàn)地址片選,8255用于實(shí)現(xiàn)局部的I/O資源,GPIB功能電路實(shí)現(xiàn)接口協(xié)議。 [align=center] 圖2 GPIB接口卡原理框圖[/align]   2.4.2 印刷板電路設(shè)計(jì)與實(shí)現(xiàn)   PCI總線設(shè)計(jì)屬于高速線路設(shè)計(jì),對信號的完整性設(shè)計(jì)要求較高,在本系統(tǒng)中,由于應(yīng)用總線接口端要求工作時鐘為8MHZ,這個工作時鐘和PCI端的33MHZ工作時鐘是相互獨(dú)立的,因此,設(shè)計(jì)兩層的PCB板就可以達(dá)到傳輸速度上的要求。 3 DLL軟件驅(qū)動的設(shè)計(jì)與實(shí)現(xiàn)   對于基于DAQ板卡構(gòu)建的虛擬儀器測控系統(tǒng),其軟件設(shè)計(jì)主要任務(wù)是實(shí)現(xiàn)硬件板卡的驅(qū)動程序和儀器虛擬化功能函數(shù)的實(shí)現(xiàn)。在Windows98操作系統(tǒng)環(huán)境下,硬件板卡的驅(qū)動程序有三種形式:VxD驅(qū)動、DLL驅(qū)動和WDM驅(qū)動程序[3]。這三種形式中,由于在Windows98環(huán)境下提供了能夠在應(yīng)用層直接操作硬件I/O空間的API函數(shù),所以,在對于帶有GPIB接口的DAQ卡驅(qū)動軟件,通過設(shè)計(jì)一個直接操作硬件I/O空間的DLL[4]來實(shí)現(xiàn)。   3.1 DLL的內(nèi)在工作機(jī)制   動態(tài)連接庫是應(yīng)用程序在運(yùn)行時連接函數(shù)庫的一種實(shí)現(xiàn)機(jī)制。函數(shù)庫存儲在它自己的文件中,并不被編譯到應(yīng)用程序可執(zhí)行文件中去。DLL在應(yīng)用程序運(yùn)行時才連接,而不是在應(yīng)用程序創(chuàng)建時被連接。DLL包含一個導(dǎo)出函數(shù)表,對于需要導(dǎo)出的函數(shù),在定義的時候作類似如下的聲明:   extern “C” __declspec(dllexport) int FunctionName(int n);   除了需要作以上的聲明外,編譯工程中還必須為連接器指定導(dǎo)入庫,而且客戶程序必須實(shí)際調(diào)用了DLL的導(dǎo)出函數(shù)中的至少一個函數(shù)。   在創(chuàng)建DLL時,一般都使用VC++6.0來進(jìn)行開發(fā),在DLL的開發(fā)過程中,需要定義三個文件:  ?。?)一個C語言源文件(必須);   (2)一個自定義的頭文件(可選,在應(yīng)用程序中調(diào)用);  ?。?)一個模塊定義文件(可選,在_stdcall方式調(diào)用時可能需要)。   3.2 Windows98下操作硬件的API函數(shù)   在Windows98環(huán)境中,操作系統(tǒng)為應(yīng)用程序直接操作硬件I/O空間提供了6個API函數(shù),用于實(shí)現(xiàn)硬件I/O空間字節(jié)、字和雙字的讀寫。   3個端口讀函數(shù)原型和說明如下(括號內(nèi)參數(shù)為16位I/O讀地址):   讀字節(jié):int _inp( unsigned short port );   讀 字:unsigned short _inpw( unsigned short port );   讀雙字:unsigned long _inpd( unsigned short port );   3個端口寫函數(shù)原型和說明如下:   寫字節(jié):int _outp( unsigned short port, int databyte );   寫 字:unsigned short _outpw( unsigned short port,   unsigned short dataword );   寫雙字:unsigned long _outpd( unsigned short port,   unsigned long dataword );   在上述三個API函數(shù)中,第一個參數(shù)為需要寫入數(shù)據(jù)的16位I/O地址,第二個參數(shù)為需要寫入的數(shù)據(jù)。在Windows98操作系統(tǒng)中,通過操作以上6個API函數(shù),就可以對包含I/O資源的設(shè)備硬件進(jìn)行讀寫操作。   3.3 DLL中PCI設(shè)備局部資源的獲得   在PCI設(shè)計(jì)中,在調(diào)試完硬件,硬件設(shè)備就可以正常工作了。但是,如果需要通過軟件來控制硬件動作,則必須獲得系統(tǒng)已經(jīng)為硬件設(shè)備所分配的各種資源信息,即各種映射的那個I/O和內(nèi)存空間的基地址和大小。   在GPIB接口卡的設(shè)計(jì)中,在硬件上,局部資源為8255所申請的四個字節(jié)的I/O空間。因此,在軟件上,需要獲得這四個字節(jié)的I/O空間在系統(tǒng)中PCI地址空間所對應(yīng)的基地址大小,通過訪問PCI地址空間中的基地址才能通過地址映射實(shí)現(xiàn)對8255四個I/O端口的讀寫操作。   在該板卡的設(shè)計(jì)中,PCI配置周期由配置機(jī)制[5]產(chǎn)生,這種機(jī)制使用兩個雙字I/O雙字I/OCF8H地址。第一個雙字I/O地址CF8H,是一個可讀寫寄存器,命名為CONFIG-ADDRESS。第二個雙字地址是CFCH,命名為CONFIG-DATA寄存器。對配置空間的操作是通過寫一個值到設(shè)備的CONFIG-ADDRESS寄存器。在此之后如果對CONFIG-DATA寄存器回讀,橋就會將CONFIG-ADDRESS寄存器中的值轉(zhuǎn)換為PCI總線上所要求的配置周期,即自動產(chǎn)生配置讀和配置寫周期[6]。因此,在軟件上通過對這兩個寄存器進(jìn)行循環(huán)讀寫,可以獲得GPIB接口卡的硬件資源,該部分工作流程如左圖3所示。 [align=center] 圖3 PCI卡資源獲取流程[/align] 4 PCI總線DAQ卡在基于示波器測控系統(tǒng)中的應(yīng)用   在工業(yè)現(xiàn)場使用示波器進(jìn)行信號測量時,常有因環(huán)境限制而無法處理測量結(jié)果的情況。這時,可通過GPIB總線接口,將數(shù)字示波器和位于PC機(jī)中的通訊接口卡相連,把數(shù)據(jù)傳輸?shù)接?jì)算機(jī)中,然后再在應(yīng)用層使用圖形化編程軟件LabView[7]構(gòu)建示波器的虛擬控制面板,實(shí)現(xiàn)用戶通過對在測試現(xiàn)場的示波器進(jìn)行程控操作,在計(jì)算機(jī)上的虛擬示波器面板上顯示實(shí)際的測量結(jié)果,并對實(shí)際的數(shù)據(jù)進(jìn)行分析、存儲等處理,完成示波器的虛擬化操作。   系統(tǒng)的結(jié)構(gòu)框圖如下圖4所示: [align=center] 圖4 系統(tǒng)的結(jié)構(gòu)框圖[/align]   上述所示波器測控系統(tǒng)中,硬件部分主要是一塊自主研制的基于PCI總線的GPIB接口板卡, 用于實(shí)現(xiàn)示波器數(shù)據(jù)的采集,軟件部分是用于驅(qū)動GPIB板卡的DLL功能驅(qū)動程序,實(shí)現(xiàn)發(fā)送命令和數(shù)據(jù)采集的軟件控制。   在該實(shí)際應(yīng)用中,對于TDS220進(jìn)行程控操作最基本的幾個程控命令如下所述:   初始化硬件:IBFIND(GPIB總線地址,0,3000)   初始化示波器:IBDEV(儀器地址)   發(fā)送命令至示波器:IBWRT(儀器地址,控制命令)   接收數(shù)據(jù)(字符串形式):IBRD(儀器地址,緩沖區(qū)地址,接受數(shù)據(jù)個數(shù))   接收數(shù)據(jù)(數(shù)組形式):IBRDI(儀器地址,緩沖區(qū)地址,讀出數(shù)據(jù)字節(jié)數(shù))   儀器返回本地:IBGTL(儀器地址) 5 結(jié)語   基于PCI總線是現(xiàn)代測控系統(tǒng)發(fā)展的必然要求,本文所介紹的DAQ卡是結(jié)合測控技術(shù)的實(shí)際發(fā)展的需要,在創(chuàng)新思想的指導(dǎo)下提出并開發(fā)完成的,文中還給出了在實(shí)際測控系統(tǒng)中的應(yīng)用實(shí)例,取得了較為滿意的效果。 參考文獻(xiàn):   [1] 鮑芳. 基于PCI/PXI/VXI總線的虛擬儀器測試系統(tǒng)[J].工業(yè)儀表與自動化裝置,2000,第3期:17-19   [2] 張兢. 基于DAQ數(shù)據(jù)采集卡的虛擬儀器通用平臺設(shè)計(jì)[J]. 重慶工學(xué)院學(xué)報(bào),2001,第15卷第2期:41-43   [3] 武安河.Windows驅(qū)動程序(VxD與WDM)開發(fā)實(shí)物[M].北京:電子工業(yè)出版社,2001   [4] [美]David J.Kruglinski著,潘愛明譯. VC++技術(shù)內(nèi)幕[M].清華大學(xué)出版社,1999   [5] Tom Shanley,Don Anderson. PCI System Architecture [M], 2000   [6] 陳利學(xué). 微機(jī)總線與接口設(shè)計(jì)[M].電子科技大學(xué)出版社,1998   [7] National Instruments. LabView Programmer’s Guide [M], 2000   [8] 李紀(jì)敏,余宏強(qiáng).基于PCI總線的導(dǎo)彈控制系統(tǒng)自動測控研制[J].微計(jì)算機(jī)信息,2005,8-1:47-49

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:NI 石油天然氣行業(yè)應(yīng)用方案文集

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號