2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  摘 要</b></p><p>  無(wú)線傳感網(wǎng)絡(luò)是隨著微機(jī)電系統(tǒng)、片上系統(tǒng)、無(wú)線通信和低功耗嵌入式技術(shù)的飛速發(fā)展而產(chǎn)生的。以其低功耗、低成本、分布式和自組織的特點(diǎn)帶來(lái)了信息感知的一場(chǎng)變革,無(wú)線傳感器網(wǎng)絡(luò)就是由部署在監(jiān)測(cè)區(qū)域內(nèi)的大量廉價(jià)的微型傳感器節(jié)點(diǎn)組成,通過(guò)無(wú)線通信方式形成的一個(gè)多跳自組織網(wǎng)絡(luò)。</p><p>  無(wú)線傳感器網(wǎng)絡(luò)具有眾

2、多類型的傳感器,可以探測(cè)包括地震、電磁、溫度、濕度、光強(qiáng)度、壓力、加速度等等一系列的現(xiàn)象。豐富的功能為無(wú)線傳感器網(wǎng)絡(luò)賦予了廣闊的應(yīng)用前景。本文所使用的是美國(guó)克爾斯博公司生產(chǎn)的無(wú)線振動(dòng)套件,其附帶的加速計(jì)可以測(cè)量最高10G的加速度。已經(jīng)成功應(yīng)用于對(duì)高壓輸電線路、船舶動(dòng)力艙、機(jī)械轉(zhuǎn)軸上的滾珠軸承的振動(dòng)監(jiān)測(cè)。</p><p>  本文所做的工作是在TinyOS下使用nesC語(yǔ)言進(jìn)行應(yīng)用程序開(kāi)發(fā),搭建起一個(gè)具有基本功能的

3、基于無(wú)線傳感器網(wǎng)絡(luò)的振動(dòng)監(jiān)測(cè)系統(tǒng)。我們將一個(gè)三軸加速計(jì)、一塊模數(shù)轉(zhuǎn)換器板和一個(gè)XM2110無(wú)線電板連在一起形成一個(gè)基本的數(shù)據(jù)采集節(jié)點(diǎn),使用MIB520板作為網(wǎng)關(guān)節(jié)點(diǎn)。由此搭建起一個(gè)無(wú)線傳感器網(wǎng)絡(luò)并實(shí)現(xiàn)了基本的振動(dòng)數(shù)據(jù)采集功能。同時(shí)使用克爾斯博公司的XServe軟件對(duì)數(shù)據(jù)進(jìn)行收集、分析和轉(zhuǎn)發(fā)。</p><p>  實(shí)驗(yàn)結(jié)果驗(yàn)證了基于無(wú)線傳感器網(wǎng)絡(luò)的振動(dòng)監(jiān)測(cè)系統(tǒng)進(jìn)行現(xiàn)實(shí)應(yīng)用的可行性和它的良好性能。向我們揭示了無(wú)線傳感

4、器網(wǎng)絡(luò)美好的發(fā)展前景。</p><p>  關(guān)鍵詞:無(wú)線傳感器網(wǎng)絡(luò),信息感知,微操作系統(tǒng),振動(dòng)監(jiān)測(cè)</p><p><b>  Abstract</b></p><p>  Wireless sensor network (WSN)was born with the fast development of MEMS、System on Chip

5、、wireless communication and low-power embedded technology. Its low-power, low cost, the characteristics of distributed and self-organization has brought a revolution in information perception. Wireless sensor network is

6、deployed in the monitoring area by a large number of low-cost micro-sensor nodes, forming a multi-hop ad-hoc networks through wireless communication.</p><p>  Wireless sensor networks have many kinds of sens

7、ors that can detect a series of phenomena including seismic, electromagnetic, temperature, humidity, light intensity, pressure, acceleration and so on. </p><p>  The rich functionality has brought the WSN a

8、bright future. This article uses the vibration tool kit made by Crossbow technology from the U.S.A. its accelerator can measure at most 10G of acceleration,and was successfully deployed in the monitoring of high-voltage

9、transmission lines, ship engine compartment, and ball bearings on the machinery shaft.</p><p>  What we do was to develop applications with nesC language in TinyOS and built a vibration monitoring system wit

10、h basic functions based on WSN. We have put a triaxial accelerometer, a ADC board and a XM2110 radio board together to form a basic data collector mote, and used a MIB520 board as gateway. With them we built a WSN and ch

11、ieved the basic function of the vibration data collection. Then we use Xserve to gother, analysis and transmit data.</p><p>  Experimental results demonstrate the feasibility of practical applications of the

12、 WSN based vibration monitoring system, and show the Bright prospects of wireless sensor networks.</p><p>  Keywords:wireless sensor network, information perception, TinyOS, vibration monitoring</p>&

13、lt;p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  目 錄III</b></p><p><b>  1 緒論1</b></p&g

14、t;<p>  1.1 選題意義1</p><p>  1.2 技術(shù)背景2</p><p>  1.3 本文工作2</p><p><b>  2 系統(tǒng)設(shè)計(jì)4</b></p><p>  2.1 需求分析4</p><p>  2.2 硬件結(jié)構(gòu)5</p>&

15、lt;p>  2.3 軟件結(jié)構(gòu)8</p><p>  2.4 功能流程16</p><p><b>  3 關(guān)鍵技術(shù)17</b></p><p>  3.1 振動(dòng)數(shù)據(jù)采集17</p><p>  3.2 XMesh網(wǎng)絡(luò)協(xié)議19</p><p>  3.3 數(shù)據(jù)處理22</p

16、><p>  3.4 數(shù)據(jù)格式轉(zhuǎn)換23</p><p><b>  4 測(cè)試25</b></p><p><b>  5 結(jié)論27</b></p><p><b>  致謝28</b></p><p><b>  參考文獻(xiàn)29<

17、/b></p><p><b>  1 緒論</b></p><p><b>  1.1 選題意義</b></p><p>  當(dāng)代社會(huì)的工業(yè)生產(chǎn)中,設(shè)備的機(jī)械化,自動(dòng)化,信息化,智能化程度都日新月異的發(fā)展和進(jìn)步著。設(shè)備規(guī)模越來(lái)越大,結(jié)構(gòu)越來(lái)越復(fù)雜,功能越來(lái)越多,性能越來(lái)越高;這極大地提高了生產(chǎn)效率,改變了人們的生活

18、方式。同時(shí)這些設(shè)備一旦產(chǎn)生故障也將造成重大的經(jīng)濟(jì)損失,有時(shí)還會(huì)帶來(lái)人員傷亡和嚴(yán)重的環(huán)境污染。</p><p>  傳統(tǒng)的維護(hù)方式是出了故障再修理或者定期檢修,但是現(xiàn)代工業(yè)體系中的設(shè)備往往具備大型化,連續(xù)化,高速化,自動(dòng)化的特性[1]。一旦產(chǎn)生故障就會(huì)使整條生產(chǎn)線停頓,甚至對(duì)生產(chǎn)設(shè)備造成嚴(yán)重?fù)p傷,由此帶來(lái)的經(jīng)濟(jì)損失將是不可承受的。而傳統(tǒng)的定期檢測(cè)需要大量技術(shù)嫻熟經(jīng)驗(yàn)豐富的技術(shù)員,但是此種方式往往帶來(lái)檢修過(guò)剩及生產(chǎn)線

19、的不必要停頓。這將給企業(yè)帶來(lái)額外的損失和經(jīng)濟(jì)負(fù)擔(dān),同時(shí)此種方法并不能及時(shí)發(fā)現(xiàn)機(jī)械故障。因此基于傳感器的即時(shí)監(jiān)測(cè)技術(shù)應(yīng)運(yùn)而生,這種系統(tǒng)可以隨時(shí)監(jiān)測(cè)系統(tǒng)運(yùn)行狀態(tài)。出現(xiàn)故障前兆立刻報(bào)警,大大減少了不必要的檢修并提供有效的故障預(yù)測(cè)信息,使得預(yù)測(cè)性維護(hù)成為可能。</p><p>  然而早期的在線監(jiān)測(cè)系統(tǒng)非常昂貴,需要鋪設(shè)大量的線路和專業(yè)的操作人員。而這些對(duì)于中小型企業(yè)和對(duì)故障檢測(cè)及時(shí)性要求不是那么高的系統(tǒng)來(lái)說(shuō)性能過(guò)剩,同

20、時(shí)其昂貴的成本將許多用戶擋在門外。隨著電子信息產(chǎn)業(yè)和硬件制造技術(shù)的發(fā)展基于無(wú)線傳感器網(wǎng)絡(luò)的振動(dòng)監(jiān)測(cè)系統(tǒng)成為了可能。</p><p>  基于無(wú)線傳感器網(wǎng)絡(luò)的監(jiān)測(cè)系統(tǒng)不需要鋪設(shè)大量的線路,因此可以以較低的成本組建起一個(gè)監(jiān)測(cè)網(wǎng)絡(luò),同時(shí)在性能與成本之間達(dá)到一個(gè)均衡。振動(dòng)監(jiān)測(cè)對(duì)于許多現(xiàn)代工業(yè)設(shè)備有重要意義,各種設(shè)備中的電機(jī)及軸承在正常運(yùn)轉(zhuǎn)時(shí)擁有穩(wěn)定的振動(dòng)周期。當(dāng)軸承出現(xiàn)磨損時(shí)便會(huì)在其振動(dòng)信號(hào)中表現(xiàn)出異常,通過(guò)對(duì)采集到的振

