《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的RS485接口誤碼測試儀的設計和實現
基于FPGA的RS485接口誤碼測試儀的設計和實現
楊洪軍, 劉永亮
成都學院 電子信息工程學院, 四川 成都 610106
摘要: 介紹了一種基于FPGA的誤碼測試儀的設計原理、實現過程及調試經驗。該誤碼測試系統使用RS485接口,具有原理簡單、接口獨特、功能豐富等特點,系統具有較好的可擴展性。
中圖分類號: TN91
文獻標識碼: A
Design and implementation of a BER detector with RS485 interface based on FPGA
YANG Hong Jun, LIU Yong Liang
School of Electronic Information Engineering, Chengdu University, Chengdu 610106, China
Abstract: The paper introduces the design, implementation and debugging of a BER detector with RS485 interface based on FPGA, which possesses the characteristics of simple principle, unique interface and multiple functions. And the whole system has a good expansibility due to the programmable characteristic of the FPGA device.
Key words : BER detector; FPGA; RS485; m series

    在數字通信中,誤碼率BER(Bit Error Rate)是衡量通信系統質量的一項重要指標。無論是設備故障、傳播衰落、碼間干擾、臨近信道干擾等因素都可能造成系統性能惡化甚至造成通信中斷,其結果都可通過誤碼的形式表現出來[1]。因此,誤碼測試儀是現代通信系統的主要測試儀器之一。
    目前,通常使用的傳統誤碼測試儀雖然具有測試內容豐富、測試結果直觀等優點,但是由于通信系統復雜程度的不斷增加,接口形式變化多樣以及一些非標準碼率的應用,使得傳統誤碼測試儀的使用受到了一定的限制。另一方面,近年來FPGA技術得到了迅速發展,使用FPGA設計電路具有很大的靈活性,可以大大提高集成度和設計速度,還可以簡化接口和控制,有利于提高系統的整體性能和工作可靠性。本文即介紹了一種基于FPGA的RS485接口誤碼測試儀的設計和實現。該設計具有系統簡單、功能可靠、接口獨特等特點,并且增加了傳統誤碼測試儀所沒有的測量系統傳輸延時的功能。
1 設計背景
  本文所設計的誤碼測試儀主要用于測試某通信系統的誤碼性能。該通信系統是一個龐大復雜的系統,本文主要介紹信道部分,包括基帶的信道編解碼和無線信道的收發,其基本框圖如圖1所示。

    為了在線路傳輸上保證良好的抗干擾能力,系統采用了RS485接口,選用了4.096 Mb/s的碼率。因此,為了測試圖1所示系統的誤碼性能,誤碼測試儀必須具有以下指標:
    (1) 邏輯接口:RS485差分信號。
    (2) 物理接口:DB9。
    (3) 碼率:4.096 Mb/s。
    傳統誤碼測試儀通常都不具備以上3項指標,本文設計的誤碼測試儀滿足了上述3項指標。
2 誤碼測試原理
    構成誤碼測試儀的方案有多種形式,其基本工作過程可以概括為以下幾個步驟:
    (1) 以某種方式產生和發送碼組相同的碼形,以相同相位的本地碼組作為比較標準。
    (2) 將本地碼組與接收碼組逐個進行比較,并輸出誤碼脈沖信號。
    (3) 對誤碼脈沖信號進行統計,并給出相應的誤碼率。
     在通信工程應用中,為了最大程度地模擬真實通信中的數據流的統計特性,通常采用二進制偽隨機序列。對于偽隨機序列有以下幾點要求[2]:
    (1) 應具有良好的偽隨機性,即應具有和隨機序列類似的隨機性。
    (2) 應具有良好的自相關、互相關和部分相關特性,即要求自相關峰值尖銳,而互相關和部分相關值接近于零。這是為了接收端的準確檢測,以減小差錯。
    (3) 要求隨機序列的數目足夠多,以保證在碼分多址的通信系統中,有足夠多的地址提供給不同的用戶。
  根據本地碼組發生器的構成方式不同,誤碼測試儀可分為多種類型,本文采用的是逐位檢測式,其使用的碼組為最大長度線形移位反饋寄存器序列,即m序列。其工作原理為:本地的m序列發生器產生的m序列和所接收的m序列進行逐位比較,若兩個m序列同步,則比較器輸出的是傳輸誤碼;若兩個m序列不同步,則比較器輸出的是由失步造成的誤碼。由于失步造成的誤碼較大(根據m序列的特性,其誤碼率應為0.5),因此可根據誤碼率門限來區分檢測系統是否失步。若失步,則讓本地m序列發生器等待一個時鐘周期,再依次逐位比較,并逐位控制本地m序列發生器的等待時間,直到兩序列完全同步為止。
