使用特定任務MCU簡化複雜設計

作者 : Robert Perkel,Microchip應用工程師

8位元和16位元MCU等較小元件可從32位元元件卸載任務,以實現更簡單的建置,從而提高可靠性、減少記憶體使用和降低功耗…

在當今的電子世界中,執行即時作業系統(RTOS)的大型32位元微控制器(MCU)和微處理器(MPU)越來越普遍。然而,處理複雜應用的單個大型MCU可能遇到與小型內務管理任務相關的CPU資源問題,這些任務並不複雜,但非常耗時。例如8位元和16位元MCU等較小元件可用於從32位元元件卸載這些任務。

以此示例來思考:將32位元MCU用於控制汽車的娛樂系統、環境照明和空調等非安全攸關功能。32位元元件必須要能分配其資源來處理與這些功能相關的所有任務,例如多點測量機艙溫度、打開/關閉空調系統、更新圖形顯示、處理使用者輸入、調整照明條件和播放音樂。即使對於大型32位元元件,這也是繁忙的工作了。

但是,如果能將其中一些任務從32位元元件卸載到僅負責處理其中一項或兩項任務的子處理器,而在此過程中又幾乎不需要監督,那麼這些任務就更易於管理。而且,這釋放了主處理器上的CPU資源,從而降低了軟體複雜性,同時提高了性能和執行時間。

該解決方案具有類似於MCU周邊裝置的優勢。周邊裝置是小型專用硬體模組,可以添加新功能,例如運算放大器或類比數位轉換器(ADC),或者可以減少CPU必須為特定功能執行的工作量。在某些情況下,周邊裝置在初始化後可以獨立於CPU運行。

例如,為了展示周邊裝置的優勢,可以考慮脈衝寬度調變(PWM)訊號的產生。為了在沒有專用周邊裝置的情況下產生PWM,只需將I/O線設置為高電平,等待一定數量的週期將其設置為低電平,再等待一段時間後再重複。這會佔用大量CPU週期,並且對於諸如RTOS等來說很難可靠地執行。相形之下,PWM周邊裝置可讓CPU在執行其他任務的同時設置所需的波形參數。

本文提供的第一個示例顯示卸載CPU密集型任務的好處。在這種情況下,8位元MCU用於創建I/O擴展器。I/O擴展器不是複雜的元件;然而,由於中斷的頻繁服務,它們使用了大量的CPU時間。由於使用專門的MCU來完成這項任務,較大的32位元元件可以降低其I/O利用率和需要處理的中斷數量。此外,I/O擴展器的功能集是在軟體中設置的,因此可以針對應用進行客製和調整。

本文的第二個示例展示獨立於核心的周邊裝置性能,以創建獨立於CPU運行的電壓頻率(V/F)轉換器。本例中CPU的唯一功能是初始化周邊裝置並將除錯訊息列印到UART。在更大的系統中,當V/F在後台運行時,CPU可以執行另一個簡單的任務。

I/O擴展器

使用8位元MCU創建I/O擴展器的最大好處是靈活性。I/O擴展器ASIC的功能集已嵌入到該元件中,而MCU則可根據其執行的軟體定義其行為。這種靈活性使基於MCU的版本能夠適應最終應用的需求。

建置先進的I/O擴展器

在內部,先進的I/O擴展器在基於查找表的結構上運行。在讀取或寫入之前會發送一個虛擬位址,該位址與MCU上的暫存器無關——它僅特定於查找表(LUT)中,這意味著可以透明地添加MCU硬體暫存器中所沒有的功能。表格中的條目也可以很容易地重新排列以用於特定用途。這種結構的另一個好處是能夠向查找表添加授權(1)。例如,為了創建一個唯讀暫存器,只需省略寫查找表條目即可。

Lookup Table of the Advanced I/O Expander

1I/O擴展器查找表中的項目可針對特定用例輕鬆重新排列。

更複雜的結構也適用於非標準功能。“MEM OP”功能支援MCU將其當前的通用輸入輸出(GPIO)配置保存或載入到記憶體中。

MEM OP還可以將GPIO配置重設為編譯時所設置的參數(2)。

diagram of MEM OP function
2MEM OP功能支援MCU將其現有GPIO配置保存或載入至記憶體。

或者,可以將MCU設置為在上電時載入保存的設置。一旦啟用後,MCU會嘗試載入配置0中的設置。如果配置校驗和驗證失敗,則MCU將恢復為編譯時間常數。如果不需要,可以在軟體中禁用此功能。

基於MCU的解決方案優勢在於極大的靈活性。與市場上的ASIC不同,可以將MCU配置為具有特定於應用的非標準功能。

V/F轉換器

電壓/頻率(V/F)轉換器減少物料清單(BOM)和設計面積,改進了傳統的模擬解決方案。市場上的許多V/F轉換器都需要外部電阻器和電容器才能運行,而MCU只需要通用的去耦和上拉元件(所有MCU都需要這些元件)即可運行(3)。

Application schematic for the TC9400 V/F converter

3TC9400元件應用原理圖,突顯10Hz100kHz V/F轉換器。

MCU不使用類比技術進行數位化,而是使用獨立於核心的周邊裝置和功能組合。MCU使用內部「帶運算功能的類比數位轉換器」(ADCC)測量輸入訊號,然後對時脈訊號進行分頻以產生可變頻率輸出。在本例中,周邊裝置已設置為在初始化後獨立於CPU運行。這意味著CPU可以用於最終應用中的其他任務。

