1. 程式人生 > >透視物聯網中的三種類型的物

透視物聯網中的三種類型的物

在物聯網概念的蝶變:從M2M到智慧地球中我們探討了物聯網的幾種概念,最簡單的,物聯網就是由物連線起來的網路,可是,什麼樣的物能夠連線到網路呢?物聯網的物有什麼樣的特點呢?這是本文要探討的話題。

什麼是物

根據字面意思,物聯網的物就是可以連線到物聯網的物體,可連線性是物聯網中的物區別於普通的物體的特徵。

生活中的椅子,電視,風扇,微波爐,冰箱,燈泡等這些可以稱為物聯網中的“物”嗎?
在連線到物聯網的12種通訊技術中,我們列舉了各種可以幫助物連線到物聯網的技術,逐一檢查這些物是否能包含那些連線技術。一把木製椅子,如果嵌入了電子標籤,超市有可能那麼做,那麼他就是物聯網中的物,如果在出售時電子標籤被取出,那它又降級成為普通的物。一個燈泡,如果能夠聯網,讓你在遠端控制,那麼它就是物聯網中的物了。

物聯網中的物,就是能以某種方式連線到網路的物體。

物所具備的功能

連線只是物聯網的一種表現形式,並不是目的,超市裡衣服加了電子標籤,是為了標識,而燈加上連線(常見的有zigbee的,wifi的等)是為了控制。通常來講,物聯網種的物至少需要提供如下功能:

- 標識資訊(RFID標籤,MAC地址)
- 資訊採集(儲存感測器值,感測器網路)
- 資訊處理(處理指令和資料)
- 通訊(採用連線技術傳送和接收訊息)
- 驅動(開關控制,電機控制)

如上這些功能,加在普通的物上,就能成為物聯網的物。下面我們以加法的視角,將物聯網的物分成三類。

電子標籤+物

如在 物聯網這個名字的由來一文中提到的,物聯網(Internet of thing)這個詞就來自電子標籤+商品這個場景。

電子標籤,英文即RFID(Radio Frequency Identification),是RFID技術的載體,具體技術可以參考連線到物聯網的12種通訊技術中NFC技術。

最基本的電子標籤系統由兩部分組成:
- 標籤(Tag):由耦合元件及晶片組成,每個標籤具有唯一的電子編碼,通常就代表物體標識
- 讀寫器(Reader):讀取(有時還可以寫入)標籤內電子編碼資訊的裝置

電子標籤+物的系統結構
在現實中,由於電子標籤已經非常非常普及以及廉價,開發這型別的物主要是直接採購合適的電子標籤,並嵌入到物,有的甚至是附在物上就可以,開發工作都集中在讀寫器那一側。
電子標籤+物的系統結構的系統結構圖

常見案例
在生活中常見的這類物體有:超市帶標籤的衣服,各類卡(會員卡,一卡通,銀行卡),ETC等

嵌入式+物

比電子標籤再複雜一點,就需要物具有資訊處理能力和通訊能力,大多數這樣的物都是嵌入式終端。

嵌入式系統(Embedded System),是一種嵌入機械或電氣系統內部、具有專一功能和實時計算效能的計算機系統。從概念上,嵌入式系統還是屬於計算機系統,類比常見的的個人用計算機來說,嵌入式系統是個專用系統,結構精簡,在硬體和軟體上都只保留需要的部分,而將不需要的部分裁去,這其中的主要原因,當然是成本,此外,嵌入式系統一般更便攜、低功耗。

嵌入式系統的系統結構圖
和PC機類似,嵌入式系統一般具有處理器,控制器,儲存,輸入,輸出五大部分,如下圖所示:
嵌入式系統的系統結構圖
其中,控制器和運算器現在被合在一起被成為晶片,而儲存器可分為記憶體和外存。輸入輸出裝置總類非常多,常見的鍵盤,顯示器,網路介面都是輸入輸出裝置,輸入輸出裝置也往往會根據應用功能而有不同的配置,例如可以不配鍵盤和顯示器,也可以配置其它各種感測器。作為一個物聯網的物,唯一要求必備的是網路介面,這樣這個裝置就可以連線到網路了。

