999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

XP系統(tǒng)下對(duì)內(nèi)存和IO端口訪問(wèn)的研究

2015-12-15 07:47:00吳義滿
電子設(shè)計(jì)工程 2015年10期
關(guān)鍵詞:物理系統(tǒng)

吳義滿

(鹽城衛(wèi)生職業(yè)技術(shù)學(xué)院 江蘇 鹽城224001)

XP系統(tǒng)下對(duì)內(nèi)存和IO端口訪問(wèn)的研究

吳義滿

(鹽城衛(wèi)生職業(yè)技術(shù)學(xué)院 江蘇 鹽城224001)

在工業(yè)控制領(lǐng)域,ISA總線等的計(jì)算機(jī)和擴(kuò)展板在廠商不提供LabVIEW驅(qū)動(dòng)的情況下,由用戶自己編寫(xiě)驅(qū)動(dòng)程序?qū)U(kuò)展板進(jìn)行訪問(wèn)是十分困難的事。本文通過(guò)使用早期LabVIEW版本的cvintdrv.sys底層驅(qū)動(dòng),結(jié)合新版本Lab-VIEW的強(qiáng)大功能,以調(diào)用cviVXDWrapper.dll的方式就可以實(shí)現(xiàn)對(duì)物理內(nèi)存和IO端口的訪問(wèn)。此方法實(shí)現(xiàn)在XP系統(tǒng)下對(duì)內(nèi)存和IO端口的訪問(wèn),通過(guò)實(shí)踐驗(yàn)證與用其它方法相比,實(shí)現(xiàn)效率更高,對(duì)相關(guān)研究在對(duì)內(nèi)存和IO端口的訪問(wèn)工程師有一定的理論和實(shí)踐指導(dǎo)意義。

LabVIEW;物理內(nèi)存訪問(wèn);IO端口讀寫(xiě);DLL調(diào)用

在工業(yè)控制或者儀器儀表檢測(cè)中,工程師經(jīng)常會(huì)用到ISA總線、PC104總線、PCI總線等的計(jì)算機(jī)主板和各種數(shù)字量、模擬量輸入輸出的采集板一起使用組成功能強(qiáng)大的測(cè)試控制系統(tǒng)[1-6]。在測(cè)試系統(tǒng)中人機(jī)界面是很重要的部分,所以工程師一般會(huì)選用Windows XP這種人人熟知的操作系統(tǒng),采用LabVIEW編寫(xiě)測(cè)試程序。之所以很多工程師喜歡選擇LabVIEW編寫(xiě)測(cè)試程序,是與LabVIEW軟件獨(dú)特的編程優(yōu)勢(shì)分不開(kāi)的:LabVIEW是專為測(cè)量、數(shù)據(jù)分析并提交結(jié)果而設(shè)計(jì),以G語(yǔ)言為基礎(chǔ),采用圖形化的編程方式,無(wú)須掌握復(fù)雜的編程技巧便可完成程序設(shè)計(jì),操作簡(jiǎn)便卻功能強(qiáng)大[7-8]。

因一些采集板廠商不提供在LabVIEW環(huán)境下編程的驅(qū)動(dòng),則需要工程師自己想辦法實(shí)現(xiàn)對(duì)采集板的讀寫(xiě)操作,而寫(xiě)驅(qū)動(dòng)程序需要一定的專業(yè)知識(shí),對(duì)沒(méi)有寫(xiě)過(guò)驅(qū)動(dòng)的工程師來(lái)說(shuō)并不是件容易的事,尋找一個(gè)簡(jiǎn)單的方式在XP系統(tǒng)下利用LabVIEW軟件對(duì)內(nèi)存和IO口的訪問(wèn)就顯得十分重要。

1 實(shí)現(xiàn)方案

cvintdrv.sys是LabVIEW實(shí)現(xiàn)I/O端口VI和物理內(nèi)存訪問(wèn)函數(shù)的底層驅(qū)動(dòng)。該驅(qū)動(dòng)安裝在帶有LabVIEW運(yùn)行引擎和LabWindows/CVI運(yùn)行引擎的Windows操作系統(tǒng)中。

