基于PCI总线技术的NO.7信令采集卡研制
由于目前NGN网络是一个以软交换为核心并由PSTN网络和VoIP网络融合在一起的复杂网络,多种接口、多种协议、多媒体并存,PSTN与VoIP设备的兼容性、VoIP网络内部不同设备提供商的设备兼容性、网络设计性能与实际部署性能的差异性、语音质量的差异性等挑战都严峻地摆在运营商面前。于是就要求NGN网络运营商能够对其网络性能进行测试和分析,NGN网络测试仪能够解决这样的问题。
本NO.7信令采集卡是基于PCI总线技术设计的,主要完成的功能为物理层的数据采集和HDLC链路控制。本卡根据协议的选择主要完成NO.7信令的采集,并把数据送到NGN网络测试仪的上层软件进行分析。
NO.7信令采集卡的总体设计方案及硬件实现
NO.7信令采集卡是NGN网络测试仪中非常重要的一张数据采集卡。在NGN网络测试仪中主要完成的功能为物理层的数据采集和HDLC链路控制。为了满足测试时数据流量大,方便用户使用的要求,本卡的设计采用了自带标准PCI协议规范的HDLC控制器(MindSpeed CN8478)、专用的E1成帧器(IDT82P2284)芯片及Windows 2000作为此卡的基本软硬件构架。此卡的软件驱动基于PCI框架,能够实现NO.7信令的快速、稳定采集。图1为此卡的总体设计方案框图。
图1 NO.7信令采集卡总体设计框图
按照NGN网络测试仪的总体设计方案,NO.7信令采集卡在测试仪中是以PCI插槽板卡存在的。NO.7信令通过带有高阻适配器的E1数据采集线从网络上被提取后就送到成帧器芯片IDT82P2284中,数据经过IDT82P2284处理后来到了CN8478的串口,在CN8478中形成的HDLC帧被送到上层软件进行协议分析处理。本卡可以实现16路监测、4路仿真。
NO.7信令采集卡在硬件上主要由以下单元组成:HDLC逻辑层MUSYCC(CN8478)、物理层E1成帧器(IDT82P2284)、CPLD逻辑控制器、RJ45网络接口、高阻适配器等。本采集卡的硬件设计框图如图2所示。
图2 NO.7信令采集卡硬件框图
芯片资源介绍
1 CN8478简介
CN8478是一个PCI多功能设备,它包括了以下几个部分:一个主接口Host Interface、8个串口Serial Interface、1个扩展总线口Expansion Bus Interface(EBUS)、一个边界扫描口Boundary Scan and Test Access。其中,主接口又由四个部分组成:设备配置寄存器、PCI功能0的配置空间、PCI功能1的配置空间、PCI接口。串口也有四个组成部分:中断控制器、DMAC、位级处理器BLP、接收和发送端口。主接口主要提供CN8478与PC之间的接口,完成设备寄存器配置和PCI功能区配置区间的读写,串口主要完成主接口和IDT82P2284的数据传递,同时根据需要产生中断,并报知PC;EBUS接口通过内置的MPU(微处理器单元)主要完成外围设备的扩展,这里用来对IDT82P2284的寄存器读写以实现对其进行控制;边界扫描在此系统中不用。图3为CN8478的PCI接口设计原理图。
图3 CN8478的PCI接口设计原理图
2 T1/E1收发成帧器IDT82P2284简介
IDT82P2284是一个支持四个链路的T1/E1收发成帧器,收发接口数据的传输速率支持T1的1.544Mbps或者E1的2.048Mbps。物理线性接口电路恢复来自电缆的“+3~-43dB”的模拟时钟和数据。IDT82P2284由以下几个部分组成:微处理器接口(MPU)、接收/发送线性接口单元(RLIU/TLIU)、边界扫描(JTAG)。
采集模式简介
本设计所研制的N0.7信令采集卡可以实现两种模式的采集,即N×64K和高速2M。
在N×64K采集模式下,可对PHY层的IDT82P2284进行控制使其工作在复用模式,让成帧器芯片上的四条E1链路合成一路后送到CN8478的一个串口,这时IDT82P2284和串口时钟为 8.192MHz,由板卡上的专用时钟芯片提供。在N×64K的采集模式下可实现16路的NO.7信令采集。
在高速2M采集模式下,同样可对IDT82P2284进行控制,这时使其工作在非复用模式,让成帧器的每条E1链路分别独立的把数据发送到CN8478的一个串口,这时IDT82P2284和串口之间的接口时钟为2.048MHz,这个时钟是成帧器在网络的线上提取的。在高速2M采集模式下,可同时实现8路和16路的NO.7信令采集。
NO.7信令采集卡的驱动程序设计
1 驱动程序功能设计
N0.7信令采集卡驱动程序的设计可分两部分,分别对应CN8478的配置和IDT82P2284的配置。
在对CN8478的配置中,驱动程序主要任务是完成映射在主机中共享体的配置。共享体是驱动程序向操作系统申请的一段存储空间,该空间在物理上处于主机的内存中。从整体上看,共享体可划分为两部分,第一部分用于CN8478的寄存器映射,第二部分用于中断队列、发送消息链表、接收消息链表、发送数据缓冲区、接收数据缓冲区的分配。
对成帧器IDT82P2284的配置中,主要通过微处理接口对其寄存器进行控制,来实现将线上采集到的位流形成需要的帧结构消息以送往LINK层设备。
2 驱动程序的实现
本NO.7信令采集卡需要实现两个驱动程序,分别对应CN8478的LINK驱动,IDT82P2284的PHY驱动。由于PHY驱动较简单,所以本文主要介绍LINK驱动。
LINK驱动程序的编写本设计使用了DriverWorks开发工具,它与直接用DDK编写的驱动程序有些区别。这里主要继承了DriverWorks提供的两个类(即Kdriver类和KPnpDevice类)来实现本驱动程序。
Kdriver类:这个类提供设备程序的基本框架结构,并负责将IRP分发到目标设备对象中去。在本驱动程序设计中,继承了一个Kdriver类的派生类。在这个派生类中重载了DriverEntry例程,在这个例程中主要做一些初始化工作。另外在这个类中还包含了一个AddDevice例程,被PnP管理器调用来初始化由该驱动程序所控制的设备。
KPnpDevice类:这个类代表设备驱动程序,提供驱动程序与应用程序的接口功能,承担IRP分发任务,提供与底层设备的接口功能,同时,提供与其他系统对象的接口功能。包含了绝大部分驱动程序例程。
3 驱动程序的调试
调试本驱动程序,本设计使用了一个KDebugOnlyTrace类对象在DriverMonitor中输出调试跟踪信息,同时也经常借助于SofTICE来查看内存值以确认共享体的配置信息。图4为使用DriverMonitor输出的调试信息。
图4 驱动程序调试显示
结束语
对于此采集卡已经研制成功并实现了商用,它是NGN网络测试仪中针对核心网测试最重要的数据采集卡之一。经过现场测试表明本采集卡能够对NGN网络中的大流量NO.7信令进行正确、稳定采集,从而使NGN网络测试仪实现了对NGN网络协议的测试与分析。同时也验证了本文所研制的NO.7信令采集卡的可行性。