• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2015-12-15 07:47:00吳義滿
    電子設計工程 2015年10期
    關鍵詞:調(diào)用內(nèi)存端口

    吳義滿

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

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

    吳義滿

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

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

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

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

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

    1 實現(xiàn)方案

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

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

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

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

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

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

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

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

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

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

    設置完成后就可以編寫程序,簡單的例子如圖5所示。

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

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

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

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

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

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

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

    2 結論

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

    由于此方法是NI公司作為漏洞對用戶關閉掉的功能,所以在使用過程中一定要注意對使用該功能的計算機使用權限的管理和保護。

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

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

    [1]屈汝祥,劉成強,胡喬朋,等.PC104總線在測試設備中的應用[J].測控技術,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總線的自動測試系統(tǒng)設計[J].光電技術應用,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熱插拔模塊設計[J].中國集成電路,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].北京:北京交通大學,2014.

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

    [6]陽建華,鄭瑩娜,曠雪梅,等.基于PCI-1220U的電動助力轉向器性能測試系統(tǒng)研究 [J].工業(yè)儀表與自動化裝置,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]鄭對元.精通LabVIEW虛擬儀器程序設計 [M].北京:清華大學出版社,2012.

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

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

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

    [11]茍木理.面向Windows8物理內(nèi)存鏡像文件的內(nèi)存取證技術研究[D].重慶:重慶大學,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 稿件編號:201409094

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

    猜你喜歡
    調(diào)用內(nèi)存端口
    一種端口故障的解決方案
    科學家(2021年24期)2021-04-25 13:25:34
    核電項目物項調(diào)用管理的應用研究
    “春夏秋冬”的內(nèi)存
    當代陜西(2019年13期)2019-08-20 03:54:22
    LabWindows/CVI下基于ActiveX技術的Excel調(diào)用
    測控技術(2018年5期)2018-12-09 09:04:46
    端口阻塞與優(yōu)先級
    基于系統(tǒng)調(diào)用的惡意軟件檢測技術研究
    初識電腦端口
    電腦迷(2015年6期)2015-05-30 08:52:42
    生成樹協(xié)議實例探討
    基于內(nèi)存的地理信息訪問技術
    利用RFC技術實現(xiàn)SAP系統(tǒng)接口通信
    信阳市| 上杭县| 庐江县| 遂昌县| 象山县| 嘉祥县| 徐汇区| 天长市| 南昌市| 滕州市| 宝丰县| 长白| 宁国市| 聂拉木县| 青州市| 孟州市| 余干县| 婺源县| 青神县| 抚宁县| 化州市| 饶河县| 温泉县| 通州市| 海原县| 含山县| 抚宁县| 梁山县| 宕昌县| 铜梁县| 仪陇县| 大连市| 池州市| 马鞍山市| 工布江达县| 元谋县| 西华县| 宝应县| 疏勒县| 卢氏县| 阿拉善右旗|