《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的誤碼率測試儀的設(shè)計(jì)與實(shí)現(xiàn)
基于FPGA的誤碼率測試儀的設(shè)計(jì)與實(shí)現(xiàn)
摘要: 本文提出了一種基于FPGA的誤碼率測試儀的方案,使用一片Altera公司的Cyclone系列的FPGA(EP1C6-144T)及相關(guān)的外圍電路,,實(shí)現(xiàn)誤碼測試功能,,主控計(jì)算機(jī)可以通過FPGA內(nèi)建的異步串行接口(UART)配置誤碼測試儀并讀取誤碼信息,由計(jì)算機(jī)完成誤碼分析,。同時,該方案還提供了簡易的數(shù)據(jù)顯示,,可以在脫離計(jì)算機(jī)的情況下,,進(jìn)行通信系統(tǒng)工作性能的定性分析。
關(guān)鍵詞: FPGA 誤碼率測試 EP1C6-144T
Abstract:
Key words :

1,、概述

  在通信系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)過程中,,都需要測試系統(tǒng)的誤碼性能。而常見的誤碼率測試儀多數(shù)專用于測試各種標(biāo)準(zhǔn)高速信道,,不便于測試實(shí)際應(yīng)用中大量的專用信道,,并且價格昂貴,,搭建測試平臺復(fù)雜。隨著大規(guī)模集成電路的迅速發(fā)展,,FPGA在保持其集成度高,,體積小,功耗低,,性價比高特性的同時,,能夠?qū)崿F(xiàn)越來越復(fù)雜設(shè)計(jì)功能,日益廣泛的應(yīng)用于通信設(shè)備的設(shè)計(jì)實(shí)現(xiàn),。

  本文提出了一種基于FPGA的誤碼率測試儀的方案,,使用一片Altera公司的Cyclone系列的FPGA(EP1C6-144T)及相關(guān)的外圍電路,實(shí)現(xiàn)誤碼測試功能,,主控計(jì)算機(jī)可以通過FPGA內(nèi)建的異步串行接口(UART)配置誤碼測試儀并讀取誤碼信息,,由計(jì)算機(jī)完成誤碼分析。同時,,該方案還提供了簡易的數(shù)據(jù)顯示,,可以在脫離計(jì)算機(jī)的情況下,進(jìn)行通信系統(tǒng)工作性能的定性分析,。

2,、系統(tǒng)構(gòu)成和工作流程

  按照完成的功能,整個系統(tǒng)可以分為測試碼生成單元,、誤碼測試單元,、接口單元、顯示單元和時鐘生成單元以及主控計(jì)算機(jī)上運(yùn)行的控制測試軟件六個部分,,具體框圖如圖1所示,。

誤碼測試儀框圖

圖1誤碼測試儀框圖

  利用誤碼率測試儀進(jìn)行誤碼率測試的閉環(huán)測試平臺結(jié)構(gòu)如圖2所示。對照圖1,、圖2,,將系統(tǒng)的工作流程描述如下。

通信系統(tǒng)誤碼測試框圖

圖2 通信系統(tǒng)誤碼測試框圖

  根據(jù)待測通信系統(tǒng)的數(shù)據(jù)速率由計(jì)算機(jī)通過UART配置時鐘生成單元,,得到工作時鐘和各使能計(jì)數(shù)器的參數(shù),,使得系統(tǒng)按照預(yù)定時鐘工作;由測試碼生成單元按照設(shè)置好的時鐘將 測試碼發(fā)送給待測系統(tǒng)的發(fā)送設(shè)備,;發(fā)送信號經(jīng)過信道仿真器后,,由待測系統(tǒng)的接收單元接收,、判決,,再將接收數(shù)據(jù)和恢復(fù)的數(shù)據(jù)時鐘送入誤碼測試儀;誤碼測試儀中的誤碼測試單元完成輸入數(shù)據(jù)和本地?cái)?shù)據(jù)的同步后,,對輸入數(shù)據(jù)同本地?cái)?shù)據(jù)進(jìn)行比較,,統(tǒng)計(jì)誤碼數(shù),,每完成兩個測試碼周期的數(shù)據(jù)比較,就將誤碼信息通過UART發(fā)送給計(jì)算機(jī),,進(jìn)行誤碼統(tǒng)計(jì),,同時將誤碼數(shù)傳送給顯示單元,進(jìn)行處理后驅(qū)動外部的四個七段數(shù)碼管,,顯示本測試碼周期內(nèi)的誤碼率,。

 

3、關(guān)鍵技術(shù)及其實(shí)現(xiàn)

3.1測試碼的產(chǎn)生

  本設(shè)計(jì)使用m序列作為測試碼,,m序列發(fā)生器按照CCITT建議,,生成用于低速數(shù)據(jù)傳輸設(shè)備測試誤碼的m序列,其特征多項(xiàng)式為x9+x4+1,,周期為512,。利用m序列的偽隨機(jī)特性,可以很好的測試在不同的輸入組合下,,系統(tǒng)的通信性能,,同時,m序列極強(qiáng)的自相關(guān)性,,便于測試儀實(shí)現(xiàn)輸入數(shù)據(jù)同本地測試碼同步,,以便進(jìn)行誤碼計(jì)數(shù)。

