• 沒有找到結果。

Linux 核心中IEEE 802.15.4 通訊協定之設計與實做

N/A
N/A
Protected

Academic year: 2021

Share "Linux 核心中IEEE 802.15.4 通訊協定之設計與實做"

Copied!
18
0
0

加載中.... (立即查看全文)

全文

(1)Linux 核心中 IEEE 802.15.4 通訊協定之設計與實做 Design and Implementation of IEEE 802.15.4 Protocol Stack in Linux Kernel 陳信養、李宗憲、馮立琪. 沈仲九、李俊賢. 長庚大學資訊工程研究所. 工研院電通所. lcfeng@mail.cgu.edu.tw. 摘要. 放眼觀望目前市面上有關 IEEE 802.15.4 的產 品,大多需要收費,很難找到開放的原始碼可供人. 近年來在無線感測網路的研究越來越盛行,無. 開發使用。而且大多數的產品都是使用 Micro. 線感測網路設置的主要目的是透過感測器來收集. processor 去執行 IEEE 802.15.4 的通訊協定堆. 資料,並且使用無線的傳輸方式將其所收集到的資. 疊。. 料傳回。ZigBee 是目前無線感測網路通訊協定標. 在本論文中我們使用工研院電通所所開發的. 準中,極為令人矚目的一種,可應用在家庭、工業. SCAN-ZB 作為研究平台,在 Linux 核心中加入 IEEE. 及醫療等相關環境中,包括監視、自動化及控制. 802.15.4 通訊協定堆疊的設計與實作,使用 Host. 等。其定義的範圍為 Network 層以上以至於 AP 層,. CPU 同時執行 IEEE 802.15.4 的通訊協定堆疊,以. 而底層則是以 IEEE802.15.4 通訊協定為基礎。. 及 Linux 作業系統,這樣不但可以節省一顆 micro. 目前市面上開發相關產品技術的公司越來越. processor 的成本,並且將來想在 Linux 上開發新. 多,但是有開放 IEEE 802.15.4 原始碼的卻少之又. 的應用程式也比較容易。依據初步的評估顯示,系. 少,而且都是採用額外的一顆 micro processor. 統已經可以正常的運作。 本篇論文共為五節。第二節為相關研究,針對. 去執行 IEEE 802.15.4 的軟體堆疊。 在本論文中,我們在 Linux 環境下設計並實做. 市面上有實做 IEEE 802.15.4 通訊堆疊的公司來做. 了 IEEE 802.15.4 通訊堆疊,並整合到 Linux 核心. 簡單的介紹。第三節為 IEEE 802.15.4 通訊協定,. 當中。在這過程中我們克服了許多有關無線通訊協. 主要針對 IEEE 802.15.4 通訊協定做簡介。第四節. 定及作業系統中時序與資源競爭等問題,成功的使. 則是系統設計與實作,主要介紹我們實做程式的部. 用 Host CPU 來同時執行 IEEE 802.15.4 通訊堆疊. 分以及比較值得探討之部分詳細說明。第五節為系. 與作業系統,提供給研究開發者另一種可行的方. 統評量及討論。. 案。. 2.相關研究 1.序論 無線網路在最近這幾年來的蓬勃發展,使得一. 以下為目前有關於實做 IEEE 802.15.4 通訊堆 疊的介紹。. 些在無線網路上應用的新興技術如雨後春筍般的 一一嶄露頭角。其中像是 ZigBee 此可應用於無線. Microchip Technology Inc.[10]是 1989 年在. 感測網路、無線個人區域網路(Wireless Personal. 美國成立的一家單晶片與模擬半導體的一家供應. Area Network,簡稱 WPAN)的技術,其主要是在短. 商。其主要產品有硬體平台以及相容於 Zigbee 的. 距離以及低功率的環境上使用,底層即是以 IEEE. 軟體堆疊,是以 micro processor 來執行 Zigbee. 802.15.4 通訊協定為基礎的應用。. 軟體堆疊並且是在一個沒有 OS 的環境下所執行。. 1.

(2) 不過這部份的資源必須要有買其產品才有辦法獲. (5) 有效範圍小,其有效涵蓋範圍約為 10~75m 左. 得,所以沒有詳細的資料。. 右。 (6) 使 用 頻 帶 廣 , 分 別 為 2.4GHz 、 868MHz 、 915MHz。. Freescale[7]為目前市面上和 Microchip 互 相競爭的廠商之ㄧ,主要在開發相容於 Zigbee 標 準的軟硬體,讓應用程式開發工程師能更容易的開. 而 Zigbee 所規定的架構主要有 Network(NWK). 發各種不同應用在 Zigbee 上的應用產品,而其也. 層、Application 層(APL)兩層,而在 APL 中又定. 是使用一顆 micro processor 來執行 Zigbee 軟體. 義 有 三 個 部 分 。 第 一 部 分 , Zigbee Device. 堆疊,也是在一個沒有 OS 的環境下執行。他們所. Object(ZDO),主要是掌管其下的 device 為何種型. 開發的 Zigbee 軟體堆疊在 NWK 層以上有部分開放. 態的裝置,如 Coordinator、EndDevicec 或 Router. 原始碼,但是 IEEE 802.15.4 所規定的 MAC 層以及. 等 型 態 。 第 二 部 分 , Application Support. PHY 層則是只有 object code 可用,並沒有 source. Layer(APS) , 主 要 是 傳 輸 Data 的 管 理 以 及. code 的提供。. security 的運作另外還有透過 ZDO 來做 Binding 與 Discovery 的動作。第三部分,則為管理 AP 層. Figure 8[4]是一個強大的軟體堆疊供應商,. 物件的 Application Framework。其架構如下圖所. Figure 8 已經在 2005 年一月被 Chipcon 公司所併. 示:. 購。而此公司所開發的 Z-Stack 是目前 Zigbee 協 定軟體中,最負盛名的一個,提供經濟、耐用且容 易部署的解決方案。. 3.IEEE 802.15.4 通訊協定 本節則是針對 IEEE 802.15.4 通訊協定來做介 紹,第一節會先簡單的介紹一下 ZigBee 以及 IEEE 802.15.4 之間的關係,第二節會介紹一下其特性 以及優點,第三節則介紹組成 IEEE 802.15.4 的元 件 及 組 成 的 拓 樸 形 狀 , 第 四 節 則 簡 介 IEEE 802.15.4 的架構,最後一節則是簡單介紹 IEEE 802.15.4 比較特有的功能。. 。 圖 1、Zigbee 架構圖 [11]. 3.1 Zigbee Zigbee 規範 Network 層以上的架構。其制定. 從上圖可看到 ZigBee 目前囊括了從 NWK 層到. 的架構特點如下:. APL 的 協 定 架 構 , 而 底 層 Physical(PHY) 層 和. (1)數據傳輸速率低,速率在 10Kbps~250Kbps。. Medium Access Control(MAC)層兩層則是引用了. (2) 功耗低,低耗電。. IEEE 802.15.4 通訊協定。. (3) 成本低,因為其架構簡單所以成本降低。 (4) 網路容量大,每個設備皆可與 255 個設備連 接。 2.

