0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于PCI總線實(shí)現(xiàn)E1數(shù)據(jù)采集卡的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:重慶郵電大學(xué)學(xué)報(bào):自然 ? 作者:馬君,張治中 ? 2021-05-22 15:31 ? 次閱讀

引言

近年來TD-SCDMA一直是通信行業(yè)關(guān)注的一個(gè)焦點(diǎn),為了進(jìn)一步支持TD-SCDMA產(chǎn)業(yè)化進(jìn)展,國家對(duì)當(dāng)前TD-SCDMA產(chǎn)業(yè)發(fā)展的各個(gè)環(huán)節(jié)給予支持[1]。我國正大力開發(fā)TD-SCDMA第三代移動(dòng)通信(3G)系統(tǒng),即將大規(guī)模組建3G網(wǎng)絡(luò),然而卻沒有所必需的實(shí)驗(yàn)研發(fā)、建網(wǎng)和運(yùn)行測試設(shè)備,在國際上傳統(tǒng)通信測試儀表廠商也只推出了基于CD-MA2000和WCDMA 2種標(biāo)準(zhǔn)的測試儀表。針對(duì)這樣的情況,研制出具有自主知識(shí)產(chǎn)權(quán)的TD-SCDMA移動(dòng)通信網(wǎng)絡(luò)測試儀,完善TD-SCDMA產(chǎn)業(yè)鏈,形成系列產(chǎn)品并推向市場,必將產(chǎn)生巨大的社會(huì)效益及經(jīng)濟(jì)效益。該測試儀主要測試的接口包括Iub,Iur,IuCS,IuPS,Nc,Nb,C/D/E/G/Gr/MSCS- SCP,Gn/Gp,Gi等[2-4],主要實(shí)現(xiàn)協(xié)議分析(解碼)、呼叫跟蹤、業(yè)務(wù)統(tǒng)計(jì)及分析、網(wǎng)絡(luò)異常分析、網(wǎng)絡(luò)分析和優(yōu)化、協(xié)議仿真等功能,采用工控機(jī)結(jié)構(gòu),多鏈路、多通道的硬件由多個(gè)基于PCI總線的數(shù)據(jù)采集卡(規(guī)程板)組成。E1數(shù)據(jù)采集卡是其中的一個(gè)PCI數(shù)據(jù)采集卡,它采集的2M信令用于網(wǎng)絡(luò)的實(shí)時(shí)維護(hù)和管理,是TD-SCDMA網(wǎng)絡(luò)系統(tǒng)中非常重要的一部分。

1、E1數(shù)據(jù)采集卡的實(shí)現(xiàn)

E1數(shù)據(jù)采集卡從E1線上采集信令消息(包括七號(hào)信令等),用以監(jiān)視和仿真整個(gè)通話流程??刂屏鞒倘鐖D1所示,PCI接口芯片(HDLC控制器)是一個(gè)多功能設(shè)備,包括一個(gè)網(wǎng)絡(luò)控制器和一個(gè)PCI橋設(shè)備(EBUS)。網(wǎng)絡(luò)控制器完成時(shí)隙映射和DMA傳輸?shù)裙δ?;PCI橋設(shè)備完成選通和配置成幀器,其中成幀器的選通用一個(gè)CPLD來完成。信令信號(hào)在成幀器成幀后,經(jīng)過HDLC控制器以DMA方式送入到PC緩沖區(qū),用戶依據(jù)接口函數(shù)到緩沖區(qū)讀取信令數(shù)據(jù)并進(jìn)行分析,數(shù)據(jù)流程如圖2所示。

基于PCI總線實(shí)現(xiàn)E1數(shù)據(jù)采集卡的設(shè)計(jì)

圖1E1數(shù)據(jù)采集卡控制流程圖

圖2E1數(shù)據(jù)采集卡數(shù)據(jù)流程圖

