基于CPLD的智能寬帶去邊沿抖動(dòng)技術(shù)
提出的原因
由上面總結的方法知,幾種方法都存在一定的不足。(1)利用了信號電平信息的去模擬抖動(dòng)方法不能用于去除數字信號的抖動(dòng);(2)模擬去抖動(dòng)方法中,平滑濾波的方法不能去除信號波動(dòng)偏大時(shí)產(chǎn)生的抖動(dòng),而兩個(gè)觸發(fā)器解決辦法則不能準確反應信號的正半周與負半周的比例,而且,對于單穩態(tài)觸發(fā)器方法需要針對不同頻率的信號采用不同的時(shí)間參數配置;(3)數字去抖動(dòng)方法中,RC濾波方法只能針對慢變信號,因為快變信號將被濾除或附加一定的相移P時(shí)延,而軟件設計的方法需要消耗大量的器件資源和時(shí)間資源,使得處理任務(wù)加重,這在有些時(shí)候是不容許的,對于優(yōu)化設計則需要長(cháng)期的經(jīng)驗才能有效避免。
總體上,上面的方法在每次設計時(shí)都將讓我們權衡利用,效果有時(shí)也不盡人意。我們這里提出的智能寬帶去抖動(dòng)的方法可以解決大部分的問(wèn)題,對模擬和數字信號產(chǎn)生的抖動(dòng)均有效。由于是基于CPLD硬件的設計,方便改進(jìn),還可事先不必確切知道哪個(gè)IPO口輸入的信號需要去抖動(dòng),同時(shí)不浪費其他硬件和軟件資源。在實(shí)際應用中可以針對可能產(chǎn)生邊沿抖動(dòng)的所有信號進(jìn)行去抖動(dòng)處理,只要器件資源足夠。
智能寬帶去抖動(dòng)原理
當我們需要進(jìn)行較復雜的電路設計時(shí),經(jīng)常用到可編程器件,這樣可以使得硬件軟件化。實(shí)際使用時(shí),可以針對引入的某個(gè)或幾個(gè)信號進(jìn)行去抖動(dòng)處理,使設計得到簡(jiǎn)化。當信號輸入CPLD時(shí),首先進(jìn)行去抖動(dòng)處理,形成規范的脈沖波形后再進(jìn)行后續信號處理。
無(wú)論是在模擬電路中還是在數字電路中形成的信號邊沿的抖動(dòng),最終在送入CPLD的數字脈沖信號上都有相同的表現特征:緊跟在真實(shí)上(下)邊沿后面有多個(gè)負(正)的虛假窄脈沖。因而在CPLD中我們可以采用相同的方法來(lái)進(jìn)行邊沿去抖動(dòng)處理。由于信號頻段不同,抖動(dòng)時(shí)間也會(huì )不同,正確處理的前提條件:(1)信號邊沿抖動(dòng)時(shí)間小于信號周期的四分之一;(2)信號頻率小于器件工作頻率的八分之一。第一條是防止實(shí)際邊沿界定不準,第二條是保證抖動(dòng)范圍可靠界定。對于頻率未知情況,可以對頻率進(jìn)行分段,配合少量軟件編程,針對信號頻段可以進(jìn)行智能分段處理。
具體實(shí)現時(shí),設置三個(gè)觸發(fā)器:上升沿檢測觸發(fā)器B、下降沿觸發(fā)器C以及波門(mén)定時(shí)觸發(fā)器D。其中,上升沿觸發(fā)器是在信號上升沿到來(lái)時(shí)變成高電平,下降沿觸發(fā)器是在信號下降沿到來(lái)時(shí)變成高電平,抖動(dòng)定時(shí)觸發(fā)器當前兩個(gè)觸發(fā)器是在前兩個(gè)觸發(fā)器之一變成高電平時(shí)變成高電平。前兩個(gè)觸發(fā)器在抖動(dòng)定時(shí)觸發(fā)器清零時(shí)同時(shí)被清零,而抖動(dòng)定時(shí)觸發(fā)器清零時(shí)間由信號頻率對應邊沿抖動(dòng)范圍決定。時(shí)序如圖4所示。其中,為觀(guān)察方便,下降沿觸發(fā)器變成高電平的時(shí)間拖后了一些。由圖可見(jiàn),輸入信號在前后沿均有雜亂的毛刺,用常規方法消除這種抖動(dòng)很困難,模擬去抖動(dòng)方法無(wú)能為力,常規的數字方法需要消耗軟件和硬件資源,而且容易形成誤操作,用我們的方法就很簡(jiǎn)潔。
A信號第一次電平變化時(shí)(t1時(shí)刻),出現上升沿,B觸發(fā)器開(kāi)始觸發(fā),同時(shí)引發(fā)D觸發(fā)器觸發(fā),第一次下降沿到來(lái)時(shí)(即第一個(gè)毛刺,t2時(shí)刻),C觸發(fā)器觸發(fā),在設定定時(shí)范圍內,三個(gè)觸發(fā)器均保持不變。定時(shí)結束時(shí)(t3時(shí)刻),D觸發(fā)器被清零,同時(shí)使B和C觸發(fā)器清零。從上面可以看出來(lái),只要t3時(shí)刻不超過(guò)t4時(shí)刻則不破壞原來(lái)信號的正負區間。
在A(yíng)信號實(shí)際下降沿到來(lái)時(shí)刻(t4時(shí)刻),相當于定時(shí)觸發(fā)器清零后第一次下降沿到來(lái)時(shí)刻,此時(shí)C觸發(fā)器又受到觸發(fā),同時(shí)引發(fā)D觸發(fā)器觸發(fā)。B觸發(fā)器在第一個(gè)毛刺到來(lái)時(shí)刻(t5時(shí)刻)得到觸發(fā),與前面相同。在這次定時(shí)沒(méi)有結束前三個(gè)觸發(fā)器變成不變,直到定時(shí)結束時(shí)刻(t6時(shí)刻),三個(gè)觸發(fā)器同時(shí)被清零。余下依此類(lèi)推。

