一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

如何最大限度地提高物聯(lián)網(wǎng)項目的效率

Silicon Labs ? 來源:未知 ? 作者:佚名 ? 2017-08-31 10:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大幅提高物聯(lián)網(wǎng)項目的效率

作者:Matt Gordon;Thom Denholm, Silicon Labs(亦稱芯科科技

如果只研讀最新的微控制器數(shù)據(jù)手冊的話,開發(fā)人員會很容易認為高效使用CPU資源(包括內(nèi)存和時鐘周期),是目前硬件設(shè)計中的一個小問題。最新的32MCU可以在嵌入式空間提供閃存和RAM分配,這在不久前都是聞所未聞的;并且其CPU與之前臺式機獨有的運行速度一樣。然而,近來開發(fā)過物聯(lián)網(wǎng)產(chǎn)品的人都知道,這些硬件的進步并非空穴來風(fēng);它們一直因應(yīng)著最終用戶的期望和設(shè)計要求顯著地變化著。因此,現(xiàn)在比以往任何時候都更重要的是:開發(fā)人員要確保其軟件以最大效率運行,并且有效地利用他們的時間。

在現(xiàn)代嵌入式系統(tǒng)中運行的軟件往往有各種來源。應(yīng)用開發(fā)人員編寫的代碼通常與RTOS(實時操作系統(tǒng))提供商的現(xiàn)成軟件組件相結(jié)合,而這些組件又可能利用最初由半導(dǎo)體公司提供的驅(qū)動程序代碼。開發(fā)人員可以編寫每段代碼來優(yōu)化效率,但本文更著重于現(xiàn)成的軟件組件中的效率優(yōu)化。特別是其中兩個組成部分將作為審視本文給出的資源效率的基礎(chǔ):實時內(nèi)核和事務(wù)文件系統(tǒng)(transactional file system)。Silicon Labs(亦芯科科技)將通過本篇技術(shù)文章說明如何最大限度地提高物聯(lián)網(wǎng)項目的效率,歡迎點擊閱讀原文觀看完整文章。

實時內(nèi)核:高效系統(tǒng)的核心

實時內(nèi)核是當(dāng)今許多嵌入式系統(tǒng)中運行的軟件的核心。簡單說,內(nèi)核是一個調(diào)度程序;為基于內(nèi)核的系統(tǒng)編寫應(yīng)用程序代碼的開發(fā)人員將代碼分為任務(wù),內(nèi)核負責(zé)安排這些任務(wù)。那么,內(nèi)核是main()中無限循環(huán)的替代方法,它常常作為裸機(bare-metal)嵌入式系統(tǒng)中的主要調(diào)度機制。使用實時內(nèi)核提供了重要優(yōu)點,包括提高效率。選擇將其應(yīng)用代碼基于內(nèi)核的開發(fā)人員可以優(yōu)化其系統(tǒng)中處理器資源的使用,同時更有效地利用自己的時間。然而,并不是所有的內(nèi)核都生而相同,因此簡單地決定在新項目中采用內(nèi)核,并不能保證效率的提升。

調(diào)度是內(nèi)核可能不同且CPU資源的使用效率可以有很大差異的關(guān)鍵領(lǐng)域。通過提供一種允許任務(wù)以響應(yīng)事件的方式運行的智能調(diào)度機制,內(nèi)核可幫助開發(fā)人員在無限循環(huán)中提升效率;其中以固定順序執(zhí)行任務(wù)(或換句話說,函數(shù))?;趦?nèi)核的應(yīng)用程序的確切效率部分取決于其調(diào)度程序的實現(xiàn)方式。一個內(nèi)核的調(diào)度程序(只是一段負責(zé)決定每個任務(wù)何時運行的代碼)最終是種開銷,這個開銷必須不能蠶食掉通過擺脫裸機系統(tǒng)獲得的好處。

通常,在實時內(nèi)核中,調(diào)度是基于優(yōu)先級的,這意味著應(yīng)用程序開發(fā)人員為其任務(wù)分配優(yōu)先級(通常為數(shù)字),并且在做出調(diào)度決策時,內(nèi)核支持更高優(yōu)先級的任務(wù)運行。在這種機制下,內(nèi)核必須保持某種類型的數(shù)據(jù)結(jié)構(gòu)、跟蹤應(yīng)用程序不同任務(wù)的優(yōu)先級以及每個任務(wù)的當(dāng)前狀態(tài)。

