版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 嵌入式系統(tǒng)開發(fā)技術(shù)課程設(shè)計</p><p><b> 目錄</b></p><p><b> 目錄1</b></p><p><b> 摘要2</b></p><p><b> 前言3</b></p>&l
2、t;p><b> 一 基本原理4</b></p><p> 1.1 溫濕度數(shù)據(jù)采集原理4</p><p> 1.1.1SHT10 引腳特性4</p><p><b> 二 系統(tǒng)分析6</b></p><p> 2.1具體步驟描述6</p><p>
3、; 2.2 程序流程圖7</p><p><b> 三 詳細設(shè)計8</b></p><p> 3.1實現(xiàn)溫濕度數(shù)據(jù)采集的硬件部分8</p><p> 3.1.1無線傳感基本結(jié)構(gòu)及實現(xiàn)原理8</p><p> 3.1.2使用的實驗箱以及軟件支持9</p><p> 3.1.3
4、實現(xiàn)溫濕度采集系統(tǒng)節(jié)點模塊設(shè)計9</p><p> 3.2實現(xiàn)溫濕度數(shù)據(jù)采集的軟件部分10</p><p> 3.2.1 ZIGBEE技術(shù)概述10</p><p> 3.2.2 ZIGBEE協(xié)議棧11</p><p> 3.2.3 ZIGBEE協(xié)議棧網(wǎng)絡(luò)層12</p><p> 3.2.4AODV路
5、由協(xié)議13</p><p> 3.3總體軟件結(jié)構(gòu)圖13</p><p> 3.4核心程序代碼14</p><p> 3.4.1 AODV協(xié)議源代碼分析15</p><p><b> 總結(jié)18</b></p><p><b> 參考文獻19</b><
6、/p><p><b> 致謝20</b></p><p><b> 摘要</b></p><p> 嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機為基礎(chǔ),軟硬件可定制,適用于不同應(yīng)用場合對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)已廣泛應(yīng)用于各種領(lǐng)域,如通信領(lǐng)域、工業(yè)控制、交通領(lǐng)域、醫(yī)療衛(wèi)生、消費娛樂等。
7、</p><p> 正如溫濕度采集系統(tǒng)的設(shè)計,其包括了數(shù)據(jù)的采集過程、傳輸過程以及數(shù)據(jù)的處理過程是嵌入式系統(tǒng)在國家森林火災(zāi)的防范、大型糧庫的溫濕度控制以及家庭溫濕度控制等方面的典型應(yīng)用。由于傳統(tǒng)的有線方式在數(shù)據(jù)的檢測、采集、以及傳輸過程中需要大量的節(jié)點且這些節(jié)點不集中,因此需要大量布線。為了避免該問題本設(shè)計主要從無線傳感方向進行改進,本設(shè)計對溫濕度的讀取是利用CC2530的I/O(P1.0和P1.1)模擬一個類
8、IIC的過程,對光照的采集則使用內(nèi)部的AINO通道。該系統(tǒng)使用CC2530讀取溫濕度傳感器SHT10的溫度和濕度數(shù)據(jù),并通過CC2530內(nèi)部的ADC得到光照傳感器的數(shù)據(jù)。最后將采樣得到的數(shù)據(jù)轉(zhuǎn)換然后在LCD上顯示。</p><p> 關(guān)鍵字:溫濕度的采集 CC2530 溫濕度傳感器SHT10</p><p><b> 前言</b></p><
9、;p> 本設(shè)計是一種基于CC2530和數(shù)字溫濕度傳感器的溫濕度采集系統(tǒng)。即該系統(tǒng)是采用Zigbee無線通信技術(shù)結(jié)合傳感器,并通過運用Zigbee協(xié)議架構(gòu)組建無線傳感網(wǎng)絡(luò),來實現(xiàn)主從節(jié)點的數(shù)據(jù)采集和傳輸?shù)?。同時,需要在網(wǎng)絡(luò)層通過AODV路由協(xié)議來進行節(jié)點間的連接以及數(shù)據(jù)的收發(fā)??傊跓o線傳感技術(shù)的無線網(wǎng)絡(luò)傳感器是一種將傳感器、控制器、計算能力、通信能力完美的結(jié)合于一身的嵌入式設(shè)備。</p><p>
10、它們跟外界的物理環(huán)境交互,實時的采集信息,并且將收集到的信息通過無線傳感器網(wǎng)絡(luò)傳送給遠程用戶。無線網(wǎng)絡(luò)傳感器一般是由一個低功耗的微控制器(MCU)和若干個存儲器、無線電/光通信裝置、傳感器等組件所集成的,通過傳感器、動臂機構(gòu)、以及通信裝置和它們所處的外界物理環(huán)境進行交互。由此而引入的無線傳感網(wǎng)絡(luò)更是一種開創(chuàng)了新的應(yīng)用領(lǐng)域的新興概念和技術(shù),廣泛被應(yīng)用于醫(yī)療領(lǐng)域、大規(guī)模環(huán)境監(jiān)測、智能建筑、戰(zhàn)場監(jiān)視、智能家裝、工業(yè)自動化和大區(qū)域內(nèi)的目標追蹤等
11、領(lǐng)域。</p><p> 如,在醫(yī)院Zigbee網(wǎng)絡(luò)可以幫助醫(yī)生及時并準確的收集急診病人的信息及相關(guān)度檢查結(jié)果,從而快速準確的作出診斷;同時,對一些特殊的病人,可讓其攜帶Zigbee終端而對其進行24小時的體溫、脈搏控制。生命誠可貴,時間價更高!</p><p> 又如,在工業(yè)控制領(lǐng)域內(nèi),就可以很好的通過無線傳感網(wǎng)絡(luò)實現(xiàn)廠房內(nèi)不同區(qū)域的溫濕度的檢測及控制,以及相關(guān)機器運轉(zhuǎn)狀況是否正常的
12、有關(guān)信息,統(tǒng)計庫存量,等等。</p><p> 總的來說,我們的工作及生活在無形的改變著,變得更精致更高效更美麗。而這無形中進行著的神奇改變的關(guān)鍵莫過于高端的技術(shù)——嵌入式系統(tǒng)開發(fā)技術(shù)及無線技術(shù)。</p><p><b> 一 基本原理</b></p><p> 1.1 溫濕度數(shù)據(jù)采集原理</p><p> 溫
13、濕度探頭直接使用IIC接口進行控制,本實驗將使用CC2530 讀取溫濕度傳感器SHT10的溫度和濕度數(shù)據(jù),并將采樣到的數(shù)據(jù)轉(zhuǎn)換然后再LCD顯示。其中對溫濕度的讀取是利用CC2530的I/O(P1.0和P1.1)模擬一個類IIC得過程。其中該系統(tǒng)所使用的SHT10 是一款高度集成的溫濕度傳感器芯片, 提供全標定的數(shù)字輸出。它采用專利的CMOSens 技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電容性聚合體測濕敏感元件、
14、一個用能隙材料制成的測溫元件,并在同一芯片上,與 14 位的 A/D 轉(zhuǎn)換器以及串行接口電路實現(xiàn)無縫連接。</p><p> 1.1.1SHT10 引腳特性</p><p> 1. VDD,GND SHT10 的供電電壓為 2.4~5.5V。傳感器上電后,要等待 11ms 以越過“休眠”狀態(tài)。在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個 100nF 的電容,用以去
15、耦濾波。</p><p> 2. SCK 用于微處理器與 SHT10 之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小 SCK 頻率。</p><p> 3. DATA 三態(tài)門用于數(shù)據(jù)的讀取。DATA 在 SCK 時鐘下降沿之后改變狀態(tài),并僅在 SCK 時鐘上升沿有效。數(shù)據(jù)傳輸期間,在 SCK 時鐘高電平時,DATA 必須保持穩(wěn)定。為避免信號沖突,微處理器應(yīng)驅(qū)動 DATA 在
16、低電平。需要一個外部的上拉電阻(例如:10kΩ)將信號提拉至高電平。上拉電阻通常已包含在微處理器的 I/O 電路中。</p><p> ?。?)向 SHT10 發(fā)送命令:</p><p> 用一組“ 啟動傳輸”時序,來表示數(shù)據(jù)傳輸?shù)某跏蓟?。它包括:?SCK 時鐘高電平時DATA 翻轉(zhuǎn)為低電平,緊接著 SCK 變?yōu)榈碗娖?,隨后是在 SCK 時鐘高電平時 DATA 翻轉(zhuǎn)為高電平。后續(xù)命令包
17、含三個地址位(目前只支持“000”,和五個命令位。SHT10 會以下述方)式表示已正確地接收到指令:在第 8 個 SCK 時鐘的下降沿之后,將 DATA 拉為低電平(ACK位)。在第 9 個 SCK 時鐘的下降沿之后,釋放 DATA(恢復(fù)高電平)。</p><p> ?。?)測量時序(RH 和 T):</p><p> 發(fā)布一組測量命令(‘00000101’表示相對濕度 RH,‘0000
18、0011’表示溫度 T)后,控制器要等待測量結(jié)束。這個過程需要大約 11/55/210ms,分別對應(yīng) 8/12/14bit 測量。確切的時間隨內(nèi)部晶振速度,最多有±15%變化。SHTxx 通過下拉 DATA 至低電平并進入空閑模式,表示測量的結(jié)束。控制器在再次觸發(fā) SCK 時鐘前,必須等待這個“數(shù)據(jù)備妥”信號來讀出數(shù)據(jù)。檢測數(shù)據(jù)可以先被存儲,這樣控制器可以繼續(xù)執(zhí)行其它任務(wù)在需要時再讀出數(shù)據(jù)。接著傳輸 2 個字節(jié)的測量數(shù)據(jù)和 1
19、 個字節(jié)的 CRC 奇偶校驗。 需要通過下拉 DATA 為低電平,uC以確認每個字節(jié)。所有的數(shù)據(jù)從 MSB 開始,右值有效(例如:對于 12bit 數(shù)據(jù),從第 5 個SCK 時鐘起算作 MSB; 而對于 8bit 數(shù)據(jù), 首字節(jié)則無意義)。用 CRC 數(shù)據(jù)的確認位,表明通訊結(jié)束。如果不使用 CRC-8 校驗,控制器可以在測量值 LSB 后,通過保持確認位 ack 高電平, 來中止通訊。在測量和通訊結(jié)束后,SHTxx 自動轉(zhuǎn)入休眠模式。&
20、lt;/p><p> (3)通訊復(fù)位時序:</p><p> 如果與 SHTxx 通訊中斷,下列信號時序可以復(fù)位串口:當 DATA 保持高電平時,觸發(fā)SCK 時鐘 9 次或更多。在下一次指令前,發(fā)送一個“傳輸啟動”時序。這些時序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。</p><p><b> 二 系統(tǒng)分析</b></p><
21、;p> 嵌入式溫濕度采集系統(tǒng)是一種基于CC2530和數(shù)字溫濕度傳感器SHT10的溫濕度采集系統(tǒng)。該系統(tǒng)采用Zigbee無線通信技術(shù)結(jié)合傳感器,通過運用Zigbee協(xié)議架構(gòu)組建無線傳感網(wǎng)絡(luò),實現(xiàn)主從節(jié)點的數(shù)據(jù)采集和傳輸,以及一點對多點,兩點之間的通信。并且也是基于Zigbee協(xié)議棧的中心節(jié)點和終端節(jié)點的協(xié)議傳輸,主要是從Zigbee協(xié)議棧網(wǎng)絡(luò)層里AODV路由協(xié)議著手,在網(wǎng)絡(luò)層通過AODV路由協(xié)議進行節(jié)點間的連接以及數(shù)據(jù)的收發(fā)。&l
22、t;/p><p><b> 2.1具體步驟描述</b></p><p> 1、給智能主板供電(USB 外接電源或 2 節(jié)干電池); </p><p> 2、將一個無線節(jié)點模塊插入到帶 LCD 的智能主板的相應(yīng)位置; </p><p> 3、將溫濕度及光電傳感器模塊插入到智能主板的傳感及控制擴展口位置; </p&
23、gt;<p> 4、將 CC2530 仿真器的一端通過 USB 線(A 型轉(zhuǎn) B 型)連接到 PC 機,另一端通過 10Pin下載線連接到智能主板的 CC2530 JTAG 口(J203); </p><p> 5、將智能主板上電源開關(guān)撥至開位置。按下仿真器上的按鈕,仿真器上的指示燈為綠色時,表示連接成功; </p><p> 6、使用 IAR7.51 打開“…\OUR
24、S_CC2530LIB\lib10(HumiTempLight)\ IAR_files”下的HumiTempLight.eww 文件,下載運行程序; </p><p> 7、觀察 LCD 上溫度、濕度和光照強度的變化; </p><p> 8、用一個物體擋住光照傳感器的光線,觀察 LCD 上光照強度數(shù)據(jù)的變化; </p><p> 9、向溫濕度傳感器吹一口氣體
25、,觀察 LCD 上溫濕度數(shù)據(jù)的變</p><p><b> 2.2 程序流程圖</b></p><p> 圖1-1 系統(tǒng)程序流程圖</p><p><b> 三 詳細設(shè)計</b></p><p> 本設(shè)計是基于CC2530的溫濕度數(shù)據(jù)采集系統(tǒng)設(shè)計。因此,其重點是溫濕度數(shù)據(jù)采集設(shè)計的實現(xiàn),主
26、要可分為二大部分,一是實現(xiàn)無線傳感的硬件模塊;二是實現(xiàn)無線傳感的軟件支持,也就是基于Zigbee協(xié)議架構(gòu)的編程。</p><p> 實現(xiàn)溫濕度數(shù)據(jù)采集的硬件部分主要包括:無線傳感基本結(jié)構(gòu)、無線傳感實現(xiàn)原理、本設(shè)計所使用的實驗箱以及軟件支持、常見的無線傳感模塊以及實現(xiàn)基于CC2530的溫濕度采集系統(tǒng)節(jié)點模塊設(shè)計。</p><p> 實現(xiàn)溫濕度數(shù)據(jù)采集的軟件部分主要包括:Zigbee協(xié)議棧
27、整體架構(gòu)、Zigbee協(xié)議棧網(wǎng)絡(luò)層、AODV路由協(xié)議。</p><p> 3.1實現(xiàn)溫濕度數(shù)據(jù)采集的硬件部分</p><p> 嵌入式溫濕度采集系統(tǒng)設(shè)計的硬件部分可以大體有無線傳感基本結(jié)構(gòu)、無線傳感實現(xiàn)原理、本設(shè)計所使用的實驗箱以及軟件支持、常見的無線傳感模塊以及實現(xiàn)基于CC2530的溫濕度采集系統(tǒng)節(jié)點模塊設(shè)計等組成。其具體內(nèi)容如下:</p><p> 3.1
28、.1無線傳感基本結(jié)構(gòu)及實現(xiàn)原理</p><p> 無線傳感器網(wǎng)絡(luò)在設(shè)計目標方面是以數(shù)據(jù)為中心的,在無線傳感器網(wǎng)絡(luò)中,因為節(jié)點通常運行在人無法接近的惡劣甚至危險的遠程環(huán)境中,所以除了少數(shù)節(jié)點需要移動以外,大部分節(jié)點都是靜止不動的。在被監(jiān)測區(qū)域內(nèi),節(jié)點任意散落,節(jié)點除了需要完成感測特定的對象以外,還需要進行簡單的計算,維持互相之間的網(wǎng)絡(luò)連接等功能。并且由于能源的無法替代以及低功耗的多跳通信模式節(jié),設(shè)計無線傳感節(jié)點時
29、,有效的延長網(wǎng)絡(luò)的生命周期以及節(jié)點的低功耗成為無線傳感器網(wǎng)絡(luò)研究的核心問題,其無線傳感節(jié)點模型如下圖1-2所示。</p><p> 無線傳感網(wǎng)絡(luò)的建立是基于傳感器加無線傳輸模塊的,傳感器采集的數(shù)據(jù),簡單處理后經(jīng)過無線傳輸模塊傳到服務(wù)器或應(yīng)用終端。目標、觀測節(jié)點、傳感節(jié)點和感知視場是無線傳感器網(wǎng)絡(luò)所包括的4個基本實體對象。大量傳感節(jié)點隨機部署,單個節(jié)點經(jīng)過初始的通信和協(xié)商,通過自組織方式自行配置,形成一個傳輸信息
30、的單跳鏈接或一系列無線網(wǎng)絡(luò)節(jié)點組成的網(wǎng)絡(luò),協(xié)同形成對目標的感知視場。傳感節(jié)點檢測的目標信號經(jīng)過傳感器本地簡單處理后通過單播或廣播以多跳的方式通過鄰近傳感節(jié)點傳輸?shù)接^測節(jié)點。用戶和遠程任務(wù)管理單元則能夠通過衛(wèi)星通信網(wǎng)絡(luò)或Internet等外部網(wǎng)絡(luò),與觀測節(jié)點進行數(shù)據(jù)信息的交互。觀測節(jié)點向網(wǎng)絡(luò)發(fā)布查詢請求和控制指令,接收傳感節(jié)點返回的目標信息。</p><p> 圖1-2 無線傳感節(jié)點模型</p>&
31、lt;p> 3.1.2使用的實驗箱以及軟件支持</p><p> 物聯(lián)網(wǎng)創(chuàng)新實驗系統(tǒng)IOV-T-2530采用系列傳感器模塊和無線節(jié)點模塊組成無線傳感網(wǎng),擴展嵌入式網(wǎng)關(guān)實現(xiàn)廣域訪問,可實現(xiàn)多種物聯(lián)網(wǎng)構(gòu)架,完成物聯(lián)網(wǎng)相關(guān)的各種傳感器的信息采集、無線信號收發(fā)、Zigbee網(wǎng)絡(luò)通訊、組件控制全過程。該工具箱提供了無線傳感網(wǎng)通信模塊、基本的傳感器及控制器模塊、嵌入式網(wǎng)關(guān)、計算機服務(wù)器參考軟件等。</p>
32、;<p> 3.1.3實現(xiàn)溫濕度采集系統(tǒng)節(jié)點模塊設(shè)計</p><p> 實驗系統(tǒng)包含4個無線傳感網(wǎng)通信節(jié)點和一個無線網(wǎng)絡(luò)協(xié)調(diào)器。其中具體情況如下:</p><p> 無線節(jié)點模塊:主要有射頻單片機構(gòu)成,MCU是TI的CC2530,2.4G載頻,棒狀天線。</p><p> 傳感器及控制模塊:系列傳感器模塊,包括溫濕度傳感模塊、繼電器模塊和RS2
33、32模塊等,也可以通過總線擴展用戶自己的傳感器及控制器部件。</p><p> 電源板或智能主板:即實現(xiàn)無線節(jié)點模塊與傳感及控制模塊的連接,又實現(xiàn)系統(tǒng)供電,目前主要有兩節(jié)電池供電,保留外接電源接口,可以直接有直流電供電。</p><p> 3.2實現(xiàn)溫濕度數(shù)據(jù)采集的軟件部分</p><p> 實現(xiàn)溫濕度數(shù)據(jù)采集的軟件部分主要有Zigbee技術(shù)概述、Zigbee
34、協(xié)議棧整體架構(gòu)、Zigbee協(xié)議棧網(wǎng)絡(luò)層、AODV路由協(xié)議等幾部分組成。而Zigbee協(xié)議棧網(wǎng)絡(luò)層主要包括: 網(wǎng)絡(luò)層概述、網(wǎng)絡(luò)層所實現(xiàn)功能、網(wǎng)絡(luò)層中常用路由協(xié)議。AODV路由協(xié)議主要包括:協(xié)議概述、協(xié)議的基本原理、AODV路由協(xié)議消息控制幀。一下將是溫濕度數(shù)據(jù)采集的軟件部分各部分的具體介紹:</p><p> 3.2.1 ZIGBEE技術(shù)概述</p><p> Zigbee技術(shù)的使用與
35、發(fā)展很大程度上彌補了無線通信市場上低功耗、低成本、低速率的空缺。同時隨著Zigbee技術(shù)的深入發(fā)展和應(yīng)用,越來越多的注意力和研究力量將會轉(zhuǎn)到應(yīng)用的設(shè)計、實現(xiàn)互聯(lián)互通測試和市場的推廣等方面。Zigbee技術(shù)的關(guān)鍵點是發(fā)展一種易布建、低成本、低功耗的無線網(wǎng)絡(luò)。</p><p> Zigbee技術(shù)的應(yīng)用前景非常好。Zigbee在未來的幾年里將在工業(yè)無線定位、工業(yè)控制、消費電子、汽車自動化、家庭網(wǎng)絡(luò)、樓宇自動化、醫(yī)用設(shè)
36、備控制等多個控制領(lǐng)域具有廣泛的應(yīng)用,特別是工業(yè)控制和家庭自動化,將會成為今后Zigbee芯片的主要應(yīng)用領(lǐng)域。通常符合以下條件之一的應(yīng)用,都可以考慮采用Zigbee技術(shù):</p><p> (1)網(wǎng)點多:需要數(shù)據(jù)采集或監(jiān)控的網(wǎng)點多。</p><p> (2)低傳輸量:要求傳輸?shù)臄?shù)據(jù)量不大且要求數(shù)據(jù)成本低。</p><p> ?。?)可靠性高:要求數(shù)據(jù)傳輸可靠性、全
37、性高。</p><p> ?。?)體積?。涸O(shè)備體積很小,體積較大的充電電池或者電源模塊不便放置。</p><p><b> (5)電池供電。</b></p><p> ?。?)覆蓋量大:所需檢測點監(jiān)測點多,地形復(fù)雜,需要較大的網(wǎng)絡(luò)覆蓋面積。</p><p> (7)現(xiàn)有移動網(wǎng)絡(luò)的覆蓋盲區(qū)。</p>&l
38、t;p> ?。?)遙測、遙控系統(tǒng):使用現(xiàn)存移動網(wǎng)絡(luò)進行的低數(shù)據(jù)量傳輸。</p><p> ?。?)局部區(qū)域移動目標的定位系統(tǒng):使用GPS效果差、成本高的。</p><p> Zigbee無線傳感網(wǎng)絡(luò)是基于IEEE802.15.4技術(shù)標準和Zigbee網(wǎng)絡(luò)協(xié)議而設(shè)計的無線數(shù)據(jù)傳輸網(wǎng)絡(luò),該網(wǎng)絡(luò)主要應(yīng)用在壓力過程控制數(shù)據(jù)采集、流量過程控制數(shù)據(jù)采集、溫度濕度監(jiān)控、樓宇自動化、工業(yè)控制、數(shù)據(jù)
39、中心、社區(qū)安防、設(shè)備監(jiān)控、環(huán)境數(shù)據(jù)監(jiān)控、制冷監(jiān)控、倉庫貨物監(jiān)控等方面。適用于蔬菜大棚溫度、濕度和土壤酸堿度監(jiān)控,鋼鐵冶煉溫度控制,煤氣抄表等各個領(lǐng)域。這種網(wǎng)絡(luò)主要用于無線系統(tǒng)中短距離的連接,提供傳感器網(wǎng)絡(luò)接入,能夠滿足各種傳感器的數(shù)據(jù)輸出和輸入控制的命令和信息的需求,實現(xiàn)系統(tǒng)網(wǎng)絡(luò)化、無線化。</p><p> Zigbee技術(shù)是一種應(yīng)用于各種電子設(shè)備之間的無線通信技術(shù),這種通信組網(wǎng)是基于中短距離范圍內(nèi)、低傳輸速
40、率下的。根據(jù)Zigbee技術(shù)的本質(zhì),它具有下列特性:低功耗、高度擴展性、可靠性高等。</p><p> 3.2.2 ZIGBEE協(xié)議棧</p><p> Zigbee協(xié)議棧由一組子層組成,每一層為其上層提供一定的特定服務(wù):一個數(shù)據(jù)實體提供數(shù)據(jù)傳輸服務(wù),一個管理實體提供管理、維護等服務(wù)。每個服務(wù)實體通過一個服務(wù)接入點(SAP)為其上層提供服務(wù)接口,并且每個服務(wù)接入點(SAP)提供了一系列
41、的基本服務(wù)指令來實現(xiàn)相應(yīng)的功能。Zigbee協(xié)議棧中包括應(yīng)以下各個子層:</p><p> (1)APP(Application Programming):應(yīng)用層目錄,這是用戶創(chuàng)建各種不同工程的區(qū)域,在這個目錄中包含了應(yīng)用層的內(nèi)容和這個項目的主要內(nèi)容,在協(xié)議棧里面一般是以操作系統(tǒng)的任務(wù)實現(xiàn)的。</p><p> ?。?)HAL(Hardware (H/W) Abstraction Lay
42、er):硬件層目錄,包含有與硬件相關(guān)的配置和驅(qū)動及操作函數(shù)。ZigBee硬件層通過射頻固件和射頻硬件提供了一個從MAC層以硬件層無線信道的接口。在硬件層中,包含一個硬件層管理實體(PLME),該實體通過調(diào)用硬件層的管理功能函數(shù),為硬件層管理服務(wù)提供其接口,同時,還負責(zé)維護由硬件層所管理的目標數(shù)據(jù)庫,該數(shù)據(jù)庫包含有硬件層個域網(wǎng)絡(luò)的基本信息。</p><p> ?。?)MAC:介質(zhì)接入控制子層,包含了MAC 層的參數(shù)
43、配置文件及其MAC 的LIB 庫的函數(shù)接口文件。實現(xiàn)的功能有:1、能產(chǎn)生網(wǎng)絡(luò)信標。2、支持PAN的連接和斷開連接。3、同信標保持同步。4、在對等的MAC實體之間提供一個可靠的通信鏈路。5、處理和維護GTS機制。6、信道接入采用CSMA-CA接入機制。7、支持設(shè)備的安全性。介質(zhì)訪問控制層(MAC)幀被稱為MAC協(xié)議數(shù)據(jù)單元(MPDU),其長度不超過127個字節(jié)。它具有四種不同的幀形式,即信標幀、數(shù)據(jù)幀、確認幀和命令幀。</p>
44、<p> ?。?)MT(Monitor Test):實現(xiàn)通過串口可控各層,與各層進行直接交互。</p><p> ?。?)NWK(ZigBee Network Layer):網(wǎng)絡(luò)層目錄,含網(wǎng)絡(luò)層配置參數(shù)文件及網(wǎng)絡(luò)層庫的函數(shù)接口文件,APS 層庫的函數(shù)接口。</p><p> ?。?)OSAL(Operating System (OS) Abstraction Layer):協(xié)
45、議棧的操作系統(tǒng)。</p><p> ?。?)Profile:AF(Application work) 層目錄,包含AF 層處理函數(shù)文件。</p><p> ?。?)Security:安全層目錄,安全層處理函數(shù),比如加密函數(shù)等。</p><p> ?。?)Services:地址處理函數(shù)目錄,包括著地址模式的定義及地址處理函數(shù)。</p><p>
46、 ?。?0)0Tools:工程配置目錄,包括空間劃分及ZStack 相關(guān)配置信息。</p><p> (11)ZDO(ZigBee Device Objects):ZDO 目錄。</p><p> ?。?2)ZMac: MAC 層目錄,包括MAC 層參數(shù)配置及MAC 層LIB 庫函數(shù)回調(diào)處理函數(shù)。</p><p> ?。?3)ZMain:主函數(shù)目錄,包括入口函數(shù)及
47、硬件配置文件。</p><p> ?。?4)Output:輸出文件目錄,這個EW8051 IDE 自動生成的。</p><p> 3.2.3 ZIGBEE協(xié)議棧網(wǎng)絡(luò)層</p><p> ZigBee網(wǎng)絡(luò)層必須提供一定的功能,其主要是提供一些必要的函數(shù),以保證IEEE 802.15.4-2003ZigBee協(xié)議棧的MAC層能夠正確操作,正常工作,并且為應(yīng)用層提供一
48、個合適的服務(wù)接口。為了和應(yīng)用層通信,必須向其提供接口,網(wǎng)絡(luò)層的概念包括了兩個必要的功能服務(wù)實體。它們分別為數(shù)據(jù)服務(wù)實體(NLDE)和管理服務(wù)實體(NLME)。網(wǎng)絡(luò)層數(shù)據(jù)實體(NLDE)通過網(wǎng)絡(luò)層相關(guān)的數(shù)據(jù)庫服務(wù)接入點(NLDE-SAP)提供數(shù)據(jù)傳輸服務(wù),網(wǎng)絡(luò)層管理實體(NLME)通過網(wǎng)絡(luò)層相關(guān)的管理庫服務(wù)接入點(NLME-SAP)提供網(wǎng)絡(luò)管理服務(wù),網(wǎng)絡(luò)層管理實體利用網(wǎng)絡(luò)層數(shù)據(jù)實體來獲得一些網(wǎng)絡(luò)管理任務(wù),并完成一些網(wǎng)絡(luò)的管理工作。并且,網(wǎng)
49、絡(luò)層管理實體還維護一個管理對象的數(shù)據(jù)庫,叫做網(wǎng)絡(luò)信息庫(NIB),網(wǎng)絡(luò)層管理實體完成對網(wǎng)絡(luò)信息庫(NIB)的維護和管理。</p><p> 3.2.4AODV路由協(xié)議</p><p> AODV自組織按需請求型距離向量路由協(xié)議(Ad Hoc On Demand Distance Vector,簡稱AODV),AODV采用的是逐跳轉(zhuǎn)發(fā)分組方式,在每個節(jié)點之間保存了路由請求和路由回答的結(jié)果
50、,因此路由的頭部不需要攜帶完整的路由信息,從而提高了協(xié)議的效率。算法旨在多個移動節(jié)點中建立和維護一個自啟動的,動態(tài)的,多跳路由的專屬網(wǎng)絡(luò)。它是一種按需的改進的距離向量路由協(xié)議,具有按需路由協(xié)議的特點即在AODV路由協(xié)議中,網(wǎng)絡(luò)中的每個節(jié)點在需要進行通信時才發(fā)送路由分組,而不會周期性地交互路由信息以得到所有其它主機的路由;同時具有距離向量路由協(xié)議的一些特點,即各節(jié)點路由表只維護本節(jié)點到其他節(jié)點的路由,而無需掌握全網(wǎng)拓撲結(jié)構(gòu)。網(wǎng)絡(luò)中連接的斷
51、開和異動都會影響網(wǎng)絡(luò)的拓撲結(jié)構(gòu),AODV 使得移動節(jié)點能適時對這種變化做出響應(yīng)。AODV 的操作是無自環(huán)的,并且由于解決了 Bellman-Ford“無窮計數(shù)”的問題,使得該算法在網(wǎng)絡(luò)拓撲變化時能夠快速收斂。當一個連接斷開時,AODV 會告知所有受到影響的節(jié)點,這些節(jié)點會讓用到這個連接的路由失效。AODV 的一個顯著特點是它在每個路由表項上使用了目的序列號</p><p> 3.3總體軟件結(jié)構(gòu)圖</p&g
52、t;<p> 該溫濕度數(shù)據(jù)采集系統(tǒng)是由溫濕度探頭直接以IIC接口進行控制,并用CC2530 讀取溫濕度傳感器SHT10的溫度和濕度數(shù)據(jù),并將采樣到的數(shù)據(jù)轉(zhuǎn)換然后再LCD顯示。其中對溫濕度的讀取是利用CC2530的I/O(P1.0和P1.1)模擬一個類IIC得過程,而使用的SHT10 是一款高度集成的溫濕度傳感器芯片。因此,可以將該過程劃分為三個子模塊:溫度數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、濕度數(shù)據(jù)采集模塊,其總體軟件結(jié)構(gòu)圖如圖
53、1-3所示。</p><p> 圖1-3 總體軟件結(jié)構(gòu)圖</p><p><b> 3.4核心程序代碼</b></p><p> void main()</p><p><b> {</b></p><p> int tempera;</p><
54、p> int humidity;</p><p> char s[16];</p><p> UINT8 adc0_value[2];</p><p> float num = 0;</p><p> SET_MAIN_CLOCK_SOURCE(CRYSTAL); // 設(shè)置系統(tǒng)時鐘源為 32MHz 晶體振蕩器</p
55、><p> GUI_Init(); // GUI 初始化</p><p> GUI_SetColor(1,0); // 顯示色為亮點,背景色為暗點</p><p> GUI_PutString5_7(25,6,"OURS-CC2530"); /
56、/顯示 OURS-CC2530</p><p> GUI_PutString5_7(10,22,"Temp:");</p><p> GUI_PutString5_7(10,35,"Humi:");</p><p> GUI_PutString5_7(10,48,"Light:");</p>
57、;<p> LCM_Refresh();</p><p><b> while(1)</b></p><p><b> {</b></p><p> th_read(&tempera,&humidity); //讀取溫度和濕度</p><p>
58、; sprintf(s, (char*)"%d%d C", ((INT16)((int)tempera / 10)),</p><p> ((INT16)((int)tempera % 10))); //將溫度結(jié)果轉(zhuǎn)換為字符串</p><p> GUI_PutString5_7(48,22,(char *)s); //顯示結(jié)
59、果</p><p> LCM_Refresh();</p><p> sprintf(s,(char*)"%d%d %%",((INT16)((int)humidity / 10)),</p><p> ((INT16)((int)humidity % 10))); //將濕度結(jié)果轉(zhuǎn)換為字符串</p>
60、;<p> GUI_PutString5_7(48,35,(char *)s); //顯示結(jié)果</p><p> LCM_Refresh();</p><p> 3.4.1 AODV協(xié)議源代碼分析</p><p> 1、Void AODV::recv(Packet *p, Handler*)</p><p> //判
61、斷是否是aodv包,是則調(diào)用函數(shù)recvAODV(p)</p><p> if(ch->ptype() == PT_AODV) { recvAODV(p);</p><p> //本節(jié)點產(chǎn)生的數(shù)據(jù)包,添加IP頭</p><p> if((ih->saddr() == index) && (ch->num_forwar
62、ds() == 0)) Add the IP Header</p><p> //收到本節(jié)點發(fā)送的包,說明有路由環(huán)路,丟包</p><p> else if(ih->saddr() == index) drop(p, DROP_RTR_ROUTE_LOOP);</p><p> //本節(jié)點是中間節(jié)點</p><p&
63、gt; else {//TTL是分組最多能轉(zhuǎn)發(fā)的次數(shù) if(--ih->ttl_ == 0) drop(p, DROP_RTR_TTL);</p><p> //收到的不是廣播分組,解析分組</p><p> if ( (u_int32_t)ih->daddr() != IP_BROADCAST)
64、60;rt_resolve(p);</p><p> //轉(zhuǎn)發(fā) else forward((aodv_rt_entry*) 0, p, NO_DELAY);</p><p> 2、void AODV::rt_resolve(Packet *p) {</p><p> //查找是否有到目的節(jié)點的路由 </p>
65、;<p> rt = rtable.rt_lookup(ih->daddr());</p><p> //沒有,則添加到該目的節(jié)點的路由,此時添加的路由是無效的</p><p> if(rt == 0) rt = rtable.rt_add(ih->daddr());</p><
66、p> //有效路由,則根據(jù)路由表中信息轉(zhuǎn)發(fā)分組</p><p> if(rt->rt_flags == RTF_UP) forward(rt, p, NO_DELAY);</p><p> //如果本節(jié)點是該分組的源節(jié)點,說明沒有到目的節(jié)點的路,此時發(fā)送RREQ找路</p><p> else if(ih->sadd
67、r() == index) rqueue.enque(p); sendRequest(rt->rt_dst);</p><p> //鏈路中斷,在維護中 </p><p> else if (rt->rt_flags == RTF_IN_REPAIR) rqueue.enque(p);</p><p>
68、// 本節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù)分組,但是不知道該到目的節(jié)點的路,發(fā)送RERR說明鏈路中斷</p><p> 3、else sendError(rerr, false);</p><p> //添加到目的節(jié)點的路由,此時的路由不可用,是無效的</p><p> aodv_rt_entry *rt = rtable.rt_lookup(dst);&l
69、t;/p><p> //不到發(fā)送RREQ的時間,注意文件開頭的RREQ定時器,若沒收到RREP,源節(jié)點需要定時發(fā)送RREQ</p><p> if (rt->rt_req_timeout > CURRENT_TIME) Packet::free((Packet *)p);</p><p> //AODV中多次發(fā)送RREQ,多次發(fā)
70、送RREQ后仍找不到路,則丟包</p><p> if (rt->rt_req_cnt > RREQ_RETRIES) rt->rt_req_timeout = CURRENT_TIME + MAX_RREQ_TIMEOUT; drop(buf_pkt, DROP_RTR_NO_ROUTE);</p><p> //余下
71、部分是填充路由表以及RREQ分組的內(nèi)容,不涉及實現(xiàn)的話不用了解,了解有一定難度,需要結(jié)合整個過程看</p><p> 4、鏈路中斷,需要發(fā)送RERR,通知所有受影響的節(jié)點,函數(shù)體關(guān)于填充RERR內(nèi)容,不用細看void AODV::sendError(Packet *p, bool jitter) {//</p><p> 5、周期發(fā)送Hello分組,以檢測鄰節(jié)點的連通性void AOD
72、V::sendHello() {//</p><p> 6、根據(jù)包類型調(diào)用不同函數(shù)void AODV::recvAODV(Packet *p) {//</p><p> case AODVTYPE_RREQ recvRequest(p);</p><p> case AODVTYPE_RREP: recvRepl
73、y(p);</p><p> case AODVTYPE_RERR: recvError(p);</p><p> case AODVTYPE_HELLO: recvHello(p);</p><p> 7、收到RREQvoid AODV::recvRequest(Packet *p) {/
74、/</p><p> // I'm the source - I recently heard this request.則丟棄該RREQ</p><p> if(rq->rq_src == index) Packet::free(p);</p><p> if (id_loo
75、kup(rq->rq_src, rq->rq_bcast_id)) Packet::free(p);</p><p> // * Cache the broadcast ID ,用于判斷是否已收到過該RREQ</p><p> id_insert(rq->rq_src, rq->rq_bcast_id);</p>
76、<p> //查找是否有到源節(jié)點的路由,有則更新,無則添加a</p><p> //* Find out whether any buffered packet can benefit from the * reverse route.緩存中是否有到源節(jié)點的數(shù)據(jù)分組,有,則建立好路由后開始發(fā)送數(shù)據(jù)</p><p> //查找是否有到目的節(jié)點的有效路由,有則向源節(jié)點回復(fù)RRE
77、P,沒有則繼續(xù)轉(zhuǎn)發(fā)該RREQ,注意轉(zhuǎn)發(fā)前需要更新RREQ中部分內(nèi)容</p><p> 8、void AODV::sendReply(nsaddr_t ipdst, u_int32_t hop_count, nsaddr_t rpdst, u_int32_t rpseq, u_int32_t lifetime, double timestamp) {</p><p> //填充RREP內(nèi)
78、容</p><p> 9、void AODV::recvReply(Packet *p) {</p><p> //查找是否有到目的節(jié)點的路由,沒有則建立,否則更新</p><p> //如果是RREP的目的節(jié)點,即RREQ的源節(jié)點則建立到目的節(jié)點的路;否則根據(jù)路由表中到源節(jié)點的路由(此路由在發(fā)送RREQ過程中已建立)轉(zhuǎn)發(fā)該RREP</p>
79、;<p> 10、收到RERR,查看有哪些路徑受到中斷鏈路的影響,更新RERR內(nèi)容,并向受影響的節(jié)點發(fā)送該RERRvoid AODV::recvError(Packet *p) {</p><p><b> 總結(jié)</b></p><p> 在本次嵌入式系統(tǒng)開發(fā)技術(shù)課程設(shè)計中,主要目的是設(shè)計一個基于CC2530的溫濕度數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)是一個采用C
80、C2530無線單片機進行溫濕度的數(shù)據(jù)采集,并且結(jié)合Zigbee協(xié)議架構(gòu)進行編程的設(shè)計,主要是用C51實現(xiàn)基于CC2530的溫濕度數(shù)據(jù)采集系統(tǒng)模塊的設(shè)計,并在IAR集成環(huán)境開發(fā)環(huán)境中進行基于Zigbee架構(gòu)的編程,節(jié)點模塊的調(diào)試,最后,實現(xiàn)無線傳感網(wǎng)絡(luò)的構(gòu)建。</p><p> 值得一說的是在這為期二周的嵌入式系統(tǒng)開發(fā)技術(shù)課程設(shè)計中我們收獲了不少。我們不僅學(xué)習(xí)了如何使用CC2530讀取溫濕度傳感器SHT10的溫濕
81、度數(shù)據(jù),而且了解了如何通過CC2530內(nèi)部的ADC得到光照傳感器的數(shù)據(jù)。甚至也了解了一些無線傳感器的知識??傊?,我覺得本次訓(xùn)練讓我了解了課本上不曾提到的知識。因此,這次課程設(shè)計訓(xùn)練對將來從事這一方面工作的同學(xué)尤為重要,這等于讓我們提前對這方面的知識有了進一步的認識。當然,在這次訓(xùn)練過程中也遇到了很多實際問題,不過在老師的進一步講解之后,我們逐步認識和理解了其中的關(guān)鍵,而且又對所學(xué)的理論知識有了升華。</p><p&g
82、t; 同時本次訓(xùn)練,也在一定方面加深了我對所學(xué)過的各種理論的認識和理解,并在一定程度上掌握并會運用。更為難得的是,在這次訓(xùn)練過程中,屢屢碰見一些問題,在解決這些問題的過程中,不斷加強了我對嵌入式系統(tǒng)的理解。對于一些自己不清楚,不明白但平時又很難發(fā)現(xiàn)的知識點有了一次全面的鞏固與復(fù)習(xí)。在大學(xué)階段,理論的學(xué)習(xí)和實踐是密不可分的。離開了實踐的理論如同空中閣樓。與此同時,理論是需要實踐來不來不斷完的。理論與實踐就如同魚與水,是相互依存的。同時,
83、在與同學(xué)共同解決一些問題的過程中,提高了團隊協(xié)作精神。</p><p><b> 參考文獻</b></p><p> [1]趙宏、曹潔.Linux系統(tǒng)指南.成都:西南交通大學(xué)出版社,2008.</p><p> [2]張曉林,崔迎煒 .嵌入式系統(tǒng)設(shè)計與實現(xiàn).北京:北京航空航天大學(xué)出版社,2006.</p><p>
84、 [3]陳文智. 嵌入式系統(tǒng)開發(fā)原理與實踐.北京:清華大學(xué)出版社 ,2005.</p><p> [4]王宜懷、劉曉升.嵌入式技術(shù)基礎(chǔ)與實踐.北京:清華大學(xué)出版社,2007.</p><p> [5]劉洪濤、孫天澤.嵌入式技術(shù)與設(shè)計.北京:人民郵電出版社,2009. </p><p> [6]陳渝.嵌入式系統(tǒng)原理及應(yīng)用開發(fā).北京:機械工業(yè)出版社,2002.&
85、lt;/p><p> [7]張石. 嵌入式系統(tǒng)技術(shù)教程.北京:人民郵電出版社,2009.</p><p><b> 致謝</b></p><p> 通過二周的嵌入式系統(tǒng)開發(fā)技術(shù)課程設(shè)計,我們真的學(xué)習(xí)到了很多東西,不僅僅是嵌入式系統(tǒng)方面的理論知識,還有許多技能。如如何找一些有用的相關(guān)材料,如何刪選有價值的部分等等。當然,對于理論知識如此欠缺的我
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于 cc2530 溫濕度采集與傳輸系統(tǒng)設(shè)計實現(xiàn)
- 基于arm的溫濕度采集系統(tǒng)
- 基于51單片機的cc1100無線溫濕度采集系統(tǒng)設(shè)計[開題報告]
- 課程設(shè)計--溫濕度傳感器
- 基于cc2530的溫室無線采集與控制系統(tǒng)設(shè)計與實現(xiàn)
- 基于CC2530的遠距離數(shù)據(jù)采集系統(tǒng)設(shè)計與實現(xiàn).pdf
- 集成電路課程設(shè)計 --溫濕度光照采集傳輸控制
- 基于gsm短信的溫濕度采集系統(tǒng)硬件設(shè)計 開題報告
- 基于物聯(lián)網(wǎng)的溫濕度信息采集系統(tǒng)設(shè)計
- 基于單片機的cc1100無線溫濕度采集系統(tǒng)設(shè)計[任務(wù)書]
- 基于cc2530的無線信道監(jiān)測節(jié)點設(shè)計[開題報告]
- 基于Arduino的溫濕度信息采集系統(tǒng)的設(shè)計.pdf
- 開題報告--溫濕度檢測系統(tǒng)設(shè)計
- 開題報告——基于gsm短信的溫濕度采集系統(tǒng)軟件設(shè)計
- 基于avr單片機的溫濕度采集系統(tǒng)
- 基于CC2530的無線測溫系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 基于cc2530的無線傳感網(wǎng)絡(luò)系統(tǒng)研究
- 嵌入式系統(tǒng)開發(fā)技術(shù)課程設(shè)計-嵌入式溫濕度采集系統(tǒng)設(shè)計
- 基于CC2530的社區(qū)無線抄表系統(tǒng).pdf
- 溫濕度監(jiān)測系統(tǒng)【開題報告】
評論
0/150
提交評論