下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于PCI总线的数字卫星解调卡驱动程序开发引言PCI总线(即外围部件互连总线)是Intel公司提出的计算机接口总线。它的时钟频率为33MHz,有32位数据总线,可支持突发传输模式,数据传输峰值速率高达132MBs。此外,PCI总线还可扩展为64位数据总线,扩展后的数据传输峰值速率高达264MBs,并支持即插即用功能而且独立于处理器。由于PCI总线具有诸多优点,它已经成为PC机的标准总线。因此,PCI接口设备的驱动程序开发就显得尤为重要。数字卫星解调卡主要用于接收卫星发来的调制引言 PCI总
2、线(即外围部件互连总线)是Intel公司提出的计算机接口总线。它的时钟频率为33MHz,有32位数据总线,可支持突发传输模式,数据传输峰值速率高达132 MBs。 此外,PCI总线还可扩展为64位数据总线,扩展后的数据传输峰值速率高达264 MBs,并支持即插即用功能而且独立于处理器。由于PCI总线具有诸多优点,它已经成为PC机的标准总线。因此,PCI接口设备的驱动程序开发就显得尤为重要。 数字卫星解调卡主要用于接收卫星发来的调制信号的数字解调。设计中的桥接芯片可
3、采用PLX公司的PCI9054。本文主要介绍数字卫星解调卡的WDM驱动程序开发方法。 1 PCI9054接口芯片 PCI9054是PLX公司推出的PCI接口芯片。它支持本地总线2.2版规范,工作频率为033 MHz,可提供C、M、J三种本地工作模式,本地端到PCI总线的猝发传输速率高达132 MBs。该芯片具有可编程的Serial EEPROM接口,可用于配置PCI9054的部分内部配置寄存器。其配置正确与否直接决定着设备能否正常工作。其中的Devic
4、eID和Vendor ID分别对应设备号和销售商号,计算机主要靠这两个号码识别硬件。该器件内部有6种可编程的FIFO,可以进行数据的发送与接收,而其两种内部配置寄存器PCI Configuration Register和Local Configuration Register,可在本地端支持主模式、从模式租DMA传输方式。PCI9054的内部结构如图1所示。 PCI9054支持两个独立的DMA通道,以用于完成本地端到PCI总线或者PCI总线到本地端的数据传输。每一个DMA通道包含一个DMA控制器和一个双向FIFO,两种通道都分别支持Block传输模式和ScatterGather传输模
5、式。DMA通道0还支持Demand DMA数据传输模式。 Block DMA要求PCI主机或Local主机能提供PCI和Local的起始地址、传输字节数和传输方向。主机首先设定DMA开始位并启动数据传输,一旦传输完成,PCI9054设定将DMACSR04=1或者DMACSR1 4=1(分别对应通道0和通道1)来结束DMA。如果中断Enable位DMAMODE010或者DMAMODE110使能,那么,在传输结束时,PCI9054将向主机申请中断。在DMA传输中,PCI9054既是PCI总线的主控设备,又是Local总线的主控
6、设备。另外,通过编程DMA传输模式还可以完成以下设置或功能: (1)将本地总线宽度设为8位、16位或32位; (2)设置本地总线为允许禁止内部等待状态,若允许,则可等待015个本地等待状态; (3)设置本地总线为突发传输4个双字长度; (4)使本地地址采用固定模式或线性增长模式;
7、0; (5)完成PCI内存写和无效操作(commandcode=Fh)或者普通PCI内存写操作(commandcode=7h); (6)使用禁用BLAST#以暂停本地传输; (7)在ScatterGather DMA传输模式中,当DMA传输完成或终止计数器计数到0时,插入PCI中断(INTA)或者本地中断(LINT); (8)工作于DMA清除计数
8、模式。 2 WDM驱动程序开发工具 PCI总线的传统开发工具是微软公司提供的DDK(Device Driver Kit),包括Windows98 DDK,Windows2000 DDK和Windows XP DDK。但是,使用其开发驱动程序比较复杂且开发周期长,它只适合发行类产品的驱动开发。 为了简化驱动程序的开发,缩短开发周期,常用的方法是使用Numage公司提供的开发工具Dri
9、ver Studio,这是一个开发工具包(包含VtoolsD,Driver Works和SoftICE等开发工具)。其中的Driver Works是Compuware公司开发的工具,它提供了一系列类。这些类包含了许多更为底层的操作并且为一般驱动操作提供了服务函数,从而为开发人员提供了一个访问系统核心的标准界面。由于其驱动程序开发采用面向对象的框架结构,因而开发过程比较简单易行。 3 DMA模式WDM驱动程序开发 本文介绍的数字卫星解调卡的硬件框图如图2
10、所示。图中,当FPGA中的数据放进FIFO后,要经过PCI9054桥接芯片传输到PC机内存中,但由于应用程序不能直接操作硬件,所以在应用程序和硬件之间必须安装硬件驱动程序来完成应用程序对硬件的访问。可见,驱动程序对于整个设计至关重要,它关系到数据能否准确无误的送到指定的目的地。驱动程序完成的主要功能如下: (1)接收应用传送的符号率,配置符号率; (2)接收应用程序传送的控制字,配置AD9851用作外部FIFO数据传输的时钟; &
11、#160; (3)设置数据传输为DMA方式,直到接收到应用程序发来的停止数据采集命令为止。驱动要保证数据传输顺利进行。 本设计使用Driver Works来开发WDM驱动程序。 3.1 基于Driver Works的WDM驱动程序框架 这里所要生成的是PCI设备的驱动程序。采用DMA方式传输时,生成WDM驱动程序框架的主要步骤如下: &
12、#160; (1)从VC+中启动Driver Works,设置驱动程序名称及存放的路径,设计时可取驱动名称为BPSKDRIVER; (2)选择工程类型为WDM DRIVER; (3)选择驱动类型为WDM Function Driver; (4)选择硬件总线类型为PCI,在这里要注意,PCI Vendor ID和PCI Device I
13、D应根据硬件信息填写; (5)添加存储器空间和IO空间所需的类对象,添加DMA资源,使用设备接口打开设备; (6)用控制代码完成应用程序和驱动的交互,即在应用程序中使用Device IO Control来完成应用程序向驱动传输数据。 3.2 DMA传输控制 (1)DMA传输类的概念及初始化
14、; 按照上述步骤生成WDM驱动的框架后,其大部分例程函数(如Driver Entry、Add Device、Device Control、On Start Device)等已经由软件自动生成并能基本满足设计要求,下面重点介绍DMA传输控制函数。 设计中,对DMA寄存器的访问可采用IO方式,并可利用Driver Works提供的KIoRange类产生该类的一个实例,然后在设备启动例程中初始化该实例,即可实现对硬件的两个IO地址空间的映射,其中一个IO地址空间用于访问桥接芯片PCI9054的寄存器,另一个IO地址空间用于访问本地端的设备,其初始化方法如下:其中,pResListTranslated、pResListRaw分别是IRQ中系统分配的翻译资源列表和原始资源列表。初始化完成后,就可以使用类的成员函数in,out对端口进行操作。例如:m_IoPortRange0.outd(0x30,0x40100),就可向IO端口0的偏移量为0x30的地址中写入0x40100。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年科技研发项目保证金合同模板3篇
- 有关公司慰问信汇编7篇
- 军训第二天心得体会
- 顶岗实习月报范文【五篇】
- 写人物传记的作文600字5篇
- 女工三八妇女节演讲稿6篇
- 乡镇关于生态环境保护工作总结
- 九年级语文下册 第三单元 10《唐雎不辱使命》教学实录1 新人教版
- 网上学习作业答案
- 医院护士实习报告(集锦15篇)
- 河北省健康体检主检医师题库2024年12月
- 浙江省2023年1月学业考试物理物理试题(解析版)
- 法律意见书(适用于股权投资)
- 二十届三中全会精神应知应会知识测试30题(附答案)
- 一例下肢静脉血栓疑难病例护理讨论
- 养殖场采购协议书
- 幸福创业智慧树知到期末考试答案2024年
- GB/T 13912-2020金属覆盖层钢铁制件热浸镀锌层技术要求及试验方法
- 渝价[]428号工程造价咨询服务收费标准
- 消防维保月度检查表.doc
- TA1400操作说明
评论
0/150
提交评论