<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 一種基于FPGA的高速誤碼測(cè)試儀的設(shè)計(jì)

          一種基于FPGA的高速誤碼測(cè)試儀的設(shè)計(jì)

          作者: 時(shí)間:2011-09-20 來源:網(wǎng)絡(luò) 收藏

          摘要:儀是檢測(cè)通信系統(tǒng)可靠性的重要設(shè)備。傳統(tǒng)的儀基于CPLD和CPU協(xié)同工作,不僅結(jié)構(gòu)復(fù)雜,價(jià)格昂貴,而且不方便攜帶?;?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/FPGA">FPGA的高速儀,采用來完成控制和測(cè)試模塊的一體化設(shè)計(jì),提高了系統(tǒng)功能擴(kuò)展性和系統(tǒng)的集成度,使得各個(gè)功能模塊在不改動(dòng)硬件電路的情況下可以相應(yīng)變化。在發(fā)送端發(fā)送m序列作為測(cè)試數(shù)據(jù),其測(cè)試速率最高可達(dá)到155 Mh/s。由于將物理層上的各協(xié)議層的功能集中到內(nèi)部實(shí)現(xiàn),減少了硬件和軟件的設(shè)計(jì)復(fù)雜度,并且縮短了系統(tǒng)的開發(fā)的周期,具有可升級(jí)的特點(diǎn)。
          關(guān)鍵詞:高速誤碼測(cè)試儀;現(xiàn)場(chǎng)可編程門陣列;Vetilog硬件描述語(yǔ)言;模塊圖元;仿真;M序列碼

          誤碼分析儀作為數(shù)字通信系統(tǒng)驗(yàn)收、維護(hù)和故障查詢的理想工具,廣泛應(yīng)用于同軸電纜、光纖、衛(wèi)星及局間中繼等符合CEPT(European Confence of Postal and Telecommunications Administrations)數(shù)字系列通信系統(tǒng)傳輸質(zhì)量的監(jiān)測(cè)。評(píng)價(jià)一個(gè)通信系統(tǒng)的可靠性的指標(biāo)就是檢測(cè)該通信系統(tǒng)在數(shù)據(jù)傳輸過程中誤碼率的大小,本文設(shè)計(jì)的高速信號(hào)誤碼測(cè)試儀,用于對(duì)EPON中接收和發(fā)送突發(fā)光信號(hào)的接收模塊的可靠性進(jìn)行檢測(cè)。目前誤碼分析儀的工作模式已發(fā)展到如下4種:分析儀模式、發(fā)生器模式、分析儀/發(fā)生器模式、直通模式。本設(shè)計(jì)中的誤碼測(cè)試儀屬于第3種類型,即該誤碼測(cè)試儀可以產(chǎn)生測(cè)試的碼流,又可以進(jìn)行誤碼測(cè)試。
          誤碼測(cè)試儀主要由發(fā)送模塊,接收模塊,顯示模塊,控制模塊等幾個(gè)模塊組成,系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。其中發(fā)送、接收模塊在FPGA中實(shí)現(xiàn),控制模塊由單片機(jī)實(shí)現(xiàn),顯示模塊由單片機(jī)驅(qū)動(dòng),這樣使得設(shè)計(jì)的誤碼分析儀具有體積輕巧,接口豐富,簡(jiǎn)單易用,成本低廉,內(nèi)核可升級(jí)等特點(diǎn)。

          本文引用地址:http://www.ex-cimer.com/article/191002.htm

          a.JPG



          1 基于FPGA的誤碼測(cè)試
          FPGA在該設(shè)計(jì)中實(shí)現(xiàn)了誤碼測(cè)試儀的核心功能,F(xiàn)PGA設(shè)計(jì)使用的是自頂向下模塊化的設(shè)計(jì)方法?;贔PGA設(shè)計(jì)的模塊包括:SY87739L頻率計(jì)的控制模塊、SY87700時(shí)鐘提取控制模塊、計(jì)數(shù)模塊、偽隨機(jī)序列發(fā)送模塊、數(shù)據(jù)接收模塊、與單片機(jī)的通信模塊。
          1.1 頻率合成芯片SY87739L的控制模塊
          在設(shè)計(jì)中SY87739L合成的頻率用于偽隨機(jī)序列合成的同步時(shí)鐘,因?yàn)樵撜`碼測(cè)試儀可以測(cè)試的頻率有32 Mb/s、64 Mb/s、122 Mb/ s、155 Mb/s 4種。所以該芯片要根據(jù)設(shè)置的參數(shù)合成相應(yīng)的頻率。具體合成哪一個(gè),由FPGA來實(shí)現(xiàn)對(duì)SY87739L的控制。
          SY87739L(規(guī)程式透明3.3 V 10~729 MHz分?jǐn)?shù)N合成器)是一個(gè)頻率合成芯片。依照一參考頻率源,它可以合成10~729 MHz范圍內(nèi)的差分頻率。此外它可以精確地為標(biāo)準(zhǔn)的傳輸協(xié)議合成相應(yīng)的參考頻率。SY87739L合成的頻率是由一個(gè)32位的串行輸入的編程數(shù)據(jù)決定。PROGCS為高電平時(shí),編程數(shù)據(jù)才會(huì)被SY87739L接收。若用戶需要改變編程數(shù)據(jù)獲得一個(gè)新的頻率時(shí),應(yīng)先將PROGCS設(shè)置為高電平,延時(shí)一段時(shí)間(待32 bit編程數(shù)據(jù)被SY87739L接收)后在回落到低電平。既在PROGCS的下降沿時(shí),SY87739L會(huì)由前一時(shí)段接收到32 bit編程數(shù)據(jù)決定合成新的頻率。具體步驟如下:1)確定編程數(shù)據(jù)的值;2)設(shè)置PROGCS為高電平;3)串行輸入32 bit編程數(shù)據(jù)(由PROGDI管腳輸入),同時(shí)在PROGSK端輸入時(shí)鐘信號(hào);4)設(shè)置PROGCS為低電平;5)等待LOCKED跳為高電平。
          根據(jù)SY87739L的工作原理,可以用硬件語(yǔ)言編寫出SY87739L的控制代碼,圖2是由Verilog代碼用Synplify Pro8.1綜合出的圖元。

          b.JPG


          該模塊控制SY87739L合成32 M頻率功能仿真結(jié)果(由ModelSim SE6.1仿真)如圖3所示。

          c.JPG


          測(cè)試文件中給DATA-I賦值為00000001,可以觀察出prog_di串行輸出的編程數(shù)據(jù)為0000_01100_01101_0100_000_10001_101_101;prog_cs在prog_di有效編程數(shù)據(jù)輸出為高電平,待編程數(shù)據(jù)輸出結(jié)束后回落到低電平:PROGSK輸出SY87739L的編程時(shí)鐘。經(jīng)分析可以看出SY87739L控制模塊可以實(shí)現(xiàn)預(yù)想的功能。
          1.2 時(shí)鐘提取芯片SY87700V的控制模塊
          SY87700V對(duì)FPGA接收的數(shù)據(jù)進(jìn)行時(shí)鐘提取和數(shù)據(jù)恢復(fù)。將恢復(fù)的數(shù)據(jù)與接收端產(chǎn)生的本地偽隨機(jī)序列進(jìn)行對(duì)比,實(shí)現(xiàn)誤碼檢測(cè),兩數(shù)據(jù)流對(duì)比時(shí)以提取的時(shí)鐘為同步時(shí)鐘。SY87700V在提取數(shù)據(jù)前要預(yù)知提取的頻率的范圍,此頻率范圍由FPGA發(fā)送給SY87700V。SY87700V的參考時(shí)鐘是否進(jìn)行分頻,也要根據(jù)設(shè)置的參數(shù)由FPGA控制。此外該模塊還要實(shí)現(xiàn)FPGA讀取SY87700V的功能,以確定SY87700V是否完成時(shí)鐘提取及數(shù)據(jù)恢復(fù)。根據(jù)SY87700V的工作原理,可以用硬件語(yǔ)言Verilog編寫程序在FPGA實(shí)現(xiàn)控制SY87700V的模塊,圖4是由代碼綜合出的圖元。

          i.JPG


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();