新聞中心

        EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于USB接口的虛擬示波器的開發(fā)實(shí)現(xiàn)

        基于USB接口的虛擬示波器的開發(fā)實(shí)現(xiàn)

        作者: 時(shí)間:2012-04-18 來源:網(wǎng)絡(luò) 收藏
        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指向驅(qū)動(dòng)程序的清除例程。I/O管理器會(huì)在卸載驅(qū)動(dòng)程序前調(diào)用該例程。
          (2)DriverExtension→AddDevice指向驅(qū)動(dòng)程序的AddDevice函數(shù)。PnP管理器將為每個(gè)硬件實(shí)例調(diào)用一次AddDevice例程。
          (3)DriverStartIo驅(qū)動(dòng)程序使用標(biāo)準(zhǔn)的IRP(interrupt request package,中斷請(qǐng)求包)排隊(duì)。
          (4)MajorFunction驅(qū)動(dòng)程序可能需要處理幾種類型的IRP,所以,應(yīng)該設(shè)置與那幾種IRP類型相對(duì)應(yīng)的指針元素,使它們指向相應(yīng)的派遣函數(shù)。根據(jù)虛擬儀器系統(tǒng)的實(shí)際要求,本驅(qū)動(dòng)程序所要處理的主功能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。
          在主入口例程中,必須設(shè)置和這些IRP類型相對(duì)應(yīng)的指針元素,使它們指向相應(yīng)的派遣函數(shù)。
        4 客戶服務(wù)軟件設(shè)計(jì)
          整個(gè)客戶服務(wù)軟件使用VC++編寫,分以下幾個(gè)主要模塊設(shè)計(jì)。
        4.1 驅(qū)動(dòng)層與應(yīng)用層通信模塊
          如果通信功能塊直接放在應(yīng)用程序主線程中實(shí)現(xiàn),那么,當(dāng)應(yīng)用程序與驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)通信時(shí),主界面就會(huì)凍結(jié)。為了解決這個(gè)問題,我們直接創(chuàng)建一個(gè)子線程來單獨(dú)完成與驅(qū)動(dòng)程序的通信任務(wù),讓主界面專心于響應(yīng)視窗界面的訊息。在子線程中通過調(diào)用Windows API函數(shù)來實(shí)現(xiàn)對(duì)USB設(shè)備進(jìn)行IO操作。其中,DeviceIoControl()函數(shù)用于傳送設(shè)備配置信息;CreateFile()用于創(chuàng)建設(shè)備對(duì)象;WriteFile()和ReadFile()用于對(duì)USB設(shè)備讀寫數(shù)據(jù)。


        關(guān)鍵詞: USB接口 虛擬示波器

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 闸北区| 西贡区| 苍南县| 庄浪县| 沂源县| 团风县| 洛浦县| 满洲里市| 甘孜县| 元氏县| 吴川市| 门源| 华阴市| 镇巴县| 梁平县| 湘潭县| 罗定市| 铜山县| 滦平县| 镇巴县| 泸定县| 东山县| 西丰县| 武乡县| 红河县| 乳山市| 迁安市| 荆州市| 民勤县| 万宁市| 新沂市| 隆昌县| 沧源| 东港市| 邵东县| 龙里县| 贵南县| 玛纳斯县| 精河县| 张北县| 蛟河市|