• 沒有找到結果。

第三章 研究方法

3.2 系統架構

3.2.1 系統需求環境

如 Figure 6 所示,建構本系統環境,需要數個或一個 Gateway、數個 Node、一台 Server 與 Data Center。以 Gateway 為 6LoWPAN 與 IPv4/IPv6 環境之分界,6LoWPAN

17

為內網,IPv4/IPv6 為外網。Gateway 上接上支援 BLE 之 Bluetooth Dongle,可與 BLE Node 進行溝通,BLE Node 佈於 6LoWPAN 環境內,Node 收到 Gateway 之 Prefix 後並可自行 組成 IPv6,包含 link-local 與 Global address。BLE Node 接上感測器,可將此感測器的 資料透過 CoAP 傳遞至使用者端,並將相關資料儲存於 Data Center 內,詳細流程於 3.2.2

Tool-chain 交叉編譯,可使用 IAR Workbench、ARM mbed、GCC 或 Keil MDK,在本系 統中使用 Keil 版本 4 之試用版[34]設計 BLE Node,於 Keil 內撰寫 nRF51 IoT SDK[35]

令其符合本系統之需求,令 Node 能夠在取得 Gateway 發送的 Router Advertisement Message 後,自行組成 IPv6 位址(於 3.2.3 節介紹)。修改成 BLE 可支援 6LoWPAN(於 3.2.1.1 節介紹),且取得 IP 位址後,即可使用 CoAP Server 所提供的資源(CoAP 協定於 3.2.5 節介紹)。此外,Keil 編譯過後產生 Hex 檔案,將此檔案透過使用支援 Segger J-Link[36]的官方程式 nRFgo Studio[37]燒入程式至開發板內。其詳細規格如 Table.1 所 列。

18

Table.1 nRF51-DK 硬體規格[33]

SoC Nordic nRF51(both nRF51822 and nRF51422) support Bluetooth Smart, ANT and 2.4GHz proprietary application Hardware standard Arduino Uno Revision 3

Program CMSIS-DAP for mbed and tool-chain Debug Segger J-Link Lite

I/O 4LED and 4 button

USB drag/drop programming USB Virtual COM port for serial terminal

Accepts power USB, External source(1.8V~3.6V), Single 2032 coin-cell battery

3.2.1.1.1 6LoWPAN over BLE

近年來設備數量持續提升,如何連結各設備並運用在物聯網中,IPv6 是很好的解 決方法,並提供有效的 auto-configuration 功能。但由於 6LoWPAN 是為 Zigbee(IEEE

802.15.4)所設計,並不適合直接將 6LoWPAN 標準放入 BLE 中,因此,6LoWPAN 工作 組目前為適合在 BLE 上運用 6LoWPAN 協定規劃標準[17],但尚未為 RFC 規範,而本 研究所實測到的 6LoWPAN 封包(於 4.3 節說明)並不為標準的 6LoWPAN 格式,但 Payload 含有 IPv6 位址資訊。且 Gateway 能夠將此封包還原成完整的 IPv6 封包。BLE 在 L2CAP 中 MTU 為 27byte[18][47],L2CAP Header 佔 4byte,Protocol Data Unit (PDU)只有 23byte

19

可供上層使用。但 IPv6 的封包為 1280byte 或更大,因此,要能夠運用在 BLE 中,須 有 L2CAP 的 分 割 與 重 組 之 功 能 。 此 外 , Internet Protocol Support Profile

Specification(IPSP)[17],IPSP 為支援網際網路所定義的 Profile,依照此 IPSP 的規則,

與目前相連的設備協調,選擇最小的 MTU,確保所有封包皆可有效傳輸。IPSP 能發現

於本系統所規劃之 Gateway 角色,以 Raspberry Pi 小型電腦設計 Gateway 原型,未 來將擴增使用 Smart Phone 支援本系統所設計之 Gateway 角色。目前本系統設計之智慧 型 Gateway 採用 Raspberry Pi[38](又稱樹莓派),Raspberry Pi 為一款 Embedded Linux 系 統的小型電腦,與一般電腦相較之下,可節省許多電力消耗,適合運用於物聯網中。

Raspberry Pi 所 採 用 的 晶 片 為 Broadcom BCM2835 System on Chip , 處 理 器 為 ARM1176JZF-S 700MHz。Raspberry Pi 官方與 Raspberry Pi 進階玩家提供多樣化的作業 系統,讓開發者可發展客製化的電腦,其他作業系統包含 Windows 10、Android、Unix 與 RISC OS 等,Raspberry Pi 移植系統相當容易,更改 SD 卡即可,燒錄與備份可透過 Win32 Disk Imager[39]完成。在本系統所開發之智慧型 Gateway 使用官方提供之

20

Raspbian 作業系統。Raspberry Pi 上提供許多介面供開發者發展應用,包含 USB、GPIO、

HDMI、MIPI 相機與 I²S 介面等,詳細硬體規格如 Table.2 所列。

Table.2 Rapberry Pi 硬體規格[38]

SoC Broadcom BCM2835

CPU ARM1176JZF-S 700MHz

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

Operating Power 700ma

Operating Voltage

5v

GPIO 26 Pin

3.2.1.2.1 Gateway Kernel 設計

Linux Kernel[40]為系統上的檔案,而此檔案紀錄許多關於系統的資訊,包括驅動主 機與一些相關的模組,Linux 最大的優點就是使用者能透過編譯 Kernel 滿足使用上的需 求,達到客製化系統的目的,編譯 Kernel 的目的包含新功能的需求,而官方所提供的

21

作業系統並不支援 6LoWPAN 需求,因此,為了讓 Gateway 具備支援藍牙的 6LoWPAN 能力,本系統設計之 Gateway 必須自行重新編譯 Linux Kernel 的功能,主要有兩種編譯 的方式,包含 Raspberry Pi 直接編譯與交叉編譯(Cross Compilation),由於直接在

Raspberry Pi 上編譯受限於硬體規格,編譯的速度將非常緩慢,因此,本文採用交叉編 譯的方式組成自己所需要的系統,使用虛擬機器執行一般 Linux(如 Ubuntu 等),首先,

必須先建立起 Tool-chain[41]的交叉編譯環境,設定為 Raspberry Pi 的 ARM 架構,並利 用選單的方式選擇 Kernel 功能(如 Figure 9 所示),支援藍牙 6LoWPAN 之能力,編譯完 成後燒錄 image 檔至 Raspberry Pi 的 SD 內。此外,為支援 BLE 協定之 Bluetooth Dongle,

系統需安裝 BlueZ5.2[42]或更新版本,連接完成後,達到本系統所需之支援 6LoWPAN 的智慧型 Gateway。

Figure 9: Gateway Kernel 設定

相關文件