(3) device 在 同 一 個 頻 道 上 而 且 互 相 在 各 自 的. 3.2 IEEE 802.15.4 之特性與組成. personal operating space(POS)範圍裡面,並且 有一個以上的 FFD 作為 Network 中的 Coordinator. IEEE 802.15.4 主要是應用在一個電源必須持. 即可形成一個 WPAN。. 久但 throughput 不高的設備上,可以使其在一個 很簡單且花費甚低的環境下使用無線網路與其他. 根據應用層面 LR-WPAN 之網路拓樸可以形成. 設備溝通。這個特性亦使得 IEEE 802.15.4 這個通. 兩 種 形 式 : 一 為 星 狀 (Start) 另 一 為 點 對 點. 訊協定稱作為 Low Rate Wireless Personal Area. (Peer-to-Peer)連接。如下圖所示:. Networks(LW-WPANs)。而 LR-WPANs 最主要的幾個 優點為:易於安裝、可靠的資料傳送、短距離的資 料傳輸、非常低的花費及合理的電力持久性。 而 LR-WPANs 的特性如下: (1) 其傳輸速率有 20kb/s、40kb/s 最高可達到 250kb/s。 (2) 其拓樸形式提供星狀與點對點兩種。其擁有 16 bits 或 64 bits 兩種位址模式,可供省電 使用. 圖 2、網路拓樸. (3) 其擁有 guaranteed time slots(GTSs) 的能 力,GTSs 主要是保證傳輸的頻寬,可以使得 此設備擁有 real time communication 的能. 在星狀的網路連接型態中,必須有一個 FFD. 力。. 來做為此網路的 PAN Coordinator 其負責管理並維. (4) 在頻道的存取方面,其使用 Carrier sense. 護此網路之架構,而其他的終端點若要溝通皆須透. multiple access with collision avoidance. 過此 PAN Coordinator 來相互連結。而在這樣的網. (CSMA/CA)方式避免碰撞。. 路中各個終端點可以為 RFD 也可為 FFD。在這個網. (5) 提供 acknowledged 的機制,使得資料傳輸更. 路中的各個終端點裝置可以使用 64 bits extend. 可靠。. address 直接與 Coordinator 來溝通,這個 64 bits. (6) 提供 Energy detection(ED)的功能,選擇一. extend address 通常為硬體廠商所給的 address. 個 環 境 較 好 的 頻 道 傳 輸 資 料 。 提 供 Link. 隨著硬體出廠就設定在其中;或者也可以讓. quality indication (LQI),使其可以選擇品. Coordinator 配置一個 16 bits short address 給. 質較好的 coordinator 來連結。. 已經與其連結上的終端點使用,在 Zigbee 中這個. (7) 在 2450 MHz 頻帶提供 16 個頻道、915 MHz 頻. short address 含有特別的意義,其為 Coordinator. 帶提供 10 個頻道、868 MHz 頻帶提供 1 個頻. 用演算法算出來,可以根據這個 address 來取得這. 道。而目前台灣開放的為 2450 MHz 這個頻帶。. 個 device 是在幾個 hop 之外,不過這已經超過 IEEE 802.15.4 的範圍。. 主要組成 IEEE 802.15.4 網路的基本單位為一. 而另一種點對點(Peer-ot-Peer)型態的網路. 個 device , 而 device 的 型 態 又 可 分 為. 拓樸也同樣必須要擁有一個 PAN Coordinator 來維. full-functional. 與. 持其網路架構,而這個 Coordinator 必須要管理這. reduced-function device (RFD)其差別在於 FFD. 個 PAN 下的成員。也就是能在網路形態或行為改變. 必須擁有 IEEE 802.15.4 MAC 層的所有功能,但是. 時 , Coordinator 能 夠 通 知 每 個 加 入 此 網 路 的. RFD 卻可選擇性的擁有。當兩個或兩個以上之. Device。但與星狀不同的是在這個網路中的任兩個. device. (FFD). 3.

(4) device 只要相互在各自的 Personal Operating. 而 PHY 層主要提供兩種服務介面:其一為 PHY. Space(POS)中即可直接的互傳封包,而不一定需要. 層的專為資料傳輸所提供的服務介面,其工作是透. 透過 PAN Coordinator 來轉送。. 過 RF 來傳送或接收封包,此封包稱為 Physical Protocol Data Units (PPDUs) , 此 介 面 稱 為. 3.3 IEEE 802.15.4 之架構. Physical layer data service access point. 在 IEEE 802.15.4 的標準中,定義了 PHY 與. (PD-SAP)。其二為 PHY 層的提供的管理服務介面,. MAC 兩層間的介面與其所需提供的服務。PHY 層最. 而此界面稱為 Physical layer management entity. 主 要 是 用 來 操 作 radio frequency (RF). service point (PLME-SAP)。另外還有一個專門儲. transceiver 以及實現一些低階的控制機制。MAC. 存 PHY 層 屬 性 的 一 個 資 料 庫 , 稱 為 PHY PAN. 層主要的功能則是解析從 PHY 層所送上來的資料. information base (PIB)。 PHY 層之示意圖如下圖所示:. 來判斷做何相對應的動作,以及使用 PHY 層提供的 控制機制去控制 RF transceiver,其架構如下圖 3 所示:. 圖 4、IEEE 802.15.4 PHY layer 示意圖 [9]. 3.3.2 MAC 層 圖 3、IEEE 802.15.4 架構圖 [9]. 在 IEEE 802.15.4 標準中 MAC 層擁有的特點 有: (1) Beacon 之管理。. 3.3.1 PHY 層. (2) 頻道存取之機制(ie. CSMA/CA) 。 (3) 封包驗證。. 在 IEEE 802.15.4 標準中,定義 PHY 層的特點 如下:. (4) ACK 機制的支援與封包重送的機制。. (1) 啟動或關閉 RF 的動作。. (5) 連結與離開 PAN 的機制。. (2) Energy Detection (ED)、 Linking quality. 如同 PHY 層一般,MAC 層也提供兩種服務介. Indication (LQI)以便實現選擇品質良好之. 面:一者為 MAC common part sublayer (MCPS) data. 頻道。. SAP (簡稱 MCPS-SAP),其主要是連接 PHY 層的 PD-SAP 將其所傳上來的 MPDU 再做進一步的處理以. (3) Clear Channel Assessment (CCA),來監測此. 便再傳送給上層或接收到上層所要傳出的資料將. 頻道是否正處於忙碌狀態。 (4) 提供之頻率如下:. 其組合成 MPDU 再藉由 PHY 層的 PD-SAP 傳送出去。. 868–868.6 MHz (e.g., Europe). 二者為 MAC sublayer management entity-service. 902–928 MHz (e.g., North America). access point (MLME-SAP),主要為提供上層管理. 2400–2483.5 MHz (worldwide). 整個 PAN 的一些管理機制。另外像 PHY 層一般 MAC 4.