3.2誤碼測試單元的實(shí)現(xiàn)

  誤碼測試單元是整個系統(tǒng)的核心單元,,其功能框圖如圖3所示,。序列同步跟蹤單元的功能是利用m序列的自相關(guān)特性,將輸入的數(shù)據(jù)同本地的m序列同步起來,,并將同步信息傳給碼元比較單元,。

誤碼測試單元功能框圖

  我們利用測試序列—m序列的自相關(guān)性實(shí)現(xiàn)接收序列與本地序列的同步。m序列的捕獲有很多方法,,通常使用的有相關(guān)器法和循環(huán)累加法,。相關(guān)器法的優(yōu)點(diǎn)是捕獲速度快,通常捕獲時間不超過兩個m序列的周期,,但是相關(guān)器最大的問題就是所需的邏輯資源太多,。相比之下,循環(huán)累加法所需的邏輯資源很少,,雖然捕獲時延較長,,但在測試環(huán)境下,通常是可以忍受的,,另外,,我們還可以采取一定的措施進(jìn)一步減少捕獲時延。循環(huán)累加器的工作原理如下,,系統(tǒng)復(fù)位后,,m序列發(fā)生器按照預(yù)設(shè)的參數(shù)生成m序列,,存入m序列緩沖區(qū),碼元同步后,,在地址發(fā)生器的控制下,,將m序列從緩沖區(qū)中讀出,同輸入序列按位進(jìn)行同或運(yùn)算后進(jìn)行算術(shù)加,,相加得到的和經(jīng)D觸發(fā)器緩沖一個時鐘周期后,,輸入加法器,作為下一次加法運(yùn)算的一個加數(shù),,從而實(shí)現(xiàn)本地序列同輸入序列的循環(huán)累加,。累加和送入門限檢測器同所設(shè)門限比較,如低于門限,,則地址發(fā)生使能和同步指示輸出均無效,,為‘0’,如果高于所設(shè)門限,,則兩信號置高,。后面的碼元比較單元開始工作,進(jìn)行輸入序列和本地序列的比較,。地址發(fā)生器產(chǎn)生的地址由兩部分組成,,即:

  地址輸出=累加地址+偏移地址

  兩個地址的初值均為‘0’,累加地址計(jì)數(shù)范圍同m序列的長度一樣,,每個時鐘周期加1,,第一個周期輸出的m序列從第一個碼元開始輸出,加完一個m序列周期后,,地址發(fā)生器檢查由門限檢測輸入的地址發(fā)生控制信號,,如果該信號為‘0’,那么表示輸入序列同本地序列沒有同步,,存在相位差,,此時,偏移地址加1,,累加地址重新開始累加計(jì)數(shù),,使得第二個周期輸出的m序列從第二個碼元開始輸出,實(shí)現(xiàn)了本地m序列相對于輸入序列的“滑動”,。

  經(jīng)過本地碼的滑動,,同輸入序列完全同步,根據(jù)m序列的相關(guān)性,,累加值會出現(xiàn)相關(guān)峰,,超過門限檢測的門限值,此時,,門限檢測單元就會將地址發(fā)生控制信號置‘1’,,地址發(fā)生器的偏移地址不再變化,,累加地址繼續(xù)循環(huán)計(jì)數(shù),,m序列緩沖區(qū)按照輸入的地址,,將與輸入序列同步的m序列輸出至門限檢測單元和碼元比較單元,同時,,經(jīng)過UART向主控PC發(fā)送開始誤碼測試的消息,。 


  當(dāng)序列同步完成之后,門限檢測單元繼續(xù)工作,,檢查序列的同步狀況,,當(dāng)某一時刻,相關(guān)峰值低于門限,,則可以判斷系統(tǒng)誤碼率過高,,或者數(shù)據(jù)傳輸過程中出現(xiàn)丟幀的情況。此時,,門限檢測單元將同步指示和地址發(fā)生使能同時置為無效,,開始新一輪捕獲,同時經(jīng)過UART向主控PC發(fā)送停止誤碼測試的報(bào)警,,等待下一次統(tǒng)計(jì)的開始,。可以看出,,系統(tǒng)誤碼性能的設(shè)計(jì)指標(biāo)同門限檢測單元中的門限可以建立對應(yīng)關(guān)系,,便于測試前的參數(shù)設(shè)置。圖4是測試碼捕獲的時序仿真圖,,為了測試誤碼統(tǒng)計(jì)功能,,我們將測試碼的前三個碼取反,以便形成誤碼,。從圖中可以看出,,當(dāng)累加器的和高于門限時,同步指示為高,,當(dāng)一個新的測試碼周期開始時,,誤碼計(jì)數(shù)開始,前三個測試碼是錯的,,可以看到誤碼計(jì)數(shù)正確的統(tǒng)計(jì)了誤碼個數(shù),。

  碼元比較單元將接收到的序列通本地產(chǎn)生的m序列按位作異或運(yùn)算,每出現(xiàn)一個誤碼,,就會輸出一個計(jì)數(shù)脈沖,。誤碼計(jì)數(shù)單元按照預(yù)先設(shè)置好的參數(shù),每檢測完兩個測試碼周期,,就通過UART向傳送一次誤碼個數(shù),,便于主控計(jì)算機(jī)統(tǒng)計(jì)誤碼信息,。

