介绍近年来,TD-SCDMA一直是通信行业关注的焦点。为了进一步支持TD-SCDMA产业化进程,国家对当前TD-SCDMA产业发展的各个方面都给予了支持[1
介绍
近年来,TD-SCDMA一直是通信行业关注的焦点。为了进一步支持TD-SCDMA产业化进程,国家对当前TD-SCDMA产业发展的各个方面都给予了支持[1]。中国正在大力发展TD-SCDMA的第三代移动通信(3G)系统,并将很快大规模建立3G网络。但没有必要的实验研发、网络建设和运行测试设备。在世界范围内,传统的通信测试仪器制造商只推出了基于CD-MA2000和WCDMA标准的测试仪器。针对这种情况,开发具有自主知识产权的TD-SCDMA移动通信网络测试仪,完善TD-SCDMA产业链,形成系列产品并推向市场,必将产生巨大的社会效益和经济效益。测试仪的主要测试接口包括Iub、Iur、IuCS、IuPS、Nc、Nb、C/D/E/G/Gr/MSCS- SCP、Gn/Gp、Gi等。[2-4],主要实现协议分析(解码)、呼叫跟踪、业务统计与分析、网络异常分析、网络分析与优化、协议。E1数据采集卡是PCI数据采集卡的一种,它采集的2M信令用于网络的实时维护和管理,是TD-SCDMA网络系统中非常重要的一部分。
基于1、E1的数据采集卡的实现
E1数据采集卡采集信令消息(包括7号信令等。)来监控和模拟整个呼叫流程。控制流程如图1所示。PCI接口芯片(HDLC控制器)是一个多功能设备,包括一个网络控制器和一个PCI桥设备(EBUS)。网络控制器完成时隙映射和DMA传输功能;PCI桥设备完成选通和配置成帧器,其中成帧器的选择由CPLD完成。信令信号经过成帧器成帧后,通过HDLC控制器由DMA发送到PC缓冲区,用户从缓冲区读取信令数据,并根据接口函数进行分析。数据流如图2所示。
图1数据采集卡E1控制流程图
图2 E1数据采集卡数据流程图
数据采集卡的驱动程序设计
2.1开发环境设置
在开发驱动程序之前,应该先设置开发和编译环境。WDM驱动程序开发环境和在Windows XP/Windows2000下编写驱动程序的环境称为WindowsXP/Windows2000 DDK或Windows XP/Windows 2000 DDK。DDK是一个命令行下的工作环境。在安装DDK之前,您需要安装Microsoft Visual C和Win32 SDK(可选)。成功安装DDK后,必须在控制面板的系统属性的高级选项卡环境变量编辑器中设置此环境变量。通过设置VC的项目设置,可以直接在VC环境下编译驱动程序,但是更改设置的工作比较复杂,容易出错,所以“DDKbuild.exe”编译器连接器是构造驱动程序的主要工具。“DDKbuild.exe”从配置文件源中读取待编译程序的配置,包括源文件和目标文件,从环境变量Include中获取引用文件的地址,然后调用Visual C的编译器链接器“Nmake.exe”进行实际的编译和连接工作。此外,构建编译器耦合器还可以通过查看DIRS文件中的伪指令来确定要编译的驱动程序目录列表。日志文件build.log、build.wrn和build.err分别记录编译联接中的命令行、遇到的错误和警告。编译后的文件后缀是”。sys”。
2.2驱动框架设计
在初始化过程中,驱动程序使用周期标识号(DID)、制造商标识号(VID)和索引号来搜索PCI设备,并通过调用PCI BIOS来确认其存在,然后使用被寻址设备的总线号、设备号、功能号和PCI配置空间来获取设备的参数。这部分可以通过DRIVERWORKS的向导DriverWizard来完成。
DriverWizard为设计人员生成两个类:一个是设备驱动程序类,另一个是设备应用程序对象类。驱动类主要完成WDM(Windows驱动模型)的DriverEntry和AddDevice例程。设备对象类是硬件对应的功能设备对象(FDO)类,与硬件交互的例程都是针对这个类的。通过前面驱动框架设计的参数配置,驱动已经建立了连接,然后是驱动功能设计。
2.3驱动功能设计
E1数据采集卡驱动程序的两部分分别对应接口芯片的两个功能器件:HDLC控制器和成帧器。驱动程序通过PCI接口芯片配置E1数据采集卡的HDLC控制器和成帧器。
HDLC控制器的配置主要完成映射共享体的配置。共享体用于HDLC寄存器的初始分配、接收和发送缓冲区的配置。HDLC控制器为每个通道建立一个消息链表,以便数据缓冲区可以回收。HDLC控制器和成帧器之间的对应关系取决于HDLC控制器端口映射模式的设置。成帧器将E1线路上的比特流整合成符合规范的HDLC帧,其中一个标准的E1 HDLC帧包括32个时隙,可以通过配置映射到HDLC控制器的端口通道。此外,通过时钟配置可以实现多对多和多对一的灵活时隙映射。自环也是成帧器的重要功能之一,可以直接将发送的数据引导到接收端,这对早期开发非常重要。Framer提供了三种自环模式,可以满足不同阶段配置的要求,如下。
(1)N64 K模式。在这种模式下,E1数据采集卡通过成帧器耦合,将数据导入HDLC控制器端口,这样提供的8个E1接口就可以用来接收数据。此外,用户可以根据需要和当前数据量的大小增加或减少时隙配置。
(2)2 M模式。在这种模式下,E1数据采集卡将四个成帧器完全对应到四个HDLC,最大数据量达到2 Mbit/s.
(3)N8 K模式。这种模式是为一些特殊情况设计的。在一些网络中,7号信令可能仅占用HDLC帧中时隙的一个或几个比特。在这种情况下,只有时隙的相应比特被映射到HDLC端口,以获得准确的信息。
借助于驱动程序的I/O接口功能,用户可以通过API或MFC配置底层驱动程序。另外,为了满足用户对信令消息的具体要求,驱动提供了控制消息长度的接口函数,用户可以随意采集指定长度的消息数据,方便具体检测。
卡间同步决定了网络测试仪的实时检测性能和仿真性能,是TD-SCDMA网络测试仪的主要技术之一。2 M卡解决了时钟同步问题,可以实现一机多卡,为大型网络节点的重数据采集提供了升级参考。
3、E1数据采集卡驱动程序的实现
E1数据采集卡的驱动采用WDM结构,程序的具体模块分析如图3所示。
图3设备驱动程序示意图。
3.1驱动程序入口点和回调例程
该驱动程序有一个主初始化入口点——DriverEntry。当驱动程序被加载时,内核调用驱动入口例程。在DriverEntry中,有回调例程供内核调用,是驱动的主体。内核通过发送I/O请求包(IRP)在驱动程序中运行这些例程。驱动程序入口点和回调例程函数的列表如表1所示。
表1驱动程序入口点和回调例程
3.2 IRP分配程序
“创建”、“关闭”、“读取”、“写入”和“CTL代码”处理的例程称为分发例程。在这个驱动程序中,它用于生成IRP,它向上和向下转发和传输数据。
3.3创建一个设备
每个设备接口都有一个唯一的GUID代码(全球唯一标识符)。当安装设备驱动程序时,inf将此信息导入注册表,形成一个符号链接名来表示设备。这样,操作系统可以在设备安装后识别它。
3.4资源分配
资源包括I/O端口、内存空间、中断和DMA线,这些都是由接口提供的。比如内存地址可以通过KMemoryRange找到。
3.5硬件访问
对硬件的访问包括IRP串行处理例程StartIo,它可以防止程序的不同部分同时访问相同资源而导致的冲突。在E1数据采集卡中,StartIo例程负责接收数据的上行处理、下行命令和发送数据。StartIo的可控性很强,能够满足采集卡高速数据采集的要求。具体程序如下。
3.6中断处理
中断例程在高级别运行。为了保护操作系统的稳定性,windows禁止驱动程序调用内核函数。例如,如果中断程序想要完成IRP操作,它必须调用DPC例程:m _ DPC for _ IRQ。设置(链接到(DPC for _ IRQ),this)。
3.7驱动卸载
驱动程序卸载Pnp的IRP _ MN _ STOP _ device。必须释放所有应用程序内存和中断,指针为空。该例程如下:
3.8测试结果
图4为E1数据采集卡采集的测试结果,从中可以看出,E1线采集的数据经过驱动和标记后发送到上层测试程序,具有多线、多业务、实时的优点,满足设计要求。此外,该板经过24小时以上的大数据压力测试,测试效果良好。
图4 E1数据采集卡采集测试结果。
结论
E1数据采集卡可用于实时监控通信链路的建立、传输和停止,并通过该卡的信令功能实现业务模拟,降低TD-SCDMA网络设计的风险。经过多次测试,证明E1数据采集卡可以用于TD-SCDMA网络测试。测试卡驱动代码运行稳定高效,功能模块清晰,可实时升级,满足不同用户的功能需求。
声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们