(5) 層也提供一個儲存 MAC 屬性的一個資料庫,稱為 MAC PIB。. MAC 層之示意圖,如下圖所示:. 圖 6、Superframe Structure 在 Inaction 區塊中 Coordinator 為了省電選擇休 息,而在這段期間 Coordinator 不接受任何封包的 傳送與接收。在一個 Superframe 中所有的傳輸動 作都必須在 Action 區塊中完成,如果此 PAN 允許. 圖 5、IEEE 802.15.4 MAC layer 示意圖 [9]. GTS 的要求則 Action 區塊中又可分為 Contention Access Period (CAP)區塊以及 Contention Free Period (CFP)區塊。如果 PAN 不允許 GTS 的要求則. 3.4 IEEE 802.15.4 之功能性概述. 不會出現 CFP 區塊。在 CAP 區塊中所有封包的傳送. 本節主要是簡述 IEEE 802.15.4 中一些比較特. 皆須透過 CSMA/CA 的競爭方式來傳送,但是在 CFP. 別以及重要的功能。第一小節主要是介紹. 中 device 則必須依照 Coordinator 所分配的專用. Superframe 的架構,在 IEEE 802.15.4 中一個相. slot 來傳送或者是接收資料,如此一來則可以保. 當重要的概念,第二小節則是提到 PHY 層與 MAC. 證在這個時間內此 device 可以確實的將其資料傳. 層 的 封 包 關 係 , 第 三 小 節 則 是 介 紹 在 IEEE. 送而不需要與別人競爭。. 802.15.4 中傳輸資料的一個重要的機制 CSMA/CA。. 3.4.2 IEEE 802.15.4 封包架構 3.4.1 IEEE 802.15.4 Superframe. 在 IEEE 802.15.4 的標準中定義了四種不同封 包的形式,分別為 Beacon、ACK、Data 與 Command. 架構. 四種。而 MAC 層之封包與 PHY 層封包之關係如下圖 所示:. 在 LR-WPANs 中所定義的兩種網路型態,其一 為. Beacon-disable. network , 其 二 為. Beacon-enable network,前者之 PAN Coordinator 不會定時發 beacon 而後者會。在後者的網路中, 因為其會定時的發出 beacon,而 beacon 中包含了 規定這個網路同步化的機制與定義這個 PAN 的行 為與規則,這些限制就以一個 Superframe 來做規. 圖 7、IEEE 802.15.4 封包格式 [9]. 範。Superframe 的形成主要是根據兩個 Beacon 中 間的間隔來規範,兩個 beacon 中間分成兩部分, 第 一 部 分 為 Action 區 塊 而 第 二 個 部 分 則 為 Inaction 區塊如下圖所示:. 5.

(6) 3.4.3 CSMA/CA 機制 在 LR-WPAN 中有兩種對 channel 存取的機制, 而決定使用哪一種存取機制是取決於其網路的架 構。在 beacon-disable 的網路型態下使用的是 unslotted CSMA/CA 因為其沒有 superframe 的架 構所以沒有讓 device 限定時間去送資料的功能。 就因如此其 CSMA/CA 的機制就比較簡單,首先隨機 取一個 backoff 的時間等過了這段時間後使用之 前有介紹過的 PLME-CCA 去檢查 channel 上是否有 人在傳送資料,如果沒有就可以把資料送出。如果 碰到有人在傳資料也就是檢查 channel 的狀態為. 圖 8、SCAN-ZB 實照. BUSY,則再一次隨機取一個 backoff 時間來等待。 另外在 beacon-enable 的網路架構下,因為其有 superframe 去規定整個時間的分配,所以必須依. 本節主要是詳談我們所設計的系統,在 4.1. 照 backoff slot 去作隨機的單位,而每次要做檢. 節先提出我們系統的架構,4.2 節則提出把 IEEE. 查動作的時候一定要是在每個 slot 的開始才能做. 802.15.4 實做在 Linux 核心中所遇到的問題,4.3. 此動作。在 beacon-enable 的網路架構中 CSMA/CA. 節則介紹封包的解析與組成,4.4 節則介紹我們所. 的動作只能在 CAP 的區段裡面使用,而傳送 ACK. 實做的高精確度 One-shut Timer,4.5 節則介紹重. 封包時則不需使用 CSMA/CA 機制。. 要的 CSMA/CA 機制,4.6 節則討論 Beacon 週期性 實做,4.7 節則稍微探討 ISR 與 BH 的關係。. 4.系統設計 在第一節中我們有提到,目前市面上的 IEEE. 4.1 系統介面. 802.15.4 protocol stack 大多數是要收費的,而 且 他 們 的 產 品 大 多 數 是 使 用 一 個 micro. 實作介面的部分我們依照 IEEE 802.15.4 所規. processor。. 定的 primitive 函式並且參考 Freescale 的文件. 為了節省開發成本,我們使用工業研究院電通. [5][6],我們定義出來的介面架構如下圖所示:. 所所開發出的 SCAN-ZB 作為硬體平台,將 IEEE 802.15.4 通訊堆疊實做到 Linux 系統核心中。我 們所使用的 Linux 核心版本為 2.4.21 將其 patch 成 ARM 的架構,而 SCAN-ZB 主要是使用 Hynix 公司 所生產的 HMS30C7202. SoC[8]當作核心,其使用. 32 bits ARM 720T 中央處理器,時脈可到達 70 MHz 並擁有 UART、GPIO 等 IO port,使用 Chipcon CC2420 晶片來接收及發送相容於 IEEE 802.15.4 之封包。. 圖 9、實作各層介面圖. 其外觀如圖 8 所示:. 由圖 9 可看到,與下層 device 接觸的部分有 RF-SAP , 這 部 分 包 含 driver 以 及 存 取 一 些 6.

