freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于無線傳感器的振動檢測畢業(yè)論文-文庫吧

2025-06-08 16:18 本頁面


【正文】 口連接外部傳感器。應(yīng)用Crossbow的MoteView可實現(xiàn)數(shù)據(jù)記錄和顯示功能。 數(shù)據(jù)采集板 MDA320也是無線傳感器網(wǎng)絡(luò)使用最多的芯片之一,每個傳感器都將通過電纜與MDA320連接,通過其板載的模數(shù)轉(zhuǎn)換器將傳感器采集的模擬信號轉(zhuǎn)換為數(shù)字信號。同時MDA320通過其板上的插口與XM2110連接,轉(zhuǎn)換出來的數(shù)字信號經(jīng)過無線電發(fā)送至網(wǎng)關(guān)節(jié)點。 CXL10GP3加速計,采用MEMs(微機(jī)電系統(tǒng))工藝制造而成。內(nèi)置包括放大和濾波在內(nèi)的信號調(diào)理電路。直接輸出0~5V標(biāo)準(zhǔn)信號。出廠前經(jīng)過標(biāo)準(zhǔn)測試,提供可信的振動信號輸出。 加速計安裝時加速計通過電線與數(shù)據(jù)采集板相連,數(shù)據(jù)采集板通過插口和XM2110無線電板相連。電池也安裝在無線電板的背面,從而構(gòu)成一個最基本的數(shù)據(jù)采集單元。該單元通過無線電與網(wǎng)關(guān)節(jié)點上的無線電雙向傳輸信息,從而接受命令收集數(shù)據(jù)并將數(shù)據(jù)送至計算機(jī)上的XServe軟件。 軟件結(jié)構(gòu) 軟件結(jié)構(gòu)總攬MoteWorks是Crossbow公司的軟件開發(fā)平臺,提供了nesC程序的一整套開發(fā)環(huán)境及附屬軟件包。本文的主要工作都在這個平臺上進(jìn)行。MoteWorks軟件包主要內(nèi)容為:Cygwin:Windows環(huán)境下模擬POSIX環(huán)境NCC:nesC語言編輯器PN:Progrmmer Note,代碼編輯器Uisp:程序下載器XServe:無線傳感器網(wǎng)絡(luò)服務(wù)器中間件Moteview:無線傳感器網(wǎng)絡(luò)客戶端管理和監(jiān)控軟件PostreSQL:數(shù)據(jù)庫與硬件層次相對應(yīng)的是相應(yīng)的軟件層次結(jié)構(gòu),TinyOS下的nesC語言應(yīng)用程序運(yùn)行在硬件體系的葉子節(jié)點上。專為嵌入式網(wǎng)絡(luò)系統(tǒng)設(shè)計的TinyOS和nesc語言擁有代碼量小、耗能少、并發(fā)性高、健壯性好的特點,能夠很好的適應(yīng)無線傳感器網(wǎng)絡(luò)節(jié)點的硬件環(huán)境。(對TinyOS和nesc的進(jìn)一步介紹將在本節(jié)的后面部分展開)同時在計算機(jī)端運(yùn)行著Crossbow公司開發(fā)的服務(wù)軟件XServe,其負(fù)責(zé)監(jiān)聽網(wǎng)關(guān)的串口捕獲節(jié)點上傳的數(shù)據(jù)并對其進(jìn)行解析。通過鍵入相應(yīng)的命令可以使數(shù)據(jù)顯示,存儲或者轉(zhuǎn)發(fā)到指定端口。本文中XServe的數(shù)據(jù)將被轉(zhuǎn)發(fā)到實驗室一位師兄編寫的網(wǎng)站上,并在其網(wǎng)頁上即時的顯示出來。當(dāng)然這個網(wǎng)站就是我們軟件結(jié)構(gòu)的客戶端部分。:接下來我們將按照由傳感器節(jié)點到網(wǎng)關(guān),由節(jié)點層到服務(wù)器層最終到客戶端的順序來說明軟件層次中每一部分的結(jié)構(gòu)和功能。首先從無線傳感器網(wǎng)絡(luò)開始。 TinyOS受限于有限硬件資源,無線傳感器網(wǎng)絡(luò)節(jié)點操作系統(tǒng)設(shè)計應(yīng)滿足如下的要求:圖 系統(tǒng)整體結(jié)圖1. 小代碼量由于節(jié)點的內(nèi)存有限, 因此運(yùn)行在其上的操作系統(tǒng)核心代碼量必須較小, 使其可以在有限的空間中具備高效管理硬件的能力。2. 模塊化無線傳感器網(wǎng)絡(luò)設(shè)計的趨勢是針對特定的應(yīng)用而不是普遍的應(yīng)用, 不同的應(yīng)用所需要的硬件平臺是不相同的。隨著無線傳感器網(wǎng)絡(luò)的廣泛應(yīng)用, 節(jié)點構(gòu)成的變化是巨大的。在特定的硬件平臺上, 根據(jù)不同的應(yīng)用快速便利地結(jié)合軟件模塊實現(xiàn)應(yīng)用是非常重要的。3. 低功耗WSN 的大多數(shù)節(jié)點采用電池供電。由于節(jié)點數(shù)量眾多以及節(jié)點被散布的環(huán)境使頻繁更換節(jié)點的電池是不可行的, 甚至是不可能的, 因此低功耗的操作將延長整個網(wǎng)絡(luò)的生命周期, 是操作系統(tǒng)設(shè)計必須滿足的條件。4. 并發(fā)操作性在傳感器網(wǎng)絡(luò)的節(jié)點上存在著大量的并發(fā)操作, 如數(shù)據(jù)采樣、數(shù)據(jù)處理、數(shù)據(jù)轉(zhuǎn)發(fā)可能同時進(jìn)行。操作系統(tǒng)需要具備支持嚴(yán)格并發(fā)操作的能力。5. 健壯性WSN 節(jié)點數(shù)量眾多以及運(yùn)行環(huán)境特殊, 要求運(yùn)行在單個節(jié)點上的操作系統(tǒng)不但健壯, 而且應(yīng)該便利地適應(yīng)于可靠的分布式應(yīng)用的發(fā)展。TinyOS(TinyMicro Threading Operating System)是一個開源的嵌入式操作系統(tǒng), 它由加州大學(xué)伯克利分校開發(fā),主要應(yīng)用于無線傳感器網(wǎng)絡(luò)方面。目前在世界范圍內(nèi),有超過500個研究小組或者公司正在Berkeley / Crossbow的節(jié)點上使用TinyOS[5]。 Ⅰ. TinyOS 的特點和體系結(jié)構(gòu)伯克利大學(xué)開發(fā)的TinyOS 采用了組件的結(jié)構(gòu), 它是一個基于事件的系統(tǒng)。其設(shè)計的主要目標(biāo)是代碼量小、耗能少、并發(fā)性高、健壯性好, 可以適應(yīng)不同的應(yīng)用。TinyOS 系統(tǒng)、庫及應(yīng)用程序都是用nesC 語言寫的語言寫的,這時一種新的用于編寫結(jié)構(gòu)化的基于組件的應(yīng)用程序的語言。nesC 語言主要用于諸如傳感器網(wǎng)絡(luò)等嵌入式系統(tǒng)。nesC具有類似于C 語言的語法,但支持TinyOS 的并發(fā)模型,同時具有結(jié)構(gòu)化機(jī)制、命名機(jī)制,能夠與其他軟組件連接在一起從而形成一個健壯的網(wǎng)絡(luò)嵌入式系統(tǒng)。其主要目標(biāo)是幫助應(yīng)用程序設(shè)計者建立可易于組合成完整、并發(fā)式系統(tǒng)的組件,并能夠在編譯時執(zhí)行廣泛的檢查。TinyOS 定義了許多在nesC 中所表達(dá)的重要概念。首先,nesC 應(yīng)用程序要建立在定義良好、具有雙向接口的組件之上。其次,nesC 定義了并發(fā)模型,該模型是基于任務(wù)(tast)及硬件事件句柄(hardware event handler)的,在編譯時會檢測數(shù)據(jù)競爭(data race)。Ⅱ. TinyOS的并發(fā)模型(Concurrency Model)TinyOS 一次僅執(zhí)行一個程序。組成程序的組件來自于兩個方面,一部分是系統(tǒng)提供的組件,另一部分是為特定應(yīng)用用戶自定義的組件。程序運(yùn)行時,有兩個執(zhí)行線程:一個稱為作業(yè)(task),另一個稱為硬件事件句柄(hardware event handler)。作業(yè)是被延期執(zhí)行的函數(shù),它們一旦被調(diào)度,就會運(yùn)行直至結(jié)束,并且在運(yùn)行過程中不準(zhǔn)相互搶占。硬件事件句柄是用來處理相應(yīng)硬件中斷的,雖然也要運(yùn)行完畢,但它們可能會搶占任務(wù)或其他硬件事件句柄的執(zhí)行。命令和事件要作為硬件事件句柄的一部分而執(zhí)行必須使用關(guān)鍵字async 來聲明。因為任務(wù)和硬件事件句柄可能被其他異步代碼所搶占,所以nesC 程序易于受到特定競爭條件的影響,導(dǎo)致產(chǎn)生不一致或不正確的數(shù)據(jù)。避免競爭的辦法通常是在任務(wù)內(nèi)排他地訪問共享數(shù)據(jù),或訪問所有數(shù)據(jù)都使用原子語句。nesC 編譯器會在編譯時向程序員報告潛在的數(shù)據(jù)競爭,這里面可能包含事實上并不可能發(fā)生的沖突。如果程序員確實可以擔(dān)保對某個數(shù)據(jù)的訪問不會導(dǎo)致麻煩,可以將該變量使用關(guān)鍵字norace 來聲明。但使用這個關(guān)鍵字一定要格外小心。Ⅲ. TinyOS 的調(diào)度機(jī)制TinyOS 提供作業(yè)加事件的兩級調(diào)度。作業(yè)一般用于對時間要求不高的應(yīng)用中, 它實際上是一種延遲計算機(jī)制。作業(yè)之間互相平等, 沒有優(yōu)先級之分, 所以作業(yè)的調(diào)度采用簡單的FIFO。作業(yè)間互不搶占, 而事件( 大多數(shù)情況下是中斷) 可搶占。即作業(yè)一旦運(yùn)行, 就必須執(zhí)行至結(jié)束, 當(dāng)作業(yè)主動放棄CPU 使用權(quán)時才能運(yùn)行下一個作業(yè), 所以TinyOS 實際上是一種不可剝奪型內(nèi)核。內(nèi)核主要負(fù)責(zé)管理各個作業(yè), 并決定何時執(zhí)行哪個作業(yè)。TinyOS 的作業(yè)隊列如果為空, 則進(jìn)入極低功耗的Sleep 模式。當(dāng)被事件觸發(fā)后, 在TinyOS 中發(fā)出信號的事件關(guān)聯(lián)的所有作業(yè)被迅速處理當(dāng)這個事件和所有作業(yè)被處理完成, 未被使用的CPU 被置于睡眠狀態(tài)而不是積極尋找下一個活躍的事件[6]。由前所述, TinyOS 調(diào)度機(jī)制有以下特點:1. 作業(yè)單線程運(yùn)行到結(jié)束, 只分配單個作業(yè)棧,這對內(nèi)存受限的系統(tǒng)很有利。2. 沒有進(jìn)程管理的概念, 對作業(yè)按簡單的FIFO 隊列進(jìn)行調(diào)度。對資源采取 圖 TinyOS作業(yè)調(diào)度過程預(yù)先分配, 且目前這個隊列里最多只能有7 個待運(yùn)行的作業(yè)。FIFO 的作業(yè)調(diào)度策略是電源敏感的。當(dāng)作業(yè)隊列為空時, 處理器休眠, 隨后由外部事件喚醒CPU 進(jìn)行作業(yè)調(diào)度。3. 兩級的調(diào)度結(jié)構(gòu)可以實現(xiàn)優(yōu)先執(zhí)行少量同事件相關(guān)的處理, 同時打斷長時間運(yùn)行的作業(yè)。4. 基于事件的調(diào)度策略, 只需少量空間就可獲得并發(fā)性, 并允許獨立的組件共享單個執(zhí)行上下文。同事件相關(guān)的作業(yè)集合可以很快被處理, 不允許阻塞, 具有高度并發(fā)性。5. 作業(yè)之間互相平等, 沒有優(yōu)先級的概念。 nesc語言TinyOS最初是用匯編和C 語言編寫的。但是C 語言不能有效、方便地支持面向無線傳感器網(wǎng)絡(luò)的應(yīng)用和操作系統(tǒng)開發(fā)。為此科研人員經(jīng)過研究對C 語言進(jìn)行了一定的擴(kuò)展, 提出了支持組件化編程的nesC 語言。Ⅰ. Nesc的特點1. nesC是c 語言的一個擴(kuò)展: C 語言可以為所有在傳感器網(wǎng)絡(luò)中可能被用到的目標(biāo)微控制器生成高效代碼。C 為硬件訪問提供了所有必要的底層功能部件, 并且簡化了和現(xiàn)存C 代碼的交互過程, 而且許多程序開發(fā)人員都熟悉C 語言。但是, C 語言也有許多的不足之處: C 語言的安全性和程序結(jié)構(gòu)化方面做的工作很不夠。NesC通過控制表達(dá)能力來提供安全性, 通過組件來實現(xiàn)結(jié)構(gòu)化設(shè)計。2. 整體程序分析:節(jié)點的應(yīng)用程序的大小都是很有限, 這使得整個程序分析成為現(xiàn)實。NesC 的編譯器要求對用nesC 編寫的程序進(jìn)行整體程序分析( 為安全性考慮) 和整體程序優(yōu)化。3. NesC 是一個“靜態(tài)語言”:nesC 的組件模型和參數(shù)化的接口減少了許多動態(tài)內(nèi)存分配的要求。用nesC 編寫的程序里不存在動態(tài)內(nèi)存分配, 而且在編譯期間就可以確定函數(shù)調(diào)用流程。這些限制使得程序分析和優(yōu)化操作得以簡化, 同時操作也更加精確。4. nesC 支持和反映基于事件的并發(fā)控制模型: 基于組件概念的nesC 直接支持基于事件的并發(fā)控制模型。此外 nesC 要設(shè)計應(yīng)對共享數(shù)據(jù)訪問的策略。Ⅱ. Nesc概念簡介1. 組件nesC的應(yīng)用程序都是由組件(ponent)構(gòu)成,他們裝配到一起(配線)構(gòu)成完整程序。nesC組件類分為模塊和配置兩種:①. 模塊:提供,使用,實現(xiàn)接口,包含類C代碼。②. 配置:一系列通過配線語法連接在一起的組件,不使用類C代碼,也可以提供和使用接口。之所以設(shè)置模塊和配置兩種組件就是為了使程序開發(fā)者能夠使用預(yù)建的模塊快速的裝配新的應(yīng)用程序而不需要額外的編程。例如一個程序員可以簡單的通過一個配置文件配線已有的組件來生成一個應(yīng)用程序。這樣就可以構(gòu)建一個庫使得程序員可以方便的調(diào)用已有的模塊。2. 接口接口定義了模塊和配置文件相互作用的邊界,同時也定義了公共的方法供組件使用。接口使用關(guān)鍵字Provides和Uses來界定方法。a. Provides = 向其他組件提供方法b. Uses = 需要其他組件實現(xiàn)方法 接口有雙向性: 它們敘述一組接口供給者 (指令)提供的函數(shù)和一組被接口的使用者(事件)實現(xiàn)的函數(shù)。
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1