新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 一種64位高速PCI總線接口的設計與實現

        一種64位高速PCI總線接口的設計與實現

        作者: 時間:2011-03-22 來源:網絡 收藏


        3 設備驅動開發
        在Windows環境下開發設備驅動程序主要有兩種模型,即WinDriver和WDM。本使用了WDM驅動模型。開發設備驅動程序WDM需要處理:硬件訪問、中斷處理和DMA傳輸3方面問題。
        3.1 硬件訪問
        X86處理器有兩種獨立的映射空間:I/O空間和內存空間,I/O空間只能通過I/O指令來訪問,KIoRange類封裝了對I/O空間的操作命令。對于設備,可以通過實例化KIoRange類來對I/O空間進行相應的操作。
        對于PCI設備可以使用KMemoryRange類對內存進行相應操作,具體操作與KIoRange類對I/O空間的操作相似。
        3.2 中斷處理
        驅動程序使用KInterrupt類來對中斷操作的處理,其中包括中斷的初始化、將一個中斷服務例程連接到一個中斷和解除其連接等。
        中斷服務例程不是KInterrupt類的成員函數,這是為了減少中斷延遲時間。中斷處理需要中斷服務例程和延遲過程調用例程,在中斷服務例程中,首先判斷該中斷是否是自己設備產生的,若不是,則返回False;若是,則請求一個延遲過程調用例程(DPC)。
        3.3 DMA傳輸
        PCI9656使用DMA方式進行數據傳輸。DMA傳輸需要3個類:KDmaAdapter,KDmaTransfer和KCommonDmaBuffer。其中,KDmaAdapter類用于建立一個DMA適配器,它說明了DMA通道的特性,如寬度,單次傳輸最大個數等,需要注意的是本設備使用的是64位寬度,因此需要特別指出;KDmaTransfer類用于DMA傳輸控制,如傳輸開始、傳輸字節數等;KCommonDmaBuffer類用于申請系統提供的公共緩沖區。具體DMA傳輸設置如下
        b.jpg

        本文引用地址:http://www.104case.com/article/156552.htm



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洛扎县| 沅江市| 康定县| 奈曼旗| 册亨县| 个旧市| 黄浦区| 临沂市| 宜都市| 开江县| 上栗县| 文成县| 磐石市| 从化市| 登封市| 皮山县| 鹤山市| 库车县| 正镶白旗| 石棉县| 招远市| 河北省| 扬中市| 望谟县| 辉南县| 漳浦县| 崇信县| 岢岚县| 襄垣县| 鱼台县| 南岸区| 福海县| 白水县| 舟曲县| 凤庆县| 辉县市| 岱山县| 宜黄县| 尼勒克县| 且末县| 洛阳市|