嵌入式實(shí)時(shí)操作系統(tǒng) (RTOS) 市場(chǎng)在經(jīng)歷了多年在整個(gè)高科技領(lǐng)域的默默無聞之后,突然變得非常流行。近幾個(gè)月來,多年來一直在悄悄幫助嵌入式系統(tǒng)開發(fā)人員為其產(chǎn)品添加多任務(wù)功能的 RTOS 供應(yīng)商發(fā)現(xiàn),他們的競(jìng)爭(zhēng)對(duì)手現(xiàn)在可能包括 ARM 甚至谷歌等科技巨頭。根據(jù)這些公司自己的說法,他們向 RTOS 領(lǐng)域擴(kuò)張的動(dòng)機(jī)可以用現(xiàn)在無處不在的三個(gè)字母縮寫詞來概括:物聯(lián)網(wǎng)。 ???
最初,物聯(lián)網(wǎng)和 RTOS 之間的關(guān)聯(lián)可能并不完全明顯。我們都聽說物聯(lián)網(wǎng)將推動(dòng)大量嵌入式系統(tǒng)的開發(fā),但這些系統(tǒng)對(duì) RTOS 的依賴似乎并沒有引起媒體的太多關(guān)注。顯然,ARM、谷歌和許多其他潛在的嵌入式操作系統(tǒng)提供商的假設(shè)是大多數(shù)物聯(lián)網(wǎng)產(chǎn)品將基于 RTOS。 ???
越來越復(fù)雜的設(shè)備
許多可能導(dǎo)致在物聯(lián)網(wǎng)中廣泛采用 RTOS 的因素也存在于傳統(tǒng)的嵌入式系統(tǒng)中,但由于對(duì)最新支持互聯(lián)網(wǎng)的產(chǎn)品的需求而被放大。復(fù)雜性是這種因素的一個(gè)典型例子。在高層次上,RTOS 可以被視為管理復(fù)雜性的一種手段,并且相對(duì)容易想象現(xiàn)有的嵌入式系統(tǒng)隨著它演變?yōu)槲锫?lián)網(wǎng)設(shè)備而變得更加復(fù)雜。
盡管進(jìn)行概括總是存在危險(xiǎn),但根據(jù)定義,所有物聯(lián)網(wǎng)產(chǎn)品都有某些特征。首先,物聯(lián)網(wǎng)上的設(shè)備必須是“事物”,這是嵌入式系統(tǒng)的一個(gè)可笑的通用術(shù)語。就像物聯(lián)網(wǎng)出現(xiàn)之前存在的無數(shù)嵌入式系統(tǒng)一樣,每個(gè)“事物”都與外部世界保持某種類型的交互。因此,如圖 1 所示,“事物”必須使用傳感器、執(zhí)行器或兩者兼而有之。
圖 1:物聯(lián)網(wǎng)設(shè)備可能有許多非常不同的組件。
僅這一要求就可以激勵(lì)開發(fā)人員尋求多任務(wù)內(nèi)核的幫助,傳統(tǒng)嵌入式系統(tǒng)中 RTOS 的高采用率就是證明。然而,物聯(lián)網(wǎng)設(shè)備的復(fù)雜性超出了傳感器和執(zhí)行器所需的復(fù)雜性,因?yàn)檫@樣的設(shè)備當(dāng)然必須直接或間接連接到互聯(lián)網(wǎng)。設(shè)備必須有某種機(jī)制來發(fā)送和接收數(shù)據(jù)包。
通信所需的軟件在不同類別的設(shè)備之間可能會(huì)有很大差異。在某些情況下,完整的協(xié)議棧是必要的,而在其他情況下,網(wǎng)關(guān)和專用網(wǎng)絡(luò)硬件的存在使得只能使用串行驅(qū)動(dòng)程序。然而,在所有設(shè)備中,通信需求增加了一定程度的復(fù)雜性,因此為使用 RTOS 創(chuàng)造了額外的動(dòng)力。
電源問題
另一個(gè)可能推動(dòng) RTOS 在 IoT 中采用的因素是對(duì)有效電源管理的廣泛需求。許多互聯(lián)網(wǎng)預(yù)言家的假設(shè)似乎是物聯(lián)網(wǎng)上的很大一部分設(shè)備將由電池供電,并且有望在沒有任何用戶干預(yù)的情況下長(zhǎng)時(shí)間運(yùn)行。在這里,RTOS 可以再次證明是非常有益的。
從理論上講,最新的 MCU 很容易實(shí)現(xiàn)電源的有效利用,其中許多提供了多種不同的低功耗和睡眠模式。然而,在實(shí)踐中,很快就會(huì)出現(xiàn)問題,即在負(fù)責(zé)管理大量不同外圍設(shè)備的應(yīng)用軟件中,應(yīng)該在何處進(jìn)入和退出睡眠模式。RTOS 可以通過提供掛鉤來為系統(tǒng)的調(diào)度基礎(chǔ)設(shè)施配備啟動(dòng)低功耗操作的代碼,從而簡(jiǎn)化此類決策。此外,最注重功耗的 RTOS 具有動(dòng)態(tài)滴答率等功能,可最大限度地減少提供一組強(qiáng)大的多任務(wù)服務(wù)所需的 CPU 資源。
與時(shí)間賽跑?
雖然設(shè)計(jì)合理的 RTOS 可以幫助多任務(wù)系統(tǒng)實(shí)現(xiàn)卓越的電源效率,但不能說所有低功耗系統(tǒng)都依賴于 RTOS。同樣,上述復(fù)雜性并不要求使用 RTOS。換句話說,幾乎任何應(yīng)用程序,即使是涉及復(fù)雜通信協(xié)議和嚴(yán)格功耗限制的應(yīng)用程序,都可以在沒有 RTOS 多任務(wù)處理能力的情況下編寫。
在這種情況下,可能促進(jìn)物聯(lián)網(wǎng)設(shè)備采用 RTOS 的最重要因素似乎是上市時(shí)間問題。在嵌入式系統(tǒng)中,在簡(jiǎn)單地能夠做某事和能夠快速、高效且以可重復(fù)的方式做某事之間存在著巨大的差異——隨著物聯(lián)網(wǎng)的到來變得更加明顯。RTOS 最終為物聯(lián)網(wǎng)和其他領(lǐng)域的開發(fā)人員提供的是增強(qiáng)、加速項(xiàng)目開發(fā)的基礎(chǔ)。
有許多機(jī)制,不僅限于軟件本身,RTOS 以及 RTOS 的供應(yīng)商可以通過這些機(jī)制影響嵌入式設(shè)備的開發(fā),而這種產(chǎn)品組合確實(shí)是一家供應(yīng)商與另一家供應(yīng)商的區(qū)別所在。雖然每個(gè) RTOS 都有其獨(dú)特的功能,但識(shí)別一組常見的 RTOS 服務(wù)相對(duì)容易。對(duì)于一部分嵌入式開發(fā)人員,尤其是創(chuàng)客和愛好者社區(qū)中的許多人來說,這套基本服務(wù)是新項(xiàng)目的良好基礎(chǔ)。對(duì)于其他開發(fā)人員來說,任何 RTOS 都無法克服上市時(shí)間的挑戰(zhàn)。為了降低風(fēng)險(xiǎn)并確保項(xiàng)目成功,這些開發(fā)人員必須選擇一個(gè)經(jīng)過驗(yàn)證的 RTOS,它有完整的文檔記錄并由節(jié)省時(shí)間的支持服務(wù)提供支持。
示例平臺(tái)
如果要相信經(jīng)常引用的數(shù)字,那么構(gòu)建物聯(lián)網(wǎng)似乎需要來自這兩個(gè)陣營(yíng)的眾多開發(fā)人員。目前,物聯(lián)網(wǎng)討論在許多圈子中繼續(xù)以未來時(shí)態(tài)進(jìn)行,但已經(jīng)有許多項(xiàng)目正在進(jìn)行中,為連接設(shè)備中的 RTOS 使用建立模式。此類產(chǎn)品開發(fā)人員可用的解決方案類型的一個(gè)典型例子是凌力爾特公司最近發(fā)布的 SmartMesh IP 平臺(tái)。
圖 2:Linear Technology 的 SmartMesh IP 平臺(tái)提供了令人印象深刻的性能和最低的功耗。
借助 SmartMesh IP,開發(fā)人員可以使用一系列低成本硬件模塊來構(gòu)建基于 6LoWPAN 的網(wǎng)狀網(wǎng)絡(luò)。這些網(wǎng)絡(luò)的基本單元是一個(gè)“mote”,如圖 2 所示,它有一個(gè)運(yùn)行 Micrium 的 μC/OS-II RTOS 的 Cortex-M3 CPU 內(nèi)核。以 RTOS 為基礎(chǔ),mote 可以支持非常復(fù)雜的應(yīng)用程序代碼,并且能夠?qū)崿F(xiàn) 10 年或更長(zhǎng)時(shí)間的電池壽命。6LoWPAN 使用 IPv6 意味著開發(fā)人員可以輕松地將其節(jié)點(diǎn)連接到網(wǎng)關(guān),利用云的數(shù)據(jù)收集和分析功能,并將任何網(wǎng)狀網(wǎng)絡(luò)轉(zhuǎn)換為真正的物聯(lián)網(wǎng)應(yīng)用程序。
μC/OS-II RTOS 為開發(fā)人員提供的許多功能在其他嵌入式 RTOS 中廣泛可用。然而,特性和功能只是 RTOS 用戶關(guān)心的問題之一。當(dāng)今頂級(jí) RTOS 供應(yīng)商的名單將包括許多提供文檔、支持、培訓(xùn)和咨詢服務(wù)以及他們的軟件的公司,這種模式對(duì)于嵌入式設(shè)計(jì)工程師來說起著絕對(duì)重要的作用。
雖然可以肯定 RTOS 將經(jīng)常用于 IoT 項(xiàng)目,但并不完全清楚 Google 和其他 RTOS 新來者將直接與該行業(yè)的長(zhǎng)期供應(yīng)商競(jìng)爭(zhēng)。說物聯(lián)網(wǎng)需要實(shí)時(shí)操作系統(tǒng)可能會(huì)產(chǎn)生誤導(dǎo)。實(shí)際上可能需要多個(gè) RTOS,每個(gè) RTOS 都服務(wù)于一組定義明確的開發(fā)人員,并在為滿足這些開發(fā)人員的需求而量身定制的模型下提供。
審核編輯 黃昊宇
評(píng)論