物聯(lián)網(wǎng) (IoT) 的高級(jí)協(xié)議提供了各種特性,使其適用于廣泛的應(yīng)用。例如,SNMP 多年來(lái)一直用于管理網(wǎng)絡(luò)設(shè)備和配置網(wǎng)絡(luò),而 DDNS 已用于提供對(duì) Web 設(shè)備的瀏覽器訪問(wèn)。任一協(xié)議也可用于管理和配置各種家庭設(shè)備。相比之下,CoAP 更適合具有微小硬件和完全不同安全性的非常小的傳感器部署。有必要對(duì)這些協(xié)議和應(yīng)用程序要求進(jìn)行更深入的了解,以正確選擇最適合手頭應(yīng)用程序的協(xié)議。
一旦知道正確的協(xié)議或幾個(gè)協(xié)議集具有應(yīng)用程序部署、管理和應(yīng)用程序支持的正確特性,就應(yīng)該了解每個(gè)協(xié)議的最佳實(shí)現(xiàn)。根據(jù)這種理解,設(shè)計(jì)人員可以為系統(tǒng)選擇每個(gè)協(xié)議的最佳實(shí)現(xiàn),然后從中選擇系統(tǒng)的最佳協(xié)議實(shí)現(xiàn)。
協(xié)議選擇問(wèn)題與協(xié)議的實(shí)現(xiàn)密切相關(guān),支持協(xié)議的組件在最終設(shè)計(jì)中通常是必不可少的。這使得決定變得非常復(fù)雜。部署、操作、管理和安全的所有方面都必須考慮作為協(xié)議選擇的一部分,包括實(shí)施環(huán)境。
此外,對(duì)于特定的應(yīng)用并沒(méi)有任何融合的標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)一般都是由市場(chǎng)來(lái)選擇的。這是一個(gè)問(wèn)題也是一個(gè)機(jī)會(huì),因?yàn)榻裉鞛閼?yīng)用程序選擇的協(xié)議在未來(lái)可能會(huì)過(guò)時(shí)并且可能需要被替換,或者如果做得正確,可能會(huì)成為標(biāo)準(zhǔn)。作為開(kāi)發(fā)人員,使用環(huán)境的特定功能來(lái)滿足系統(tǒng)要求,而這反過(guò)來(lái)又依賴于協(xié)議的細(xì)節(jié),這會(huì)使將來(lái)的更改變得非常困難。
本文研究了可用協(xié)議的范圍、驅(qū)動(dòng)這些協(xié)議特性的具體要求,并考慮了構(gòu)建完整系統(tǒng)的實(shí)現(xiàn)要求。
協(xié)議和供應(yīng)商
物聯(lián)網(wǎng)的高級(jí)協(xié)議具有各種特性并提供不同的功能。這些協(xié)議中的大多數(shù)是由特定供應(yīng)商開(kāi)發(fā)的,這些供應(yīng)商通常會(huì)宣傳他們自己的協(xié)議選擇,沒(méi)有明確定義他們的假設(shè),并忽略其他替代方案。出于這個(gè)原因,依靠供應(yīng)商信息來(lái)選擇物聯(lián)網(wǎng)協(xié)議是有問(wèn)題的,并且已經(jīng)產(chǎn)生的大多數(shù)比較不足以理解權(quán)衡。
物聯(lián)網(wǎng)協(xié)議通常與業(yè)務(wù)模型綁定。有時(shí)這些協(xié)議是不完整的和/或用于支持現(xiàn)有的業(yè)務(wù)模型和方法。其他時(shí)候,它們提供了更完整的解決方案,但資源需求對(duì)于較小的傳感器來(lái)說(shuō)是不可接受的。此外,使用協(xié)議背后的關(guān)鍵假設(shè)沒(méi)有明確說(shuō)明,這使得比較變得困難。
與物聯(lián)網(wǎng)應(yīng)用相關(guān)的基本假設(shè)是:
· 將使用各種無(wú)線連接
· 設(shè)備范圍從微型 MCU 到以小型 MCU 為重點(diǎn)的高性能系統(tǒng)
· 安全是核心要求
· 數(shù)據(jù)將存儲(chǔ)在云端,并可能在云端進(jìn)行處理
· 需要連接回云存儲(chǔ)
· 需要通過(guò)無(wú)線和有線連接將信息路由到云存儲(chǔ)
協(xié)議開(kāi)發(fā)人員做出的其他假設(shè)需要更深入的調(diào)查,并將強(qiáng)烈影響他們的選擇。通過(guò)查看這些協(xié)議的關(guān)鍵特性和關(guān)鍵實(shí)現(xiàn)要求,設(shè)計(jì)人員可以更清楚地了解協(xié)議領(lǐng)域和支持特性領(lǐng)域究竟需要什么來(lái)改進(jìn)他們的設(shè)計(jì)。在我們看這個(gè)之前,讓我們回顧一下有問(wèn)題的協(xié)議。
物聯(lián)網(wǎng)或 M2M 協(xié)議
對(duì)于協(xié)議棧中更高級(jí)別的 M2M 協(xié)議,有一組廣泛的協(xié)議被提升為物聯(lián)網(wǎng)通信的靈丹妙藥。請(qǐng)注意,這些 IoT 或 M2M 協(xié)議側(cè)重于應(yīng)用程序數(shù)據(jù)傳輸和處理。以下列表總結(jié)了通??紤]的協(xié)議。
· CoAP
· Continua – 家庭健康設(shè)備
· DDS
· DPWS:WS-Discovery、SOAP、WSAddressing、WDSL 和 XML Schema
· HTTP/REST
· MQTT
· UPnP
· XMPP
· 零MQ
圖 1 總結(jié)了這些協(xié)議的特性。與基礎(chǔ)設(shè)施和部署相關(guān)的幾個(gè)關(guān)鍵因素將在下面單獨(dú)討論。
圖 1:如果 POSIX/Linux API 可用,則可以更輕松地支持所有 M2M 或 IoT 協(xié)議。Unison OS 配備了物聯(lián)網(wǎng)協(xié)議的關(guān)鍵組合,作為現(xiàn)成的選項(xiàng),使用它的 POSIX API 來(lái)實(shí)現(xiàn)快速和簡(jiǎn)單的設(shè)備支持。
關(guān)鍵協(xié)議特性
物聯(lián)網(wǎng) (IoT) 中的通信基于 Internet TCP/UDP 協(xié)議和相關(guān)的 Internet 協(xié)議進(jìn)行設(shè)置。對(duì)于基本通信,這意味著 TCP 流套接字的 UDP 數(shù)據(jù)報(bào)。小型設(shè)備的開(kāi)發(fā)人員聲稱 UDP 在性能和尺寸方面具有很大優(yōu)勢(shì),這反過(guò)來(lái)又可以最大限度地降低成本。雖然是真的,但在許多情況下并不重要。
流套接字的性能受到影響,但它們確實(shí)保證了所有數(shù)據(jù)的按順序傳遞。在 STM32F4 上以 167 MHz 發(fā)送傳感器數(shù)據(jù)的性能損失低于 16.7%(使用 2 KB 數(shù)據(jù)包測(cè)量 - 較小的數(shù)據(jù)包會(huì)降低性能損失)。通過(guò)采用流套接字的方法,還可以使用標(biāo)準(zhǔn)安全協(xié)議來(lái)簡(jiǎn)化環(huán)境(盡管如果可用,DTLS 可以與 UDP 一起使用)。
同樣,升級(jí)到 TCP 的額外 20 KB 閃存和 8 KB RAM 的內(nèi)存成本差異通常很小。對(duì)于微不足道的應(yīng)用和體積龐大的傳感器,這可能很有意義,但通常不會(huì)影響 ARM Cortex-M3 及更高版本或其他架構(gòu)(如 RX、PIC32 和 ARM Cortex-Ax)的設(shè)計(jì)。
消息傳遞常見(jiàn)的 IoT 方法非常重要,許多協(xié)議已遷移到發(fā)布/訂閱模型。由于連接和斷開(kāi)連接的節(jié)點(diǎn)很多,并且這些節(jié)點(diǎn)需要連接到云中的各種應(yīng)用程序,發(fā)布/訂閱請(qǐng)求/響應(yīng)模型具有優(yōu)勢(shì)。它動(dòng)態(tài)響應(yīng)隨機(jī)開(kāi)/關(guān)操作,并且可以支持許多節(jié)點(diǎn)。
CoAP 和 HTTP/REST 兩種協(xié)議都基于請(qǐng)求響應(yīng)而沒(méi)有發(fā)布/訂閱方法。在 CoAP 的情況下,使用 6LoWPAN 和 IPv6 的自動(dòng)尋址來(lái)唯一標(biāo)識(shí)節(jié)點(diǎn)。在 HTTP/REST 的情況下,方法是不同的,因?yàn)檎?qǐng)求可以是任何東西,包括發(fā)布請(qǐng)求或訂閱請(qǐng)求,所以事實(shí)上,如果以這種方式設(shè)計(jì),它就會(huì)成為一般情況。今天,這些協(xié)議正在合并以提供完整的發(fā)布/訂閱請(qǐng)求/響應(yīng)模型。
系統(tǒng)架構(gòu)多種多樣,包括客戶端服務(wù)器、樹形或星形、總線和 P2P。大多數(shù)使用客戶端-服務(wù)器,但其他使用總線和 P2P 方法。星形是一種截?cái)鄻浞椒?。這些各種架構(gòu)都存在性能問(wèn)題,通常在 P2P 和總線架構(gòu)中可以找到最佳性能。模擬方法或原型方法在設(shè)計(jì)早期是首選,以防止意外。
可擴(kuò)展性取決于在現(xiàn)場(chǎng)添加許多節(jié)點(diǎn),并輕松增加云資源以服務(wù)這些新節(jié)點(diǎn)。各種架構(gòu)具有不同的屬性。對(duì)于客戶端服務(wù)器架構(gòu),增加可用服務(wù)器池就足夠了,而且很容易。對(duì)于總線和 P2P 架構(gòu),規(guī)模是架構(gòu)中固有的,但沒(méi)有云服務(wù)。在樹形或星形連接架構(gòu)的情況下,可能會(huì)出現(xiàn)與在樹上添加額外葉子相關(guān)的問(wèn)題,這會(huì)給通信節(jié)點(diǎn)帶來(lái)負(fù)擔(dān)。
可擴(kuò)展性的另一個(gè)方面是處理大量變化的節(jié)點(diǎn)并將這些節(jié)點(diǎn)鏈接到云應(yīng)用程序。如前所述,發(fā)布/訂閱請(qǐng)求/響應(yīng)系統(tǒng)旨在實(shí)現(xiàn)可擴(kuò)展性,因?yàn)樗鼈兲幚硪蚋鞣N原因離線的節(jié)點(diǎn),這允許應(yīng)用程序在決定訂閱和請(qǐng)求數(shù)據(jù)時(shí)接收特定數(shù)據(jù),從而實(shí)現(xiàn)精細(xì)的數(shù)據(jù)流控制。 不太健壯的方法幾乎不能擴(kuò)展。
低功耗和有損網(wǎng)絡(luò)具有打開(kāi)和關(guān)閉的節(jié)點(diǎn)。這種動(dòng)態(tài)行為可能會(huì)影響整個(gè)網(wǎng)絡(luò)部分,因此協(xié)議是為多路徑動(dòng)態(tài)重新配置而設(shè)計(jì)的。ZigBee、ZigBee IP(使用 6LoWPAN)和本機(jī) 6LoWPAN 中的特定動(dòng)態(tài)路由協(xié)議可確保網(wǎng)絡(luò)適應(yīng)。如果沒(méi)有這些特性,處理這些節(jié)點(diǎn)就變成了一種不連續(xù)的操作,并且對(duì)節(jié)點(diǎn)的資源要求更高
隨著應(yīng)用程序數(shù)量的增加,資源需求是關(guān)鍵。微控制器以非常低的成本提供智能,并有能力處理上面列出的問(wèn)題。有些協(xié)議太耗費(fèi)資源,無(wú)法在小節(jié)點(diǎn)上實(shí)用。除非包含大量串行閃存或其他存儲(chǔ)介質(zhì),否則不連續(xù)操作和大數(shù)據(jù)存儲(chǔ)將受到限制。隨著資源的增加,為了降低整體系統(tǒng)成本,更有可能添加聚合節(jié)點(diǎn)以提供額外的共享存儲(chǔ)資源。
互操作性對(duì)于未來(lái)的大多數(shù)設(shè)備至關(guān)重要。到目前為止,業(yè)界已經(jīng)看到了多套單點(diǎn)解決方案,但最終用戶希望傳感器和設(shè)備能夠協(xié)同工作。通過(guò)使用一組標(biāo)準(zhǔn)化協(xié)議以及標(biāo)準(zhǔn)化消息傳遞,設(shè)備可以與支持它們的云服務(wù)分離。這種方法可以提供完整的設(shè)備互操作性。此外,使用智能發(fā)布/訂閱選項(xiàng),不同的設(shè)備甚至可以使用相同的云服務(wù),并提供不同的功能。使用開(kāi)放的方法,應(yīng)用標(biāo)準(zhǔn)將會(huì)出現(xiàn),但今天 M2M 標(biāo)準(zhǔn)才剛剛出現(xiàn),應(yīng)用標(biāo)準(zhǔn)是未來(lái)幾年的事情。今天,所有主要協(xié)議都在標(biāo)準(zhǔn)化。
使用標(biāo)準(zhǔn)信息技術(shù)安全解決方案的安全性是大多數(shù)提供安全性的協(xié)議的核心安全機(jī)制。這些安全方法基于:
· TLS
· IPSec/VPN
· SSH
· SFTP
· 安全引導(dǎo)加載程序和自動(dòng)回退
· 過(guò)濾
· HTTPS
· SNMP v3
· 加解密
· DTLS(僅用于 UDP 安全)
由于系統(tǒng)將部署多年,因此將安全作為軟件包的一部分進(jìn)行設(shè)計(jì)是必不可少的。
實(shí)施要求
隱私是一項(xiàng)基本的實(shí)施要求。在隱私法的支持下,幾乎所有系統(tǒng)都需要與云進(jìn)行安全通信,以確保無(wú)法訪問(wèn)或修改個(gè)人數(shù)據(jù)并消除責(zé)任。此外,設(shè)備的管理和云中出現(xiàn)的數(shù)據(jù)需要分開(kāi)管理。如果沒(méi)有此功能,用戶的關(guān)鍵個(gè)人信息將無(wú)法得到適當(dāng)?shù)谋Wo(hù),并且任何擁有管理權(quán)限的人都可以使用。
圖 2:使用兩個(gè)獨(dú)立的后端或云解決方案來(lái)分離管理和用戶數(shù)據(jù)是保證用戶隱私的首選解決方案。管理系統(tǒng)的計(jì)費(fèi)和應(yīng)用程序的計(jì)費(fèi)也可以使用這種方法分開(kāi)管理。
在系統(tǒng)架構(gòu)圖中,我們展示了云內(nèi)部系統(tǒng)管理和應(yīng)用程序處理以滿足隱私法所需的兩個(gè)獨(dú)立組件。這兩個(gè)組件可能具有單獨(dú)的計(jì)費(fèi)選項(xiàng),并且可以在單獨(dú)的環(huán)境中運(yùn)行。管理站還可能包括:
· 系統(tǒng)初始化
· 遠(yuǎn)程現(xiàn)場(chǎng)服務(wù)選項(xiàng)(如現(xiàn)場(chǎng)升級(jí)、重置為默認(rèn)參數(shù)和遠(yuǎn)程測(cè)試)
· 用于計(jì)費(fèi)目的的控制(例如帳戶禁用、帳戶啟用和計(jì)費(fèi)功能)
· 用于盜竊目的的控制(相當(dāng)于將設(shè)備變磚)
鑒于這種類型的架構(gòu),還應(yīng)考慮其他協(xié)議和程序:
· 在云系統(tǒng)上定制開(kāi)發(fā)的管理應(yīng)用程序
· 傳感器節(jié)點(diǎn)集合的SNMP管理
· 云中的計(jì)費(fèi)集成程序
· 支持使用在 Unison OS 上運(yùn)行的 SQLite 的不連續(xù)操作來(lái)存儲(chǔ)和選擇性地將數(shù)據(jù)更新到云端
計(jì)費(fèi)是商業(yè)系統(tǒng)的一個(gè)關(guān)鍵方面。電信運(yùn)營(yíng)商已經(jīng)證明,按月付費(fèi)模式是最佳的收入選擇。此外,用于無(wú)縫計(jì)費(fèi)的自動(dòng)服務(wù)選擇和集成也很重要。信用卡依賴也會(huì)產(chǎn)生問(wèn)題,包括超額問(wèn)題、過(guò)期卡和刪除帳戶。
自我支持的用戶也是實(shí)施成功的關(guān)鍵。這包括遠(yuǎn)程現(xiàn)場(chǎng)服務(wù),因此設(shè)備永遠(yuǎn)不會(huì)返回工廠,智能或自動(dòng)配置,在線幫助,社區(qū)幫助和非常直觀的產(chǎn)品都是關(guān)鍵。
應(yīng)用程序集成也很重要。今天點(diǎn)系統(tǒng)占主導(dǎo)地位,但未來(lái)的關(guān)鍵是讓傳感器可用于用戶選擇的廣泛應(yīng)用。準(zhǔn)確性和可靠性會(huì)極大地影響結(jié)果應(yīng)用結(jié)果,一旦標(biāo)準(zhǔn)接口出現(xiàn),預(yù)計(jì)該領(lǐng)域的競(jìng)爭(zhēng)就會(huì)出現(xiàn)。通過(guò)服務(wù)器的間接訪問(wèn)可確保安全性、無(wú)需更改應(yīng)用程序的演進(jìn)和計(jì)費(fèi)控制。
非連續(xù)運(yùn)營(yíng)和大數(shù)據(jù)齊頭并進(jìn)。隨著設(shè)備隨機(jī)連接和斷開(kāi)連接,需要為傳感器保存數(shù)據(jù)并稍后更新云。由于功率和成本原因,存在存儲(chǔ)限制。如果某些數(shù)據(jù)很重要,則可以保存它而丟棄其他數(shù)據(jù)。可能會(huì)保存所有數(shù)據(jù),并稍后執(zhí)行對(duì)云的選擇性更新。處理數(shù)據(jù)的算法可以在云或傳感器或任何中間節(jié)點(diǎn)中運(yùn)行。所有這些選項(xiàng)都對(duì)傳感器、云、通信和外部應(yīng)用程序提出了特殊挑戰(zhàn)。
多連接傳感器訪問(wèn)也是使傳感器真正可用于廣泛應(yīng)用的一項(xiàng)要求。這種連接很可能通過(guò)服務(wù)器進(jìn)行,以簡(jiǎn)化傳感器并消除重復(fù)消息的電源要求。
Unison OS 的物聯(lián)網(wǎng)協(xié)議
Unison RTOS 針對(duì)物聯(lián)網(wǎng)應(yīng)用的小型微處理器和微控制器。因此,它提供了設(shè)計(jì)師期望的許多東西。Unison 的特點(diǎn)包括:
· POSIX API
· 廣泛的互聯(lián)網(wǎng)協(xié)議支持
· 各類無(wú)線支持
· 遠(yuǎn)程現(xiàn)場(chǎng)服務(wù)
· USB
· 文件系統(tǒng)
· SQLite
· 安全模塊
這是對(duì)此處討論的廣泛協(xié)議集的現(xiàn)成支持和工廠支持的補(bǔ)充。
通過(guò)為物聯(lián)網(wǎng)開(kāi)發(fā)提供一整套功能和模塊以及模塊化架構(gòu),開(kāi)發(fā)人員可以插入他們選擇的物聯(lián)網(wǎng)開(kāi)發(fā)協(xié)議。構(gòu)建協(xié)議網(wǎng)關(guān)也是可能的。這種方法通過(guò)消除鎖定和縮短上市時(shí)間來(lái)最大限度地降低風(fēng)險(xiǎn)。
Unison 還具有可擴(kuò)展性,使其能夠安裝到微型微控制器中,并為功能強(qiáng)大的微處理器提供全面支持。內(nèi)存占用很小,直接導(dǎo)致非??焖俚膶?shí)現(xiàn)。
物聯(lián)網(wǎng)協(xié)議
許多協(xié)議被吹捧為理想的物聯(lián)網(wǎng) (IoT) 解決方案。通常,正確的協(xié)議選擇會(huì)被在其產(chǎn)品中擁有既得利益的供應(yīng)商所掩蓋。用戶必須了解他們的具體要求和限制,并擁有精確的系統(tǒng)規(guī)范,以確保為各種管理、應(yīng)用程序和通信功能選擇正確的協(xié)議集,并確保滿足所有實(shí)施規(guī)范。
RoweBots Unison RTOS 適合滿足物聯(lián)網(wǎng)需求,具有適用于各種協(xié)議的現(xiàn)成模塊和一整套支持模塊,可實(shí)現(xiàn)快速輕松的開(kāi)發(fā)。
審核編輯:郭婷
評(píng)論
查看更多