21、動(dòng)信號(hào)進(jìn)行時(shí)域及頻域分析可以建立對(duì)應(yīng)的故障信號(hào)數(shù)據(jù)庫(kù)??梢栽谀p出現(xiàn)時(shí)快速鑒別分析是何種故障,為預(yù)測(cè)性維護(hù)提供了可靠的信息。同時(shí)無(wú)線傳感器節(jié)點(diǎn)可以在嚴(yán)酷的環(huán)境內(nèi)長(zhǎng)時(shí)間穩(wěn)定工作,此項(xiàng)技術(shù)已經(jīng)應(yīng)用于發(fā)電機(jī)組,船舶動(dòng)力艙,生產(chǎn)線上的機(jī)械設(shè)備以及對(duì)建筑的振動(dòng)監(jiān)測(cè)。同時(shí)通過(guò)精心設(shè)計(jì)的電源管理協(xié)議,基站端定時(shí)喚醒節(jié)點(diǎn)進(jìn)行數(shù)據(jù)采集。采集完成后立刻睡眠,使得節(jié)點(diǎn)上的5號(hào)電池可以在高能耗電源模式下維持?jǐn)?shù)月,在低能耗模式下維持1-2年。解決了無(wú)線傳感器的電

22、力供給問(wèn)題,不必頻繁的更換電池。</p><p>  綜上所述,基于無(wú)線傳感器網(wǎng)絡(luò)的振動(dòng)監(jiān)測(cè)系統(tǒng)有著廣闊的應(yīng)用場(chǎng)景,而隨著半導(dǎo)體加工技術(shù)的飛速進(jìn)步及處理器速度的提升。無(wú)線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)處理能力將會(huì)隨之提高,無(wú)線傳感器網(wǎng)絡(luò)將具有更高的性能和智能化處理能力。</p><p><b>  1.2 技術(shù)背景</b></p><p>  本文所用的硬件

23、平臺(tái)是美國(guó)Crossbow公司開(kāi)發(fā)的無(wú)線振動(dòng)監(jiān)測(cè)套件,此套件可以應(yīng)用于建筑物和機(jī)床的健康監(jiān)測(cè),用智能的無(wú)線技術(shù)代替?zhèn)鹘y(tǒng)的人工檢查,監(jiān)測(cè)數(shù)據(jù)可以傳輸?shù)椒?wù)器、終端PC或者手持設(shè)備PDA,實(shí)現(xiàn)傳統(tǒng)排查不可及的實(shí)時(shí)監(jiān)控。CXL10GP3加速度傳感器通過(guò)套件中的MDA320數(shù)據(jù)采集板連接到Crossbow的無(wú)線傳感器網(wǎng)絡(luò)平臺(tái)上,實(shí)現(xiàn)了低功耗、多跳的無(wú)線傳輸監(jiān)測(cè)數(shù)據(jù)。</p><p>  此套系統(tǒng)之前已有過(guò)成功的應(yīng)用案例在

24、英國(guó)BP石油公司的一艘運(yùn)行在北海的萬(wàn)噸運(yùn)油船Loch Rannoch。此項(xiàng)BP 的計(jì)劃是建立一套預(yù)測(cè)維護(hù)系統(tǒng)用來(lái)監(jiān)視如馬達(dá)、泵之類具有強(qiáng)烈振動(dòng)的機(jī)器。這些機(jī)器被放置于Loch Ronnach 油船的引擎室內(nèi)。通過(guò)振動(dòng)信息來(lái)監(jiān)測(cè)系統(tǒng)的工作狀態(tài),當(dāng)磨損或撕裂現(xiàn)象出現(xiàn)時(shí)則通過(guò)無(wú)線通信發(fā)送警告。相似的例子還有發(fā)電站的機(jī)房及高壓輸電線路。由于無(wú)線傳感器的良好性能,節(jié)點(diǎn)都可以部署在苛刻的環(huán)境中。例如高空高壓電網(wǎng)和船舶動(dòng)力艙室,節(jié)點(diǎn)能夠長(zhǎng)期高效采集有

25、效數(shù)據(jù),從而免去人工檢查的繁瑣工程和維護(hù)次數(shù),并且減少有線監(jiān)控的高額成本。BP公司的項(xiàng)目最終驗(yàn)證了這套系統(tǒng)的現(xiàn)實(shí)可行性[2]。在為期數(shù)月的實(shí)驗(yàn)期間,振動(dòng)監(jiān)測(cè)系統(tǒng)在船舶動(dòng)力室27-38℃的高溫及來(lái)自動(dòng)力機(jī)組的強(qiáng)烈振動(dòng)中忠實(shí)的完成了其所被賦予的任務(wù)。</p><p>  國(guó)家電力建設(shè)研究所目前已將克爾斯博公司的無(wú)線傳感器網(wǎng)絡(luò)產(chǎn)品用于監(jiān)測(cè)大跨距輸電線路的應(yīng)力、溫度和振動(dòng)等參數(shù)。每個(gè)傳感器節(jié)點(diǎn)部署在高壓輸電線上,而網(wǎng)關(guān)固

26、定在高壓輸電塔上。此項(xiàng)目克服了超高壓大電流環(huán)境中無(wú)線監(jiān)測(cè)裝置的電磁屏蔽、工頻干擾、電暈干擾、無(wú)線監(jiān)測(cè)裝置的長(zhǎng)期供電等技術(shù)難題;解決了導(dǎo)地線微風(fēng)振動(dòng)傳感技術(shù)、無(wú)線數(shù)據(jù)傳輸、多參數(shù)信息監(jiān)測(cè)與集成等關(guān)鍵技術(shù)問(wèn)題。驗(yàn)證了基于無(wú)線傳感器的振動(dòng)監(jiān)測(cè)網(wǎng)絡(luò)在實(shí)際工業(yè)環(huán)境中部署的可能性,及其廣闊的市場(chǎng)前景。</p><p><b>  1.3 本文工作</b></p><p>  本文

27、使用無(wú)線振動(dòng)監(jiān)測(cè)套件中的基本組成部分來(lái)完成監(jiān)測(cè)網(wǎng)絡(luò)的組網(wǎng),數(shù)據(jù)采集,數(shù)據(jù)傳送及數(shù)據(jù)顯示。實(shí)驗(yàn)中需要用到基本硬件顆粒:</p><p><b>  IRIS</b></p><p>  Crossbow 2007年推出的一款增強(qiáng)版無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),相對(duì)于原有的MicaZ節(jié)點(diǎn),該節(jié)點(diǎn)可達(dá)到更遠(yuǎn)的通信距離(300~500米,三倍于MicaZ節(jié)點(diǎn)),同時(shí)僅消耗原有功耗的一半

28、。采用此款Mote可以降低Mesh網(wǎng)絡(luò)多跳造成的延遲,增強(qiáng)網(wǎng)絡(luò)的穩(wěn)定性與可靠性,在相同節(jié)點(diǎn)數(shù)目的條件下可以覆蓋更大的監(jiān)測(cè)范圍。</p><p><b>  MDA320</b></p><p>  Crossbow推出的MDA320是一款16位的ADC數(shù)據(jù)采集板,提供8通道16/12位ADC采樣,同時(shí)提供標(biāo)準(zhǔn)的5v,2.5v基準(zhǔn)電壓輸出??梢苑浅7奖愕呐c加速度計(jì)連接。

29、16位的采樣精度可以保證數(shù)據(jù)采集的精確度。</p><p><b>  CXL10GP3</b></p><p>  Crossbow公司出產(chǎn)的CXL10GP3加速度傳感器是一款測(cè)量范圍為10g的3軸加速度傳感器,前置的100HZ低通濾波器可以有效濾除干擾噪聲。內(nèi)置的信號(hào)調(diào)理電路可以保證輸出信號(hào)的可信性。其功耗低至5mA每軸非常適合集成進(jìn)低功耗無(wú)線傳感器網(wǎng)絡(luò),進(jìn)行長(zhǎng)期

30、建筑健康程度監(jiān)測(cè)[3]。</p><p>  其中我編寫的采集程序?qū)⑦\(yùn)行在MDA320及網(wǎng)關(guān)主板MIB520上,由MIB520發(fā)送控制信號(hào)管理數(shù)據(jù)的采集和傳輸。收集到的數(shù)據(jù)傳送到Crossbow公司的軟件平臺(tái)XServe上,經(jīng)過(guò)數(shù)據(jù)解析后形成XML格式數(shù)據(jù)流通過(guò)HTTP協(xié)議傳送至遠(yuǎn)程計(jì)算機(jī)的網(wǎng)頁(yè)上顯示。</p><p><b>  2 系統(tǒng)設(shè)計(jì)</b></p&g

