91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

一種實現(xiàn)亞毫秒定時分辨率的RTOS新方法

麥克泰技術(shù) ? 來源:麥克泰技術(shù) ? 2024-12-17 13:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

你在使用實時操作系統(tǒng)(RTOS)時是否發(fā)現(xiàn)無法將任務(wù)調(diào)度或延遲精度降到毫秒以下?你可能不得不在RTOS之外編寫大量應(yīng)用代碼。雖然這種方式可行,但這會讓你懷疑應(yīng)用程序是否滿足其截止期限,是否可維護和可擴展。RTOS不應(yīng)該能夠管理整個應(yīng)用程序的時間嗎,不管這個時間是一秒還是一微秒?

對于嵌入式系統(tǒng)領(lǐng)域的開發(fā)和管理人員來說,平衡時間精度和能源效率可能是一項持續(xù)的斗爭。隨著應(yīng)用的發(fā)展,無論是在汽車、物聯(lián)網(wǎng)、醫(yī)療設(shè)備還是工業(yè)自動化領(lǐng)域,對精確定時控制的需求都在增長。雖然傳統(tǒng)的RTOS解決方案在管理實時任務(wù)方面很有效,但在這兩個關(guān)鍵領(lǐng)域往往存在不足。

1. 傳統(tǒng)RTOS的不足

首先,傳統(tǒng)RTOS有精度限制?;诘未鸬南到y(tǒng)不能提供超出滴答(Tick)間隔(如1毫秒)的時間粒度。這種限制影響了執(zhí)行超精細定時操作的能力,例如精密傳感器讀數(shù)或先進機器人的高分辨率控制。事實上,如果不仔細,你甚至可能任務(wù)時序中注入抖動,從而破壞系統(tǒng)的實時性能!

其次,基于滴答的RTOS能效低!即使沒有任務(wù)調(diào)度,周期系統(tǒng)滴答中斷也會使CPU保持活動狀態(tài),從而導致能源浪費,這在電池供電和低功耗設(shè)備中尤為嚴重。雖然一些RTOS試圖通過引入tickless省電模式來克服這個缺陷,但這些解決方案更多的是權(quán)宜之計,而不是完整的功能。

這些限制迫使開發(fā)人員采用效率低下的解決方案,例如輪詢硬件計時器或使用特定于目標的技術(shù)來實現(xiàn)更高的分辨率和更低的功耗,這種方法使開發(fā)過程復(fù)雜化,降低了軟件的可移植性和可維護性。

本文中,我們將探索一種新的機制來精確地調(diào)度低于一毫秒的任務(wù),這種機制可以提高應(yīng)用程序的實時性能,同時提高能效,其好處來自于利用周期精度定時的新RTOS實現(xiàn)。

2. 從基于滴答的調(diào)度到基于周期的調(diào)度

傳統(tǒng)的RTOS使用周期性的系統(tǒng)滴答來跟蹤時間和調(diào)度任務(wù)。例如,大多數(shù)RTOS,如FreeRTOS、Zephyr和embOS-Base,默認使用1毫秒的滴答間隔。這個間隔依賴于每毫秒產(chǎn)生一次中斷的計時器。所有時間相關(guān)的操作(任務(wù)延遲、超時和軟件計時器)都與滴答對齊。如果我們使用SEGGER SystemView這樣的工具來記錄和分析應(yīng)用程序的運行時行為,將看到類似圖1所示的內(nèi)容。

98cfd856-b8ff-11ef-8732-92fbcf53809c.png

圖1:使用周期滴答來跟蹤系統(tǒng)時間的傳統(tǒng)RTOS

如圖所示,系統(tǒng)每隔一毫秒就會中斷一次應(yīng)用,如果系統(tǒng)處于睡眠狀態(tài)并且沒有其他的工作要做,它也會被喚醒以增加計數(shù)并返回睡眠狀態(tài)!

基于滴答的設(shè)計限制了計時精度,并引入了延遲,因為不能以比滴答間隔更細的粒度調(diào)度任務(wù),這是我在許多應(yīng)用中遇到的一個問題,它迫使你思考RTOS之外的實現(xiàn)。

基于周期的調(diào)度通過用單次硬件定時器(single-shot hardware timer)代替周期滴答中斷消除了這種約束。計時器只在需要時產(chǎn)生中斷,而非每毫秒喚醒CPU,從而允許將事件調(diào)度精確到微秒或CPU周期。這種方法提高了精度,減少了CPU的活動,節(jié)約了能源。

