由于WSNOS的特殊性,它的調(diào)度機制需要簡單而實用。下面以TinyOS為例,介紹WSNOS的調(diào)度機制。
1.1 調(diào)度
TinyOS的調(diào)度模型為任務(wù)加事件的兩級調(diào)度,調(diào)度的方式是任務(wù)不搶占事件要搶占,調(diào)度的算法是簡單的FIFO,任務(wù)隊列是功耗敏感的。調(diào)度模型有以下的特點:
a) 基本的任務(wù)單線程運行到結(jié)束,只分配單個任務(wù)棧,這對內(nèi)存受限的系統(tǒng)很重要。
b) FIFO的任務(wù)調(diào)度策略是電源敏感的。當(dāng)任務(wù)隊列為空,處理器休眠,等待事件發(fā)生來觸發(fā)調(diào)度。
c) 兩級的調(diào)度結(jié)構(gòu)可以實現(xiàn)優(yōu)先執(zhí)行少量同事件相關(guān)的處理,同時打斷長時間運行的任務(wù)。
d) 基于事件的調(diào)度策略,只需少量空間就可獲得并發(fā)性,并允許獨立的組件共享單個執(zhí)行上下文。同事件相關(guān)的任務(wù)集合可以很快被處理,不允許阻塞,具有高度并發(fā)性。
TinyOS只是搭建好了最基本的調(diào)度框架,只實現(xiàn)了軟實時,而無法滿足硬實時,這對嵌入式系統(tǒng)的可靠性會產(chǎn)生。同時,由于是單任務(wù)的內(nèi)核,吞吐量和處理器利用率不高,因此有可能需要設(shè)計多任務(wù)系統(tǒng)。為保證系統(tǒng)的實時性,多采用基于優(yōu)先級的可搶占式的任務(wù)調(diào)度策略。依賴于應(yīng)用需求,出現(xiàn)了許多基于優(yōu)先級多任務(wù)的調(diào)度算法的研究。把TinyOS擴展成多任務(wù)的調(diào)度,給TinyOS加入了多任務(wù)的調(diào)度功能,提高了系統(tǒng)的響應(yīng)速度。[提出在TinyOS中實現(xiàn)基于時限(deadline)的優(yōu)先級調(diào)度,有利于提高WSN系統(tǒng)的實時性。提出了一種任務(wù)優(yōu)先級調(diào)度算法來相對提高過載節(jié)點的吞吐量以解決本地節(jié)點包過載的問題。
總之,調(diào)度決定了處理器的功耗,如TinyDB就是使用好的調(diào)度策略來降低功耗的。更為重要的是,各種調(diào)度算法也能更好地提高處理器的響應(yīng)速度,從而提高系統(tǒng)的可靠性。各種基于TinyOS調(diào)度算法的擴展研究,各自獨立地使得高可靠性和低功耗分別得到滿足。
1.2 中斷
在TinyOS中,代碼運行方式為響應(yīng)中斷的異步處理或同步地調(diào)度任務(wù)。TinyOS的每一個應(yīng)用代碼里,約有41%-64%的中斷代碼,可見中斷的優(yōu)化處理非常重要。對于低功耗的處理而言,需要長時間休眠,可以通過減少中斷的開銷來降低喚醒處理器的功耗。目前通過禁用和打開中斷來實現(xiàn)原子操作,這個操作非常的短暫(幾個時鐘周期--cycles)。然而,讓中斷關(guān)掉很長時間會延遲中斷的處理,造成系統(tǒng)反應(yīng)遲鈍。TinyOS的原子操作能工作得很好是因為它阻止了阻塞的使用也限制了原子操作代碼段的長度,而這一些條件的滿足是通過nesC編譯器來協(xié)助處理的。由于nesC編譯器對TinyOS做靜態(tài)的資源分析以及其調(diào)度模式?jīng)Q定了中斷不允許嵌套。在多任務(wù)模式下,中斷嵌套可以提高實時響應(yīng)速度。
1. 3 時鐘同步
TinyOS提供獲取和設(shè)置當(dāng)前系統(tǒng)時間的機制,同時,在WSN網(wǎng)絡(luò)中提供分布式的時間同步。TinyOS是以通訊為中心的操作系統(tǒng),因此更加注重各個節(jié)點的時間同步。如:傳感器融合應(yīng)用程序收集一組從不同地方讀來的信息(如:較短距離位置需要建立暫時一致的數(shù)據(jù));TDMA風(fēng)格的介質(zhì)訪問協(xié)議需要精確的時間同步;電源敏感的通訊調(diào)度需要發(fā)送者和接收者在他們的無線信號開始時達成一致等。
加州大學(xué)洛杉磯分校(UCLA) 、Vanderbilt和加州大學(xué)伯克利分校(UC Berkeley) 分別用不同方法實現(xiàn)了時間同步。這3個實現(xiàn)都精確到子毫秒級,最初打算開發(fā)一個通用的、底層的時間同步組件,結(jié)果失敗了。應(yīng)用程序需要一套多樣的時間同步,因此只能把時鐘作為一種服務(wù)來靈活地提供給用戶取舍使用。
某些情況允許逐漸的時間改變,但另一些則需要立即轉(zhuǎn)換成正確的時間。當(dāng)時間同步改變下層時鐘時,會導(dǎo)致應(yīng)用失敗。某些系統(tǒng),例如NTP(Network Time Protocol)通過緩慢調(diào)整時鐘率同鄰節(jié)點同步來規(guī)避這個問題。NTP方案很容易在像TinyOS那樣對時間敏感的環(huán)境中出錯,因為時間即使早觸發(fā)幾毫秒都會引起無線信號或傳感器數(shù)據(jù)丟失。
目前TinyOS采用的方案是提供獲取和設(shè)置當(dāng)前系統(tǒng)時間的機制(TinyOS的通訊組件GenericComm使用hook函數(shù)為底層的通訊包打上時間戳,以實現(xiàn)精確的時間同步),同時靠應(yīng)用來選擇何時激活同步。例如:在tinydb應(yīng)用中,當(dāng)一個節(jié)點監(jiān)聽到來自于路由樹中父節(jié)點的時間戳消息后會調(diào)整自己的時鐘以使下一個通訊周期的開始時間跟父節(jié)點一樣。它改變通訊間隔的睡眠周期持續(xù)時間而不是改變傳感器的工作時間長度,因為減少工作周期會引起嚴重的服務(wù)問題,如數(shù)據(jù)獲取失敗。
J. Elson和D. Estrin給出了一種簡單實用的同步策略。其基本思想是,節(jié)點以自己的時鐘記錄事件,隨后用第三方廣播的基準時間加以校正,精度依賴于對這段間隔時間的測量。這種同步機制應(yīng)用在確定來自不同節(jié)點的監(jiān)測事件的先后關(guān)系時有足夠的精度。設(shè)計高精度的時鐘同步機制是傳感網(wǎng)絡(luò)設(shè)計和應(yīng)用中的一個技術(shù)難點。
也有一些應(yīng)用更重視健壯性而不是最精確的時間同步。例如:TinyDB只要求時間同步到毫秒級,但需要快速設(shè)置時間。在TinyDB中,簡單的,專用的抽象是種很自然的提供這種時間同步服務(wù)的方式,但是這種同步機制并不滿足所有需要的通用的時間同步。另外,還可以采取Lamport分布式同步算法,并不全部靠時鐘來同步。
1.4 任務(wù)通訊和同步
任務(wù)同步是在多任務(wù)的環(huán)境下存在的。因為多個任務(wù)彼此無關(guān),并不知道有其它任務(wù)的存在,如果共享同一種資源就會存在資源競爭的問題。它主要解決原子操作和任務(wù)間相互合作的同步機制。
TinyOS中用nesC編譯器檢測共享變量有無沖突,并把檢測到的沖突語句放入原子操作或任務(wù)中來避免沖突(因為TinyOS的任務(wù)是串行執(zhí)行的,任務(wù)之間不能互相搶占)。TinyOS單任務(wù)的模型避免了其他任務(wù)同步的問題。如果需要,可以參照傳統(tǒng)操作系統(tǒng)(例如μc/os)的方法,利用信號量來給多任務(wù)系統(tǒng)加上任務(wù)同步機制,使得提供的原子操作不是關(guān)掉所有的中斷,從而使得系統(tǒng)的響應(yīng)不會延遲。
在TinyOS中,由于是單任務(wù)的系統(tǒng),不同的任務(wù)來自不同的網(wǎng)絡(luò)節(jié)點,因此采用管道的任務(wù)通信方式,也就是網(wǎng)絡(luò)系統(tǒng)的通信方式。管道是無結(jié)構(gòu)的固定大小數(shù)據(jù)流,但可以建立消息郵箱和消息隊列來滿足結(jié)構(gòu)數(shù)據(jù)的通信。
2 WSNOS內(nèi)存管理
TinyOS的原始通訊使用緩沖區(qū)交換策略來進行內(nèi)存管理。當(dāng)網(wǎng)絡(luò)包被收到,無線組件傳送一個緩沖區(qū)給應(yīng)用;應(yīng)用返回一個獨立的緩沖區(qū)給組件以備下一次接收。通訊棧中,管理緩沖區(qū)是很困難的。傳統(tǒng)的OS把復(fù)雜的緩沖區(qū)管理推給了內(nèi)核處理,以拷貝復(fù)雜的存儲管理以及塊接口為代價,提供一個簡單的、無限制的用戶模式。AM[ Active Messages ]通訊模型不提供拷貝而且只提供非常簡單的存儲管理。消息緩沖區(qū)數(shù)據(jù)結(jié)構(gòu)是固定大小的。當(dāng)TinyOS中的一個組件接收到一個消息,它必須釋放一個緩沖區(qū)給無線棧。無線棧使用這個緩沖區(qū)來裝下一個到達的消息。一般情況下,一個組件在緩沖區(qū)用完后會將其返回,但是如果這個組件希望保存這個緩沖區(qū)待以后用,會返回一個靜態(tài)地本地分配緩沖區(qū),而不是依靠網(wǎng)絡(luò)棧提供緩沖區(qū)的單跳通信接口。盡管只有1個組件,任何時候只有一個進入給定緩沖區(qū)的指針,組件來回交換使用它們。
靜態(tài)分配的內(nèi)存有可預(yù)測性和可靠性高的優(yōu)點,但缺乏靈活性。不是預(yù)估大了而造成浪費就是小了造成系統(tǒng)崩潰,為了充分利用內(nèi)存,可以采用響應(yīng)快的簡單的slab動態(tài)內(nèi)存管理。
WSNOS的總體框架。物理層硬件為框架的最底層,傳感器、收發(fā)器以及時鐘等硬件能觸發(fā)事件的發(fā)生,交由上層處理。相對下層的組件也能觸發(fā)事件交由上層處理。而上層會發(fā)出命令給下層處理。為了協(xié)調(diào)各個組件任務(wù)的有序處理,需要操作系統(tǒng)采取一定的調(diào)度機制。
WSNOS組件的具體內(nèi)容,包括一組命令處理函數(shù),一組事件處理函數(shù),一組任務(wù)集合和一個描述狀態(tài)信息和固定數(shù)據(jù)結(jié)構(gòu)的框架。除了WSNOS提供的處理器初始化、系統(tǒng)調(diào)度和C運行時庫(C Run-Time)3個組件是必需的以外,每個應(yīng)用程序可以非常靈活地使用任何WSNOS組件。
這種面向組件的系統(tǒng)框架的優(yōu)點是:首先,"事件-命令-任務(wù)"的組件模型可以屏蔽低層細節(jié),有利于程序員更方便地編寫應(yīng)用程序;其次,"命令-事件"的雙向信息控制機制,使得系統(tǒng)的實現(xiàn)更加靈活;再次,調(diào)度機制獨立成單獨的一塊,有利于為了滿足不同調(diào)度需求進行的修改和升級。
近幾年來,無線傳感器網(wǎng)絡(luò)(WSN)掀起了一場后PC時代的革命。
綜合各種應(yīng)用,WSN有自己的許多特點。首先,WSN是一種嵌入式系統(tǒng),提供分布處理,動態(tài)和適應(yīng)性;其次,它由以通訊為中心的大數(shù)量的小型和微型數(shù)據(jù)采集設(shè)備構(gòu)成,其主要特征為靈活、自組織、嚴格資源限制,并且需要實時處理同長時間的單任務(wù)串行處理并存,同時大部分時間保持低功耗狀態(tài)。
2 WSN操作系統(tǒng)(WSNOS)
俗話說:"萬丈高樓平地起,一力承擔(dān)靠地基",WSN的操作系統(tǒng)(WSNOS)是WSN系統(tǒng)的基本軟件環(huán)境,是許許多多的WSN應(yīng)用軟件開發(fā)的基礎(chǔ)。WSNOS不是特定的系統(tǒng)/用戶界面,也不是特定的一系列系統(tǒng)服務(wù),而是定義了一套通用的界面框架,允許應(yīng)用程序選擇服務(wù)和實現(xiàn);它提供框架的模塊化,以便適應(yīng)硬件的多樣性,同時允許應(yīng)用程序重用通用的軟件服務(wù)和抽象。同其他操作系統(tǒng)一樣,WSNOS是為了方便開發(fā)應(yīng)用,提供物理設(shè)備的抽象和高協(xié)調(diào)性的通用函數(shù)實現(xiàn)。它的獨特性在于,資源極端受限(處理器速度、存儲器大小、內(nèi)存大小、通訊帶寬、資源數(shù)量以及電源受限),設(shè)備特殊性和缺乏一致的抽象層次。因此,WSNOS的設(shè)計策略必須是一個資源庫,從中抽取一部分組成應(yīng)用。它致力于提供有限資源的并發(fā),而不是提供接口或形式。伯克利開發(fā)的TinyOS正是這樣一套WSNOS系統(tǒng)。
3 WSN需求和趨勢
1)工廠真正實現(xiàn)電子信息化需要WSN實地采集數(shù)據(jù)和監(jiān)控。文獻中談到了WSN應(yīng)用于工廠自動化生產(chǎn)線的問題。傳統(tǒng)的有線傳感只能用在布線容易的短距離空間,而對很多長距離的監(jiān)控則無能為力。例如,輸油管道的監(jiān)控,需要在輸油管道上散布很多傳感器,并且互相之間要互通信息。而以往的傳感器需要布線,同時傳感器之間不能互相通信,阻礙了這種應(yīng)用。但是,這種無線監(jiān)控最大的困難是它不如有線傳感器可靠。
2)WSN為城市監(jiān)控,野外監(jiān)控提供了技術(shù)手段。用于監(jiān)控生態(tài)環(huán)境、農(nóng)作物生長環(huán)境、城市交通監(jiān)控、大樓監(jiān)控等。大量的WSN節(jié)點的冗余可提高可靠性,但是它們需要長時間處于不維護狀態(tài),因此電池的壽命就成了這種應(yīng)用的瓶頸。
3)WSN也可用于特殊物品監(jiān)測,例如:胎壓監(jiān)測、滅火器監(jiān)測、危險物品監(jiān)測等。這些對物品的監(jiān)測也必須要求很高的可靠性,而且要求低功耗以使其可以維持工作到所需的時間。
4)在軍事上,WSN也為現(xiàn)代化的先進武器系統(tǒng)提供了新的技術(shù)基礎(chǔ)。例如:地雷上裝上WSN節(jié)點,可以與士兵身上的WSN節(jié)點通訊,識別敵我,而有選擇性地爆炸。這種節(jié)點涉及到人的生命安全,其可靠性的要求極高,同時也必須在足夠時間內(nèi)維持工作。
總之,這種應(yīng)用前景關(guān)注去掉"兩線"數(shù)據(jù)線和電源線的無線技術(shù),前者隨著RF射頻硬件技術(shù)的發(fā)展而出現(xiàn),后者隨著低功耗的處理器,低功耗的收發(fā)器以及低功耗的傳感器等低功耗硬件的發(fā)展以及電池技術(shù)的發(fā)展而得以實現(xiàn)。然而,去掉數(shù)據(jù)線使得通訊變得不那么可靠;去掉電源線使得供電時間的維持成為一個挑戰(zhàn)。因此,可靠性和低功耗已經(jīng)成為了這種技術(shù)推廣的瓶頸。
從WSN操作系統(tǒng)軟件的角度著手解決可靠性和低功耗的問題分析。首先,與一般的嵌入式系統(tǒng)(如PDA,手機等)不同,WSN的資源更加受限,迫切需要系統(tǒng)軟件的精心設(shè)計,才能滿足可靠性的需求;其次,電池技術(shù)的發(fā)展并不足以滿足很長時間不維護的需求,而硬件也需要系統(tǒng)軟件的管理才能充分發(fā)揮其低功耗特性。這就需要系統(tǒng)軟件采用最大限度降低運算功耗和通訊功耗的策略。
無線傳感器是有接收器和。接收器上可以接多個傳感器的。輸送都是兩三百米、頻率是2.4GHz。如果需要傳輸更遠的距離的話就需要跳頻了。這樣整個形式就是無線傳感器的網(wǎng)絡(luò)了。
無線傳感器網(wǎng)絡(luò)可能采用哪些無線通信方式
基于XL.SN智能傳感網(wǎng)絡(luò)的無線傳感器數(shù)據(jù)傳輸系統(tǒng),可以實現(xiàn)對溫度,壓力,氣體,溫濕度,液位,流量,光照,降雨量,振動,轉(zhuǎn)速等數(shù)據(jù)參數(shù)的實時,無線傳輸,無線監(jiān)控與預(yù)警。在實際應(yīng)用中,無線傳感器數(shù)據(jù)傳輸...
傳感器網(wǎng)絡(luò)中的三個參數(shù)之間的關(guān)系問題
這個....好難說哦,既然天線增益是有的,那么就存在了信號不規(guī)則的問題,那么有效通信距離要怎么規(guī)定,丟包率低于什么的時候才叫做有效通信半徑....接收功率和你所說的通信距離肯定是有關(guān)系的。存在著一個功...
通訊協(xié)議是WSNOS研究的另一大重點。通訊協(xié)議的好壞不僅決定通訊功耗的大小,同時也影響到通訊的可靠性(包的丟失率,包過載等)。TinyOS為滿足這樣要求的通訊協(xié)議提供了基于輕量級AM通訊模型的最小的通訊內(nèi)核。
1 AM通訊模型
介紹了這種輕量級的AM通訊模型,它構(gòu)成TinyOS極小內(nèi)核的通訊系統(tǒng),其他應(yīng)用都建立在這個通訊系統(tǒng)之上。AM消息包含用戶級處理函數(shù)名稱和作為參數(shù)傳送的有效載荷,為了避免網(wǎng)絡(luò)阻塞和保證充分的性能,消息處理函數(shù)必須被很快地執(zhí)行和異步處理。所有的這些措施都是為了實現(xiàn)低功耗的通訊。盡管AM源于大規(guī)模并行處理機和計算群集(Computing Cluster),但是一些基本概念也適用于資源受限的網(wǎng)絡(luò)小設(shè)備。特別是輕量級的AM體系結(jié)構(gòu)可作為杠桿來平衡擴展的通訊框架的需求和有效的靈活性。而且基于事件處理函數(shù)觸發(fā)模型,使應(yīng)用級的開發(fā)者得以避免對數(shù)據(jù)的忙等,使系統(tǒng)能交迭地同其他活動通訊(如,同傳感器交互或執(zhí)行其它的應(yīng)用)。
2 WSN通訊協(xié)議
介紹了AM為基礎(chǔ)的單跳協(xié)議和多跳協(xié)議,如S-MAC[ Sensor-MAC: Medium Access Control for Wireless Sensor Networks用于傳感器網(wǎng)絡(luò)的介質(zhì)訪問控制]是其中一種單跳協(xié)議的低功耗實現(xiàn);介紹了多跳通訊協(xié)議,主要解決自組織的網(wǎng)絡(luò)路由。簡單介紹如下:
S-MAC基于RTS/CTS[ Request to send/Clear to Send請求發(fā)送/清除發(fā)送協(xié)議]調(diào)度,并返回?zé)o線消息來減少監(jiān)聽的開銷。S-MAC保持分段操作(split-phase)和無拷貝特性。所謂分段操作即:在TinyOS中由于任務(wù)之間不能互相占先執(zhí)行,所以TinyOS沒有提供任何阻塞操作。為了讓一個耗時較長的操作盡快完成,一般來說都是將對這個操作的需求和這個操作的完成分開來實現(xiàn),以便獲得較高的執(zhí)行效率。
自組織(Ad hoc)的網(wǎng)絡(luò)路由是一種不需要網(wǎng)橋(AP[ Access Point])的無線對等傳輸模式。任兩個傳感器若在彼此的通訊覆蓋范圍內(nèi),則這兩個傳感器可直接互相通訊,共享資源。它具有對稱性,即B若在A的通訊范圍內(nèi),則A也在B的通訊范圍內(nèi);但往往由于某些外部條件的限制,可能會造成這種對稱的不協(xié)調(diào)。若在兩個相距較遠的傳感器之間通訊,可以尋找一個中間的傳感器作為轉(zhuǎn)發(fā)的節(jié)點,采用接力的方式來完成通訊過程。利用這種方式可以增加無線網(wǎng)絡(luò)的通訊范圍,但隨著傳輸次數(shù)增加,數(shù)據(jù)的正確率會降低,傳輸過程的可靠性也降低。這種多跳路由一般可采用樹狀結(jié)構(gòu)的集中,網(wǎng)絡(luò)內(nèi)部路由和分發(fā)(dissemination)3種形式。
比較普遍的是基于樹結(jié)構(gòu)的路由。它包含父節(jié)點標識多跳數(shù)或從樹根開始的深度(即:父節(jié)點的多跳數(shù)加1)。一個節(jié)點傳送一個包給父節(jié)點,該節(jié)點再傳給其父節(jié)點,直到包到達樹根。設(shè)計的關(guān)鍵問題是怎樣建立路由樹和怎樣維護以及怎樣轉(zhuǎn)發(fā)以便提高傳輸?shù)目煽啃圆⒔档凸?。主要用到兩種方法:鄰節(jié)點發(fā)現(xiàn)和連接質(zhì)量估計服務(wù);支持包的封裝和監(jiān)視轉(zhuǎn)發(fā)。WSN系統(tǒng)中,基站連接到PC,發(fā)出廣播,接收到廣播的節(jié)點更新路由信息,并重新廣播給通過它自己可以連接到基站上的那些節(jié)點。這些節(jié)點記住第一次監(jiān)聽到的路由更新,就是相應(yīng)的到基站的最短路徑。為了防止路由循環(huán),時間被分成多個時間段,每個時間段路由更新廣播一次。
3 低功耗監(jiān)聽協(xié)議
針對能量消耗,有以下四個特點:(1)主機模塊MCU[ Micro-Controller Unit 微處理器]和收發(fā)模塊占據(jù)電源消耗的絕大部分比重;(2)Active(激活)狀態(tài)耗能最多,相對而言Idle(休眠)狀態(tài)耗能最少;(3)收發(fā)模塊比MCU耗能要多很多。發(fā)送一個字節(jié)(byte)消耗的能量約等于11000個MCU計算周期所消耗的能量,或是收發(fā)一位(bit)消耗的能量相當(dāng)于MCU處理100條指令;從總體的消耗來看,收發(fā)數(shù)據(jù)所消耗的能量也是最多的。如果我們能夠讓收發(fā)模塊和MCU處于多數(shù)時間休眠,少數(shù)時間激活狀態(tài),那么就能明顯地降低系統(tǒng)的總體功耗。
介紹了兩種典型的低功耗監(jiān)聽方式:周期性多跳監(jiān)聽(Periodic Multi-Hop Listening)和低功耗監(jiān)聽(Low Power Listening)。宏觀上進行周期性多跳監(jiān)聽,設(shè)置周期性采樣的時間間隔來減少主機和通訊模塊的激活工作時間,例如:每100秒激活10秒,則減少了90%的能耗,但是限制了實際的帶寬;微觀上進行低功耗監(jiān)聽,增加監(jiān)聽頻率,把每100秒監(jiān)聽10秒變成每300微秒監(jiān)聽30微秒,這樣可以在監(jiān)聽不到任何信息的時候讓無線收發(fā)器處于休眠狀態(tài),并且能夠在傳送1/3位信息的時間內(nèi)喚醒,但是需要額外花費傳送5位信息的時間來檢測信息的有無。
使用以上兩種監(jiān)聽方式帶來的降低功耗效果是顯著的。兩者都不采用時MCU和收發(fā)模塊的功耗都很大;只采用微觀的低功耗監(jiān)聽,MCU的功耗明顯降低,但是,收發(fā)模塊的功耗降低不是很顯著;只采用宏觀的周期性多跳監(jiān)聽,MCU和收發(fā)模塊的功耗都顯著降低;兩者都采用,MCU的功耗幾乎為0,收發(fā)模塊功耗顯著降低。可以用電池壽命數(shù)據(jù)來說明使用了以上兩種監(jiān)聽方式帶來的低功耗的效果。兩者都不采用時電池只能使用3天;只采用微觀的低功耗監(jiān)聽,電池可以使用6.54天;只采用宏觀的周期性多跳監(jiān)聽,電池壽命明顯增加至65天;兩者都采用,電池壽命可以達到數(shù)年??梢姡捎眠@兩種監(jiān)聽方式把電池的壽命從3天延長到幾年,對于應(yīng)用來說是具有突破性意義的。Intel的下一代Mote原型便采用這種策略來使得整個系統(tǒng)維持操作任務(wù)周期不超過1%。
格式:pdf
大?。?span id="x4umeln" class="single-tag-height">160KB
頁數(shù): 1頁
評分: 4.3
無線傳感器網(wǎng)絡(luò)是一種集成了計算機技術(shù)、通信技術(shù)、傳感器技術(shù)的新型智能監(jiān)控網(wǎng)絡(luò)。本文分析了Zig Bee無線傳感器網(wǎng)絡(luò)的結(jié)構(gòu),并研究了采用Zig Bee技術(shù)如何建立無線傳感器網(wǎng)絡(luò),及實現(xiàn)終端節(jié)點和協(xié)調(diào)節(jié)點的通信。
格式:pdf
大?。?span id="hzmovoq" class="single-tag-height">160KB
頁數(shù): 4頁
評分: 4.6
如果說互聯(lián)網(wǎng)構(gòu)成了邏輯上的信息世界,改變了人與人之間的溝通交流方式,那么,無線傳感器網(wǎng)絡(luò)則是將邏輯上的信息世界與客觀上的物理世界融合在一起,改變?nèi)祟惻c自然界的交互方式。如今,無線傳感器網(wǎng)絡(luò)如同其他高新技術(shù)一樣,在經(jīng)歷了十幾年的發(fā)展之后,正逐步走出象牙塔,邁向更廣闊的應(yīng)用領(lǐng)域。
第1章 緒論 1
1.1 無線傳感器網(wǎng)絡(luò)概述 1
1.1.1 無線傳感器網(wǎng)絡(luò)的研究進展 2
1.1.2 無線傳感器網(wǎng)絡(luò)的體系特征 3
1.2 無線傳感器網(wǎng)絡(luò)操作系統(tǒng) 8
1.2.1 無線傳感器網(wǎng)絡(luò)對操作系統(tǒng)的需求 8
1.2.2 現(xiàn)有的無線傳感器網(wǎng)絡(luò)操作系統(tǒng) 10
1.3 TinyOS操作系統(tǒng)概述 13
1.3.1 設(shè)計理念 14
1.3.2 技術(shù)特點 15
1.3.3 體系結(jié)構(gòu) 16
1.3.4 版本說明 17
1.4 與其他WSN操作系統(tǒng)的比較 20
1.5 本書章節(jié)安排 24
第2章 開發(fā)環(huán)境 26
2.1 TinyOS 2.1在Windows中的安裝 26
2.1.1 搭建Java環(huán)境 27
2.1.2 安裝Cygwin平臺 30
2.1.3 安裝平臺交叉編譯器 34
2.1.4 安裝TinyOS源碼與工具包 36
2.1.5 安裝Graphviz圖形工具 38
2.2 其他安裝方法 39
2.2.1 在Ubuntu 9.10中的安裝 39
2.2.2 使用RPM包的手動安裝 41
2.2.3 TinyOS 1.x升級到TinyOS 2.x 42
2.2.4 使用CVS更新TinyOS 2.x文件 46
2.3 TinyOS安裝后的測試 47
2.3.1 TinyOS文件概覽 47
2.3.2 檢查運行環(huán)境 48
2.3.3 仿真測試 49
2.4 程序的編譯和下載 50
2.4.1 代碼編輯工具 50
2.4.2 編譯程序 52
2.4.3 USB串口驅(qū)動 53
2.4.4 下載程序 54
2.5 本章小結(jié) 57
第3章 nesC編程語言 58
3.1 nesC語言簡介 58
3.2 nesC語言規(guī)范 59
3.2.1 接口 61
3.2.2 組件 62
3.2.3 模塊及其組成 65
3.2.4 配件及其組成 68
3.3 基于nesC語言的應(yīng)用程序 73
3.3.1 nesC應(yīng)用程序簡介 73
3.3.2 Blink實例 77
3.3.3 BlinkSingle實例 82
3.3.4 移植TinyOS 1.x代碼到2.x 86
3.4 nesC程序運行模型 88
3.4.1 任務(wù) 88
3.4.2 內(nèi)部函數(shù) 91
3.4.3 分階段作業(yè) 92
3.4.4 同步與異步 94
3.4.5 原子性代碼 95
3.4.6 無線模塊的開啟過程 96
3.5 編程約定 98
3.5.1 通用約定 98
3.5.2 軟件包 98
3.5.3 語法約定 99
3.5.4 TinyOS約定 101
3.6 可視化組件關(guān)系圖 103
3.7 本章小結(jié) 104
第4章 基本操作 106
4.1 點對點的無線通信 106
4.1.1 主動消息概述 106
4.1.2 通信接口和組件 107
4.1.3 消息緩存抽象 109
4.1.4 通過無線電發(fā)送消息 110
4.1.5 通過無線電接收消息 117
4.2 節(jié)點與PC的串口通信 119
4.2.1 信息源和端口測試 119
4.2.2 基站和監(jiān)聽工具 121
4.2.3 MIG消息接口生成工具 123
4.2.4 SerialForwarder和其他信息源 126
4.2.5 發(fā)送信息包到串口 129
4.2.6 基于printf庫的打印調(diào)試 130
4.2.7 常見的串口通信故障 133
4.3 傳感 134
4.3.1 傳感簡介 134
4.3.2 Sense實例 135
4.3.3 Oscilloscope實例 138
4.4 存儲 140
4.4.1 存儲簡介 140
4.4.2 配置數(shù)據(jù)的存儲 141
4.4.3 日志數(shù)據(jù)的存儲 146
4.4.4 大數(shù)據(jù)塊的存儲 148
4.5 本章小結(jié) 149
第5章 系統(tǒng)內(nèi)核 151
5.1 硬件抽象架構(gòu) 151
5.1.1 架構(gòu)簡介 151
5.1.2 不同層次抽象的結(jié)合 154
5.1.3 橫向分解 155
5.1.4 微處理器抽象 156
5.1.5 HIL抽象級別 156
5.2 任務(wù)和調(diào)度 157
5.2.1 任務(wù)簡介 157
5.2.2 TinyOS 1.x的任務(wù)和調(diào)度器 157
5.2.3 TinyOS 2.x的任務(wù) 159
5.2.4 TinyOS 2.x的調(diào)度器 160
5.2.5 調(diào)度器的替換 162
5.2.6 調(diào)度器的具體實現(xiàn) 165
5.3 系統(tǒng)啟動順序 168
5.3.1 啟動順序簡介 168
5.3.2 TinyOS 1.x的啟動順序 168
5.3.3 TinyOS 2.x的啟動接口 169
5.3.4 TinyOS 2.x的啟動順序 170
5.3.5 系統(tǒng)啟動和軟件初始化 174
5.4 資源仲裁 175
5.4.1 資源簡介 175
5.4.2 資源類型 176
5.4.3 資源仲裁 178
5.4.4 共享資源的應(yīng)用實例 183
5.5 微控制器的電源管理 187
5.5.1 微控制器電源管理簡介 187
5.5.2 TinyOS 1.x的電源管理 188
5.5.3 TinyOS 2.x的電源管理 189
5.5.4 外圍設(shè)備和子系統(tǒng) 191
5.6 外圍設(shè)備的電源管理 191
5.6.1 外圍設(shè)備電源管理簡介 191
5.6.2 電源管理模型 192
5.6.3 顯式電源管理 193
5.6.4 隱式電源管理 196
5.7 串口通信 199
5.7.1 串口通信協(xié)議簡介 199
5.7.2 串口協(xié)議棧的實現(xiàn) 200
5.7.3 串口協(xié)議棧的抽象 207
5.8 本章小結(jié) 207
第6章 平臺與仿真 210
6.1 平臺 210
6.1.1 平臺簡介 210
6.1.2 底層I/O口 211
6.1.3 新平臺的建立 215
6.1.4 CC2430平臺的移植 223
6.2 編譯系統(tǒng) 226
6.2.1 編譯系統(tǒng)簡介 226
6.2.2 自定義編譯系統(tǒng) 227
6.2.3 makefile入門 228
6.2.4 編寫Makefile文件 230
6.2.5 編譯工具 232
6.3 TOSSIM仿真 233
6.3.1 TOSSIM簡介 233
6.3.2 仿真編譯 234
6.3.3 基于Python的仿真 237
6.3.4 調(diào)試語句 239
6.3.5 網(wǎng)絡(luò)配置 242
6.3.6 變量的觀察 250
6.3.7 注入消息包 253
6.3.8 C++接口 256
6.3.9 gdb調(diào)試 258
6.4 本章小結(jié) 261
第7章 網(wǎng)絡(luò)協(xié)議 262
7.1 分發(fā)協(xié)議 262
7.1.1 分發(fā)協(xié)議簡介 262
7.1.2 相關(guān)接口和組件 263
7.1.3 EasyDissemination實例 265
7.1.4 Drip庫和DIP庫 269
7.2 匯聚協(xié)議 276
7.2.1 匯聚協(xié)議簡介 276
7.2.2 相關(guān)接口和組件 277
7.2.3 CTP協(xié)議 279
7.2.4 CTP實現(xiàn) 281
7.2.5 EasyCollection實例 287
7.3 本章小結(jié) 291
第8章 高級應(yīng)用技術(shù) 293
8.1 低功耗應(yīng)用程序 293
8.1.1 能耗管理簡介 293
8.1.2 外圍設(shè)備的電源管理 294
8.1.3 無線模塊的電源管理 297
8.1.4 微處理器的電源管理 300
8.1.5 低功耗傳感的應(yīng)用實例 300
8.2 低功耗監(jiān)聽 300
8.2.1 低功耗監(jiān)聽簡介 300
8.2.2 相關(guān)接口 302
8.2.3 message_t元數(shù)據(jù) 304
8.2.4 HAL層的改進建議 305
8.3 TOSThreads線程 305
8.3.1 TOSThreads線程簡介 305
8.3.2 nesC語言的API接口 306
8.3.3 C語言的API接口 309
8.3.4 支持新的系統(tǒng)服務(wù) 310
8.4 CC2420聯(lián)網(wǎng)安全功能 312
8.4.1 CC2420安全模式簡介 313
8.4.2 發(fā)送端的配置 313
8.4.3 接收端的配置 314
8.4.4 RadioCountToLeds實例 315
8.5 本章小結(jié) 319
第9章 基于TinyOS的應(yīng)用開發(fā)實例 320
9.1 基于TSL2550傳感器的光照檢測 320
9.1.1 TSL2550簡介 320
9.1.2 驅(qū)動實現(xiàn) 323
9.1.3 傳感測試 330
9.2 基于GSM短信的遠程數(shù)據(jù)傳輸 334
9.2.1 系統(tǒng)簡介 334
9.2.2 功能實現(xiàn) 338
9.2.3 短信測試 348
9.3 基于簡單蟻群算法的路由協(xié)議 350
9.3.1 算法簡介 350
9.3.2 協(xié)議實現(xiàn) 353
9.3.3 仿真測試 366
9.4 本章小結(jié) 370
附錄A nesC語言基本語法 371
附錄B TinyOS編程技巧 374
附錄C 英漢對照術(shù)語表 375
參考文獻與網(wǎng)址 378
本書語言簡練、淺顯易懂、圖文并茂、脈絡(luò)清晰。以實際操作為主導(dǎo),圍繞TinyOS操作系統(tǒng)的實際應(yīng)用進行取材謀篇,著重于技術(shù)精華的剖析和操作技巧的指點。
本書適用于高等院校信息類專業(yè)的本科生、研究生和教師,也可供國內(nèi)相關(guān)研究機構(gòu)和公司的研發(fā)人員參考使用。
本書介紹了無線傳感器網(wǎng)絡(luò)研究領(lǐng)域中的相關(guān)技術(shù)和應(yīng)用,共11章,內(nèi)容涵蓋無線傳感器網(wǎng)絡(luò)的物理層及信道接入技術(shù),路由、覆蓋與拓撲控制技術(shù),定位、跟蹤與時間同步技術(shù),網(wǎng)絡(luò)安全和數(shù)據(jù)管理技術(shù),短距離低功耗無線通信協(xié)議標準,無線傳感器網(wǎng)絡(luò)操作系統(tǒng)等方面。本書還重點介紹了無線傳感器網(wǎng)絡(luò)中間件技術(shù)、物聯(lián)網(wǎng)環(huán)境下的無線傳感器網(wǎng)絡(luò)接入技術(shù)、傳感器節(jié)點的硬件設(shè)計,最后介紹了多個典型的無線傳感器網(wǎng)絡(luò)的應(yīng)用實例。本書在編寫上既重視基礎(chǔ)知識,又跟蹤前沿技術(shù);既具有學(xué)術(shù)深度,又具有教材的系統(tǒng)性和可讀性。
本書可以作為普通高等院校物聯(lián)網(wǎng)、傳感器網(wǎng)絡(luò)通信工程、電子信息、計算機等專業(yè)高年級本科生和研究生的教材,也可作為無線傳感器網(wǎng)絡(luò)領(lǐng)域的研究人員及廣大對無線傳感器網(wǎng)絡(luò)感興趣的工程技術(shù)人員的參考書。