31、t;<p>  本章內(nèi)容是關(guān)于系統(tǒng)總體框架和設(shè)計(jì)的,這一章的開(kāi)頭部分我們首先論述了工業(yè)生產(chǎn)對(duì)基于無(wú)線傳感器網(wǎng)絡(luò)的振動(dòng)監(jiān)測(cè)系統(tǒng)的需求分析。隨后說(shuō)明了我們所使用的硬件節(jié)點(diǎn)的型號(hào)附帶簡(jiǎn)要的產(chǎn)品介紹。隨后按照無(wú)線傳感器網(wǎng)絡(luò)由根節(jié)點(diǎn)到葉節(jié)點(diǎn)的順序展示了相應(yīng)的硬件芯片圖片及其基本性能。然后簡(jiǎn)要介紹了我們使用的Crossbow公司的開(kāi)發(fā)平臺(tái)和應(yīng)用軟件,(對(duì)于所使用的平臺(tái)及TinyOS將在第3章詳細(xì)的介紹)以及我們整個(gè)系統(tǒng)的軟件架構(gòu),最后

32、是整個(gè)系統(tǒng)的流程圖和傳感器采集數(shù)據(jù)的流程圖。</p><p><b>  2.1 需求分析</b></p><p>  現(xiàn)代工業(yè)設(shè)施的許多地方都需要使用振動(dòng)監(jiān)測(cè)來(lái)評(píng)估設(shè)備的健康狀況,例如各種電機(jī),發(fā)動(dòng)機(jī)及轉(zhuǎn)軸上使用的軸承。這些設(shè)備穩(wěn)定轉(zhuǎn)動(dòng)時(shí)發(fā)出規(guī)律的振動(dòng)信號(hào),當(dāng)機(jī)械部分出現(xiàn)磨損時(shí),損傷處就會(huì)因碰撞產(chǎn)生對(duì)應(yīng)的獨(dú)特噪音信號(hào)。通過(guò)對(duì)這些信號(hào)的監(jiān)測(cè)便可以知道設(shè)備是否出現(xiàn)磨損,

33、出現(xiàn)了那種類型的磨損,由此便可以將故障排除在發(fā)生之前[4]。</p><p>  由于無(wú)線傳感器網(wǎng)絡(luò)工作的環(huán)境往往比較惡劣,機(jī)房環(huán)境往往溫度較高,噪音、振動(dòng)、及復(fù)雜的電磁環(huán)境都會(huì)影響傳感器及無(wú)線電的工作。并且需要監(jiān)測(cè)的設(shè)備運(yùn)行時(shí)長(zhǎng)時(shí)間處于振動(dòng)狀態(tài),因此需要將加速計(jì)牢固的依附在機(jī)械表面。</p><p>  本文所使用的硬件節(jié)點(diǎn)是Crossbow公司最新的增強(qiáng)版無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),相比之前版

34、本的產(chǎn)品擁有更遠(yuǎn)的通訊距離和更強(qiáng)的抗干擾性。同時(shí)所使用的CXL10GP3加速計(jì)本身帶有兩個(gè)螺栓孔,可以緊密的固定在機(jī)械表面。</p><p>  網(wǎng)絡(luò)通信方面使用Crossbow公司的XMesh進(jìn)行振動(dòng)網(wǎng)絡(luò)的組建和管理。通過(guò)XMesh的網(wǎng)絡(luò)協(xié)議,振動(dòng)節(jié)點(diǎn)和網(wǎng)關(guān)之間可以形成星型網(wǎng)絡(luò),蜂窩網(wǎng)絡(luò)或者星形-蜂窩混合網(wǎng)絡(luò)如圖2.1。本文使用的是Mesh星形網(wǎng)絡(luò),節(jié)點(diǎn)與網(wǎng)關(guān)之間通過(guò)網(wǎng)絡(luò)協(xié)議進(jìn)行自組網(wǎng)。并且根據(jù)節(jié)點(diǎn)之間的連接狀

35、況進(jìn)行重組,同時(shí)系統(tǒng)出錯(cuò)時(shí)可以進(jìn)行快速的重啟使網(wǎng)絡(luò)恢復(fù)正常。</p><p>  本文中使用CXL10GP3與MDA320連接在一起形成數(shù)據(jù)采集節(jié)點(diǎn),由一塊使用USB連接到計(jì)算機(jī)的MIB520芯片擔(dān)任網(wǎng)關(guān)節(jié)點(diǎn)。網(wǎng)絡(luò)運(yùn)行時(shí),由計(jì)算機(jī)終端通過(guò)XServe發(fā)送采集命令到網(wǎng)關(guān)節(jié)點(diǎn),再由網(wǎng)關(guān)節(jié)點(diǎn)轉(zhuǎn)發(fā)到傳感器節(jié)點(diǎn)進(jìn)行數(shù)據(jù)采集。</p><p>  圖2.1 XMesh的三種網(wǎng)絡(luò)結(jié)構(gòu)</p>

36、;<p><b>  2.2 硬件結(jié)構(gòu)</b></p><p>  本節(jié)我們將簡(jiǎn)要介紹實(shí)驗(yàn)所使用的硬件芯片及他們之間的結(jié)構(gòu)關(guān)系,我們將按照自頂向下的順序由根節(jié)點(diǎn)到葉子節(jié)點(diǎn)逐一介紹這些芯片,首先是網(wǎng)關(guān)節(jié)點(diǎn)MIB520芯片。</p><p>  2.2.1 網(wǎng)關(guān)節(jié)點(diǎn)MIB520</p><p>  MIB520板的外觀如圖2.2所示,

37、MIB520芯片為IRIS系列節(jié)點(diǎn)提供通信和編程的USB接口,通過(guò)USB總線為設(shè)備供電。同時(shí)板上帶有一個(gè)嵌入式處理器Atmega 16L對(duì)節(jié)點(diǎn)進(jìn)行編程。代碼將先通過(guò)USB下載到Atmega 16L隨后處理器將代碼燒入節(jié)點(diǎn)。</p><p>  使用MIB520對(duì)節(jié)點(diǎn)編程需要在計(jì)算機(jī)端使用MoteWorks指定MIB520的兩個(gè)端口號(hào),兩個(gè)端口是獨(dú)立的,分別負(fù)責(zé)編程和數(shù)據(jù)傳輸。本文中我們?cè)O(shè)置的兩個(gè)端口號(hào)為COM3和

38、COM4。同時(shí)MIB520芯片還有一個(gè)reset開(kāi)關(guān)可以重置在板子及節(jié)點(diǎn)上運(yùn)行的程序,其同樣也會(huì)重置在計(jì)算機(jī)端運(yùn)行的軟件。</p><p>  2.2.2 處理器/無(wú)線電板 XM2110芯片</p><p>  XM2110屬于IRIS系列芯片如圖2.3,是Crossbow公司的最新產(chǎn)品。自身</p><p>  帶有一定的計(jì)算能力,其使用一個(gè)兼容IEEE 802.

39、15.4協(xié)議的無(wú)線電收發(fā)機(jī)作為通訊方式。無(wú)線電裝置上包括一個(gè)DSSS(數(shù)字直接序列擴(kuò)頻)基帶調(diào)制解調(diào)器,</p><p>  圖 2.2 MIB520網(wǎng)關(guān)節(jié)點(diǎn)</p><p>  提供9dB的擴(kuò)頻增益和250kbps的有效數(shù)據(jù)速率。天線頻率可在IEEE 802.15.4的頻道號(hào)11(2.405GHz)到26(2.480GHz)之間以5MHz的分辨率調(diào)整。</p><p&

40、gt;  圖 2.3 XM2110芯片</p><p>  無(wú)線電的射頻傳輸電源可以在3dBm(毫瓦分貝)至17.2dBm之間調(diào)整,更低的傳輸功率可以通過(guò)減少電磁干擾降低無(wú)線電功率實(shí)現(xiàn)。XM2110節(jié)點(diǎn)是整個(gè)無(wú)線傳感器網(wǎng)絡(luò)的主要組成芯片,所有的傳感器節(jié)點(diǎn)、網(wǎng)關(guān)節(jié)點(diǎn)都將與這樣一個(gè)芯片相連。并通過(guò)這塊芯片進(jìn)行節(jié)點(diǎn)之間的通信、廣播命令、上傳數(shù)據(jù)等操作。</p><p>  2.2.3 數(shù)據(jù)采集板

41、 MDA320CA</p><p>  MDA320CA是一款高性能數(shù)據(jù)采集板如圖2.4,具有多達(dá)8通道16位模擬輸入。與MDA300數(shù)據(jù)采集板相比,其結(jié)構(gòu)精簡(jiǎn)卻具有相同的功能。MDA320CA是為低成本要求精確采集和分析數(shù)據(jù)類應(yīng)用設(shè)計(jì)的。MDA320CA具有改進(jìn)的微型連接方式,和快速便捷的接口連接外部傳感器。應(yīng)用Crossbow的MoteView可實(shí)現(xiàn)數(shù)據(jù)記錄和顯示功能。</p><p>

42、;  圖2.4 數(shù)據(jù)采集板</p><p>  MDA320也是無(wú)線傳感器網(wǎng)絡(luò)使用最多的芯片之一,每個(gè)傳感器都將通過(guò)電纜與MDA320連接,通過(guò)其板載的模數(shù)轉(zhuǎn)換器將傳感器采集的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。同時(shí)MDA320通過(guò)其板上的插口與XM2110連接,轉(zhuǎn)換出來(lái)的數(shù)字信號(hào)經(jīng)過(guò)無(wú)線電發(fā)送至網(wǎng)關(guān)節(jié)點(diǎn)。</p><p>  2.2.4 CXL10GP3加速計(jì)</p><p>

