江文瑞 譯,何小慶 審校
日益增長的數(shù)據(jù)驅(qū)動世界的需求意味著物聯(lián)網(wǎng)設(shè)備將需要強(qiáng)大和可靠的軟件。因此,你將需要一個(gè)實(shí)時(shí)操作系統(tǒng)(RTOS)。
正如在《第2篇:嵌入式計(jì)算設(shè)備》中討論的那樣:在Micrium公司看來,物聯(lián)網(wǎng)的設(shè)備可以作為在網(wǎng)絡(luò)上發(fā)送和接收信息的嵌入式系統(tǒng)。盡管許多嵌入式系統(tǒng)可以使用并不復(fù)雜的軟件管理,但網(wǎng)絡(luò)設(shè)備需要更強(qiáng)大的系統(tǒng)軟件。
物聯(lián)網(wǎng)設(shè)備的軟件必須具有:
◆可擴(kuò)展性,以適應(yīng)范圍廣泛的不同類別的設(shè)備。
◆模塊化,可以只選擇滿足嚴(yán)格的RAM需求的組件。
◆連通性,可以通過WiFi、以太網(wǎng)、USB或藍(lán)牙來實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)傳輸。
◆可靠性,設(shè)備需要通過關(guān)鍵性的安全應(yīng)用認(rèn)證。
不可否認(rèn),Linux是一個(gè)強(qiáng)大的、對開發(fā)人員友好的操作系統(tǒng),其作為物聯(lián)網(wǎng)設(shè)備平臺的操作系統(tǒng)也已受到重視。對于許多應(yīng)用,Linux已經(jīng)成長為一個(gè)主流的嵌入式操作系統(tǒng)。
然而,與實(shí)時(shí)操作系統(tǒng)相比,Linux有一個(gè)缺點(diǎn)——存儲器容量大。雖然Linux可以通過刪除工具將嵌入式系統(tǒng)中不需要的系統(tǒng)服務(wù)裁減下來,但它仍然是一個(gè)大型軟件,無法運(yùn)行在8或16位微控制器上,甚至是許多新的32位微控制器,對于Linux內(nèi)核也沒有足夠的板上(或者片上-見譯者注)內(nèi)存。ARM Cortex-M系列就是一個(gè)很好的例子:有數(shù)百種基于流行的Cortex-M架構(gòu)的微控制器,通常它們的板上內(nèi)存只有幾百KB,Linux很難在這些芯片上運(yùn)行。
[譯者注]:現(xiàn)在許多的微控制器一般都支持大容量的片上內(nèi)存,所以不僅僅是板子內(nèi)存,還包括片上內(nèi)存。
無疑Linux將在嵌入式設(shè)備中被廣泛地使用,尤其是提供豐富的圖形用戶界面的應(yīng)用。但同時(shí),也有成千上萬的應(yīng)用對Linux來說是不太適合的。
用于工業(yè)和消費(fèi)物聯(lián)網(wǎng)設(shè)備的軟件要求是有差異的。盡管它們可能共享一個(gè)共同的內(nèi)核和低級別的服務(wù),但它們應(yīng)用所需的中間件可以是完全不同的,如圖1所示。
圖1 工業(yè)物聯(lián)網(wǎng)設(shè)備和消費(fèi)物聯(lián)網(wǎng)設(shè)備
圖1(a)中,我們看到針對工業(yè)物聯(lián)網(wǎng)設(shè)備,例如無線傳感器節(jié)點(diǎn)的軟件協(xié)議棧,這是一個(gè)低功耗、低成本設(shè)備,有可能完全在電池供電下運(yùn)行。通常這種設(shè)備可以使用Cortex-M0或Cortex-M3/M4微控制器以及高效的網(wǎng)絡(luò)協(xié)議(如6LoWPAN),以減少傳輸時(shí)間、節(jié)省電力。而且,它還將使用藍(lán)牙或低功耗WiFi,進(jìn)行短距離無線通信,或者使用以太網(wǎng)進(jìn)行通信。
圖1(b)為針對消費(fèi)物聯(lián)網(wǎng)設(shè)備的軟件協(xié)議棧,對于這種設(shè)備的軟件需求要大得多。它可能需要Java虛擬機(jī),并很可能使用垂直市場的協(xié)議,如AllSeen、Home-Plug/HomeGrid、Continua聯(lián)盟或2net。通常這種設(shè)備可能使用Cortex-M3/M4或Cortex-A處理器。
這些需求將推動實(shí)時(shí)操作系統(tǒng)的選擇,而大家并不希望選擇軟件平臺來支配設(shè)備的功能。
靈活的、可擴(kuò)展的實(shí)時(shí)操作系統(tǒng)可以幫助你提高投資回報(bào)率,降低開發(fā)成本,并縮短上市時(shí)間。雖然嵌入式系統(tǒng)歷史完全是建立在8和16位微控制器之上,但是32位微控制器的價(jià)格已經(jīng)迅速下降,使得它們能成為商業(yè)化產(chǎn)品。因此,它們在嵌入式設(shè)備中的受歡迎的程度大為提升。
在設(shè)備中使用兩個(gè)處理器是常見的用于網(wǎng)絡(luò)嵌入式系統(tǒng)工程的解決方案。在這種結(jié)構(gòu)中,一個(gè)8位或16位微控制器被用于傳感器或執(zhí)行器,而另一個(gè)32位微控制器被用于網(wǎng)絡(luò)接口。在32位微控制器上運(yùn)行實(shí)時(shí)操作系統(tǒng)(RTOS)。
32位微控制器的銷售量已經(jīng)在過去的幾年里激增,并成為微控制器市場最大的細(xì)分市場。預(yù)計(jì)到2017年,單獨(dú)的32位微控制器部分將增長至192億美元,如圖2所示。
圖2 微控制器銷售和單位出貨量
未來幾年,物聯(lián)網(wǎng)設(shè)備將仍然是小型和大型微控制器的混合體。在各種16位和32位微控制器上運(yùn)行可擴(kuò)展的RTOS,可以滿足嚴(yán)格的內(nèi)存要求,降低對處理器的需求,從而節(jié)省費(fèi)用。
物聯(lián)網(wǎng)設(shè)備將需要模塊化操作系統(tǒng),以便中間件、協(xié)議和應(yīng)用與內(nèi)核分離。這樣做的原因是易于開發(fā),并保持軟件的內(nèi)存占用量達(dá)到最小值。
采用模塊化的操作系統(tǒng)可以簡化開發(fā)過程,特別是如果開發(fā)者正在開發(fā)具有不同功能的設(shè)備系列。依托于一個(gè)共同的核心,它允許整個(gè)設(shè)備系列共享通用的代碼庫,而每個(gè)設(shè)備可以僅僅通過應(yīng)用所需的中間件和協(xié)議棧進(jìn)行定制。
這種方法還允許針對更小內(nèi)存尺寸的設(shè)備,不同于捆綁了整個(gè)軟件套件在一起的單一操作系統(tǒng),模塊化操作系統(tǒng)允許為設(shè)備裁減嵌入式軟件,使用更少的RAM和閃存,降低成本。
網(wǎng)絡(luò)連接是物聯(lián)網(wǎng)的本質(zhì)。無論我們談?wù)摰氖枪S里的無線傳感器節(jié)點(diǎn)還是醫(yī)院里的網(wǎng)絡(luò)醫(yī)療設(shè)備,當(dāng)前這個(gè)行業(yè)的預(yù)期是:嵌入式設(shè)備彼此相互連接,并與企業(yè)或公共網(wǎng)絡(luò)進(jìn)行通信。
選擇操作系統(tǒng)需要支持的通信標(biāo)準(zhǔn)和協(xié)議,如IEEE802.15.4、WiFi和藍(lán)牙。設(shè)備必須能夠連接到使用具有高效帶寬的IP協(xié)議網(wǎng)絡(luò),如6LoWPAN的IP網(wǎng)絡(luò)。
操作系統(tǒng)將允許你選擇需要的特定的協(xié)議棧,這樣可以節(jié)省設(shè)備內(nèi)存,并降低成本。它能幫助你改造現(xiàn)有的設(shè)備使其具有新的連接選項(xiàng),而不用修改嵌入式軟件的核心。
許多物聯(lián)網(wǎng)系統(tǒng)將被部署在關(guān)鍵性的安全環(huán)境中,或安置在維修和更換較為困難的地點(diǎn)。因此,物聯(lián)網(wǎng)設(shè)備需要絕對可靠。
你可能還需要操作系統(tǒng)具有安全認(rèn)證,這是至關(guān)重要的,以便證明設(shè)備的可靠性和安全性。
可能需要的認(rèn)證包括:
①航空電子系統(tǒng)的DO-178B。
②工業(yè)控制系統(tǒng)的IEC 61508。
③醫(yī)療設(shè)備的ISO 62304。
④運(yùn)輸和核能系統(tǒng)的SIL3/SIL4 IEC。
如果使用安全關(guān)鍵環(huán)境,使用已經(jīng)認(rèn)證軟件建立產(chǎn)品,可以減少設(shè)備的認(rèn)證時(shí)間,并降低成本。設(shè)備的每一部分都將需要認(rèn)證和準(zhǔn)備大量的文檔。通常從第三方獲得可用的驗(yàn)證套件和認(rèn)證包,它們可以提供你所需要的為產(chǎn)品創(chuàng)建的數(shù)千頁的文件。
即使不需要為設(shè)備認(rèn)證,得知運(yùn)行在設(shè)備上的操作系統(tǒng)已被認(rèn)證,也可以為你提供產(chǎn)品能夠可靠完成的信心和定力。