另外從軟體上看,則一般可以分成作業系統層和應用層,不過也存在一些嵌入式系統是無作業系統的,這個時候,開發者需要自行實現類似檔案系統或者網路協議等部分的功能。

根據晶片的不同,嵌入式系統開發又可以分成如下三類:

微控制器
微控制器(Microcontrollers),又稱單片微控制器,微控制器誕生於1971年,經歷了SCM、MCU、SoC三大階段,詳細資訊請百度。
目前最常用的方式是採用MCU方式。

DSP
DSP叫做數字訊號處理器,它的結構與MCU不同,加快了運算速度,突出了運算能力。可以把它看成一個超級快的MCU。

FPGA
FPGA叫做現場可程式設計邏輯陣列,本身沒有什麼功能,就像一張白紙,想要它有什麼功能完全靠程式設計人員設計(它的所有過程都是硬體,包括VHDL和Verilog HDL程式設計也是硬體範疇,一般稱之為編寫“邏輯”。)。和微控制器和DSP相比,FPGA成本要高一些,開發也要複雜一些,但是因為可以硬體程式設計,比較而言速度是最快的。

常見案例
我們見到的大部分的物聯網中的物,都是一個嵌入式裝置,例如工業領域的各種串列埠的,ModBus的裝置,它們有很多是微控制器裝置;攝像頭等音視訊處理裝置很大可能是DSP裝置;用來做高精確度檢測,測量的裝置很大可能是FPGA裝置,因為它們對運算速度要求比較高。

智慧+物

如果說嵌入式系統是精簡的PC,那麼PC甚至比PC要更強大的系統能組成物聯網中的物嗎?當然可以。

能執行安卓(Android)的計算機系統是個典型的例子,安卓是一種基於Linux的自由及開放原始碼的作業系統,主要用於移動裝置,如智慧手機和平板電腦。這一類裝置往往具有強大的運算能力,豐富的外設介面,同時支援多種應用功能。

安卓的系統結構圖
安卓裝置的硬體結構與嵌入式裝置沒有差異,區別在於安卓是一個比較重量級的作業系統,對器件的選型有要求,對硬體資源的要求相對也較高。例如,安卓的早期版本僅支援部分arm架構處理器,再安卓3.2之後開始支援部分高通處理器,在4.1之後開始支援X86架構的處理器。當然,最新的安卓的相容性就很廣了,大部分的晶片廠家都有支援安卓的硬體平臺了。

在谷歌官方網站上描述Android是一種基於Linux的開放原始碼軟體棧,下圖所示為 Android 平臺的主要元件:

Android 軟體棧
(轉自官網https://developer.android.com/guide/platform/

安卓的分支
安卓還有三個分支,方便開發不同型別的裝置,它們分別是:
- Wear OS
- Android TV
- Android Auto
分別對應可穿戴,電視,智慧汽車等型別的裝置。

安卓裝置的開發
安卓裝置的開發也包含了硬體和軟體的開發。
典型的安卓裝置如安卓手機,和其它嵌入式裝置硬體開發過程過程類似。
安卓的軟體開發主要是驅動和應用開發。如果安卓裝置在硬體上增加的輸入輸出,或者感測器是安卓支援的,就不需要做驅動開發。

安卓應用程式的開發,通常通過在Android SDK中使用Java作為程式語言來開發應用程式。開發者亦可以通過在Android NDK(Android Native開發包)中使用C語言或者C++語言來作為程式語言開發應用程式。同時Google還推出了適合初學者程式設計使用的Simple語言,該語言類似微軟公司的Visual Basic語言。此外,Google還推出了Google App Inventor開發工具,該開發工具可以快速地構建應用程式,方便新手開發者。

常見案例
安卓裝置在生活中已經很常見了,如電視盒子,智慧電視,智慧汽車,無人機,機器人等等。