色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于USB接口的虛擬示波器的開發(fā)實現

          基于USB接口的虛擬示波器的開發(fā)實現

          作者: 時間:2012-04-18 來源:網絡 收藏
          12px/18px 宋體, arial; TEXT-TRANSFORM: none; COLOR: rgb(95,95,95); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); orphans: 2; widows: 2; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  (1)DriverUnload指向驅動程序的清除例程。I/O管理器會在卸載驅動程序前調用該例程。
           ?。?)DriverExtension→AddDevice指向驅動程序的AddDevice函數。PnP管理器將為每個硬件實例調用一次AddDevice例程。
            (3)DriverStartIo驅動程序使用標準的IRP(interrupt request package,中斷請求包)排隊。
           ?。?)MajorFunction驅動程序可能需要處理幾種類型的IRP,所以,應該設置與那幾種IRP類型相對應的指針元素,使它們指向相應的派遣函數。根據虛擬儀器系統的實際要求,本驅動程序所要處理的主功能IRP有:
          IRP-MJ-CREATE;IRP-MJ-CLOSE;
          IRP-MJ-DEVICE-CONTR;IRP-MJ-WRITE;
          IRP-MJ-READ;IRP-MJ-SYSTEM-CONTROL;
          IRP-MJ-PNP;IRP-MJ-POWER。
            在主入口例程中,必須設置和這些IRP類型相對應的指針元素,使它們指向相應的派遣函數。
          4 客戶服務軟件設計
            整個客戶服務軟件使用VC++編寫,分以下幾個主要模塊設計。
          4.1 驅動層與應用層通信模塊
            如果通信功能塊直接放在應用程序主線程中實現,那么,當應用程序與驅動程序進行數據通信時,主界面就會凍結。為了解決這個問題,我們直接創(chuàng)建一個子線程來單獨完成與驅動程序的通信任務,讓主界面專心于響應視窗界面的訊息。在子線程中通過調用Windows API函數來實現對USB設備進行IO操作。其中,DeviceIoControl()函數用于傳送設備配置信息;CreateFile()用于創(chuàng)建設備對象;WriteFile()和ReadFile()用于對USB設備讀寫數據。


          關鍵詞: USB接口 虛擬示波器

          評論


          相關推薦

          技術專區(qū)

          關閉