基于PCI总线的视频采集卡驱动程序的设计与实现

合集下载

基于PCI总线的数据采集卡接口的设计及实现研究

基于PCI总线的数据采集卡接口的设计及实现研究
st r uct u re a nd o pe r ati on s e que nc e. Ke y wo r ds :P CI b u s:d a t a a c q ui Si t i o n c a r d: i n t e r f a c e :s y s t e m p e r f o r m a n c e :d e s i g n
关键 词 :P C I 总线 ; 数据采集卡 : 接 口; 系统 性 能 ; 设 计
De s i g n a n d i mp l e me n t a t i o n o f d a t a a c q u i s i t i o n c a r d i n t e r f a c e b a s e d o n P CI b u s
基于 P C l 总线 的数据采集卡接 口的设计及实现研究
史云辉
( 江苏 自 动 化 研 究 所 ,江 苏连 云 港 , 2 2 2 0 0 6 )
摘要 : 随着计 算机技 术的不断推进, 在互联 网技术 不断发展的过程中, 只有保证建构有 效的系统运 行系统层级 , 才能对数据采 集和项 目处理 进行集中分析 。 本文从 P C I总线特征分析入手, 从特征 、 信号结构和操作时序对 系统进 行了集 中解读 。
S hi Y u n h ui
( J i a n g s u A u t o m a t i O i l R e s e a r c h I n s t i t u t e , L i a n y u n g a n g J i a n g s u , 2 2 2 0 0 6 )
结 构在项 目运 行中具 有低功耗 的显 著特征 , 能 一定程 度上满 足
设计 要求 , 并且 保证 电流 的最小化 , 系 统 设 计运 行 也 较 为 环 保 。

基于PCI-E总线的多功能同步数据采集卡设计

基于PCI-E总线的多功能同步数据采集卡设计

基于PCI-E总线的多功能同步数据采集卡设计基于PCI-E总线的多功能同步数据采集卡设计摘要:随着科技的不断发展和应用领域的不断扩展,对高性能、多功能的数据采集卡的需求也越来越大。

本文提出了一种基于PCI-E总线的多功能同步数据采集卡设计方案,采用高速数据传输和同步采样技术,实现了对多种信号的高清晰度采集和处理。

1. 引言数据采集卡是一种广泛应用于各个领域的电子设备,用于采集和处理各种信号,如模拟信号、数字信号、视频信号等。

随着科技的发展和应用领域的不断扩展,人们对数据采集卡的需求也越来越高。

本文基于PCI-E总线的数据采集卡设计,旨在实现高性能、高可靠性和多功能的数据采集和处理功能。

2. 系统设计2.1 总体架构本系统的总体架构由PCI-E接口模块、时钟同步模块、高速数据采集模块、FPGA数据处理模块等组成。

PCI-E接口模块将数据采集卡与主机之间的数据传输实现,时钟同步模块用于实现各个模块之间的同步采样,高速数据采集模块负责高速采集各种信号,FPGA数据处理模块用于对采集到的数据进行处理和分析。

2.2 PCI-E接口模块PCI-E接口模块是数据采集卡与主机之间的数据传输通道,通过PCI-E总线实现高速数据传输。

在设计中,选择了PCI-E 3.0 x4作为数据采集卡的接口标准,以满足高速数据传输的需求。

2.3 时钟同步模块为了实现各个模块之间的同步采样,需要设计一个时钟同步模块。

该模块主要包括一个高精度的时钟源和时钟分频模块。

通过时钟源产生的时钟信号,经过分频模块分频后,分别作为各个模块的时钟输入。

通过时钟同步模块,实现了数据采集模块和数据处理模块之间的同步采样。

2.4 高速数据采集模块高速数据采集模块是数据采集卡的核心模块,负责采集各种信号。

该模块包括模拟信号采集电路和数字信号采集电路两部分。

模拟信号采集电路使用高精度的ADC芯片,能够实现高清晰度的模拟信号采集。

