資源描述:
《xpc環(huán)境下pci 1711數(shù)據(jù)采集卡驅(qū)動編寫研究》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、xPC環(huán)境下PCI-1711數(shù)據(jù)采集卡驅(qū)動編寫方法研究蔡君(東南大學(xué)自動化學(xué)院南京210096)摘要:利用實時仿真開發(fā)平臺xPCTarget進(jìn)行實時控制系統(tǒng)開發(fā),具有周期短、費用低、效率高的特點,但是很多數(shù)據(jù)采集板卡不被xPC環(huán)境支持,需要自己編寫驅(qū)動程序。本文以PCI-1711數(shù)據(jù)采集卡為例,論述了在xPC環(huán)境下采用CMEXS函數(shù)編寫數(shù)據(jù)采集卡驅(qū)動程序的方法和要點。該方法同樣適用于其他不被xPC支持的板卡驅(qū)動的開發(fā)。關(guān)鍵詞:xPCTarget;CMEXS函數(shù);設(shè)備驅(qū)動程序;PCI-1711中圖分類號:TP311
2、.1 文獻(xiàn)標(biāo)識碼:AResearchonWritingPCI-1711DataAcquisitionBoardDriverUnderxPCTargetCaiJun(SoutheastUniversity,SchoolofAutomation,Nanjing,210096)Abstract:xPCtarget,asareal-timesimulationdevelopmentenvironment,hastheadvantagesofshortperiod,lowcostandhighefficiencywhen
3、usedtodevelopreal-timecontrolsystems,butitdoesnotsupportmanykindsofDataAcquisitionBoards(DAQ).Theirdriversmustbedevelopedbyusers.ThispaperdiscussesthemethodsandtechniquesofwritingPCI-1711DAQdriverbyCMEXSFunctionunderxPCTarget.Thesemethodscanbeappliedtowriteth
4、edriverprogramsofotherDAQwhicharenotsupportedunderxPCTarget.Keywords:xPCTarget;CMEXSFunction;devicedriverprogram;PCI-17111、引言MATLAB是功能強(qiáng)大的數(shù)值計算和圖形處理軟件,其RTW實時開發(fā)環(huán)境提供了從系統(tǒng)設(shè)計到硬件實現(xiàn)的直接途徑。xPCTarget作為一個基于RTW的低端實時仿真和開發(fā)平臺,具有周期短、費用低、效率高的特點,在工程實際中得到了越來越廣的應(yīng)用。xPCTarget提供了支持超過
5、150種標(biāo)準(zhǔn)I/O板的I/O驅(qū)動設(shè)備庫,然而在實際的工程應(yīng)用中,經(jīng)常遇到xPCTarget不支持板卡的情況,這就需要為板卡自行編制驅(qū)動程序,然而目前這方面的研究還比較少。本文以研華PCI-1711為例,介紹在xPC環(huán)境下編寫數(shù)據(jù)采集卡驅(qū)動程序的方法和要點。2、研華PCI-1711驅(qū)動的設(shè)計與實現(xiàn)我們以Feedback公司提供的Maglev33-006系統(tǒng)為基礎(chǔ),構(gòu)建了磁懸浮球?qū)嶒炂脚_。該平臺采用了研華公司的PCI-1711數(shù)據(jù)采集卡。該卡是12位的低損耗多功能采集卡,具有獨特的電路設(shè)計和完善的數(shù)據(jù)采集與控制功能,
6、支持即插即用,具有FIFO的高速緩存,可靈活設(shè)定輸入類型和范圍。由于該板卡不被xPC環(huán)境支持,因此開發(fā)該板卡設(shè)備驅(qū)動成了首要的事情。2.1驅(qū)動編寫方法及要點要在xPC環(huán)境下編寫設(shè)備驅(qū)動程序,用戶必須熟悉SimulinkC-MEXS函數(shù)格式、應(yīng)用程序接口(API),以及板卡寄存器編程信息。編寫設(shè)備驅(qū)動程序的步驟如下:①編寫C格式的S函數(shù)的驅(qū)動源代碼。②通過MATLAB的mex實用程序?qū)代碼編譯成可執(zhí)行的MEX函數(shù)。③使用目標(biāo)語言編譯器(TargetLanguageCompiler)內(nèi)嵌化S函數(shù)(可選)。④對設(shè)備驅(qū)
7、動模塊進(jìn)行封裝,以生成自定義的用戶界面。在以S函數(shù)的形式編寫設(shè)備驅(qū)動程序之前,必須首先了解以下要點:⑴要了解板卡的訪問方式。PCI接口的板卡有兩種訪問方式:一種是通過板卡的廠商ID和設(shè)備ID,另一種是通過板卡的插槽號[2]。由于第一種方式更為方便,我們在編寫PCI-1711驅(qū)動中采用第一種方法。例如使用:PCIDeviceInfopciinfo;rl32eGetPCIInfo(0x13fe,0x1711,&pciinfo);可以得到研華PCI-1711卡包括基地址在內(nèi)的板卡信息。⑵要清楚板卡的地址映像方式,是I/
8、O映像還是內(nèi)存映像。以下是能夠在S函數(shù)設(shè)備驅(qū)動中需要調(diào)用的頭文件:io_xpcimport.h(用于I/O端口和內(nèi)存通道)pci_xpcimport.h(用于PCI通道)如果板卡是I/O映像的,我們將使用io_xpcimport.h頭文件中的以下函數(shù):rl32eInpB,rl32eOutpB(字節(jié)讀寫,8位)rl32eInpW,rl32eOutpW(字讀寫,16位)rl3