(7) transceiver 上的組態暫存器的 API。其上所接的. z 時間單位:. 就是 IEEE 802.15.4 所定義的 PHY 層,主要工作為 拆解 PHY 層的標頭以及實現一些 Standard 上所定. 在 IEEE 802.15.4 中所使用的時間單位太小,. 義的服務,封包部分會經過圖 9 上所標示的 PD-SAP. 不管是傳送封包、回應封包或者是計時都是使用這. 互傳,而提供服務的部分則是由 PLME-SAP 來負責。. 個單位,而這個單位稱作 symbol,其詳細解釋到. 再往上的 MAC 層則須拆解 MAC 的標頭,按照. 後面章節會有說明,對於我們所使用的 Linux 來說. Standard 上定義原本還必須去掉 2 個 byte 的. 是一個無法使用本身機制來處理的單位。因為. MFR,但是我們所使用的硬體也就是 Chipcon 這家. Linux 中皆是以一個 jiffies 作為時間基本單位並. 公司所出的 CC2420 這塊晶片已經將 MFR 去除掉. 無法精確計算出 symbol 時間,所以我們準備實做. 了,所以在實作上就省了這個步驟。. 一個高精準度的 One-Shut timer 來處理這些微小. 然後 MAC 層必須辨別這個封包是之前介紹的. 計時單位,這方面詳細的處理我們在 4.4 節中會詳. 四種型態的哪一種,進而做不同的動作。如果是. 細的介紹。. Data 的 封 包 則 包 成 一 個 由 Freescale 定 義 的. z CSMA/CA 機制:. Message 結構[5],再經由 MSG_Send 此 Marco 送往 上層的 NWK_ MCPS_Saphandler 然後交給上層做處. 是 IEEE 802.15.4 中另一個重要的機制,為了. 理;如果是 Command 的封包則先判別需不需要往上. 使封包發出時的碰撞機率減少,所以使用此機制來. 轉送,如果需要則如同 Data 封包一般先拆解並包. 作為發出封包時該遵守的規則,但是這又牽扯到必. 裝成一個 Message 再經由 NWK_ MLME_Saphandler. 須使用微小時間單位來計時,而這方面我們會在. 送給上層做處理,如果不需轉送上層則由 MAC 層處. 4.5 節詳細的討論。. 理並做相對應的動作。. z Beacon 管理: Beacon 在 IEEE 802.15.4 中 所 規 定 的. 4.2 設計策略. Beacon-enable WPAN 中扮演著很重要的角色,其. 因為在相關文獻中找不到在作業系統核心中. 發出的時間為週期性且必須要準確,所以我們利用. 實做 IEEE 802.15.4 的先例,我們先針對可能遇到. 高精準度的 One-Shut timer 來處理這個問題,關. 的問題進行分析並擬定初步的對策,以利後面系統. 於此問題我們會在 4.6 節詳細討論。. 的實作。. z ISR 與 BH 之取捨:. z 封包解析與組成:. 在 Linux 中產生中斷後分兩部份去處理,第一個部. IEEE 802.15.4 Standard 中 所 定 義 到 的. 份為中斷處理函式(ISR),在這裡面處理的函式擁. primitive 函式必須要實做,而每個 primitive 的. 有即時性,但如果佔據太久則會導致中斷遺失。第. 參數不一,所以我們參考 Freescale 所發表的. 二部份則為後續處理函式(BH),這部份會延遲工. 802.15.4 MAC/PHY Software User's Guide, Rev.. 作,但不會阻擋中斷發生。BH 部分我們無法預測. 1.1 [6]來定義與 Network 的介面環境。定義完介. 他何時會被執行,但是在通訊協定標準中卻又有很. 面環境後,需要的分析封包以及組成封包的機制,. 多必須要即時的動作。在這部份,我們為了讓 ISR. 這部分為在 4.3 節中詳細的介紹。. 盡量短,所以只讓 ISR 將資料從 chip 中搬移到 buffer 中,不過這又牽扯到效能問題。關於此問 題我們會在 4.7 節詳細討論。. 7.

(8) 圖 10、Frame control field 架構 [9]. 4.3 封包解析與組成. 4.3.2 ACK Frame. IEEE 802.15.4 傳送資料皆是由封包形式來傳. 判斷完 FCF 之後如果是 ACK 封包則檢查 MAC. 遞,所以首先我們必須要能解析封包才能進行下一. 層中的一個 Status Queue,這個 Queue 是用來存. 步的判別。所以以下針對四種不同型態的封包去做. 放送出以後正在等待更新的封包狀態,如果檢查到. 介紹,並會提到實作中所用到的 structure。. Status Queue 中有與所接到之 ACK 相同的 Data sequence number 則更新此封包狀態,使其知道傳 送動作已經完成。其流程圖如圖 12 所示:. 4.3.1 Frame Control Field 下圖為一般性的 MAC 層封包:. 圖 11、一般性 MAC 封包架構 [9]. 圖 12、ACK 封包處理流程. 而圖 10 是 MAC 封包最前面兩個 byte 的 Frame. 4.3.3 Data Frame. control field(FCF)部分: 如圖 10 所示,能分辨此封包整個架構必須經. 判斷完 FCF 之後如果是 Data 封包,則會進入. 由讀取 FCF 這個欄位來判別,首先讀取一個 byte. 處理 Data 封包的函式中。而 IEEE 802.15.4 的 Data. 先判別此封包為何種型態的封包然後再判別,原本. 封包之格式如下圖所示:. 讀取 Ack request 欄位後應該要回 ACK 給對方,但 是這邊我們使用 Chipcon CC2420 的晶片其硬體有 自動回 ACK 功能,所以就不需再以軟體回 ACK。然 後 再 讀 取 後 面 一 個 byte 就 可 由 Intra-PAN 、 Destination. addressing. mode. 、. Source. addressing mode 來判斷之後的 Addressing Field 的架構。. 圖 13、IEEE 802.15.4 Data 封包格式 [9]. 8.

(9) 其中 FCF 中的資訊和 Sequence number 已經被. 4.3.4 Beacon Frame. 儲存起來,接下來就是將 Data payload 的部分告 知上層。由於在 IEEE 802.15.4 中規定收到一個. Beacon 封包在 IEEE 802.15.4 中是一個重要的元. Data 封 包 之 後 , 必 須 要 向 上 層 發 出 一 個. 素。這種型態的封包在 beacon-enabled 的. MCPS-Data.indication 的 primitive 來通知上層. LR-WPAN 中,主要目的是讓一個 PAN 中所有. 收到了一個 Data 封包並將資料送至上層。因此,. Device 能夠做同步的動作。如此就能達到讓 Device. 此 Primitive 裡頭規定了必須要包含以下的欄位:. 的 Receiver 做重複開關的動作,但仍舊能夠正確的. dstAddr: 此欄 位可 以為 16 - bits short. 接收到應該要接收的封包,這個動作是讓 Device. address,或者是 64 - bits extended address,. 在規定可以休息的時段中可以不需要打開. 取決於 FCF 中的 dst addr mode 欄位,這個欄位紀. Receiver 以達到省電的動作。另外在 IEEE 802.15.4. 錄著此 Data 封包是要傳送給哪一個設備的。. 規範中,Beacon 封包還可以由 PAN Coordinator. dstPanId:此欄位之長度為 16-bits。其紀錄. 發出,Beacon 封包裡面會包含著維持此 PAN 運作. 此 Data 封包是要傳送到哪一個 PAN 中,欄位的內. 的一些規範,例如 Device 應該要何時開啟. 容可以從 Data 封包 addressing fields 欄位取. Receiver,Receiver 需要開啟多久的時間,開啟多. 得。. 久後可以關掉來達到省電的功能,是否有資料存放. dstAddrMode:此欄位紀錄著此封包採用的是. 在 Coordinator 上等等。當一個 Device 想要加入一. 哪一種 addressing mode,可以從 FCF 中的 dst addr. 個 PAN 的時候,就必須要先遵循此 PAN 的. mode 欄位取得。. Coordinator 所規範的行為。而該如何在尚未加入. srcAddr 、 srcPanId 、 srcAddrMode 這三. PAN 時能夠知道這些事情,答案就是在每個. 個欄位和上面介紹的三個欄位雷同,在此不再贅. Coordinator 發出的 Beacon 中獲得。Beacon 封包之. 述,不同的地方只有在這三個欄位紀錄的是此封包. 內容如圖 14 所示:在我們接收到一個 Beacon 封. 是從哪一個設備來的,以及遠端設備的相關資訊。. 包之後,首先我們會先判斷目前 Device 是否處於. msduLength:此欄位紀錄著 MAC payload 的部. SCAN 的狀態中。由於 IEEE 802.15.4 規範中提到,. 分的長度,上層所看的到的封包長度就由此欄位來. 在非 SCAN 的狀態中,收到 Beacon 封包之後,必. 取得。. 須要作過濾的動作,也就是只接收來自 Coordinator. mpduLinkQuality:此欄位紀錄著收到此封包. 的 Beacon 封包,若是在 SCAN 的狀態中,一般來. 時,當時的 Link Quality 的值。. 說我們還是處於尚未選定加入哪一個 PAN 的情形. securityUse:此欄位紀錄著封包的內容是否. 之中,導致可能會過濾掉所有的 Beacon 封包( 因. 需要使用加解密的方式來加強安全性。. 為尚未選定 Coordinator )因此在此情況下,我們. msdu : 此 欄 位 中 所 紀 錄 的 就 是 真 正 的 MAC. 會先把所有接收進來的 Beacon frame 存到一個陣. payload 的內容,也就是要交付給上層處理的資. 列之中,過了 SCAN 的狀態之後,再把這些 Beacon. 料。. frame 傳給上層,讓上層去作決定該做怎樣的動. 將 Data 封 包 拆 解 成 以 上 的 參 數 來 填 入. 作。例如根據演算法選擇一個最適合此 Device 的. MCPS-Data.indication 之後就可以將其往上層傳. PAN 做 Associate 的動作。. 送了。. 9.