3 硬件設計
    本系統用單片機作為主控芯片,由FPGA完成誤碼測試的工作,將得到的誤碼信息傳送給單片機,單片機進行誤碼率的計算后送液晶屏進行顯示。m序列的發送和接收都是通過RS485接口進行的。本系統單片機選用的是51系列的STC89LE58RD+,3.3 V供電,可以減小系統功耗。FPGA選用了Xilinx公司的SPARTNANII-E系列的XC2S300E,其內部包括了30萬個邏輯門和其他豐富的資源,可以滿足本系統的需要。RS485接口芯片選用Analog Device公司的ADM4857,它是一款10 Mb/s碼率、全雙工的485接口芯片[3-4]。系統的硬件框圖如圖2所示。

4 軟件設計
    軟件部分是該系統功能實現的核心,主要包括了單片機和FPGA兩大部分。
    (1) 單片機軟件
  單片機作為該系統的主控芯片,主要完成FPGA通信控制、誤碼率計算、液晶顯示控制等功能。開機后,單片機控制系統進入掛起狀態,等待按下start按鈕。開始工作后,單片機每隔1 s向FPGA請求刷新1次誤碼數據,FPGA則將誤碼數據通過SPI總線傳送給單片機。單片機將取得的誤碼數據換算成誤碼率連同得到的系統傳輸延遲時間一起送到LCD顯示。單片機軟件的流程圖如圖3所示。

    (2) FPGA邏輯設計[5-6]
    本系統大部分功能通過FPGA實現,使用Verilog編寫程序。由于采用的是逐位比較式方案,因此,首先由m序列產生模塊產生4.096 Mb/s碼率的m序列,送入反相器作為源端。反相器是為了人為產生誤碼而設置的。當按下按鍵時,反相器使能,將m序列1位反相后輸出,即相當于產生了1個誤碼。m序列和時鐘同時輸出給被測系統,經被測系統后再返回給誤碼測試儀。誤碼測試儀對輸入的m序列和本地產生的m序列進行同步,同步以后,在固定寄存器中置入64位m序列數據。在源端,固定寄存器和移位寄存器不斷進行比較,直到兩者一致,則啟動延時計數器,同時接收端移位寄存器與固定寄存器進行比較,當兩者一致時關閉計數器,此時計數器中的數值即為被測系統的延時。另一方面,同步以后,開始進行誤碼統計。若在設置的測試周期內誤碼率大于設定的門限值,則認為失步,重新開始同步。最后,將誤碼數和系統延時數通過SPI接口送給單片機,進行誤碼率和系統延時的計算,將計算結果顯示在LCD上。SPI接口是通過軟件進行模擬的。整個FPGA內部的模塊框圖如圖4所示。