43、;  CXL10GP3加速計(jì)是本文所使用的唯一一款傳感器如圖2.5,采用MEMs(微機(jī)電系統(tǒng))工藝制造而成。內(nèi)置包括放大和濾波在內(nèi)的信號(hào)調(diào)理電路。直接輸出0~5V標(biāo)準(zhǔn)信號(hào)。出廠前經(jīng)過(guò)標(biāo)準(zhǔn)測(cè)試,提供可信的振動(dòng)信號(hào)輸出。</p><p><b>  圖2.5 加速計(jì)</b></p><p>  安裝時(shí)加速計(jì)通過(guò)電線與數(shù)據(jù)采集板相連,數(shù)據(jù)采集板通過(guò)插口和XM2110無(wú)線電板

44、相連。電池也安裝在無(wú)線電板的背面,從而構(gòu)成一個(gè)最基本的數(shù)據(jù)采集單元。該單元通過(guò)無(wú)線電與網(wǎng)關(guān)節(jié)點(diǎn)上的無(wú)線電雙向傳輸信息,從而接受命令收集數(shù)據(jù)并將數(shù)據(jù)送至計(jì)算機(jī)上的XServe軟件。</p><p><b>  2.3 軟件結(jié)構(gòu)</b></p><p>  2.3.1 軟件結(jié)構(gòu)總攬</p><p>  MoteWorks是Crossbow公司的軟件

45、開(kāi)發(fā)平臺(tái),提供了nesC程序的一整套開(kāi)發(fā)環(huán)境及附屬軟件包。本文的主要工作都在這個(gè)平臺(tái)上進(jìn)行。MoteWorks軟件包主要內(nèi)容為:</p><p>  Cygwin:Windows環(huán)境下模擬POSIX環(huán)境</p><p>  NCC:nesC語(yǔ)言編輯器</p><p>  PN:Progrmmer Note,代碼編輯器</p><p>  Ui

46、sp:程序下載器</p><p>  XServe:無(wú)線傳感器網(wǎng)絡(luò)服務(wù)器中間件</p><p>  Moteview:無(wú)線傳感器網(wǎng)絡(luò)客戶端管理和監(jiān)控軟件</p><p>  PostreSQL:數(shù)據(jù)庫(kù)</p><p>  與硬件層次相對(duì)應(yīng)的是相應(yīng)的軟件層次結(jié)構(gòu),TinyOS下的nesC語(yǔ)言應(yīng)用程序運(yùn)行在硬件體系的葉子節(jié)點(diǎn)上。專為嵌入式網(wǎng)絡(luò)系統(tǒng)

47、設(shè)計(jì)的TinyOS和nesc語(yǔ)言擁有代碼量小、耗能少、并發(fā)性高、健壯性好的特點(diǎn),能夠很好的適應(yīng)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的硬件環(huán)境。(對(duì)TinyOS和nesc的進(jìn)一步介紹將在本節(jié)的后面部分展開(kāi))同時(shí)在計(jì)算機(jī)端運(yùn)行著Crossbow公司開(kāi)發(fā)的服務(wù)軟件XServe,其負(fù)責(zé)監(jiān)聽(tīng)網(wǎng)關(guān)的串口捕獲節(jié)點(diǎn)上傳的數(shù)據(jù)并對(duì)其進(jìn)行解析。通過(guò)鍵入相應(yīng)的命令可以使數(shù)據(jù)顯示,存儲(chǔ)或者轉(zhuǎn)發(fā)到指定端口。本文中XServe的數(shù)據(jù)將被轉(zhuǎn)發(fā)到實(shí)驗(yàn)室一位師兄編寫的網(wǎng)站上,并在其網(wǎng)頁(yè)上

48、即時(shí)的顯示出來(lái)。當(dāng)然這個(gè)網(wǎng)站就是我們軟件結(jié)構(gòu)的客戶端部分。軟件系統(tǒng)整體的結(jié)構(gòu)圖如圖2.6所示:</p><p>  接下來(lái)我們將按照由傳感器節(jié)點(diǎn)到網(wǎng)關(guān),由節(jié)點(diǎn)層到服務(wù)器層最終到客戶端的順序來(lái)說(shuō)明軟件層次中每一部分的結(jié)構(gòu)和功能。首先從無(wú)線傳感器網(wǎng)絡(luò)開(kāi)始。</p><p>  2.3.2 TinyOS</p><p>  受限于有限硬件資源,無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)操作系統(tǒng)設(shè)

49、計(jì)應(yīng)滿足如下的要求:</p><p>  圖 2.6 系統(tǒng)整體結(jié)圖</p><p><b>  1. 小代碼量</b></p><p>  由于節(jié)點(diǎn)的內(nèi)存有限, 因此運(yùn)行在其上的操作系統(tǒng)核心代碼量必須較小, 使其可以在有限的空間中具備高效管理硬件的能力。</p><p><b>  2. 模塊化</b&g

50、t;</p><p>  無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)的趨勢(shì)是針對(duì)特定的應(yīng)用而不是普遍的應(yīng)用, 不同的應(yīng)用所需要的硬件平臺(tái)是不相同的。隨著無(wú)線傳感器網(wǎng)絡(luò)的廣泛應(yīng)用, 節(jié)點(diǎn)構(gòu)成的變化是巨大的。在特定的硬件平臺(tái)上, 根據(jù)不同的應(yīng)用快速便利地結(jié)合軟件模塊實(shí)現(xiàn)應(yīng)用是非常重要的。</p><p><b>  3. 低功耗</b></p><p>  WSN 的大多

51、數(shù)節(jié)點(diǎn)采用電池供電。由于節(jié)點(diǎn)數(shù)量眾多以及節(jié)點(diǎn)被散布的環(huán)境使頻繁更換節(jié)點(diǎn)的電池是不可行的, 甚至是不可能的, 因此低功耗的操作將延長(zhǎng)整個(gè)網(wǎng)絡(luò)的生命周期, 是操作系統(tǒng)設(shè)計(jì)必須滿足的條件。</p><p><b>  4. 并發(fā)操作性</b></p><p>  在傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)上存在著大量的并發(fā)操作, 如數(shù)據(jù)采樣、數(shù)據(jù)處理、數(shù)據(jù)轉(zhuǎn)發(fā)可能同時(shí)進(jìn)行。操作系統(tǒng)需要具備支持嚴(yán)格

52、并發(fā)操作的能力。</p><p><b>  5. 健壯性</b></p><p>  WSN 節(jié)點(diǎn)數(shù)量眾多以及運(yùn)行環(huán)境特殊, 要求運(yùn)行在單個(gè)節(jié)點(diǎn)上的操作系統(tǒng)不但健壯, 而且應(yīng)該便利地適應(yīng)于可靠的分布式應(yīng)用的發(fā)展。</p><p>  TinyOS(TinyMicro Threading Operating System)是一個(gè)開(kāi)源的嵌入式操作

53、系統(tǒng), 它由加州大學(xué)伯克利分校開(kāi)發(fā),主要應(yīng)用于無(wú)線傳感器網(wǎng)絡(luò)方面。目前在世界范圍內(nèi),有超過(guò)500個(gè)研究小組或者公司正在Berkeley / Crossbow的節(jié)點(diǎn)上使用TinyOS[5]。 </p><p>  Ⅰ. TinyOS 的特點(diǎn)和體系結(jié)構(gòu)</p><p>  伯克利大學(xué)開(kāi)發(fā)的TinyOS 采用了組件的結(jié)構(gòu), 它是一個(gè)基于事件的系統(tǒng)。其設(shè)計(jì)的主要目標(biāo)是代碼量小、耗能少、并發(fā)性高、健

54、壯性好, 可以適應(yīng)不同的應(yīng)用。TinyOS 系統(tǒng)、庫(kù)及應(yīng)用程序都是用nesC 語(yǔ)言寫的語(yǔ)言寫的,這時(shí)一種新的用于編寫結(jié)構(gòu)化的基于組件的應(yīng)用程序的語(yǔ)言。nesC 語(yǔ)言主要用于諸如傳感器網(wǎng)絡(luò)等嵌入式系統(tǒng)。nesC具有類似于C 語(yǔ)言的語(yǔ)法,但支持TinyOS 的并發(fā)模型,同時(shí)具有結(jié)構(gòu)化機(jī)制、命名機(jī)制,能夠與其他軟組件連接在一起從而形成一個(gè)健壯的網(wǎng)絡(luò)嵌入式系統(tǒng)。其主要目標(biāo)是幫助應(yīng)用程序設(shè)計(jì)者建立可易于組合成完整、并發(fā)式系統(tǒng)的組件,并能夠在編譯時(shí)

55、執(zhí)行廣泛的檢查。TinyOS 定義了許多在nesC 中所表達(dá)的重要概念。首先,nesC 應(yīng)用程序要建立在定義良好、具有雙向接口的組件之上。其次,nesC 定義了并發(fā)模型,該模型是基于任務(wù)(tast)及硬件事件句柄(hardware event handler)的,在編譯時(shí)會(huì)檢測(cè)數(shù)據(jù)競(jìng)爭(zhēng)(data race)。</p><p> ?、? TinyOS的并發(fā)模型(Concurrency Model)</p>

