當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 物聯(lián)網(wǎng)技術(shù)文庫
[導(dǎo)讀] 不管是從商業(yè)模式導(dǎo)出的業(yè)務(wù)模型,還是從技術(shù)發(fā)展的角度看,文本都傾向于將物聯(lián)網(wǎng)技術(shù)構(gòu)架看作是互聯(lián)網(wǎng)技術(shù)構(gòu)架的延展。而與這個(gè)觀念對(duì)立的,是傳統(tǒng)嵌入式軟件開發(fā)的視角。 簡(jiǎn)單來說,目前的互聯(lián)網(wǎng)技

不管是從商業(yè)模式導(dǎo)出的業(yè)務(wù)模型,還是從技術(shù)發(fā)展的角度看,文本都傾向于將物聯(lián)網(wǎng)技術(shù)構(gòu)架看作是互聯(lián)網(wǎng)技術(shù)構(gòu)架的延展。而與這個(gè)觀念對(duì)立的,是傳統(tǒng)嵌入式軟件開發(fā)的視角。

簡(jiǎn)單來說,目前的互聯(lián)網(wǎng)技術(shù)構(gòu)架主流是大前端與后端兩個(gè)世界:大前端包括Web的JavaScript技術(shù)、Android和iOS技術(shù),著眼于解決用戶交互;后端包括數(shù)據(jù)庫、服務(wù)構(gòu)架、運(yùn)維等,著眼于解決存儲(chǔ)、業(yè)務(wù)邏輯、安全與效率等。當(dāng)然,現(xiàn)在前后端技術(shù)爭(zhēng)相更新,比如業(yè)務(wù)邏輯前置化、微服務(wù)構(gòu)架、JavaScript全?;刃碌慕鉀Q方案也開始模糊前后端的差異。

而物聯(lián)網(wǎng)設(shè)備端的引入,著實(shí)讓這些技術(shù)有點(diǎn)難以歸類,從業(yè)務(wù)性質(zhì)上物聯(lián)網(wǎng)是另外一種前端或是前端的延伸,比如共享單車應(yīng)用中,自行車端的應(yīng)用顯然是跟人交互的另一個(gè)業(yè)務(wù)場(chǎng)景,也在為后端源源不斷地提供著數(shù)據(jù),但是自行車又不像網(wǎng)頁或者App完全是在解決可視化UI的事情。

而且,現(xiàn)在的設(shè)備端開發(fā)技術(shù)跟前端技術(shù)太不像了,由于目前設(shè)備端的開發(fā)技術(shù)都還偏底層,一般來說計(jì)算資源如處理能力、本地存儲(chǔ)都非常有限,反而像后端一樣要考慮資源效率。

那么,我們只好為物聯(lián)網(wǎng)單獨(dú)命名一個(gè)端,不如我們暫時(shí)就叫它設(shè)備端。

2.新后端 2.1 MQTT

新后端核心問題在于加入了面向設(shè)備的接入服務(wù),實(shí)際上在這里,除類似視頻對(duì)講或是安防監(jiān)控的多媒體實(shí)時(shí)通道外,這個(gè)接入服務(wù)已經(jīng)基本事實(shí)化為MQTT。

消息隊(duì)列遙感傳輸協(xié)議是在TCP/IP協(xié)議之上使用的,基于發(fā)布/訂閱的“輕量級(jí)”消息協(xié)議,目前為ISO標(biāo)準(zhǔn)(ISO/IEC PRF 20922)。它被設(shè)計(jì)用于輕量級(jí)和低帶寬的遠(yuǎn)程連接,發(fā)布/訂閱消息傳遞模式需要消息代理,消息代理負(fù)責(zé)根據(jù)消息的主題向需要的端發(fā)布消息。

如果需要連接的設(shè)備沒有超過10萬臺(tái),使用8GB內(nèi)存的云主機(jī)跑Mosquitto就可以;如果設(shè)備量是幾十萬臺(tái),可以考慮Mosquitto做集群負(fù)載均衡;如果設(shè)備量是大幾十萬臺(tái)乃至百萬臺(tái)以上,那你需要專業(yè)的團(tuán)隊(duì)或?qū)iT的投入來維護(hù)這件事情,這個(gè)細(xì)節(jié)就不在本文討論范圍了。

2.2 OTA

固件組件在線升級(jí)是必須要做的事情,MQTT傳大文件不靠譜,所以一般傳過去一個(gè)帶Token的URL,設(shè)備端去下載就好,HTTP或者HTTPS都可以。業(yè)務(wù)比較簡(jiǎn)單,設(shè)備端幾十萬以內(nèi)沒有什么特別的地方。

2.3 數(shù)據(jù)存儲(chǔ)與服務(wù)