5 系統設計仿真
  對設計完成后的主要功能模塊進行了仿真以驗證其功能的正確性。
    (1) m序列產生器仿真
    本設計采用了23級m序列以確保偽隨機序列的特性,其本原多項式為f(x)=1+x5+x23,仿真波形如圖5所示。

    (2) SPI接口仿真
    FPGA與單片機之間采用SPI接口進行通信。外圍設備接口SPI通常有3~4條信號線,本文采用3線方式,即片選線SS、時鐘線SCK和數據線SDIO。SS為低時有效,在SCK的同步下傳送數據,仿真波形如圖6所示。
    (3) 系統仿真
  系統開始工作并正確同步后,開始誤碼和延時的統計。每當單片機發送1個請求數據信號,就送出當前的誤碼數和延時數,單片機進行計算后送顯示器顯示。系統仿真波形如圖7所示。

6 調試
 調試是整個設計實現的關鍵步驟。經過調試,最終實現了設計的所有功能。下面給出在設計和調試中的一些經驗教訓以供參考。
    (1) 51單片機的Port 1端口默認情況下沒有上拉電阻,因此需要特別注意。在調試初期就是因為沒有在外部加上拉電阻而導致與FPGA通信不正常。
    (2) RS485接口芯片對于差分線的輸入輸出阻抗匹配要求比較嚴格,需要根據手冊要求選擇合適的匹配電阻,否則會導致輸入輸出差分信號質量嚴重劣化,影響系統正常工作。
    (3) FPGA與單片機通信等功能需要特別注意時序的配合問題,否則可能導致通信不正常。可以通過選擇適當的觸發沿來調整時序。
  本文介紹了一種基于FPGA的RS485接口的誤碼測試儀的設計原理和實現過程。與傳統的誤碼測試儀相比,本誤碼測試儀具有原理簡單、接口獨特、可測試系統延時等特點。此外,由于FPGA良好的可擴展性,可以在不改變硬件電路的基礎上方便地增加或修改相應的功能,增加了系統的可擴展性。
參考文獻
[1]    曹志剛,錢亞生. 現代通信原理[M]. 北京:清華大學出版社,2001.
[2]    段吉海,黃智偉. 基于CPLD/FPGA的數字通信系統建模與設計[M]. 北京:電子工業出版社,2004.
[3]    Analog Devices Inc. ADM4850-7 Series Data Book[Z]. 2004.
[4]    牛思先,向征. 基于RS-422/485的串行異步通訊接口的設計和應用[J]. 計算機工程與設計,2007(10).
[5]    夏宇聞. Verilog數字系統設計教程[M]. 北京:北京航空航天大學出版社,2003.
[6]    王誠,薛小剛,鐘信潮,等. FPGA/CPLD設計工具Xilinx ISE 5.X使用詳解[M]. 北京:人民郵電出版社,2003.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩美女va毛片在线播放| 亚洲第一页综合图片自拍| 农民工嫖妓50岁老熟女| 人人看人人添人人谢| 国产精品第3页| 国产熟睡乱子伦午夜视频| 国产产一区二区三区久久毛片国语| 啊灬啊灬啊灬岳| 亚洲电影唐人社一区二区| 久久香蕉国产线看观看精品yw| 中文字幕日产无码| 99久久99视频| 韩国三级日本三级香港三级黄| 精品国产三级a| 欧美日韩精品一区二区三区不卡| 日韩精品无码久久一区二区三| 成人免费ā片在线观看| 无码人妻精一区二区三区| 天天摸天天做天天爽| 国产日韩美国成人| 免费黄色网址在线观看| 亚洲国产中文在线视频| 亚洲一区二区三区播放在线| 丰满饥渴老女人hd| 99j久久精品久久久久久| 青青国产在线视频| 青青青青草原国产免费| 精品国产高清久久久久久小说| 欧美成年黄网站色视频| 成人免费视频国产| 日本成本人三级在线观看2018| 天天干天天干天天插| 国产亚洲精品无码成人| 亚洲日本中文字幕天天更新| 中文字幕日韩人妻不卡一区| 1000部拍拍拍18勿入免费凤凰福利 | 91在线手机精品免费观看| 色费女人18毛片a级毛片视频| 欧美浮力第一页| 废柴视频网最新fcww78| 国产在线观a免费观看|