中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      采用VXD技術(shù)實現(xiàn)實的通信

      時間:2024-07-08 05:35:37 理工畢業(yè)論文 我要投稿
      • 相關推薦

      采用VXD技術(shù)實現(xiàn)實的通信

      摘要:討論Windows虛擬設備驅(qū)動(VXD)技術(shù),并采用此項技術(shù)示范性地做出應用于PC串口實時通信的虛擬驅(qū)動程序,找到一種可以在PC中實現(xiàn)實時通信的途徑。

      引言

      在微軟的視窗操作系統(tǒng)中,系統(tǒng)內(nèi)核掌管所有的應用程序,通過獨特的任務調(diào)度算法實現(xiàn)CPU的分時多任務處理方式。多任務處理對大多數(shù)用戶可能是件好事,但是對那些想把實時通信建立在Windows操作系統(tǒng)上的特殊用戶來說,操作界面的圖形化并不比MS-DOS的單任務更具吸引力。在視窗操作系統(tǒng)里可以進行實時通信和控制碼?答案是:VXD技術(shù)可以幫我們在獲取友好的人機界面的同時還擁有很強的實時性。

      1 VXD技術(shù)解析

      VXD技術(shù)可追溯到Windows3.1,它的引入就是要讓操作系統(tǒng)實現(xiàn)多工以及硬件資源的共享。為了支持多個MS-DOS任務同時執(zhí)行,Windows98讓每個MS-DOS應用程序在各自的虛擬機(VM)上運行,各自互不相干;而所有的Widnows應用程序卻都在一個虛擬機上運行。圖1所示的結(jié)構(gòu)框圖很好地說明了Windows98的整體架構(gòu)。

      圖1中,由眾多的VXD組成系統(tǒng)級代碼處于最底層。其中,處于中心地位的是一名為VMM32的VXD,它負責協(xié)調(diào)和管理所有的VXDs。其它VXDs則通過消息機制(這個消息機制由VMM32.VXD來維護)彼此聯(lián)系。由所有VXDs開放出的服務接口(API)組成了一個服務網(wǎng),它們彼此通過合作的方式,提供Windows98的系統(tǒng)底層驅(qū)動服務。

      從以上Windows98系統(tǒng)架構(gòu)可以看出,要想在視窗平臺下獲取很強的實時性,僅靠提升應用程序線程優(yōu)先級的方法是不夠的。因為Win32應用程序代碼屬于Ring3級,而VXD代碼則屬于Ring0級;采用VXD撰寫的實時通信程序可以完全不受代碼限制,可以直接對硬件進行操作。VXD的這個特點正是實時通信建立所必須的。

      設計實時通信的VXD前,先解釋以下幾個問題:

      ①VMM32使用VPICD.VXD虛擬化每個硬件和軟件中斷。VMM32為每個虛擬機(VM)維護一個IDT結(jié)構(gòu),當中斷發(fā)生時,CPU先保護中斷現(xiàn)場,然后經(jīng)由當前VM的IDT把這個中斷引導至相應的中斷處理程式。

      中斷的虛擬化,使我們有機會給每個中斷提供新的中斷處理函數(shù),并可以讓多個硬件共享同一個中斷號。VPICD.VXD為我們提供這些服務。

      ②VMM有兩個調(diào)度器,用以在多個線程和VMs之間實現(xiàn)搶占式多工。主調(diào)度器負責選定下一個將被執(zhí)行的線程。這個選擇可以是一個,也可以是多個。然后,主調(diào)度器把選擇結(jié)果送給所謂的時間片調(diào)度器,并由后者完成各個應用程序間的時間片分配。調(diào)度器也時應用程序經(jīng)由呼叫Win32線程優(yōu)先調(diào)整API(如SetThreadPriority和SetPriorityClass等)做出回應。當中斷發(fā)生時,VMM32自動提升中斷處理函數(shù)所在VM之優(yōu)先級,保證中斷處理函數(shù)能及時被執(zhí)行。

      ③VXD和Win32應用程序可直接通信。Win32應用程序可通過一個系統(tǒng)API(DevicelOControl(…))來呼叫位于底層的VXD為其服務。在呼叫VXD前,首先必須調(diào)用CreatFile(…)這個API加載該VXD(如果該VXD是一個靜態(tài)VXD,則不用加載)。所有的呼叫動作其實都通過VMM32完成。VXD也可以通過消息方式和位于上層的Win32應用程序通信。She11.VXD為所有希望以消息機制和Win32應用程序通信的VXD提供了這一服務。

      以上是編寫一個串口通信驅(qū)動需要的系統(tǒng)層面知識。對于Windows底層的了解。

      2 用VXD實現(xiàn)一個實時串口通信驅(qū)動

      接下來用VXD技術(shù)實現(xiàn)一個實時串行通信的驅(qū)動。這個VXD是一個動態(tài)(Dynamic)VXD,當它的服務被呼叫時,VMM32會動態(tài)加載這個VXD。作者采用的工具是C 98DDK。當然也可以使用其它的工具,如MASM6.11(或更高版本)、VtoolsD。用C搭配DDK完成VXD構(gòu)建的好處是,可以使用C語言完成絕大部分的程序,程序比較容易閱讀和維護。

      用C來實現(xiàn)一個VXD驅(qū)動,需要準備如下條件:一個.ASM的匯編語言接口文件(在其中定義VXD要處理的系統(tǒng)消息和輸出API),一個.C的函數(shù)實現(xiàn)文件(在其中完成自己函數(shù)實體),一個.DEF的定義文件(在其中定義VXD中各個段的別名并匯成一個DDB)和一個.MAK檔(用來編譯并連接生成VXD,可有可無)。在這里,僅給出用C實現(xiàn)的函數(shù)檔。至于其它的文件,可以從本文所列的參考書目或其它文獻中找到相關文檔的說明。

      這個串口通信驅(qū)動程序的功能是:實時送出一個Byte的數(shù)據(jù),實時接收一個Byte的數(shù)據(jù)。作為演示之用,并沒有加入其它代碼。該VXD驅(qū)動主要由如下3個系統(tǒng)消息(由VMM32來維護和管理)處理函數(shù)組成,其代碼如下:

      (1)OnSysDynamicDeviceInit()函數(shù)

      BOOL OnSysDynamicDeviceInit()

      { //OnSysDynamicDeviceInit

      irqhandle=VPICD_Virtualize_IRQ((DWORD)(

      【采用VXD技術(shù)實現(xiàn)實的通信】相關文章:

      超高壓采用超長站距光纖通信技術(shù)03-20

      通信技術(shù)論文11-21

      網(wǎng)絡通信技術(shù)的作用03-30

      通信技術(shù)與計算機技術(shù)融合技術(shù)11-20

      通信技術(shù)論文(15篇)06-04

      通信技術(shù)論文15篇06-04

      光纖通信技術(shù)的發(fā)展初探12-08

      交通信息采集技術(shù)論文02-12

      現(xiàn)代光纖通信技術(shù)論文11-10

      主站蜘蛛池模板: 成人免费视频自偷自拍| 亚洲中文字幕有码av| 91免费国产| 成人免费观看在线播放视频| 国产一级片内射在线视频| 成人自拍视频国产一区| 霍林郭勒市| 欧洲乱码伦视频免费| 日本成人一区二区不卡| 久久久精品国产亚洲av日韩| 亚洲一区二区在线精品| 久久AⅤ无码精品色午麻豆| 金堂县| 肃南| 国产精品一码二码三码在线| 日韩有码中文字幕国产| 国产成人香蕉久久久久| 丝袜美腿丝袜亚洲综合 | 欧美日本国产亚洲网站免费一区二区| 亚洲av国产成人精品区| 亚洲Va中文字幕无码毛片下载| 精品一二区| 国产成人精品无码一区二区老年人| 少妇久久久被弄到高潮| 欧洲AV秘 无码一区二区三| 国产在线观看网址不卡一区| 霞浦县| 在线成人tv天堂中文字幕| 宝清县| 国产精品女同学| 一本大道久久精品一本大道久久| 亚洲成人av一区二区三区| 亚洲区福利视频免费看| 日本一区二区三区视频一| 亚洲精彩视频一区二区| 综合激情久久精品女人天堂| 宅男久久精品国产亚洲av麻豆 | 中文字幕精品一区二区日本 | 青青青在线观看视频免费播放| 白丝美女被狂躁免费视频网站| 久久国产亚洲中文字幕|