首頁 > 軟體

從「嵌入式」到「物聯網」有哪些變化?

2021-05-28 13:00:09

經過幾十年發展,嵌入式技術已經用在了我們生活中的方方面面,但是嵌入式始終都帶有小眾,專業性強的屬性,讓很多非嵌入式領域的同學望而卻步。近十幾年的發展,物聯網覆蓋了越來越多領域,包括了家居,商業,工業,農業等領域,不僅吸引了原來嵌入式領域的同學,同時吸引了非常多非嵌入式領域的同學進入物聯網領域。從上面的發展趨勢,可以發現四個重要的轉變:

物聯網涉及到的技術面越來越廣,對物聯網開發平臺的要求越來越高

物聯網對開發者的要求發生了變化,更加強調工具和易用性

物聯網作業系統已經突破了傳統作業系統核心的範疇,開始整合越來越多的能力

物聯網是雲端一體的,有豐富的應用場景和商業模式,能夠聚合更多的資源

本文將聚焦在技術,人,作業系統和商業模式這四個方面,詳細說明嵌入式到物聯網的轉變及背後的一些思考。

「嵌入式」到「物聯網」的轉變

一 技術棧的轉變

嵌入式和物聯網技術是隨著微控制器,作業系統,雲端計算,人工智慧等技術一起發展的。按照裝置工作的模式,把技術的發展分為以下幾個階段:

裝置單獨工作:這個階段是從1970年代開始,主要涉及到的技術領域包括微控制器,硬體開發板,外設驅動,及上層應用。主要用於工業控制領域,比監控,裝置指示等。最著名的是8位的51微控制器。

多個裝置互聯工作:隨著無線通訊技術,如ad hoc,ZigBee(802.15.4),低功耗藍芽的發展,嵌入式裝置開始形成網路工作。主要用於智慧電網,這類抄表類業務。主要涉及到的技術,除了裝置單獨工作階段的技術外,增加了網路連線技術,如802.15.4,低功耗藍芽等,嵌入式作業系統,如FreeRTOS,Contiki, TinyOS等。

雲端一體階段:對裝置控制和管理的技術要求不斷提高,和雲技術的發展,越來越多的裝置不僅僅需要互聯,也需要連線到雲端。出現了Wi-Fi模組,Wi-Fi和BT combo模組。筆者認為從這個階段開始真正進入了物聯網的階段。通過閘道器技術,MQTT/CoAP等技術實現裝置的連雲,和能夠通過手機對裝置進行管理。相比於多個裝置互聯工作階段的技術外,增加了更加豐富的連線技術,如MQTT/CoAP等,及雲端技術,如物聯網雲平臺等。

物聯網智慧裝置:隨著技術的發展,裝置端不再僅僅是Wi-Fi和BT類的純連線類智慧裝置,出現了前面幾年特別火的智慧音箱,每年億級出貨的IP Camera等智慧裝置。這類裝置的主要特點是有了多媒體方面的要求,同時能夠消耗更多的雲資源,不僅僅包括了儲存資源,還包括了運算,人工智慧AI演算法的資源。相比於上個階段,增加了多媒體技術,流媒體網路技術,雲端AI技術等,對物聯網技術能力建設的開發人員技術廣度和深度提出了更高的要求。

從上面的梳理,可以看到技術棧的內容越來越豐富,要求越來越高。這個時候問題就來了,這麼多的技術,難道物聯網的開發人員都要懂才能夠做開發和創新嗎?筆者的回答是當然不是,下面會詳細說明筆者對物聯網開發人員要求的理解。

二 開發人員的轉變

筆者把物聯網的開發人員分為兩類,一類是物聯網平臺能力建設的開發人員,另外一類是基於物聯網平臺提供能力的開發者。

第一類開發者,需要了解整個物聯網領域需要用到的技術。隨著物聯網技術的發展,對這類開發者提出了非常高的要求。這類開發者需要了解從裝置端到雲端的全鏈路技術,在其中找到自己的位置。如果不從雲端一體的角度去體系化瞭解物聯網技術,而是按照嵌入式的傳統思維方式,隨著技術的不斷髮展會逐漸被淘汰。這類開發者開發物聯網平臺的一個重要目的是吸引越來越多的第二類開發者進來,一起繁榮物聯網生態。

相比於第一類開發者,第二類開發者的挑戰也不小。這類開發者主要有兩個來源,一個來源是傳統嵌入式開發者,另外一個是網際網路開發者。這些開發者都需要學習更多的知識才能夠更好地基於物聯網平臺開發。傳統嵌入式開發者需要了解更多的多媒體,雲端,人工智慧等技術。網際網路開發者需要了解嵌入式裝置上的各種限制,將雲端,多媒體,AI等技術更好地工程化落地在物聯網場景。

筆者覺得第一類開發者的使命是幫助越來越多的第二類開發者進入物聯網領域。關鍵在第一類開發者實現以下兩點:

