微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > TD-SCDMA网络测试仪中E1数据采集卡的驱动程序设计

TD-SCDMA网络测试仪中E1数据采集卡的驱动程序设计

时间:07-15 来源:互联网 点击:

3、E1数据采集卡的驱动实现
  
E1数据采集卡驱动程序采用WDM结构,程序具体模块分析如图3所示。

图3 设备驱动程序的组成示意图

  
3.1 驱动程序入口点和回调例程
  
驱动程序有一个主要的初始化入口点——DriverEntry,当驱动被装载时,内核就调用DriverEntry例程。在 DriverEntry里,有回调例程供内核调用,这些例程是驱动的实现主体。内核通过发送I/O请求包(IRP)来运行驱动程序中的这些例程。驱动程序入口点和回调例程功能列表如表1所示。

表1 驱动程序入口点和回调例程

  
3.2 IRP分发例程
    
  
“创建”、“关闭”、“读”、“写”、“CTL码”处理的例程就叫分发例程,在本驱动中,用来产生IRP,IRP向上向下转发、传送数据。
  
3.3 创建设备
  
每个设备接口都有一个惟一标识的GUID码(全局惟一标识符),安装设备驱动时,inf将该信息导入到注册表,形成一个符号链接名来表示设备。这样,操作系统在设备安装后都能够识别设备。
  
3.4 资源分配
  
资源包括I/O端口、存储器空间、中断和DMA线,这些资源都是由接口提供的。例如,存储器地址可通过KMemoryRange来找寻。
  
  
3.5 硬件访问
  
对硬件的访问包括IRP串行处理例程StartIo,StartIo例程可以防止程序的不同部分同时访问相同资源所引起的冲突,在E1数据采集卡中,StartIo例程负责上行处理接收的数据和下行的命令以及发送数据,StartIo可控性很强,能满足采集卡对高速数据采集的要求,具体程序如下。
    
  
3.6 中断处理
  
中断例程运行级别很高,windows为了保护操作系统的稳定性,禁止驱动程序调用内核函数。例如,中断程序如果想完成IRP操作,必须要调用DPC例程:m_DpcFor_Irq.Setup(LinkTo(DpcFor_Irq),this)。
  
3.7 驱动卸载
  
驱动卸载调用Pnp的IRP_MN_STOP_DE-VICE,所有申请内存和中断必须释放,指针置空,例程如下:
  
  
3.8 测试结果
  
图4给出了E1数据采集卡采集的测试结果,从中可看到E1线采集的数据经过驱动打标后,被送到了上层测试程序,具有多线路、多业务、实时性等优点,满足了设计要求。另外,板卡经过了超过24小时的大数据量压力测试,测试效果良好。

图4 E1数据采集卡采集测试结果

  
4、结束语
  
利用E1数据采集卡可以实时监测通信链路的建立、传输、停止等过程,并且可以通过该卡的信令发送功能,实现业务仿真,减小TD-SCDMA网络设计风险。经多次测试证明,E1数据采集卡完全可以应用于TD-SCDMA网络测试。该测试卡驱动代码运行稳定高效,功能模块明晰,可以实时升级,以满足不同用户功能需求。

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

网站地图

Top