数字信号采集电路使用高速采样芯片,能够实现高速的数字信号采集。

基于PCIE总线协议的数据采集设备驱动程序实现_刘波

基于PCIE总线协议的数据采集设备驱动程序实现_刘波

数据是否传输完 / /毕, 并做相应处理
/V 当 DMA 传输结束时, 数据可能还在 IO 缓冲寄存器中, 但还没有更新
到系统内存中, 这样 CPU 可能访问到错误的数据, 为了保持一致性, 还
应该刷新 IO 缓冲寄存器
中的数据 V/
DWORD WD_DMASync Io(HANDLE hWD,WD_DMA Vp DMA)^
《工业控制计算机》2007 年 20 卷第 7 期
29
2.2 数据采集卡驱动程序实现 2.2.1 获得板卡信息
板 卡 信 息 主 要 包 括 厂 家 ID 号 , 设 备 内 存 映 射 空 间 , 设 备 所 在插槽号以及其他设备专用配置信息。只有获得了板卡信息才 能实现对板卡的访问。这些信息通过下面两个函数得到:
图 1 数据采集卡结构 上层应用程序通过驱动程序将采集卡数据传送到计算机 中。数据传输有两种模式 : PIO 模式和 DMA ( 直 接 内 存 访 问 ) , PIO 模 式 主 要 实 现 计 算 机 和 数 据 采 集 卡 之 间 的 命 令 传 输 ; DMA 模式主要针对大块数据传输, 传输过程中不需要经过 CPU, 数 据直接从板卡传送到内存中, 数据传输的速率比较快, 可以充分 利用 PCIE 数据带宽。
void WD_PciGetCard Info(HANDLE hWD, WD_PCI_CARD _INFOVp Pc iCa rd ): 这 个 函 数 获 取 PCI 设 备 的 资 源 信 息 , 例 如 内 存资源、IO 资源 rne l 登记硬件板卡信息
对 板 卡 信 息 的 登 记 是 通 过 结 构 WD_CARD_REGISTER 来 实现的, 它包含了硬件的各项信息。这些信息可以通过第一步中 的两个函数获得。在确定了 WD_CARD_REGISTER 结构后调用 函 数 WD_Card Reg is ter (HANDLE hWD, WD_CARD_REGIS- TER Vp Ca rd Re g )向 Wind rive r Ke rne l 登记板卡。 2.2.3 访问卡上资源并实现数据传输

基于PCI总线的视频采集卡研究

基于PCI总线的视频采集卡研究
在 个人 P C得 到迅速发展 的今 天 ,C 总线成为应用 PI 最 广泛 、 最流行 的一 种 高性 能计 算 机局部 总线 , 具有 它
3 /4位 总 线 宽 度 , 钟 频 率 为 0 3 H , 大 传 输 速 26 时 ~ 3M z 最
决 丁多 制式 彩色全 电视 信号的数字式锁相 和解码 技术 , 以及视频 信号 与 图形信 号 的窗 口控制 ,从 而使视频 信
机输 出的视频数据 ( V 或视频 、 A ) 音频 ( S端子 ) 的混合 数
图形 与图像叠 加 问题 的解决 使 图像 系统真 正为 多媒 体
系统所用 。
9 O年代后期 , 随着系统集成 的发展 视频采集卡进 入
据进 行采集 、 压缩 、 存储 等处理 , 最终 成为可 供计算机 编 辑处 理的数字信 号【 2 1 0世纪 8 I 。 0年代 中期 ,C机上开始 P 应用 视频 卡。这一时期图像系统的突出特点是 有一个专 用的图像显示器与 图像卡相连 ,而图形是通过 显示 卡输 出到图形 显示器 的, 因此不便实现图形图像的同屏显示 。 同期 图像处理硬件价格 昂贵 ,性 能又不 能满足多媒 体系 统的要求 ( 主要 是没有压缩功能 ) 因此不能 为多媒体 系 ,
在高分辨率图像实时处理中数据量十分庞大视频采集卡要不间断地采集模拟视频序列中的每帧图像广西自然科学基金桂科自0229053信息终端32videoengineeringno112006sumno295基于pci总线视频采集卡原理图并在采集下一帧图像之前把这些数据传入pc系统如果每帧视频图像的处理时间超过相邻两帧之间的相隔时间则要出现数据的丢失现象
远程 医疗 诊断系统 、远程 电子图书馆等新技术将付诸实
施, 通过 交互 电视 的机 顶盒(T ) 现网络浏览 、 SB实 电视购

