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
主站蜘蛛池模板: 亚洲欧洲日韩久久狠狠爱| 国产一级α片| 欧美激情视频一区| 日韩欧美中文亚洲高清在线| 色综合五月| 亚洲动漫h| 国产毛片高清一级国语| 国产福利影院在线观看| 国产乱论视频| 久久久国产精品无码专区| 19国产精品麻豆免费观看| yjizz视频最新网站在线| 亚洲一区二区三区麻豆| 国产精品嫩草影院视频| 中文字幕在线观看日本| 久久国产精品电影| 亚洲婷婷丁香| 鲁鲁鲁爽爽爽在线视频观看 | 日韩国产欧美精品在线| 欧美日韩理论| 中文字幕亚洲另类天堂| 午夜激情福利视频| 国产二级毛片| 国产主播福利在线观看| 日本道综合一本久久久88| 亚洲日本在线免费观看| 色婷婷国产精品视频| 五月婷婷亚洲综合| 思思热精品在线8| 最新日本中文字幕| 国产区福利小视频在线观看尤物| 亚洲国模精品一区| 国产91视频观看| 99视频国产精品| 无码AV高清毛片中国一级毛片| 国产小视频a在线观看| a天堂视频| 中文字幕在线免费看| 久久黄色视频影| 国产第一页免费浮力影院| 免费三A级毛片视频| 成年人久久黄色网站| 天堂岛国av无码免费无禁网站| 欧美精品H在线播放| 一区二区三区四区日韩| 免费无码AV片在线观看国产| 青青青视频免费一区二区| 久久免费视频播放| 亚洲国产欧美目韩成人综合| 国产鲁鲁视频在线观看| 青青青国产在线播放| 高清乱码精品福利在线视频| 午夜a级毛片| 国产人人射| 自慰网址在线观看| 欧美精品在线免费| 另类专区亚洲| 国产一在线观看| 欧美性色综合网| 国产福利一区在线| 伊人久久精品亚洲午夜| 99精品热视频这里只有精品7| 成AV人片一区二区三区久久| 日本人真淫视频一区二区三区 | 亚洲国产高清精品线久久| 韩日午夜在线资源一区二区| 免费A∨中文乱码专区| 91视频首页| 精品一区二区久久久久网站| 91精品国产综合久久香蕉922 | 欧美亚洲国产精品久久蜜芽| 亚洲综合久久一本伊一区| 亚洲男人的天堂久久香蕉网| 一级高清毛片免费a级高清毛片| 亚洲欧洲天堂色AV| 日韩精品毛片| 国产精品第三页在线看| 日韩国产精品无码一区二区三区| 欧美午夜视频在线| 国产专区综合另类日韩一区| 在线另类稀缺国产呦| 亚洲一区二区三区在线视频|