豐富的功能元件:包含了各種硬體模組,裝置端和雲端軟體功能模組,及配套的開發和偵錯工具。

低程式碼開發:Python,JavaScript指令碼化語言在物聯網領域的充分運用,能夠極大地降低開發者門檻。

隨著物聯網技術的不斷髮展成熟,基礎平臺和開發工具的不斷完善,筆者覺得第一類開發者會越來越少,而第二類開發者會越來越多。這樣以來,物聯網開發再也不像嵌入式開發只是一小部分專業開發人員的事情,學校的學生,前端開發者,產品經理,技術愛好者等,都是物聯網的貢獻者。

三 作業系統的轉變

由於作業系統是物聯網領域重要的基礎型技術,且目前物聯網作業系統是百花齊放,專門聊下對作業系統的思考。根據嵌入式和物聯網不斷髮展階段,作業系統的特徵,筆者把作業系統分為以下4個階段:

無作業系統:早期的嵌入式裝置,由於邏輯單一,是不需要作業系統的。

簡單作業系統:發展到多個裝置互聯工作階段,出現了專門針對於物聯網裝置的作業系統,如Contiki,TinyOS。這類作業系統針對裝置上報資料和事件設計,非常的簡單,最顯著的特徵是基於事件驅動設計。在發生事件需要上報時,能夠快速做出響應,程式設計邏輯也是按照此思路設計。

實時作業系統:隨著嵌入式領域的不斷髮展,出現了針對實時領域的嵌入式作業系統,最典型的代表是FreeRTOS。這類作業系統的特點是相比於Linux實時性好,有較為全面的核心功能,但是並不是強生態,上層應用支援的很少。

物聯網作業系統:隨著物聯網的出現,由於實時作業系統主要提供的是系統核心部分的能力,網路,多媒體,配網工具,及應用生態都很難滿足物聯網領域的要求,出現了物聯網作業系統,有RT Thread, LiteOS,AliOS Things等,還包括Linux和Android。筆者認為在一段時間內,這麼多的作業系統都會並存,很難被統一。主要原因是目前各晶片原廠並沒有動力去做統一,他們各自選用一個合適自己的就好,無論往哪個作業系統上去主動切換,能夠換來的優勢都是很有限的。

有一部分觀點認為,要解決物聯網碎片化的問題要從統一作業系統開始,統一了作業系統就能夠解決物聯網的碎片化。筆者不贊同這個觀點。物聯網就是碎片化,這是面臨的挑戰,同時也是它的魅力所在。這裡用一個極端的例子來論證筆者的觀點。如果作業系統能夠統一物聯網碎片的問題,那麼直接在晶片層面去統一就好了。但是很明顯,基本不可能做到。做物聯網作業系統的最大的價值在於通過軟硬體深度結合,做到極致的效能和成本優勢。既然已經有多樣的物聯網作業系統就讓它存在,物聯網的碎片化問題的解決不在作業系統。

四 商業模式的轉變

傳統嵌入式領域主要是靠賣硬體掙錢,支撐起一家上市公司都很難,更不用說市值百億美元,甚至千億美元的公司了。但是在物聯網領域,由於它的端雲一體特性,使得整個商業模式發生了巨大的變化,從嵌入式領域的一次性硬體買賣,變成了可運營的賺錢模式,如賣雲端儲存,雲服務,及內容。物聯網除了本身帶來的運營收益外,還是手機生態的強大護城河,進一步增加手機這個超級終端的附加值。相信還會出現更多的物聯網百億美元,甚至千億美元市值的公司,市值能夠達到數百億,甚至千億美元的公司肯定是很好地解決了物聯網碎片化問題,形成強大的生態,完成爆炸式增長。

五 總結

隨著嵌入式到物聯網的演進,技術複雜度越來越高,但是對於物聯網開發者,門檻必將越來越低,更多的開發者能夠基於簡單的指令碼語言,豐富的生態庫和工具,開發出更多創新的產品,滿足大家對便利生活,高效生產等方面的需求。同時,物聯網的發展不僅僅是技術上的演進,更是商業模式的演進。通過技術的創新,降低了開發者的門檻,讓物聯網開發不再像嵌入式開發是小眾和Geek的專利,而是大眾都能夠開發創新的基地。由於這個轉變,在結合雲端技術的突飛猛進,讓物聯網的商業模式不再像嵌入式主要靠賣開發板,而轉變為賣服務,賣雲資源,賣創新產品。這種海量且高附加值的業務,支撐起了物聯網能夠出現百億級甚至千億級的公司。

免費領取電子書

《在Spring生態中玩轉RocketMQ》

如何在Spring生態中玩轉RocketMQ?有幾種方式?各自適用於什麼場景?本書從羅美琪(RocketMQ)和春波特(SpringBoot)的故事開始,詳細講解在Spring生態中使用RocketMQ的三種主流方式,帶你上手實操!


IT145.com E-mail:sddin#qq.com