56、;<p>  TinyOS 一次僅執(zhí)行一個(gè)程序。組成程序的組件來(lái)自于兩個(gè)方面,一部分是系統(tǒng)提供的組件,另一部分是為特定應(yīng)用用戶自定義的組件。程序運(yùn)行時(shí),有兩個(gè)執(zhí)行線程:一個(gè)稱為作業(yè)(task),另一個(gè)稱為硬件事件句柄(hardware event handler)。作業(yè)是被延期執(zhí)行的函數(shù),它們一旦被調(diào)度,就會(huì)運(yùn)行直至結(jié)束,并且在運(yùn)行過(guò)程中不準(zhǔn)相互搶占。硬件事件句柄是用來(lái)處理相應(yīng)硬件中斷的,雖然也要運(yùn)行完畢,但它們可能會(huì)搶占

57、任務(wù)或其他硬件事件句柄的執(zhí)行。命令和事件要作為硬件事件句柄的一部分而執(zhí)行必須使用關(guān)鍵字async 來(lái)聲明。</p><p>  因?yàn)槿蝿?wù)和硬件事件句柄可能被其他異步代碼所搶占,所以nesC 程序易于受到特定競(jìng)爭(zhēng)條件的影響,導(dǎo)致產(chǎn)生不一致或不正確的數(shù)據(jù)。避免競(jìng)爭(zhēng)的辦法通常是在任務(wù)內(nèi)排他地訪問(wèn)共享數(shù)據(jù),或訪問(wèn)所有數(shù)據(jù)都使用原子語(yǔ)句。nesC 編譯器會(huì)在編譯時(shí)向程序員報(bào)告潛在的數(shù)據(jù)競(jìng)爭(zhēng),這里面可能包含事實(shí)上并不可能發(fā)生

58、的沖突。如果程序員確實(shí)可以擔(dān)保對(duì)某個(gè)數(shù)據(jù)的訪問(wèn)不會(huì)導(dǎo)致麻煩,可以將該變量使用關(guān)鍵字norace 來(lái)聲明。但使用這個(gè)關(guān)鍵字一定要格外小心。</p><p> ?、? TinyOS 的調(diào)度機(jī)制</p><p>  TinyOS 提供作業(yè)加事件的兩級(jí)調(diào)度。作業(yè)一般用于對(duì)時(shí)間要求不高的應(yīng)用中, 它實(shí)際上是一種延遲計(jì)算機(jī)制。作業(yè)之間互相平等, 沒(méi)有優(yōu)先級(jí)之分, 所以作業(yè)的調(diào)度采用簡(jiǎn)單的FIFO。作業(yè)

59、間互不搶占, 而事件( 大多數(shù)情況下是中斷) 可搶占。即作業(yè)一旦運(yùn)行, 就必須執(zhí)行至結(jié)束, 當(dāng)作業(yè)主動(dòng)放棄CPU 使用權(quán)時(shí)才能運(yùn)行下一個(gè)作業(yè), 所以TinyOS 實(shí)際上是一種不可剝奪型內(nèi)核。內(nèi)核主要負(fù)責(zé)管理各個(gè)作業(yè), 并決定何時(shí)執(zhí)行哪個(gè)作業(yè)。作業(yè)事件的調(diào)度過(guò)程如圖2.7所示。TinyOS 的作業(yè)隊(duì)列如果為空, 則進(jìn)入極低功耗的Sleep 模式。當(dāng)被事件觸發(fā)后, 在TinyOS 中發(fā)出信號(hào)的事件關(guān)聯(lián)的所有作業(yè)被迅速處理當(dāng)這個(gè)事件和所有作業(yè)

60、被處理完成, 未被使用的CPU 被置于睡眠狀態(tài)而不是積極尋找下一個(gè)活躍的事件[6]。</p><p>  由前所述, TinyOS 調(diào)度機(jī)制有以下特點(diǎn):</p><p>  1. 作業(yè)單線程運(yùn)行到結(jié)束, 只分配單個(gè)作業(yè)棧,這對(duì)內(nèi)存受限的系統(tǒng)很有利;</p><p>  2. 沒(méi)有進(jìn)程管理的概念, 對(duì)作業(yè)按簡(jiǎn)單的FIFO 隊(duì)列進(jìn)行調(diào)度。對(duì)資源采取</p>

61、<p>  圖 2.7 TinyOS作業(yè)調(diào)度過(guò)程</p><p>  預(yù)先分配, 且目前這個(gè)隊(duì)列里最多只能有7 個(gè)待運(yùn)行的作業(yè);FIFO 的作業(yè)調(diào)度策略是電源敏感的。當(dāng)作業(yè)隊(duì)列為空時(shí), 處理器休眠, 隨后由外部事件喚醒CPU 進(jìn)行作業(yè)調(diào)度;</p><p>  3. 兩級(jí)的調(diào)度結(jié)構(gòu)可以實(shí)現(xiàn)優(yōu)先執(zhí)行少量同事件相關(guān)的處理, 同時(shí)打斷長(zhǎng)時(shí)間運(yùn)行的作業(yè);</p><

62、;p>  4. 基于事件的調(diào)度策略, 只需少量空間就可獲得并發(fā)性, 并允許獨(dú)立的組件共享單個(gè)執(zhí)行上下文。同事件相關(guān)的作業(yè)集合可以很快被處理, 不允許阻塞, 具有高度并發(fā)性;</p><p>  5. 作業(yè)之間互相平等, 沒(méi)有優(yōu)先級(jí)的概念。</p><p>  2.3.3 nesc語(yǔ)言</p><p>  TinyOS最初是用匯編和C 語(yǔ)言編寫的。但是C 語(yǔ)言不

63、能有效、方便地支持面向無(wú)線傳感器網(wǎng)絡(luò)的應(yīng)用和操作系統(tǒng)開(kāi)發(fā)。為此科研人員經(jīng)過(guò)研究對(duì)C 語(yǔ)言進(jìn)行了一定的擴(kuò)展, 提出了支持組件化編程的nesC 語(yǔ)言。</p><p> ?、? Nesc的特點(diǎn)</p><p>  1. nesC是c 語(yǔ)言的一個(gè)擴(kuò)展: C 語(yǔ)言可以為所有在傳感器網(wǎng)絡(luò)中可能被用到的目標(biāo)微控制器生成高效代碼。C 為硬件訪問(wèn)提供了所有必要的底層功能部件, 并且簡(jiǎn)化了和現(xiàn)存C 代碼的交

64、互過(guò)程, 而且許多程序開(kāi)發(fā)人員都熟悉C 語(yǔ)言。但是, C 語(yǔ)言也有許多的不足之處: C 語(yǔ)言的安全性和程序結(jié)構(gòu)化方面做的工作很不夠。NesC通過(guò)控制表達(dá)能力來(lái)提供安全性, 通過(guò)組件來(lái)實(shí)現(xiàn)結(jié)構(gòu)化設(shè)計(jì)。</p><p>  2. 整體程序分析:節(jié)點(diǎn)的應(yīng)用程序的大小都是很有限, 這使得整個(gè)程序分析成為現(xiàn)實(shí)。NesC 的編譯器要求對(duì)用nesC 編寫的程序進(jìn)行整體程序分析( 為安全性考慮) 和整體程序優(yōu)化。</p&g

65、t;<p>  3. NesC 是一個(gè)“靜態(tài)語(yǔ)言”:nesC 的組件模型和參數(shù)化的接口減少了許多動(dòng)態(tài)內(nèi)存分配的要求。用nesC 編寫的程序里不存在動(dòng)態(tài)內(nèi)存分配, 而且在編譯期間就可以確定函數(shù)調(diào)用流程。這些限制使得程序分析和優(yōu)化操作得以簡(jiǎn)化, 同時(shí)操作也更加精確。</p><p>  4. nesC 支持和反映基于事件的并發(fā)控制模型: 基于組件概念的nesC 直接支持基于事件的并發(fā)控制模型。此外 ne

66、sC 要設(shè)計(jì)應(yīng)對(duì)共享數(shù)據(jù)訪問(wèn)的策略。</p><p>  Ⅱ. Nesc概念簡(jiǎn)介</p><p><b>  1. 組件</b></p><p>  nesC的應(yīng)用程序都是由組件(component)構(gòu)成,他們裝配到一起(配線)構(gòu)成完整程序。nesC組件類分為模塊和配置兩種:</p><p> ?、? 模塊:提供,使用,

67、實(shí)現(xiàn)接口,包含類C代碼。</p><p> ?、? 配置:一系列通過(guò)配線語(yǔ)法連接在一起的組件,不使用類C代碼,也可以提供和使用接口。</p><p>  之所以設(shè)置模塊和配置兩種組件就是為了使程序開(kāi)發(fā)者能夠使用預(yù)建的模塊快速的裝配新的應(yīng)用程序而不需要額外的編程。例如一個(gè)程序員可以簡(jiǎn)單的通過(guò)一個(gè)配置文件配線已有的組件來(lái)生成一個(gè)應(yīng)用程序。這樣就可以構(gòu)建一個(gè)庫(kù)使得程序員可以方便的調(diào)用已有的模塊。

68、</p><p><b>  2. 接口</b></p><p>  接口定義了模塊和配置文件相互作用的邊界,同時(shí)也定義了公共的方法供組件使用。接口使用關(guān)鍵字Provides和Uses來(lái)界定方法。</p><p>  a. Provides = 向其他組件提供方法</p><p>  b. Uses = 需要其他組件實(shí)現(xiàn)