Mosquitto作為MQTT的引擎,需要后端按照業(yè)務(wù)邏輯去調(diào)用,這里按照業(yè)務(wù)需求寫好后端邏輯即可。在各種后端語言中調(diào)用Mosquitto都非常簡(jiǎn)單。

3.設(shè)備端

設(shè)備端是物聯(lián)網(wǎng)領(lǐng)域最五花八門并且正在發(fā)展中的地方。其他領(lǐng)域,后端或者前端,經(jīng)過十幾年的發(fā)展,已經(jīng)出現(xiàn)每個(gè)細(xì)節(jié)的主流技術(shù),基本沒有碎片化的情況,但是在設(shè)備端,開發(fā)技術(shù)的碎片化是應(yīng)用發(fā)展還不到位的充分表現(xiàn)。

舉例講,選用不同的芯片,就要用不同的操作系統(tǒng),不同的C庫封裝,各家IDE也不盡相同,編譯工具鏈更是從芯片原廠給出。開發(fā)起來呢,寄存器、內(nèi)存分配、硬件中斷都要深入進(jìn)去。這就是傳統(tǒng)嵌入式開發(fā)的現(xiàn)狀,也是物聯(lián)網(wǎng)設(shè)備端開發(fā)的現(xiàn)狀。

到目前為止,真正生產(chǎn)環(huán)境中用到的語言就是C/C++,極個(gè)別會(huì)在設(shè)備端用到Python,基本沒有其他語言。操作系統(tǒng)超過50種,主流的也有10種以上,其中嵌入式Linux份額并不大,各種實(shí)時(shí)操作系統(tǒng)各具特色,各有一片天地。

簡(jiǎn)單總結(jié)一下相對(duì)于物聯(lián)網(wǎng)開發(fā),傳統(tǒng)嵌入式開發(fā)的方式主要有以下幾個(gè)問題:

需要考慮中斷、寄存器、內(nèi)存分配等過于底層的工作;

編譯、燒寫、觀察、借助調(diào)試設(shè)備進(jìn)行調(diào)試的開發(fā)生命周期;

不同SoC和系統(tǒng)的差異過大;

缺乏代碼復(fù)用與開源的習(xí)慣;

開發(fā)者在開發(fā)環(huán)境和固件編譯上花費(fèi)的時(shí)間過多。

所以我們看到設(shè)備端的開發(fā)是基于芯片選型完成的。當(dāng)設(shè)備端產(chǎn)品面臨一個(gè)需求時(shí),現(xiàn)有的流程是判斷產(chǎn)品的各項(xiàng)技術(shù)參數(shù),從而確定一個(gè)芯片,進(jìn)而使用這個(gè)芯片的一整套開發(fā)技術(shù)。這也是早期嵌入式場(chǎng)景使用的芯片自生技術(shù)特性所決定:計(jì)算資源(CPU主頻、存儲(chǔ))、外圍接口、使用溫度、通訊協(xié)議等核心參數(shù)的不同導(dǎo)致芯片碎片化,芯片碎片化導(dǎo)致嵌入式開發(fā)碎片化。

目前這個(gè)領(lǐng)域的大趨勢(shì)是:物聯(lián)網(wǎng)芯片有望走向趨同,物聯(lián)網(wǎng)開發(fā)環(huán)境與技術(shù)有望趨同。

3.1 物聯(lián)網(wǎng)芯片

早期由于成本所限,物聯(lián)網(wǎng)領(lǐng)域使用的芯片總是表現(xiàn)得非常缺資源,很難找到一個(gè)各方面(計(jì)算資源、外圍接口、使用溫度、通訊協(xié)議等)都比較合適的芯片去適應(yīng)普遍的場(chǎng)景。隨著半導(dǎo)體門檻逐步降低,中國(guó)半導(dǎo)體制造業(yè)逐步成型,芯片資源開始走向富余,其中的代表芯片是MTK的MT7697、MT7688和樂鑫的ESP32。

MT7697主要參數(shù)為:ARM Cortex M4 CPU,帶浮點(diǎn)單元,最大主頻192Mhz,內(nèi)存為256KB SRAM,可配置4MB以上的存儲(chǔ)空間,芯片內(nèi)嵌WiFi和BLE 4.2,有足夠的外圍接口,并能夠適應(yīng)工業(yè)級(jí)的使用溫度。

MT7688主要參數(shù)為:MIPS 580Mhz CPU,內(nèi)存最大支持256MB,可配置16GB級(jí)別的存儲(chǔ)空間,芯片內(nèi)嵌WiFi,接口除模擬接口之外數(shù)字接口豐富,價(jià)格在幾十元人民幣,功耗較高不適于電池長(zhǎng)期使用。