2、E1數(shù)據(jù)采集卡的驅(qū)動(dòng)設(shè)計(jì)

2.1開發(fā)環(huán)境設(shè)置

在開發(fā)驅(qū)動(dòng)前,首先要對(duì)開發(fā)、編譯環(huán)境進(jìn)行設(shè)置。WDM驅(qū)動(dòng)程序開發(fā)環(huán)境及在Windows XP/Windows2000下編寫驅(qū)動(dòng)程序的環(huán)境被稱為DDKFor WindowsXP/Windows2000或WindowsXP/Windows2000 DDK。DDK是一個(gè)命令行下的工作環(huán)境。在安裝DDK前需要先安裝Microsoft Visual C++和Win32 SDK(可選),安裝DDK成功后,一定要在控制面板“系統(tǒng)”屬性的“高級(jí)”標(biāo)簽環(huán)境變量編輯器中設(shè)置好這個(gè)環(huán)境變量。對(duì)驅(qū)動(dòng)程序的編譯可以通過設(shè)置VC ++的項(xiàng)目設(shè)置,在VC環(huán)境中直接編譯驅(qū)動(dòng)程序,但改變?cè)O(shè)置的工作較繁瑣且易出錯(cuò),因此“DDKbuild.exe”編譯聯(lián)接器是構(gòu)造驅(qū)動(dòng)程序的主要工具?!癉DKbuild.exe”從配置文件Sources中讀出待編譯的程序的配置,包括源文件、目標(biāo)文件等,從環(huán)境變量Include中得到引用文件的地址,然后調(diào)用Visual C++的編譯聯(lián)接器“Nmake.exe”進(jìn)行實(shí)際的編譯聯(lián)接工作。另外,build編譯聯(lián)接器還可以通過查看DIRS文件中的偽指令,確定要編譯的驅(qū)動(dòng)程序目錄列表。日志文件build.log,build.wrn,build.err中分別記錄了編譯聯(lián)接中執(zhí)行的命令行、遇到的錯(cuò)誤和警告。編譯完成后的文件后綴為“.sys”。

2.2驅(qū)動(dòng)框架設(shè)計(jì)

驅(qū)動(dòng)程序在初始化過程中,利用期間識(shí)別號(hào)(DID)、廠商識(shí)別號(hào)(VID)和檢索號(hào)(Index)搜索PCI器件,通過調(diào)用PCI BIOS確認(rèn)其存在,然后利用總線號(hào)、器件號(hào)、功能號(hào)和尋址設(shè)備的PCI配置空間(Configuration Space),獲得該設(shè)備的參數(shù)。這部分可以由DRIVERWORKS的向?qū)riverWizard來完成。

DriverWizard為設(shè)計(jì)者生成了2個(gè)類:一是設(shè)備驅(qū)動(dòng)程序類,另一個(gè)是設(shè)備應(yīng)用對(duì)象類。驅(qū)動(dòng)程序類主要完成WDM(Windows driver model)的DriverEntry和AddDevice例程;設(shè)備對(duì)象類就是與硬件對(duì)應(yīng)的功能設(shè)備對(duì)象(FDO)類,與硬件交互的例程都是針對(duì)此類的。通過前面驅(qū)動(dòng)框架設(shè)計(jì)的參數(shù)配置,驅(qū)動(dòng)程序就建立了聯(lián)系,接下來就是驅(qū)動(dòng)功能設(shè)計(jì)。

2.3 驅(qū)動(dòng)功能設(shè)計(jì)

E1數(shù)據(jù)采集卡底層驅(qū)動(dòng)程序的2個(gè)部分分別對(duì)應(yīng)接口芯片的2個(gè)功能設(shè)備:HDLC控制器和成幀器。E1數(shù)據(jù)采集卡的HDLC控制器和成幀器的配置都是驅(qū)動(dòng)程序通過PCI接口芯片來配置的。

