新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 基于FPGA的誤碼測試儀

基于FPGA的誤碼測試儀

作者:北京交通大學無線通信研究所 盧艷萍 陶成 時間:2004-08-10 來源:電子產(chǎn)品世界 收藏

2004年4月A版

摘  要:本文提出了一種基于的誤碼測試方案,并在上實現(xiàn)了其功能。該方案不僅納入了“同步保護”的思想,同時對誤碼率量級的判斷也提出了一種簡化而又可行的方法。

關(guān)鍵詞:誤碼測試;;m序列;同步

  在數(shù)字通信系統(tǒng)中,為了檢測系統(tǒng)的性能,通常使用誤碼分析儀對其誤碼性能進行測量。誤碼分析儀給工程實際應(yīng)用帶來了極大的便利,比如它有豐富的測試接口和測試內(nèi)容,并能將結(jié)果直觀、準確的顯示出來。但是它的價格昂貴,并且通常需要另加外部輔助長線驅(qū)動電路才能與某些系統(tǒng)接口適配。這些都嚴重的制約了通用誤碼儀在實際中的應(yīng)用。

  基于工程的需要和實際應(yīng)用中的困難性,本文提出一個基于FPGA的多功能誤碼測試方案。芯片采用Altera公司的ACEX1K家族的EP1K50。

誤碼測試

  該誤碼儀由發(fā)送端、接收端,以及接口模塊等部分組成。發(fā)送端產(chǎn)生測試的比特流,作為通信系統(tǒng)的信源數(shù)據(jù)通過接口模塊發(fā)送出去,另外它還有誤碼插入功能;接收端模塊從數(shù)據(jù)接口中接收通信系統(tǒng)輸出的比特流,并將它與本地產(chǎn)生的,與發(fā)端形式相同的比特流進行比較,進行誤碼統(tǒng)計,從而完成誤碼測試功能。

發(fā)送端

  在發(fā)送端要產(chǎn)生替代通信信源的碼序列,那么究竟應(yīng)該選擇什么樣的碼作為測試碼呢?這類碼序列的最重要的特征是具有近似于隨機信號的性能。也可以說具有噪聲近似的性能。但是,真正的隨機信號和噪聲是不能重復再現(xiàn)和產(chǎn)生的。所以只能產(chǎn)生一種周期性的脈沖信號來近似隨機噪聲的性能,這稱之為偽隨機序列或PN碼。本方案中就采用m序列作為測試碼,雖然它是周期信號,但它具有類似于隨機信號較好的自相關(guān)特性。

  發(fā)送端另外一個重要的功能是實現(xiàn)誤碼插入。也就是人為的在發(fā)送序列中插入已知插入頻率的誤碼信號,然后在接收端檢測這些誤碼,最后可以將檢測的結(jié)果與發(fā)送端已知的插入頻率進行比較,以判斷通信系統(tǒng)的誤碼性能。這也是檢測通信系統(tǒng)性能的重要方法之一。在此可以通過一個受時鐘控制的反向器實現(xiàn)這一功能。將傳輸?shù)哪骋粋€碼通過反向器,也就是強制它變?yōu)橐粋€比特的誤碼,改變反向器的時鐘控制信號就可以實現(xiàn)對誤碼插入率的控制。