但是非常有優(yōu)勢(shì)的是其提供的Linux開發(fā)環(huán)境,能夠讓開發(fā)者有一種在普通x86機(jī)器上使用linux CLI的體驗(yàn),Node.js、MySQL、OpenCV、Nginx等等在阿里云上怎么用,在這個(gè)幾十塊的物聯(lián)網(wǎng)小模塊上也怎么用。穩(wěn)定性超強(qiáng),幾年不死機(jī)也是正常的。

ESP32的主要參數(shù)為:Tensilica LX6 CP,主頻240 MHz,內(nèi)存為520KB SRAM,可配置4MB以上的存儲(chǔ)空間,芯片內(nèi)嵌WiFi和藍(lán)牙以及BLE,有足夠的外圍接口,并能夠適應(yīng)工業(yè)級(jí)的使用溫度。

這幾顆芯片共同的特征是計(jì)算資源和通訊能力以及接口資源相對(duì)于傳統(tǒng)MCU來說有足夠的富余,并保持在同樣的價(jià)位。因此,在這類芯片上,有足夠的資源做抽象化的封裝和開發(fā)框架實(shí)施。我們看到除了這幾顆芯片原廠提供的傳統(tǒng)嵌入式開發(fā)包之外,社區(qū)和其他廠商已經(jīng)在這幾顆芯片上加快了新開發(fā)技術(shù)的實(shí)現(xiàn)。

3.2 開發(fā)技術(shù)

物聯(lián)網(wǎng)設(shè)備端開發(fā)技術(shù)目前有兩個(gè)比較大的發(fā)展方向,一是統(tǒng)一化的物聯(lián)網(wǎng)操作系統(tǒng),二是統(tǒng)一化的物聯(lián)網(wǎng)開發(fā)框架。他們共同的目的是形成“軟件定義物聯(lián)網(wǎng)”,與傳統(tǒng)從芯片選型開始的,著陸于原廠SDK中完成應(yīng)用開發(fā),與需求和產(chǎn)品設(shè)計(jì)匯合的流程完全相反,希望從需求和產(chǎn)品設(shè)計(jì)入手,通過公開統(tǒng)一的軟件構(gòu)架完成開發(fā),再根據(jù)開發(fā)使用到的資源去落地芯片和外圍設(shè)備。這樣做的好處主要在于提高開發(fā)效率和形成可以復(fù)用的應(yīng)用代碼。

操作系統(tǒng)

雖然市場(chǎng)上存在的設(shè)備端操作系統(tǒng)有數(shù)十種之多,但是我們看到活躍的,明顯向“軟件定義物聯(lián)網(wǎng)”方向發(fā)展的有三家:

Zephyr

Zephyr是Linux基金會(huì)于2016年2月發(fā)布的物聯(lián)網(wǎng)操作系統(tǒng),背后主要的支持力量來自于ARM和Linaro,具有目前嵌入式小型實(shí)時(shí)操作系統(tǒng)的普遍特征,比如:輕量到KB級(jí)的最小系統(tǒng)內(nèi)存占用,支持多種芯片構(gòu)架:從ARM Cortex-M、Intel x86、ARC(DSP 內(nèi)核)、NIOS II(FPGA 軟核)到開源的RISC V等,跟Linux一樣的模塊化內(nèi)核組織方式,如圖2所示。

Zephyr目前已經(jīng)升級(jí)到V1.7版本,逐步向一個(gè)可以用到生產(chǎn)環(huán)境的系統(tǒng)靠攏了。Zephyr最大的特色并不在于其完備性而在于其開發(fā)理念完全來自于“軟件定義物聯(lián)網(wǎng)”,并且有很好的資源支持,在未來應(yīng)該會(huì)有自己的位置。

RTthread

RTthread是純國(guó)產(chǎn)的小型操作系統(tǒng),植根于中國(guó)的各種使用場(chǎng)景,10年來已經(jīng)確立了自己的地位,在很多行業(yè)有自己的一席之地,目前社區(qū)非?;钴S,核心團(tuán)隊(duì)以創(chuàng)業(yè)公司的形式推進(jìn),非常專注。技術(shù)上的特征作為一個(gè)成熟的系統(tǒng),沒有什么可以吐槽的地方。Zephyr有的技術(shù)優(yōu)勢(shì)RTT都有,而且RTT在生產(chǎn)環(huán)境的裝機(jī)量較為可觀。

華為LiteOS