HDLC控制器的配置主要完成映射的共享體的配置。共享體用于HDLC寄存器的初配、接收和發(fā)送緩沖區(qū)配置。HDLC控制器為每個(gè)信道都建立一個(gè)消息鏈表,這樣數(shù)據(jù)緩沖區(qū)可以循環(huán)利用。HDLC控制器與成幀器的對(duì)應(yīng)關(guān)系決定于HDLC控制器端口映射方式的設(shè)置。 成幀器就是將E1線上的比特流整合成符合規(guī)范的HDLC幀,其中一個(gè)標(biāo)準(zhǔn)E1 HDLC幀包括32個(gè)時(shí)隙,這些時(shí)隙可以通過配置映射到HDLC控制器的端口信道上。另外,可以通過時(shí)鐘配置實(shí)現(xiàn)多對(duì)多、多對(duì)一的靈活時(shí)隙映射。自環(huán)也是成幀器重要的功能之一,可以將發(fā)出的數(shù)據(jù)直接導(dǎo)到接收端,這對(duì)早期開發(fā)很重要。成幀器提供3種自環(huán)模式,可以滿足不同階段配置的要求,具體如下。

(1)N×64 K模式。在該模式下,E1數(shù)據(jù)采集卡通過成幀器耦合,將數(shù)據(jù)導(dǎo)入到一個(gè)HDLC控制器端口,這樣提供的8個(gè)E1接口都可用作接收數(shù)據(jù)。另外,用戶可以根據(jù)需要和當(dāng)前數(shù)據(jù)量的大小增減時(shí)隙配置。

(2)2 M模式。在該模式下,E1數(shù)據(jù)采集卡將4個(gè)成幀器與4個(gè)HDLC完全對(duì)應(yīng),最大數(shù)據(jù)量達(dá)2 Mbit/s。

(3)N×8 K模式。該模式是為某些特殊情況設(shè)計(jì)的。在有些網(wǎng)絡(luò)中,七號(hào)信令可能只走一個(gè)HDLC幀中一個(gè)時(shí)隙的一個(gè)或幾個(gè)比特。在這種情況下,只將該時(shí)隙的對(duì)應(yīng)比特位映射到HDLC端口中,獲取準(zhǔn)確信息。

借助于驅(qū)動(dòng)的I/O接口函數(shù),用戶可以通過API或MFC配置下層驅(qū)動(dòng)。另外,為滿足用戶對(duì)信令消息的特定要求,驅(qū)動(dòng)提供了控制消息長度的接口函數(shù),用戶可以隨意采集指定長度的消息數(shù)據(jù),便于特定檢測。

卡間同步?jīng)Q定了網(wǎng)絡(luò)測試儀實(shí)時(shí)檢測性能和仿真性能,是TD-SCDMA網(wǎng)絡(luò)測試儀的主要技術(shù)之一。2 M卡解決了時(shí)鐘同步問題,可實(shí)現(xiàn)一機(jī)多卡,為大型網(wǎng)絡(luò)節(jié)點(diǎn)的繁重?cái)?shù)據(jù)量采集提供升級(jí)參考。

3、E1數(shù)據(jù)采集卡的驅(qū)動(dòng)實(shí)現(xiàn)

E1數(shù)據(jù)采集卡驅(qū)動(dòng)程序采用WDM結(jié)構(gòu),程序具體模塊分析如圖3所示。

圖3設(shè)備驅(qū)動(dòng)程序的組成示意圖

3.1驅(qū)動(dòng)程序入口點(diǎn)和回調(diào)例程

驅(qū)動(dòng)程序有一個(gè)主要的初始化入口點(diǎn)——DriverEntry,當(dāng)驅(qū)動(dòng)被裝載時(shí),內(nèi)核就調(diào)用DriverEntry例程。在 DriverEntry里,有回調(diào)例程供內(nèi)核調(diào)用,這些例程是驅(qū)動(dòng)的實(shí)現(xiàn)主體。內(nèi)核通過發(fā)送I/O請(qǐng)求包(IRP)來運(yùn)行驅(qū)動(dòng)程序中的這些例程。驅(qū)動(dòng)程序入口點(diǎn)和回調(diào)例程功能列表如表1所示。

