• 沒有找到結果。

第二章 國內外相關研究

3.1 系統架構

本節將介紹系統架構,並分別從使用者與從設計者角度分析系統設計。

3.1.1 使用者情境

本研究典型的使用情境如 Fig. 3 所示,以智慧環境為例,使用者希望能夠從 Server 或微小設備讀取智慧環境的感測資料,但使用者可能與 Server 以及 Sensing 環境使用異 質的網路技術,因此,系統設計目的是讓使用者不論在哪個環境都可以順利讀取到資料。

並加以利用資料,甚至可以直接對微小型設備進行控制。

Fig. 3 使用情境

3.1.2 設計者系統架構

本研究致力於設計一能適應於 IP 為基礎之物聯網環境 M2M 平台,並能以此平台 為基礎開發相關應用程式,系統架構如 Fig. 4 所示,分為 IPv6、IPv4 與 6LoWPAN 網 路環境,由於本系統之 6LoWPAN Gateway 能夠適用於 IPv4 與 IPv6 環境,因此,於 IPv6

IoT Server

Internet(IPv4/IPv6)

Data Center

End User IoT Gateway

6LoWPAN Sensing Area

感測資訊至 IPv6 或 IPv4。且不論終端位於 IPv4 或 IPv6 也可利用 IP 對節點進行操控,

如 End User 或 Server 可使用 CoAP 協定對節點進行控制。

本系統角色包括 Server、6LoWPAN Node、 IoT Gateway 與 Data Center 等,能夠 適應異質網路環境,且當新的 6LoWPAN Node 加入本系統 IoT Gateway 的服務範圍後,

系統能夠自動察知其服務能力。並給予其適當的資料存儲空間給予後續使用者使用。以 下將介紹系統中各個角色的功能。

 6LoWPAN Node:負責環境感測之 Zigbee 節點,以 Contiki 2.6 設計,支援 6LoWPAN

與 CoAP,詳細於 3.2.2 節介紹。

 Data Center:M2M 系統資料儲存中心,儲存 Gateway、6LoWPAN Node 的相關資

訊。

 End User:不需知道系統中間的繁複程序,只需使用 M2M 系統所產生的資料即可 使用相關應用。

Fig. 4 系統架構

3.1.3 系統訊息流程

本系統簡易循序圖如 Fig. 5 所示,依序可分為五個階段,包括:Gateway Registration、

Node Joining、Node Registration、Sensed Data Storage、User Access。以下將分別進行介 紹。

 Gateway Registration:若欲使用本系統,Gateway 的註冊是必需的,由於 Gateway 為每個 6LoWPAN 感測環境中之中介點與管理節點的角色,容易發生安全性問題,

因此,於本系統設計 Gateway 註冊必須經過系統管理者審核後,由系統管理者註冊 至本系統後再發行至感測環境中。

 Node Joining:本系統的 Gateway 能夠自動偵測符合本系統設定的 6LoWPAN Node,

當新的 Node 欲加入 Gateway 所管轄的環境時,Gateway 能夠自動察知 Node 加入。

且 Node 取得 Gateway 的 Prefix 後即能 Auto-Configuration 出 IPv6 Address,詳細方 法將於 3.1.3.2 節說明。

6LoWPAN IPv4 IPv6

6LoWPAN

IoT Gateway (Prefix Provider)

IoT Gateway (Prefix Provider) IPv6 Rely

發送註冊訊息,當 Server 收到註冊訊息後便會使用 CoAP 察知 Node 的服務能力後 記錄,並於資料中心開啟相對應的資料儲存空間。

 Sensed Data Storage:當 Node 註冊完成後,便會開始因事件發生回報或定期回報所

配備之感測器相關資訊至 Server,並由 Server 儲存至資料中心。 Get Node Service Profile

Content Save Node Profile

End User

Sensed Data Periodically/On Demand

Save Sensed Data

3.1.3.1 閘道器註冊(Gateway Registration)

本節將詳細介紹 Gateway 註冊流程,於本系統中,Gateway 的審核與註冊是必需的,

由於安全性的考量,Gateway 將由系統管理員由 Server 中特定之介面新增至本 M2M 系

所發送的封包,將會進行封包的過濾以確保系統的安全性。本系統之 Gateway 新增模組 之循序圖如 Fig. 5.第一區塊所示,詳細系統流程如 Fig. 6 所示,由系統管理員輸入

Gateway 相關訊息後,系統便會自動判斷該 Gateway 是否已被註冊,若有則跳出,若無 則判斷註冊成功,並將 Gateway 相關資料寫入資料中心,經過該步驟後,Gateway 即可 用於本系統。

IPv6 Address 形成方法是使用 IPv6 Stateless Address Auto-configuration [29],Node 進入 Gateway 的服務範圍後,將會收到 Gateway 的廣告信(Advertisement),並加入該 Gateway,

於廣告信中 Gateway 會提供 Node 該 Gateway 的 Prefix,Node 即可使用此 Prefix 進行

