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