微波EDA网,见证研发工程师的成长!
首页 > 微波射频 > 射频工程师文库 > 一种SAR天线平台测试模块

一种SAR天线平台测试模块

时间:07-02 来源:电子发烧友 点击:

线接口驱动程序

  该测试模块工作在Windows 2000操作系统中,需要开发相应的WDM驱动程序,该驱动程序主要完成访问PCI 9030配置空间、访问DSP内存空间以及中断处理、应用程序与驱动程序的通信3个功能。DSP采用两个存储区进行乒乓式的存储,当一个存储区内的数据准备好之后就通过PXI总线向计算机发出中断,驱动程序处理中断,并读取该DSP存储区中的数据。

  考虑到采用面向对象的驱动程序框架,简化驱动程序的开发过程,这里选用基于Windows DDK作为底层支持的DriverWorks作为驱动程序的开发平台,其中的DriverWizard向导工具在VC环境中可以建立驱动程序的框架,这里主要介绍一些驱动程序中的几个功能模块。

  (1)访问9030配置空间。在生成驱动程序框架的时候已为9030的配置寄存器声明了所需的存储器映射资源,产生一个KMemoryRange类实例m_MemoryRange,这个类在驱动程序初始化时获得9030硬件寄存器配置空间的地址范围,这样就可以使用该实例的inb和outb分别实现对硬件寄存器的读写操作。

  (2)访问DSP内存空间以及中断处理,即对DSP存储区进行读写操作。在生成驱动程序框架的时候已为9030的局部总线空间申明了所需的存储器映射资源,产生一个KMemoryRange类实例m_LocalAddSpace0,这个类在驱动程序初始化的时候获得9030的局部总线地质空间的系统地址范围;同时驱动程序也产生一个KDeferredCall类的实例m_DpcFor_Irq,用于调用中断延迟处理程序DpcFor_Irq()。当测试卡产生中断时,驱动程序捕获中断,作相应处理之后通过m_DpcFor_Irq调用DpcFor_Irq()。在DpcFor_Irq()中,通过 m_LocalAddSpace0的inb和outb对DSP存储区进行读写操作。把读到的数据存放在事先申请的系统缓冲区(这里只涉及到读操作)。

  (3)应用程序和驱动程序的通信。首先应用程序通过操作系统提供的API函数调用驱动程序的读写例程Read()(这里只涉及到读操作)。由 Read()例程中调用StartIo()对读请求进行排队,以避免读写操作冲突。由StartIo()调用SerialRead()例程进行具体的读操作,即把事先申请的系统缓冲区中的数据转移到用户缓冲区,完成所要求的读操作。

  结语

  该模块以主流的仪器总线PXI总线为载体,保证了测试系统的稳定性和工业级要求,通过标准串行接口读取平台伺服系统的响应(误差),实现了对平台静态跟踪误差的测试和动态响应的实时数据采集。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top