視頻采集卡Windows95驅(qū)動(dòng)程序設(shè)計(jì)
發(fā)布時(shí)間:2007/8/29 0:00:00 訪問次數(shù):882
摘要:介紹了Windows95系統(tǒng)中視頻采集卡驅(qū)動(dòng)程序的原理和結(jié)構(gòu),較詳細(xì)地介紹了虛擬設(shè)備驅(qū)動(dòng)程序和Video For Window視頻采集驅(qū)動(dòng)程序設(shè)計(jì)技術(shù)。
關(guān)鍵詞:視頻采集 驅(qū)動(dòng)程序 Windows95
在計(jì)算機(jī)視頻應(yīng)用中,視頻采集卡承擔(dān)著將模擬視頻信號(hào)轉(zhuǎn)換成數(shù)字視頻信號(hào)的任務(wù)。Windows95是目前應(yīng)用比較廣泛的操作系統(tǒng),許多視頻應(yīng)用系統(tǒng)是基于該平臺(tái)的。不但采集卡設(shè)計(jì)人員需要詳細(xì)了解Windows95系統(tǒng)中視頻采集卡驅(qū)程序設(shè)計(jì)技術(shù),應(yīng)用程序設(shè)計(jì)人員也需要理解驅(qū)動(dòng)程序的工作原理,以便設(shè)計(jì)出性能更好的應(yīng)用程序。本文以PCI總線視頻采集為例,較詳細(xì)地介紹了Windows95系統(tǒng)中視頻采集卡驅(qū)動(dòng)程序設(shè)計(jì)技術(shù)。
1 Windows95驅(qū)動(dòng)程序原理
Windows95作為多線程搶占式多任務(wù)操作系統(tǒng),對(duì)硬件設(shè)備進(jìn)行了全面而完善的管理。其設(shè)備驅(qū)動(dòng)程序的主要目的是使系統(tǒng)中的各個(gè)任務(wù)共享硬件設(shè)備,在任務(wù)切換時(shí)確保硬件設(shè)備一致性。Windows95設(shè)備驅(qū)動(dòng)程序是分層設(shè)計(jì)的,層間定義了統(tǒng)一的接口,提高了程序的兼容性,便于系統(tǒng)升級(jí)和移值。系統(tǒng)將各類硬件設(shè)備的功能、行為進(jìn)行歸類整理,將實(shí)際設(shè)備抽象成邏輯設(shè)備。邏輯設(shè)備具有某一類型設(shè)備所共有的屬性,具有統(tǒng)一的行為,并以一致的方式進(jìn)行操縱。系統(tǒng)提供必要的函數(shù)和方法供應(yīng)用程序操縱某一類型的邏輯設(shè)備。應(yīng)用程序被嚴(yán)格禁止進(jìn)行直接的硬件設(shè)備操作,所需的操作應(yīng)當(dāng)調(diào)用相應(yīng)的系統(tǒng)API函數(shù)來完成。視頻采集卡的設(shè)備驅(qū)動(dòng)程序?qū)儆贛ultiMedia類中的VideoCap子類,由虛擬設(shè)備驅(qū)動(dòng)程序CAPTURE.VXD和可安裝設(shè)備驅(qū)動(dòng)程序CAPTURE.DRV構(gòu)成。其結(jié)構(gòu)框圖見圖1。
虛擬機(jī)管理器VMM構(gòu)成了Windows95系統(tǒng)的核心。它是一個(gè)32位保護(hù)模式操作系統(tǒng),它的主要責(zé)任是創(chuàng)建、運(yùn)行、監(jiān)視以及終止虛擬機(jī)。虛擬機(jī)是一個(gè)可執(zhí)行的任務(wù),它由內(nèi)存空間、CPU寄存器組、應(yīng)用程序以及應(yīng)用程序的支持軟件如ROM BIOS、MS-DOS等組成,系統(tǒng)可同時(shí)擁有多個(gè)虛擬機(jī)。當(dāng)某個(gè)硬件設(shè)備的狀態(tài)可能受到任務(wù)切換的干擾時(shí),該調(diào)和就需要相應(yīng)的虛擬設(shè)備驅(qū)動(dòng)程序的支持。虛擬機(jī)管理器和虛擬設(shè)備驅(qū)動(dòng)程序一同管理系統(tǒng)的軟硬件資源,響應(yīng)中斷,進(jìn)行I/O操作,確保多個(gè)應(yīng)用程序共享資源,互不干擾。
Windows95視頻采集卡設(shè)備驅(qū)動(dòng)程序包括虛擬設(shè)備驅(qū)動(dòng)程序和可安裝設(shè)備驅(qū)動(dòng)程序兩部分,一般可以采用Microsoft Windows95 DDK(Device Driver Kit)進(jìn)行原形、輸入庫(kù)以及一些樣例代碼,但是未提供編程所需要的編譯、匯編和連接程序。采用Visual C++ 5.0、Visual C++ 1.5以及MASM 6.0進(jìn)行程序設(shè)計(jì)。設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)的好壞與采集卡的功能、性能、 兼容性及穩(wěn)定性密切相關(guān)。為保證驅(qū)動(dòng)程序的質(zhì)量,應(yīng)當(dāng)嚴(yán)格遵照Windows95 DDK的文檔進(jìn)行程序設(shè)計(jì)。
2 虛擬設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)
在視頻采集卡的驅(qū)動(dòng)程序中,虛擬設(shè)備驅(qū)動(dòng)程序CAPTURE.VXD負(fù)責(zé)參與系統(tǒng)即插即用配置過程,管理視頻采集卡的硬件設(shè)備,并向運(yùn)行在權(quán)限級(jí)3的上層程序提供調(diào)用接口:一是將分配的資源返回,如內(nèi)存選擇子、I/O地址、中斷號(hào)等,使得上層驅(qū)動(dòng)程序可以使用這資源來操縱采集卡硬件設(shè)備;二是完成一些在權(quán)限級(jí)3所不能進(jìn)行的操作,如分配DMA緩沖區(qū)、查看內(nèi)存映射頁(yè)表等。虛擬機(jī)管理器和虛擬設(shè)備驅(qū)動(dòng)程序運(yùn)行在一個(gè)單一的32位平板模式址空間中,權(quán)限級(jí)為0。系統(tǒng)建立兩個(gè)基地址為0、界限為4GB的全局描述符選擇子分別用于代碼段和數(shù)據(jù)段,程序不應(yīng)當(dāng)直接修改段寄存器、內(nèi)存描述符表、中斷描述符表。
2.1 設(shè)備聲明
虛擬設(shè)備驅(qū)動(dòng)程序必須包含一個(gè)聲明,它一般位于程序的前部,聲明中包括虛擬設(shè)備驅(qū)動(dòng)程序的名稱、版本號(hào)、調(diào)用接口等一些重要信息。聲明由宏Declare_Virtual_Device完成,語法如下:
Declare_
摘要:介紹了Windows95系統(tǒng)中視頻采集卡驅(qū)動(dòng)程序的原理和結(jié)構(gòu),較詳細(xì)地介紹了虛擬設(shè)備驅(qū)動(dòng)程序和Video For Window視頻采集驅(qū)動(dòng)程序設(shè)計(jì)技術(shù)。
關(guān)鍵詞:視頻采集 驅(qū)動(dòng)程序 Windows95
在計(jì)算機(jī)視頻應(yīng)用中,視頻采集卡承擔(dān)著將模擬視頻信號(hào)轉(zhuǎn)換成數(shù)字視頻信號(hào)的任務(wù)。Windows95是目前應(yīng)用比較廣泛的操作系統(tǒng),許多視頻應(yīng)用系統(tǒng)是基于該平臺(tái)的。不但采集卡設(shè)計(jì)人員需要詳細(xì)了解Windows95系統(tǒng)中視頻采集卡驅(qū)程序設(shè)計(jì)技術(shù),應(yīng)用程序設(shè)計(jì)人員也需要理解驅(qū)動(dòng)程序的工作原理,以便設(shè)計(jì)出性能更好的應(yīng)用程序。本文以PCI總線視頻采集為例,較詳細(xì)地介紹了Windows95系統(tǒng)中視頻采集卡驅(qū)動(dòng)程序設(shè)計(jì)技術(shù)。
1 Windows95驅(qū)動(dòng)程序原理
Windows95作為多線程搶占式多任務(wù)操作系統(tǒng),對(duì)硬件設(shè)備進(jìn)行了全面而完善的管理。其設(shè)備驅(qū)動(dòng)程序的主要目的是使系統(tǒng)中的各個(gè)任務(wù)共享硬件設(shè)備,在任務(wù)切換時(shí)確保硬件設(shè)備一致性。Windows95設(shè)備驅(qū)動(dòng)程序是分層設(shè)計(jì)的,層間定義了統(tǒng)一的接口,提高了程序的兼容性,便于系統(tǒng)升級(jí)和移值。系統(tǒng)將各類硬件設(shè)備的功能、行為進(jìn)行歸類整理,將實(shí)際設(shè)備抽象成邏輯設(shè)備。邏輯設(shè)備具有某一類型設(shè)備所共有的屬性,具有統(tǒng)一的行為,并以一致的方式進(jìn)行操縱。系統(tǒng)提供必要的函數(shù)和方法供應(yīng)用程序操縱某一類型的邏輯設(shè)備。應(yīng)用程序被嚴(yán)格禁止進(jìn)行直接的硬件設(shè)備操作,所需的操作應(yīng)當(dāng)調(diào)用相應(yīng)的系統(tǒng)API函數(shù)來完成。視頻采集卡的設(shè)備驅(qū)動(dòng)程序?qū)儆贛ultiMedia類中的VideoCap子類,由虛擬設(shè)備驅(qū)動(dòng)程序CAPTURE.VXD和可安裝設(shè)備驅(qū)動(dòng)程序CAPTURE.DRV構(gòu)成。其結(jié)構(gòu)框圖見圖1。
虛擬機(jī)管理器VMM構(gòu)成了Windows95系統(tǒng)的核心。它是一個(gè)32位保護(hù)模式操作系統(tǒng),它的主要責(zé)任是創(chuàng)建、運(yùn)行、監(jiān)視以及終止虛擬機(jī)。虛擬機(jī)是一個(gè)可執(zhí)行的任務(wù),它由內(nèi)存空間、CPU寄存器組、應(yīng)用程序以及應(yīng)用程序的支持軟件如ROM BIOS、MS-DOS等組成,系統(tǒng)可同時(shí)擁有多個(gè)虛擬機(jī)。當(dāng)某個(gè)硬件設(shè)備的狀態(tài)可能受到任務(wù)切換的干擾時(shí),該調(diào)和就需要相應(yīng)的虛擬設(shè)備驅(qū)動(dòng)程序的支持。虛擬機(jī)管理器和虛擬設(shè)備驅(qū)動(dòng)程序一同管理系統(tǒng)的軟硬件資源,響應(yīng)中斷,進(jìn)行I/O操作,確保多個(gè)應(yīng)用程序共享資源,互不干擾。
Windows95視頻采集卡設(shè)備驅(qū)動(dòng)程序包括虛擬設(shè)備驅(qū)動(dòng)程序和可安裝設(shè)備驅(qū)動(dòng)程序兩部分,一般可以采用Microsoft Windows95 DDK(Device Driver Kit)進(jìn)行原形、輸入庫(kù)以及一些樣例代碼,但是未提供編程所需要的編譯、匯編和連接程序。采用Visual C++ 5.0、Visual C++ 1.5以及MASM 6.0進(jìn)行程序設(shè)計(jì)。設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)的好壞與采集卡的功能、性能、 兼容性及穩(wěn)定性密切相關(guān)。為保證驅(qū)動(dòng)程序的質(zhì)量,應(yīng)當(dāng)嚴(yán)格遵照Windows95 DDK的文檔進(jìn)行程序設(shè)計(jì)。
2 虛擬設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)
在視頻采集卡的驅(qū)動(dòng)程序中,虛擬設(shè)備驅(qū)動(dòng)程序CAPTURE.VXD負(fù)責(zé)參與系統(tǒng)即插即用配置過程,管理視頻采集卡的硬件設(shè)備,并向運(yùn)行在權(quán)限級(jí)3的上層程序提供調(diào)用接口:一是將分配的資源返回,如內(nèi)存選擇子、I/O地址、中斷號(hào)等,使得上層驅(qū)動(dòng)程序可以使用這資源來操縱采集卡硬件設(shè)備;二是完成一些在權(quán)限級(jí)3所不能進(jìn)行的操作,如分配DMA緩沖區(qū)、查看內(nèi)存映射頁(yè)表等。虛擬機(jī)管理器和虛擬設(shè)備驅(qū)動(dòng)程序運(yùn)行在一個(gè)單一的32位平板模式址空間中,權(quán)限級(jí)為0。系統(tǒng)建立兩個(gè)基地址為0、界限為4GB的全局描述符選擇子分別用于代碼段和數(shù)據(jù)段,程序不應(yīng)當(dāng)直接修改段寄存器、內(nèi)存描述符表、中斷描述符表。
2.1 設(shè)備聲明
虛擬設(shè)備驅(qū)動(dòng)程序必須包含一個(gè)聲明,它一般位于程序的前部,聲明中包括虛擬設(shè)備驅(qū)動(dòng)程序的名稱、版本號(hào)、調(diào)用接口等一些重要信息。聲明由宏Declare_Virtual_Device完成,語法如下:
Declare_
熱門點(diǎn)擊
- 在PC上運(yùn)行的實(shí)時(shí)操作系統(tǒng)LabVIEW R
- Keil C動(dòng)態(tài)內(nèi)存管理機(jī)制分析及改進(jìn)
- 在MC68HC908GP32上移植μC/OS
- 交流異步電動(dòng)機(jī)矢量控制系統(tǒng)的嵌入式設(shè)計(jì)
- 視頻采集卡Windows95驅(qū)動(dòng)程序設(shè)計(jì)
- 8051單片機(jī)在線升級(jí)軟件的方法
- 嵌入式瀏覽器Konqueror/E的實(shí)現(xiàn)
- 基于ARM和FPGA的多功能車輛總線嵌入式系
- Nios SoC系統(tǒng)中的BCH編解碼IP核的
- 基于I2C總線的MSP430單片機(jī)應(yīng)用系統(tǒng)設(shè)
推薦技術(shù)資料
- 羅盤誤差及補(bǔ)償
- 造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細(xì)]
- AMOLED顯示驅(qū)動(dòng)芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計(jì)
- GB300 超級(jí)芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個(gè)最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究