基于PSoC 的嵌入式數(shù)字濾波技術(shù)
在定義關(guān)系密切的 PSoC3 和 PSoC5 系列產(chǎn)品時,賽普拉斯的架構(gòu)師決定不再在競爭激烈的市場中僅僅提供一款同質(zhì)化的產(chǎn)品。不管采取什么架構(gòu),硬件的功能都應重點用于高效地實現(xiàn)有用的工作目的。我們希望 PSoC 真正成為片上可編程解決方案,能夠解決實際客戶遇到的實際問題。
本文引用地址:http://butianyuan.cn/article/151226.htm為了給新一代 PSoC 器件提供更強的解決問題的功能,我們采用了一系列獨特的外設(shè)和信號處理塊,既有模擬的,也有數(shù)字的。本文將重點討論這些大幅簡化采集信號數(shù)字濾波工作的信號處理塊,并討論該技術(shù)已經(jīng)在其中證明自身實力的一些應用。
首先,我們?yōu)槭裁聪M褂?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/嵌入式">嵌入式濾波器而不是將信號處理指令集成到普通的微控制器中呢?究其原因就是項目設(shè)計層面和系統(tǒng)集成層面的分區(qū)問題。在項目開發(fā)過程中,項目的規(guī)模、目標和整體架構(gòu)經(jīng)常發(fā)生變化。單核單片式編碼項目要想跟上這種變化的速度,著實是一個挑戰(zhàn),尤其是目前的項目常常是由非集中化的多個不同設(shè)計團隊一起完成的,這更增加了相關(guān)的難度。在塊層所使用的功能元件中嵌入信號處理,能確保項目管理在元件設(shè)計層面實現(xiàn)分支,同時也能確保在算法改變時,信號處理負載發(fā)生的差異不會影響通信管理等時間關(guān)鍵性任務。
數(shù)字濾波器塊 (DFB) 是首款PSoC3 和 PSoC5 系列產(chǎn)品中支持嵌入式數(shù)字濾波的硬件元素,這是一款連接于外設(shè)總線的小型數(shù)字濾波器引擎。實際上,它是存儲器、MAC、ALU 和微代碼控制庫的緊密組合,其 VLIW 架構(gòu)能支持不同的操作,如 24 位 x 24 位到 48 位乘法和加法等能以系統(tǒng)時鐘速率并行執(zhí)行,在 PSoC3 中的頻率可高達 67MHz,而在 PSoC5 中的頻率則可達 80MHz。數(shù)據(jù)和系數(shù)存儲在一對專門的本地 128x24 位存儲器中,并能在整個系統(tǒng)總線上進行存取。許多濾波拓撲都能在這一結(jié)構(gòu)上高效編碼。
配合嵌入式數(shù)字濾波應用 DFB 的是通用數(shù)字塊 (UDB) 陣列。它在多功能架構(gòu)中結(jié)合了 PLD 和數(shù)據(jù)路徑/ALU塊,既能用于數(shù)字數(shù)據(jù)源集和匯集連接,也能用于高時鐘速率重復結(jié)構(gòu),如級聯(lián)積分器/梳狀濾波器 (CIC) 和噪聲成形數(shù)字轉(zhuǎn)換器。
在 PSoC3 和 PSoC5 系統(tǒng)中如何使用嵌入式數(shù)字濾波
數(shù)字濾波器塊可通過幾種方式使用。PSoC Creator 中集成的濾波器設(shè)計工具支持拖放工作方式,將數(shù)字濾波包括到信號流程中來。啟動時 PSoC Creator 配套提供了專用的 FIR 濾波器“組件”,在系統(tǒng)中可以像其他塊一樣使用。該組件能對信號應用多種不同濾波器,既能單獨使用,也能組合使用。圖 1 顯示了該組件的屏幕截圖,從中我們看出它在 PSoC Creator 項目中的使用情況以及設(shè)置屬性的配置窗口。今后,更多濾波器拓撲和互動濾波器設(shè)計向?qū)н€將添加到 PSoC Creator中。
圖 1:PSoC Creator 中的標準 FIR 濾波器組件
與第一代 PSoC 產(chǎn)品一樣,我們的客戶和我們自己的系統(tǒng)工程師一直期待著全新 PSoC3和 PSoC5 應用的到來。PSoC 的核心理念一直是推出靈活的產(chǎn)品,支持在產(chǎn)品設(shè)計時還暫未設(shè)想到的全新應用。這種靈活性同樣適用于數(shù)字濾波器塊等功能塊。我們已經(jīng)用該塊開發(fā)了幾款定制應用,并作為組件實施于 PSoC Creator 原理圖中。由于信號處理與主 CPU 相分離,我們能通過一系列 Creator 組件實現(xiàn) IP 的重復使用,而全部設(shè)計人員都能共享這些組件。
使用 PSoC3/5 的高性能嵌入式濾波示例
“時間校正”濾波器——多相內(nèi)插
如果用 PSoC3 來滿足近期電表讀取應用的概念設(shè)計要求,我們需要補償單 Δ-Σ ADC 的通道間計時偏置,滿足多相電壓和電流多路復用的要求。如果不糾正上述時差的話,系統(tǒng)準確性就會在加載低功耗因數(shù)期間快速下降,而且在線路頻率高諧波的功耗估算也會出問題。
數(shù)字濾波器塊非常適用于 FIR 濾波器,我們用它來創(chuàng)建多相內(nèi)插濾波器。在我們的原型設(shè)計中共有四個通道,每個通道有 20 個抽頭 (tap)。該濾波器從單 ADC 獲得多路復用的數(shù)據(jù)流,將其“解包”為四個新的數(shù)據(jù)流,上述解包通道的信號延遲有差別,就好像信號同時被四個采樣 ADC 捕獲一樣,需要對采樣時間進行校正。圖 2 顯示了四輸入多路復用轉(zhuǎn)換器順序采樣相同(帶限)信號所得的四個數(shù)據(jù)集。
點擊看原圖
圖 2:ADC 的四個順序多路復用輸入獲得相同的信號……
圖 3 顯示了內(nèi)插濾波器系統(tǒng)的四個輸出,我們看到底層帶限波形在形狀和計時方面都已經(jīng)得到了準確重構(gòu)。這種方法使單個高品質(zhì) ADC 能滿足極高的計量準確性要求,支持各種相關(guān)功率因數(shù)和諧波頻率要求。這種方法對其他需要高效同時采樣的應用而言同樣適用。
點擊看原圖
圖 3:……嵌入式多相內(nèi)插濾波器消除了偏差。
用于功率計的其他濾波器
數(shù)字濾波器塊在我們的計量設(shè)計中還提供了另外兩種有用的濾波器功能。首先,為了支持“經(jīng)典”基本無功功率的準確計算,我們采用了計算機優(yōu)化的相移濾波器。大多數(shù)商業(yè)計量芯片都使用時間延遲或積分器來提供所需的 90 度相移。前一種方法的振幅特性曲線是平的,但在線路頻率值不準確時會造成相移不準。后一種方法會出現(xiàn)相反的問題,也就是說,相總是準確的,但振幅則會根據(jù)頻率出現(xiàn)變化,這樣導致的結(jié)果是它只能滿足要求最不嚴格的計量應用,但對其他應用都不適用。上述兩種方法對我們來說都不適用。
我們嵌入了在整個線路頻率范圍上都超出了最嚴格的無功功率準確度要求的 6 極點 IIR 濾波器(圖 4 和圖 5),從而避免使用會消耗整個系統(tǒng)處理功率的希爾伯特變換器方法。此外,我們的方法還具有低通特性,可大幅減弱電流波形中的諧波,使無功功率估算能獲得基本信息。
圖 4 和圖 5:頻率為 50Hz 的專用 n=6 嵌入式 IIR 精確正交生成器。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論