(10) 圖 14、IEEE 802.15.4 Beacon 封包格式 [9] 另外若是不在 SCAN 的狀態時,則我們就應該 開啟過濾的機制,對於接收進來的 Beacon,檢查 是否來自自己的 Coordinator。接下來則是判斷是 否有 PAN-ID conflict 的情形發生。如果有的話, 則應該利用 SYNC-LOSS-INDICATION 此 Primitive. 圖 15、IEEE 802.15.4 Pending Address Field 架構 [9]. 告知上層做處理 。 接著會去 MAC PIB 中搜尋一個 attribute,稱 為 MacAutoRequest。此 attribute 的意義是說, 當 Device 收到一個 Beacon frame 時,如果從. 由圖 15 可知,當 Device 接收到 Beacon frame. Beacon 上面得知有資料在 Coordinator 上面,正. 之後,必須要解析最多總共七個長短的 Address,. 常的情形下,必須請求 Coordinator 將資料送給自. 以得知自己是否有 Data 放在 Coordinator 上面。. 己。這個請求的動作會根據這個 Attribute 來決定. 而在我們實做的程式中,解析 beacon 封包的. MAC 層是否應該自動完成這個請求的步驟。如果是. 流程圖如圖 16 所示:. TRUE,則 MAC layer 就會自動發出一個稱為 Data. Start. Request command frame 送給 Coordinator,而如 果此 Beacon 中存有 Beacon payload 時,要使用. 分析FCF. MLME-BEACON.NOTIFY 告知上層有資料的到來。另 判斷Type. 外,如果當這個 Attribute 的值為 FALSE 的話,代. Is beacon. 表 此 動 作 不 需 要 MAC layer 費 神 , 藉 由 擷取superframe spec, pending address list, beacon payload,. MLME-BEACON-NOTIFY 將是否發送 Data Request Command frame 的決定權交給上層。 而 Device 該如何得知是否有自己的資料放在. 插入PANDesc. struct中. Coordinator 身上,而必須請求 Coordinator 將資. macAutoRequest is set to false FALSE Or Contains more payload. 料傳送給 Device 呢?這時就需要去解析 Beacon frame 中的 Pending Address fields。當 Device. true. 收 到 一 個 Beacon 之 後 , 會 去 檢 查 Beacon 中. Mlme-Beacon-Notify indication. Pending Address field 是否有自己的 Address 在. End. 上面,若是有的話則代表需要向 Coordinator 發出. 圖 16、Beacon 封包處理流程. 一 個 Data Request Command frame 。 Pending Address field 之示意圖如下圖:. 10.

(11) 中的計時單位是不夠的。因此我們就從實做的硬體. 4.3.5 Command Frame. 平台 SCAN-ZB 上找了一組 hardware timer 來做一. 接下來我們要描述的則是 Command Frame。此. 個非週期性的 timer 中斷機制,其 request 單位為. 種 Frame 包含一些命令的封包,例如命令某一個. symbol 這樣就可來滿足後面有關於時間方面的問. Device 離開、通知 Coordinator 想要連結上網路. 題。 SCAN-ZB 硬體上總共有三組 hardware,其中一. 等等。此封包的格式如下圖所示:. 組被 Linux 的系統 timer 用去,我們就使用剩下的 兩組使用其中一組來當作計時器。而我們的 timer interrupt 機制是使用一個 list 去紀錄進來的 request,而在接收到一個 request 時會先去判斷 此 list 中是否有其他的 request 正在等待被喚. 圖 17、IEEE 802.15.4 Command 封包架構 [9]. 醒。這個 list 是用一個 static 的 array 然後使用 指標做成 ring buffer 的形式。原因是如果使用. 而其中 Command frame identifier 則敘述著. linking list 則勢必要在 ISR 中去動態配置記憶. 此封包究竟是哪一種 Command Frame,在 IEEE. 體。而在 ISR 中呼叫過多 kernel 的函式會使得 ISR. 802.15.4 之中規範中有以下幾種 Command Frame:. 過長,則會造成原本應該有 timer 的 interrupt 產生卻因為處在 ISR 中將 interrupt disable 而沒 有發生。這情況對非常依賴此 timer 機制的 IEEE 802.15.4 來說是一個很嚴重的問題。 其處理流程圖如下圖所示:. 圖 18、IEEE 802.15.4 Command 封包定義 [9] 在此我們不在贅述解析這些封包的過程,因為 他們的處理流程和處理 Data Frame 的方式大同小 異。. 圖 19、Timer list structure. 4.4 高精確度 One-Shut Timer. 在我們實做這個高精準度 One-Shut timer 時. 在 IEEE 802.15.4 標準中所用的基本單位為. 並沒有考慮到如果它與系統的 timer 撞到的時候. symbols,從 Standard 中可得知處於 2.4G 頻帶時. 應該要如何處理。因此在我們剛完成 One-Shut. 其 symbol rate 為每秒 62.5ksymbol,由此換算得. timer 在測試的時候發生系統 timer 撞到我們的. 知一個 symbol 約為 16μs 遠比 linux 中基本單位. One-Shut timer 之後就沒有再發生中斷了。因為. jiffies 為 10ms 還要小上很多,所以光靠 linux. 我們的 timer 是單次觸發,如果這次沒有中斷產 11.