但在2011年11月NI公司檢測(cè)到該驅(qū)動(dòng)存在安全漏洞,該安全漏洞可能導(dǎo)致沒(méi)有管理員權(quán)限的應(yīng)用程序獲得權(quán)限的非法升級(jí)。所以將此驅(qū)動(dòng)程序進(jìn)行了升級(jí),升級(jí)后,使用I/O端口VI的底層驅(qū)動(dòng)的應(yīng)用程序只有獲得管理員權(quán)限,才能夠運(yùn)行。如果沒(méi)有獲得管理員權(quán)限,調(diào)用I/O端口VI和函數(shù)將返回運(yùn)行錯(cuò)誤。應(yīng)用程序不再能使用物理內(nèi)存訪問(wèn)函數(shù)。所有條件下,物理內(nèi)存訪問(wèn)將返回運(yùn)行錯(cuò)誤。這樣一來(lái),使得對(duì)內(nèi)存的訪問(wèn)變成了不可能,對(duì)IO端口的訪問(wèn)也受到了一定的限制。

查找相關(guān)材料發(fā)現(xiàn):關(guān)于讀寫(xiě)物理內(nèi)存的方法,有工程師介紹用 LabVIEW 帶的 cviVXDWrapper.dll中的函數(shù)Read From Physical Memory,來(lái)實(shí)現(xiàn)對(duì)物理內(nèi)存的讀操作。遺憾的是,實(shí)際上按照此方法做了之后并不能讀取到數(shù)據(jù),原因就是因?yàn)楝F(xiàn)在所使用的版本的LabVIEW已經(jīng)將此功能取消,不再允許用戶使用。那么能否將現(xiàn)版本的LabVIEW的此項(xiàng)功能恢復(fù)呢?答案是肯定的。其實(shí)LabVIEW8.0版本的此項(xiàng)功能是完全可以使用的,但是8.0版本在其他方面并不能像2013等較新的版本滿足用戶的使用需求。如果能在現(xiàn)在主流的版本上也能使用訪問(wèn)物理內(nèi)存和IO口,是最想要的。可以按照下面方法實(shí)現(xiàn)能在現(xiàn)在主流的版本上也能使用訪問(wèn)物理內(nèi)存和 IO口。首先安裝 LabVIEW8.0版本,安裝后 C: WINDOWSsystem32drivers下會(huì)產(chǎn)生一個(gè) cvintdrv系統(tǒng)文件,此文件是尚未升級(jí)的驅(qū)動(dòng)文件,將此文件備份。然后再安裝想用的LabVIEW版本,完成后同樣會(huì)生成cvintdrv系統(tǒng)文件,將原來(lái)保存的尚未升級(jí)的驅(qū)動(dòng)文件替代新的驅(qū)動(dòng)文件。這樣新版本的軟件就可以實(shí)現(xiàn)物理內(nèi)存的訪問(wèn)和IO端口的讀寫(xiě)了。其實(shí)新舊版本的LabVIEW的安裝順序并無(wú)要求,只要保證最終使用的驅(qū)動(dòng)程序文件cvintdrv.sys是未更新之前的就可以了,筆者的是2004-7-26的。下面給出使用方法:首先,在函數(shù)選板里面找到互連接口,在其庫(kù)與可執(zhí)行程序下面找到調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)如圖1所示。

圖1 調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)Fig.1 Call library function node

接著,雙擊上面庫(kù)函數(shù)節(jié)點(diǎn)進(jìn)入調(diào)用函數(shù)庫(kù)設(shè)置如圖2所示。

圖2 調(diào)用函數(shù)庫(kù)設(shè)置Fig.2 Set the function library

點(diǎn)擊上面的路徑選擇找到安裝路徑下的resource文件夾下的cviVXDWrapper.dll文件,在函數(shù)名中選擇需要用的函數(shù),在線程中選擇在任意線程中運(yùn)行,在調(diào)用規(guī)范中選擇stdcall(WINAPI)圖3所示。