基于PCI总线的雷达视频采集方案

基于PCI总线的雷达视频采集方案

基于PCI总线的雷达视频采集方案摘要:分析了雷达视频采集的必要性和意义,介绍了通过PCI实现高速雷达视频信号的采集实现方案,并分析了方案中的各个模块的功能。

关键词:雷达视频数据采集 PCI PC机在传统的雷达显示终端中所涉及到的视频信号是模拟的,随着计算机技术和IC技术的不断发展,使这种模拟信号的数字化成为可能,使得雷达视频的存储和远距离传输成为可能,并在实际中得到越来越多的应用。

在基于这种技术背景下开展了相应的研究。

(文库114收集整理)1 视频采集方案可行性分析方案的设计主要考虑雷达视频带宽,即距离分辨率。

在采集卡部分影响带宽的数据瓶颈在于三方面:AD采样量化、FIFO读写速度和PCI的DMA速度。

硬件方案中采用TLC5540,最高采样率可以达到40MHz,采样深度为8bits;FIFO采用IDT72V36100,最高读写速度可以达到133MHz;计算机PCI总线的数据带宽可达到532Mbps,在实际中,由于受硬件环境,如主机板和CPU的影响,采用133Mbps的PCI卡。

在PC机部分数据瓶颈主要在于磁盘数据访问速度,普通磁盘的数据访问速度为40Mbps。

若数字化雷达视频带宽达到30Mbps、量化深度为8bits,则数据采样率为30MHz,距离分辨率为300,000,000/2/30,000,000=5m,这样的分辨率能够满足一般的导航和警戒雷达。

若量化深度降低,则距离分辨率将进一步提高。

由以上分析可见所采用方案能够满足视频的带宽要求。

2 系统实现的关键点2.1 方案中的雷达视频数据流程和结构对于30MHz带宽的数字化雷达视频信号要求实时传输,合理地安排数据的流程非常重要。

其流程如图1所示。

由底层到应用程序,雷达数据主要经过三个数据传输过程。

(1)由数据采集卡至设备驱动,在数据采集卡中采用了双FIFO技术,通过DMA单个FIFO一次传输一帧雷达数据,即一个主脉冲正程的雷达回波信号。

这里双FIFO的作用在于信号的实时传送,采集卡对FIF01写入时,驱动程序通过DMA将FIFO2的数据传入BLK2中,此为数据通道CH2,CHl为FIFO1与BLK2之间的通道。

基于PCI总线的数据采集卡的实现_第四章数据采集卡硬件实现_28_42

基于PCI总线的数据采集卡的实现_第四章数据采集卡硬件实现_28_42

第四章数据采集卡硬件实现本章将着重讨论数据采集系统中的各硬件模块及功能模块,从关键器件的选择到硬件电路的设计,都有较详细的分析。

首先给出系统的硬件框图,然后按框图结构对各个模块予以详细的介绍,其中着重介绍了控制电路的工作原理。

基于PCI总线的数据采集卡主要由PCI接口模块,数据存储模块,AD转换模块以及CPLD 逻辑控制模块等组成,其基本工作原理是通过高速A/D将外部模拟信道的信号进行采样,先将采样数据存储在FIFO中,当FIFO半满时,会产生一个半满信号HF通知CPLD使其产生控制信号用来控制PCI9054执行DMA传送,将数据读入到电脑内存中,这样就可以在电脑中对数据进行分析处理。