IPv6 Auto-Configuration,循序圖如 Fig. 5 第二區塊所示,詳細 Auto-Configuration 方法 將於 3.2 節說明。

3.1.3.3 節點註冊 (Node Registration)

如 Fig. 5 第三區塊所示,本節將介紹 Node 註冊過程,詳細系統流程圖如 Fig. 7.所 示,當 6LoWPAN Node 組合完 IPv6 Address 後,即會發送註冊系統之 6LoWPAN UDP 封包,當 Gateway 收到後,會透過 Gateway 中之 SLIP 介面轉為 IPv6 封包,而基於安 Node。於上述步驟後,Server 將會自動發送 CoAP Discover 的封包至 Node,用以察知 Node 所能提供的 Service Profile,並記錄於資料庫中,而 Server 亦會依照該 Node 所提 供的 Service Profile 來開啟對應的資料表,給予該 Node 專用。

Node

相同則丟棄。判斷完成後,合法的封包將由 Gateway 發送至本系統之 Server,Server 收

3.1.3.5 使用者存取 (User Access)

如 Fig. 5 第五區塊所示,使用者只需於資料庫讀取系統所記錄的 Profile 與感測資訊即 可使用本系統。另外,若有需求,使用者也可直接訪問節點並使用 CoAP 取得相關資訊。

3.2 6LoWPAN 環境設計

3.2.1 6LoWAPN System Architecture

如 Fig 4. 所示,以 IoT Gateway 分界,6LoWPAN Network 為內網,而 IPv4 以及 IPv6 為 外網,6LoWPAN Node 將感測到的資料使用 IEEE 802.15.4 協定將 6LoWPAN 格式的封 包傳至 Gateway,並由 Gateway 接收後將 6LoWPAN 封包經過 SLIP(Serial Line Internet Protocol)轉為 IPv6 的封包。若 Gateway 位於 IPv6,則直接將封包送出,若 Gatway 位於 IPv4,則會將封包封裝入 IPv4 Header,並使用 IPv4 Header 中 Protocol 欄位,將其設定 為 41 表示原始封包為 IPv6 封包,並於 IPv4 網路上傳送。詳細步驟將於下節說明。

3.2.2 6LoWPAN Node Design

3.2.2.1 6LoWPAN Node Functionality

作為於環境中的感測節點,能夠因配備的 Sensor 不同,感測不同的資訊,例如溫濕度、

二氧化碳、水位等。本研究於 Node 中實作 6LoWPAN 使其能夠與 Internet 真正互通,

並且在 Node 上實作 CoAP,用於記錄 Node 之 Profile,且能夠讓使用者直接利用 CoAP 來 Access Node,進行控制與讀取即時感測資料。另外,本研究之新的 Node 進入新環

境時,即會對 Server 進行註冊,Server 即會將 Node 的 CoAP Profile 儲存於資料中心。

3.2.2.2 6LoWPAN Node Operation System

本研究之 6LoWPAN 感測節點選用 Contiki 2.6 作為本研究的感測節點作業系統,

6LoWPAN 雖已有 RFC [6],但時至目前 6LoWPAN 並沒有真正標準化,目前市面上有 相當多微小 Device OS 支援 6LoWPAN 但封包格式仍與 RFC 制定規格有所差異。而這 些作業系統包括 Contiki、TinyOS、FreeRTOS、JeNet Proprietary[30]等,其中,FreeRTOS Platform 必須使用 Sensinode;而 JeNet Proprietary Platform 必須使用 Jennic node;Contiki OS 與 TinyOS 所使用的 Platforms 較有彈性,相對於 TinyOS[31]越來越多廠商之 Platforms 支援 Contiki[32],且路由器最大廠商 Cisco 亦表態未來將支援 Contiki,因此,本研究亦 選用 Contiki 作為 6LoWPAN Node 的作業系統。

3.2.2.3 6LoWPAN Node IPv6 Auto-Configuration

於本研究中,6LoWPAN Node 使用 Contiki 系統來完成,於 Contiki 系統中,6LoWPAN Node 組合 IPv6 的方式是使用 IPv6 Stateless Address Auto-configuration[29]的方式,組合 IPv6。簡單範例如 Fig. 9 所示,Node 的 Zigbee MAC Address 為 02:11:22:ff:fe33:44:04,

Gateway 設定之 IPv6 Address 為 2002:786c:cd24:2::2,因此,Prefix 為 2002:786c:cd24:2::/32。

6LoWPAN Node 透過 Advertisement 取得該 Prefix 後即可進行 IPv6 組合,如 Fig. 9 所 示,組合完成的 IPv6 Address 為 2002:786c:cd24:2:11:22ff:fe33:4404,該 IP 為 Global 可

使用的 IP,可用於 Internet,意即可由 Internet 中任意地區對 Node 進行雙向的溝通。

Fig. 9 IPv6 Stateless Address Auto-configuration 於 Contiki 系統

3.2.2.4 6LoWPAN Node System Implementation

本研究選用 Zigduino[33]作為本研究之 6LoWPAN Nodes,於 Git Hub 已有 maniacbug 為 其撰寫 Contiki 硬體層 Platform[34],但只支援至 Contiki 2.5 版,由於舊版本所產生之

