基于移動平均數(shù)原理的簡易誤差補(bǔ)償電路
David Vincenzoni,意法半導(dǎo)體研發(fā)設(shè)計(jì)工程師
前言
有時候我們需要進(jìn)行某一個特定量級的測量,但是噪聲或偶發(fā)干擾引起的數(shù)據(jù)錯誤可能會影響測量。假設(shè)我們有一個參數(shù)測量電路,偶爾會記錄一個錯誤數(shù)值,這時我們就要以某種方式對測量值進(jìn)行“過濾”,濾除記錄值中的錯誤數(shù)值。
本文將介紹一個能夠在噪聲環(huán)境中減少或?yàn)V除偶發(fā)錯誤測量值的數(shù)字電路。
智能移動平均數(shù)
延遲線(DL)電路是一個廣為人知的概念,是一個可將電信號延遲一段時間的邏輯元件。從DDR SDRAM (雙倍數(shù)據(jù)率同步動態(tài)隨機(jī)存取存儲器)到DLL(延遲鎖相環(huán)),延遲線的應(yīng)用范圍十分廣泛。在DL延遲線模塊內(nèi),為生成一個確定性移相信號,我們需要設(shè)定邏輯元件的延時,并調(diào)整延時設(shè)置,以補(bǔ)償制程、電壓和溫度(PVT)對測量值的影響。
圖1: 延遲線示例
圖 1給出一個預(yù)定數(shù)量的延遲單元構(gòu)成的延遲線電路和通過配置字實(shí)現(xiàn)的反饋通道(Dfb)的示例,通過延遲配置字,可以在Din引腳輸入信號和Dout引腳輸出信號之間設(shè)定所需 延時。每個延遲單元在Din和Dl兩個引腳之間生成固定的通道延時。
我們可以通過多種方式計(jì)算符合理想延遲要求的配置字,計(jì)算已知時鐘延長一個周期所需延遲單元的數(shù)量就是其中一種方法。確定一個延遲單元的延時不難。圖2所示是這種計(jì)算方法的原理;ClkIN 是已知時鐘信號,輸出是延長一個周期的ClkIN信號。這個模塊的輸出(延遲單元的數(shù)量)用于確定延遲線的配置,如圖1所示。
圖2: 延遲配置字計(jì)算示例
如果噪聲或干擾在ClkIN上引起尖峰,測量精確度將會受到錯誤數(shù)據(jù)的影響。眾所 周知,錯誤的設(shè)置可能導(dǎo)致延遲線電路暫時性功能紊亂。假設(shè)在一段時間內(nèi),參考周期比標(biāo)稱值小很多或大很多,輸入延長線的新計(jì)算值將會與以前的數(shù)值有很大差異。圖1所示的DL將會生成一個錯誤信號,被隨機(jī)抖動信號吸收。
圖3中的示例描述了當(dāng)參考時鐘ClkIN有一個大的峰對峰抖動脈沖時所發(fā)生的情況,這時延遲單元數(shù)量的計(jì)算值不同于標(biāo)稱值。
圖3: ClkIN上的尖峰信號和錯誤延遲計(jì)算示例
對于這種問題,我們可以使用一個數(shù)字錯誤補(bǔ)償電路,通過智能方式計(jì)算這些數(shù)據(jù)的移動平均數(shù)。查看圖3示例中延遲計(jì)算值,錯誤數(shù)據(jù)(delay=15和delay=12)可以忽略丟棄,因?yàn)檫@些計(jì)算值遠(yuǎn)遠(yuǎn)小于平均數(shù),同時可以使用新的采樣的平均數(shù)delay=30更新上一個平均數(shù)。
移動平均數(shù)的原理(圖4)是采集N個最新的測量值 ,然后計(jì)算這些數(shù)值的平均數(shù)。只有新數(shù)據(jù)值與上一次N個采樣的實(shí)際平均數(shù)差別不是很大時,新數(shù)據(jù)才會加進(jìn)緩沖電路(Sx)。
圖4: 智能移動平均數(shù)電路
圖 4所未的有限狀態(tài)機(jī)(FSM)可以精確地管理這項(xiàng)任務(wù),檢查每個新校準(zhǔn)值,并將其與此時的平均數(shù)最大值和最小值進(jìn)行對比。當(dāng)新數(shù)值在設(shè)定范圍外時,新數(shù)據(jù)將被濾除,不加進(jìn)移動平均數(shù)內(nèi)。
顯然這個電路是取模運(yùn)算,但是保留已存儲采樣數(shù)量(Sx)的二次冪才是使運(yùn)算邏輯最小化的最佳設(shè)置,這樣可以最大限度減少加法器元件數(shù)量,節(jié)省通用除法器。新輸入數(shù)據(jù)向右移兩位,執(zhí)行除四運(yùn)算,零成本。
用于保存采樣的緩沖器(Sx)的容量是M-2,這里M 代表輸入數(shù)據(jù)總線位寬。該電路是由三個有進(jìn)位功能的全加器組成,運(yùn)算結(jié)果被有限狀態(tài)機(jī)用于檢查新輸入數(shù)據(jù)。
有限狀態(tài)機(jī)就是為該電路帶來一些智能的邏輯電路。圖5所示是有限狀態(tài)機(jī)的流程圖。
圖5: 智能移動平均數(shù)FSM
在啟動時,因?yàn)楸容^點(diǎn)沒有平均值可用,所以第一個數(shù)據(jù)保存在Sx緩沖器內(nèi),代表初始瞬態(tài)值。當(dāng)緩沖器寫滿數(shù)據(jù)時,開始計(jì)算平均值。當(dāng)時鐘頻率高時,數(shù)據(jù)通道可能受到應(yīng)力,為避免這個問題,可以加進(jìn)一個小的計(jì)數(shù)器延遲。圖 5所示的AVERAGE代表穩(wěn)態(tài)。這里有限狀態(tài)機(jī)在等待一個新的數(shù)據(jù)點(diǎn),該數(shù)據(jù)點(diǎn)將與下一個狀態(tài)上的平均值CHECK DATA對比。從硬件角度看,比較任務(wù)量不大,而且對濾除錯誤采樣很有效。數(shù)據(jù)比較過程與我們要測量的數(shù)據(jù)有關(guān)。當(dāng)數(shù)據(jù)受到PVT影響時,例如,本文討論的延遲線,因?yàn)橹饕菧囟茸兓绊憯?shù)據(jù),所以數(shù)值變化比較小。在這種情況下,我們預(yù)計(jì)新輸入數(shù)據(jù)與前一個平均數(shù)和最新四個數(shù)據(jù)的平均值差別不大。對于這種特殊情況,可以采用下面方式完成數(shù)據(jù)比較過程:
·只比較最高有效位
·如果這部分與平均值相差不太大,新數(shù)據(jù)將被保存,同時平均值也會相應(yīng)地更新
·如果這部分與平均值相差太大,新數(shù)據(jù)將被丟棄,平均值保持不變。
圖6給出一個比較表的示例。新輸入數(shù)據(jù)的可能取值范圍分成四部分,只有最高有效位用于數(shù)據(jù)比較,某些情況還需要檢查第三位。當(dāng)新數(shù)據(jù)的最高有效位是“00”時,前四個采樣平均值的最高有效位在“00”和“01”之間是可以接受的。否則,新輸入數(shù)據(jù)將被丟棄。同樣,當(dāng)輸入數(shù)據(jù)是“01”、“10、”、“11”時,新輸入數(shù)據(jù)將被丟棄。
圖6: 數(shù)據(jù)比較方法
結(jié)論
本文討論一個能夠?yàn)V除邏輯電路輸入數(shù)據(jù)受到各種干擾的數(shù)字電路,例如,濾除本文討論的延遲線輸入信號受到的干擾。這個智能移動平均數(shù)電路有助于降低干擾影響,不只是計(jì)算平均值,還能濾除可能嚴(yán)重影響移動平均數(shù)的錯誤采樣,錯誤采樣濾除規(guī)則取決于輸入數(shù)據(jù)的預(yù)計(jì)變化速率。在本文中我們看到,如果影響數(shù)據(jù)的因素是溫度,我們預(yù)計(jì)采樣變化率很小,在這種情況下,比較邏輯簡單,元件數(shù)量少。
計(jì)數(shù)平均數(shù)所需的元件數(shù)量還取決于錯誤數(shù)據(jù)的發(fā)生率;如果只是偶發(fā)錯誤,平均數(shù)邏輯單元數(shù)量就會少些(例如,圖4);如果偶發(fā)錯誤發(fā)生率高,則必須提高緩沖器容量,使用8個或16個元件。
評論