Micrium-C/OS-II內(nèi)核獲取的一個例子如圖1所示。在OSRdyTbl []中,這里顯示的是8元素數(shù)組(每元素八位),每個位表示不同的任務(wù)優(yōu)先級;其中:第一個元素中的最低有效位對應(yīng)最高優(yōu)先級;最后一個元素中的最高有效位表示最低優(yōu)先級。數(shù)組的位值反映任務(wù)狀態(tài):如果相關(guān)優(yōu)先級的任務(wù)準備就緒,則用值1表示;若任務(wù)未準備就緒,就用0表示。作為-C / O S - I I調(diào)度程序的一部分,附帶的OSRdyTbl []是圖中所示的單個八位變量—OSRdyGrp。

1:在μC/OS-II調(diào)度程序中,每個任務(wù)優(yōu)先級由數(shù)組中的位表示

該變量中的每個位表示數(shù)組中的一整行或元素:1位表示對應(yīng)的行至少有一個就緒任務(wù);0位表示該行的任務(wù)都沒就緒。通過使用清單1中所示的代碼首先掃描OSRdyGrp、再掃描OSRdyTbl[],-C/OS-II可以確定在任何給定時間已準備好運行的最高優(yōu)先級任務(wù)。如列表所示,此操作很高效,只需要兩行C代碼。當(dāng)然,緊湊、高效的代碼只是開發(fā)人員在內(nèi)核中尋求的特性之一。鑒于大多數(shù)新MCU提供的閃存要相對多于RAM,對于開發(fā)人員來說,考慮內(nèi)核所占用空間的數(shù)據(jù)端也很重要。對于內(nèi)核的調(diào)度程序來說,臃腫的RAM占用會導(dǎo)致過多開銷,從而減少多任務(wù)應(yīng)用程序代碼通常帶來的好處。

內(nèi)核可以采用兩種方法來分配多任務(wù)所需的基本資源:分配這些資源的責(zé)任可以留給應(yīng)用代碼;或者內(nèi)核本身可以處理分配。在任何內(nèi)核中必然會存在某些變量和數(shù)據(jù)結(jié)構(gòu),因為它們對于執(zhí)行多任務(wù)服務(wù)至關(guān)重要,所以這些變量和數(shù)據(jù)結(jié)構(gòu)完全放在內(nèi)核中。然而,對諸如用于記錄每個任務(wù)狀態(tài)的TCB(或任務(wù)控制塊)等數(shù)據(jù)結(jié)構(gòu),或甚至對于在上下文切換時存儲CPU寄存器值的堆棧,內(nèi)核提供者可以選擇在內(nèi)部分配或依賴應(yīng)用代碼實現(xiàn)。

任何一種方法,如果實現(xiàn)時以靈活性為目標之一,都可以產(chǎn)生一個高效內(nèi)核。延遲將資源分配給應(yīng)用代碼也許是為開發(fā)人員提供最大靈活性的方法,因為它為靜態(tài),或動態(tài)分配機制留有選擇。 Micrium-C/OS-III采用這種方法,讓應(yīng)用程序開發(fā)人員決定如何最好地分配其TCB和堆棧。然而,如同Micrium-C/OS-II中的TCB情況一樣,強制在內(nèi)核中實施資源分配可以是同樣有效的方法,只要有能配置所分配資源量的方法即可。最終,應(yīng)用開發(fā)人員需要一種從系統(tǒng)的內(nèi)存空間中消除未使用資源的方法。

文件系統(tǒng)效率

大多數(shù)設(shè)備需要存儲數(shù)據(jù)和日志事件的選項,作為在傳送到云之前的臨時保存空間、或者是更長久地存儲在設(shè)備上。為此目的設(shè)計的任何代碼都是文件系統(tǒng),無論是由開發(fā)人員編寫和測試的、還是作為RTOS方案的一部分提供。文件系統(tǒng)還可以提供效率選項。其范圍可從簡單(保留多少內(nèi)存緩沖區(qū))到復(fù)雜(是否支持完整的POSIX操作)。

開發(fā)人員應(yīng)從其數(shù)據(jù)存儲要求開始。該數(shù)據(jù)是否在現(xiàn)場進行操作?或僅存儲并稍后傳送?要測量多少內(nèi)容?其數(shù)據(jù)應(yīng)該分開或組合嗎?在對設(shè)備實施數(shù)據(jù)采集前先行存儲數(shù)據(jù)嗎?還是將其傳送到云?存儲介質(zhì)有多可靠?設(shè)計能完全免受電源故障的影響嗎?首先,一些RTOS提供類似FAT的文件系統(tǒng)。這包括使用標準介質(zhì)格式(包括文件夾和文件) 執(zhí)行I /O的代碼。一般來說,其可定制程度受限,很少能防范電源故障時的數(shù)據(jù)丟失。