讓我們來看一個例子。考慮一個需要持續(xù)4.7毫秒的任務(wù)延遲。在擁有1毫秒滴答間隔的RTOS中,延遲要么提前結(jié)束(4毫秒),要么延長(5毫秒),具體取決于滴答計時。使用基于周期的調(diào)度可以實現(xiàn)精確的4.7毫秒延遲,因為它不再依賴于滴答間隔。

3. embOS-Ultra:高精度和高效率的技術(shù)解決方案

如果調(diào)查當今的RTOS市場,你會發(fā)現(xiàn)SEGGER的embOS-Ultra是唯一支持基于周期調(diào)度的RTOS。因此,我們將關(guān)注embOS-Ultra如何通過引入周期分辨率定時來解決精度和效率方面的挑戰(zhàn),以及這種創(chuàng)新方法如何改善應(yīng)用。

讓我們來分析一下embOS-Ultra是如何在不增加不必要復(fù)雜性的情況下解決精度和效率問題。

通過單次計時器提高能效

通過移除周期滴答,embOS-Ultra顯著降低了CPU負載。即使沒有待處理的工作,傳統(tǒng)的RTOS也會在每個滴答喚醒CPU,這種行為增加了功耗,因為CPU必須保存其當前狀態(tài),處理中斷,并恢復(fù)其狀態(tài),這些不必要的CPU周期消耗了能量。

embOS-Ultra的單次計時器僅在特定事件發(fā)生時喚醒CPU,使系統(tǒng)長時間處于低功耗狀態(tài)。這一特性對于低功耗和電池供電的應(yīng)用尤其有利,例如可穿戴設(shè)備或遠程物聯(lián)網(wǎng)傳感器,在這些應(yīng)用中,節(jié)省的每一點能量都將延長運行時間。然而,即使是連接到恒定電源的設(shè)備也可以通過降低其整體能量配置和減少對電網(wǎng)的需求而受益。

在許多微控制器架構(gòu)中,計時器可以配置為各種模式。EmbOS-Ultra利用定時器計數(shù)到零或到指定值的模式,在需要時觸發(fā)中斷。這種靈活性使開發(fā)人員能夠精確地控制時間事件,而不依賴于周期滴答。正如想象的那樣,允許計時器自由計數(shù)用于調(diào)度,比計數(shù)為零后重置更有好處。

維護系統(tǒng)的長期穩(wěn)定性

你可能會認為,雖然使用單個計時器來提供高分辨率、亞毫秒級的調(diào)度聽起來很棒,但丟失系統(tǒng)滴答將破壞應(yīng)用程序。好消息是它不會,embOS-Ultra使用兩個硬件計時器。一個計時器用于長期連續(xù)運行而不產(chǎn)生中斷。第二個計時器,即我們在前一節(jié)中討論的單次計時器,用于任務(wù)調(diào)度。

這意味著沒有復(fù)雜的算法在后臺運行,試圖確定自系統(tǒng)啟動以來已經(jīng)過了多少毫秒。誠實地說:我們大多數(shù)人都利用系統(tǒng)滴答來提供時間戳、計算過濾器和執(zhí)行其他日?;顒印H绻麖腞TOS中刪除它,我們的開發(fā)將變得更加困難。

添加第二個計時器似乎會增加系統(tǒng)的復(fù)雜性和能效,但事實并非如此。如今,大多數(shù)32位微控制器擁有多個計時器,而且與CPU相比,計數(shù)器使用的電流很少。使用第二計時器的權(quán)衡仍然確保我們最大限度地減少能耗,同時保持系統(tǒng)實時性能的長期穩(wěn)定性。

4. 基于周期調(diào)度的應(yīng)用

