




已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
目錄題目:基于嵌入式的室內(nèi)環(huán)境信息采集控制演示系統(tǒng)設(shè)計1目錄2摘要3關(guān)鍵詞3前言3系統(tǒng)分析及其設(shè)計4一、基本原理:4二、系統(tǒng)方案設(shè)計5三、總體設(shè)計7四、系統(tǒng)測試31總結(jié)31參考文獻(xiàn)32致謝32基于嵌入式的室內(nèi)環(huán)境信息采集控制演示系統(tǒng)設(shè)計摘要 智能家居已然成為一個熱門話題,而室內(nèi)環(huán)境監(jiān)測是其中不可或缺的一個重要組成部分.加之嵌入式和無線傳感技術(shù)已經(jīng)較為成熟,因此,基于嵌入式系統(tǒng)的室內(nèi)環(huán)境監(jiān)測系統(tǒng)是可以實現(xiàn)的. 基于嵌入式的無線傳感網(wǎng)絡(luò)是多學(xué)科的高度交叉,知識的高度集成的前沿?zé)狳c研究領(lǐng)域。它通過各類集成化的微型傳感器協(xié)作地實時監(jiān)測,感知和采集各種環(huán)境或監(jiān)測對象的信息,這些信息通過無線方式被發(fā)送,并以自組多跳的網(wǎng)絡(luò)方式傳送到用戶終端無線傳感器網(wǎng)絡(luò)的特性決定了其不需要較高的傳輸帶寬,而要求較低的傳輸延時和極低的功率消耗。IEEES02154ZigBee技術(shù)是近年來通信領(lǐng)域中的研究熱點,具有低成本、低功耗、低速率、低復(fù)雜度的特點和高可靠性、組網(wǎng)簡單、靈活等優(yōu)勢,逐漸成為無線傳感器網(wǎng)絡(luò)事實上的國際標(biāo)準(zhǔn)。此次課程設(shè)計并實現(xiàn)了用無線傳感器網(wǎng)絡(luò)構(gòu)成的分布式溫度濕度監(jiān)控系統(tǒng)。關(guān)鍵詞:嵌入式、智能家居、ZIGBEE、串口通信前言 家居環(huán)境是指家庭團聚、休息、學(xué)習(xí)和家務(wù)勞動的環(huán)境。家居環(huán)境條件的好壞,直接影響著居民的發(fā)病率和死亡率。城市居民每天在室內(nèi)工作、學(xué)習(xí)和生活的時間占全天時間的90%左右,因此,居室環(huán)境與人類健康和兒童生長發(fā)育的關(guān)系極為密切。隨著人們對健康的不斷重視,加強對家居環(huán)境的環(huán)境狀況的實時監(jiān)測與治理,為人們提供一個安全、健康、舒適的生活環(huán)境,已經(jīng)成為十分迫切的市場需求.嵌入式技術(shù)的發(fā)展,為環(huán)境環(huán)境檢測提供了更進一步的保障?;谇度胧降沫h(huán)境信息采集系統(tǒng)包含感知層、傳輸層、應(yīng)用層三個層面;傳輸層常見的有溫濕度、煙感、一氧化碳、壓力等嵌入式傳感器模塊,傳輸層包括有線通信和無線通信兩部分,應(yīng)用層包括各種終端。在室內(nèi)環(huán)境監(jiān)測領(lǐng)域,以嵌入式技術(shù)為基礎(chǔ),結(jié)合ZigBee技術(shù)可以實現(xiàn)、準(zhǔn)確、完整、可靠的反應(yīng)環(huán)境信息,做到實時監(jiān)控。系統(tǒng)分析及其設(shè)計一、基本原理:溫度傳感器將被測點的溫度采集后輸出的模擬信號逐步送往放大電路、低通濾波器以及 A/D 轉(zhuǎn)換器(即信號調(diào)理電路),然后再單片機的控制下將 A/D 轉(zhuǎn)換器輸出的數(shù)字信號傳送到無線收發(fā)芯片中,并通過芯片的調(diào)制處理后由芯片內(nèi)部的天線發(fā)送到上位機機監(jiān)測軟件上,在上位機模塊上,發(fā)來的數(shù)據(jù)由單片機控制的無線收發(fā)芯片接收并解調(diào),最后通過接口芯片發(fā)送到 PC 機中進行顯示和處理。溫度傳感器被用在終端節(jié)點上,當(dāng)上電后,溫度傳感器就是能夠獲取環(huán)境中某個地方溫度的敏感元器件,它可以將環(huán)境中的溫度或者是與溫度相關(guān)的參量信息轉(zhuǎn)換成電信號,我們可以根據(jù)這些電信號的強弱來識別被測點在環(huán)境中的溫度數(shù)據(jù)。 系統(tǒng)方案設(shè)計 系統(tǒng)設(shè)計需求濕度傳感器和溫度傳感器采集到數(shù)據(jù)后,通過給RS232串口增加無線傳輸功能,替代設(shè)備電纜線進行無線傳輸, 無線溫度采集系統(tǒng)改變了傳統(tǒng)有線的數(shù)據(jù)采集系統(tǒng)搭建布線困難,監(jiān)測區(qū)域受限等諸多不足。要求設(shè)計的短距離無線通信系統(tǒng)具有功耗少,性價比高,系統(tǒng)維護快捷方便,而且通過在傳感器模塊上添加 FLASH 存儲設(shè)備,使得數(shù)據(jù)采集工作能夠擺脫對監(jiān)測過程網(wǎng)絡(luò)輻射范圍的限制,可應(yīng)用到許多的場合更好的改善采集工作的便捷行。通過與其他通信技術(shù)(如 GSMGPRS)的無縫接合,能夠?qū)崿F(xiàn)采集數(shù)據(jù)的遠(yuǎn)程傳輸,滿足對數(shù)據(jù)采集區(qū)域的遠(yuǎn)程監(jiān)控串口傳輸設(shè)計為雙向全雙工,無硬件流控制,強制允許OTA(多條)時間和丟包重傳。2、系統(tǒng)方案設(shè)計方案一: 使用目前已經(jīng)非常成熟且廣泛應(yīng)用的藍(lán)牙技術(shù),能在包括移動電話、PDA、無線耳機、筆記本電腦、相關(guān)外設(shè)等眾多設(shè)備之間進行無線信息交換。利用“藍(lán)牙”技術(shù),能夠有效地簡化移動通信終端設(shè)備之間的通信,也能夠成功地簡化設(shè)備與因特網(wǎng)Internet之間的通信,從而數(shù)據(jù)傳輸變得更加迅速高效,為無線通信拓寬道路。藍(lán)牙采用分散式網(wǎng)絡(luò)結(jié)構(gòu)以及快跳頻和短包技術(shù),支持點對點及點對多點通信,工作在全球通用的2.4GHz ISM(即工業(yè)、科學(xué)、醫(yī)學(xué))頻段。其數(shù)據(jù)速率為1Mbps。采用時分雙工傳輸方案實現(xiàn)全雙工傳輸。方便快捷且不會遇到未知的技術(shù)難題.方案二:選擇TI公司的2.4GHz片上系統(tǒng)解決方案CC2530,CC2530是用于IEEES02.15.4、Zigbee和RF4CE應(yīng)用的一個片上系統(tǒng)解決方案,它能以較低的總成本建立強大的網(wǎng)絡(luò)節(jié)點。CC2530結(jié)合了先進的RF收發(fā)器性能,業(yè)界標(biāo)準(zhǔn)的增強型8051內(nèi)核,使操作更容易,具備不同的運行模式,尤其適用于低功耗的系統(tǒng)需求。3、系統(tǒng)方案選擇通過對比以上兩種方案開發(fā)的難易程度、開發(fā)周期和現(xiàn)有的實驗環(huán)境我們選擇方案二。無線溫度采集系統(tǒng)改變了傳統(tǒng)有線的數(shù)據(jù)采集系統(tǒng)搭建布線困難,監(jiān)測區(qū)域受限等諸多不足。ZigBee這種新興的短距離無線通信系統(tǒng)具有功耗少,性價比高,系統(tǒng)維護快捷方便,而且通過在傳感器模塊上添加 FLASH 存儲設(shè)備,使得數(shù)據(jù)采集工作能夠擺脫對監(jiān)測過程網(wǎng)絡(luò)輻射范圍的限制,可應(yīng)用到許多的場合更好的改善采集工作的便捷行。通過與其他通信技術(shù)(如 GSMGPRS)的無縫接合,能夠?qū)崿F(xiàn)采集數(shù)據(jù)的遠(yuǎn)程傳輸,滿足對數(shù)據(jù)采集區(qū)域的遠(yuǎn)程監(jiān)控。一般以 ZigBee 技術(shù)為核心的無線溫度采集系統(tǒng)的工作過程為:協(xié)調(diào)器節(jié)點首先應(yīng)搭建網(wǎng)絡(luò),等待各自終端采集節(jié)點的入網(wǎng)請求;終端節(jié)點經(jīng)過驗證加入網(wǎng)絡(luò)后,把溫度傳感器采集到的數(shù)據(jù)通過無線網(wǎng)絡(luò)上傳傳輸給協(xié)調(diào)器節(jié)點;協(xié)調(diào)器節(jié)點接收到數(shù)據(jù)包后,進行數(shù)據(jù)包解析,并通過串口將溫度信息以及子節(jié)點地址等有效信息存儲并顯示在監(jiān)控界面上。三、總體設(shè)計無線傳感器溫度測量系統(tǒng)主要由單個 ZigBee 協(xié)調(diào)器、單部 PC 機和放置在各處的溫度采集節(jié)點ZigBee 終端設(shè)備組成。ZigBee 協(xié)調(diào)器與各個終端節(jié)點形成了一個 ZigBee 星型網(wǎng)絡(luò)。整個無線溫度采集系統(tǒng)的拓?fù)浣Y(jié)構(gòu)圖如圖 1所示。各處的溫度采集節(jié)點ZigBee 終端設(shè)備組成。CC2530芯片的有效通信半徑為 100m 時,終端節(jié)點可以安置在以協(xié)調(diào)器為中心100m 半徑范圍內(nèi)。終端數(shù)據(jù)采集節(jié)點的結(jié)構(gòu)較為簡化,僅由一個 CC2530 模塊,F(xiàn)lash 存儲,2 節(jié) 1.5V 電池和溫度傳感器組成,各個終端節(jié)點被初始化為無信標(biāo)網(wǎng)絡(luò)中的終端設(shè)備。終端設(shè)備上電復(fù)位后,便啟動搜索指定信道上的ZigBee協(xié)調(diào)器,并發(fā)送連接請求,終端設(shè)備在成功入網(wǎng)后,將被賦予一個 16 位短地址,在以后網(wǎng)絡(luò)中的通信都以這個 16 位的短地址作為節(jié)點的標(biāo)識;啟動休眠定時器,間隔10 秒鐘喚醒一次,醒來后使用一種簡單的非時隙 CSMA- CA,通過競爭機制取得信道使用權(quán),自己向協(xié)調(diào)器節(jié)點發(fā)送請求數(shù)據(jù)。利用模塊上的溫度傳感器模塊檢測環(huán)境溫度,并上傳給協(xié)調(diào)器節(jié)點,然后立即再次進入休眠狀態(tài),最大限度地減少能耗,延長終端節(jié)點電源續(xù)航時間,同時也可以延伸采集范圍,即利用 ZigBe網(wǎng)絡(luò)的自組織性我們可以攜帶輕巧的終端數(shù)據(jù)采集節(jié)點到實際測量區(qū)域完成數(shù)據(jù)采集工作,如果超出了無線網(wǎng)絡(luò)可以支持的傳輸范圍,那可以將數(shù)據(jù)暫時存儲在 Flash 存儲器中。網(wǎng)絡(luò)中的協(xié)調(diào)器節(jié)點負(fù)責(zé)搜集各溫度采集節(jié)點的信息,并將信息快速的通過 RS232 串口按事先定義好的格式上傳 PC 機,隨即解析并顯示出來。1、總體設(shè)計框圖如下:圖1 無線溫濕度采集系統(tǒng)框圖2、硬件設(shè)計實物圖如下:2.1CC2530郵票孔節(jié)點模塊2.2無線節(jié)點模塊2.3溫濕度采集模塊3、溫濕度監(jiān)測芯片說明 3.1 SHT10說明SHT10是一款高度集成的溫度濕度傳感器芯片,提供全標(biāo)定的數(shù)字輸出。它采用專利的COMSens技術(shù),確保了傳感器具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括包括一個電容性聚合體測濕敏感元件、一個能隙材料制成的測溫元件,并在同一芯片上,與14位的A/D轉(zhuǎn)換器以及串行接口電路進行連接。SH10引腳特性如下:3.1.1、 電源引腳SHT10的供電電壓為2.45.5V。傳感器上電后,要等待11ms以越過“休眠”狀態(tài)。在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個100nF的電容,用以去耦濾波。3.1.2、串行接口(兩線雙向) SHT10的串行接口,在傳感器信號的讀取及電源損耗方面,都做了優(yōu)化處理;但與I2C接口不兼容.3.1.3、串行時鐘輸入(SCK) SCK用于微處理器與SHTxx之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK頻率。3.1.4、串行數(shù)據(jù)(DATA) DATA三態(tài)門用于數(shù)據(jù)的讀取。DATA在SCK時鐘下降沿之后改變狀態(tài),并僅在SCK時鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK時鐘高電平時,DATA必須保持穩(wěn)定。為避免信號沖突,微處理器應(yīng)驅(qū)動DATA在低電平。需要一個外部的上拉電阻(例如:10k)將信號提拉至高電平(參見圖2)。上拉電阻通常已包含在微處理器的I/O 電路中。31.5、串行時鐘輸入(SCK) SCK用于微處理器與SHTxx之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK頻率。3.1.6、串行數(shù)據(jù)(DATA) DATA三態(tài)門用于數(shù)據(jù)的讀取。DATA在SCK時鐘下降沿之后改變狀態(tài),并僅在SCK時鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK時鐘高電平時,DATA必須保持穩(wěn)定。為避免信號沖突,微處理器應(yīng)驅(qū)動DATA在低電平。需要一個外部的上拉電阻(例如:10k)將信號提拉至高電平(參見圖2)。上拉電阻通常已包含在微處理器的I/O 電路中。3.1.7、測量時序(RH 和T) 發(fā)布一組測量命令(表示相對濕度RH,表示溫度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個字節(jié)的CRC奇偶校驗。uC需要通過下拉DATA為低電平,以確認(rèn)每個字節(jié)。所有的數(shù)據(jù)從MSB開始,右值有效(例如:對于12bit數(shù)據(jù),從第5個SCK時鐘起算作MSB;而對于8bit 數(shù)據(jù),首字節(jié)則無意義)。用CRC數(shù)據(jù)的確認(rèn)位,表明通訊結(jié)束。如果不使用CRC-8校驗,控制器可以在測量值LSB后,通過保持確認(rèn)位ack 高電平,來中止通訊。在測量和通訊結(jié)束后,SHTxx自動轉(zhuǎn)入休眠模式。3.1.8、通訊復(fù)位時序如果與SHTxx通訊中斷,下列信號時序可以復(fù)位串口:當(dāng)DATA保持高電平時,觸發(fā)SCK時鐘9次或更多。在下一次指令前,發(fā)送一個“傳輸啟動”時序。這些時序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。通訊復(fù)位時序圖4、CC2530說明4.1、簡介CC2530 是用于2.4-GHzIEEE 802.15.4、ZigBee 和RF4CE 應(yīng)用的一個真正的片上系統(tǒng)(SoC)解決方案。它能夠以非常低的總的材料成本建立強大的網(wǎng)絡(luò)節(jié)點。CC2530 結(jié)合了領(lǐng)先的RF 收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強型8051 CPU,系統(tǒng)內(nèi)可編程閃存,8-KB RAM 和許多其它強大的功能。CC2530 有四種不同的閃存版本:CC2530F32/64/128/256,分別具有32/64/128/256KB 的閃存。CC2530 具有不同的運行模式,使得它尤其適應(yīng)超低功耗要求的系統(tǒng)。運行模式之間的轉(zhuǎn)換時間短進一步確保了低能源消耗。CC2530F256 結(jié)合了德州儀器的業(yè)界領(lǐng)先的黃金單元ZigBee協(xié)議棧(Z-Stack),提供了一個強大和完整的ZigBee 解決方案。CC2530F64 結(jié)合了德州儀器的黃金單元RemoTI,更好地提供了一個強大和完整的ZigBee RF4CE遠(yuǎn)程控制解決方案。4.2、引腳描述引腳名稱 引腳 引腳類型 描述AVDD1 28 電源(模擬) 2-V3.6-V 模擬電源連接AVDD2 27 電源(模擬) 2-V3.6-V 模擬電源連接AVDD3 24 電源(模擬) 2-V3.6-V 模擬電源連接AVDD4 29 電源(模擬) 2-V3.6-V 模擬電源連接AVDD5 21 電源(模擬) 2-V3.6-V 模擬電源連接AVDD6 31 電源(模擬) 2-V3.6-V 模擬電源連接DCOUPL 40 電源(數(shù)字) 1.8V 數(shù)字電源去耦。不使用外部電路供應(yīng)。DVDD1 39 電源(數(shù)字) 2-V3.6-V 數(shù)字電源連接DVDD2 10 電源(數(shù)字) 2-V3.6-V 數(shù)字電源連接GND - 接地 接地襯墊必須連接到一個堅固的接地面。GND 1,2,3,4 未使用的引腳連接到GNDP0_0 19 數(shù)字I/O 端口0.0P0_1 18 數(shù)字I/O 端口0.1P0_2 17 數(shù)字I/O 端口0.2P0_3 16 數(shù)字I/O 端口0.3P0_4 15 數(shù)字I/O 端口0.4P0_5 14 數(shù)字I/O 端口0.5P0_6 13 數(shù)字I/O 端口0.6P0_7 12 數(shù)字I/O 端口0.7P1_0 11 數(shù)字I/O 端口1.0-20-mA 驅(qū)動能力P1_1 9 數(shù)字I/O 端口1.1-20-mA 驅(qū)動能力P1_2 8 數(shù)字I/O 端口1.2P1_3 7 數(shù)字I/O 端口1.3P1_4 6 數(shù)字I/O 端口1.4P1_5 5 數(shù)字I/O 端口1.5P1_6 38 數(shù)字I/O 端口1.6P1_7 37 數(shù)字I/O 端口1.7P2_0 36 數(shù)字I/O 端口2.0P2_1 35 數(shù)字I/O 端口2.1P2_2 34 數(shù)字I/O 端口2.2P2_3 33 數(shù)字I/O 模擬端口2.3/32.768 kHz XOSCP2_4 32 數(shù)字I/O 模擬端口2.4/32.768 kHz XOSCRBIAS 30 模擬I/O 參考電流的外部精密偏置電阻RESET_N 20 數(shù)字輸入 復(fù)位,活動到低電平RF_N 26 RF I/O RX 期間負(fù)RF 輸入信號到LNARF_P 25 RF I/O RX 期間正RF 輸入信號到LNAXOSC_Q1 22 模擬I/O 32-MHz 晶振引腳1或外部時鐘輸入XOSC_Q2 23 模擬I/O 32-MHz 晶振引腳24.3、模塊說明CC2530芯片系列中使用的8051 CPU內(nèi)核是一個單周期的8051兼容內(nèi)核。它有三種不同的內(nèi)存訪問總線(SFR,DATA 和CODE/XDATA),單周期訪問SFR,DATA 和主SRAM。它還包括一個調(diào)試接口和一個18 輸入擴展中斷單元。中斷控制器總共提供了18 個中斷源,分為六個中斷組,每個與四個中斷優(yōu)先級之一相關(guān)。當(dāng)設(shè)備從活動模式回到空閑模式,任一中斷服務(wù)請求就被激發(fā)。一些中斷還可以從睡眠模式(供電模式1-3)喚醒設(shè)備。內(nèi)存仲裁器位于系統(tǒng)中心,因為它通過SFR總線把CPU 和DMA 控制器和物理存儲器以及所有外設(shè)連接起來。內(nèi)存仲裁器有四個內(nèi)存訪問點,每次訪問可以映射到三個物理存儲器之一:一個8-KB SRAM、閃存存儲器和XREG/SFR寄存器。它負(fù)責(zé)執(zhí)行仲裁,并確定同時訪問同一個物理存儲器之間的順序。8-KB SRAM映射到DATA存儲空間和部分XDATA存儲空間。8-KB SRAM是一個超低功耗的SRAM,即使數(shù)字部分掉電(供電模式2 和3)也能保留其內(nèi)容。這是對于低功耗應(yīng)用來說很重要的一個功能。32/64/128/256 KB閃存塊為設(shè)備提供了內(nèi)電路可編程的非易失性程序存儲器,映射到XDATA存儲空間。除了保存程序代碼和常量以外,非易失性存儲器允許應(yīng)用程序保存必須保留的數(shù)據(jù),這樣設(shè)備重啟之后可以使用這些數(shù)據(jù)。使用這個功能,例如可以利用已經(jīng)保存的網(wǎng)絡(luò)具體數(shù)據(jù),就不需要經(jīng)過完全啟動、網(wǎng)絡(luò)尋找和加入過程。4.4、時鐘和電源管理數(shù)字內(nèi)核和外設(shè)由一個1.8-V 低差穩(wěn)壓器供電。它提供了電源管理功能,可以實現(xiàn)使用不同供電模式的長電池壽命的低功耗運行。有五種不同的復(fù)位源來復(fù)位設(shè)備。4.5、外設(shè)CC2530 包括許多不同的外設(shè),允許應(yīng)用程序設(shè)計者開發(fā)先進的應(yīng)用。調(diào)試接口執(zhí)行一個專有的兩線串行接口,用于內(nèi)電路調(diào)試。通過這個調(diào)試接口,可以執(zhí)行整個閃存存儲器的擦除、控制使能哪個振蕩器、停止和開始執(zhí)行用戶程序、執(zhí)行8051內(nèi)核提供的指令、設(shè)置代碼斷點,以及內(nèi)核中全部指令的單步調(diào)試。使用這些技術(shù),可以很好地執(zhí)行內(nèi)電路的調(diào)試和外部閃存的編程。設(shè)備含有閃存存儲器以存儲程序代碼。閃存存儲器可通過用戶軟件和調(diào)試接口編程。閃存控制器處理寫入和擦除嵌入式閃存存儲器。閃存控制器允許頁面擦除和4字節(jié)編程。I/O控制器負(fù)責(zé)所有通用I/O引腳。CPU可以配置外設(shè)模塊是否控制某個引腳或它們是否受軟件控制,如果是的話,每個引腳配置為一個輸入還是輸出,是否連接襯墊里的一個上拉或下拉電阻。CPU 中斷可以分別在每個引腳上使能。每個連接到I/O引腳的外設(shè)可以在兩個不同的I/O 引腳位置之間選擇,以確保在不同應(yīng)用程序中的靈活性。系統(tǒng)可以使用一個多功能的五通道DMA控制器,使用XDATA存儲空間訪問存儲器,因此能夠訪問所有物理存儲器。每個通道(觸發(fā)器、優(yōu)先級、傳輸模式、尋址模式、源和目標(biāo)指針和傳輸計數(shù))用DMA 描述符在存儲器任何地方配置。許多硬件外設(shè)(AES內(nèi)核、閃存控制器、USART、定時器、ADC 接口)通過使用DMA 控制器在SFR 或XREG 地址和閃存/SRAM 之間進行數(shù)據(jù)傳輸,獲得高效率操作。定時器1 是一個16 位定時器,具有定時器/PWM 功能。它有一個可編程的分頻器,一個16 位周期值,和五個各自可編程的計數(shù)器/捕獲通道,每個都有一個16 位比較值。每個計數(shù)器/捕獲通道可以用作一個PWM輸出或捕獲輸入信號邊沿的時序。它還可以配置在IR產(chǎn)生模式,計算定時器3 周期,輸出是ANDed,定時器3 的輸出是用最小的CPU 互動產(chǎn)生調(diào)制的消費型IR 信號。MAC定時器(定時器2)是專門為支持IEEE 802.15.4 MAC或軟件中其他時槽的協(xié)議設(shè)計。定時器有一個可配置的定時器周期和一個8 位溢出計數(shù)器,可以用于保持跟蹤已經(jīng)經(jīng)過的周期數(shù)。一個16 位捕獲寄存器也用于記錄收到/發(fā)送一個幀開始界定符的精確時間,或傳輸結(jié)束的精確時間,還有一個16 位輸出比較寄存器可以在具體時間產(chǎn)生不同的選通命令(開始RX,開始TX,等等)到無線模塊。定時器3 和定時器4 是8 位定時器,具有定時器/計數(shù)器/PWM 功能。它們有一個可編程的分頻器,一個8 位的周期值,一個可編程的計數(shù)器通道,具有一個8 位的比較值。每個計數(shù)器通道可以用作一個PWM 輸出。睡眠定時器是一個超低功耗的定時器,計算32-kHz 晶振或32-kHz RC 振蕩器的周期。睡眠定時器在除了供電模式3 的所有工作模式下不斷運行。這一定時器的典型應(yīng)用是作為實時計數(shù)器,或作為一個喚醒定時器跳出供電模式1 或2。ADC支持7到12位的分辨率,分別在30 kHz或4 kHz的帶寬。DC和音頻轉(zhuǎn)換可以使用高達(dá)八個輸入通道(端口0)。輸入可以選擇作為單端或差分。參考電壓可以是內(nèi)部電壓、AVDD 或是一個單端或差分外部信號。ADC 還有一個溫度傳感輸入通道。ADC 可以自動執(zhí)行定期抽樣或轉(zhuǎn)換通道序列的程序。隨機數(shù)發(fā)生器使用一個16 位LFSR 來產(chǎn)生偽隨機數(shù),這可以被CPU 讀取或由選通命令處理器直接使用。例如隨機數(shù)可以用作產(chǎn)生隨機密鑰,用于安全。AES加密/解密內(nèi)核允許用戶使用帶有128位密鑰的AES算法加密和解密數(shù)據(jù)。這一內(nèi)核能夠支持IEEE 802.15.4 MAC 安全、ZigBee 網(wǎng)絡(luò)層和應(yīng)用層要求的AES 操作。一個內(nèi)置的看門狗允許CC2530 在固件掛起的情況下復(fù)位自身。當(dāng)看門狗定時器由軟件使能,它必須定期清除;否則,當(dāng)它超時就復(fù)位它就復(fù)位設(shè)備?;蛘咚梢耘渲糜米饕粋€通用32-kHz定時器。USART 0和USART 1每個被配置為一個SPI主/從或一個UART。它們?yōu)镽X和TX提供了雙緩沖,以及硬件流控制,因此非常適合于高吞吐量的全雙工應(yīng)用。每個都有自己的高精度波特率發(fā)生器,因此可以使普通定時器空閑出來用作其他用途。4.6、無線設(shè)備CC2530 具有一個IEEE 802.15.4 兼容無線收發(fā)器。RF 內(nèi)核控制模擬無線模塊。另外,它提供了MCU 和無線設(shè)備之間的一個接口,這使得可以發(fā)出命令,讀取狀態(tài),自動操作和確定無線設(shè)備事件的順序。無線設(shè)備還包括一個數(shù)據(jù)包過濾和地址識別模塊。5、軟件設(shè)計 在一個 ZigBee 應(yīng)用系統(tǒng)中,光有硬件是沒有用的,還需要與之相匹配的軟件程序才能真正的能夠使用。無線溫度采集系統(tǒng)的軟件設(shè)計主要包括 ZigBee 節(jié)點間的通信程序,協(xié)調(diào)器節(jié)點組網(wǎng)程序。5 軟件開發(fā)環(huán)境的選擇ZigBee 協(xié)議棧:ZigBee2007ZigBee2007的開發(fā)及下載工具:TI公司的IAR軟件5.1、基于 ZigBee 無線傳感器網(wǎng)絡(luò)的測控系統(tǒng)中協(xié)調(diào)器設(shè)備的軟件設(shè)計流程如下:macEventLoop處理本任務(wù)當(dāng)前優(yōu)先級最高的事件macTaskInit 注冊相應(yīng)事件 YES Nwk_event_loop處理本任務(wù)當(dāng)前優(yōu)先級最高的事件 nwk_init 注冊相應(yīng)事件 YESHal_InitHalProcessevet處理本任務(wù)當(dāng)前優(yōu)先級最高的事件開始 注冊相應(yīng)事件 YES MT_ProcessEventMT_TaskInit處理本任務(wù)當(dāng)前優(yōu)先級最高的事件硬件初始化osalInitTASKS系統(tǒng)初始化 注冊相應(yīng)事件 YES APS_event_loopAPS_Init處理本任務(wù)當(dāng)前優(yōu)先級最高的事件 注冊相應(yīng)事件 YES執(zhí)行操作系統(tǒng) ZDApp_InitZDAappeventlooppp處理本任務(wù)當(dāng)前優(yōu)先級最高的事件 注冊相應(yīng)事件 NO YES SAPI_ProcessEvent處理本任務(wù)當(dāng)前優(yōu)先級最高的事件 NOSAPI_Init 注冊相應(yīng)事件 YES5.2、無線接收串口轉(zhuǎn)發(fā)流程圖如下:SerialApp_ProcessEventOsal_msg_receive(SerialApp_Taskid)AF_INCOMING_MSG_CMDSerialApp_ProcessMSGCmdHalUARTWriteOsal_set_event(SerialApp_TaskID,SERIALAPP_RESP_EVT)SerialApp_Resp5.3、串口接收無線轉(zhuǎn)發(fā)流程圖如下:SerialApp_CallBackSerialApp_Send()HalUARTResdAF_DataResquest發(fā)送是否成功? 結(jié)束 YES Osal_Set_event(SerialApp_TaskID,SERIALAPP SEND EVT) NO 6.源代碼如下: #include ZComDef.h#include OSAL.h#include OSAL_Nv.h#include OnBoard.h#include ZMAC.h#ifndef NONWK#include AF.h#endif/* Hal */#include hal_lcd.h#include hal_led.h#include hal_adc.h#include hal_drivers.h#include hal_assert.h#include hal_flash.h#include stdio.h/ Maximun number of Vdd samples checked before go on#define MAX_VDD_SAMPLES 3 /電壓檢測#define ZMAIN_VDD_LIMIT HAL_ADC_VDD_LIMIT_4 /正常電壓極限值extern bool HalAdcCheckVdd (uint8 limit); /設(shè)備啟動前的芯片電壓檢測函數(shù)static void zmain_dev_info( void );static void zmain_ext_addr( void );static void zmain_vdd_check( void );#ifdef LCD_SUPPORTEDstatic void zmain_lcd_init( void );#endif/* * fn main * brief First function called after startup. * return dont care */int main( void ) / Turn off interrupts osal_int_disable( INTS_ALL ); /關(guān)閉所有中斷 EA=0/ Initialization for board related stuff such as LEDs HAL_BOARD_INIT(); /初始化系統(tǒng)時鐘 、LED所使用的IO等/ Make sure supply voltage is high enough to runzmain_vdd_check(); /檢測芯片電壓是否正常/ Initialize board I/OInitBoard( OB_COLD ); /初始化LED的IO/ Initialze HAL driversHalDriverInit(); /初始化芯片各個硬件模塊(包括LCD)/ Initialize NV Systemosal_nv_init( NULL ); /初始化FLASH存儲 / Initialize the MAC ZMacInit(); /初始化MAC層 / Determine the extended address zmain_ext_addr(); /形成節(jié)點MAC地址/ Initialize basic NV items zgInit(); /初始化一些非易失變量#ifndef NONWK/ Since the AF isnt a task, call its initialization routineafInit(); /初始化應(yīng)用框架層#endif/ Initialize the operating systemosal_init_system(); /初始化操作系統(tǒng) / Allow interruptsosal_int_enable( INTS_ALL ); /使能全部中斷/ Final board initializationInitBoard( OB_READY ); /初始化按鍵 / Display information about this devicezmain_dev_info(); /在液晶上顯示設(shè)備IEEE信息/* Display the device info on the LCD */#ifdef LCD_SUPPORTED zmain_lcd_init(); /在LCD上顯示該設(shè)備的信息#endif#ifdef WDT_IN_PM1/* If WDT is used, this is a good place to enable it. */WatchDogEnable( WDTIMX );#endifosal_start_system(); / No Return from herereturn 0; / Shouldnt get here. /* * fn zmain_vdd_check * brief Check if the Vdd is OK to run the processor. * return Return if Vdd is ok; otherwise, flash LED, then reset */static void zmain_vdd_check( void ) /檢測設(shè)備電壓 uint8 vdd_passed_count = 0; bool toggle = 0; / Repeat getting the sample until number of failures or successes hits MAX / then based on the count value, determine if the device is ready or not while ( vdd_passed_count MAX_VDD_SAMPLES ) /電壓正常情況下,檢查3次 if ( HalAdcCheckVdd (ZMAIN_VDD_LIMIT) ) /設(shè)置電壓正常的極限值 并使用AD檢測電壓 vdd_passed_count+; / Keep track # times Vdd passes in a row MicroWait (10000); / Wait 10ms to try again else vdd_passed_count = 0; / Reset passed counter MicroWait (50000); / Wait 50ms MicroWait (50000); / Wait another 50ms to try again /* toggle LED1 and LED2 */ if (vdd_passed_count = 0) if (toggle = !(toggle) HAL_TOGGLE_LED1(); else HAL_TOGGLE_LED2(); /* turn off LED1 */ HAL_TURN_OFF_LED1(); HAL_TURN_OFF_LED2();/* * fn zmain_ext_addr * * brief Execute a prioritized search for a valid extended address and write the results * into the OSAL NV system for use by the *system. Temporary address not saved to NV. * input parameters * None. * output parameters * None. * return None.* */static void zmain_ext_addr(void) uint8 nullAddrZ_EXTADDR_LEN = 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF; uint8 writeNV = TRUE;/ First check whether a non-erased extended address exists in the OSAL NV. if (SUCCESS != osal_nv_item_init(ZCD_NV_EXTADDR, Z_EXTADDR_LEN, NULL) | (SUCCESS != osal_nv_read(ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, aExtendedAddress) | (osal_memcmp(aExtendedAddress, nullAddr, Z_EXTADDR_LEN) / Attempt to read the extended address from the location on the lock bits page/ where the programming tools know to reserve it. HalFlashRead(HAL_FLASH_IEEE_PAGE, HAL_FLASH_IEEE_OSET, aExtendedAddress, Z_EXTADDR_LEN); if (osal_memcmp(aExtendedAddress, nullAddr, Z_EXTADDR_LEN) / Attempt to read the extended address from the designated location in the Info Page. if(!osal_memcmp(uint8 *)(P_INFOPAGE+HAL_INFOP_IEEE_OSET), nullAddr, Z_EXTADDR_LEN) osal_memcpy(aExtendedAddress, (uint8 *)(P_INFOPAGE+HAL_INFOP_IEEE_OSET), Z_EXTADDR_LEN); else / No valid extended address was found. uint8 idx; #if !defined ( NV_RESTORE ) writeNV = FALSE; / Make this a temporary IEEE address#endif/* Attempt to create a sufficiently random extended *address for expediency.* Note: this is only valid/legal in a test environment *and must never be used for a commercial product. */ for (idx = 0; idx (Z_EXTADDR_LEN - 2);) uint16 randy = osal_rand(); aExtendedAddressidx+ = LO_UINT16(randy); aExtendedAddressidx+ = HI_UINT16(randy); / Next-to-MSB identifies ZigBee devicetype.#if ZG_BUILD_COORDINATOR_TYPE & !ZG_BUILD_JOINING_TYPE aExtendedAddressidx+ = 0x10;#elif ZG_BUILD_RTRONLY_TYPE aExtendedAddressidx+ = 0x20;#else aExtendedAddressidx+ = 0x30;#endif / MSB has historical signficance. aExtendedAddressidx = 0xF8; if (writeNV) (void)osal_nv_write(ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, aExtendedAddress); / Set the MAC PIB extended address according to results /from above. (void)ZMacSetReq(MAC_EXTENDED_ADDRESS, aExtendedAddress);/* * fn zmain_dev_info * brief This displays the IEEE (MSB to LSB) on the LCD. * input parameters * None. * output parameters * None. * return None.* */static void zmain_dev_info(void)#ifdef LCD_SUPPORTED uint8 i; uint8 *xad; uin
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工廠績效獎勵協(xié)議書
- 2025年教師資格證學(xué)科知識高中英語模擬卷:英語教學(xué)策略解析與答案
- 工程土方合同協(xié)議書
- 疾病救助協(xié)議書
- 2025年品牌管理崗招聘考試專業(yè)卷(含品牌定位模型)押題試卷詳解
- 石材結(jié)晶協(xié)議書
- 工廠轉(zhuǎn)讓免責(zé)協(xié)議書
- 江西合作協(xié)議書
- 汽車代管協(xié)議書
- 石渣填埋協(xié)議書
- 海門村干部考試試題及答案
- (二模)2025年5月濟南市高三高考針對性訓(xùn)練生物試卷(含答案)
- 2024年云南省會澤縣事業(yè)單位公開招聘醫(yī)療衛(wèi)生崗筆試題帶答案
- 全球及中國雙特異性抗體治療行業(yè)市場發(fā)展分析及前景趨勢與投資發(fā)展研究報告2025-2028版
- 2025年電工操作資格證考試復(fù)習(xí)考試題庫(共583題)(含答案)
- 初中地理澳大利亞 課件-2024-2025學(xué)年七年級地理下學(xué)期(人教版2024)
- 溝通的藝術(shù)智慧樹知到期末考試答案章節(jié)答案2024年湖南師范大學(xué)
- 計算機組裝與維護立體化教程ppt課件(完整版)
- 項目部管理人員名單
- 《新編英語語法教程》主要章節(jié)語法術(shù)語
- 電腦企業(yè)之 組裝作業(yè)指導(dǎo)書(DK607 Nupro760)
評論
0/150
提交評論