另一個選擇是DatalightRelianceEdge,它使用交易點(transactionpoint)來提供里令人興奮的是:設(shè)計的靈活性如何有助于提高效率。Reliance Edge提供存儲選項的定制。在最小用例中,稱為文件系統(tǒng)要素,不使用文件夾甚至文件名。數(shù)據(jù)存儲到編號的inode中。這些位置的計數(shù)在編譯時確定,但大小不是預(yù)先確定的。一個文件可以包含比其它文件更多的數(shù)據(jù),并且僅當(dāng)文件的總大小達到閾值時,存儲介質(zhì)才裝滿。還可自由地對文件進行截取、讀取和寫入。

相比之下,FAT格式的文件系統(tǒng)具有專用于兩個文件分配表的介質(zhì)塊。對于每個用戶數(shù)據(jù)文件,分配了文件名和元數(shù)據(jù)前者可能相當(dāng)大以支持長文件名。如果使用子文件夾,其元數(shù)據(jù)和長文件名也將占用空間。所有這些都會導(dǎo)致存儲介質(zhì)上所收集的用戶數(shù)據(jù)可用空間變少。

對于較大的設(shè)計,Reliance Edge提供了更像POSIX的環(huán)境。這里的文件名、文件夾和文件系統(tǒng)元數(shù)據(jù)(如屬性以及數(shù)據(jù)和時間)是一個可配置選項。對于期望從其它設(shè)計移植POSIX接口的應(yīng)用來說,這可能是個非常好的選擇。最終,文件系統(tǒng)要求的最終選擇與用例直接相關(guān),這是迄今為止最有效的資源方案。

全面考量效率

除了資源使用問題之外,多年來,在購買內(nèi)核、文件系統(tǒng)和其他軟件模塊時,效率一直是開發(fā)者關(guān)注的頭等大事。這是因為用于證明采用這種模塊的理由通常是:從頭開始編寫等效的代碼是浪費時間。換句話說,應(yīng)用開發(fā)人員最有效的時間利用是編寫應(yīng)用程序,而不是死磕數(shù)萬行的基礎(chǔ)架構(gòu)代碼。

然而,正如內(nèi)核和文件系統(tǒng)的使用本身并不能保證CPU資源的有效應(yīng)用一樣,將這些模塊引入新項目的決定,也不會自動確保開發(fā)人員能最有效地使用其時間。為了真正讓開發(fā)人員專注于應(yīng)用級代碼,嵌入式軟件模塊必須具有直觀的界面,并且該界面必須有詳盡文檔。在沒有有用文檔的情況下,開發(fā)人員可能要花數(shù)周的時間來解決事后證明是函數(shù)誤用導(dǎo)致的問題。

不幸的是,如果不能可靠地實現(xiàn)所描述的功能,甚至文檔編寫良好的代碼也會不必要地浪費開發(fā)時間。這就是為什么除了要求完整的文檔外,開發(fā)人員在為新項目選擇軟件時,應(yīng)尋求可靠性證據(jù)例如過去的認證或測試結(jié)果。實際上,每個軟件模塊在宣傳文獻中都是可靠的,但只有部分模塊提供了可靠證明,能保證它們言行一致。

例如,DatalightReliance Edge就有用于各種不同測試的源代碼,允許應(yīng)用開發(fā)人員確認文件系統(tǒng)在特定開發(fā)環(huán)境中能否可靠運行。示例:開發(fā)具最高效率的IoT醫(yī)療設(shè)備什么類型的開發(fā)環(huán)境可能出現(xiàn)在物聯(lián)網(wǎng)項目中?鑒于嵌入式設(shè)備中連接需求的快速增長,不可能確定一種硬件、軟件和工具鏈的特定組合來界定這個范圍。找到完全代表物聯(lián)網(wǎng)可能性范圍的單一終端產(chǎn)品同樣具有挑戰(zhàn)性。盡管如此,這一領(lǐng)域的討論當(dāng)然可以從具體的例子中受益。一種有助于說明物聯(lián)網(wǎng)開發(fā)者面臨的一些挑戰(zhàn)的產(chǎn)品,就是在幾年之前甚至不會被認為是種連接設(shè)備的血糖儀。

