



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于StellarisTM系列微控制器的ADC滑動平均過采樣技術 關鍵詞:有效位數;ADC模塊;過采樣 1 過采樣原理 過采樣是從輸入信號中采集額外的轉換數據。模擬信號采樣的標準約定指出:采樣頻率fS至少是輸入信號的最高頻率成分fH的兩倍。 只要所選的采樣頻率高于fS就被看作是過采樣。當過采樣與平均技術相結合時,可改善ENOB。這是可以實現的,因為在將過采樣的結果進行平均的同時也將量化噪音進行了平均,這樣就提高了信噪比(SNR),信噪比的提高會在ENOB上產生一個直接的影響,從而改善ENOB。 精度上每提高一位,必須對信號進行4倍的過采樣,即過采樣
2、頻率fos與采樣頻率fS的關系:fos=4x*fS x為ENOB上需改進的位數(例如,需要改進2位,則x=2) 過采樣對轉換結果的精度的改善如圖1所示。圖中,對輸入信號進行4倍過采樣(樣品組用綠色和紫色表示)并進行平均。圖中顯示的采樣點闡明了原始的、帶噪音信號與平均值之間的差值。該例中的噪音在單個采樣值上對精度的影響達到±3位。我們注意到平均值(橙色圓點)比大多數單個的采樣值更接近于理想值,并且精確得多。 平均操作可看作是輸入信號上的一個低通濾波器,當采樣數據寬度(simple size)增加時濾波器的通帶變窄。有兩種方法可對轉換結果進行平均:常規平均和滑動平均(rolling av
3、erage)。以下我們只討論滑動平均。 滑動平均在平均計算中使用存放n個最近采樣值的采樣緩沖區,允許ADC在其最大采樣率時采樣(ADC采樣率并不象常規平均那樣減小為原來的1/n),這樣它可理想地用于要求過采樣和更高采樣率的應用中。在未知狀態中,采樣緩沖區能夠用有效的采樣數據預先填充(通過捕獲第一個"實際"數據點之前的n-1個采樣點),也可保持為空,由應用來決定。不預先填充緩沖區的危害是前面的n-1個采樣點包含無效的數據,并在滑動平均計算中產生不利的影響。如果這些影響可被應用所接受,并且如果軟件能夠解決前面的n-1個偏移的采樣點的可能性,則可去除緩沖區填充操作。 在使用滑動平
4、均時,采樣延遲如下式: tdelay=(tSn-tS0)/2 tprocess tS0為進行平均時第一個采樣點出現的時間,tSn為最后一個采樣點出現的時間。中斷處理程序處理采樣數據所需的時間,并被計算為供應用使用的平均tprocess也被分解到等式中。因為必須在每次中斷過程中執行采樣緩沖區處理,因此使用滑動平均增加了額外的處理開銷。 3 實現 Luminary Micro在ADC中使用采樣定序器(sample sequencer)結構,它使用一次觸發就可采集到高達17個不同的采樣值(來自任意的模擬通道),這樣過采樣的實現就變得非常簡單。而通過向應用提供在任意給定的時刻對多個通道進行過采樣的方法
5、,使得軟件的實現也具有極大的靈活性。 Stellaris驅動庫具有內置的允許進行高達8倍過采樣的函數。該級別的過采樣能夠使ENOB改進大約1.4位,因此在大多數應用中已足夠了。但是需要更大過采樣因子的應用必須使用其它的實現。以下是使用滑動進行平均每100s過采樣。 代碼段1 ADC配置-滑動平均 / 初始化ADC,以便在檢測到觸發時在通道1、定時器3上獲得一個采樣值。 ADCSequenceConfigure(ADC_BASE, 3, ADC_TRIGGER_TIMER, 0); ADCSequenceStepConfigure(ADC_BASE, 3, 0, (ADC_CTL_CH1 | A
6、DC_CTL_IE | ADC_CTL_END); / 初始化定時器0 TimerConfigure(TIMER0_BASE, TIMER_CFG_32_BIT_PER); TimerLoadSet(TIMER0_BASE, TIMER_A, SysCtlClockGet() / 10000); TimerControlTrigger(TIMER0_BASE, TIMER_A, true); 中斷處理程序必須更新采樣緩沖區并進行平均計算(見代碼段2)。在每次ADC中斷時,去掉采樣緩沖區中的最后一個元素,緩沖區中剩下的數據移動一個位置。然后,在計算平均值之前將新的轉換結果放在采樣緩沖區的開始處。
7、中斷處理程序中執行的額外計算又一次增加了開銷,這一點必須要考慮到。 代碼段2 ADC中斷處理程序 void ADCIntHandler(void) / 清除中斷 ADCIntClear(ADC_BASE, 3); / 檢查g_ucOversampleIdx,確保它的值在范圍內 if(g_ucOversampleIdx = 16) g_ucOversampleIdx = 0; / 從全局總和中減去最早的值 g_ulSum -= g_ulSampleBufferg_ucOversampleIdx; / 用新的采樣值代替最早的值 g_ulSampleBufferg_ucOversampleIdx =
8、 HWREG(ADC_BASE ADC_O_SSFIFO3); / 將新的采樣值加到總和中 g_ulSum = g_ulSampleBufferg_ucOversampleIdx; / g_ucOversampleIdx加1 g_ucOversampleIdx ; / 從采樣緩沖區的數據中獲得平均值 g_ulAverage = g_ulSum >> 4; / 占位符,供ADC處理代碼 在啟動定時器之前,使能定時器及其中斷(見代碼段3)。 代碼段3 使能ADC和中斷 / 使能定序器和中斷
9、ADCSequenceEnable(ADC_BASE, 3); ADCIntEnable(ADC_BASE, 3); IntEnable(INT_ADC3); / 使能定時器并啟動轉換處理 TimerEnable(TIMER0_BASE, TIMER_A); 本文描述的過采樣技術需要額外的代碼來執行平均計算,附加中斷,和/或大部分采樣定序器資源,因此它在整個系統性能上有一個顯著的影響。 4 結論 Luminary Micro的采樣定序器結構為過采樣技術的實現提供了大量的選項。當與軟件平均技術相結合時,該結構能夠使系統設計人員有效地在采樣頻率、系統性能和采樣解決方案之間進行權衡。 參考文獻 1王永宏,徐煒,郝立平. STM32 系列ARM Cortex - M3 微控制器原理與實踐M . 北京:北京航空航天大學出版社, 2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025電梯租賃合同詳解
- 2025勞動合同大全范文
- 電影項目股權合同協議
- 皮具合作合同協議書范本
- 畜牧人養殖服務合同協議
- 電瓶車店鋪轉讓合同協議
- 環衛補充合同協議書范本
- 甲乙丙方擔保合同協議
- 特斯拉二手車協議合同
- 電纜廢品收購合同協議
- 小學生三年級家長會課件
- 職業衛生技術服務機構培訓講課
- 病歷書寫與管理基本規范-麻醉科考核試題及答案
- 防止電力生產事故的二十五項重點
- 第二屆全國物流設計大賽一等獎作品:北京交通大學一隊全國決賽作品
- 危險化學品目錄2015
- ABB變頻器ACS510說明書
- 氨基酸及其重要衍生物
- 全國青年教師觀摩大賽數學賽課一等獎作品教學設計模板(三)
- 汽車4S店維修結算清單
- TSXDZ 052-2020 煤礦礦圖管理辦法
評論
0/150
提交評論