圖4 去抖動(dòng)電路時(shí)序圖
最后,我們來(lái)看一下D觸發(fā)器波形,它在A(yíng)信號正半周期間正負變化一次,在A(yíng)信號負半周期間正負再變化一次,因此,只需用D觸發(fā)器的上升沿來(lái)觸發(fā)E信號,即可準確的恢復出沒(méi)有抖動(dòng)的A信號來(lái),如圖所示。如果A信號是周期信號,則E信號就是D信號的二分頻信號(注意用信號本身與D信號來(lái)對齊正半周就行)。
上面是有信號邊沿抖動(dòng)的情況的分析,現在再來(lái)看看信號沒(méi)有邊沿抖動(dòng)的情況??梢韵胂?,在t2到t3時(shí)刻期間C觸發(fā)器沒(méi)有觸發(fā),但B和D觸發(fā)器依然觸發(fā),因為A信號存在上升沿,在t5到t6時(shí)刻期間B觸發(fā)器沒(méi)有觸發(fā),但C和D觸發(fā)器仍然觸發(fā),因為A信號在t4時(shí)刻存在下降沿,由此可以看出,在這種情況下,D觸發(fā)器波形沒(méi)有改變,從而可以用同樣的方法得到E恢復信號。
當信號頻率變化(或根本不是周期信號,只是一個(gè)個(gè)脈沖群)時(shí),只要設置的波門(mén)定時(shí)范圍滿(mǎn)足前面提出的兩個(gè)條件,則仍然可以適用。如果在多倍頻程變化時(shí),由于信號邊沿抖動(dòng)寬度不一致,低端的抖動(dòng)范圍可能已經(jīng)超出了高頻端周期的一半,不能進(jìn)行準確還原,因此需要進(jìn)行分段處理。在輸入信號頻率完全未知的情況下,可以實(shí)際測量參數,根據最穩定的情況來(lái)確定分段的界限和參數,如果配合少量的軟件編程,提取信號穩定的段結果即可。這樣,就可以在很寬的頻帶內,自動(dòng)選擇頻段參數以正確進(jìn)行去抖動(dòng)處理。
評論