图4–1是硬件结构简图(原理图请详见附录I~Ⅴ):图4–1 数据采集卡硬件结构简图4.1 数据采集卡的功能模块介绍数据采集的过程如下:传感器出来的小电压、小电流信号经过信号条理,送到A/D转换模块,从而将模拟信号转换为数字信号后,送到FIFO中缓存起来,实现一级缓存,这些缓存的数据再通过PCI总线接口芯片PCI9054以主控的DMA方式送到计算机内存中。

数据采集的控制逻辑是由一片Altera公司的PLD芯片EPM3064构成的控制模块来完成的。

控制模块的主要功能有两部分:一是产生分频信号,由于对采样频率要求不同,所以通过控制模块分频产生采样信号;二是根据FIFO模块的状态信号(FIFO半满、FIFO空)和接口模块的一些状态、命令信号,产生对A/D转换模块和FIFO模块的控制信号和对接口模块命令响应的状态信号。

在下面的几节,我们将具体介绍各个模块的功能和实现。

其中PCI接口芯片PCI9054的结构、功能原理在第三章有详细介绍。

4.1.1 PCI接口模块型号:PCI9054-AC50PI,封装:PQFP-176这是本电路图的核心部分,采用了PLX公司的PCI主设备芯片。

PCI9054是32位、33MHz的通用PCI总线控制器专用芯片。

基于PCI总线的图像采集卡的设计与实现的开题报告

基于PCI总线的图像采集卡的设计与实现的开题报告

基于PCI总线的图像采集卡的设计与实现的开题报告1.选题背景图像采集是指将现实世界中的视觉信息转化成数字信息的过程,其应用广泛,如视频监控、医学影像、计算机视觉等领域。

图像采集卡是图像采集系统的核心部分,其主要功能是将外界的模拟信号(如图像、视频等)转换成数字信号,并通过计算机系统处理和分析。

PCI总线接口是一种常见的计算机总线接口,其具有高带宽、低延迟等特点。

基于PCI总线的图像采集卡由于具有带宽高、数据传输速度快等优点,在图像采集领域得到了广泛应用。

2.研究内容本次研究主要针对基于PCI总线的图像采集卡进行设计与实现,具体包括以下内容:1)PCI总线基础知识及接口协议的学习与理解,包括PCI总线结构、总线传输机制、PCI总线的物理接口标准等。

2)图像采集卡各功能模块的设计与实现,包括模数转换模块、DMA 模块、图像缓存模块、数据流控制模块等。

3)软件设计,包括驱动程序的编写和图像采集卡的测试、调试等。

3.研究意义本研究主要针对基于PCI总线的图像采集卡进行设计与实现,具有如下研究意义:1)对于图像采集卡的基础知识、PCI总线接口以及各功能模块的设计实现有较为深入的理解,为后续相关领域的研究提供了必要的基础。

2)能够对基于PCI总线的图像采集卡进行设计与实现,为相关研究提供了实践指导,同时也具有一定的应用价值。

3)通过本次研究可以提高我们的编程能力和综合应用能力,有助于我们今后的学习和工作。

4.研究方法本研究主要采用了如下研究方法:1)文献研究:通过查阅相关文献,对图像采集卡、PCI总线等相关知识进行了学习和分析,为后续设计提供了理论基础。

2)硬件设计:根据基础知识与文献研究,设计并实现PCI总线接口的图像采集卡,包括模数转换模块、DMA模块、图像缓存模块、数据流控制模块等。

3)软件设计:编写驱动程序并进行测试与调试,验证硬件设计的正确性和可靠性。

5.预期成果本次研究预计的成果如下:1)基于PCI总线接口设计并实现一款高性能的图像采集卡。

PCI总线视频图像采集卡驱动程序的设计