該產(chǎn)品的關(guān)鍵特征之一是市場容量:血糖儀每年的產(chǎn)量有數(shù)百萬,并且往往以低于成本的價格出售,甚至免費贈送。因此,降低BOM成本,并最短化這些儀器開發(fā)時間的壓力很大。不過,開發(fā)這些設(shè)備并不容易。事實上,新血糖儀的功能列表可能包括彩色顯示、數(shù)據(jù)記錄功能和云連接。面對如此復(fù)雜的需求列表,負責(zé)血糖儀開發(fā)的團隊當(dāng)然希望利用內(nèi)核的多任務(wù)功能。優(yōu)化內(nèi)核的內(nèi)存占用可能是該團隊的首要關(guān)注點之一,因為典型的高產(chǎn)量、低成本MCU往往只有有限的閃存和RAM資源。減少空間占用的關(guān)鍵步驟是刪除應(yīng)用代碼不需要的任何內(nèi)核資源(TCB)。消除應(yīng)用的各種內(nèi)核管理任務(wù)所需的堆棧中的浪費也將會有幫助。

Micrium-C/Probe這樣的工具,可用于實現(xiàn)這一目標,其截圖如圖2所示。-C/Probe可以深入了解基于內(nèi)核的應(yīng)用的棧(stack)和堆(heap)的使用情況,使開發(fā)人員能夠輕松識別低效并提高效率。當(dāng)實施血糖儀的數(shù)據(jù)記錄功能時,儀器的開發(fā)團隊將受益于文件系統(tǒng)的功能。在此,與內(nèi)核一樣,使用現(xiàn)成的軟件模塊可以減輕團隊開發(fā)基礎(chǔ)架構(gòu)代碼的負擔(dān),從而有助于實現(xiàn)短得多、具成本效益的開發(fā)周期。處理器資源使用作為系統(tǒng)的總體約束之一,在開發(fā)數(shù)據(jù)記錄代碼時不可避免地需要予以考慮,因此使用高效的事務(wù)文件系統(tǒng)是理想情況。

2FAT文件系統(tǒng)與Reliance Edge (資料來源:Datalight)

借助Reliance Edge等文件系統(tǒng)方案,開發(fā)團隊可以輕松地將服務(wù)縮減到最低限度,以便為應(yīng)用程序留出盡可能多的存儲空間。

3μC/Probe提供對系統(tǒng)數(shù)據(jù)的運行時訪問,包括內(nèi)核統(tǒng)計信息(來源:Micrium)。

結(jié)論

雖然每個嵌入式系統(tǒng)都有其獨特的需求,但是適用于最大限度提高血糖儀效率的方法可以很容易地用于開發(fā)其它類設(shè)備。組件重用早已被公認為軟件開發(fā)的最佳實踐,血糖儀所需的許多基礎(chǔ)架構(gòu)代碼(包括實時內(nèi)核和文件系統(tǒng))可以作為其它設(shè)備的基礎(chǔ),除了替換少數(shù)底層代碼外,僅需很少改動。通過選擇質(zhì)量有保證的現(xiàn)成的組件作為項目基礎(chǔ),開發(fā)團隊可以確保自己的資源以及嵌入式硬件的有效利用,并且可以專注于編寫創(chuàng)新的應(yīng)用代碼,使其設(shè)計在眾多的產(chǎn)品中脫穎而出。物聯(lián)網(wǎng)創(chuàng)新的曙光已經(jīng)開始閃亮


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

原文標題:【技術(shù)干貨】大幅提高IoT項目效率