69、方法</p><p>  接口有雙向性: 它們敘述一組接口供給者 (指令)提供的函數(shù)和一組被接口的使用者(事件)實(shí)現(xiàn)的函數(shù)。這允許一個(gè)單一的接口能夠表現(xiàn)組件之間復(fù)雜的交互作用 (舉例來(lái)說(shuō).,當(dāng)某一事件在一個(gè)回調(diào)之前發(fā)生時(shí),對(duì)一些事件的興趣登記)。 這是危險(xiǎn)的,因?yàn)?TinyOS 中所有的長(zhǎng)指令 (舉例來(lái)說(shuō). 發(fā)送包)是非中斷的; 他們的完成由一個(gè)事件( 發(fā)送完成)標(biāo)志。 通過(guò)敘述接口,一個(gè)組件不能調(diào)用發(fā)送指令除非

70、它提供 sendDone 事件的實(shí)現(xiàn)。通常指令向下調(diào)用,比如, 從應(yīng)用組件到那些比較靠近硬件的調(diào)用,而事件則向上調(diào)用。特定的原始事件與硬件中斷是關(guān)聯(lián)的(引用)</p><p>  接口實(shí)質(zhì)上是一系列事件(event)和命令(command)的集合,接口的使用者必須實(shí)現(xiàn)接口中聲明的的事件,而接口的提供者必須實(shí)現(xiàn)接口中聲明的命令。</p><p><b>  3. 配線</b&

71、gt;</p><p>  由上所述nesC語(yǔ)言主要是依靠配置文件與已有的組件連接而快速形成應(yīng)用程序。連接的關(guān)鍵就是配線語(yǔ)法,通過(guò)配線語(yǔ)法將配置文件中的方法與已有庫(kù)中的連接起來(lái)。舉例說(shuō)明:我們總能在nesC的配置中看到類似下面的代碼:</p><p>  Main.StdControl ->XXXX.StdControl;</p><p>  其作用時(shí)將 Ma

72、in 組件的接口StdControl 與XXXX中的StdControl 接口導(dǎo)通起來(lái)。XXXX.StdControl.init()將被Main.StdControl.init()調(diào)用。同樣的規(guī)則也適用于start()命令及stop()命令。</p><p>  至于“被使用”的接口,其子組件的初始化函數(shù)必須被使用組件顯式地調(diào)用。如:XXXX 模塊使用接口YYYY,于是YYYY.init()命令要再XXXX.in

73、it()中被顯式地調(diào)用。nesC 使用箭頭(->)來(lái)指示和標(biāo)識(shí)接口間的關(guān)系,其意義為“綁定”,即左邊的接口綁定到右邊的實(shí)現(xiàn)上。換言之,使用接口的組件在左邊,提供接口的組件在右邊,右邊的組件中將包含所使用函數(shù)的代碼實(shí)現(xiàn)。</p><p>  最后簡(jiǎn)要介紹下nesC程序的編譯,由于本文主要工作都在Crossbow公司開(kāi)發(fā)的平臺(tái)MoteWorks上進(jìn)行。在MoteWorks框架內(nèi)所有應(yīng)用程序目錄中都至少包含5個(gè)文

74、件:</p><p>  1. Makefile</p><p>  2. Makefile.Component</p><p>  3. 使用nesC編寫的應(yīng)用程序配置文件</p><p>  4. 使用nesC編寫的模塊</p><p><b>  5. 說(shuō)明文檔 。</b></p>

75、;<p>  Make 工具最主要也是最基本的功能就是通過(guò)makefile 文件來(lái)描述源程序之間的相互關(guān)系并自動(dòng)維護(hù)編譯工作。而makefile 文件需要按照某種語(yǔ)法進(jìn)行編寫,文件中需要說(shuō)明如何編譯各個(gè)源文件并連接生成可執(zhí)行文件,并要求定義源文件之間的依賴關(guān)系。在頂層配置文件中則描述了各組件之間的連接情況,模塊中則是函數(shù)的具體實(shí)。最后在MoteWorks的shell中輸入 ma

76、ke <platform> re|install,<n> <programmer>,<COM# or IP_Addr></p><p>  Platform = mica2, ormicaz, mica2dot, or IRIS</p><p>  Programmer = mib510, ormib520, oreprb (= mib600

77、)</p><p>  根據(jù)所使用硬件的不同選擇不同的平臺(tái)和網(wǎng)關(guān)板,本文使用IRIS節(jié)點(diǎn)和MIB520網(wǎng)關(guān)板。MIB520的COM端口可以手動(dòng)指定,本文中端口號(hào)為3、4。</p><p><b>  2.3.4 節(jié)點(diǎn)層</b></p><p>  當(dāng)數(shù)據(jù)采集流程開(kāi)始時(shí),首先由網(wǎng)關(guān)節(jié)點(diǎn)接收來(lái)自服務(wù)器端的命令參數(shù)。收到參數(shù)后網(wǎng)關(guān)節(jié)點(diǎn)進(jìn)行初始化。隨后

78、網(wǎng)關(guān)節(jié)點(diǎn)對(duì)整個(gè)無(wú)線傳感器網(wǎng)絡(luò)廣播喚醒消息。收到喚醒消息的節(jié)點(diǎn)將開(kāi)啟傳感器電源,進(jìn)行采樣,收集到的數(shù)據(jù)將存入節(jié)點(diǎn)上的RAM。隨后采集完畢的節(jié)點(diǎn)會(huì)向網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送采集完成消息,隨后網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送上傳數(shù)據(jù)命令收集數(shù)據(jù)。數(shù)據(jù)上傳完畢后節(jié)點(diǎn)關(guān)閉傳感器電源并進(jìn)入休眠狀態(tài)。</p><p>  節(jié)點(diǎn)上的程序由VibrationBase和VibrationEnd構(gòu)成,分別運(yùn)行在基站和終端節(jié)點(diǎn)。</p><p>

79、;  VibrationBase部分包含CXL10GP3的驅(qū)動(dòng)程序,運(yùn)行在XM2110節(jié)點(diǎn)上并管理數(shù)據(jù)采集和對(duì)采集到的數(shù)據(jù)加時(shí)間戳。隨后將采集到的數(shù)據(jù)發(fā)送至網(wǎng)關(guān)節(jié)點(diǎn)也就是VibrationBase運(yùn)行的地方。Base部分主要負(fù)責(zé)接受數(shù)據(jù)采集的命令及參數(shù),收到命令后網(wǎng)關(guān)節(jié)點(diǎn)將逐一喚醒傳感器節(jié)點(diǎn)并進(jìn)行時(shí)間同步(即使用網(wǎng)關(guān)時(shí)鐘時(shí)間刷新節(jié)點(diǎn)時(shí)鐘)。同步完成后發(fā)送采集命令,當(dāng)收到采集完成消息時(shí)逐一收集節(jié)點(diǎn)數(shù)據(jù)。收集完數(shù)據(jù)后傳感器節(jié)點(diǎn)將再次進(jìn)入睡眠

80、狀態(tài),網(wǎng)關(guān)節(jié)點(diǎn)隨后將收集到的數(shù)據(jù)通過(guò)USB串口送至計(jì)算機(jī)終端。(關(guān)于采集部分的技術(shù)將在第3章詳細(xì)論述)</p><p><b>  2.3.5 中間層</b></p><p>  中間層的程序主要是Crossbow公司的XServe軟件,我們主要通過(guò)XServe的命令窗口輸入運(yùn)行命令及參數(shù)。XServe主要功能如下:</p><p>  1.

81、支持文件、數(shù)據(jù)庫(kù)、XML的數(shù)據(jù)解析和轉(zhuǎn)發(fā)</p><p>  2. 三種數(shù)據(jù)轉(zhuǎn)發(fā)方式</p><p><b>  ① 轉(zhuǎn)發(fā)串行數(shù)據(jù)流</b></p><p><b> ?、?瀏覽器接口</b></p><p><b>  ③ 網(wǎng)絡(luò)接口</b></p><p&

82、gt;<b>  3. 報(bào)警功能</b></p><p><b>  4. 空中編程接口</b></p><p><b>  5. 健康診斷功能</b></p><p>  本文將使用其XML數(shù)據(jù)解析和轉(zhuǎn)發(fā)的功能,運(yùn)行XServe時(shí)通過(guò)鍵入命令</p><p>  xserve

83、 –s=/dev/ttyS5 –b=115200 –xmlc xmlport=9005 –c 使得獲得的數(shù)據(jù)以XML數(shù)據(jù)流的形式寫入9005端口。我們將監(jiān)聽(tīng)此端口并將捕獲的數(shù)據(jù)轉(zhuǎn)換為json格式并使用HTTP協(xié)議傳輸至網(wǎng)頁(yè)顯示。</p><p><b>  2.3.6 客戶端</b></p><p>  客戶端網(wǎng)站是由實(shí)驗(yàn)室學(xué)長(zhǎng)開(kāi)發(fā)的一套收集傳感器節(jié)點(diǎn)數(shù)據(jù)并進(jìn)行分析和