PCI总线视频图像采集卡驱动程序的设计
的命令 , 顺利进 行实 时的球赛 对抗 过程 .
3 驱 动 程序 设 计
3 1 WD . M驱动程 序工作 原理
在 Wi os n w 操作系统为了保证系统的安全性 , d 对应用程序访问硬件资源加 以限制 , 这就要求设计本采集
收 稿 日期 :00 8 9 2 1 —0 —1
作者简介 : 亚兰(90 , ,湖南郴 州人 , 士, 李 18 一)女 硕 讲师 , 研究方向 : 电路与 系统
使用 A I P 函数 可避 开 阅读 大 量 复 杂 的 D K文 件 , 大提 高 了驱 动程 序 的 开发 速 度 和 整 个 性 能 . D 大 关 键 词 :驱 动程 序 ;Wi r e; 频 图像 采 集 ;WD n ir视 Dv M 中 图分 类 号 : P9 .1 T 3 14 文献 标 识 码 : A 文 章 编 号 -17 —87 (0Oo — 04— 4 62 13 2l )5 05 0
于堆栈最 底层 的设 备 对 象 称 为物 理 设 备对 象 P O. D 在设 备
对 象堆栈 的 中间某 处 有 一 个对 象 称 为 功 能设 备 对 象 F O. D 在 F O的上面 和下面还 会有 一些 过滤器 设备 对 象 FD . D i O 位 于 F O上 面的过 滤器设 备 对象 称 为 上层 过滤 器 , 于 F O D 位 D
发 的驱 动程 序为 WD M模式 驱动 程序 . WD M驱动 程序结 构层 次为如 图 2 示 , 所 图中左 边是 一 个 设
备对 象堆 栈 , 备对 象 是 系统 为 帮助 软 件管 理 硬件 而 创 建 设
的数据结 构 , 个物 理硬件 可 以有 多个 这样 的数 据结 构 .件框图
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5卷 第10期 中 国 水 运 Vol.5 No.10 2007年 10月 China Water Transport October 2007收稿日期:2007-8-4作者简介:周敏均 (1983-) 杭州电子科技大学 自动化学院 研究生 (310012) 研究方向:检测技术与自动化装置基于PCI 总线的视频采集卡驱动程序的设计与实现周敏均 杨成忠 江加加摘 要:本文介绍了基于PCI 总线的视频采集卡驱动程序的设计和实现。

视频采集卡基于PCI 总线的设计更好地满足了高速大容量的数据传输需求;针对视频设备的内核流驱动的设计更方便了上层应用软件的开发。

该视频采集卡驱动已经成功应用于视频监控系统中,有效地提高了视频监控系统的功效。

关键词:PCI 总线 视频采集卡 内核流驱动中图分类号:TP311.131 文献标识码:A 文章编号:1006-7973(2007)10-0149-03一、引言随着计算机、网络、多媒体技术以及全球安防事业的迅猛发展,数字视频技术得到了长足地发展,视频采集卡的应用也越来越广泛。

但是由于视频数据传输高速、大量的特点,传统的使用基于串口、并口或ISA 总线传输数据的方式已经不能满足其传输的需求。

同时,由于其复杂性,现在各厂商都是自己提供采集卡的SDK,没有统一的界面,使得上层应用的开发和设备的使用非常不便,而基于内核流的驱动程序能够很好的解决这个问题,上层应用程序能够通过系统提供的统一接口访问底层硬件。

当前,基于PCI 总线的视频采集卡以其强大而灵活的功能、高度的集成性成为主流产品。

为此,本文设计了基于PCI 总线的视频采集卡,并开发了相应的基于内核流的驱动程序。

二、视频采集卡硬件系统PCI 总线是近年来出现的一种高性能的局部总线,它理论上提供133MB/s 的传输速率,支持猝发式读写,具备完整的多总线主控能力,支持即插即用,很适合网络适配器、硬盘驱动器、全动态数字视频卡、图形卡及各类高速外设应用。