6LoWPAN 封包無法與新版互通,本系統為使其互通已成功將其移植至 2.6 版,使其能 夠與本系統之 Gateway 互通(使用 Nooliberry 作為 Sink)。Zigduino 為 Arduino 相容的微 處理器,因此能夠利用 Digital/Analog Pin 輕易的添加感測器。Zigduino 相關硬體規格如 TABLE 2 所示。

TABLE 2 Zigduino R2 硬體規格[34]

Microcontroller Atmega128RFA1 Operating Voltage 3.3V

Digital I/O Pins 30 PWM Output Pins 6

Analog Input Pins 8 (0-1.8V)

Flash Memory 128 KB , 2 KB is used by the bootloader

SRAM 16KB

EEPROM 4KB

Receiver Sensitivity -100db

3.2.3 IoT Gateway (6LoWPAN Border Router) Design 3.2.3.1 Gateway Functionality

Gateway 於本系統中作為 6LoWPAN 與 Internet 的中介點,於 Gateway 中實作 6LoWPAN Border Router 的功能,能夠將 6LoWPAN 封包重組後,轉為能夠於 IPv6 上繞送之封包。

另外,由於 6LoWPAN 原本是制定 IPv6 only,無法於 IPv4 上使用,本研究亦於 Gateway 另外實作 Tunnel 6to4 的功能,使得其亦能於使用 IPv4 上。

3.2.3.1 Gateway Tunnel Process

如 Fig. 10 所示,以下將依照順序說明 Gateway Tunnel Process 的過程

(1) 6LoWPAN Nodes 傳送資料時使用 IEEE 802.15.4 的表頭封裝 6LoWPAN 格式的封包 送至安裝在 Gateway 上的 6LoWPAN Sink Node,當 Sink Node 收到封包後便將 IEEE 802.15.4 表頭解封。

(1)若 Gateway 位於 IPv4 網路,封包目的地為 IPv4 位址,則封包可直接傳送。若封包目 的地為 IPv6 位址,則 IPv4 Header 的目的地必須設為 192.88.99.1,該 IP 位址為 anycast 位址,代表為 IPv6 Relay 位址,並由 IPv6 Relay 將 IPv4 Header 解封裝後取出 IPv6 封包 並轉送至 IPv6 網路。

(2)若 Gateway 位於 IPv6 網路,封包目的地為 IPv6 位址,則封包可直接傳送。若封包目 的地為 IPv4 位址,則封包必須經過 2002:c058:6301::位址(IPv6 Relay anycast),並由 IPv6

Relay 進行位址目的地 IPv4 位址解析後將 IPv6 封包封裝入 IPv4 Header 中再轉送至 IPv4 網路。

3.2.3.2 Gateway System Implementation

本系統 採用 Raspberry PI[35]並外掛 Nooliberry[36] 作為 Gateway,Raspberry PI 為 Embedded Linux,相較於ㄧ般電腦,擁有體積小、低耗電等特性,適合用於物聯網中,

Raspberry PI 分為 A、B 兩種型號,本系統採用 B 型進行實作。以下將詳細介紹。

 Raspberry PI:一款只有信用卡大小的 Embedded Linux,ㄧ大特色是使用 SD 卡代替 傳統電腦的硬碟,因此,已完成的系統相當容易移植。Raspberry 官方提供相當多 以 ARM 架構為基礎的 Raspberry PI 專用之 Linux 作業系統,例如 Raspbian (Debian)、

Pidora (Fedora)等,本系統採用 Raspbian 作為 Gateway 作業系統。Raspberry PI 的硬 體規格如 TABLE. 3 所示。

TABLE 3 Raspberry PI 硬體規格[35]

SoC Broadcom BCM2835 CPU ARM1176JZF-S 700MHz

GPU Broadcom VideoCore IV, OpenGL ES 2.0, 1080p 30 h.264/MPEG-4 AVC

Memory 512 MByte USB 個數 2

網路介面 10/100 乙太網卡 運作功率 700ma

運作電壓 5v GPIO 26 Pin

 Nooliberry:Nooliberry 為一 Raspberry PI 專用之小型 Zigbee 外掛模組,作為本系統 的 6LoWPAN Sink Node 外掛於 Raspberry PI 上,Raspberry PI 上擁有 26 Pin 的 GPIO (General Purpose I/O)腳位,Nooliberry 使用其 20Pin 腳位外掛於 Raspberry,其中,

14、15 Pin 腳(UART)即是用來將 IEEE 802.15.4 的 6LoWPAN 格式 Payload 轉送至 Gateway 中,SLIP 收到該 Payload 即會將其轉為 IPv6 封包。以下 TABLE. 4 為 Nooliberry 之詳細硬體規格。

TABLE 4 Nooliberry 硬體規格[36]

Microcontroller Atmega1281 Operating Voltage 3.3V

Flash Memory 128 KB

SRAM 8KB

EEPROM 4KB

Receiver Sensitivity -101db

相關文件