文章出處:【微信號:SiliconLabs,微信公眾號:Silicon Labs】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    同步降壓式 DC/DC 轉(zhuǎn)換器能夠最大限度提高降壓轉(zhuǎn)換效率

    和尺寸。L6983 有低消耗模式 (LCM) 和低噪音模式 (LNM) 版本。LCM 通過控制輸出電壓紋波最大限度提高了輕載效率,使該器件適用于電池供電型應(yīng)用。LNM 模式能使開關(guān)頻率保持恒定并
    的頭像 發(fā)表于 07-19 14:16 ?5164次閱讀

    通過精心的IF信號鏈設(shè)計最大限度提高16位 105Msps ADC的性能

    DN468- 通過精心的IF信號鏈設(shè)計最大限度提高16位,105Msps ADC的性能
    發(fā)表于 09-04 14:09

    如何最大限度提高Σ-Δ ADC驅(qū)動器的性能

    最大限度提高Σ-Δ ADC驅(qū)動器的性能
    發(fā)表于 01-06 07:05

    如何最大限度的去實現(xiàn)LTE潛力?

    如何最大限度的去實現(xiàn)LTE潛力?
    發(fā)表于 05-25 06:12

    Cortex-M如何最大限度提高SoC設(shè)計的能效端點

    隨著現(xiàn)代微控制器和SoC變得越來越復(fù)雜,設(shè)計者面臨著最大化能源效率,同時實現(xiàn)更高水平的集成。最大限度提高能量在低功耗SoC市場中,多個功率域的使用被廣泛采用。在 同時,為了解決更高級
    發(fā)表于 08-02 06:34

    機器監(jiān)測:通過性能測量,最大限度提高生產(chǎn)質(zhì)量

    機器監(jiān)測:通過性能測量,最大限度提高生產(chǎn)質(zhì)量。
    發(fā)表于 03-21 16:34 ?0次下載

    最大限度提高高壓轉(zhuǎn)換器的功率密度

    電子發(fā)燒友網(wǎng)站提供《最大限度提高高壓轉(zhuǎn)換器的功率密度.doc》資料免費下載
    發(fā)表于 12-06 14:39 ?308次下載

    印刷電路板定子最大限度提高電機應(yīng)用的效率

    每年消耗 25 萬億千瓦時的電力,其中 53% 是由傳統(tǒng)電動機消耗的。因此,在減少碳足跡的同時最大限度提高效率是一項強制性任務(wù)。
    的頭像 發(fā)表于 08-04 17:22 ?3880次閱讀

    如何最大限度提高電子設(shè)備中能量收集的效率

    如何最大限度提高電子設(shè)備中能量收集的效率
    的頭像 發(fā)表于 12-30 09:40 ?1491次閱讀

    最大限度提高數(shù)據(jù)庫效率和性能VMware環(huán)境使用32G NVMe光纖渠道

    電子發(fā)燒友網(wǎng)站提供《最大限度提高數(shù)據(jù)庫效率和性能VMware環(huán)境使用32G NVMe光纖渠道.pdf》資料免費下載
    發(fā)表于 08-07 10:10 ?0次下載
    <b class='flag-5'>最大限度</b>地<b class='flag-5'>提高</b>數(shù)據(jù)庫<b class='flag-5'>效率</b>和性能VMware環(huán)境使用32G NVMe光纖渠道

    最大限度提高∑-? ADC驅(qū)動器的性能

    電子發(fā)燒友網(wǎng)站提供《最大限度提高∑-? ADC驅(qū)動器的性能.pdf》資料免費下載
    發(fā)表于 11-22 09:19 ?0次下載
    <b class='flag-5'>最大限度</b><b class='flag-5'>提高</b>∑-? ADC驅(qū)動器的性能

    最大限度保持系統(tǒng)低噪聲

    最大限度保持系統(tǒng)低噪聲
    的頭像 發(fā)表于 11-27 16:58 ?714次閱讀
    <b class='flag-5'>最大限度</b>保持系統(tǒng)低噪聲

    利用TI GaN中的集成電流檢測功能更大限度提高系統(tǒng)效率

    電子發(fā)燒友網(wǎng)站提供《利用TI GaN中的集成電流檢測功能更大限度提高系統(tǒng)效率.pdf》資料免費下載
    發(fā)表于 08-29 11:28 ?0次下載
    利用TI GaN中的集成電流檢測功能更<b class='flag-5'>大限度</b><b class='flag-5'>提高</b>系統(tǒng)<b class='flag-5'>效率</b>

    最大限度提高GSPS ADC中的SFDR性能:雜散源和Mitigat方法

    電子發(fā)燒友網(wǎng)站提供《最大限度提高GSPS ADC中的SFDR性能:雜散源和Mitigat方法.pdf》資料免費下載
    發(fā)表于 10-10 09:16 ?0次下載
    <b class='flag-5'>最大限度</b>地<b class='flag-5'>提高</b>GSPS ADC中的SFDR性能:雜散源和Mitigat方法

    最大限度提高MSP430? FRAM的寫入速度

    電子發(fā)燒友網(wǎng)站提供《最大限度提高MSP430? FRAM的寫入速度.pdf》資料免費下載
    發(fā)表于 10-18 10:09 ?1次下載
    <b class='flag-5'>最大限度</b>地<b class='flag-5'>提高</b>MSP430? FRAM的寫入速度