《電子技術應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 高速HDLC數(shù)據(jù)實時接收/測試儀的設計實現(xiàn)

高速HDLC數(shù)據(jù)實時接收/測試儀的設計實現(xiàn)

2009-01-15
作者:王 浩 葛 銳 歐 鋼

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

  關鍵詞: HDLC? 實時數(shù)據(jù)處理? 多線程

?

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

1 系統(tǒng)組成

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

2 高速HDLC數(shù)據(jù)接收/測試儀硬件設計

2.1 基本技術要求

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

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

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

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

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

2.2 接收板工作原理

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

?

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

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

?

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

3 高速HDLC數(shù)據(jù)接收/測試儀軟件設計

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

?

3.1 界面線程

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

3.2 緩沖區(qū)線程

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

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

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

3.3 數(shù)據(jù)處理線程

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

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

?

?

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

?

參考文獻

1 The Programmable Logic Data Book. Xilinx 公司,1996

2 李貴山,戚德虎.PCI局部總線開發(fā)者指南.西安:西安電子科技大學出版社,1997

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。