基于PCI總線技術(shù)的NO.7信令采集卡設(shè)計與實現(xiàn)
由于目前NGN網(wǎng)絡(luò)是一個以軟交換為核心并由PSTN網(wǎng)絡(luò)和VoIP網(wǎng)絡(luò)融合在一起的復(fù)雜網(wǎng)絡(luò),多種接口、多種協(xié)議、多媒體并存,PSTN與VoIP設(shè)備的兼容性、VoIP網(wǎng)絡(luò)內(nèi)部不同設(shè)備提供商的設(shè)備兼容性、網(wǎng)絡(luò)設(shè)計性能與實際部署性能的差異性、語音質(zhì)量的差異性等挑戰(zhàn)都嚴峻地擺在運營商面前。于是就要求NGN網(wǎng)絡(luò)運營商能夠?qū)ζ渚W(wǎng)絡(luò)性能進行測試和分析,NGN網(wǎng)絡(luò)測試儀能夠解決這樣的問題。
本NO.7信令采集卡是基于PCI總線技術(shù)設(shè)計的,主要完成的功能為物理層的數(shù)據(jù)采集和HDLC鏈路控制。本卡根據(jù)協(xié)議的選擇主要完成NO.7信令的采集,并把數(shù)據(jù)送到NGN網(wǎng)絡(luò)測試儀的上層軟件進行分析。
NO.7信令采集卡的總體設(shè)計方案及硬件實現(xiàn)
NO.7信令采集卡是NGN網(wǎng)絡(luò)測試儀中非常重要的一張數(shù)據(jù)采集卡。在NGN網(wǎng)絡(luò)測試儀中主要完成的功能為物理層的數(shù)據(jù)采集和HDLC鏈路控制。為了滿足測試時數(shù)據(jù)流量大,方便用戶使用的要求,本卡的設(shè)計采用了自帶標準PCI協(xié)議規(guī)范的HDLC控制器(MindSpeed CN8478)、專用的E1成幀器(IDT82P2284)芯片及Windows 2000作為此卡的基本軟硬件構(gòu)架。此卡的軟件驅(qū)動基于PCI框架,能夠?qū)崿F(xiàn)NO.7信令的快速、穩(wěn)定采集。圖1為此卡的總體設(shè)計方案框圖。
圖1 NO.7信令采集卡總體設(shè)計框圖
按照NGN網(wǎng)絡(luò)測試儀的總體設(shè)計方案,NO.7信令采集卡在測試儀中是以PCI插槽板卡存在的。NO.7信令通過帶有高阻適配器的E1數(shù)據(jù)采集線從網(wǎng)絡(luò)上被提取后就送到成幀器芯片IDT82P2284中,數(shù)據(jù)經(jīng)過IDT82P2284處理后來到了CN8478的串口,在CN8478中形成的HDLC幀被送到上層軟件進行協(xié)議分析處理。本卡可以實現(xiàn)16路監(jiān)測、4路仿真。
NO.7信令采集卡在硬件上主要由以下單元組成:HDLC邏輯層MUSYCC(CN8478)、物理層E1成幀器(IDT82P2284)、CPLD邏輯控制器、RJ45網(wǎng)絡(luò)接口、高阻適配器等。本采集卡的硬件設(shè)計框圖如圖2所示。
圖2 NO.7信令采集卡硬件框圖
芯片資源介紹
1 CN8478簡介
CN8478是一個PCI多功能設(shè)備,它包括了以下幾個部分:一個主接口Host Interface、8個串口Serial Interface、1個擴展總線口Expansion Bus Interface(EBUS)、一個邊界掃描口Boundary Scan and Test Access。其中,主接口又由四個部分組成:設(shè)備配置寄存器、PCI功能0的配置空間、PCI功能1的配置空間、PCI接口。串口也有四個組成部分:中斷控制器、DMAC、位級處理器BLP、接收和發(fā)送端口。主接口主要提供CN8478與PC之間的接口,完成設(shè)備寄存器配置和PCI功能區(qū)配置區(qū)間的讀寫,串口主要完成主接口和IDT82P2284的數(shù)據(jù)傳遞,同時根據(jù)需要產(chǎn)生中斷,并報知PC;EBUS接口通過內(nèi)置的MPU(微處理器單元)主要完成外圍設(shè)備的擴展,這里用來對IDT82P2284的寄存器讀寫以實現(xiàn)對其進行控制;邊界掃描在此系統(tǒng)中不用。圖3為CN8478的PCI接口設(shè)計原理圖。
圖3 CN8478的PCI接口設(shè)計原理圖
2 T1/E1收發(fā)成幀器IDT82P2284簡介
IDT82P2284是一個支持四個鏈路的T1/E1收發(fā)成幀器,收發(fā)接口數(shù)據(jù)的傳輸速率支持T1的1.544Mbps或者E1的2.048Mbps。物理線性接口電路恢復(fù)來自電纜的“+3~-43dB”的模擬時鐘和數(shù)據(jù)。IDT82P2284由以下幾個部分組成:微處理器接口(MPU)、接收/發(fā)送線性接口單元(RLIU/TLIU)、邊界掃描(JTAG)。
采集模式簡介
本設(shè)計所研制的N0.7信令采集卡可以實現(xiàn)兩種模式的采集,即N×64K和高速2M。
在N×64K采集模式下,可對PHY層的IDT82P2284進行控制使其工作在復(fù)用模式,讓成幀器芯片上的四條E1鏈路合成一路后送到CN8478的一個串口,這時IDT82P2284和串口時鐘為 8.192MHz,由板卡上的專用時鐘芯片提供。在N×64K的采集模式下可實現(xiàn)16路的NO.7信令采集。
在高速2M采集模式下,同樣可對IDT82P2284進行控制,這時使其工作在非復(fù)用模式,讓成幀器的每條E1鏈路分別獨立的把數(shù)據(jù)發(fā)送到CN8478的一個串口,這時IDT82P2284和串口之間的接口時鐘為2.048MHz,這個時鐘是成幀器在網(wǎng)絡(luò)的線上提取的。在高速2M采集模式下,可同時實現(xiàn)8路和16路的NO.7信令采集。
NO.7信令采集卡的驅(qū)動程序設(shè)計
1 驅(qū)動程序功能設(shè)計
N0.7信令采集卡驅(qū)動程序的設(shè)計可分兩部分,分別對應(yīng)CN8478的配置和IDT82P2284的配置。
在對CN8478的配置中,驅(qū)動程序主要任務(wù)是完成映射在主機中共享體的配置。共享體是驅(qū)動程序向操作系統(tǒng)申請的一段存儲空間,該空間在物理上處于主機的內(nèi)存中。從整體上看,共享體可劃分為兩部分,第一部分用于CN8478的寄存器映射,第二部分用于中斷隊列、發(fā)送消息鏈表、接收消息鏈表、發(fā)送數(shù)據(jù)緩沖區(qū)、接收數(shù)據(jù)緩沖區(qū)的分配。
對成幀器IDT82P2284的配置中,主要通過微處理接口對其寄存器進行控制,來實現(xiàn)將線上采集到的位流形成需要的幀結(jié)構(gòu)消息以送往LINK層設(shè)備。
2 驅(qū)動程序的實現(xiàn)
本NO.7信令采集卡需要實現(xiàn)兩個驅(qū)動程序,分別對應(yīng)CN8478的LINK驅(qū)動,IDT82P2284的PHY驅(qū)動。由于PHY驅(qū)動較簡單,所以本文主要介紹LINK驅(qū)動。
LINK驅(qū)動程序的編寫本設(shè)計使用了DriverWorks開發(fā)工具,它與直接用DDK編寫的驅(qū)動程序有些區(qū)別。這里主要繼承了DriverWorks提供的兩個類(即Kdriver類和KPnpDevice類)來實現(xiàn)本驅(qū)動程序。
Kdriver類:這個類提供設(shè)備程序的基本框架結(jié)構(gòu),并負責(zé)將IRP分發(fā)到目標設(shè)備對象中去。在本驅(qū)動程序設(shè)計中,繼承了一個Kdriver類的派生類。在這個派生類中重載了DriverEntry例程,
在這個例程中主要做一些初始化工作。另外在這個類中還包含了一個AddDevice例程,被PnP管理器調(diào)用來初始化由該驅(qū)動程序所控制的設(shè)備。
KPnpDevice類:這個類代表設(shè)備驅(qū)動程序,提供驅(qū)動程序與應(yīng)用程序的接口功能,承擔(dān)IRP分發(fā)任務(wù),提供與底層設(shè)備的接口功能,同時,提供與其他系統(tǒng)對象的接口功能。包含了絕大部分驅(qū)動程序例程。
3 驅(qū)動程序的調(diào)試
調(diào)試本驅(qū)動程序,本設(shè)計使用了一個KDebugOnlyTrace類對象在DriverMonitor中輸出調(diào)試跟蹤信息,同時也經(jīng)常借助于SoftICE來查看內(nèi)存值以確認共享體的配置信息。圖4為使用DriverMonitor輸出的調(diào)試信息。
圖4 驅(qū)動程序調(diào)試顯示
結(jié)束語
對于此采集卡已經(jīng)研制成功并實現(xiàn)了商用,它是NGN網(wǎng)絡(luò)測試儀中針對核心網(wǎng)測試最重要的數(shù)據(jù)采集卡之一。經(jīng)過現(xiàn)場測試表明本采集卡能夠?qū)GN網(wǎng)絡(luò)中的大流量NO.7信令進行正確、穩(wěn)定采集,從而使NGN網(wǎng)絡(luò)測試儀實現(xiàn)了對NGN網(wǎng)絡(luò)協(xié)議的測試與分析。同時也驗證了本文所研制的NO.7信令采集卡的可行性。
評論