PCI 总线规范十分复杂,其接口的实现比ISA、EISA 困难,目前实现PCI 接口的有效方案有使用可编程逻辑器件和使用专门芯片两种。

图1 视频监控系统总体框图在高分辨率图像实时处理中数据量相当庞大,视频采集卡必须不间断地采集视频序列中的每帧图像,同时在采集下一帧视频数据时必须把这些数据传入PC 系统。

如果不能及时地处理第一帧数据,使得处理时间超过相邻两帧之间的间隔时间,则会出现数据丢失现象。

该视频采集卡采用SAA7130HL 视频采集芯片将模拟视频信号转化为数字图像数据,再通过PCI 总线接口芯片PCI6150将数字图像数据读入计算机,最后通过应用程序将图像显示出来。

这个设计能充分满足视频传输及处理的需求。

视频监控系统总体框图如图1。

三、视频采集卡驱动程序设计为了支持新的业务和新的PC 外部设备类型对驱动程序的开发,微软推出了用于Windows2000和Windows NT 的统一的WDM(Windows Driver Model,简称WDM)驱动程序模型。

而内核流驱动是针对多媒体设备的驱动模型,它是WDM 重要组成部分。

它的存在将使上层应用程序的开发更加方便,应用程序通过系统提供的统一接口即可使用设备。

1.驱动工作原理内核流驱动是一种内核模式驱动。

它的工作原理为: (1)当视频采集卡插入PCI 插槽,系统的PnP 管理器检测到和内核流驱动匹配的视频设备时,便通过I/O 管理器向流类驱动(Stream class driver)发送设备的I/O 请求,如:对设备的初始化等。

(2)同时,流小驱动(stream minidriver)向流类驱动进行注册,告知流类驱动它是合法的,接着流类驱动把接收到的I/O 请求以SRB (流请求块)的形式发送给流小驱动。

(3)流小驱动得到SRB 后,将其进行解析并把得到的信息(如对设备进行初始化)通过回调函数返送给流类驱动,流类驱动便根据流小驱动返送的信息创建相应的功能设备对象、DMA 适配器以及分配缓存等。

(4)建立video capture、preview 和VBI 输出pin 的过滤器,以及输入资源选择的crossbar。

(5)当驱动得到视频流数据后一路直接送到显卡进行显示,另一路则进行视频压缩保存起来。

2.驱动的初始化150 中 国 水 运 第5卷内核流驱动进行初始化时,操作系统首先调用DriverEntry 程序去初始化小驱动。

小驱动向类驱动注册时,小驱动会调用StreamClassRegisterMinidriver 函数传递一个HW_INITIALIZATION_DATA 的结构给流类驱动。

而流类驱动通过调用该结构的信息对流小驱动进行初始化,其中包含一些回调函数和DMA 配置等。

HW_INITIALIZA TION_DATA 结构如下:typedef struct HW_INITIALIZATION_DATA {ULONG HwInitializationDataSize; PHW_INTERRUPT HwInterrupt; PHW_RECEIVE_DEVICE_SRB HwReceivePacket;PHW_CANCEL_SRB HwCancelPacket; PHW_REQUEST_TIMEOUT_HANDLER HwRequestTimeoutHandler;ULONG DeviceExtensionSize; ULONG PerRequestExtensionSize; ULONG PerStreamExtensionSize; ULONG FilterInstanceExtensionSize; BOOLEAN BusMasterDMA; BOOLEAN Dma24BitAddresses; ULONG BufferAlignment;BOOLEAN TurnOffSynchronization; ULONG DmaBufferSize; ULONG Reserved[2];} HW_INITIALIZATION_DATA, *PHW_INITIALIZATI ON_DATA;然后,类驱动使用StrMiniReceiveDevicePacket 通知流小驱动初始化设备。

它发送SRB_INITIALIZE_DEVICE 请求,同时传送包含所需硬件信息的PROT_CONFIGURAT ION_ INFORMATION 结构给流小驱动。