測試碼捕獲的時序仿真圖

 

  誤碼測試單元通過UART同PC機(jī)進(jìn)行通信,將誤碼信息發(fā)送給PC機(jī),,由PC機(jī)進(jìn)行誤碼數(shù)據(jù)的分析統(tǒng)計(jì)處理,,并形成報(bào)表。UART?通過系

 

統(tǒng)提供的10MHz的時鐘分頻得到57.6Kbps的波特率,。

3.3誤碼率實(shí)時顯示的實(shí)現(xiàn)

  誤碼率的實(shí)時顯示是通過四個共陰極的七段數(shù)碼管實(shí)現(xiàn)的,,主要用于誤碼測試儀脫離主控計(jì)算機(jī)工作時,通過對每兩個測試碼周期的誤碼統(tǒng)計(jì),,將這一時段的實(shí)時誤碼率用科學(xué)計(jì)數(shù)法在七段數(shù)碼管上顯示出來,,以便對信系統(tǒng)的運(yùn)行情況進(jìn)行定性的分析。第一個數(shù)碼管顯示個位和小數(shù)點(diǎn),,第二個數(shù)碼管顯示小數(shù)點(diǎn)后第一位,,第三個顯示負(fù)號,第四個顯示一位數(shù)字,,表示科學(xué)計(jì)數(shù)法的負(fù)幾次方,。下面以兩個測試碼周期(1024個碼)中統(tǒng)計(jì)到256個誤碼為例,說明如何得到實(shí)時顯示,。首先,,將誤碼數(shù)送入比較器,分別同11,、102進(jìn)行比較,,256大于102,說明誤碼率在101數(shù)量級,,第四個數(shù)碼管顯示1,,再將 1/101×256=2560= (1010 0000 0000)2的第12位和第11位取出,即(10)2=2,,作為第一個數(shù)碼管顯示的個位數(shù),,取出第10位、第9?位和第8?位,,即(100)2按二進(jìn)制小數(shù)計(jì)算為0.5,,則第二個數(shù)碼管顯示5。計(jì)算小數(shù)部分時,,可用查表法,,直接得到輸出數(shù)值,以簡化計(jì)算,。

3.4軟件測試平臺的設(shè)計(jì)

  我們采用Visual C++和matlab混合編程來實(shí)現(xiàn)軟件測試平臺,。Visual C++是微軟公司推出的功能強(qiáng)大的軟件開發(fā)調(diào)試工具,對計(jì)算機(jī)底層操作十分方便,通過API函數(shù)對串口進(jìn)行編程更是一項(xiàng)十分成熟的技術(shù),。matlab是Math Work公司發(fā)布的科學(xué)計(jì)算軟件,,具有功能很強(qiáng)的繪圖功能和及其豐富的函數(shù)庫,給數(shù)據(jù)的分析,、圖表的制作提供強(qiáng)大的支持,。軟件測試平臺的基本思想是利用Visual C++編制平臺的人機(jī)交互界面,以及完成同誤碼測試核的數(shù)據(jù)通信,,再調(diào)用matlab里的函數(shù),,對得到的測試數(shù)據(jù)進(jìn)行分析輸出,,同時在人機(jī)交互界面上顯示誤碼事件及其發(fā)生時刻,。

4、結(jié)束語

  本文提出了一種基于FPGA的誤碼率測試儀的設(shè)計(jì)實(shí)現(xiàn)方案,,具有體積小,,成本低,使用靈活,,通過內(nèi)建的UART同主控計(jì)算機(jī)進(jìn)行數(shù)據(jù)交換,,同時發(fā)揮了FPGA速度快和計(jì)算機(jī)數(shù)據(jù)處理能力強(qiáng)的優(yōu)勢,獲得了較好的系統(tǒng)性能,,可以方便的運(yùn)用于通信設(shè)備的研制和測試,。

  同時,利用FPGA的在線可編程(ISP)能力,,可以不斷升級,、完善,實(shí)現(xiàn)更多的功能,。在此基礎(chǔ)上,,還能夠進(jìn)一步的進(jìn)行系統(tǒng)擴(kuò)展,如使用加入單片機(jī)并移植嵌入式操作系統(tǒng),,將用點(diǎn)陣液晶代替數(shù)碼管,,增加外部存儲(flash,RAM等),從而構(gòu)成一個手持的誤碼測試系統(tǒng),,可以完全脫離主控計(jì)算機(jī)工作,。

參考文獻(xiàn):

  [1]褚振勇,翁木云 FPGA設(shè)計(jì)及應(yīng)用,,西安電子科技大學(xué)出版社

  [2]張志勇等精通MATLAB6.5版,,北京航空航天大學(xué)出版社

  [3]CycloneFPGA Family Data Sheet,Altera,March 2003,ver1.1

  [4]何強(qiáng),何英 MATLAB 擴(kuò)展編程 清華大學(xué)出版社


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。