表1驅(qū)動(dòng)程序入口點(diǎn)和回調(diào)例程

3.2IRP分發(fā)例程

“創(chuàng)建”、“關(guān)閉”、“讀”、“寫”、“CTL碼”處理的例程就叫分發(fā)例程,在本驅(qū)動(dòng)中,用來產(chǎn)生IRP,IRP向上向下轉(zhuǎn)發(fā)、傳送數(shù)據(jù)。

3.3創(chuàng)建設(shè)備

每個(gè)設(shè)備接口都有一個(gè)惟一標(biāo)識(shí)的GUID碼(全局惟一標(biāo)識(shí)符),安裝設(shè)備驅(qū)動(dòng)時(shí),inf將該信息導(dǎo)入到注冊(cè)表,形成一個(gè)符號(hào)鏈接名來表示設(shè)備。這樣,操作系統(tǒng)在設(shè)備安裝后都能夠識(shí)別設(shè)備。

3.4資源分配

資源包括I/O端口、存儲(chǔ)器空間、中斷和DMA線,這些資源都是由接口提供的。例如,存儲(chǔ)器地址可通過KMemoryRange來找尋。

3.5硬件訪問

對(duì)硬件的訪問包括IRP串行處理例程StartIo,StartIo例程可以防止程序的不同部分同時(shí)訪問相同資源所引起的沖突,在E1數(shù)據(jù)采集卡中,StartIo例程負(fù)責(zé)上行處理接收的數(shù)據(jù)和下行的命令以及發(fā)送數(shù)據(jù),StartIo可控性很強(qiáng),能滿足采集卡對(duì)高速數(shù)據(jù)采集的要求,具體程序如下。

3.6中斷處理

中斷例程運(yùn)行級(jí)別很高,windows為了保護(hù)操作系統(tǒng)的穩(wěn)定性,禁止驅(qū)動(dòng)程序調(diào)用內(nèi)核函數(shù)。例如,中斷程序如果想完成IRP操作,必須要調(diào)用DPC例程:m_DpcFor_Irq.Setup(LinkTo(DpcFor_Irq),this)。

3.7驅(qū)動(dòng)卸載

驅(qū)動(dòng)卸載調(diào)用Pnp的IRP_MN_STOP_DE-VICE,所有申請(qǐng)內(nèi)存和中斷必須釋放,指針置空,例程如下:

3.8測試結(jié)果

圖4給出了E1數(shù)據(jù)采集卡采集的測試結(jié)果,從中可看到E1線采集的數(shù)據(jù)經(jīng)過驅(qū)動(dòng)打標(biāo)后,被送到了上層測試程序,具有多線路、多業(yè)務(wù)、實(shí)時(shí)性等優(yōu)點(diǎn),滿足了設(shè)計(jì)要求。另外,板卡經(jīng)過了超過24小時(shí)的大數(shù)據(jù)量壓力測試,測試效果良好。

圖4E1數(shù)據(jù)采集卡采集測試結(jié)果

4、結(jié)束語