84、深入挖掘的系統(tǒng)——Sensor information web。</p><p>  Sensor information web有三大主要功能:</p><p>  1. 為用戶提供傳感器網(wǎng)絡(luò)數(shù)據(jù)收集、存儲(chǔ)、共享、可視化以及傳感器節(jié)點(diǎn)的控制。 </p><p>  2. 提供restful webservice api,允許用戶查詢、操作系統(tǒng)中的數(shù)據(jù)。用戶在注冊(cè)時(shí)

85、,系統(tǒng)會(huì)為其分配一個(gè)授權(quán)碼,基于該授權(quán)碼,用戶可以注冊(cè)自己的傳感器節(jié)點(diǎn)、上傳傳感器收集的數(shù)據(jù)、在電子地圖上查看以圖表的方式顯示的數(shù)據(jù)等。</p><p>  3. 系統(tǒng)在web界面上提供簡(jiǎn)單的交互界面,允許用戶通過(guò)相關(guān)命令來(lái)控制傳感器。系統(tǒng)和傳感器之間采用webservice 的方式通信,這樣可以屏蔽底層的差異,不用關(guān)心底層的通信細(xì)節(jié);同時(shí)只要傳感器網(wǎng)絡(luò)通信的格式滿足系統(tǒng)制定的標(biāo)準(zhǔn),用戶也可以很容易的將其集成到系

86、統(tǒng)中。</p><p>  我的工作就是將采集到的數(shù)據(jù)封裝在HTTP數(shù)據(jù)報(bào)中發(fā)送到該網(wǎng)站以供使用。 </p><p><b>  2.4 功能流程</b></p><p>  程序開(kāi)始運(yùn)行時(shí)由XServe端啟動(dòng)網(wǎng)關(guān)節(jié)點(diǎn),然后由網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送喚醒信號(hào)及命令參數(shù)啟動(dòng)感應(yīng)器節(jié)點(diǎn)采集數(shù)據(jù)。程序流程圖見(jiàn)圖2.8:</p><p&g

87、t;  圖2.8 數(shù)據(jù)采集流程圖</p><p><b>  3 關(guān)鍵技術(shù)</b></p><p>  本章內(nèi)容主要講述節(jié)點(diǎn)層上的應(yīng)用程序所使用到的技術(shù),首先將詳細(xì)的敘述振動(dòng)數(shù)據(jù)采樣部分的程序編寫及其與基站模塊的關(guān)系。隨后將詳細(xì)的介紹XMesh組網(wǎng)協(xié)議,XMesh是Crossbow公司開(kāi)發(fā)的一套用來(lái)組建無(wú)線傳感器網(wǎng)絡(luò)的協(xié)議,其中包含了消息傳遞機(jī)制,應(yīng)用程序ID等保證數(shù)

88、據(jù)傳輸?shù)年P(guān)鍵概念,是對(duì)TinyOS系統(tǒng)原有功能的更改和增加,帶有濃重的公司特色。最后是數(shù)據(jù)的處理部分,XServe收集上來(lái)的數(shù)據(jù)被我們轉(zhuǎn)換為Json格式封裝在http協(xié)議數(shù)據(jù)包中發(fā)送到Sensor information web中,其中格式轉(zhuǎn)換使用了開(kāi)源的模塊。</p><p>  3.1 振動(dòng)數(shù)據(jù)采集</p><p>  振動(dòng)數(shù)據(jù)采集是本文的主要工作,要獲得振動(dòng)數(shù)據(jù)需要編寫網(wǎng)關(guān)節(jié)點(diǎn)和傳感

89、器節(jié)點(diǎn)上的應(yīng)用程序。其中難點(diǎn)是CXL10GP3加速計(jì)的驅(qū)動(dòng)編寫,因?yàn)橹皼](méi)有接觸過(guò)相關(guān)硬件驅(qū)動(dòng)的編寫,所以這部分內(nèi)容完全沒(méi)有頭緒卡了很長(zhǎng)時(shí)間才完成。</p><p>  3.1.1 加速計(jì)驅(qū)動(dòng)</p><p>  CXL10GP3加速計(jì)是Crossbow公司生產(chǎn)的一種測(cè)量范圍在10G的3軸加速計(jì),采用微機(jī)電系統(tǒng)(MEMS)工藝加工而成。內(nèi)置包括放大和濾波在內(nèi)的信號(hào)調(diào)理電路,直接輸出 0~5

90、V的模擬信號(hào)。擁有5個(gè)針腳分別是power,gnd,x,y,z,使用時(shí)將power綁定到EXCITATION50接口。當(dāng)定時(shí)器觸發(fā)時(shí)call EXCITATION50.on()來(lái)打開(kāi)加速計(jì),對(duì)于x,y,z三個(gè)軸的數(shù)據(jù)采集則放在三個(gè)事件</p><p>  event result_t AccelX.dataReady(uint16_t data);</p><p>  event res

91、ult_t AccelY.dataReady(uint16_t data);</p><p>  event result_t AccelZ.dataReady(uint16_t data),中實(shí)現(xiàn)。數(shù)據(jù)采集完成后,被寫入XM2110的存儲(chǔ)器中。XM2110節(jié)點(diǎn)將發(fā)送一條數(shù)據(jù)采集完成消息到網(wǎng)關(guān)節(jié)點(diǎn),隨后網(wǎng)關(guān)節(jié)點(diǎn)響應(yīng)此消息并發(fā)送指令上傳數(shù)據(jù)。</p><p>  3.1.2 數(shù)據(jù)采集模塊

92、及邏輯關(guān)系</p><p>  數(shù)據(jù)采集流程主要發(fā)生在基站節(jié)點(diǎn)與傳感器節(jié)點(diǎn)之間,采集程序主要由三個(gè)組件通過(guò)配線而成。其中VibrationBase運(yùn)行在基站上,VibrationEnd和SampleLogM運(yùn)行在傳感器節(jié)點(diǎn)上。VibrationBase模塊負(fù)責(zé)傳感器網(wǎng)絡(luò)與中間層X(jué)Serve的聯(lián)系,主要負(fù)責(zé)接受XServe發(fā)送過(guò)來(lái)的命令參數(shù)然后對(duì)傳感器節(jié)點(diǎn)發(fā)出相應(yīng)的消息來(lái)控制數(shù)據(jù)采集。VibrationEnd模塊在

93、接到基站傳來(lái)的參數(shù)以后,將對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行時(shí)間同步。同步完成后調(diào)用SampleLogM模塊進(jìn)行振動(dòng)數(shù)據(jù)采樣,SampleLogM模塊中包含了CXL10GP3加速計(jì)需要用到的驅(qū)動(dòng)。在接到Base模塊的命令后對(duì)傳感器加電,并按照接收到的參數(shù)定時(shí)采集指定數(shù)量的振動(dòng)數(shù)據(jù)存儲(chǔ)在節(jié)點(diǎn)的RAM中。采集完成后觸發(fā)SensingDone()事件,這個(gè)事件將向基站發(fā)送消息告知數(shù)據(jù)采集完成。隨后基站會(huì)發(fā)送命令由VibrationEnd模塊將數(shù)據(jù)上傳。模塊間的關(guān)

94、系如圖3.1所示:</p><p>  圖3.1 節(jié)點(diǎn)程序個(gè)模塊關(guān)系圖</p><p>  3.1.3 數(shù)據(jù)采集模塊的技術(shù)要點(diǎn)</p><p>  我在編寫數(shù)據(jù)采集部分的程序時(shí)花費(fèi)了最多的時(shí)間和精力,這部分遇到的問(wèn)題和難點(diǎn)也最多。</p><p>  首先是驅(qū)動(dòng)編寫的問(wèn)題,由于之前從未接觸過(guò)硬件驅(qū)動(dòng)的編寫。這部分工作一開(kāi)始就進(jìn)入了死胡同,面對(duì)

95、一個(gè)加速計(jì)完全不知道從何著手。需要發(fā)送什么命令來(lái)啟動(dòng)它,怎么讀數(shù)據(jù),怎么控制它等等一系列問(wèn)題。最后我向Crossbow公司的技術(shù)支持寫信求助,他們給了我加速計(jì)的詳細(xì)資料,解決了我大部分的疑問(wèn)。使得我的工作可以繼續(xù)進(jìn)行下去。</p><p>  實(shí)際上根據(jù)已有的資料,我并不需要編寫到匯編一級(jí)的代碼。CXL10GP3自身就有調(diào)用的方法可以方便的獲取其中的數(shù)據(jù)。其中power針有兩個(gè)方法,分別是poweron( ),p

96、oweroff( )他們分別起到開(kāi)啟/關(guān)閉加速計(jì)電源的作用。對(duì)于其他的數(shù)據(jù)端口x,y,z分別有g(shù)etdata( )方法可供調(diào)用。可以通過(guò)配置文件將這三個(gè)針腳分別綁定到模數(shù)轉(zhuǎn)換板的對(duì)應(yīng)針,當(dāng)加速計(jì)開(kāi)啟時(shí)模擬信號(hào)將直接傳送到對(duì)應(yīng)的信號(hào)入口并轉(zhuǎn)化為數(shù)字信號(hào)。</p><p>  其次是時(shí)間觸發(fā)的問(wèn)題,由前所述,nesC程序是基于事件驅(qū)動(dòng)模式的程序。所以其中最重要的事件就是timer.fired( ),無(wú)線傳感器網(wǎng)絡(luò)由于