基於MCU的方法有一個挑戰是它的性能不如類比解決方案。輸出的解析度本質上受ADCC的限制。名義上是12位元ADCC,但根據程式的配置方式,ADCC以過採樣的14位元解析度運行。同樣地,合成輸出頻率的板載數位控制振盪器(NCO)支援有限的解析度,在其輸出中還可能存在抖動,具體取決於ADCC測量的值。

基於MCU的解決方案可分為三個不同的周邊裝置模組:類比採樣模組、輸出振盪器模組和工作週期產生器(4)。

Block Diagram of the Analog Sampling Block
4:三個類比採樣模組簡化了基於MCU的解決方案。

類比採樣模組負責ADC (5)。為了在元件的頻率限制下實現100kHz的輸出,ADCC已配置為過採樣,然後向下平均以獲得14位元結果。

block diagram to implement an analog sampling block
5:類比採樣模組的實現方式。

這種過採樣的缺點之一是在結果中添加了額外的統計雜訊。可以透過對過採樣求平均值並添加遲滯以補償雜訊。為了實現遲滯,這裡使用了ADCC的閾值中斷功能。為了簡單起見,本文將僅介紹此示例如何使用閾值中斷功能的細節。

當ADCC完成過採樣平均值計算時,會將結果值與周邊裝置中的設定點暫存器進行比較。如果兩者之差大於或小於設定閾值,則觸發中斷。CPU遮罩這個中斷並且不受影響,但是,此中斷會觸發直接記憶體存取(DMA),將平均得到的過採樣結果複製到ADCC的設定點暫存器,從而產生遲滯。如果未超過閾值,則不會發生DMA複製,也就不會觸發輸出振盪器模組的DMA更新。

輸出振盪器模組

該解決方案的輸出振盪器模組負責產生所需輸出頻率的時脈訊號。該輸出訊號在內部連接到工作週期產生器,進而將輸出頻率減半,但會產生50%的工作週期輸出。因此,輸出振盪器模組以輸出頻率的兩倍運行。

輸出振盪器模組的核心是NCO(6)。NCO周邊裝置透過在輸入時脈的上升沿向累加器添加增量值來工作。累加器溢出用於獲得周邊裝置的輸出。

diagram of the Output Oscillator Block Structure 6:輸出振盪器模組負責產生所需輸出頻率的時脈訊號。

在此示例中,NCO2已設置為在內部創建所需的輸入時脈頻率,從而從14位元輸入獲得100kHz輸出。之所以使用14位元結果,是因為來自ADCC本身的12位元結果不足以在沒有外部時脈源的情況下生成100kHz輸出。

1:看門狗計時器關閉時,100kHz V/F轉換器的理想輸出。

如果改變NCO2的輸出頻率,或使用替代源,則輸出頻率將微縮到不同的輸出範圍。例如,如果NCO2降低到1.28MHz,則輸出最大為10kHz。

表2:看門狗計時器關閉情況下,10kHz V/F轉換器的理想輸出。

工作週期產生器

該解決方案的工作週期產生器模組負責創建50%的工作週期輸出(7)。此功能是可選的,儘管工作週期會在更大程度上變化,但NCO的輸出可以直接使用。

Block Diagram of the Duty Cycle Generator
7:工作週期產生器產生50%的工作週期輸出。

該產生器使用可配置邏輯單元(CLC)之一實現。CLC是類似於FPGA單元的離散式可配置邏輯小模組。CLC可用作離散式邏輯閘,例如AND-OR或OR-XOR。它們也可以配置為鎖存器或觸發器。在此解決方案中,CLC被實現為帶有受設功能的JK觸發器。J和K保持在邏輯高電平。輸出振盪器模組用作觸發器的時脈。每個輸入時脈脈衝都會導致輸出切換,從而產生50%的工作週期。值得注意的是,來自輸出振盪器模組的頻率抖動會影響工作週期。

計時器6用作不穩定的「看門狗」(watchdog)計時器。如果輸出沒有產生邊沿(上升沿或下降沿),則計時器將溢出而為CLC產生時脈脈衝。這控制了輸出頻率範圍的低端。輸出不會達到DC,而是以計時器頻率的一半切換,從而獲得6Hz輸出。

相較於通常必須使用外部IC創建的方式,此設計示例展示使用硬體周邊裝置來創建獨立於核心的功能。這種配置的最大好處之一是周邊裝置操作是在軟體中設置的,因此很容易適應最終應用。

雖然高性能MCU和MPU仍然存在,但8位元和16位元MCU是執行小型專業任務的寶貴工具。這些任務不一定很複雜,但可能很耗時或時間緊迫。透過卸載任務,32位元元件可以實現更簡單的建置,從而提高可靠性、減少記憶體使用和降低功耗。

(參考原文:Deploying task-specific microcontrollers simplifies complex designs,by Maurizio Di Paolo Emilio)

本文同步刊登於EDN Taiwan 2022年9月號雜誌

活動簡介

人工智慧(AI)無所不在。這一波AI浪潮正重塑並徹底改變科技產業甚至整個世界的未來。如何有效利用AI協助設計與開發?如何透過AI從設計、製造到生產創造增強的體驗?如何以AI作為轉型與變革的力量?打造綠色永續未來?AI面對的風險和影響又是什麼?

AI⁺ 技術論壇聚焦人工智慧/機器學習(AI/ML)技術,涵蓋從雲端到邊緣、從硬體到軟體、從演算法到架構的AI/ML技術相關基礎設施之設計、應用與部署,協助您全面掌握AI最新技術趨勢與創新,接軌AI生態系佈局,讓機器學習更快速、更經濟、更聰明也更有效率。

贊助廠商

加入LINE@,最新消息一手掌握!

發表評論