了解了周期調(diào)度如何工作后,我們來研究一個示例。SEGGER的網(wǎng)站上提供了一個live comparison示例(https://www.segger.com/products/rtos/embos/editions/embos-ultra/#live-comparison),模擬滴答調(diào)度和周期調(diào)度行為。我建議嘗試一下,獲得一些實際操作經(jīng)驗。

Live comparison示例允許你通過print語句查看每秒產(chǎn)生了多少次滴答。測試應(yīng)用包含兩個任務(wù):一個201毫秒的任務(wù)和一個50毫秒的任務(wù)?;诘未鸬恼{(diào)度器,每秒1000個節(jié)拍。如果使用基于周期的調(diào)度來模擬相同的應(yīng)用程序,則每秒只能獲得24 - 25個節(jié)拍。

遺憾的是,對于模擬程序,無法使用SystemView來記錄和分析應(yīng)用程序行為,因此,我使用live comparison示例運行在開發(fā)板上來分析周期調(diào)度。結(jié)果如圖2所示:

98e3c3de-b8ff-11ef-8732-92fbcf53809c.png

圖2:圖1所示的相同應(yīng)用程序的基于周期調(diào)度實現(xiàn)

如果查看圖2中分析窗口底部的計時差異,你將看到系統(tǒng)的滴答間隔不是固定的。只有在必要時才有一個滴答,在圖2的底部可以看到,滴答之間有49.9毫秒的間隔,然后是16.9毫秒的延遲,以此類推。這是基于周期的計時!基于周期的調(diào)度應(yīng)用程序每秒只有24 - 25個滴答,具體取決于任務(wù)的截止時限。

5. 使用基于周期的調(diào)度,同時保持向后兼容性

遷移到新的RTOS帶來的風險和復(fù)雜性,可能是開發(fā)人員和管理人員非常關(guān)心的問題。embOS-Ultra通過在提供擴展功能的同時保持與現(xiàn)有API兼容來解決這個問題。

首先,對使用embOS-Base或其他滴答RTOS API的應(yīng)用程序,可以在embOS-Ultra中繼續(xù)發(fā)揮預(yù)期的作用。embOS-Ultra中保留了基于毫秒的計時功能,確保已有代碼無需修改。如果使用的是embOS-Base,則API直接兼容。如果使用其它RTOS,你可能會有一天左右的時間將RTOS調(diào)用更新為embOS-Ultra。

其次,對于需要更高精度的開發(fā)人員,embOS-Ultra引入了擴展的API,例如用于微秒延遲的OS_TASK_Delay_us()或用于周期調(diào)度的OS_TASK_Delay_Cycles()。這些函數(shù)與傳統(tǒng)API調(diào)用共存,允許開發(fā)人員在不修改整個代碼庫的情況下逐步采用高級功能。

讓我們來看一個例子。假設(shè)我們想每1,000,000個周期向終端發(fā)送一次打印“Hello World!”,我可能會用下面的語法創(chuàng)建一個名為Hello的RTOS任務(wù):

98f6ffe4-b8ff-11ef-8732-92fbcf53809c.png

OS_TASK_Delay_Cycles以周期方式指定了任務(wù)掛起操作的最小時間間隔,因此,當調(diào)用OS_TASK_Delay_Cycles時,如果系統(tǒng)周期計數(shù)為1,000,000,則100萬周期的延遲將在系統(tǒng)周期計數(shù)為2,000,000時到期。

注意,作為開發(fā)人員,你可以控制單個周期所代表的時間間隔。它可以是單個CPU周期,也可以是更長的時間,這取決于你如何為使用的計時器配置時鐘分頻器。好消息是,SEGGER為各種微控制器提供了許多移植實現(xiàn),所以你不必自己編寫這些;只有當默認值不能滿足需要時,才需要知道如何通過API來調(diào)整。

這種雙重計時方法意味著工程師不必在傳統(tǒng)實現(xiàn)和高精度之間做出選擇,他們可以在同一應(yīng)用中同時使用這兩種方法。無論是從embOS-Base還是其他基于滴答的系統(tǒng)(如CMSIS-RTOS)遷移,開發(fā)人員都可以很方便的使用embOS-Ultra,因為必要的應(yīng)用更改很小且簡單。

6. 下一步工作

基于周期的調(diào)度代表了一種技術(shù)進步,它解決了開發(fā)人員和管理人員在當今嵌入式系統(tǒng)中面臨的核心挑戰(zhàn),在實現(xiàn)微秒精度的同時最大限度地提高能效。通過消除傳統(tǒng)的系統(tǒng)滴答,并提供靈活的、基于周期的方法,embOS-Ultra提供了一種精確、節(jié)能且與現(xiàn)有RTOS設(shè)置兼容的解決方案。

基于周期的調(diào)度為希望在沒有復(fù)雜遷移風險的情況下提高系統(tǒng)的性能和能源配置的嵌入式專業(yè)人員提供了一種實用而先進的替代方案。你可以通過下列步驟了解更多關(guān)于周期調(diào)度的信息。

首先,查看embOS-Ultra RTOS手冊(https://www.segger.com/downloads/embos/UM01076_embOS_Ultra.pdf),它包含了許多示例,描述了高精度和周期調(diào)度如何工作。

接下來,可以下載并試用基于SEGGER的示例仿真項目(https://www.segger.com/products/rtos/embos/editions/embos-ultra/#live-comparison),你可以使用它來測試embOS-Base和embOS-Ultra之間的差異,甚至可以在開發(fā)板上嘗試。

最后,確認了更精確的計時和節(jié)能的好處后,即可在嵌入式系統(tǒng)采用基于周期計時功能了。

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

    關(guān)注

    25

    文章

    866

    瀏覽量

    123070
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3344

    瀏覽量

    60283

原文標題:一種實現(xiàn)亞毫秒定時分辨率的RTOS新方法

文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    佛瑞海拉與恩智浦在高分辨率雷達技術(shù)領(lǐng)域展開合作

    在科技盛宴CES 2026期間,佛瑞海拉與恩智浦半導體正式官宣在高分辨率雷達技術(shù)領(lǐng)域展開合作,聚焦最新代高分辨率雷達傳感器[ForWave7HD],共同為智能駕駛的未來描繪宏偉藍圖
    的頭像 發(fā)表于 01-29 09:57 ?606次閱讀

    用于窄帶匹配高速射頻ADC的全新方法

    本期,為大家?guī)淼氖恰队糜谡瓗ヅ涓咚偕漕l ADC 的全新方法》,介紹了一種用于窄帶匹配高速射頻 ADC 的全新方法,以解決高中間頻率系統(tǒng)中 ADC 前端窄帶匹配的設(shè)計難題,可在 ADC 額定帶寬內(nèi)應(yīng)用,能提升 ADC 性能、減
    的頭像 發(fā)表于 01-04 15:56 ?6444次閱讀
    用于窄帶匹配高速射頻ADC的全<b class='flag-5'>新方法</b>

    紅外焦平面探測器的分辨率有哪些?高分辨率有哪些優(yōu)勢?

    分辨率是我們選購紅外探測器時的個關(guān)鍵參數(shù),它代表了熱成像像素點的數(shù)量。分辨率越高,像素點就越多,圖像就越清晰,觀測的距離也越遠。紅外熱成像常見的分辨率有120x90、256x192、
    的頭像 發(fā)表于 12-10 16:12 ?1218次閱讀
    紅外焦平面探測器的<b class='flag-5'>分辨率</b>有哪些?高<b class='flag-5'>分辨率</b>有哪些優(yōu)勢?

    ADC分辨率與精度的區(qū)別是什么

    簡單點說,“精度”是用來描述物理量的準確程度的,而“分辨率”是 用來描述刻度劃分的。從定義上看,這兩個量應(yīng)該是風馬牛不相及的。(是不是有朋友感到愕然^_^)。 很多賣傳感器的JS就是利用這
    發(fā)表于 12-05 06:24

    鏡頭分辨率如何匹配工業(yè)相機的分辨率

    能被分辨開來的兩個物點之間的最小距離,就是鏡頭的物方分辨率。單位為μm。這只是單純鏡頭本身的參數(shù),只反映鏡頭的解析能力,而和工業(yè)相機多少像素無關(guān)!它直接反映了,個理想物點經(jīng)過鏡頭成像后,會模糊
    的頭像 發(fā)表于 11-21 15:43 ?387次閱讀
    鏡頭<b class='flag-5'>分辨率</b>如何匹配工業(yè)相機的<b class='flag-5'>分辨率</b>

    提高電能質(zhì)量在線監(jiān)測裝置的暫態(tài)記錄分辨率方法有哪些?

    ? 提高電能質(zhì)量在線監(jiān)測裝置暫態(tài)記錄分辨率,核心是從 硬件升級、算法優(yōu)化、數(shù)據(jù)處理、校準同步 四個維度突破,同時平衡 “分辨率提升” 與 “成本、功耗、穩(wěn)定性”,具體方法可落地為以下 6 類關(guān)鍵措施
    的頭像 發(fā)表于 11-14 16:12 ?2103次閱讀

    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)記錄分辨率如何影響故障類型識別?

    、相位差),低分辨率則會讓特征模糊或丟失,直接導致故障類型誤判。具體影響可按核心分辨率指標與故障識別邏輯拆解: 、核心影響邏輯:分辨率決定 “故障特征的可識別度” 不同故障類型(雷擊
    的頭像 發(fā)表于 11-14 16:10 ?1906次閱讀
    電能質(zhì)量在線監(jiān)測裝置的暫態(tài)記錄<b class='flag-5'>分辨率</b>如何影響故障類型識別?

    迅為RK3588開發(fā)板Android系統(tǒng)修改屏幕分辨率和density

    先來了解下屏幕相關(guān)的基本概念 修改屏幕分辨率和 density 有倆種方法。 方法: 輸入以下命令查看分辨率的大小,如下圖所示: wm s
    發(fā)表于 08-12 16:53

    精度,重復(fù)精度和分辨率有什么關(guān)聯(lián)

    精度,重復(fù)精度和分辨率,這三個令人疑惑的術(shù)語有很多種定義方法。
    的頭像 發(fā)表于 07-26 17:13 ?947次閱讀
    精度,重復(fù)精度和<b class='flag-5'>分辨率</b>有什么關(guān)聯(lián)

    芯片制造中高精度膜厚測量與校準:基于紅外干涉技術(shù)的新方法

    、環(huán)境光干擾及薄膜傾斜等因素限制,測量精度難以滿足高精度工業(yè)需求。為此,本研究提出一種融合紅外干涉與激光校準的薄膜厚度測量新方法,旨在突破傳統(tǒng)技術(shù)瓶頸,實現(xiàn)更精準、
    的頭像 發(fā)表于 07-21 18:17 ?2926次閱讀
    芯片制造中高精度膜厚測量與校準:基于紅外干涉技術(shù)的<b class='flag-5'>新方法</b>

    無刷直流電機反電勢過零檢測新方法

    新方法。在三相采樣等效電路上分別并聯(lián)組三極管控制的電阻分壓開關(guān)電路,參考電機轉(zhuǎn)速線性調(diào)節(jié)控制信號占空比,以此控制三極管通斷,從而調(diào)節(jié)電阻分樂開關(guān)電路阻值,可以避免高速時反電勢幅值高于檢測電路供電電壓
    發(fā)表于 06-26 13:50

    分辨率 vs 噪聲 —— ADC的挑戰(zhàn)

    設(shè)計者常用高分辨率 ADC 以降低最低可量測單位(LSB),提高檢測精度。 比如個 16 位 ADC 在 5V 范圍內(nèi), LSB ≈ 76 μV ;理想情況下可以檢測到微弱電信號。 問題是: 若
    的頭像 發(fā)表于 06-23 07:38 ?1975次閱讀
    <b class='flag-5'>分辨率</b> vs 噪聲 —— ADC的挑戰(zhàn)

    如何計算存儲示波器的垂直分辨率?

    存儲示波器的垂直分辨率是指示波器能夠分辨的最小電壓變化量,它反映了示波器對信號幅度細節(jié)的測量能力,通常用位數(shù)(bit)來表示,也可通過相關(guān)公式換算為具體的電壓值。以下為你詳細介紹其計算方法:了解關(guān)鍵
    發(fā)表于 05-30 14:03

    LT8722如何實現(xiàn)分辨率的脈沖?

    resolution should be 333/2^(24)=0.00002 ns. 如何實現(xiàn)如此高分辨率的脈沖? PWM 是否由模擬比較器產(chǎn)生?芯片中是否有真正的 DAC 來產(chǎn)生比較器電壓? What
    發(fā)表于 04-28 06:08

    高光譜相機的空間分辨率,光譜范圍等參數(shù)我們要如何理解

    高光譜相機作為一種強大的成像工具,其性能由多個關(guān)鍵參數(shù)決定,其中 空間分辨率 和 光譜范圍 尤為重要。理解這些參數(shù)的含義及其影響,對于選擇合適的高光譜相機至關(guān)重要。我們可以綜合下圖的參數(shù)來做對
    的頭像 發(fā)表于 03-14 10:35 ?1430次閱讀