本文簡要介紹各種介面協定和標準,並提供有關在高速資料轉換器實現方案使用低壓差分訊號(LVDS)的應用訣竅和技巧。
資料傳輸介面/標準概覽
FPGA與ADC數位資料輸出的介面是一項常見的工程設計挑戰。此外,ADC使用各式各樣的數位資料樣式和標準,使這項挑戰更加複雜。對於通常在200MHz以下的低速資料介面,單倍數據速率(SDR)CMOS非常普遍:發送器在一個時脈邊緣傳送資料,接收器在另一個時脈邊緣接收資料。這種方式可確保資料有充足的時間完成建立,然後由接收器採樣。在雙倍數據速率(DDR)CMOS中,發送器在每一個時脈邊緣都會傳送資料。因此,在相同的時間內,它傳輸的資料量是SDR的兩倍;然而,接收器正確採樣的時序更加複雜。
並行低壓差分訊號(LVDS)是高速資料轉換器的常見標準。它採用差分訊號,每一位元均有P線和N線;在最新的FPGA中,其速度可達DDR 1.6Gbps或800MHz。並行LVDS的功耗低於CMOS,但所需的線數則是CMOS的兩倍,因而布線可能比較困難。LVDS常常用在具有源同步時脈系統的資料轉換器中,不過這並不是LVDS標準的一部分。在這種設定中,時脈與資料同相,並且與資料一同發送。如此,接收器就能使用該時脈更輕鬆地擷取資料,因為它知道資料傳輸何時發生。
FPGA邏輯的速度一般跟不上高速轉換器的匯流排速度,因此大多數FPGA具有串列器/解串器(SerDes)模組,用以將轉換器端的快速、窄頻序列介面轉換為FPGA端的慢速、寬頻平行介面。針對匯流排中的每個數據位元,此模組輸出2、4或8位元,但以1/2、1/4或1/8的時脈速率輸出,進而有效地將資料解串。資料由FPGA內部的寬匯流排處理,其速度遠低於連接到轉換器的窄匯流排。
LVDS訊號標準也用於串列鏈路,大部分是用在高速ADC上。當接腳數量比介面速度更重要時,通常使用串列LVDS。常常使用兩個時脈:資料速率時脈和幀時脈。並行LVDS部分提到的考量因素同樣適用於串列LVDS。並行LVDS不過是由多條串列LVDS線組成。
I2C使用兩條線:時脈線和資料線。它支援匯流排上的大量元件,而毋需額外的接腳。I2C是一種速度相對較慢的協定,工作頻率範圍為400kHz至1MHz。它通常用在慢速、小尺寸元件上。I2C也常常用作控制介面或資料介面。
SPI使用三條或四條線:時脈、資料登錄和資料輸出(4線),或者雙向資料登錄/資料輸出(3線)、晶片選擇(每個非主機元件使用一條線)。 可用晶片選擇的線有多少,SPI就能支援多少元件。它的速度可達約100MHz,通常用於控制介面和資料介面。
串列PORT(SPORT)是一種使用CMOS的雙向介面,每個方向使用一個或兩個資料接腳。對於非8%解析度,其可調字長能夠提高效率。SPORT支援分時多工(TDM),通常用在音訊/媒體轉換器和高通道數轉換器上。它提供每接腳約100MHz的性能。Blackfin處理器支援SPORT,FPGA上可直接實現SPORT。SPORT一般僅用於資料傳輸,但也可以插入控制字元。
JESD204是一種JEDEC標準,用於單一主機(如FPGA或ASIC等)與一個或多個資料轉換器之間的高速串列鏈路。最新規格提供每通道或每差分對最高3.125Gbps的速度。未來的版本可能提供6.25Gbps及更高的速度。通道採用8B/10B編碼,因而通道的有效頻寬降為理論值的80%。時脈嵌入資料流中,因此沒有額外的時脈訊號。多個通道可以結合在一起以提高輸送量,數據連結層協定確保數據完整性。在FPGA/ASIC中,為實現數據幀傳輸,JESD204需要的資源遠遠多於簡單的LVDS或CMOS。它明顯降低了接線要求,但要求使用更昂貴的FPGA,PCB布線也更加複雜。
一般建議
進行ADC與FPGA的介面設計時,下列一般建議會有所幫助。
1.接收器(FPGA或ASIC)使用外部電阻端接,而不採用FPGA內部端接,以免不匹配引起反射,致使超出時序預算。
2.如果系統使用多個ADC,請勿使用某個ADC的某個數位控制振盪器(DCO)。
3.布設連接到接收器的數位布線時,請勿採用大量轉接以使所有布線保持等長。
4.利用CMOS輸出端的串聯終端降低邊緣速率並限制切換雜訊。確認所用的資料格式(二進位補數或偏移二進位)正確。
採用單端CMOS數位訊號時,邏輯位準以大約1V/nS的速度移動,典型輸出負載為10pF(最大值),典型充電電流為10mA/位。應採用盡可能小的電容負載,使充電電流最小。這可以利用盡可能短的布線僅驅動一個閘極來實現,最好沒有任何過孔(Via)。在數位輸出端和輸入端使用阻尼電阻,也可以使充電電流最小。
阻尼電阻和電容負載的時間常數應為採樣速率週期的大約10%。如果時脈速率為100MHz,負載為10pF,則該時間常數應為10ns的10%,即1ns。這種情況下,R應為100Ω。為獲得最佳訊噪比(SNR)性能,1.8V DRVDD優於3.3V DRVDD。然而,當驅動大電容負載時,SNR性能會下降。CMOS輸出支援最高約200MHz的採樣時脈速率。如果驅動兩個輸出負載,或者布線長度大於1或2英寸,建議使用緩衝器。
ADC數位輸出應小心對待,因為瞬態電流可能會耦合回類比輸入端,導致ADC的雜訊和失真提高。
圖1所示的典型CMOS驅動器能夠產生很大的瞬態電流,尤其是驅動電容負載時。對於CMOS資料輸出ADC,必須採取特別措施以使這些電流最小,不致在ADC中產生額外的雜訊和失真。
典型示例
圖2顯示了一個16位元並行CMOS輸出ADC的情況。每路輸出有一個10pF負載,用以模擬單閘負載加上PCB寄生電容;當驅動10pF負載時,各驅動器產生10mA的充電電流。
因此,該16位元ADC的總瞬態電流可能高達16×10mA=160mA。在各資料輸出端增加一個小串聯電阻R,可以抑制這些瞬態電流。應適當選擇該電阻的值,使RC時間常數小於總採樣週期的10%。如果fs=100MSPS,則RC應小於1ns。C=10pF,因此最佳的R值約為100Ω。選擇更大的R值可能會降低輸出資料建立時間性能,並干擾正常的資料擷取。CMOS ADC輸出端的電容負載應以單一閘負載為限,通常是一個外部資料擷取暫存器。任何情況下都不得將資料輸出端直接連到高雜訊資料匯流排,必須使用一個中間緩衝暫存器,使ADC輸出端的直接負載達到最小。
圖3顯示了CMOS中的一個標準LVDS驅動器。標準電流為3.5mA,共模電壓為1.2V。因此,當驅動一個100Ω差分終端電阻時,接收器各輸入的擺幅為350mV p-p,這相當於700mV p-p的差分擺幅。這些數值來源於LVDS規範。
LVDS標準有兩個:一個由ANSI制定,另一個由IEEE制定。雖然這兩個標準類似且大致相容,但並不完全相同。圖4比較了這兩個標準的眼圖和抖動長條圖。IEEE標準LVDS的擺幅為200mV p-p,低於ANSI標準的320mV p-p,這有助於節省數位輸出的功耗。因此,如果IEEE標準支援目標應用及與接收器的連接,建議使用IEEE標準。
圖5比較了布線長度超過12英寸或30公分情況下的ANSI和IEEE LVDS標準。圖5中的驅動電流均採用ANSI版標準。圖5(b)中,輸出電流加倍,這可以淨化眼圖並改善抖動長條圖。
圖6顯示了在FR4材料上長布線的影響。a圖顯示了發送器端的理想眼圖。在距離40英寸的接收器端,眼圖幾乎閉合,接收器難以恢復資料。
圖7中,資料位元的Visual Analog數字顯示,第14位元從未跳變。這可能顯示元件、PCB或接收器有問題,或者無符號資料不夠大,無法使最高有效位元跳變。
圖8顯示了上述數位資料(其中第14位元未跳變)的頻域視圖,並說明了第14位元有意義,系統中的某個地方發生錯誤。
圖9為相同資料的時域曲線。它不是一個平滑的正弦波,資料發生偏移,波形中多個點處有明顯的尖峰。
圖10所示不再是丟失一位元的情況,而是兩位元短接在一起,因此對於這兩個接腳,接收器始終接收到相同的資料。
圖11顯示了兩位元短接在一起時的頻域視圖。雖然基頻非常清楚,但雜訊基底明顯高於預期。雜訊基底失真的程度取決於短接了哪兩個位元。
在圖12所示的時域圖中,問題相對不明顯。雖然在波峰和波谷處損失了一些平滑度,但當採樣速率接近波形頻率時,這是常見現象。
圖13顯示了一個因建立/保持問題而導致時序無效的轉換器的情況。上述錯誤一般會在資料的每個週期中出現,而時序錯誤則不然,通常並不是持續存在。不太嚴重的時序錯誤可能是間歇性的。這些圖顯示了不符合時序要求的資料擷取的時域和頻域曲線。注意,各週期的時域錯誤並不一致。還應注意FFT/頻域的雜訊基底有所提高,這通常表示有一位元丟失,原因可能是時序對齊錯誤。
圖14則是圖13所示時域時序誤差的放大圖。同樣應注意,各週期的錯誤並不一致,但某些錯誤會重複。例如,該圖中有多個週期的谷底上出現負尖峰。 本文探討了用於連接FPGA和ADC的標準介面,包括SPI、I2C、SPORT、LVDS和JESD204A。隨著資料速率進一步提高,FPGA與ADC的介面仍舊是一項常見的挑戰。JESD204B支援12.5Gbps,JESD204C則支援32Gbps,實現這些高資料速率需要進行精心設計。
(本文由ADI提供)