• 沒有找到結果。

第五章 感測網路發展工具相關知識

5.4 TinyOS 與 nesC 語言

5.4.1 介紹

ㄧ般的作業系統都是量大且複雜的程式,也並沒有內建能量管理機制;在感 測網路的作業系統中,有越來越多的限制,除了必須具備能源管理機制外,對於 資料處理的即時性,或是隨時回應硬體的能力等,都是必備的條件,以下簡單的 列出感測網路的作業系統所具備的幾項特性:

z 緊密性:感測網路作業系統是在有限記憶體空間的小型嵌入式系統內執

行,所以作業系統必須儘可能的小。

z 簡單化:雖然感測網路的作業系統必須很小,但仍然必須具備簡單的多

工作(Multi-Tasking)處理及記憶體管理。

z 可靠性:由於感測器在感測網路中並沒有辦法手動將感測器重置,所以 作業系統必需要求所有具有效性的設備(如看門狗計時器)都有一定的 可靠度及自我保持能力(Self-Maintenance)。

z 遠端操控:在無線感測網路的作業系統中,還必須能夠被遠端的裝置重 新程式化或是對遠端裝置下達重新程式化的命令。

z 省電:對電力受到限制的感測網路而言,省電是最重要的工作,而作業 系統就是要能夠儘可能的使系統的運作時間達到最少。

在本論文的感測器中,內部的作業系統是一套由美國柏克萊大學所開發,稱 作 TinyOS 的作業系統,其專門用在具無線通訊能力、具自組網路能力及要求低 消耗功率的小型嵌入式裝置中,而其所使用的語言也是由柏克萊大學所自行研 發,一種稱作 nesC 的語言,其結合了標準 C 語言及 JAVA 兩種語言的優點。

78

5.4.2 TinyOS 簡介

TinyOS[8]是一套是由加州大學的伯利克分校開發出來的作業系統,具開放 性原始碼,並且支援多種的無線網路協定標準,如圖 5-4 所示,由圖中可知,低 傳輸率和短距離傳送之通訊協定標準的嵌入式系統硬體裝置,均適合在 TinyOS 的環境下運作。

圖 5-4 TinyOS 支援各種低傳輸率及短距離之通訊協定

TinyOS 是由各種不同的物件程式所組成,當然使用者也可以依不同的應用 需求,自行設計各種不同元件程式的功能;在 TinyOS 的應用中,每個應用都是 採用模組化的設計,將各種不同功能的物件組合成使用者所要求的功能,所以它 的程序核心往往都很小(一般來說核心程式大概在 400Bytes 左右),能夠突破感 測器儲存資源少的限制,這能夠讓 TinyOS 很有效的運行在無線感測器網路上並 去執行相應的管理工作等。

TinyOS 的應用模組中,每個物件間的關係是透過”配線(Wired)”的概念,建 立物件與物件間的關係,且只有透過配線建立關係的兩個或多個物件才可以完成 下命令或是回傳信號等功能;而每個物件除了建立關係外,還必須有個溝通的窗 口,在 TinyOS 的物件中,是以『介面(Interface)』的概念,藉由介面與連線的概 念,讓物件與物件具備溝通的管道及窗口。

79

TinyOS 的特點:

z Component-based Architecture

TinyOS 提供一系列的物件,一個應用程式可以通過”配線(Wired)”的概 念將各種物件連接起來,以完成它所需要的功能。

z Event-driven Architecture

TinyOS 則是採用事件驅動的執行方式,即在一般的情況下,裝置是在 閒置或是睡眠的狀態下,當有外部中斷或事件的發生,才會驅動裝置內應 用程式,並依據所發生中斷或事件的型態,決定該執行哪部份的程式 z Tasks And Events Concurrency Model

Tasks 一般用在對於時間要求不是很高的應用中,且 tasks 之間是平等 的,即執行時是按照先後順序,而不能搶先執行,一般為了減少 tasks 的運 行時間,要求每一個 task 都很短小,能夠使系統的負擔較輕; events 一般 用在對於時間的要求很嚴格的應用中,而且它可以執行優先權優於 tasks 和 其他 events 執行,它可以被一個操作程序的完成或是來自外部環境的事件 觸發,在 TinyOS 中一般由硬體中斷處理來驅動事件。

z Split-phase Operations

由於 tasks 之間不能互相搶先執行,所以 TinyOS 沒有提供任何阻塞 操作,為了讓一個耗時較長的操作盡快完成,一般來說都是將對這個操作 的需求和這個操作的完成分開來實現,以便獲得較高的執行效率。

5.4.3 nesC 語言簡介

nesC 是一套結合 C 語言及 JAVA 兩種程式語言之概念的新程式語言,其主 要的設計概念是採用 JAVA 的純物件導向的特性,再加上 C 語言『指標』的概 念,補足 JAVA 無法對記憶體存取的缺點,讓程式設計者在設計程式時更具備靈 活性,TinyOS 應用中的程式碼即是用 nesC 語言撰寫。

80

第六章 無縫隙覆蓋率系統實作

相關文件