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