(12) 生,其也不會去設下一次的中斷發生。發現了這個. 此時 NB 就會增加。NB 最大值為 4 如果在這四次中. 問題之後,我們著手去將這個問題解決,一開始我. 偵測頻道都為忙碌的話就放棄傳送此資料,其是為. 們使用的方法是讓我們的 timer 中斷處理函式在. 了避免系統有過大的負擔。. 執行時,關掉其他的中斷。但這卻造成系統的. CW:全名為 Content Window Length,其單位. jiffies 會有延遲的情況發生,原因是原本系統的. 為 backoff period 在 IEEE 802.15.4 中的預設值. timer 剛好來在我們的中斷處理函式中,但卻無法. 為 20 個 symbols。意義為必須執行幾次偵測頻道. 產生中斷去做它的處理函式。最後我們的解決方法. 皆為閒置時才可將資料送出,其初始值為 2 會隨著. 為當系統的 timer 撞到我們的 timer 時,優先讓系. 偵測到頻道閒置而遞減。. 統的 timer 執行,在它執行完之後再將我們的. BE:全名為 Backoff Exponent,是用來計算. timer 啟動。這樣一來便解決了之前 jiffies 延遲. Backoff 時間的一個參數。其公式為:Backoff Time. 的問題。. = 2. BE. – 1。. 其演算法如下圖 20 所示:. 4.5 CSMA/CA 在前面有提過 IEEE 802.15.4 的 CSMA/CA 機制 有兩種,一種是在 beacon-enable 的 PAN 下所使用 的. slotted. CSMA/CA. 另 外 一 種 則 是 在. beacon-disable 的 PAN 下所使用的 unslotted CSMA/CA 。 而 unslotted CSMA/CA 的 演 算 法 比 slotted CSMA/CA 來的簡單一些,他只需要隨機取 一個 backoff time 單位為 symbol 並且等待這段時 間後去使用 PHY 層的 PLME-CCA.request 來確定頻 道上是否有人在傳輸資料。若沒有則直接將資料送 出,如果有人正在傳送資料則再一次去隨機取一個 等待的時間,其隨機的方法跟 slotted CSMA/CA 一樣,所以等一下詳細介紹 slotted CSMA/CA 的時 候再做說明。 在 slotted CSMA/CA 的演算法中,它將原本 Superframe 所規定的 slot 劃分成更小的單位稱做 一個 backoff period,而對應到 MAC PIB 中此值 為 aUnitBackoffPeriod 其單位為 symbol。因為原 本劃分的 slot 很大所以如果以其做 backoff 時間. 圖 20、IEEE 802.15.4 slotted CSMA/CA 演算法 [9]. 的單位則會浪費太多時間導致整個輸出量變小,碰 撞機率也會變大。在 slotted CSMA/CA 中必須要維 護三個變數以利演算法的進行,其說明如下: NB:全名為 Number of Backoff,也就是總共. 而在我們實做的時候,我們將其拆解成兩個部. 執行了多少次隨機取 backoff 的次數,每當執行一. 分,第一個部分為做 CSMA/CA 前置動作的函式名叫. 次此值就會加 1。如果遇到使用 CCA 去偵測頻道為. CSMACA( ),主要動作為設定一些變數的初值如上. 忙碌時,就必須要重新去隨機取一個 backoff,而. 面所提到的 NB、BE、CW 等參數並呼叫我們所寫的 12.

(13) sys_setimmtimer( )這個函式來設定 interrupt 發生時間,這個時間也就是隨機產生的等待時間。 而第二部分為實際去執行 CCA 的這個部分我們寫 了一個名叫 DoCCA( )的函式,我們將其掛載成 timer interrupt 的 callback function,當 timer interrupt 發生且發覺其 callback function 為此 函式時則會去執行 CCA 若連續二次都發覺到頻道 為閒置時就將其送出。若發覺其中一次 CCA 偵測到 頻道忙碌則依照上述之演算法去更改各個變數的 值,然後在呼叫一次 sys_setimmtimer( )來重新 執行這個流程,如果發現 NB 已經超過規定的數 值,則須回報給上層一個訊息告知。. 圖 21、DoCCA 程式流程. 而呼叫 CSMA/CA 的時機有二,其一是從上層需 要發送出資料或命令封包時,這時做完 CSMA/CA 之後會有相對應的流程需要執行但是以我們所時. 4.6 週期性 Beacon. 做的 CSMACA( )函式並無法回到呼叫點去執行其所 要做的動作,所以當上層下資料或命令下來需要用. Beacon 在 beacon-enable 的 PAN 中是一個很. 到 CSMA/CA 的機制時(通常為 direct 傳輸) ,我們. 重要的封包,而其發出的準確性也是重要的一個因. 另外用一個 MacCSMACA( )的函式將他包起來以便. 素。所以我們也是使用前面所提到的函式. 重新回到呼叫 CSMA/CA 的那個點去做接下來的動. sys_setimmtimer 來設定發出 beacon 的時間,當. 作。 其二是接到封包之後必須使用 CSMA/CA 機制. interrupt 發生時則會依照我們所掛載的函式來. 將封包送出,例如說 Coordinator 接到一個 Data. 發出 beacon。另外 IEEE 802.15.4 中有規定資料. Request command 時必須從 Transaction Queue 中. 存在 Transaction Queue 中超過一段時間便需要被. 找到對應封包並將此封包用 CSMA/CA 的機制送出. 丟棄,而我們將這個機制掛載在此 ISR 結束之後的. (通常為 indirect 傳輸),此流程皆在 ISR 與 BH. BH 中去實做。因為定義的這段時間與發出 beacon. 的流程中,並不能使用等待的機制去等待對方回. 的時間有相關聯性。所以我們就如此實做。. ACK,所以我們另外寫了一個函式叫 macResend( ). 而發出 beacon 封包除了組成封包外還需檢查. 用來檢查是否接到 ACK 與重送機制。. MAC 層中的 Queue 是否存在著別人的資料,如果有. 另外如果有一個以上的資料需要做 CSMA/CA. 則必須加入到 beacon 封包中 pending address 的. 動作時,後面進來的資料必須等待前一項資料的. 位置。. CSMA/CA 動作做完之後才能執行。所以我們必須先 將此資料封包放在一個 list 中,並在 DoCCA( )這. 4.7 ISR 與 BH 之間的取捨. 個 ISR 後掛上一個 BH 專門來處理這個問題。當 DoCCA( )做完進入 BH 之後會先去檢查此 list 是否. 一開始我們以 IEEE 802.15.4 所定義的 PHY. 還有資料需要傳送,如果有就再呼叫 CSMACA 這個. 層與 MAC 層的完整功能性為前提來實做我們的系. 函式讓他繼續將後面的封包送出。. 統,又考慮到必須要有即時性所以將其都放到 ISR. 而 DoCCA 的程式流程如下圖:. 中去實做。但這樣遇到一個問題,當 ISR 佔據太久 導致下個封包來的時候無法產生中斷,就會使這個 封包流失掉。這個問題在我們做 Assocaite 過程的 13.