圖3 調(diào)用函數(shù)庫(kù)選擇Fig.3 Call the function library of choice

根據(jù)函數(shù)原型設(shè)置參數(shù),如圖4所示。

圖4 調(diào)用函數(shù)庫(kù)設(shè)置Fig.4 Set the function library

設(shè)置完成后就可以編寫(xiě)程序,簡(jiǎn)單的例子如圖5所示。

圖5 讀內(nèi)存程序Fig.5 The program of reading memory

前面板讀到的數(shù)據(jù)如圖6所示。

圖6 讀內(nèi)存程序運(yùn)行結(jié)果Fig.6 Operation result of reading memory program

成功讀到了內(nèi)存中的數(shù)據(jù),如果需要向內(nèi)存中寫(xiě)數(shù)據(jù),只要按照上面的步驟將圖3中函數(shù)名的選項(xiàng)選擇為WriteToPhysicalMemory即可。下面介紹對(duì)IO端口的讀寫(xiě)操作,IO端口的讀寫(xiě)操作有兩種方法,一種是利用LabVIEW封裝好的讀端口和寫(xiě)端口函數(shù),另一種是利用cviVXDWrapper.dll文件中的CVI_in和CVI_out函數(shù)。下面分別介紹使用方法。LabVIEW封裝好的讀端口和寫(xiě)端口函數(shù)位于互聯(lián)接口下的IO端口下,如圖7所示,點(diǎn)擊函數(shù)放到程序框圖上,對(duì)于讀端口函數(shù),可以選擇8位讀,16位讀和32位讀,也可以選擇自動(dòng),如圖8所示,然后在地址端連接地址輸入控件。在數(shù)據(jù)讀取端連接顯示控件,即可看到從輸入地址的端口讀取到數(shù)據(jù)。對(duì)于寫(xiě)端口函數(shù),卻不能像讀端口那樣選擇操作的位數(shù),只能進(jìn)行8位寫(xiě),將地址接線端和寫(xiě)入值接線端連接輸入控件,即可將寫(xiě)入值數(shù)據(jù)寫(xiě)入地址端口中。

圖7 讀端口和寫(xiě)端口函數(shù)Fig.7 Read and write ports function

圖8 讀端口位數(shù)選擇Fig.8 Read port digit selection

上面的寫(xiě)端口不能進(jìn)行16位和32位操作往往會(huì)給大家的使用帶來(lái)一些不方便,那么使用cviVXDWrapper.dll文件中的CVI_out函數(shù)便可輕松解決這個(gè)弊端。其使用方法,首先調(diào)用cviVXDWrapper.dll庫(kù)函數(shù),在函數(shù)名處選擇想要使用的函數(shù),CVI_outp為寫(xiě)入一個(gè)字節(jié),CVI_outpw為寫(xiě)入一個(gè)字,即兩個(gè)字節(jié),CVI_outpd為寫(xiě)入雙字,即4個(gè)字節(jié)。例如選擇CVI_outpw16位寫(xiě),參數(shù)設(shè)置,要分別設(shè)置了返回值、端口地址和寫(xiě)入數(shù)據(jù)。當(dāng)設(shè)置完參數(shù)后下面會(huì)有個(gè)函數(shù)原型顯示,int16_t CVI_outpw(uint16_t端口地址,int32_t寫(xiě)入數(shù)據(jù))。將此與正確的函數(shù)原型對(duì)比一下,以免設(shè)置錯(cuò)誤導(dǎo)致不正確的操作。

2 結(jié)論

針對(duì)在XP系統(tǒng)下利用LabVIEW軟件對(duì)內(nèi)存和IO口的訪問(wèn)的難題,文中詳細(xì)闡述了 Windows XP系統(tǒng)下利用LabVIEW實(shí)現(xiàn)對(duì)計(jì)算機(jī)物理內(nèi)存和IO口的讀寫(xiě)的簡(jiǎn)單的實(shí)現(xiàn)方案。該實(shí)現(xiàn)方案通過(guò)實(shí)際工程驗(yàn)證簡(jiǎn)單易行,該方案方便了工程師在ISA、PC104、PCI等總線的測(cè)試系統(tǒng)中對(duì)擴(kuò)展板的操作。