当完成此请求后,类驱动使用StrMiniReceiveDevicePacket 发送SRB_GET_STREAM _INFO 请求去向流小驱动得到所有流信息及每个流的回调函数。

一旦类驱动完成流数据的处理便使用StrMi niReceive DevicePacket 去发送SRB_INITIAL IZATION_ COMPLETE 请求。

这时,流小驱动便准备开始处理每个流请求。

3.流请求块(SRB)处理流请求块是流小驱动对命令和信息控制的最基本机制。

通过它流小驱动可以对其某个特定功能进行访问。

操作系统把视频采集卡的I/O 请求分发给流类驱动,流类驱动再把这些请求以流请求块的形式传递给流小驱动。

当流小驱动解析出相关硬件的信息再用派遣函数返还给流类驱动,以此流类驱动完成相应的硬件操作。

总的来说,流小驱动和每个流都可能接收I/O 请求。

小驱动必须提供StrMiniReceiveDevicePacket 程序去处理各种设备请求。

每个流都必须有两个程序去处理I/O 请求:数据请求和控制请求。

类驱动通过调用数据请求回调函数Str-MiniReceiveStreamDataPacket 去处理所有的流读写请求。

所有其他的流请求通过strMiniReceiveStream ControlPacket 去传送。

假如类驱动正在处理小驱动的同步操作,它便把这些请求排队,一次次地把这些请求分发给小驱动。

类驱动维持着三个分离的队列,也就是流请求块的请求类型可分为三类:(1)设备请求 (2)流控制请求 (3)流数据请求流小驱动针对这三类请求有相应的例程,如表1:请求类型 例程例程变量的消息类型 设备请求 StreamClassDeviceNotification ReadyForNextDeviceRequest 流控制请求 StreamClassStreamNotification ReadyForNextStreamControlRequest 流数据请求StreamClassStreamNotificationReadyForNextStreamDataRequest表1 流请求对应例程例如当操作系统接收到的视频采集卡I/O 请求是对设备的初始化。

它便把这个请求分发给流类驱动。

流类驱动再把此设备请求以SRB_INITIALIZE_DEVICE 形式传递给流小驱动。

由于SRB_INITIALIZE_DEVICE 带有视频卡初始化的信息,所以当流小驱动再把解析出来的信息返还给流类驱动时,就可以通过调用函数OnCreateAdapter()来创建设备的适配器完成设备的初始化。

流请求SRB_INITIALIZE_DEVICE 的处理流程如图2图2 SRB_INITIALIZE_DEVICE 处理流程4.流小驱动的控制PnP 管理器检测到流小驱动支持的硬件适配器,然后管理器核查注册表去解析符号应用,同时把请求传送给I/O 子系统。

I/O 子系统装载流小驱动,调用小驱动的DriverEntry 例程。

在DriverEntry 例程中,将分配和初始化HW_INITIALIZATION_DATA 结构。

根据DriverEntry 程序中的信息,一个文件对象将被创建。

然后,流小驱动的DriverEntry 例程调用流类驱动的StreamClassRegiste rMinidriver 函数,同时把HW_INITIALIZATION_DATA 结构作为参数传递给此函数。

HW_INITIALIZATION_DATA 结构包含处理SRBs 的流小驱动函数的地址。

这样流小驱动就能对类驱动发送的SRBs 做出反应。

在初始化过程中,流类驱动调用在HW_INITIALIZATION_DATA 结构中指定的接收SRB_INITIALIZE_DEVICE 的函数。

随后,流小驱动初始化硬件适配器。

第10期 周敏均等:基于PCI总线的视频采集卡驱动程序的设计与实现 151流类驱动通过传送SRB_READ_DATA或者SRB_WR ITE_DATA命令给指定的函数从视频流发送或者接受数据。

四、结束语本文在分析现有视频采集卡与视频驱动程序,以及阅读相关驱动程序开发资料的基础上,设计和开发了基于PCI总线的视频内核流驱动程序。

相关文档
最新文档