利用E1數(shù)據(jù)采集卡可以實(shí)時(shí)監(jiān)測通信鏈路的建立、傳輸、停止等過程,并且可以通過該卡的信令發(fā)送功能,實(shí)現(xiàn)業(yè)務(wù)仿真,減小TD-SCDMA網(wǎng)絡(luò)設(shè)計(jì)風(fēng)險(xiǎn)。經(jīng)多次測試證明,E1數(shù)據(jù)采集卡完全可以應(yīng)用于TD-SCDMA網(wǎng)絡(luò)測試。該測試卡驅(qū)動(dòng)代碼運(yùn)行穩(wěn)定高效,功能模塊明晰,可以實(shí)時(shí)升級(jí),以滿足不同用戶功能需求。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16361

    瀏覽量

    178069
  • 數(shù)據(jù)采集
    +關(guān)注

    關(guān)注

    39

    文章

    6108

    瀏覽量

    113662
  • 移動(dòng)通信
    +關(guān)注

    關(guān)注

    10

    文章

    2612

    瀏覽量

    69871
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問各位大蝦用單片機(jī)來實(shí)現(xiàn)基于PCI總線數(shù)據(jù)采集卡可行么?

    現(xiàn)在要設(shè)計(jì)一個(gè)伺服電機(jī)數(shù)據(jù)采集卡,請(qǐng)問用單片機(jī)來控制,pci總線和上位機(jī)傳輸,可以實(shí)現(xiàn)么,能否給我具體的思路,原理圖之類的資料。先在這謝過各位了??!
    發(fā)表于 04-19 15:06

    數(shù)據(jù)采集卡/分布式采集模塊/無線通訊采集模塊/嵌入式系統(tǒng)

    PCI-E數(shù)據(jù)采集卡PCI數(shù)據(jù)采集卡 USB數(shù)據(jù)采集卡PC104數(shù)據(jù)采集卡PC104+
    發(fā)表于 08-21 10:05

    數(shù)據(jù)采集卡如何運(yùn)用

    ,還需要提供激勵(lì)信號(hào).數(shù)據(jù)采集卡實(shí)現(xiàn)數(shù)據(jù)采集(DAQ)功能的計(jì)算機(jī)擴(kuò)展,可以通過USB、PXI、PCI、
    發(fā)表于 01-17 15:13

    怎么實(shí)現(xiàn)基于PCI總線的雷達(dá)視頻高速數(shù)據(jù)采集接口設(shè)計(jì)?

    本文提出了一種新的包括PCI9054單周期讀、寫和存儲(chǔ)器映射傳輸?shù)脑O(shè)計(jì),并討論了通用PCI總線高速數(shù)據(jù)采集卡實(shí)現(xiàn)方案。
    發(fā)表于 06-08 06:28

    基于PCI總線的高速數(shù)據(jù)采集卡系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    基于PCI總線的高速數(shù)據(jù)采集卡系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn):本文介紹一種基于PCI總線的高速
    發(fā)表于 06-22 19:04 ?55次下載

    基于PCI總線的高速數(shù)據(jù)采集卡的設(shè)計(jì)

    本文介紹了一種基于PCI 總線的高速數(shù)據(jù)采集卡的設(shè)計(jì)方案,該方案具有高速度、低成本的優(yōu)點(diǎn)。并給出了PCI 總線控制器的
    發(fā)表于 08-31 11:51 ?19次下載

    基于PCI Express總線高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)

    本文介紹一種基于PCI Express 總線的高速數(shù)據(jù)采集卡的設(shè)計(jì)方案及功能實(shí)現(xiàn)。給出系統(tǒng)的基本結(jié)構(gòu)及單元組成,重點(diǎn)闡述系統(tǒng)硬件設(shè)計(jì)的關(guān)鍵技術(shù)和本地
    發(fā)表于 09-22 08:15 ?62次下載

    網(wǎng)絡(luò)測試儀E1數(shù)據(jù)采集卡的驅(qū)動(dòng)設(shè)計(jì)

    網(wǎng)絡(luò)測試儀E1數(shù)據(jù)采集卡的驅(qū)動(dòng)設(shè)計(jì) 1 引言            隨著電信網(wǎng)絡(luò)迅速發(fā)展,基于軟交換技術(shù)的NGN網(wǎng)絡(luò)應(yīng)運(yùn)而生。
    發(fā)表于 01-14 10:44 ?1275次閱讀
    網(wǎng)絡(luò)測試儀<b class='flag-5'>E1</b><b class='flag-5'>數(shù)據(jù)采集卡</b>的驅(qū)動(dòng)設(shè)計(jì)

    PCI6023E數(shù)據(jù)采集卡的安裝

    【LabVIEW從入門到精通】6.4.1.2 PCI6023E數(shù)據(jù)采集卡的安裝
    發(fā)表于 01-08 15:49 ?0次下載

    PCI6023E數(shù)據(jù)采集卡的參數(shù)設(shè)置與測試

    【LabVIEW從入門到精通】6.4.1.3 PCI6023E數(shù)據(jù)采集卡的參數(shù)設(shè)置與測試
    發(fā)表于 01-08 15:49 ?0次下載

    VxWorks的PCI總線多功能數(shù)據(jù)采集卡驅(qū)動(dòng)開發(fā)

    VxWorks的PCI總線多功能數(shù)據(jù)采集卡驅(qū)動(dòng)開發(fā)
    發(fā)表于 10-31 11:21 ?16次下載
    VxWorks的<b class='flag-5'>PCI</b><b class='flag-5'>總線</b>多功能<b class='flag-5'>數(shù)據(jù)采集卡</b>驅(qū)動(dòng)開發(fā)

    基于PCI9820數(shù)據(jù)采集卡實(shí)現(xiàn)對(duì)GP2015輸出中頻GPS的數(shù)據(jù)進(jìn)行采集

    本文介紹了一種基于PCI總線數(shù)據(jù)采集系統(tǒng),利用ADLINK公司生產(chǎn)的PCI9820數(shù)據(jù)采集卡,實(shí)現(xiàn)
    發(fā)表于 04-12 09:18 ?1535次閱讀
    基于<b class='flag-5'>PCI</b>9820<b class='flag-5'>數(shù)據(jù)采集卡</b><b class='flag-5'>實(shí)現(xiàn)</b>對(duì)GP2015輸出中頻GPS的<b class='flag-5'>數(shù)據(jù)</b>進(jìn)行<b class='flag-5'>采集</b>

    基于VxWorks的PCI總線多功能數(shù)據(jù)采集卡驅(qū)動(dòng)開發(fā)

    電子發(fā)燒友網(wǎng)站提供《基于VxWorks的PCI總線多功能數(shù)據(jù)采集卡驅(qū)動(dòng)開發(fā).pdf》資料免費(fèi)下載
    發(fā)表于 10-24 09:23 ?3次下載
    基于VxWorks的<b class='flag-5'>PCI</b><b class='flag-5'>總線</b>多功能<b class='flag-5'>數(shù)據(jù)采集卡</b>驅(qū)動(dòng)開發(fā)

    數(shù)據(jù)采集卡怎么用 數(shù)據(jù)采集卡怎么讀取數(shù)據(jù)

    將物理量(如溫度、壓力、光強(qiáng)等)轉(zhuǎn)換為數(shù)字信號(hào),供電腦進(jìn)行處理和分析。 以下是使用和讀取數(shù)據(jù)采集卡的詳細(xì)步驟: 1. 硬件連接: 首先,確保數(shù)據(jù)采集卡與電腦通過適當(dāng)?shù)慕涌谶B接,如USB、PCI
    的頭像 發(fā)表于 12-15 09:50 ?1827次閱讀

    什么是 PCI-E 圖像采集卡

    PCI-E圖像采集卡是將模擬圖像信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)并傳輸?shù)接?jì)算機(jī)的設(shè)備,通過PCIExpress(PCIe)總線與計(jì)算機(jī)主機(jī)連接,提供高速、高帶寬的數(shù)據(jù)傳輸能力,適用于需要快速、精確的
    的頭像 發(fā)表于 11-01 15:47 ?257次閱讀
    什么是 <b class='flag-5'>PCI-E</b> 圖像<b class='flag-5'>采集卡</b>?