由于此方法是NI公司作為漏洞對(duì)用戶關(guān)閉掉的功能,所以在使用過(guò)程中一定要注意對(duì)使用該功能的計(jì)算機(jī)使用權(quán)限的管理和保護(hù)。

對(duì)于有些應(yīng)用有時(shí)會(huì)遇到需要使用中斷的情況,比如AD轉(zhuǎn)換等,在文中介紹的動(dòng)態(tài)鏈接庫(kù)cviVXDWrapper.dll中也有對(duì)中斷的操作函數(shù)(中斷使能、讀取中斷狀態(tài)和中斷關(guān)閉)有興趣的工程師可以參照上面介紹的方法做進(jìn)一步的研究。

此外,近年來(lái)流行的物理內(nèi)存鏡像文件的內(nèi)存取證技術(shù)研究人員越來(lái)越多,本課題的研究對(duì)于研究物理內(nèi)存取證有一定的借鑒和啟發(fā)意義[9-11]。

[1]屈汝祥,劉成強(qiáng),胡喬朋,等.PC104總線在測(cè)試設(shè)備中的應(yīng)用[J].測(cè)控技術(shù),2014(4):107-109.QU Ru-xiang,LIU Cheng-qiang,HU Qiao-peng,et al.Application of PC104 bus in test equipment[J].Measurement& Control Technology,2014(4):107-109.

[2]張蕊,郎杰.基于PXI總線的自動(dòng)測(cè)試系統(tǒng)設(shè)計(jì)[J].光電技術(shù)應(yīng)用,2014(3):44-47.ZHANG Rui,LANG Jie.Academy of opto-electronics design of automatic test system based on PXI Bus[J].Electro-Optic Technology Application,2014(3):44-47.

[3]王炬城,陳平,李站.基于Compact PCI熱插拔模塊設(shè)計(jì)[J].中國(guó)集成電路,2014(3):27-31.WANG Ju-cheng,CHEN Ping,LI Zhan.Design of hot swapmodule based on Compact PCI[J].China Integrated Circuit, 2014(3):27-31.

[4]方寶林.PCI-E總線高速數(shù)據(jù)采集卡的研制[D].北京:北京交通大學(xué),2014.

[5]賈佳.基于LabVIEW的PCI數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].工業(yè)儀表與自動(dòng)化裝置,2012(6):69-71.JIA Jia.Design of PCI data acquisition system based on LabVIEW[J].Industrial Instrumentation&Automation, 2012(6):69-71.

[6]陽(yáng)建華,鄭瑩娜,曠雪梅,等.基于PCI-1220U的電動(dòng)助力轉(zhuǎn)向器性能測(cè)試系統(tǒng)研究 [J].工業(yè)儀表與自動(dòng)化裝置,2013(2):22-26.YANG Jian-hua,ZHENG Ying-na,KUANG Xue-mei,et al.Research on performance test of electric power steering system based on PCI-1220U[J].Industrial Instrumentation& Automation,2013(2):22-26.

[7]鄭對(duì)元.精通LabVIEW虛擬儀器程序設(shè)計(jì) [M].北京:清華大學(xué)出版社,2012.

[8]韓琪.基于虛擬儀器的數(shù)據(jù)采集與分析系統(tǒng)研究與設(shè)計(jì)[D].北京:北京交通大學(xué),2012.

[9]蘇貞.基于物理內(nèi)存獲取的在線取證的可信性分析[D].濟(jì)南:山東輕工業(yè)學(xué)院,2012.

[10]桑廳.內(nèi)存取證工具的研究與實(shí)現(xiàn)[D].上海:上海交通大學(xué), 2013.

[11]茍木理.面向Windows8物理內(nèi)存鏡像文件的內(nèi)存取證技術(shù)研究[D].重慶:重慶大學(xué),2013.