97、電源有限的原因必須采用短期喚醒/長(zhǎng)期睡眠的工作模式來(lái)保證更長(zhǎng)的工作時(shí)間。所以在其上的應(yīng)用程序都是隨著時(shí)鐘觸發(fā)而執(zhí)行的,如何合理的安排時(shí)鐘到點(diǎn)時(shí)觸發(fā)事件中的命令調(diào)用成為合理安排各接口中函數(shù)調(diào)用的關(guān)鍵。本文中時(shí)間觸發(fā)的事件都安排在基站部分的程序中,當(dāng)時(shí)鐘觸發(fā)時(shí)基站執(zhí)行對(duì)應(yīng)的操作如發(fā)起時(shí)間同步,發(fā)送采集數(shù)據(jù)命令等。而消息的發(fā)送則是放在各項(xiàng)操作的完成事件中,例如采樣操作,當(dāng)采樣完畢時(shí)就會(huì)觸發(fā)SensingDone( )事件,而在此狀態(tài)下需要發(fā)送

98、的消息就可以放在這個(gè)事件中執(zhí)行。</p><p>  最后比較煩惱的問(wèn)題就是Crossbow公司自定義的多種數(shù)據(jù)結(jié)構(gòu),例如TOS_Msg消息格式就是對(duì)TinyOS系統(tǒng)原有的消息結(jié)構(gòu)進(jìn)行了擴(kuò)充后產(chǎn)生的。而在此數(shù)據(jù)格式基礎(chǔ)上又衍生出許多種簡(jiǎn)化的變種。同時(shí)對(duì)于各種數(shù)據(jù)結(jié)構(gòu),Crossbow公司也有許多自定義的數(shù)據(jù)類型。這些類型都是用C語(yǔ)言的結(jié)構(gòu)定義的,由于剛開(kāi)始接觸時(shí)不熟悉經(jīng)常為了找一個(gè)數(shù)據(jù)的定義翻遍整個(gè).h文件。這大

99、大拖延了整個(gè)工作的進(jìn)展速度。整個(gè)畢設(shè)過(guò)程中2/3的時(shí)間花在了學(xué)習(xí)Crossbow公司的各項(xiàng)技術(shù)手冊(cè),學(xué)習(xí)TinyOS/nesC語(yǔ)言和熟悉理解樣例程序的過(guò)程中。</p><p>  3.2 XMesh網(wǎng)絡(luò)協(xié)議</p><p>  3.2.1 XMesh簡(jiǎn)介</p><p>  XMesh 是美國(guó)Crossbow 公司為無(wú)線傳感器網(wǎng)絡(luò)開(kāi)發(fā)的網(wǎng)絡(luò)協(xié)議,它具有多跳、ad-h

100、oc 和Mesh 網(wǎng)的全部特征。XMesh 網(wǎng)絡(luò)可以使用傳感器節(jié)點(diǎn)通過(guò)多跳技術(shù)將數(shù)據(jù)傳送到網(wǎng)關(guān)節(jié)點(diǎn)位置。這種多跳技術(shù)可以有效地拓展無(wú)線通信距離并且減少傳送消息時(shí)的功耗。</p><p>  Crossbow 公司將XMesh 協(xié)議封裝成一個(gè)軟件庫(kù),并且使用TinyOS 操作系統(tǒng)運(yùn)行在嵌入式設(shè)備上。通過(guò)XMesh 的網(wǎng)絡(luò)協(xié)議可以將數(shù)據(jù)路向上發(fā)送到基站,也可以向下發(fā)送到各個(gè)獨(dú)立節(jié)點(diǎn)。在傳送數(shù)據(jù)的同時(shí)還提供了兩種QoS

101、(Quality of Service)來(lái)保證數(shù)據(jù)傳輸?shù)目煽啃?,第一種稱為盡力交付(連接層的確認(rèn)),第二種稱為保證交付(端到端的確認(rèn)).XMesh 的網(wǎng)絡(luò)協(xié)議包含了許多功能,例如:低能耗監(jiān)聽(tīng)數(shù)據(jù)、時(shí)間同步、睡眠模式、任何節(jié)點(diǎn)到基站節(jié)點(diǎn)和基站節(jié)點(diǎn)到任何節(jié)點(diǎn)的路由等。還有很多特點(diǎn)都是為傳感器網(wǎng)絡(luò)量身打造的。例如在低功耗模式時(shí)電流可降低至220μA,網(wǎng)絡(luò)時(shí)間同步可以精確到±1ms[8]。</p><p>  

102、3.2.2 XMesh中的消息結(jié)構(gòu)</p><p>  XMesh中的消息機(jī)制之基于TinyOS建立的,在TinyOS消息的基礎(chǔ)上增加了額外的信息,是TinyOS消息的擴(kuò)展。其中定義了一種非常重要的數(shù)據(jù)結(jié)構(gòu)即:</p><p>  TOS_Msg消息它里面包含了協(xié)議的各個(gè)字段和用來(lái)裝載用戶數(shù)據(jù)的區(qū)域,使用時(shí)只需要調(diào)用XMesh提供的接口即可方便的使用[10]。</p><

103、;p>  表3-1 TOS_Msg的數(shù)據(jù)結(jié)構(gòu)</p><p>  3.2.3 XMesh 消息API</p><p>  XMesh可以傳送上傳數(shù)據(jù)流(自節(jié)點(diǎn)到基站)和下行數(shù)據(jù)流(自基站到節(jié)點(diǎn))。下行數(shù)據(jù)流使得在XMesh中自基站到節(jié)點(diǎn)的有效率的數(shù)據(jù)交換成為可能。下行數(shù)據(jù)流使用的路由路徑必須與上傳數(shù)據(jù)包中記錄的上傳路由路徑完全一樣,因此下行數(shù)據(jù)流只有在發(fā)生了一個(gè)上傳數(shù)據(jù)流后才能使用

104、。</p><p>  消息可以使用兩種QOS(Quality of service)級(jí)別發(fā)送:</p><p>  1. 連接層確認(rèn):這種方式在發(fā)送者沒(méi)有收到ACK消息時(shí)提供數(shù)據(jù)的重新發(fā)送。此方式并不保證一個(gè)多跳的消息能夠成功由節(jié)點(diǎn)發(fā)送到基站,使用連接層確認(rèn)的方式是必須在低耗能模式下工作并且并不需要100%的數(shù)據(jù)傳遞率的系統(tǒng)的最好選擇。</p><p>  2.

105、端到端確認(rèn):這種機(jī)制將連接層確認(rèn)和端到端確認(rèn)結(jié)合在一起,對(duì)于上傳流數(shù)據(jù)基站將返還一個(gè)ACK到源節(jié)點(diǎn)。對(duì)于下行數(shù)據(jù)流基站也將接到目的節(jié)點(diǎn)的ACK。XMesh允許用戶檢測(cè)消息是否需要重新發(fā)送,與連接層確認(rèn)相比此種模式將消耗更多的能源和占用更多的無(wú)線電帶寬。對(duì)于任何數(shù)據(jù)傳輸使用者都可以任選端到端確認(rèn)或者連接層確認(rèn)。</p><p>  XMesh同時(shí)提供了一系列的TinyOS數(shù)據(jù)和接口使得用戶可以配線TinyOS組件并

106、且在他們的應(yīng)用程序中調(diào)用這些組件。</p><p>  3.2.4 Active Messaging和APP_ID</p><p>  TinyOS之前使用了一種AM參數(shù)來(lái)作為TOS消息的服務(wù)/應(yīng)用程序識(shí)別ID。這使得用戶可以在他們的應(yīng)用程序中向不同的服務(wù)發(fā)送消息。而在XMesh中這個(gè)參數(shù)被封裝使得用戶不能使用這個(gè)參數(shù)。相應(yīng)的XMesh使用App_ID來(lái)提供類似的服務(wù),原有的AM參數(shù)在X

107、Mesh內(nèi)部使用(無(wú)線電層,路由層,傳輸層)。APP_ID使得用戶可以使用同一個(gè)AM參數(shù)向不同的服務(wù)發(fā)送消息。XMesh同時(shí)提供了MhopSend/receive接口來(lái)發(fā)送/接收消息,實(shí)際上用戶只能在這個(gè)接口中使用APP_ID。APP_ID將作為這個(gè)發(fā)送/接收接口的參數(shù)來(lái)使用,其中1~127號(hào)留給用戶使用,128~255號(hào)被Crossbow公司預(yù)留。</p><p>  當(dāng)調(diào)用MhopSend接口發(fā)送數(shù)據(jù)時(shí)XMe

108、sh會(huì)根據(jù)調(diào)用時(shí)的模式參數(shù)決定AM類型,相應(yīng)的AM類型被存在TOS消息頭部的type中,APP_ID存在套接字中。</p><p>  在這里我們可以看到Crossbow公司已經(jīng)拋棄了TinyOS原有的消息機(jī)制,取而代之的是封裝起來(lái)的XMesh軟件包。新的應(yīng)用程序ID在本文的工作中起到了關(guān)鍵的作用,本文中無(wú)線傳感器網(wǎng)絡(luò)的數(shù)據(jù)都將通過(guò)XMesh來(lái)發(fā)送。使用XMesh提供的發(fā)送接口和接受接口,通過(guò)APP_ID來(lái)識(shí)別不

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論