接收端

  接收端實際上可以分成三個功能子模塊:本地m序列發(fā)生子模塊,同步子模塊,誤碼率計算子模塊。

  本地m序列發(fā)生子模塊的結(jié)構(gòu)與發(fā)送端相似,只是將接收到的連續(xù)r位碼長的序列(其中r為發(fā)送端m序列發(fā)生器的級數(shù))置入本地m序列寄存器中,作為其初始狀態(tài),并且收發(fā)雙方已同步于這個狀態(tài),由前面對m序列的討論知道,如果兩個具有相同邏輯結(jié)構(gòu)的m序列發(fā)生器在某一時刻寄存器狀態(tài)相同,則由這兩個m序列發(fā)生器所產(chǎn)生的數(shù)字數(shù)據(jù)流保持同步。這樣在本地就可以產(chǎn)生一個與發(fā)送端結(jié)構(gòu)相同且比特對齊的m序列了。

  同步判斷是進行誤碼統(tǒng)計的先決條件,只有對接收到的碼序列與本地碼序列不斷地進行同步判斷,確定收、發(fā)端處于同步狀態(tài),那么誤碼統(tǒng)計才有意義。在通信系統(tǒng)中同步的方法有很多種,但由于對于誤碼測試儀,發(fā)送端并不是真實的隨機信息,在接收端只要確定了m序列的級數(shù)和某一時刻的寄存器狀態(tài),就能在后續(xù)的時間里產(chǎn)生出與發(fā)送端同步的m序列。所以通信系統(tǒng)中通常采用的如滑動相關(guān)法,匹配濾波法,插入導頻法等方法在這里并沒有用。

  很容易想到,如果接收端截取的N位碼序列中包含有誤碼,則由此產(chǎn)生的本地序列與發(fā)端是不同的,那么此后進行的誤碼統(tǒng)計就是毫無意義的,因此對誤碼測試儀收發(fā)雙方進行嚴格同步的意義是為了避免由于將接收到的含有誤碼的狀態(tài)作為本地初始狀態(tài)而造成的“假同步”。同步判別的狀態(tài)轉(zhuǎn)移如圖2所示。

  實現(xiàn)了上述功能的同步模塊在實際應(yīng)用中已經(jīng)能夠保證收發(fā)雙方的同步問題了,但是考慮到實際系統(tǒng)的處理能力及處理性能,還有必要對他做進一步的優(yōu)化。觀察上述系統(tǒng)不難發(fā)現(xiàn),同步模塊一旦探測到接收到的誤碼個數(shù)超過了預設(shè)的判決門限就認為收發(fā)雙方不同步,而重新進行同步判定,這種處理方式不僅降低了誤碼儀對突發(fā)錯誤的處理能力,更嚴重的是會導致接收端進行反復同步,從而大大降低了處理的效率。而實際上這種由突發(fā)錯誤造成的“反復同步”是沒有必要的。所以在實際的設(shè)計中我們又納入了“同步保護”機制。有同步保護的狀態(tài)轉(zhuǎn)移如圖3所示。

  由圖3可以看到,有同步保護的同步判別狀態(tài)轉(zhuǎn)移圖只是在原有的四個狀態(tài)的基礎(chǔ)上增加了一個失同步檢查態(tài),增加這個狀態(tài)的目的是為了在同步計數(shù)的過程中,如果有短時的大量突發(fā)誤碼,并不立即指示時同步信號,而是進行失同步檢查,如果在后續(xù)的連續(xù)幾個檢測周期內(nèi)都有大量的誤碼,那么可以判斷收發(fā)端已經(jīng)失同步了,立即給出失同步報警信號。此時有必要對本地m序列發(fā)生器重新加載,重新同步;而如果短時的大量誤碼只是由于突發(fā)誤碼造成的,后續(xù)的幾個連續(xù)檢測周期內(nèi)接收端的誤碼并沒有超過判決門限,那么就繼續(xù)進行同步計數(shù),沒有必要重新進行同步判定了。

  在同步模塊中,判決門限的設(shè)定與采用的m序列的周期,以及誤碼測試的準確性要求有關(guān)。

  當收發(fā)端已經(jīng)判斷同步以后,只要將接收信號與本地的m序列流進行同步的串行比較就可以統(tǒng)計誤碼了。誤碼率的計算常常又需要進行除法運算,要在FPGA中或其它的可編程邏輯器件中實現(xiàn)除法運算通常要消耗掉大量的邏輯資源,可以采用估算的辦法大致的估計出誤碼率。具體的方法是:在進行測試的時候首先設(shè)定一個統(tǒng)計周期,對傳輸?shù)拇a元進行一個統(tǒng)計,例如設(shè)定統(tǒng)計周期為100M信號。然后對這100M傳輸信號進行誤碼統(tǒng)計,給定一系列判決門限,在每個周期結(jié)束的時候,將誤碼統(tǒng)計結(jié)果與判決門限進行比較,得出誤碼率量級,例如:如果誤碼個數(shù)在5 到50 之間,則認為誤碼量級為10-7,在50 到500之間,就認為誤碼率量級為10-6,以此類推。這樣估算不可避免的會造成真實誤碼率的偏差,但是它不僅節(jié)約了大量的邏輯資源,而且并不影響工程實際中對誤碼量級的判斷,因此是完全可行的。

接口模塊

  接口模塊主要是為了與通信系統(tǒng)傳輸形式相匹配,如常用的RS-232接口或RS-485接口。由于采用FPGA實現(xiàn)整體功能,哪怕是對非標準信道進行測試,接口形式也易于擴展,而且還有利于系統(tǒng)的集成化,避免了通用誤碼儀的外加輔助長線驅(qū)動器。

結(jié)語

  在數(shù)字通信系統(tǒng)中,誤碼儀的使用是很普遍的,而現(xiàn)今的通信系統(tǒng)大量采用FPGA作為系統(tǒng)的核心控制器件,將物理層上的各協(xié)議層的功能集中在FPGA內(nèi)部實現(xiàn)。本文提出的誤碼測試方案在一片Altera公司的EP1K50芯片上進行了試驗驗證,大約需要消耗1000個邏輯單元,只占到整個芯片資源的36%。今后還有很大的擴展空間。設(shè)計的仿真波形如圖4和圖5。另外本測試方案還可以作為某些系統(tǒng)的模塊,有利于系統(tǒng)的性能調(diào)試。■

參考文獻:

1. 徐志軍、徐光輝,《CPLD/FPGA的開發(fā)與應(yīng)用》,電子工業(yè)出版社



關(guān)鍵詞: FPGA 嵌入式

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