0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何優(yōu)化基于MCU的RTOS的設(shè)計和開發(fā)

電子設(shè)計 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-05-27 08:02 ? 次閱讀

要求MCU控制嵌入式系統(tǒng)中越來越多的功能。這些功能通常是實時的,需要定期維護(hù),以滿足系統(tǒng)對響應(yīng)性,性能或可靠性的要求。通常,實時操作系統(tǒng)(RTOS)用于管理多個實時事件,以確保響應(yīng)能力足以滿足系統(tǒng)要求。然而,并非所有MCU都適合托管RTOS,因此,對允許或便于在特定MCU上托管RTOS的一些關(guān)鍵功能的審查對實時嵌入式系統(tǒng)的設(shè)計人員非常有用。

本文將快速回顧現(xiàn)代MCU上可用的一些關(guān)鍵功能,這些功能有助于運行需要RTOS的嵌入式系統(tǒng)。這將有助于設(shè)計人員更有效地選擇MCU作為RTOS主機(jī),并使用該MCU設(shè)計嵌入式系統(tǒng)。

管理實時響應(yīng)

隨著控制系統(tǒng)變得越來越復(fù)雜,使用簡單的控制程序管理各種MCU功能變得越來越困難。對于具有不同優(yōu)先級的多個事件,持續(xù)檢查以查看哪些事件需要服務(wù)的單個控制循環(huán)變得難以處理??刂苹芈窡o法足夠快地到達(dá)每個功能。所需要的是一種實時控制方法,其中所有事件都可以在其所需的響應(yīng)時間內(nèi)得到服務(wù)。

通常,MCU可以通過使用中斷響應(yīng)事件(由定時器觸發(fā)的內(nèi)部MCU請求或由I/O信號觸發(fā)的外部事件)來實現(xiàn)對復(fù)雜系統(tǒng)的更好控制。中斷可以優(yōu)先處理,以便首先處理最重要的請求,并且使用現(xiàn)代MCU中斷系統(tǒng),響應(yīng)時間可以非常快。不幸的是,證明所有事件都將以所需的周期性處理可能很困難。例如,如果我們需要進(jìn)行一系列模數(shù)轉(zhuǎn)換,同時通過USB端口接收數(shù)據(jù)并在采集的模擬數(shù)據(jù)上計算低通濾波器,那么計算轉(zhuǎn)換的最大采樣率可能非常

改善實時響應(yīng)的另一個選擇是使用實時操作系統(tǒng)或RTOS。在該方法中,可以為控制系統(tǒng)中的每個任務(wù)分配MCU處理周期的時間片或部分。如果該功能不需要當(dāng)前分配的時間,它可以將時間“翻轉(zhuǎn)”到另一個功能,這樣就不會丟失寶貴的處理周期。如果沒有功能需要維修空閑過程(通常在低功率模式下),則可以啟動以節(jié)省電力??梢哉{(diào)整分配的時間片以確??捎玫淖钚r間量滿足所需的響應(yīng)時間。通過正確分配模數(shù)轉(zhuǎn)換器,USB端口和濾波器處理功能,系統(tǒng)將以可預(yù)測和有效的方式運行。

現(xiàn)代MCU已經(jīng)過優(yōu)化,可以輕松實現(xiàn)RTOS實施。也許最明顯的是包含專用定時器,通常是與確定處理分配相關(guān)聯(lián)的“定時器滴答”,這使得向時間片分配時間變得容易??梢耘c其他MCU活動并行執(zhí)行任務(wù)的智能外圍設(shè)備也很有用,因為相關(guān)的過程只需要“觸發(fā)”事件,然后可以將控制權(quán)返回給另一個過程。例如,可以通過簡單地編程DMA控制器以將SRAM數(shù)據(jù)移動到USB端口來啟動USB傳輸。在清空緩沖區(qū)或發(fā)生錯誤之前,任務(wù)不需要執(zhí)行任何其他活動。

讓我們仔細(xì)看看一些最重要的支持RTOS的硬件元素,以便更好地理解我們?nèi)绾蝺?yōu)化基于MCU的RTOS實現(xiàn)。

使用高級中斷控制器

