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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > JESD204B協(xié)議解析

          JESD204B協(xié)議解析

          作者: 時間:2016-12-20 來源:網(wǎng)絡 收藏

            在使用最新模數(shù)轉換器(ADC)和數(shù)模轉換器(DAC)設計系統(tǒng)時,我已知道了很多有關JESD204B接口標準的信息,這些器件使用該協(xié)議與FPGA通信。有一個沒有深入討論的主題就是解決ADC至FPGA 和FPGA 至DAC鏈路問題的協(xié)議部分,這兩種鏈路本來就是相同的TX 至RX系統(tǒng)。作為一名應用工程師,所需要的就是了解其中的細微差別,這樣才能充分利用JESD204B通過現(xiàn)有LVDS和CMOS接口提供的優(yōu)勢。

            有了JESD204B,無需再:

            ● 使用數(shù)據(jù)接口時鐘(嵌入在比特流中)

            ● 擔心信道偏移(信道對齊可修復該問題)

            ● 使用大量I/O(高速串行解串器實現(xiàn)高吞吐量)

            ● 擔心用于同步多種IC的復雜方法(子類1 和2)

            我們來考慮一種由ADC 等數(shù)字源向FPGA發(fā)送數(shù)字數(shù)據(jù)的簡單情況。在正確發(fā)送或接收數(shù)據(jù)之前,有幾件事必須要做,如圖1所示以及下文所說明的那樣。

            圖 1 JESD204B 協(xié)議狀態(tài)圖

            1. 代碼組同步(CGS)- 不需要接口時鐘,因此RX必須將其數(shù)位及字邊界與TX串行輸出對齊。RX 可向TX發(fā)送SYNC請求,讓其通過所有信道發(fā)送一個已知的重復比特序列,本例中每字符每K 是K28.5。確切的字符比特序列可在標準中找到。RX 將移動每個信道上的比特數(shù)據(jù),直到找到4個連續(xù)的K28.5字符為止。這時,它不僅將知道比特及字邊界,而且已經(jīng)實現(xiàn)了CGS。隨后,它會取消對SYNC的斷言,而TX和RX則都會進入下一個狀態(tài):初始信道對齊序列(ILAS)。

            2. ILAS - JESD204B 協(xié)議的一個良好特性可實現(xiàn)通過RX模塊中的一些FIFO/緩沖器吸收信道偏移。在實現(xiàn)CGS后,TX 可在每個信道上發(fā)送已知的字符幀集合,稱為信道對齊序列(以每字符每R K28.0 開始,以每字符每A K28.3 結束)。收到對齊序列后,RX 會對數(shù)據(jù)進行FIFO緩沖,直到所有信道都收到完整的對齊序列。由于已經(jīng)知道了整個序列,因此信道隨后可重新對齊,這樣每個信道上的任何信道偏移都可通過FIFO存儲器吸收,而且,信道隨后還可在相同的時間點、在RX 模塊內釋放該數(shù)據(jù)。這可緩解為串行解串器信道提供匹配布局的需求,因為信道偏移可通過FIFO存儲器吸收。

            3. 用戶數(shù)據(jù) - 在代碼組同步及信道對齊后,就可正確接收用戶數(shù)據(jù)。如果在該最后狀態(tài)時用戶數(shù)據(jù)無效,則需要重新啟動本過程,RX 會發(fā)送一個SYNC請求重新開始該過程。



          評論


          技術專區(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); })();