你的位置:首頁 > 測試測量 > 正文

利用CPLD數字邏輯和FPGA實現ADC

發(fā)布時間:2014-10-12 責任編輯:echolady

【導讀】用CPLD和FPGA在印制電路上將功能元件和存儲器、處理器粘合以其實現數字設計是工程師的強項。除了這項功能,CPLD和FPGA能夠使用簡單的電阻電容電路、CPLD或者FPGA數字邏輯單元、LVDS輸入來實現共模功能,構建數模轉換器。ADC在與數字邏輯連接時作為模擬功能塊存在。本文中詳細解析了利用FPGA和CPLD數字邏輯實現低頻率(DC至1K Hz)和高頻率(高達50K Hz)ADC。根據實例驗證語音通信系統(tǒng)中的頻率檢測。

低頻/最小邏輯ADC實現
 
在低頻/最小邏輯實現情況中,采樣控制模塊控制逐次逼近寄存器,相關的輸出信號隨時加到RC電路。因此RC電路的電壓上升或下降,以響應相關的輸出狀態(tài),輸出狀態(tài)是變化的。LVDS輸入比較模擬輸入與RC電路電壓的變化。因此,RC電路的電壓是用來“發(fā)現”模擬輸入電壓。圖2的例子中,靜態(tài)模擬輸入(由橙色虛線來表示)設置為不到整個輸入電壓范圍的一半。垂直的黑色虛線表示SAR采樣點之間的時鐘數目,用綠色虛線來表示。
 
第一次測量需要8個時鐘,下一次需要4個時鐘,等等類似。最初,通過在相關輸出上加邏輯“1”,RC電路被設置為模擬輸入的整個電壓擺幅的一半。一旦電壓達到這個點的一半,LVDS輸入的輸出將指示模擬輸入值是否高于或低于RC電路電壓。
 
如果模擬電壓較高,數字輸出的最高有效位是邏輯“1”。如果模擬電壓較低,則數字輸出為邏輯“0”。SAR移到下一位,采樣時間減半(為整個電壓擺幅的四分之一)。這個過程不斷重復,直到A/D轉換器達到所需的精度。在圖1中的例子中,觀察RC電路電壓是如何逐漸接近模擬輸入值。在這個簡單例子中,SAR(0101)的4位數字輸出展示在圖的底部。
 
利用CPLD數字邏輯和FPGA實現ADC
圖1:基于SAR的 A/D轉換器運作實例
 
低頻設計可以用來監(jiān)測幾個模擬電壓的電平,這些電平表示各種電源電壓和環(huán)境傳感器的輸出。CPLD實現可以監(jiān)控PCB的電源電壓(3.3V,2.5V和 1.8V),以及溫度和濕度傳感器和開放式機箱的報警。為測量多個模擬輸入,可針對每個模擬電壓連同附加的RC電路采用一個LVDS輸入。由于模擬電壓是緩慢改變的,LVDS輸出可多路復用,這樣在每個輸入之間就可以共享數字邏輯功能。
 
低頻/最小邏輯ADC的測試結果
 
無需可選數字濾波電路的低頻/最小邏輯電路已經用一塊*估板在萊迪思的MachXO CPLD上實現,并使用電壓范圍為0V至3.3V的0.8Hz輸入信號。如圖2所示,采用可選的存儲器緩沖區(qū)及萊迪思ispLEVER設計軟件的 Reveal Logic Analyzer功能。該功能將緩沖存儲器添加至目標設計,并加入控制數字信號采集、數據緩沖和通過JTAG電纜輸出數據到計算機所需的邏輯。在測試過程中,使用PScope軟件在捕獲的數據上運行FFT。該電路對0.8Hz模擬輸入的響應顯示在圖2的上半部分。
 
 
利用CPLD數字邏輯和FPGA實現ADC
圖2:A/D轉換器的結果實例:低頻和高頻選項
 
接收到的數字信號顯示在PScope屏的頂部窗口中。縱軸用來測量代碼步長(0到255),橫軸用來測量采樣(在這個例子中有1024個樣本)。在邊欄的右上角報告頻率,如f1(基本)頻率。FFT的結果顯示在窗口的下面,根據它們的dB水平通過縱軸顯示諧波頻率。從FFT產生的關鍵參數顯示在右下側欄,其中包括有效位數(ENOB)和信噪比(SNR)。這些結果表明,輸入信號已成功轉換為具有好的分辨率和信噪比的數字信號。
[page]
 
模數轉換器的實現
 
一個簡單的模數轉換器可以通過添加一個簡單的RC電路至FPGA或CPLD 的LVDS輸入來實現。正如圖1的左下角所示,RC網絡在LVDS輸入的一端,模擬輸入則在另一端。 LVDS輸入將作為一個簡單的模擬比較器,如果模擬輸入電壓高于RC網絡的電壓,將輸出數字“1”。通過改變RC電路的輸入電壓(來自FPGA/CPLD 的通用輸出),LVDS比較器可用于分析模擬輸入電壓,以創(chuàng)建一個準確的數字表示。
 