由于基于RTOS的系統(tǒng)需要快速有效地響應(yīng)實時事件,因此高級中斷系統(tǒng)可能是基于MCU的設(shè)計中最重要的硬件元素。例如,如果中斷需要太多周期來響應(yīng),可能是因為在調(diào)用中斷例程之前需要保存幾個CPU寄存器,實時響應(yīng)可能會受到影響。此外,如果中斷控制器只有少量可能的向量位置,軟件可能需要幾個周期才能找出中斷源。例如,中斷信號傳輸完成應(yīng)該很容易與傳輸錯誤區(qū)分開來。

Microchip PIC24F MCU具有一個高級中斷控制器,具有實現(xiàn)基于MCU的RTOS所需的一些功能。 PIC24F和dsPIC MCU系列的框圖如圖1所示。中斷控制器在圖中間以灰色顯示,連接所有外設(shè),定時器和多個輸入信號,以提供全面的中斷支持。多達(dá)118種不同的中斷源,最多5種來自外部源。對于五個周期的固定中斷延遲,中斷響應(yīng)時間對于任何應(yīng)用都足夠快。

如何優(yōu)化基于MCU的RTOS的設(shè)計和開發(fā)

圖1:Microchip PIC24和dsPIC DSC系列模塊圖。

PIC24和dsPIC DSC MCU中斷控制器還支持七個優(yōu)先級,可以輕松區(qū)分最重要的事件和最不重要的事件。當(dāng)對某些事件立即響應(yīng)以及某些事件可以等待服務(wù)至關(guān)重要時,這尤其有用。例如,采集數(shù)據(jù)通常比處理數(shù)據(jù)更重要,因此采集事件的優(yōu)先級通常高于處理事件。

內(nèi)存占用和低功耗

當(dāng)從純粹的中斷或控制環(huán)路設(shè)計切換到基于RTOS的實現(xiàn)時,工程師最常遇到的兩個問題是內(nèi)存占用和低功耗。由于每個RTOS過程都需要SRAM中的特殊控制塊來存儲過程中的各種聲明信息,因此工程師經(jīng)常擔(dān)心它們將耗盡SRAM并因其應(yīng)用而“缺乏”內(nèi)存。幸運的是,隨著上下文切換時間和控制塊大小的優(yōu)化,RTOS內(nèi)存占用量不斷提高。此外,MCU在設(shè)備上包含越來越多的SRAM,因為這種資源變得越來越便宜,同時變得越來越有價值。

例如,Atmel SAM4L MCU在兩個塊中提供32 KB或64 KB的SRAM-HRAMC0和HRAMC1-如圖2中的系統(tǒng)內(nèi)存分配圖所示。這些SRAM塊是在單個周期中訪問,這是一個確定性過程,可簡化基于RTOS的系統(tǒng)中的關(guān)鍵延遲和性能計算。將SRAM組織為兩個獨立的存儲區(qū)也可以提高基于DMA的功能的性能,因為可以將存儲器塊分配給每個存儲區(qū)以優(yōu)化整體訪問帶寬。

圖2:Atmel SAM4L MCU全局內(nèi)存分配。

每個RTOS進(jìn)程只需要幾百個字節(jié),即使是復(fù)雜的RTOS,完整的上下文也只需占MCU的幾個百分點。一些設(shè)計人員經(jīng)常忽略的一點是,通過RTOS通信,緩沖區(qū)通??梢源蟠鬁p少,因為響應(yīng)時間更短,更可預(yù)測。對于某些功能,SRAM節(jié)省的成本將超過上下文切換存儲要求的大小。

大多數(shù)RTOS實現(xiàn)也完全支持低功耗模式。這意味著可以使用降低內(nèi)部調(diào)節(jié)電壓,降低時鐘速度或禁用特定外設(shè)時鐘的模式。 Atmel SAM4L MCU具有一些專用控制器,可根據(jù)需要輕松調(diào)整電壓電平和時鐘速度,以滿足每個處理線程的要求。多個“空閑模式”也可用于在多個線程共享的幾個標(biāo)準(zhǔn)低功耗設(shè)置之間進(jìn)行選擇。

簡化以太網(wǎng)連接

