• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關 閉

    新聞中心

    EEPW首頁 > 工控自動化 > 設計應用 > Stellaris系列微控制器的ADC過采樣技術(一)

    Stellaris系列微控制器的ADC過采樣技術(一)

    作者: 時間:2012-06-29 來源:網絡 收藏

    Luminary Micro的部分產品中提供了模數轉換器()模塊。的硬件分辨率為10位,但由于噪音和其它使精度變小的因素的影響,實際的精度小于10位。本應用文檔提供了一個基于軟件的過,從而使轉換結果的有效位數(ENOB)得到了改善。文檔中描述了對輸入信號執行過的方法,以及在精度和整個系統性能上的影響。
    過采樣,顧名思義就是從輸入信號中采集額外的轉換數據。模擬信號采樣的標準約定指出:采樣頻率fS至少是輸入信號的最高頻率成分fH的兩倍。這被稱作奈奎斯特采樣定理(Nyquist Theorem)(見等式1)。
    等式1 奈奎斯特采樣定理:
    fS2fH
    只要所選的采樣頻率高于fS就被看作是過采樣。當過采樣與平均相結合時,可改善ENOB。這是可以實現的,因為在將過采樣的結果進行平均的同時也將量化噪音進行了平均,這樣就提高了信噪比(SNR),信噪比的提高會在ENOB上產生一個直接的影響,從而改善ENOB
    精度上每提高一位,必須對信號進行4倍的過采樣,即過采樣頻率fOS與采樣頻率fS的關系如等式2所示:
    等式2 過采樣頻率:
    fOS=4X*fS
    xENOB上需改進的位數(例如,需要改進2位,則x2)。
    平均
    平均操作可看作是輸入信號上的一個低通濾波器,當采樣數據寬度(simple size)增加時濾波器的通帶變窄。有兩種方法可對轉換結果進行平均:常規平均和滑動平均(rolling average)。
    常規平均
    對輸入信號進行n次采樣,將采樣值相加并將結果除以n,這即是常規平均。圖1所示的即為常規平均。當在過采樣方案中使用常規平均時,使用該之后,用于計算平均值的采樣數據被丟棄。每次應用程序需要一個新的轉換結果時,重復該處理。
    在應用中,常規平均方案可理想地用于采樣頻率與的采樣率相比較小的情況。
    要點:當在常規平均方案中執行n倍過采樣時,有效的ADC采樣率將按照相同的因子降低。例如,在對輸入信號進行4倍過采樣時,最大的有效ADC采樣率降低為原來的1/4,即采樣率為250K/sADC有效地變為62.5K/sADC
    2顯示的解決方案使用常規平均對輸入源進行4倍過采樣。在該例中,應用要求在每個t階段(t0t1t2等等)準備好一個新值(平均操作完成)。
    在使用平均技術時,因為計算后的轉換結果要與上面的n個采樣點對應,因此稍微有一點延遲。延遲時間使用等式3中的公式來計算:
    等式3 平均后的采樣延遲:
    tdelay=(tSn-tS0)/2+tprocess
    tS0為進行平均時第一個采樣點出現的時間,tSn為最后一個采樣點出現的時間。中斷處理程序處理采樣數據所需的時間,并被計算為供應用使用的平均tproces也被分解到等式中。
    滑動平均
    滑動平均在平均計算中使用存放n個最近采樣值的采樣緩沖區,允許ADC在其最大采樣率時采樣(ADC采樣率并不象常規平均那樣減小為原來的1/n),這樣它可理想地用于要求過采樣和更高采樣率的應用中。在未知狀態中,采樣緩沖區能夠用有效的采樣數據預先填充(通過捕獲第一個實際數據點之前的n-1個采樣點),也可保持為空,由應用來決定。不預先填充緩沖區的危害是前面的n-1個采樣點包含無效的數據,并在滑動平均計算中產生不利的影響。如果這些影響可被應用所接受,并且如果軟件能夠解決前面的n-1個偏移的采樣點的可能性,則可去除緩沖區填充操作。
    3顯示了采用滑動平均的過采樣實例。圖中顯示的情況為:輸入信號進行4倍過采樣,即采樣緩沖區使用4個最近的采樣值來計算平均值。在該例中,應用要求在每個t時刻有一個新的采樣值。在t0時刻計算第一個過采樣的結果之前,采樣緩沖區收集了3個采樣值,這樣提供給應用的第一個數據有效。
    在使用滑動平均時,等式3中計算得來的采樣延遲也同樣適用。要點:因為必須在每次中斷過程中執行采樣緩沖區處理,因此使用滑動平均增加了額外的處理開銷。
    實現
    Luminary MicroADC中使用采樣定序器(sample sequencer)結構,它使用一次觸發就可采集到高達17個不同的采樣值(來自任意的模擬通道),這樣過采樣的實現就變得非常簡單。而通過向應用提供在任意給定的時刻對多個通道進行過采樣的方法,使得軟件的實現也具有極大的靈活性。
    下面將給出使用的多種過采樣實現。有許多方法是將采樣定序器的配置、ADC觸發和中斷相結合來工作的。這里所舉的例子焦點都集中在最常使用的技術上。
    所有的實例代碼都使用系統驅動庫的ADC函數。驅動庫和本文檔中顯示的軟件實例的源代碼可從Luminary Micro網站:http://www.luminarymicro.com中獲得。
    使用驅動庫函數的8倍過采樣
    Stellaris驅動庫具有內置的允許進行高達8倍過采樣的函數。該級別的過采樣能夠使ENOB改進大約1.4位,因此在大多數應用中已足夠了。
    使用驅動庫的過采樣函數是對輸入信號進行過采樣的最簡單的方法。配置典型ADC轉換和過采樣轉換的主要不同在于函數調用。過采樣函數有一個ADCSoftwareOversample前綴,很容易從標準ADC函數中識別出。
    一旦確定好ADC轉換處理的參數(采樣頻率、觸發源、通道、等等),寫代碼是非常簡單的。舉例:例1中的代碼段即為建立一個8倍過采樣的10ms周期轉換(由定時器觸發)的代碼。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 横峰县| 公安县| 永川市| 双江| 章丘市| 石阡县| 大安市| 正定县| 南宫市| 亳州市| 宁城县| 天水市| 盈江县| 金乡县| 怀安县| 内江市| 启东市| 桂林市| 大化| 尼勒克县| 云梦县| 罗定市| 政和县| 宜宾县| 友谊县| 阿坝| 布尔津县| 白山市| 稻城县| 鹰潭市| 花莲县| 梁山县| 玉田县| 阳原县| 清涧县| 三台县| 达孜县| 福泉市| 义马市| 宜宾县| 山西省|