模擬至數字控制模塊可以用多種方式實現,取決于模擬輸入的頻率、所需的分辨率和可用的邏輯資源。用簡單的逐次逼近寄存器可以處理低頻信號,如圖3左上角的選項1。實現較高頻率的情況如圖3右上角所示,可以用 Δ-Σ調制器功能來實現,它由采樣寄存器和級連梳狀(CIC)濾波器組成。
 
一旦構建了數字信號,就可以對數字輸出進行可選的過濾,以去除任何由于系統(tǒng)噪音或反饋抖動所引入的不必要的高頻分量。在可選數字濾波模塊后面,可選的存儲器緩沖區(qū)可用于調試/測試目的。通過存儲緩沖器對數字輸出采樣,然后通過JTAG端口掃描輸出,到達運行信號分析軟件的個人計算機。
 
利用CPLD數字邏輯和FPGA實現ADC
圖3:模數轉換器基本框圖:低頻和高頻情況
 
實現更高頻率的ADC
 
圖 1右上角的較高頻ADC的前端仍然采用RC電路和LVDS輸入。過采樣觸發(fā)器捕獲LVDS輸入的比較結果。通過驅動RC電路的通用LVCMOS輸出反饋這個信號。如果比較器輸出為邏輯“1”,這意味著模擬輸入高于RC電路的電壓。邏輯“1”通過觸發(fā)器采樣,并反饋到RC電路,使RC電路的電壓上升。如果比較器輸出為邏輯“0”,反饋信號將為邏輯“0”,這將會使得RC電壓更低。通過這個簡單的反饋機制,數字值“跟蹤”模擬輸入頻率。
圖4的右下方展示了一個用紅色表示的采樣模擬輸入波形的示例,以及采樣觸發(fā)器的輸出:藍色的列代表一個邏輯“1”,白色列代表一個邏輯“0”。注意在通用脈沖編碼調制(PCM)格式中“1”和“0”的改變方式。
使用級聯(lián)積分梳狀(CIC)濾波器,PCM輸入數據可轉換成反映模擬輸入流頻率的輸出流。CIC的功能基本集成(增加或減少)單個位PCM信號,以生成所需比特數的連續(xù)輸出信號。在圖4下方的例子中,將藍色位視為一個“1”,白色位作為“-1”,可以清楚地看到,求和(積分)運算將產生輸入波形的數字表示。 (請注意,輸出波形將移位約半周期,因為一個“1”序列將對應數字值的增加,在圖4中, “1”序列在波形的“高”部分產生,而一系列“0”在波形的“低”部分產生。)
 
由于反饋環(huán)路的“跟蹤”過程,RC電路電壓可能圍繞模擬輸入電平擺動。當過采樣觸發(fā)器在“1”和“0”之間變化時,RC電路的電壓會從稍高于模擬輸入電平下降至稍低于模擬輸入電平。這個過程一直持續(xù)到模擬輸入電平發(fā)生變化。這種高頻率噪音可以通過使用可選的數字濾波器來消除。
 
利用CPLD數字邏輯和FPGA實現ADC
圖4:Δ-Σ調制器的轉換階段的結果
 
較高頻率的設計可以監(jiān)測多個用于工作和環(huán)境狀況通信的音頻附加信號。例如,可定期發(fā)出5k和12K Hz信號,以指示遠程音頻監(jiān)控系統(tǒng)的狀態(tài)。這些信號可以指示設備的環(huán)境情況(溫度和濕度)。正如前面的例子,通過簡單地添加更多的LVDS輸入,可以支持多路模擬信號。該設計可作為8個模擬信號的中心。通過時分多路復用輸入,僅需要使用一個數字邏輯的副本。
 
利用CPLD數字邏輯和FPGA實現ADC
 
較高頻率的ADC測試結果
 
較高頻率的ADC電路已用*估板在Lattice XP2-17 FPGA上實現。測試期間使用具有0V至3.3V擺幅的15K Hz輸入信號。使用方案選項2的電路來處理模擬信號,圖2所示的方案選項2使用數字濾波器。結果顯示在圖1的下半部分,窗口的上方顯示接收信號,FFT在底部,F1頻率為15.1K Hz。下邊欄的結果給出9情況下的 ENOB以及61 dB的信噪比。這些結果表明,輸入信號已成功轉換為具有良好分辨率和信噪比的數字信號。

結語:經過實驗證明,利用FPGA和CPLD數字邏輯能夠成功實現ADC,測試結果表明輸入信號成功轉換為具有良好分辨率和信噪比的數字信號。

相關閱讀:

專家支招:如何“消滅”ADC噪聲?
電子工程師筆記:高速ADC設計中的PCB布局布線技巧
有效降低整個ADC信號鏈路功耗的設計指要
要采購轉換器么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索
?

關閉

?

關閉