在具有高電平的實時系統(tǒng)中速度連接要求,例如以太網(wǎng),以太網(wǎng)很重要的硬件,但不應(yīng)忽視使其易于實施的支持“掛鉤”。例如,瑞薩RX63N具有先進(jìn)的以太網(wǎng)控制器和專用的以太網(wǎng)DMA控制器,可直接管理控制以太網(wǎng)傳輸?shù)拿枋龇_@大大簡化了以太網(wǎng)流量的控制,因為可以在以太網(wǎng)子系統(tǒng)中控制許多低級細(xì)節(jié)。此外,通過使用連接開發(fā)套件可以簡化RTOS環(huán)境中以太網(wǎng)連接的實現(xiàn),如圖3所示,該套件可與Micrium RTOS捆綁在一起。 MCU,開發(fā)板和Micrium uC/OS-II或uC/OS-II RTOS的這種組合提供了一個經(jīng)過驗證的平臺,現(xiàn)有的示例代碼可用作實現(xiàn)定制設(shè)計的第一步。

圖3:具有Micrium RTOS支持的Renesas RX63N以太網(wǎng)套件。

Micrium RTOS還提供各種中間件模塊,進(jìn)一步簡化了連接應(yīng)用。例如,IPv6支持使得即使是最復(fù)雜的以太網(wǎng)子系統(tǒng)也能輕松實現(xiàn)。示例設(shè)計的可用性意味著可以在創(chuàng)紀(jì)錄的時間內(nèi)完成演示系統(tǒng)的工作。

DSP應(yīng)用的高效處理

在某些應(yīng)用中,可以使用RTOS確保盡可能高效地完成處理。例如,DSP應(yīng)用程序可以處理饑餓,如果多個通信通道競爭CPU周期,則效率會受到顯著影響。例如,德州儀器TI)TMS320C66xx DSP具有顯著的處理能力。圖4中所示的處理核心中只有一個具有八個可以并行工作的獨立處理器(L/S/M/D 1和2)。使用RTOS(如TI-RTOS)時,可以更輕松地管理通信功能,以限制所需的CPU周期數(shù)。這樣可以節(jié)省處理時間,因為DSP可以解決大多數(shù)以DSP為中心的設(shè)計所需的大量數(shù)據(jù)。

圖4:德州儀器(TI)TMS320C66xx DSP提供顯著的處理性能。

結(jié)論

通常,嵌入式系統(tǒng)需要在指定時間內(nèi)響應(yīng)事件,在這些系統(tǒng)中,托管在MCU上的RTOS是可能的解。確保您了解在MCU上托管RTOS的要求,以便您可以選擇最佳的MCU,并簡化基于RTOS的設(shè)計的開發(fā)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16667

    瀏覽量

    347798
  • 嵌入式
    +關(guān)注

    關(guān)注

    5046

    文章

    18821

    瀏覽量

    298577
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3218

    瀏覽量

    113686
