單片機(MCU)和傳感器測控系統中,經常遇到需要模擬量傳感器輸入的情況。 這種輸入的模擬量,需要由模擬數字轉換器外設,簡稱ADC,來轉換為N位數字量后再由CPU進行處理。近年來,隨著智能傳感器技術和物聯網技術等的發展, MCU和傳感器連接的系統應用也越來越廣泛。比如在目前全球研究最多的新興市場之一——物聯網(IoT)中,傳感器作為物聯網系統數據的重要入口, 正在成為電子基礎設施向物聯網轉變的無處不在的元素。預計到2025年,全球物聯網總連接數規模將從2019年的120億增長到246億,年復合增長率高達13%。 我國物聯網連接數全球占比高達30%,2019年我國的物聯網連接數36.3億,到2025年預計我們物聯網連接數將達到80.1億,年復合增長率14.1(來源:中國信息通信研究院)。
對于MCU中集成的用于連接模擬傳感器的ADC,設計者在以往的努力多在于提高其采樣速度和量化的性能指標,比如提高ADC的分辨率(精度),減少誤差(量化誤差、偏移誤差和滿刻度誤差等),提高轉換率來采集更高頻率的輸入等等,而現在的集成ADC的新特性,除了提高以上性能參數,則更是考慮了ADC在系統中的應用場景和信號處理過程。
對于模擬信號的輸入,單片機系統典型的處理過程如下所示:
針對這種典型的模擬信號處理過程,MCU設計者對ADC外設創新地賦予了新的特性,以使其連接傳感器更為高效。
1. 獨立于內核的事件機制——聯動其他外設,自動觸發ADC啟動
在模擬信號采樣階段, 簡便的方式就是沖激串采樣——通過一個周期沖激串去乘待采樣的連續時間信號。 在MCU中,需要通過定時器來設定采樣周期T。在傳統的處理方式中,CPU要么響應定時器產生的周期性中斷,要么輪詢定時器計數器的溢出標志,來啟動ADC。
新的ADC觸發方式則是采用了事件機制,它提供了一個*由硬件自動完成的觸發到ADC產生響應的通道。 在沒有任何CPU干預的情況下精確控制ADC的采樣周期。這種機制節省了中斷資源, 無需軟件的參與,提高了ADC的響應速度。
下圖為AVR®單片機事件系統的示意圖。
圖1: AVR®單片機中的事件系統圖示
這種硬件上的聯動響應,更為迅速直接。因為不需要CPU干預,也減少了不必要的中斷或喚醒,即使在CPU處于某種休眠狀態下,該觸發機制仍可以在低功耗的情況下運行。當然除了用于觸發ADC之外,這種事件機制還可以用于其他外設的聯動。
2. 帶有計算功能的ADC——對轉換結果自動進行計算處理
ADC的轉換結果,被用來做某種類型的計算或分析。比如驗證結果是否在一定的范圍內或者用來濾除信號中的噪聲。盡管用來濾波的軟件算法都比較成熟,比如中值濾波、算數平均濾波和滑動平均濾波等,但是無論是什么樣的軟件算法,它們都是需要較大的RAM空間和CPU運算資源。首先在系統的RAM區保留一段時間內的轉換值,然后對這些轉換值進行分析、濾波,并進行處理。而在MCU系統中,RAM空間都是很有限的,而且軟件濾波算法的運行,需要消耗CPU的能力和時間,導致整個轉換數值的濾波系統運行效率不高。
創新的ADC設計,使得ADC自身具有轉換后的計算功能,可以對ADC轉換的數據進行復雜的運算,而無需CPU干預。使用這種具有運算能力的智能ADC, 在轉換完成后, 結果可以通過預定的計算功能來傳遞,將不需要編寫代碼來查看ADC結果是否落在某個窗口之內或之外,也可以直接獲取ADC平均樣本值或者濾波器樣本數據值等。這種計算由ADC外設本身執行,加速了通常由軟件完成的算術任務,不再需要占用CPU資源和額外的RAM緩沖空間。例如,如下圖PIC® Q10系列MCU上ADC的計算功能簡化框圖所示, 可以通過配置ADC的ADMD位來控制ADC計算模塊以選擇五種不同的操作模式之一:基本模式、累加模式、平均模式、突發平均模式和低通濾波器模式等。
圖 2: PIC® Q10單片機中的ADC計算模塊框圖
3. 自動上下文保存——使ADC通道切換應用自如
在傳感器系統應用中,經常會遇到多個模擬輸入通道共用一個內部ADC硬件的情況。 比如在一個環境檢測系統中, 溫度、濕度、氣壓和光線強度等傳感器的模擬輸入將會使用同一個ADC(同一個采樣保持電路)的不同通道。ADC通過切換各個通道,分時進行A/D轉換。對于復用ADC的模擬輸入,每個通道的控制方式,都可能是不同的,比如狀態和數據寄存器配置和轉換后的計算方式等等。例如,通道一將ADC配置為突發平均模式,通道二將ADC配置為累加模式……不同通道的*控制方式,使得ADC在切換通道時需要附加軟件開銷,比如首先停止ADC,按照ADC采集通道的預定順序找到相應的狀態和寄存器,重新配置對應的控制方式,再啟動ADC…,運行過程中的頻繁切換無疑降低了ADC的運行效率。
解決這一問題的最新ADC特性,是把每個通道的特定轉換控制方式,按照預定采集順序,保存為上下文。該上下文只能通過A/D上下文選擇寄存器,或者直接存儲器訪問(DMA)。這樣ADC運行時,ADC硬件模塊會自動從內存中傳輸當前活動通道的上下文,進入相關的ADC寄存器并執行所需的轉換。這樣就顯著提高了ADC切換通道采集數據的效率,也不占用CPU資源。有趣的是,Microchip將帶有運算特性的ADC稱為ADCC (ADC with Computation),而將又帶有上下文保存特性的ADCC稱為ADCCC (ADC with Computation and Context)。
單片機和傳感器連接的應用越來越多,幸運的是,MCU設計者一直在擴展其MCU外設的功能。 類似ADC上這些新功能的創新,已不僅僅在其自身轉換方面,而是實現了與其他外設聯動啟動采樣,轉換后的計算,以及多個復用通道的自動切換等,集成了針對模擬信號處理鏈路上的多個環節。這些環節可以自動運行,不占用系統總線,這對降低CPU負載,降低系統功耗,增強系統響應效率,增強系統健壯性等都有非常大的意義。單片機設計者們以其創新性的智慧,以及對嵌入式系統應用細致入微的洞察,將會使得MCU和傳感器的連接應用設計,越來越靈活,越來越高效!
上一篇:水表自轉原因分析及緩解方法探析
下一篇:無線水質分析的解決方案