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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于SOPC的簡易誤碼率測試儀設計技術

          基于SOPC的簡易誤碼率測試儀設計技術

          作者: 時間:2009-03-02 來源:網絡 收藏

          設備上電后進入模式選擇,用戶根據需要設定模式,確認后,mode_reg設置完畢。隨后進入速率選擇,設置時鐘分頻器的數值,用以設置代碼發(fā)送速率。Control_reg提供了AM7968其他端口的設置。參數設置完畢后,設置好的代碼就配合設定好的時鐘頻率,通過通信端口發(fā)送出去了。
          需要特別說明的是循環(huán)代碼的發(fā)送過程。因為,在其他模式下,數據自發(fā)送開始就一直在數據總線上有效,只要控制好數據的發(fā)送脈沖信號即可;而循環(huán)代碼模式下,數據需要實時更新,且不能有遺漏和跳躍,因此特別設計了循環(huán)碼發(fā)生模塊。它以AM7968芯片的ACK信號作為循環(huán)代碼遞增的觸發(fā)信號。這是因為ACK信號是AM7968在數據發(fā)送完畢后立即發(fā)送的反饋信號。所以利用這個信號,就很好地保證了循環(huán)代碼的可靠性。
          (2)接收端設計
          如圖3所示,芯片AM7969是信號的接收端。在用戶設定了代碼模式后,AM7969的控制寄存器被配置為相應模式。之后設置誤碼計算模式,并將誤碼計數器復位,且設置好對應的對照代碼。

          AM7969芯片中的鎖相環(huán)時鐘生成器(PLL clockgenerator),可以從接收到的數據流中分離出時鐘信號和數據信號。
          由于線路傳輸存在延時問題,會使AM7969分離的時鐘相對于發(fā)送端AM7968的時鐘滯后。對比較器兩端的輸入來說,出現了不同步的情況。如果AM7969也利用本地系統(tǒng)時鐘,那么其接收到的數據就會紊亂。這種方法不可取。
          本系統(tǒng)采取發(fā)送同步序列的方式來進行同步。在測量開始后,發(fā)送端發(fā)送同步序列。在10 ms內(此時間閾值可進行設置),如果接收端沒有收到同步序列,則判定線路故障,無法正常測量;如果在時間閾值內收到同步序列,則立刻進入測試狀態(tài)。例如,當發(fā)送代碼A0后,接收端如果在時限內(時間閾值)收到信號,則進行比較,之后發(fā)送1個反饋信號Dstrb和1個數據A1,依此類推;如果接收端沒有收到信號,則系統(tǒng)將認為是誤碼丟失,記為誤碼,同時自行發(fā)送1個偽Dstrb,繼續(xù)測量。
          3.2 顯示模塊設計
          顯示部分采用了Visionox公司的VGGl2864E―S002、128×64點陣的單色圖形顯示模塊。該模塊有以下特點:亮度高,對比度高,視角寬,響應速度快,溫度范圍寬,功耗低;8位并行數據接口,讀、寫操作時序;模塊內藏64×64顯示數據RAM(RAM中每位數據對應OLED屏上一個點的亮、暗狀態(tài));接口電路簡單,使用方便。
          本設計通過VHDL語言編寫接口時序IP核控制器oled.VHD,使其作為Slave device連接到Avalon總線上,實現了數據顯示功能。
          3.3 設計
          圖4為在 Builder工作窗口中的該系統(tǒng)。

          其中,cpu_0為主Nios II處理器,cfi_flash_bridge_O為Avalon三態(tài)橋用來連接Flash IP核控制器cfi_flash_O,sdram是SDRAM IP核控制器,timer_O是Nios II內部定時器,oled_O是OLED IP核控制器,pio_0是按鍵外部引腳,am7968_2_O和am7969_2_0分別是用VHDL語言編寫的收發(fā)芯片AM7968和AM7969的1P核控制器。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();