用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

采用PCI9052及GP2010实现GPS信号采集

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:36:08
的多次单次读操作转化为本地空间上的突发操作。

5 PLXMon及PLX器件驱动程序的开发

PLXMon是PLX公司专为其产品开发的测试软件。在用户的板卡插入PCI槽,并安装了PLXMon提供的驱动程序后,启动该软件就可以观察和修改芯片内部寄存器的值,并可以对存储器空间进行测试。

Windows下的驱动程序包括硬件物理设备的驱动程序和文件系统等非物理设备的虚拟设备驱动程序,我们所编写的是硬件物理设备的驱动程序。Windows类操作系统(Windows 95、Windows 98、WindowsNT、Windows 2000)为了保证其安全性、稳定性和可移植性,对应用程序访问硬件资源加以限制,用户需要对系统硬件及操作系统软件有详细的了解才可开发出高效的驱动程序,因此开发周期较长。利用第三方提供的开发软件,可以大大缩短开发时间,但效率不一定高,尤其对实时性要求严格的程序显得有些无力。

①Device Developer Kit(DDK)。该软件中包括了有关设备驱动开发的文档、编译需要的头文件和库文件、调试工具和程序范例;但是由于DDK主要是使用汇编语言进行描述,开发起来比较困难。

②VtoolsD。该软件包是基于C/C++的,支持BorlandC++和VisualC++,使用和维护比较方便。

③WinDriver。允许用户使用Visual C++、Borland或者其它Win32编程工具软件在用户模式(UserMode)上编写设备驱动程序。

④PLXMon。PLX公司专为其芯片提供的驱动程序开发包和测试软件,同样可以在用户模式上编写。支持Visual C++环境。

图4 突发读时序

    在开发程序时,我们发现PLXMon和WinDriver不兼容,而且除非有正式版本的WinDriver;否则试用期过后,利用它开发的驱动程序将无法使用。所以建立使用PLXMon,只需包括相应的头文件,用户便可以方便地调用其提供的API函数,对板卡上的资源进行访问。以下的程序片段是在调试电路板时编写的基本查询中断是否有效来读取缓存的。所调用的函数均为PLXMon提供的API函数。其中:PlxPciBaseAddressesGet()是得到板卡上存储空间的物理地址,而*(Data+i)=*(U32*)(va.Va3)是将该空间的值装入计算机内存。

图5是驱动程序流程图。

程序段如下:

Example:

rc_w=PlxPciBaseAddressesGet(hDevice,&va);

while(TRUE){

Int_Flag=*(U32*)(va.Va0+0x4c);

if(Int_Flag[0]&4) {javascript:window.open(this.src);" style="cursor:pointer;"/>

for(i=0;i<FIFO_Size;i++)

*(Sample_Data+i)=*(U32*)(va.Va3);

*(U32*)(va.Va0+0x4c)=Clear_Flag;

break;

}

}

结语

由于PCI总线的高速特性,使其被广泛应用于高速数据采集系统中,有效地解决了实时采集、实时传输和实时存储等问题。而PCI总线控制器专用芯片的出现则缩短了PCI总线硬件设备的开发周期,使得硬件设备的可靠性和稳定性都有了较大的提高。在开过程中,我们发现要想有高效率的操作特性,使用第三方提供的驱动程序开发包总是不太理想,尤其对于高速采样及实时严格的系统。用户还是要利用DDK开发符合自己要求的驱动程序。该数据采集卡实现了一路GPS信号的采集工作,为今后利用通用PC机进行数字信号的捕获、跟踪及解调,初步实现软件无线电GPS接收机打下基础。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:3,734.37500 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号