收藏 人收藏

    評論

    相關(guān)推薦

    risc-v的mcuRTOS兼容性如何

    RTOS的版本和配置也會影響其與RISC-V MCU的兼容性。較新版本的RTOS可能提供了更好的RISC-V支持和優(yōu)化。 在配置RTOS
    發(fā)表于 05-27 16:26

    微控制器MCU常用RTOS盤點

    是不可能塞入MCU去執(zhí)行的,且MCU大多被應(yīng)用在實時控制的環(huán)境,因此許多容量小的RTOS(Real-Time Operating System;實時操作系統(tǒng)),便成為開發(fā)
    發(fā)表于 10-27 14:22

    MSP432 MCU發(fā)揮RTOS所具有的優(yōu)勢

    TI開發(fā)和維護(hù),MSP432 MCU提供超過50個示例來實現(xiàn)對TI-RTOS的完全支持!下面是TI-RTOS的主要結(jié)構(gòu):對于增加的節(jié)電功能,使用Power Manager(電源管理器)
    發(fā)表于 09-10 11:47

    MCU的Flash比較緊張時怎么優(yōu)化?

    對于 MCU 的 Flash 比較緊張時,我們需要考慮代碼體積的優(yōu)化,使其盡量精簡,這樣的代碼在之后的迭代開發(fā)中才可以實現(xiàn)小而美的目標(biāo)。  下面是幾個可以去考慮的優(yōu)化的方向:  裁剪 
    發(fā)表于 03-30 07:53

    介紹MCU串口發(fā)送數(shù)據(jù)的優(yōu)化

    實時性在嵌入式開發(fā)中的非常重要,優(yōu)化MCU串口傳輸處理方式可以提高嵌入式系統(tǒng)的實時性。在互聯(lián)網(wǎng)上學(xué)習(xí)并親自實驗(基于STM32單片機(jī))后,我將分兩次介紹優(yōu)化
    發(fā)表于 02-11 06:18

    Express Logic的ThreadX RTOS協(xié)助開發(fā)

    Express Logic的ThreadX RTOS協(xié)助開發(fā)飛行系統(tǒng) 實時操作系統(tǒng)(RTOS)供貨商Express Logic宣布,Avidyne公司已采用其ThreadX RTOS
    發(fā)表于 11-30 08:50 ?1030次閱讀

    技術(shù)干貨:MCU專用RTOS種類盤點

    微控制器(MCU)廣泛應(yīng)用在各行各業(yè),如各式家電、工業(yè)自動化,即時控制、資料采集等領(lǐng)域,為因應(yīng)工控所需的即時(Realtime)控制、快速回應(yīng)等需求,因此MCU大多搭載RTOS(即時作業(yè)系統(tǒng))運作。##
    發(fā)表于 05-08 10:16 ?9807次閱讀

    TI MCU Design Days講座PPT:TI-RTOS Update: June

    TI MCU Design Days講座PPT:TI-RTOS Update: June
    發(fā)表于 10-24 14:42 ?4次下載
     TI <b class='flag-5'>MCU</b> Design Days講座PPT:TI-<b class='flag-5'>RTOS</b> Update: June

    優(yōu)化基于MCURTOS的設(shè)計和開發(fā)的方法

    本文將快速回顧現(xiàn)代MCU上可用的一些關(guān)鍵功能,這些功能有助于運行需要 RTOS 的嵌入式系統(tǒng)。這將有助于設(shè)計人員更有效地選擇 MCU 作為 RTOS 主機(jī),并使用該
    的頭像 發(fā)表于 10-02 17:18 ?2215次閱讀

    瑞薩電子主流32位MCU擴(kuò)展Microsoft Azure RTOS嵌入式開發(fā)套件

    System(RTOS)嵌入式開發(fā)套件,包括其強(qiáng)大的Azure IoT中間件。最近發(fā)布的用于瑞薩電子RA MCU的靈活軟件包(FSP)3.0版和用于Synergy MCU的Syner
    的頭像 發(fā)表于 06-18 14:46 ?2072次閱讀

    RTOS是什么,裸機(jī)開發(fā)的詳細(xì)介紹

    本課是在聽了韋東山老師的裸機(jī)和RTOS開發(fā)模式課程后,才簡單了解裸機(jī)開發(fā)RTOS開發(fā)的區(qū)別。更多的是對現(xiàn)在自己編程方式有一個認(rèn)知,希望在這
    發(fā)表于 03-07 14:16 ?7265次閱讀
    <b class='flag-5'>RTOS</b>是什么,裸機(jī)<b class='flag-5'>開發(fā)</b>的詳細(xì)介紹

    嵌入式釋放RTOS內(nèi)存性能的使用技巧

    %,需要不到16 KB的閃存空間和不到4 KB的RAM。在大多數(shù)情況下,性能和內(nèi)存問題與開發(fā)人員如何使用RTOS以及他們在如何正確使用和配置RTOS方面的知識差距有關(guān)。下面是開發(fā)人員可
    的頭像 發(fā)表于 09-27 11:50 ?2139次閱讀

    現(xiàn)在是使用標(biāo)準(zhǔn)RTOS API的時間了嗎?

    與嵌入式MCU一起使用的RTOS的名單很長,其中大多數(shù)都有自己的專有功能以及獨特的API。有些API很好,有些則不太好。實際上,好的和不太好的RTOS API之間的差異相當(dāng)小——大多數(shù)RTOS
    發(fā)表于 05-30 11:08 ?208次閱讀

    基于TI AM5728 RTOS開發(fā)手冊

    /IPU(Cortex-M4)端運行RTOS(SYS/BIOS)系統(tǒng),但ARM、DSP、IPU端均可單獨運行RTOS系統(tǒng)。RTOS開發(fā)可基于Windows進(jìn)行,此時需安裝Windows
    發(fā)表于 05-23 17:19 ?18次下載

    RTOS開發(fā)最佳實踐

    基于RTOS編寫應(yīng)用程序時,有一些要注意事項。在本節(jié)中,您將學(xué)習(xí)RTOS開發(fā)最佳實踐,例如POSIX合規(guī)性、安全性和功能安全認(rèn)證。
    的頭像 發(fā)表于 08-20 11:24 ?235次閱讀