<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 高速HDLC數據實(shí)時(shí)接收/測試儀的設計實(shí)現

高速HDLC數據實(shí)時(shí)接收/測試儀的設計實(shí)現

作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:介紹了高速HDLC數據接收/測試儀的設計實(shí)現方案。該測試儀通過(guò)使用現場(chǎng)可編程邏輯電路(FPGA)技術(shù)和多線(xiàn)程軟件結構,將硬件的高速處理特性和軟件的靈活性相結合?;赑CI總線(xiàn)的硬件接收卡將高速數據實(shí)時(shí)傳送至系統緩沖區,然后調用軟件進(jìn)行并行數據處理,從數據流中提取出測試信息,完成接收與測試功能。

本文引用地址:http://dyxdggzs.com/article/226428.htm

關(guān)鍵詞:HDLC 實(shí)時(shí)數據處理 多線(xiàn)程

在通信系統的測試中,經(jīng)常需要實(shí)時(shí)接收和處理HDLC格式數據。使用自行開(kāi)發(fā)的高速HDLC數據實(shí)時(shí)接收/測試儀可以很好地保證數據處理的靈活性,用戶(hù)可以根據具體的處理環(huán)境來(lái)定制測試儀的功能和性能指標。本文結合一個(gè)通信誤碼率測試 儀的開(kāi)發(fā)過(guò)程,介紹高速HDLC數據接收/測試處理板的設計原理和結構。

1 系統組成

該高速HDLC數據接收/測試儀共分為兩部分,一部分為數據接收硬件,由一塊微機插卡實(shí)現;另一部分為接收終端軟件,由運行于Windows操作系統平臺的軟件實(shí)現。硬件板卡基于PCI總線(xiàn)結構,使用FPGA技術(shù)將數據讀寫(xiě)和HDLC協(xié)議解釋固化于硬件平臺,以提高實(shí)時(shí)處理性能,同時(shí)在終端軟件上采用多線(xiàn)程并行處理技術(shù)減少處理延時(shí),完成實(shí)時(shí)數據處理和指標統計。

2 高速HDLC數據接收/測試儀硬件設計

2.1 基本技術(shù)要求

(1)可接收HDLC格式數據,也可接收同步觸發(fā)模式數據,其工作狀態(tài)可由軟件通過(guò)計算機端口進(jìn)行控制;

(2)接收板可接收的最高數據速率為10Mbit/s;

(3)可將HDLC格式數據中的空幀過(guò)濾掉,也可接收所有數據幀,其工作模式由軟件控制;

(4)可工作于自發(fā)自收狀態(tài),以利于調試;

(5)接收板的兼容性要好。

2.2 接收板工作原理

數據接收板原理框圖如圖1所示。測試數據通過(guò)RS-422電纜傳送到數字接收板的數據接收端,經(jīng)電平轉換后,磅給FPGA處理。接收板上由接收芯片MC3486接收RS-422電纜傳輸的差分信號,并轉換為T(mén)TL電平輸入FPGA進(jìn)行信號處理。FPGA產(chǎn)生20位地址和寫(xiě)信號,將8位的數據由SDRAM左端口寫(xiě)入,同時(shí)將工作狀態(tài)反映在狀態(tài)控制端口,計算機查詢(xún)端口狀態(tài),產(chǎn)生相應的地址和讀信號,由SDRAM的右端口將數據讀出。為協(xié)調數據到達的不均勻性和軟件讀寫(xiě)的均勻性,對SDRAM的讀寫(xiě)采用“乒乓式”緩沖,即將SDRAM分為高低兩區,FPGA寫(xiě)高區時(shí),計算機讀低區;FPGA寫(xiě)低區時(shí),計算機讀高區。從而保證了讀寫(xiě)高速進(jìn)行且不會(huì )發(fā)生沖突。GAL16V8的作用是對端口地址高8位進(jìn)行譯碼,以保留FPGA管腳資源。

在實(shí)現“乒乓式”緩沖讀寫(xiě)時(shí),具體是讀高區數據(起始地址為d8000)還是讀低區數據(起始地址為d90000),要通過(guò)查詢(xún)方式判定。測試軟件不斷查詢(xún)端口201h的q5,若q5為1,則查詢(xún)q7和q2,若q7=1,則讀高區數據,若q2=1,則讀低區數據。為了保證讀取的數據不掉幀,系統應能在掉幀時(shí)發(fā)出警告信息。為此,在FPGA內做一4位計數器,對幀數計數,幀計數器的值傳給端口201h的最低兩位q1和q0。軟件中設置一參數counter,首先使counter的值與幀計數器的值相同,以后每讀一幀數據,counter加1(若counter大于3,則置其為0),同時(shí)讀取幀計數器的值(即q1、q0的值),與counter比較,二者不同時(shí)則發(fā)出警告信息。

接收板的狀態(tài)控制端口參數列于表1。

表1 實(shí)時(shí)HDLC數據接收板端口控制參數

