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网络测试。该测试卡驱动代码运行稳定高效,功能模块明晰,可以实时升级,以满足不同用户功能需求。
- 一种基于OPNET的小型网络仿真及分析(04-08)
- APOX软件在A+B频段无线网络规划中的应用(06-26)
- 基于GUI的跳频OFDM系统仿真设计(03-03)
- 基于CPLD的RS-232串口通信实现(04-23)
- 2.5 Gbps收发器中1∶2解复用电路的设计(09-17)
- 填补网络 SoC 设计前端与后端验证的差距(09-19)