The countermeasure of access to memory and I/O port in W indows XP

WU Yi-man
(Yancheng Health Vocational and Technology College,Yancheng 224001,China)

In the field of industrial control,the computer and the expansion of the ISA bus and so on board vendors do not provide the LabVIEW driver,in case of which,the user can write his own driver on a visit to extended board which is a very difficult thing.In this paper,by using LabVIEW early version of the cvintdrv and Sys the underlying drivers,combined with the new version to the powerful features of the LabVIEW,to invoke cviVXDWrapper,DLL way can achieve access to physical memory and I/o ports.This method to implement under XP system access to memory and I/o ports,and compared with other methods are verified through the practice,to achieve more efficient,the related research on access to memory and I/o port engineer has certain theoretical and practical guiding significance.

LabVIEW;access to physical memory;read and write IO port;DLL call

TN0

A

1674-6236(2015)10-0033-03

2014-09-12 稿件編號(hào):201409094

吳義滿(1976—),男,安徽安慶人,碩士研究生,講師。研究方向:虛擬儀器、醫(yī)用電子儀器。

猜你喜歡
物理系統(tǒng)
只因是物理
井岡教育(2022年2期)2022-10-14 03:11:44
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
如何打造高效物理復(fù)習(xí)課——以“壓強(qiáng)”復(fù)習(xí)課為例
基于PowerPC+FPGA顯示系統(tǒng)
處處留心皆物理
半沸制皂系統(tǒng)(下)
我心中的物理
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 麻豆精品视频在线原创| 午夜性刺激在线观看免费| 亚洲一道AV无码午夜福利| 丝袜美女被出水视频一区| 亚洲人成网站色7777| 青青久视频| 国产欧美在线| 精品少妇人妻一区二区| yy6080理论大片一级久久| 亚洲国产午夜精华无码福利| 欧美精品另类| 日韩精品无码不卡无码| 亚洲视频色图| 亚洲三级影院| 久久综合九色综合97婷婷| 亚洲国产日韩欧美在线| 视频一区亚洲| 久久综合九九亚洲一区| 国产传媒一区二区三区四区五区| 国产高清国内精品福利| 国产午夜无码片在线观看网站| 成色7777精品在线| av尤物免费在线观看| 美女无遮挡免费视频网站| 日本欧美视频在线观看| 亚洲欧美日韩色图| 欧美激情综合一区二区| 亚洲精品777| 2020久久国产综合精品swag| 蜜桃视频一区二区三区| 久久99国产乱子伦精品免| 精品综合久久久久久97| 黄色网址免费在线| 青青操视频在线| 精品久久777| 国产香蕉97碰碰视频VA碰碰看| 999精品在线视频| 国产第二十一页| 99草精品视频| 欧美福利在线观看| 精品久久久久无码| 亚洲精品第五页| 日本欧美精品| 国产成人一区| 99久久性生片| 无码久看视频| 久久91精品牛牛| 456亚洲人成高清在线| 97人人模人人爽人人喊小说| 欧美一区中文字幕| www.亚洲色图.com| 国产成人精品视频一区视频二区| 国产成熟女人性满足视频| 日韩第一页在线| 五月天丁香婷婷综合久久| 久久77777| 国产精品九九视频| 91热爆在线| 久久精品人人做人人爽| 欧美成人日韩| 97在线公开视频| 国产二级毛片| 久久久久人妻一区精品| 啪啪啪亚洲无码| 国产精品免费露脸视频| 91香蕉视频下载网站| 亚洲视频免费在线看| 天堂中文在线资源| 日本在线国产| 国产一区二区三区在线观看视频| 思思热在线视频精品| 免费一级毛片| 国产午夜一级毛片| 91国语视频| 日韩精品高清自在线| 玖玖免费视频在线观看| 国产精品成人观看视频国产 | 亚洲成人播放| 色婷婷综合激情视频免费看| 热伊人99re久久精品最新地| 午夜福利亚洲精品| 波多野结衣在线一区二区|