端口名稱(chēng) 端口作用 數據流向 功 能
201h 狀態(tài)控制 雙向端口 讀入時(shí) Q7=1,計算機讀SDRAM低區 寫(xiě)入時(shí) Q0=0,過(guò)濾空幀
Q0=1,接收所有幀
Q7=0,計算機讀SDRAM高區 Q1=0,工作于HDLC
Q1=1,工作于同步
202h 空幀計數器 只讀 對空幀計數
203h 數據幀計數器 只讀 對數據幀計數

讀取HDLC格式的數據時(shí),每幀需從第四個(gè)地址單元讀取數據,即D8003h和D9003h;讀取固定速率突發(fā)方式的數據時(shí),每幀需從第一個(gè)地址單元讀取數據。讀取的每幀數據中包含有該幀數據個(gè)數的信息,通過(guò)此信息,軟件決定何時(shí)讀完幀數據。測試數據通通RS-422電纜傳送到插卡的數據接收端,經(jīng)電平轉換后,送給FPGA處理。主要是將HDLC格式和固定速度突發(fā)方式的數據解調,解調后的有效數據以乒乓方式發(fā)生一高速雙口RAM,計算機通過(guò)訪(fǎng)問(wèn)RAM(地址定為D8000~D9FFFh)來(lái)讀取測試數據。

3 高速HDLC數據接收/測試儀軟件設計

測試儀軟件負責讀取緩沖區數據并實(shí)時(shí)處理和顯示。軟件由Visual C++編寫(xiě),可運行于Win95/98/2000/NT平臺。軟件采用多線(xiàn)程并行處理構架,如圖2所示。

3.1 界面線(xiàn)程

界面線(xiàn)程負責顯示數據處理結果和用戶(hù)交互操作。界面線(xiàn)程將數據處理的結果實(shí)時(shí)顯示出來(lái),包括統計結果、數據源碼和數據段信息等測試內容。

3.2 緩沖區線(xiàn)程

緩沖區線(xiàn)程負責將該緩沖區內的數據及時(shí)讀取并鎖定至軟件緩沖區,并且將數據進(jìn)行初始處理。

在整個(gè)測試儀軟件中,緩沖區線(xiàn)程負責主要的數據處理工作。在緩沖區線(xiàn)程中,一個(gè)處理循環(huán)在不停運行,直到界面線(xiàn)程的暫停和終止命令發(fā)生時(shí)停止。在該處理循環(huán)中,不停地對端口201h的q5位進(jìn)行查詢(xún),以判別是否有數據到達。如果有數據,則判別緩沖區位置,并將硬件緩沖區的數據及時(shí)讀至軟件緩沖區,等待后續處理。為協(xié)調高速數據和后緩數據處理之間的時(shí)間矛盾,軟件采用三級緩沖:第一級緩沖通過(guò)板卡將數據寫(xiě)入至系統內存;第二級緩沖將系統內存管理的硬件緩沖緩沖區數據移至軟件緩沖區;第三級緩沖將軟件緩沖區數據移至處理緩沖區。

為提高數據處理靈活性,測試儀軟件提供定制緩沖區功能。通過(guò)該功能,操作者可以根據實(shí)際接收的數據情況來(lái)靈活配置測試儀。對于高頻度短數據,采用較大緩沖區;反之,對于較低頻度長(cháng)數據,采用較小緩沖區。這樣,可減少數據緩沖的時(shí)間消耗,提高實(shí)時(shí)性。

3.3 數據處理線(xiàn)程

數據處理線(xiàn)程負責根據數據協(xié)議對原始數據進(jìn)行拆包、信息處理和實(shí)時(shí)統計。

對于HDLC幀格式數據,HDLC協(xié)議層數據處理已在硬件FPGA中完成,輸出至緩沖區的數據直接就是透明數據。此時(shí),數據處理線(xiàn)程的主要處理對象就是存于數據處理緩沖區中的數據。根據數據協(xié)議,測試儀軟件首先將數據組合幀人原始數據中取出,并分離出組合幀中包含的總幀長(cháng)、包含子幀數等信息。然后根據這些信息將組合幀拆分成子幀,再根據數據協(xié)議將內部包含的通信信息取出,并調用實(shí)時(shí)統計模塊進(jìn)行指標統計。數據處理流程如圖3所示。

本文介紹的高速HDLC數據接收/測試儀具有可靠性高、運行性能穩定、功能定制靈活等優(yōu)點(diǎn)。以它為主要框架的通信誤碼率測試儀已經(jīng)成功應用于某衛星地面站設備的出廠(chǎng)測試中。在測試過(guò)程中,程序穩定可靠運行,同時(shí),基于Windows的圖形界面提供了充足的信息顯示和良好的人機交互接口,提高了測試結果的可視性。今后,測試儀將從硬件和軟件兩個(gè)方面進(jìn)一步提高響應能力,提高數據吞吐效率,使之更好地滿(mǎn)足實(shí)際使用要求。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>