基于ADC技術的MCU系統(tǒng)數(shù)據(jù)采集方案
使用MCU的系統(tǒng)設計人員受益于摩爾定律,即通過更小封裝、更低成本獲得更多的豐富特性功能。嵌入式系統(tǒng)設計人員和MCU廠商關心數(shù)據(jù)采集系統(tǒng)的三個基本功能:捕獲、計算和通信。理解全部功能對設計大有幫助,本文將主要關注數(shù)據(jù)采集系統(tǒng)的捕獲階段。
捕獲
復雜的混合信號MCU必須能夠從模擬世界中捕獲某些有用信息,并且能夠把連續(xù)時間信號轉換成離散的數(shù)字形式。模數(shù)轉換器(ADC)是完成這項任務最重要的MCU外設,因此ADC的性能往往決定何種MCU適用于何種應用。MCU也能夠通過各種串行或并行數(shù)字I/O接口捕獲來自外部信號源的數(shù)字形式的系統(tǒng)信息。
計算
信號捕獲后,需要對捕獲數(shù)據(jù)進行某些處理;有時僅僅需要模數(shù)轉換,但是更多情況下必須要對捕獲的數(shù)據(jù)樣本進行計算。MCU行業(yè)中持續(xù)進行的數(shù)字化演變,帶給系統(tǒng)開發(fā)人員更先進的信號處理水平和更高的處理器速度。因此,嵌入式開發(fā)人員現(xiàn)在對8位、16位和32位混合信號MCU有更多的選擇余地,以便適應各種成本/性能目標。開發(fā)人員也有更多片上選擇(on-chip options)可用于完成系統(tǒng)任務。此外,MCU的硬宏(hard-macro)能自動處理,在外設中集成的功能狀態(tài)機可完成常見的處理器任務。
通信
最后,為了控制過程中的信息交換,某種形式的通信是必要的。此功能可以相當簡單,也可以相當復雜。通信甚至可以是模擬輸出的電壓或電流,通常使用數(shù)模轉換器(DAC)把捕獲和處理的數(shù)據(jù)轉換到模擬形式來實現(xiàn)。
基于多功能MCU的數(shù)據(jù)采集系統(tǒng)
MCU數(shù)據(jù)采集系統(tǒng)的關鍵是ADC.在電子行業(yè)中最常見的ADC類型一般是逐次逼近型ADC(SAR ADC)。許多MCU使用SAR ADC是因為它在速度和性能組合上的靈活性。 在MCU中,SAR ADC的精確度可以從8位到16位,吞吐速率范圍可以從極慢的按需轉換請求到每秒超過100萬次轉換。但是ADC僅僅是完整數(shù)據(jù)采集系統(tǒng)中的一部分。數(shù)據(jù)采集系統(tǒng)的其他部分也可增加其靈活性,包括信號輸入接口、參考電壓接口、用于ADC的時鐘和采樣系統(tǒng)以及用于轉換后ADC輸出數(shù)據(jù)的數(shù)據(jù)管理。
通常情況下,模擬信號輸入接口共享一個通用輸入輸出(I/O)緩沖器結構體,此結構體可配置為數(shù)字域或模擬域,或者也可以由兩個域共用。多配置性實現(xiàn)方法允許設計人員根據(jù)其系統(tǒng)需求在多個芯片引腳上劃分模擬和數(shù)字功能。作為輸入多路復用器的一部分,最常見的輔助輸入之一是片上的溫度傳感器;其他的重要輸入包括內部電壓。
一旦系統(tǒng)的輸入通道配置完成,嵌入式設計人員就可以利用程序代碼選擇任意通道,并請求ADC轉換。設計人員也可以選擇免除程序代碼,而允許ADC通道定序器根據(jù)預先設定的通道輸入進行循環(huán),直到檢測出重要事件。
數(shù)據(jù)采集
系統(tǒng)的另一個重要方面是ADC參考電壓(VREF)。參考電壓用來設置系統(tǒng)的輸入動態(tài)范圍或量程,并能顯著影響整體噪聲性能。多路轉換器通常用于從多種板上和外部參考電壓輸入中選擇VREF.常用的參考電壓包括MCU內部生成的緩沖帶隙電壓的倍頻電壓、片外生成的精確參考電壓以及多種外部電源電壓,以上可選參考電壓都兼容I/O緩沖器結構體和ADC限制。
如此多的輸入通道,使人們很容易想象到,在某些系統(tǒng)中一個或多個引腳的輸入動態(tài)范圍可能不兼容單一VREF電壓。為了解決這個問題,Silicon Labs Precision32 MCU集成輸入級聯(lián)增益,根據(jù)ADC型號不同可能有0.5或1倍的增益,這樣通過調整輸入信號可更好的兼容選擇VREF.
ADC轉換循環(huán)
ADC的時鐘系統(tǒng)要易于配置,以便支持MCU應用的多種用途。SAR ADC屬于奈奎斯特率轉換器,系統(tǒng)設計人員要仔細選擇以滿足采樣率至少兩倍于輸入信號帶寬的奈奎斯特準則。當配置ADC時,開發(fā)人員還必須考慮兩個計時任務。這兩個任務涉及ADC轉換循環(huán)和MCU系統(tǒng)內的可用時鐘源。轉換循環(huán)有兩部分組成:一個是跟蹤周期,一個是轉換周期,如圖1所示。
圖1:ADC轉換循環(huán)。
跟蹤周期是轉換循環(huán)中當ADC輸入電路連接到輸入信號時所花費的那部分時間。輸入采樣發(fā)生在跟蹤周期結束并且輸入電路從輸入源斷開時。這一刻是由連接到ADC的數(shù)字控制信號引起的,稱為轉換啟動(CNVST)。該命名恰如其分,CNVST標志著跟蹤周期的結束和轉換周期的開始。
轉換周期是ADC執(zhí)行逐次逼近寄存器(SAR)邏輯時的那部分ADC轉換循環(huán)。ADC用于跟蹤輸入信號的時間量與ADC的輸入負載特性、信號源的驅動能力和測量所需的精度要求相關。MCU器件規(guī)格手冊列出ADC輸入模型,給出ADC輸入的輸入電容、電阻和漏電流值。為了精確測量,開發(fā)人員應當為輸入信號穩(wěn)定保留足夠的跟蹤時間,最好超過0.5 LSB.
雖然轉換周期通常是一個與SAR ADC時鐘周期有關的可配置時間量,即對于每一位的判別時間,但他最好是采用CNVST請求之間的時間量描述跟蹤時間,而不是SAR轉換周期。簡單的說,如果ADC沒有處于轉換狀態(tài),那他就處于跟蹤狀態(tài)。轉換請求之間的過長時間會導致更多的跟蹤時間。為了解決這個問題,Silicon Labs MCU系列產品提供在轉換請求之間關閉跟蹤電路的功能,從而可降低系統(tǒng)功耗。
ADC轉換吞吐速率是轉換請求的頻率,通常命名為符號Fs.最大吞吐速率的設定通常由ADC的最小跟蹤時間以及最小轉換時間限定。恒定的吞吐速率是通過發(fā)送同樣時間間隔的轉換請求流來實現(xiàn)的。對于管理兩個關鍵的計時任務來說,可配置的ADC時鐘系統(tǒng)是必不可少的。
計時任務之一是生成用于轉換周期期間的時鐘,用于執(zhí)行SAR算法。與轉換周期相關的SAR時鐘(SARCLK)通常來自MCU系統(tǒng)時鐘。SARCLK的可配性需要適應MCU系統(tǒng)時鐘,時鐘頻率范圍從不到1MHz到超過100MHz.由于ADC內部的比較器設計,將產生SAR轉換邏輯被定時的最大速率。系統(tǒng)設計人員必須小心配置SARCLK頻率,避免超過其最大時鐘速率規(guī)格。另一個計時任務是生成轉換請求采樣速率,其不能超過給定適當轉換周期配置的ADC轉換器的最大吞吐速率。
孔徑抖動和延遲
轉換啟動請求信號可以看作是采樣時鐘,因此它決定ADC采樣和保持電路實際捕獲輸入信號的時間點。當配置ADC轉換請求時基時,需要考慮與采樣和保持電路相關的規(guī)格,即孔徑抖動和孔徑延遲。這兩個規(guī)格影響輸入信號采樣的精確度,因為輸入信號相對于孔徑時間延遲在不斷快速變化,如圖2所示。
圖2:孔徑抖動和延遲。
孔徑抖動在生成轉換啟動信號的時鐘系統(tǒng)和其他電路中將導致誤差(即時鐘抖動),同時孔徑延遲導致轉換啟動信號和采樣開關之間電路延遲??讖蕉秳釉跀?shù)據(jù)采集系統(tǒng)中會引入噪聲和失真??讖窖舆t可以由MCU設計人員內部管理,使其最小化,以避免由于長延遲而增加更多抖動的風險。孔徑延遲在數(shù)據(jù)采集系統(tǒng)中引起延遲誤差。太長的孔徑延遲類似于水池在“水池滿”信號發(fā)出之前就開始溢出。
由于上述原因,需要精確的時基用于產生穩(wěn)定的轉換啟動請求時序。MCU提供一系列板上時鐘或外部時鐘源作為系統(tǒng)時鐘選擇。系統(tǒng)設計人員必須仔細選擇具有足夠精度的時鐘源,以滿足其數(shù)據(jù)采集系統(tǒng)的需求。對于高速輸入源,需要非常精確的晶體振蕩器。另一方面,直流(DC)或慢速輸入可以更好地容忍時鐘系統(tǒng)錯誤,但仍然需要在轉換之間保留足夠的穩(wěn)定時間。
突發(fā)模式特性
Silicon Labs MCU系列產品中兩個特別有用的特性是突發(fā)模式和標記跟蹤模式。突發(fā)模式根據(jù)可編程的連續(xù)ADC轉換數(shù)量生成累積的或平均結果,所有觸發(fā)來自一個轉換請求。標記跟蹤模式通過改變轉換啟動請求操作來分擔MCU系統(tǒng)所需的跟蹤時間管理。通常,轉換啟動標記在跟蹤周期終點和轉換周期起點。但在標記跟蹤模式中,轉換啟動請求卻在跟蹤周期起點觸發(fā),然后持續(xù)一段時間,此時長為基于預配置的SARADC時鐘周期的可編程時長,最后才開始轉換。帶有標記跟蹤的觸發(fā)模式可為低頻運行的MCU在單MCU時鐘循環(huán)中獲得累積的ADC結果,因此減少系統(tǒng)循環(huán)數(shù)和降低功耗,如圖3所示。
圖3:ADC突發(fā)模式,在單個系統(tǒng)時鐘循環(huán)下實現(xiàn)4個數(shù)據(jù)累加。
ADC數(shù)據(jù)窗口
Silicon Labs 8位和32位混合信號MCU具有ADC輸出數(shù)據(jù)窗口比較器。ADC輸出數(shù)據(jù)與可編程的高低限制進行比較,并可為ADC輸出數(shù)據(jù)在設定的門限值內、外、高或低自動生成可編程中斷。使用數(shù)據(jù)窗口比較器,設計人員能夠配置ADC來自動檢查“水池滿”液面監(jiān)測器輸入,直到數(shù)據(jù)窗口比較器發(fā)出一個中斷信號給MCU程序為止。當觸發(fā)中斷時,MCU可以中斷當前執(zhí)行的任務并切換到嚴密控制水池系統(tǒng)的任務中。