(14) 時候尤其明顯。有此經驗後,我們將 MAC 層與 PHY 層移出 ISR,使得 ISR 中只將資料從 chip 搬移到 buffer 中,這樣就不會使 ISR 佔據太久。 但是這又浮現出另外一個問題,原本在 ISR 中收到資料必須回應 ACK 可以立即的動作,但是將 MAC 層放到 BH 中則會延遲一段不短的時間,這段 時間已經遠遠超過定義的標準值。這個實驗結果將 會在第五節實驗 5.1.1 圖 23 中將會被展示出來。 延續上列問題在 IEEE 802.15.4 中規定如果有使用 ACK 機制時,當一個封包送出去以後必須要接到一 個 ACK,如果沒有接到則必須要重送這個封包,如 此重送到標準中定義的最大重送次數。而我們實做 的方法為每一個送出去的封包都會在 MAC 層中的 一個 Status Queue 中去紀錄它的封包狀態,包括. 圖 22、封包處理對應在 Linux 上之架構圖. 何時送出、執行 CSMA/CA 的狀態、有無接到 ACK 的 狀態 等。當 device 發 出一 個封包 後便 將其 status 存在這個 queue 中,等到接到其 ACK 之後. 當 RF 收到一個封包以後,產生一個 interrupt. 便去更改 status。讓上層知道它已經接到 ACK 完. 此時控制權轉移到 ISR,第一道處理則是由 Driver. 成了傳送的動作。而接到 ACK 去更新 status 這個. 將資料從 Chip 中拿出,並判斷是哪一種封包,如. 動作原本應該是在 MAC 層 BH 裡面要做掉,因為解. 果是 ACK 封包則直接去更新系統中一個紀錄封包. 析封包的動作是在 MAC 層該做的。但是根據實驗. 的 status queue,如果不是則將資料封包放到. 5.1.1 圖 24 中可以來說明,如果暫時忽略完整性,. buffer 中此時控制權交由 BH,當系統判斷一個安. 將這樣的動作不放在 MAC 層 BH 裡面而併到 ISR 來. 全時間後會呼叫 BH 來執行,此時我們掛在 BH 中的. 做則會更好。根據上列討論,我們最後完成當接收. PHY 與 MAC 處理函式就會起來做封包的解析,如果. 到封包 IEEE 802.15.4 的處理架構對應到 Linux. 需要立即送出一個封包則再透過封包處理函式送. 上如下圖 22 所示:. 出一個封包,否則送到與 NWK 層的介面時 BH 即結 束。. 5.系統評量與討論 5.1 規格驗證及基本運作 在第一小節中,我們將驗證我們所設計的架構 均能夠符合 Standard 所要求,並且以實驗數據來 顯示。. 14.

(15) 5.1.1 ACK 的封包處理. 8000. 6975. 7000. 在 4.7 節中,我們對於 ISR 和 BH 的取捨做了 時間(us). 解釋。在這邊我們展示出兩個實驗來證明我們修改 的系統架構是的確可以增進系統的準確性以及效 能。. 6000 5000. ISR中處理. 3000 2000 1000. 第一個實驗主要是來比較當 SCAN-ZB 接到一. BH中處理. 4000. 102. 0. 個封包產生中斷後在 ISR 中將封包搬到 Buffer. 何時處理. 中,交由 Bottom half 進到 MAC 層函式處理一直送. 圖 24、處理 ACK 所需時間比較圖. 到與 Network 層的介面所需花費的時間。 5000. 4323. 當 device 接到一個封包後,將封包丟給 MAC. 時間(us). 4000. 2000 1000. 層 的 函 式 解 析 其 為 ACK 然 後 再 去 更 新 Status. 軟體回ACK 硬體回ACK 不回ACK. 3000. 272. Queue 中所屬的狀態,而這個動作是在 Bottom half 中去動作。由上圖可以清楚的看到,如果這個動作. 270. 交由身處在 BH 中的 MAC 層來做則需要 6975μs 才. 0 回應ACK形式. 可以更新完成遠遠超過 IEEE 802.15.4 中所定義的. 圖 23、處理 ACK 所需時間比較圖. 54 symbols 而此時測試的環境是當 Status Queue 中有三個不同封包的 status,同樣的情況如果這. 在 IEEE 802.15.4 的 Standard 中規定需要回. 個 ACK 解析移往 ISR 中去判斷則可由上圖 23 得知. ACK 的為 MAC 層,所以一開始我們的設計解析這個. 只需要 102μs 符合 IEEE 802.15.4 中的規範。基. 資料封包需不需要回 ACK 的動作是做在 MAC 層,而. 於以上理由我們將判斷 ACK 封包與更新 status 的. MAC 層的處理函式是位在 Bottom half 中,所以從. 動作移在 ISR 的前頭去做以便符合 Standard 中的. 圖 23 中可看到原本 ACK 由 MAC 層回覆的時候需要. 規範。. 4323 個 μs。比起不做任何動作直接把資料送到與 Network 層介面的 270μs 還要多上許多,所以我. 5.1.2 Beacon 的準確性. 們就找了 CC2420 的 Datasheet 中發現這塊 chip 擁有硬體回 ACK 的功能,之前沒有使用這個功能的. 我們在這個實驗中,測試我們自製的即時性. 原因是由硬體所發出的 ACK 都只有一種型態無法. timer 是 否 都 有 照 著 規 定 的 時 間 精 準 的 發 出. 滿足 IEEE 802.15.4 的所有需求。但是如果由 MAC. Beacon。我們設定一個變數為 Beacon Order 的值. 層來回 ACK,則從接到資料封包至發出 ACK 的時間. 為 6。這個值會決定兩個 Beacon 中間差距的時間. 長達 5186μs 遠超過 MAC PIB 中所定義的 ACK 回覆. 為多少,根據以下的公式:. BI=aBaseSuperframeDuration*2BO. 時間。所以為了符合 Standard 中的規定我們使用 硬體回 ACK,以此方法則從接到資料封包以至發出. symbols,我們可以算出兩個 Beacon 之間的時間差. ACK 時間約為 900μs,很接近 MAC PIB 中所規定的. 距為 983.04ms。在我們的實驗中,我們用 Chipcon. 54 個 symbol。. 的 CC2400 Evaluation Board 來當 sniffer[2],. 第二個實驗主要是比較更新 Status Queue 這. 用來監測封包傳送狀態。我們可以利用此軟體來記. 個原本該在 MAC 層 BH 中處理的動作若是拆開移到. 錄兩個封包發出時所間隔的時間,下圖即為結果。. ISR 來做的差別。 15.