華為是全球范圍內(nèi)物聯(lián)網(wǎng)技術(shù)的根源廠商之一,LiteOS是一個(gè)華為內(nèi)部很多產(chǎn)品都在用的系統(tǒng),目前也以開源的形式在全力推廣。LiteOS最大的優(yōu)勢(shì)在于華為很多根源技術(shù)將利用LiteOS進(jìn)行輸出,目前最大的例子就是即將全面商用的NB-IoT技術(shù),設(shè)備端的開發(fā)包將會(huì)用LiteOS輸出。

以上幾個(gè)系統(tǒng)一致的特點(diǎn)包括小型化、芯片適應(yīng)范圍廣、通信協(xié)議適配比較廣泛等,他們也都是開源的系統(tǒng),研發(fā)或推動(dòng)力量比較活躍。有可能在物聯(lián)網(wǎng)領(lǐng)域里的類似Linux地位的主流操作系統(tǒng)會(huì)是其中某個(gè),也或許會(huì)一直都存在下去但是在技術(shù)上越來越趨同。

開發(fā)框架

首先解釋一下開發(fā)框架,開發(fā)框架可以小到是一個(gè)細(xì)節(jié)的工具,也可以大到規(guī)定開發(fā)的全部邊界。最典型的例子是Android,純粹操作系統(tǒng)意義上,Android是Linux的一個(gè)分支,但是從App開發(fā)角度,除NDK之外,沒有任何與Linux打交道的地方,所以也把Android叫做操作系統(tǒng)。

再廣泛地看,Android除了面向手機(jī)應(yīng)用的開發(fā)框架,還準(zhǔn)備了Google play這樣的應(yīng)用分發(fā)渠道,這是開發(fā)者生態(tài)建設(shè)。同理,我們看Node.js在后端的種種開發(fā)模式,也是將所有后端資源都封裝到JavaScript里,開發(fā)時(shí)可以隨時(shí)npm install各種包來require,解決了代碼復(fù)用問題。

因此我的觀點(diǎn)是,開發(fā)框架以及背后的代碼復(fù)用和開發(fā)者生態(tài)才是真正的操作系統(tǒng)。

目前在物聯(lián)網(wǎng)領(lǐng)域,正在嘗試向生產(chǎn)環(huán)境演進(jìn)的開發(fā)框架基本都基于JavaScript,而在小型實(shí)時(shí)操作系統(tǒng)上使用的JavaScript runTIme目前也基本集中到了JerryScript上。JerryScript是三星開發(fā)和開源的一個(gè)小資源占用的引擎,內(nèi)存需要64KB,存儲(chǔ)需要200KB即可,能夠?qū)崿F(xiàn)完整的事件驅(qū)動(dòng),符合ECMAScript 5.1。

如同前文所說,開發(fā)框架或是操作系統(tǒng)在當(dāng)下需要包括以代碼復(fù)用為目的的開發(fā)者生態(tài),甚至需要包括應(yīng)用分發(fā),所以我們看到在JerryScript的基礎(chǔ)上,有兩家做這類工作的團(tuán)隊(duì)值得關(guān)注:

WRTnode

WRTnode是一個(gè)北京的開源硬件團(tuán)隊(duì),提供從開發(fā)到硬件交付的全流程服務(wù)。他們最近開放的node.system和noyun.io即是著眼于實(shí)現(xiàn)物聯(lián)網(wǎng)JavaScript的開發(fā)框架和開發(fā)者生態(tài)。在WRTnode的實(shí)現(xiàn)里,設(shè)備端的JavaScript開發(fā)已經(jīng)變得像cloud9.io一樣全案在線開發(fā),為開發(fā)者屏蔽了嵌入式開發(fā)的繁瑣編譯燒寫工作。

Ruff

Ruff是位于上海的創(chuàng)業(yè)公司,2015年開始一直在演進(jìn)基于物聯(lián)網(wǎng)設(shè)備端JavaScript的開發(fā)者生態(tài),提供了較為可行的代碼復(fù)用框架。目前他們已經(jīng)開始服務(wù)商業(yè)客戶,為物聯(lián)網(wǎng)應(yīng)用的快速實(shí)現(xiàn)提供了可能。

同時(shí),Zephyr和華為L(zhǎng)iteOS也都有各自的JavaScript runTIme發(fā)布計(jì)劃。

以上我們看到了設(shè)備端開發(fā)的一些新的發(fā)展,目前這些新的設(shè)備端開發(fā)技術(shù),已經(jīng)逐步面向交付轉(zhuǎn)移了。有理由相信經(jīng)過一段時(shí)間的發(fā)展,面向效率的商業(yè)模式驅(qū)動(dòng)下的物聯(lián)網(wǎng)開發(fā)技術(shù)將迎來一大波更新,從而導(dǎo)向物聯(lián)網(wǎng)應(yīng)用的真正大發(fā)展。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