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

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Xilinx Spartan-6的高速接口設計

          基于Xilinx Spartan-6的高速接口設計

          作者:繆永龍時間:2013-02-26來源:電子產品世界收藏

            隨著網絡帶寬的不斷增加和數據率的不斷提高,單端互聯的方式由于噪聲等的影響已經不能滿足設計的要求。在高速數據通信系統中,由于(低壓差分信號)有著良好的抗干擾能力而被廣泛使用。然而由于許多MCU和DSP不支持標準的信號而使得接口設計復雜且難于調試。本設計模塊采用 FPGA進行高速接口設計,電路簡單,調試方便,且在某醫療器械中得到了應用。

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

            是美國國家半導體公司(編者注:2011年被TI收購)為了克服傳統數據傳送模式功耗大、抗干擾能力差而提出的一種新的接口標準,LVDS又由于參考電壓的不同可分為: LVDS_25, LVDS_18, LVDS_33。且為了保證信號的完整性,LVDS信號通常需要在傳輸線上添加100歐姆的匹配電阻。

            在同步設計的過程中,我們通??梢詫r鐘同步的方式分為三種:系統同步方式,源同步方式和嵌入式時鐘同步方式。系統同步方式通常是指由一個時鐘源產生時鐘并連接到多個需要同步的元件。在高速通信的過程中,系統同步方式會由于時鐘的抖動和偏斜,時鐘傳送的延遲等的影響而導致系統的時間裕留量的減少,從而導致系統無法工作。在高速通信過程中,我們通常采用源同步方式和嵌入式同步方式,嵌入式同步方式是通過特殊的編碼將系統的時鐘嵌入到需要傳送的數據當中,系統接收到該組數據以后再通過相應的解碼方式將時鐘提取出來用于系統的同步。嵌入式同步方式目前在高速數據通信中得到了廣泛的應用,如:ROCKET IO,PCIE等。

            源同步方式是指系統的同步時鐘是隨需要接收的數據一起發送過來,而不是系統自身產生。所以源同步方式的信號通常有兩對數據線:一對用于傳送數據,一對用于傳送時鐘。源同步的方式通常能達到1Gbit以上的數據傳送,因此源同步方式在高速數據通信中得到了較廣泛的應用。

            本模塊采用 LX45T接收以源同步方式發送過來的多路數據率為600Mbit/s、隨路時鐘為60MHz的信號,并與之通信。

            由 SerDes高速收發的原理可知,在此模塊中我們應當對高速的數據進行1:10的串并轉換,Xilinx提供SerDes原語進行串并轉換,并提供了一系列的參考設計,具體可從官網下載文檔XAPP1064。其中SerDes 原理可以大致概括如下:I/O從外部接收到兩對數據以后(分別為時鐘信號和數據信號):其中一對源同步時鐘信號(在此我將它稱之為 :TXCLK)通過IBUFGDS差分緩沖,變成單端時鐘信號,將該時鐘反相以后輸入到 IODELAY原語進行時鐘的延遲,其中時鐘的延遲由bitslib和一個狀態機進行控制,延遲的目的是使數據恰好能在時鐘的正中間進行采集,經過延遲控制以后的時鐘通過PLL和BUFPLL等進行處理,通過BUFG和BUFPLL以后有3或4個時鐘信號提供給數據部分,1.提供給I/O的高速時鐘(IOCLK);2.內部的并行的慢時鐘(X1和X2);3.用于同步的脈沖(SerDes STROB)。 其中的一對數據信號(我們稱其為TX),TX接收到發送端發送的數據以后,同樣經過IODELAY和SerDes等的一系列處理,并由BITSLIP控制每個數據鏈的延遲,使得數據最終能和時鐘的邊沿對齊,TX進行數據轉換的時鐘都是由TXCLK經過處理后得到的。

            數據的流程大致是這樣的(注:筆者只是將它進行了一些簡單的概括,更詳細的介紹可以參考官網的一些資料):圖1是我從官方下載的一個圖片,可以較清晰的概括SerDes接收原理:  



          關鍵詞: Xilinx LVDS Spartan-6

          評論


          相關推薦

          技術專區

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