(16) 我們的實驗環境為使用 Chipcon 的 CC2400 Evaluation Board 來當 sniffer[2],用來監測網 路封包傳送狀態。使用 Freescale 的 Dig536-2 平 台 , 載 入 Freescale 所 開 發 的 程 式 , 當 做 Coordinator,負責接收命令封包、判斷是否接受 Device 連結的判斷、回 ACK 以及發送 Beacon。使 用 SCAN-ZB 當作一個 End device,它會作包括搜 尋、連結 Coordinator、解析 Beacon、發出命令封 包的動作。 圖 27 為 Sniffer 顯示出其中的連結過程,流. 圖 25、Beacon 時間圖. 程如下: (A)End Device 發出一個 Associate Request 命令封包給 Freescale 的 Coordinator。. 圖 26、Beacon 時間圖(2). (B)Freescale 的 Coordinator 收到此封包之 後回應了一個 ACK。. 在圖 25 中最左邊那一欄可以看到每一個封包和前. (C)再來 SCAN-ZB 所代表的 End Device 發出一. 一個封包所距離的時間均為 983ms。而在圖 26 中. 個 Data Request 命令包封要求 Coordinator 回應。. (也就是圖 25 中的左下角)可以看到總共有 5415 個. (D)而 Coordinator 首先回應了一個 ACK,然. 封包被記錄,而所有的封包間隔時間均為 983mss. 後回傳一個 Associate Response Command 給 End. 和 Standard 所規定的公式中算出來的結果均符. Device。. 合。. 5.3 效能量測 5.1.3 基本運作. 接下來我們所要做的是將我們的效能量測出 來,並與 Freescale 所開發的套件比較,主要是針. 這個實驗的目的主要是希望能夠測試兩個. 對 Data Frame 傳送的 throughput 來比較。. Nodes 之間彼此可以做正確的資料傳輸。我們在兩 台 Nodes 中間彼此傳送 Data,當一個 Nodes 接到. 我們的實驗環境為使用 Chipcon 的 CC2400. 對方的 Data 並回傳一個 ACK 之後,然後己方送出. Evaluation Board 來當 sniffer[2],用來監測網. 一個 Data 給對方。等待對方回傳一個 ACK 之後,. 路封包傳送狀態。使用 SCAN-ZB 當 Coordinator. 對方會再送一個新的 Data 過來,而我就把這一份. 負責接收封包、回 ACK 以及發送 beacon 等工作。. Data 拷貝過來,然後在將此資料傳送過去,接著. 而 Coordinator 的環境設定為 Beacon Order 為 6. 重複再做下一輪的動作。根據 Sniffer 上的觀察,. 並且 Superframe Order 也為 6,在這個情況下. 此測試的結果是正常的。. beacon 的間隔時間為 983,040μs。等於在兩個 beacon 之間 End device 都可以使用 CSMA/CA 機制 將資料封包送出。而我們所使用的實驗組為. 5.2 Interoperability. SCAN-ZB 而使用的對照組為 Freescale,皆當作 End. 為了測試我們開發的程式符合 Standard 所規. device 來發封包,總共發出 1000 個資料封包給. 定,我們利用 Freescale 所開發的平台和我們的平. Coordinator。然後取每一次 beacon 與 beacon 中. 台互動來達到測試的目的。. 間所發的封包總長度(包含資料封包以及 ACK 封 16.

(17) A B C D. 圖 27、Sniffer 紀錄 SCAN-ZB (End Device) 和 Freescale (Coordinator)連結的動作 包),除以 beacon 間隔時間來換算出資料流量,再. 台來開發這套 IEEE 802.15.4 protocol stack,. 算出平均流量其單位為 kbps。其量測結果如下圖. 並且不用 micro controler 改用 host CPU 來執行,. 所示:. 這樣就可以減少需要一個 micro controler 的花費 也大大的降低了開發成本。 140. 目前我們實做的 IEEE 802.15.4 還有欠缺一些. 119.45. 速率(kbps). 120. 功能,例如說 GTS 的部分,如果完成了這部分的功. 97.14. 100. 能。還可以繼續在 IEEE 802.15.4 的標準上研究上. 80. Freescale SCAN-ZB. 60. real time communicate 的議題;另外一個功能則 是有關傳送加密的部分,這部分則又有通訊安全方. 40. 面的研究可探討。未來將會朝這兩個方面去努力。. 20. 另外在資料流量方面,比起 Freescale 的流量我們. 0. 的確低了一點,所以這也是後續要改善的部份。. 組別. 圖 28、資料流量比較. 致謝:本文部份係工研院電通所執行經濟部委 託 之 特 殊 具 時 效 工 業 技 術 發 展 計 畫 "Embedded Linux 共通規格訂定及設計計劃"之成果. 我們量測出來的流量值雖然比較低,但是 Freescale 是使用 micro processor 去執行 IEEE 802.15.4 protocol stack 且其沒有 OS 的負擔,. 7.參考文獻. 所以我們效能比其低落,這方面我們會再去做效能. source code,使研究此領域的人需要花費一些金. [1] A. Rubini & J. Corbet "Linux Device Drivers, 2e", Jane 2001 [2] Chipcon at http://www.chipcon.com/ [3] D. P. Bovet & M. Cesati“Understanding the Linux Kernel"January 2001 [4] Figure 8 at http://www.f8w.com/. 錢來得到這個技術,卻還不能了解其中的運作原. [5] Freescal 802.15.4 MAC/PHY Software. 的改善。. 6.結論與未來工作 由於近幾年越來越多人投入研究無線感測網 路的領域,但是目前市面上廠商大部分有開放 NWK 層以上的 source code 卻很少有開放 MAC 層以下的. 理。所以我們使用 open source 的 Linux 為開發平 17.

(18) Reference Manual 802154MPSRM/D Rev. 0.5, April 2004 [6] Freescal 802.15.4 MAC/PHY Software User's Guide 802154MPSUG/D Rev. 0.0, November 2004 [7] Freescale at http://www.freescale.com/webapp/ sps/site/overview.jsp?nodeId=02X PgQhHPRjdyB, 2004 [8] Hynix at http://www.hynix.com/eng/index.j sp [9] IEEE Standard for Information technology Telecommunications and information exchange between systems Local and metropolitan area networks Specific requirements Part 15.4: Wireless Medium Access Control (MAC) and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks (LR-WPANs) IEEE Std 802.15.4™-2003,October 2003 [10] Microchip at http://www.microchip.com/zigbee, December 2004 [11] Motorola Confidential ProprietaryMotorola WMSG 2003 [12] Daintree Networks http://www.daintree.net/. 18.

(19)

數據

圖 27 為 Sniffer 顯示出其中的連結過程,流 程如下:

參考文獻

相關文件

(B)Data Bus 是在 CPU 和 Memory 之間傳送資料,所以是雙向性 (C)Address Bus 可用來標明 Memory 或 I/O Port 位址的地方 (D)Data Bus 的長度和 Address

要如何安排課後的休閒活動呢?我們 可以依照自己的個性和興趣,做適當 的選擇,並且考量天候、時間,做適

In addition to the new measures to be implemented in the 2020/21 school year set out in paragraph 5 above, the EDB will continue to provide public sector ordinary primary

The teacher-to-class (T/C) ratio for public sector primary and secondary schools (including special schools) has been increased by 0.1 across-the-board starting from the

To promote Chinese history and culture, EDB will strengthen teachers’ professional development and provide a one-off grant of $100,000 and $150,000 respectively to each

(“Learning Framework”) in primary and secondary schools, which is developed from the perspective of second language learners, to help NCS students overcome the

™ 其功能是列出系統的 ARP Table,以及設定及 刪除 ARP

™ 經由 PPP 取得網路IP、Gateway與DNS 等 設定後,並更動 Routing Table,將Default Gateway 設為由 PPP取得的 Gateway