基于JESD204協(xié)議的高速串行采集系統(tǒng)
摘要 在通信設(shè)施、成像設(shè)備、工業(yè)儀器儀表等需要大量數(shù)據(jù)的系統(tǒng)中,要求數(shù)據(jù)轉(zhuǎn)換級提供越來越寬的分辨率和越來越高的采樣率。并行接口的物理布局和串行LVDS方法的比特率限制,給設(shè)計(jì)人員帶來技術(shù)障礙。文中基于Xilinx Vertx6 FPGA的GTX高速串行接口實(shí)現(xiàn)了JESD204B協(xié)議,有效地解決了傳統(tǒng)采集數(shù)據(jù)并行傳輸時(shí)的各種問題。
本文引用地址:http://www.ex-cimer.com/article/201610/306119.htm關(guān)鍵詞 高速串行接口;GTX;Xilinx VertX6;JESD204B
隨著轉(zhuǎn)換器分辨率和速度的提高,對更高效率接口的需求也隨之增長。JESD204接口可提供這種高效率,較之CMOS和LVDS接口產(chǎn)品在速度、尺寸和成本上更有優(yōu)勢。采用JESD 204的設(shè)計(jì)具有更高的接口速率,能支持轉(zhuǎn)換器的更高采樣速率。此外,引腳數(shù)量的減少使得封裝尺寸更小且布線數(shù)量更少,這些都讓電路板更容易設(shè)計(jì)并且整體系統(tǒng)成本更低JESD204標(biāo)準(zhǔn)經(jīng)過兩次更新,目前版本為B。由于該標(biāo)準(zhǔn)已為越來越多的轉(zhuǎn)換器供應(yīng)商、用戶以及FPGA制造商所采納,它被細(xì)分并增加了新特性,提高了效率和實(shí)施的便利性。此標(biāo)準(zhǔn)既適用于模數(shù)轉(zhuǎn)換器(ADC)也適用于數(shù)模轉(zhuǎn)換器(DAC),還可以作為FPGA的通用接口。
1 JESD204協(xié)議
JESD204B協(xié)議體系結(jié)構(gòu)可以分為物理層、鏈路層、傳輸層和應(yīng)用層其結(jié)構(gòu)原理框圖如圖1所示。
物理層實(shí)現(xiàn)高速串行信號的發(fā)送和接收完成數(shù)據(jù)串并、并串轉(zhuǎn)換以及編解碼處理。接口采用電流模式邏輯(CML)驅(qū)動器和接收器的差分對組成,通信速率定義在 312.5 Mbit ·s-1與3.125Gbit·s-1之間。差分電平定義為標(biāo)稱800 mV峰峰值、共模電平范圍是0.72~1.23 V。該鏈路利用8h/10b編碼采用嵌入式時(shí)鐘。這樣便無須額外的時(shí)鐘線路,避免了高速速率下傳輸數(shù)據(jù)與額外的時(shí)鐘信號對齊的復(fù)雜性。鏈路層負(fù)責(zé)編碼幀數(shù)據(jù)。校驗(yàn)數(shù)據(jù),添加幀的邊界和流量控制。鏈路層只發(fā)送和接收幀,并不需要知道幀的內(nèi)容。傳輸層的工作是將A/D采樣信息從數(shù)據(jù)流中提取出來。
2 JESD204B協(xié)議方案
2.1 Xilinx V6 FPGA
Virtex-6 FPGA是Xilinx公司推出的一塊高性能低功耗FPGA。其內(nèi)嵌8~72個千兆位收發(fā)器GTX。每個GTX收發(fā)器都集成了發(fā)射器和接收器功能,能以 480 Mbit·s-1~6.6 Gbit·s-1的數(shù)據(jù)速率運(yùn)行。通過采用基于FPGA邏輯的過采樣技術(shù),可支持較低的數(shù)據(jù)速率。每個GTX收發(fā)器都有大量用戶定義的特性和參數(shù),這些特性和參數(shù)可在器件配置器件定義,也有許多可以在運(yùn)行過程中進(jìn)行修改。GTX發(fā)射器實(shí)質(zhì)上是一款并串轉(zhuǎn)換器,輸出使用單通道差分電流模式邏輯(CML)信號,TXOUTCLK是進(jìn)行適當(dāng)相處的串行數(shù)據(jù)時(shí)鐘,可直接作為來自內(nèi)部邏輯的并行數(shù)據(jù)寄存器。輸入的并行數(shù)據(jù)由一個小型FIFO提供,可選擇使用 8b/10b、64b/66b算法對齊進(jìn)行修改,以確保足夠數(shù)量的跳變。輸出信號擺幅可通以通過程序設(shè)定,其預(yù)加重也可編程從而補(bǔ)償印刷電路板的損耗和其他互聯(lián)特性。將輸入的位差分信號轉(zhuǎn)換為并行字流位寬可為8、10、16、20、32或40??赏ㄟ^可編程均衡器,并使用FREF輸入對時(shí)鐘識別進(jìn)行初始化,無須圖例的時(shí)鐘線路。數(shù)據(jù)模式采用不歸零(NRZ)編碼,可通過選定的編碼方案確保充分的數(shù)據(jù)跳變。隨后使用RXUSRCLK時(shí)鐘將并行數(shù)據(jù)傳輸?shù)? FPGA邏輯中。
GTX接口眾多特性使其能夠方便地實(shí)現(xiàn)PCI—E、SATA、SAS等高速串行接口的物理層與鏈路層橋接??梢钥紤]使用GTX接口實(shí)現(xiàn)JESD204B協(xié)議,以正確解析JESD204B接口ADC轉(zhuǎn)化器發(fā)出的數(shù)據(jù)。
2.2 JESD204接口ADC轉(zhuǎn)換器
使用的ADC為TI公司生產(chǎn)的ADS42JB69,它是一款高線性、雙通道,16位,250 MSample·s-1的模數(shù)轉(zhuǎn)換器。該器件支持JESD204B串口,數(shù)據(jù)速率高達(dá)3.125 Gbit·s-1。經(jīng)緩沖的模擬輸入在大幅降低采樣保持毛刺脈沖能量的同時(shí),在寬頻率范圍內(nèi)提供統(tǒng)一的輸入阻抗,這使得它可以輕松地將模擬輸入驅(qū)動至極高輸入頻率。采樣時(shí)鐘分頻器可實(shí)現(xiàn)更靈活的系統(tǒng)時(shí)鐘架構(gòu)設(shè)計(jì)。此期間采用內(nèi)部抖動算法以在寬輸入頻率范圍內(nèi)提供出色的無雜散動態(tài)范圍(SFDR)。
2.3 協(xié)議的實(shí)現(xiàn)
協(xié)議的實(shí)現(xiàn)是完成對AD42JB69的A/D采樣數(shù)據(jù)進(jìn)行讀取。物理層完成了數(shù)據(jù)在線路上的傳輸,可以直接使用GTX與A/D相連實(shí)現(xiàn)。 A/D作為發(fā)送端FPGA作為接收端,鏈路層完成的主要功能是線路編碼和對控制字符的檢查。GTX接口內(nèi)嵌了8b/10b編解碼模塊和控制字符檢測模塊,可以方便地實(shí)現(xiàn)與JESD204B標(biāo)準(zhǔn)設(shè)備的對接。在FPGA中基于GTX實(shí)現(xiàn)JESD204B協(xié)議,其難點(diǎn)主要有時(shí)鐘的配置,以及對協(xié)議據(jù)幀的解析。
從時(shí)序圖可以看出,由A/D的采樣時(shí)刻到該時(shí)刻的采樣數(shù)據(jù)被FPGA接收到存在一個延時(shí)。
工程中需要滿足A/D采樣率200 MSample·s-1。AD42JB69的JESD204接口可以配置為四線模式和兩線模式。根據(jù)項(xiàng)目需求,應(yīng)該使用四線模式才能達(dá)到200 MSample·s-1的采樣要求。在四線模式下A/D的數(shù)據(jù)映射關(guān)系如表2所示。其中DA0、DA1、DB0、DB1分別接4個GTX接口。傳輸兩個 A/D轉(zhuǎn)換器采樣數(shù)據(jù)的高8位和低8位。因?yàn)椴蓸訒r(shí)鐘與傳輸時(shí)鐘一致,JESD204設(shè)備先將A/D采樣的數(shù)據(jù)進(jìn)行8b/10b編碼然后用與采樣頻率相同的時(shí)鐘將編碼后的數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換并發(fā)送給接收端。計(jì)算可得到發(fā)送線速度為2.0 Gbit·s-1。因此FPGA需要正確配置RXPLL_DIVSEL_REF、RXPLL_DIVSEL45_FB、TXPLL_DIVSEL_FB、 TXPLL_DIVSEL_OUT的值使GTX接收線速度能穩(wěn)定工作在2.0 Gbit·s-1。
2.4 數(shù)據(jù)幀解析的實(shí)現(xiàn)
在串行數(shù)據(jù)收發(fā)過程中如何判斷數(shù)據(jù)的邊界尤為關(guān)鍵,JESD204協(xié)議采用字同步和幀同步解決數(shù)據(jù)邊界問題。通過在數(shù)據(jù)流中插入控制字符完成字同步和幀同步。以下列出JESD204B中使用的控制字符以及他們的功能。FPGA通過對控制字符的正確解析可以完成時(shí)鐘恢復(fù)、數(shù)據(jù)邊界認(rèn)定,對齊等。
/K/=/K28.5/控制字符用來完成字同步。接收端可以通過拉低
使發(fā)送端持續(xù)發(fā)送/K28.5/控制字。當(dāng)接收端接收到連續(xù)的4個/K28.5/字符后字同步建立。此時(shí)FPGA作為接收端已經(jīng)完成了時(shí)鐘恢復(fù),Comma字符檢測。字同步建立以后進(jìn)行幀邊界確定。接收端拉高
后發(fā)送端停止發(fā)送/K/28.5/控制字,開始發(fā)送ILA幀。ILA幀的結(jié)構(gòu)如圖4所示,每個ILA幀包含4個多幀(Multi—Frame)。
/R/=/K28.0/做為每個多幀(Multi—Frame)的開始標(biāo)志。
/A/=/K28.3/用于串行數(shù)據(jù)流中的多幀(Multi—Frame)同步。作為多幀(Multi—Frame)的結(jié)束標(biāo)志。
/F/=/K28.7/用于串行數(shù)據(jù)流中的幀(Frame)同步,當(dāng)當(dāng)前幀的最后一個8位字節(jié)(Octet)等于前一幀的最后一個8位字節(jié)(Octet)時(shí)用/F/=/K28.7/控制字替換當(dāng)前幀的最后一個字節(jié)。
通過上述規(guī)則檢測K字符并將A/D采樣數(shù)據(jù)存入FIFO。當(dāng)完成了控制字符檢測后需要將A/D的采樣數(shù)據(jù)進(jìn)行拼接,因?yàn)槊柯稟/D轉(zhuǎn)換器都是以高低字節(jié)分開的方式傳輸數(shù)據(jù)的,因此要嚴(yán)格保證采樣時(shí)鐘的同步。系統(tǒng)使用兩級FIFO來對A/D采樣數(shù)據(jù)進(jìn)行緩存。第一級4個FIFO完成采樣數(shù)據(jù)高低字節(jié)的同步,其存儲深度為16 Byte,4個FIFO的時(shí)鐘分別接4個GTX的RXUSRCLK,當(dāng)FIFO存儲數(shù)據(jù)達(dá)到10時(shí)開始讀出數(shù)據(jù),這樣就能保證4個FIFO的輸出由一個時(shí)鐘同步。第二級FIFO作為數(shù)據(jù)緩存,為用戶邏輯提供簡單接口,深度為4 kByte。用戶邏輯接口有RD_CLK,RD_READY。當(dāng)FIFO存儲深度達(dá)到4 000時(shí)RD_READY信號拉高??梢酝ㄟ^判斷該信號開始讀取數(shù)據(jù)。RD_CLK需要>200 MHz,每次讀取4 kByte數(shù)據(jù)后再等待RD_READY信號有效,這樣循環(huán)就可以將A/D采樣數(shù)據(jù)連續(xù)地讀入到用戶邏輯。
3 實(shí)驗(yàn)分析
AD42JB69中包含了22個8位控制寄存器可以使用SPI接口對芯片的工作方式進(jìn)行靈活的配置??梢耘渲眯酒敵鲞f增碼、隨機(jī)碼、零 -交錯碼、正弦信號等多種測試碼源。這些測試碼源可以用于驗(yàn)證接口傳輸數(shù)據(jù)的正確性,實(shí)驗(yàn)選用遞增碼作為測試碼源方便發(fā)現(xiàn)錯誤,圖6所示為使用 Chipscope觀察FPGA接收到的遞增碼波形。
4 結(jié)束語
隨著傳送速率的不斷提高,并行傳輸技術(shù)中的同步碼串?dāng)_等問題越來越嚴(yán)重,已不能滿足高速數(shù)據(jù)傳輸?shù)囊?,成為工程?yīng)用瓶頸。筆者在分析FPGA中高速串行收發(fā)器CTX功能和JESD204協(xié)議后。實(shí)現(xiàn)了一種A/D采集數(shù)據(jù)的串行傳輸方式,解決了并行傳輸中遇到的問題。用Verilog語言編寫了 JESD204協(xié)議控制核,節(jié)省了工程成本。
評論