環(huán)境管理_基于嵌入式的室內(nèi)環(huán)境信息采集控制演示系統(tǒng)設(shè)計(jì)_第1頁(yè)
環(huán)境管理_基于嵌入式的室內(nèi)環(huán)境信息采集控制演示系統(tǒng)設(shè)計(jì)_第2頁(yè)
環(huán)境管理_基于嵌入式的室內(nèi)環(huán)境信息采集控制演示系統(tǒng)設(shè)計(jì)_第3頁(yè)
環(huán)境管理_基于嵌入式的室內(nèi)環(huán)境信息采集控制演示系統(tǒng)設(shè)計(jì)_第4頁(yè)
環(huán)境管理_基于嵌入式的室內(nèi)環(huán)境信息采集控制演示系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(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)介

目錄題目:基于嵌入式的室內(nèi)環(huán)境信息采集控制演示系統(tǒng)設(shè)計(jì)1目錄2摘要3關(guān)鍵詞3前言3系統(tǒng)分析及其設(shè)計(jì)4一、基本原理:4二、系統(tǒng)方案設(shè)計(jì)5三、總體設(shè)計(jì)7四、系統(tǒng)測(cè)試31總結(jié)31參考文獻(xiàn)32致謝32基于嵌入式的室內(nèi)環(huán)境信息采集控制演示系統(tǒng)設(shè)計(jì)摘要 智能家居已然成為一個(gè)熱門話題,而室內(nèi)環(huán)境監(jiān)測(cè)是其中不可或缺的一個(gè)重要組成部分.加之嵌入式和無(wú)線傳感技術(shù)已經(jīng)較為成熟,因此,基于嵌入式系統(tǒng)的室內(nèi)環(huán)境監(jiān)測(cè)系統(tǒng)是可以實(shí)現(xiàn)的. 基于嵌入式的無(wú)線傳感網(wǎng)絡(luò)是多學(xué)科的高度交叉,知識(shí)的高度集成的前沿?zé)狳c(diǎn)研究領(lǐng)域。它通過(guò)各類集成化的微型傳感器協(xié)作地實(shí)時(shí)監(jiān)測(cè),感知和采集各種環(huán)境或監(jiān)測(cè)對(duì)象的信息,這些信息通過(guò)無(wú)線方式被發(fā)送,并以自組多跳的網(wǎng)絡(luò)方式傳送到用戶終端無(wú)線傳感器網(wǎng)絡(luò)的特性決定了其不需要較高的傳輸帶寬,而要求較低的傳輸延時(shí)和極低的功率消耗。IEEES02154ZigBee技術(shù)是近年來(lái)通信領(lǐng)域中的研究熱點(diǎn),具有低成本、低功耗、低速率、低復(fù)雜度的特點(diǎn)和高可靠性、組網(wǎng)簡(jiǎn)單、靈活等優(yōu)勢(shì),逐漸成為無(wú)線傳感器網(wǎng)絡(luò)事實(shí)上的國(guó)際標(biāo)準(zhǔn)。此次課程設(shè)計(jì)并實(shí)現(xiàn)了用無(wú)線傳感器網(wǎng)絡(luò)構(gòu)成的分布式溫度濕度監(jiān)控系統(tǒng)。關(guān)鍵詞:嵌入式、智能家居、ZIGBEE、串口通信前言 家居環(huán)境是指家庭團(tuán)聚、休息、學(xué)習(xí)和家務(wù)勞動(dòng)的環(huán)境。家居環(huán)境條件的好壞,直接影響著居民的發(fā)病率和死亡率。城市居民每天在室內(nèi)工作、學(xué)習(xí)和生活的時(shí)間占全天時(shí)間的90%左右,因此,居室環(huán)境與人類健康和兒童生長(zhǎng)發(fā)育的關(guān)系極為密切。隨著人們對(duì)健康的不斷重視,加強(qiáng)對(duì)家居環(huán)境的環(huán)境狀況的實(shí)時(shí)監(jiān)測(cè)與治理,為人們提供一個(gè)安全、健康、舒適的生活環(huán)境,已經(jīng)成為十分迫切的市場(chǎng)需求.嵌入式技術(shù)的發(fā)展,為環(huán)境環(huán)境檢測(cè)提供了更進(jìn)一步的保障?;谇度胧降沫h(huán)境信息采集系統(tǒng)包含感知層、傳輸層、應(yīng)用層三個(gè)層面;傳輸層常見(jiàn)的有溫濕度、煙感、一氧化碳、壓力等嵌入式傳感器模塊,傳輸層包括有線通信和無(wú)線通信兩部分,應(yīng)用層包括各種終端。在室內(nèi)環(huán)境監(jiān)測(cè)領(lǐng)域,以嵌入式技術(shù)為基礎(chǔ),結(jié)合ZigBee技術(shù)可以實(shí)現(xiàn)、準(zhǔn)確、完整、可靠的反應(yīng)環(huán)境信息,做到實(shí)時(shí)監(jiān)控。系統(tǒng)分析及其設(shè)計(jì)一、基本原理:溫度傳感器將被測(cè)點(diǎn)的溫度采集后輸出的模擬信號(hào)逐步送往放大電路、低通濾波器以及 A/D 轉(zhuǎn)換器(即信號(hào)調(diào)理電路),然后再單片機(jī)的控制下將 A/D 轉(zhuǎn)換器輸出的數(shù)字信號(hào)傳送到無(wú)線收發(fā)芯片中,并通過(guò)芯片的調(diào)制處理后由芯片內(nèi)部的天線發(fā)送到上位機(jī)機(jī)監(jiān)測(cè)軟件上,在上位機(jī)模塊上,發(fā)來(lái)的數(shù)據(jù)由單片機(jī)控制的無(wú)線收發(fā)芯片接收并解調(diào),最后通過(guò)接口芯片發(fā)送到 PC 機(jī)中進(jìn)行顯示和處理。溫度傳感器被用在終端節(jié)點(diǎn)上,當(dāng)上電后,溫度傳感器就是能夠獲取環(huán)境中某個(gè)地方溫度的敏感元器件,它可以將環(huán)境中的溫度或者是與溫度相關(guān)的參量信息轉(zhuǎn)換成電信號(hào),我們可以根據(jù)這些電信號(hào)的強(qiáng)弱來(lái)識(shí)別被測(cè)點(diǎn)在環(huán)境中的溫度數(shù)據(jù)。 系統(tǒng)方案設(shè)計(jì) 系統(tǒng)設(shè)計(jì)需求濕度傳感器和溫度傳感器采集到數(shù)據(jù)后,通過(guò)給RS232串口增加無(wú)線傳輸功能,替代設(shè)備電纜線進(jìn)行無(wú)線傳輸, 無(wú)線溫度采集系統(tǒng)改變了傳統(tǒng)有線的數(shù)據(jù)采集系統(tǒng)搭建布線困難,監(jiān)測(cè)區(qū)域受限等諸多不足。要求設(shè)計(jì)的短距離無(wú)線通信系統(tǒng)具有功耗少,性價(jià)比高,系統(tǒng)維護(hù)快捷方便,而且通過(guò)在傳感器模塊上添加 FLASH 存儲(chǔ)設(shè)備,使得數(shù)據(jù)采集工作能夠擺脫對(duì)監(jiān)測(cè)過(guò)程網(wǎng)絡(luò)輻射范圍的限制,可應(yīng)用到許多的場(chǎng)合更好的改善采集工作的便捷行。通過(guò)與其他通信技術(shù)(如 GSMGPRS)的無(wú)縫接合,能夠?qū)崿F(xiàn)采集數(shù)據(jù)的遠(yuǎn)程傳輸,滿足對(duì)數(shù)據(jù)采集區(qū)域的遠(yuǎn)程監(jiān)控串口傳輸設(shè)計(jì)為雙向全雙工,無(wú)硬件流控制,強(qiáng)制允許OTA(多條)時(shí)間和丟包重傳。2、系統(tǒng)方案設(shè)計(jì)方案一: 使用目前已經(jīng)非常成熟且廣泛應(yīng)用的藍(lán)牙技術(shù),能在包括移動(dòng)電話、PDA、無(wú)線耳機(jī)、筆記本電腦、相關(guān)外設(shè)等眾多設(shè)備之間進(jìn)行無(wú)線信息交換。利用“藍(lán)牙”技術(shù),能夠有效地簡(jiǎn)化移動(dòng)通信終端設(shè)備之間的通信,也能夠成功地簡(jiǎn)化設(shè)備與因特網(wǎng)Internet之間的通信,從而數(shù)據(jù)傳輸變得更加迅速高效,為無(wú)線通信拓寬道路。藍(lán)牙采用分散式網(wǎng)絡(luò)結(jié)構(gòu)以及快跳頻和短包技術(shù),支持點(diǎn)對(duì)點(diǎn)及點(diǎn)對(duì)多點(diǎn)通信,工作在全球通用的2.4GHz ISM(即工業(yè)、科學(xué)、醫(yī)學(xué))頻段。其數(shù)據(jù)速率為1Mbps。采用時(shí)分雙工傳輸方案實(shí)現(xiàn)全雙工傳輸。方便快捷且不會(huì)遇到未知的技術(shù)難題.方案二:選擇TI公司的2.4GHz片上系統(tǒng)解決方案CC2530,CC2530是用于IEEES02.15.4、Zigbee和RF4CE應(yīng)用的一個(gè)片上系統(tǒng)解決方案,它能以較低的總成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。CC2530結(jié)合了先進(jìn)的RF收發(fā)器性能,業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型8051內(nèi)核,使操作更容易,具備不同的運(yùn)行模式,尤其適用于低功耗的系統(tǒng)需求。3、系統(tǒng)方案選擇通過(guò)對(duì)比以上兩種方案開(kāi)發(fā)的難易程度、開(kāi)發(fā)周期和現(xiàn)有的實(shí)驗(yàn)環(huán)境我們選擇方案二。無(wú)線溫度采集系統(tǒng)改變了傳統(tǒng)有線的數(shù)據(jù)采集系統(tǒng)搭建布線困難,監(jiān)測(cè)區(qū)域受限等諸多不足。ZigBee這種新興的短距離無(wú)線通信系統(tǒng)具有功耗少,性價(jià)比高,系統(tǒng)維護(hù)快捷方便,而且通過(guò)在傳感器模塊上添加 FLASH 存儲(chǔ)設(shè)備,使得數(shù)據(jù)采集工作能夠擺脫對(duì)監(jiān)測(cè)過(guò)程網(wǎng)絡(luò)輻射范圍的限制,可應(yīng)用到許多的場(chǎng)合更好的改善采集工作的便捷行。通過(guò)與其他通信技術(shù)(如 GSMGPRS)的無(wú)縫接合,能夠?qū)崿F(xiàn)采集數(shù)據(jù)的遠(yuǎn)程傳輸,滿足對(duì)數(shù)據(jù)采集區(qū)域的遠(yuǎn)程監(jiān)控。一般以 ZigBee 技術(shù)為核心的無(wú)線溫度采集系統(tǒng)的工作過(guò)程為:協(xié)調(diào)器節(jié)點(diǎn)首先應(yīng)搭建網(wǎng)絡(luò),等待各自終端采集節(jié)點(diǎn)的入網(wǎng)請(qǐng)求;終端節(jié)點(diǎn)經(jīng)過(guò)驗(yàn)證加入網(wǎng)絡(luò)后,把溫度傳感器采集到的數(shù)據(jù)通過(guò)無(wú)線網(wǎng)絡(luò)上傳傳輸給協(xié)調(diào)器節(jié)點(diǎn);協(xié)調(diào)器節(jié)點(diǎn)接收到數(shù)據(jù)包后,進(jìn)行數(shù)據(jù)包解析,并通過(guò)串口將溫度信息以及子節(jié)點(diǎn)地址等有效信息存儲(chǔ)并顯示在監(jiān)控界面上。三、總體設(shè)計(jì)無(wú)線傳感器溫度測(cè)量系統(tǒng)主要由單個(gè) ZigBee 協(xié)調(diào)器、單部 PC 機(jī)和放置在各處的溫度采集節(jié)點(diǎn)ZigBee 終端設(shè)備組成。ZigBee 協(xié)調(diào)器與各個(gè)終端節(jié)點(diǎn)形成了一個(gè) ZigBee 星型網(wǎng)絡(luò)。整個(gè)無(wú)線溫度采集系統(tǒng)的拓?fù)浣Y(jié)構(gòu)圖如圖 1所示。各處的溫度采集節(jié)點(diǎn)ZigBee 終端設(shè)備組成。CC2530芯片的有效通信半徑為 100m 時(shí),終端節(jié)點(diǎn)可以安置在以協(xié)調(diào)器為中心100m 半徑范圍內(nèi)。終端數(shù)據(jù)采集節(jié)點(diǎn)的結(jié)構(gòu)較為簡(jiǎn)化,僅由一個(gè) CC2530 模塊,F(xiàn)lash 存儲(chǔ),2 節(jié) 1.5V 電池和溫度傳感器組成,各個(gè)終端節(jié)點(diǎn)被初始化為無(wú)信標(biāo)網(wǎng)絡(luò)中的終端設(shè)備。終端設(shè)備上電復(fù)位后,便啟動(dòng)搜索指定信道上的ZigBee協(xié)調(diào)器,并發(fā)送連接請(qǐng)求,終端設(shè)備在成功入網(wǎng)后,將被賦予一個(gè) 16 位短地址,在以后網(wǎng)絡(luò)中的通信都以這個(gè) 16 位的短地址作為節(jié)點(diǎn)的標(biāo)識(shí);啟動(dòng)休眠定時(shí)器,間隔10 秒鐘喚醒一次,醒來(lái)后使用一種簡(jiǎn)單的非時(shí)隙 CSMA- CA,通過(guò)競(jìng)爭(zhēng)機(jī)制取得信道使用權(quán),自己向協(xié)調(diào)器節(jié)點(diǎn)發(fā)送請(qǐng)求數(shù)據(jù)。利用模塊上的溫度傳感器模塊檢測(cè)環(huán)境溫度,并上傳給協(xié)調(diào)器節(jié)點(diǎn),然后立即再次進(jìn)入休眠狀態(tài),最大限度地減少能耗,延長(zhǎng)終端節(jié)點(diǎn)電源續(xù)航時(shí)間,同時(shí)也可以延伸采集范圍,即利用 ZigBe網(wǎng)絡(luò)的自組織性我們可以攜帶輕巧的終端數(shù)據(jù)采集節(jié)點(diǎn)到實(shí)際測(cè)量區(qū)域完成數(shù)據(jù)采集工作,如果超出了無(wú)線網(wǎng)絡(luò)可以支持的傳輸范圍,那可以將數(shù)據(jù)暫時(shí)存儲(chǔ)在 Flash 存儲(chǔ)器中。網(wǎng)絡(luò)中的協(xié)調(diào)器節(jié)點(diǎn)負(fù)責(zé)搜集各溫度采集節(jié)點(diǎn)的信息,并將信息快速的通過(guò) RS232 串口按事先定義好的格式上傳 PC 機(jī),隨即解析并顯示出來(lái)。1、總體設(shè)計(jì)框圖如下:圖1 無(wú)線溫濕度采集系統(tǒng)框圖2、硬件設(shè)計(jì)實(shí)物圖如下:2.1CC2530郵票孔節(jié)點(diǎn)模塊2.2無(wú)線節(jié)點(diǎn)模塊2.3溫濕度采集模塊3、溫濕度監(jiān)測(cè)芯片說(shuō)明 3.1 SHT10說(shuō)明SHT10是一款高度集成的溫度濕度傳感器芯片,提供全標(biāo)定的數(shù)字輸出。它采用專利的COMSens技術(shù),確保了傳感器具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括包括一個(gè)電容性聚合體測(cè)濕敏感元件、一個(gè)能隙材料制成的測(cè)溫元件,并在同一芯片上,與14位的A/D轉(zhuǎn)換器以及串行接口電路進(jìn)行連接。SH10引腳特性如下:3.1.1、 電源引腳SHT10的供電電壓為2.45.5V。傳感器上電后,要等待11ms以越過(guò)“休眠”狀態(tài)。在此期間無(wú)需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個(gè)100nF的電容,用以去耦濾波。3.1.2、串行接口(兩線雙向) SHT10的串行接口,在傳感器信號(hào)的讀取及電源損耗方面,都做了優(yōu)化處理;但與I2C接口不兼容.3.1.3、串行時(shí)鐘輸入(SCK) SCK用于微處理器與SHTxx之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK頻率。3.1.4、串行數(shù)據(jù)(DATA) DATA三態(tài)門用于數(shù)據(jù)的讀取。DATA在SCK時(shí)鐘下降沿之后改變狀態(tài),并僅在SCK時(shí)鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK時(shí)鐘高電平時(shí),DATA必須保持穩(wěn)定。為避免信號(hào)沖突,微處理器應(yīng)驅(qū)動(dòng)DATA在低電平。需要一個(gè)外部的上拉電阻(例如:10k)將信號(hào)提拉至高電平(參見(jiàn)圖2)。上拉電阻通常已包含在微處理器的I/O 電路中。31.5、串行時(shí)鐘輸入(SCK) SCK用于微處理器與SHTxx之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK頻率。3.1.6、串行數(shù)據(jù)(DATA) DATA三態(tài)門用于數(shù)據(jù)的讀取。DATA在SCK時(shí)鐘下降沿之后改變狀態(tài),并僅在SCK時(shí)鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK時(shí)鐘高電平時(shí),DATA必須保持穩(wěn)定。為避免信號(hào)沖突,微處理器應(yīng)驅(qū)動(dòng)DATA在低電平。需要一個(gè)外部的上拉電阻(例如:10k)將信號(hào)提拉至高電平(參見(jiàn)圖2)。上拉電阻通常已包含在微處理器的I/O 電路中。3.1.7、測(cè)量時(shí)序(RH 和T) 發(fā)布一組測(cè)量命令(表示相對(duì)濕度RH,表示溫度T)后,控制器要等待測(cè)量結(jié)束。這個(gè)過(guò)程需要大約11/55/210ms,分別對(duì)應(yīng)8/12/14bit測(cè)量。確切的時(shí)間隨內(nèi)部晶振速度,最多有15%變化。SHTxx通過(guò)下拉DATA至低電平并進(jìn)入空閑模式,表示測(cè)量的結(jié)束??刂破髟谠俅斡|發(fā)SCK時(shí)鐘前,必須等待這個(gè)“數(shù)據(jù)備妥”信號(hào)來(lái)讀出數(shù)據(jù)。檢測(cè)數(shù)據(jù)可以先被存儲(chǔ),這樣控制器可以繼續(xù)執(zhí)行其它任務(wù)在需要時(shí)再讀出數(shù)據(jù)。接著傳輸2個(gè)字節(jié)的測(cè)量數(shù)據(jù)和1個(gè)字節(jié)的CRC奇偶校驗(yàn)。uC需要通過(guò)下拉DATA為低電平,以確認(rèn)每個(gè)字節(jié)。所有的數(shù)據(jù)從MSB開(kāi)始,右值有效(例如:對(duì)于12bit數(shù)據(jù),從第5個(gè)SCK時(shí)鐘起算作MSB;而對(duì)于8bit 數(shù)據(jù),首字節(jié)則無(wú)意義)。用CRC數(shù)據(jù)的確認(rèn)位,表明通訊結(jié)束。如果不使用CRC-8校驗(yàn),控制器可以在測(cè)量值LSB后,通過(guò)保持確認(rèn)位ack 高電平,來(lái)中止通訊。在測(cè)量和通訊結(jié)束后,SHTxx自動(dòng)轉(zhuǎn)入休眠模式。3.1.8、通訊復(fù)位時(shí)序如果與SHTxx通訊中斷,下列信號(hào)時(shí)序可以復(fù)位串口:當(dāng)DATA保持高電平時(shí),觸發(fā)SCK時(shí)鐘9次或更多。在下一次指令前,發(fā)送一個(gè)“傳輸啟動(dòng)”時(shí)序。這些時(shí)序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。通訊復(fù)位時(shí)序圖4、CC2530說(shuō)明4.1、簡(jiǎn)介CC2530 是用于2.4-GHzIEEE 802.15.4、ZigBee 和RF4CE 應(yīng)用的一個(gè)真正的片上系統(tǒng)(SoC)解決方案。它能夠以非常低的總的材料成本建立強(qiáng)大的網(wǎng)絡(luò)節(jié)點(diǎn)。CC2530 結(jié)合了領(lǐng)先的RF 收發(fā)器的優(yōu)良性能,業(yè)界標(biāo)準(zhǔn)的增強(qiáng)型8051 CPU,系統(tǒng)內(nèi)可編程閃存,8-KB RAM 和許多其它強(qiáng)大的功能。CC2530 有四種不同的閃存版本:CC2530F32/64/128/256,分別具有32/64/128/256KB 的閃存。CC2530 具有不同的運(yùn)行模式,使得它尤其適應(yīng)超低功耗要求的系統(tǒng)。運(yùn)行模式之間的轉(zhuǎn)換時(shí)間短進(jìn)一步確保了低能源消耗。CC2530F256 結(jié)合了德州儀器的業(yè)界領(lǐng)先的黃金單元ZigBee協(xié)議棧(Z-Stack),提供了一個(gè)強(qiáng)大和完整的ZigBee 解決方案。CC2530F64 結(jié)合了德州儀器的黃金單元RemoTI,更好地提供了一個(gè)強(qiáng)大和完整的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 - 接地 接地襯墊必須連接到一個(gè)堅(jiān)固的接地面。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ū)動(dòng)能力P1_1 9 數(shù)字I/O 端口1.1-20-mA 驅(qū)動(dòng)能力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ù)位,活動(dòng)到低電平RF_N 26 RF I/O RX 期間負(fù)RF 輸入信號(hào)到LNARF_P 25 RF I/O RX 期間正RF 輸入信號(hào)到LNAXOSC_Q1 22 模擬I/O 32-MHz 晶振引腳1或外部時(shí)鐘輸入XOSC_Q2 23 模擬I/O 32-MHz 晶振引腳24.3、模塊說(shuō)明CC2530芯片系列中使用的8051 CPU內(nèi)核是一個(gè)單周期的8051兼容內(nèi)核。它有三種不同的內(nèi)存訪問(wèn)總線(SFR,DATA 和CODE/XDATA),單周期訪問(wèn)SFR,DATA 和主SRAM。它還包括一個(gè)調(diào)試接口和一個(gè)18 輸入擴(kuò)展中斷單元。中斷控制器總共提供了18 個(gè)中斷源,分為六個(gè)中斷組,每個(gè)與四個(gè)中斷優(yōu)先級(jí)之一相關(guān)。當(dāng)設(shè)備從活動(dòng)模式回到空閑模式,任一中斷服務(wù)請(qǐng)求就被激發(fā)。一些中斷還可以從睡眠模式(供電模式1-3)喚醒設(shè)備。內(nèi)存仲裁器位于系統(tǒng)中心,因?yàn)樗ㄟ^(guò)SFR總線把CPU 和DMA 控制器和物理存儲(chǔ)器以及所有外設(shè)連接起來(lái)。內(nèi)存仲裁器有四個(gè)內(nèi)存訪問(wèn)點(diǎn),每次訪問(wèn)可以映射到三個(gè)物理存儲(chǔ)器之一:一個(gè)8-KB SRAM、閃存存儲(chǔ)器和XREG/SFR寄存器。它負(fù)責(zé)執(zhí)行仲裁,并確定同時(shí)訪問(wèn)同一個(gè)物理存儲(chǔ)器之間的順序。8-KB SRAM映射到DATA存儲(chǔ)空間和部分XDATA存儲(chǔ)空間。8-KB SRAM是一個(gè)超低功耗的SRAM,即使數(shù)字部分掉電(供電模式2 和3)也能保留其內(nèi)容。這是對(duì)于低功耗應(yīng)用來(lái)說(shuō)很重要的一個(gè)功能。32/64/128/256 KB閃存塊為設(shè)備提供了內(nèi)電路可編程的非易失性程序存儲(chǔ)器,映射到XDATA存儲(chǔ)空間。除了保存程序代碼和常量以外,非易失性存儲(chǔ)器允許應(yīng)用程序保存必須保留的數(shù)據(jù),這樣設(shè)備重啟之后可以使用這些數(shù)據(jù)。使用這個(gè)功能,例如可以利用已經(jīng)保存的網(wǎng)絡(luò)具體數(shù)據(jù),就不需要經(jīng)過(guò)完全啟動(dòng)、網(wǎng)絡(luò)尋找和加入過(guò)程。4.4、時(shí)鐘和電源管理數(shù)字內(nèi)核和外設(shè)由一個(gè)1.8-V 低差穩(wěn)壓器供電。它提供了電源管理功能,可以實(shí)現(xiàn)使用不同供電模式的長(zhǎng)電池壽命的低功耗運(yùn)行。有五種不同的復(fù)位源來(lái)復(fù)位設(shè)備。4.5、外設(shè)CC2530 包括許多不同的外設(shè),允許應(yīng)用程序設(shè)計(jì)者開(kāi)發(fā)先進(jìn)的應(yīng)用。調(diào)試接口執(zhí)行一個(gè)專有的兩線串行接口,用于內(nèi)電路調(diào)試。通過(guò)這個(gè)調(diào)試接口,可以執(zhí)行整個(gè)閃存存儲(chǔ)器的擦除、控制使能哪個(gè)振蕩器、停止和開(kāi)始執(zhí)行用戶程序、執(zhí)行8051內(nèi)核提供的指令、設(shè)置代碼斷點(diǎn),以及內(nèi)核中全部指令的單步調(diào)試。使用這些技術(shù),可以很好地執(zhí)行內(nèi)電路的調(diào)試和外部閃存的編程。設(shè)備含有閃存存儲(chǔ)器以存儲(chǔ)程序代碼。閃存存儲(chǔ)器可通過(guò)用戶軟件和調(diào)試接口編程。閃存控制器處理寫入和擦除嵌入式閃存存儲(chǔ)器。閃存控制器允許頁(yè)面擦除和4字節(jié)編程。I/O控制器負(fù)責(zé)所有通用I/O引腳。CPU可以配置外設(shè)模塊是否控制某個(gè)引腳或它們是否受軟件控制,如果是的話,每個(gè)引腳配置為一個(gè)輸入還是輸出,是否連接襯墊里的一個(gè)上拉或下拉電阻。CPU 中斷可以分別在每個(gè)引腳上使能。每個(gè)連接到I/O引腳的外設(shè)可以在兩個(gè)不同的I/O 引腳位置之間選擇,以確保在不同應(yīng)用程序中的靈活性。系統(tǒng)可以使用一個(gè)多功能的五通道DMA控制器,使用XDATA存儲(chǔ)空間訪問(wèn)存儲(chǔ)器,因此能夠訪問(wèn)所有物理存儲(chǔ)器。每個(gè)通道(觸發(fā)器、優(yōu)先級(jí)、傳輸模式、尋址模式、源和目標(biāo)指針和傳輸計(jì)數(shù))用DMA 描述符在存儲(chǔ)器任何地方配置。許多硬件外設(shè)(AES內(nèi)核、閃存控制器、USART、定時(shí)器、ADC 接口)通過(guò)使用DMA 控制器在SFR 或XREG 地址和閃存/SRAM 之間進(jìn)行數(shù)據(jù)傳輸,獲得高效率操作。定時(shí)器1 是一個(gè)16 位定時(shí)器,具有定時(shí)器/PWM 功能。它有一個(gè)可編程的分頻器,一個(gè)16 位周期值,和五個(gè)各自可編程的計(jì)數(shù)器/捕獲通道,每個(gè)都有一個(gè)16 位比較值。每個(gè)計(jì)數(shù)器/捕獲通道可以用作一個(gè)PWM輸出或捕獲輸入信號(hào)邊沿的時(shí)序。它還可以配置在IR產(chǎn)生模式,計(jì)算定時(shí)器3 周期,輸出是ANDed,定時(shí)器3 的輸出是用最小的CPU 互動(dòng)產(chǎn)生調(diào)制的消費(fèi)型IR 信號(hào)。MAC定時(shí)器(定時(shí)器2)是專門為支持IEEE 802.15.4 MAC或軟件中其他時(shí)槽的協(xié)議設(shè)計(jì)。定時(shí)器有一個(gè)可配置的定時(shí)器周期和一個(gè)8 位溢出計(jì)數(shù)器,可以用于保持跟蹤已經(jīng)經(jīng)過(guò)的周期數(shù)。一個(gè)16 位捕獲寄存器也用于記錄收到/發(fā)送一個(gè)幀開(kāi)始界定符的精確時(shí)間,或傳輸結(jié)束的精確時(shí)間,還有一個(gè)16 位輸出比較寄存器可以在具體時(shí)間產(chǎn)生不同的選通命令(開(kāi)始RX,開(kāi)始TX,等等)到無(wú)線模塊。定時(shí)器3 和定時(shí)器4 是8 位定時(shí)器,具有定時(shí)器/計(jì)數(shù)器/PWM 功能。它們有一個(gè)可編程的分頻器,一個(gè)8 位的周期值,一個(gè)可編程的計(jì)數(shù)器通道,具有一個(gè)8 位的比較值。每個(gè)計(jì)數(shù)器通道可以用作一個(gè)PWM 輸出。睡眠定時(shí)器是一個(gè)超低功耗的定時(shí)器,計(jì)算32-kHz 晶振或32-kHz RC 振蕩器的周期。睡眠定時(shí)器在除了供電模式3 的所有工作模式下不斷運(yùn)行。這一定時(shí)器的典型應(yīng)用是作為實(shí)時(shí)計(jì)數(shù)器,或作為一個(gè)喚醒定時(shí)器跳出供電模式1 或2。ADC支持7到12位的分辨率,分別在30 kHz或4 kHz的帶寬。DC和音頻轉(zhuǎn)換可以使用高達(dá)八個(gè)輸入通道(端口0)。輸入可以選擇作為單端或差分。參考電壓可以是內(nèi)部電壓、AVDD 或是一個(gè)單端或差分外部信號(hào)。ADC 還有一個(gè)溫度傳感輸入通道。ADC 可以自動(dòng)執(zhí)行定期抽樣或轉(zhuǎn)換通道序列的程序。隨機(jī)數(shù)發(fā)生器使用一個(gè)16 位LFSR 來(lái)產(chǎn)生偽隨機(jī)數(shù),這可以被CPU 讀取或由選通命令處理器直接使用。例如隨機(jī)數(shù)可以用作產(chǎn)生隨機(jī)密鑰,用于安全。AES加密/解密內(nèi)核允許用戶使用帶有128位密鑰的AES算法加密和解密數(shù)據(jù)。這一內(nèi)核能夠支持IEEE 802.15.4 MAC 安全、ZigBee 網(wǎng)絡(luò)層和應(yīng)用層要求的AES 操作。一個(gè)內(nèi)置的看門狗允許CC2530 在固件掛起的情況下復(fù)位自身。當(dāng)看門狗定時(shí)器由軟件使能,它必須定期清除;否則,當(dāng)它超時(shí)就復(fù)位它就復(fù)位設(shè)備。或者它可以配置用作一個(gè)通用32-kHz定時(shí)器。USART 0和USART 1每個(gè)被配置為一個(gè)SPI主/從或一個(gè)UART。它們?yōu)镽X和TX提供了雙緩沖,以及硬件流控制,因此非常適合于高吞吐量的全雙工應(yīng)用。每個(gè)都有自己的高精度波特率發(fā)生器,因此可以使普通定時(shí)器空閑出來(lái)用作其他用途。4.6、無(wú)線設(shè)備CC2530 具有一個(gè)IEEE 802.15.4 兼容無(wú)線收發(fā)器。RF 內(nèi)核控制模擬無(wú)線模塊。另外,它提供了MCU 和無(wú)線設(shè)備之間的一個(gè)接口,這使得可以發(fā)出命令,讀取狀態(tài),自動(dòng)操作和確定無(wú)線設(shè)備事件的順序。無(wú)線設(shè)備還包括一個(gè)數(shù)據(jù)包過(guò)濾和地址識(shí)別模塊。5、軟件設(shè)計(jì) 在一個(gè) ZigBee 應(yīng)用系統(tǒng)中,光有硬件是沒(méi)有用的,還需要與之相匹配的軟件程序才能真正的能夠使用。無(wú)線溫度采集系統(tǒng)的軟件設(shè)計(jì)主要包括 ZigBee 節(jié)點(diǎn)間的通信程序,協(xié)調(diào)器節(jié)點(diǎn)組網(wǎng)程序。5 軟件開(kāi)發(fā)環(huán)境的選擇ZigBee 協(xié)議棧:ZigBee2007ZigBee2007的開(kāi)發(fā)及下載工具:TI公司的IAR軟件5.1、基于 ZigBee 無(wú)線傳感器網(wǎng)絡(luò)的測(cè)控系統(tǒng)中協(xié)調(diào)器設(shè)備的軟件設(shè)計(jì)流程如下:macEventLoop處理本任務(wù)當(dāng)前優(yōu)先級(jí)最高的事件macTaskInit 注冊(cè)相應(yīng)事件 YES Nwk_event_loop處理本任務(wù)當(dāng)前優(yōu)先級(jí)最高的事件 nwk_init 注冊(cè)相應(yīng)事件 YESHal_InitHalProcessevet處理本任務(wù)當(dāng)前優(yōu)先級(jí)最高的事件開(kāi)始 注冊(cè)相應(yīng)事件 YES MT_ProcessEventMT_TaskInit處理本任務(wù)當(dāng)前優(yōu)先級(jí)最高的事件硬件初始化osalInitTASKS系統(tǒng)初始化 注冊(cè)相應(yīng)事件 YES APS_event_loopAPS_Init處理本任務(wù)當(dāng)前優(yōu)先級(jí)最高的事件 注冊(cè)相應(yīng)事件 YES執(zhí)行操作系統(tǒng) ZDApp_InitZDAappeventlooppp處理本任務(wù)當(dāng)前優(yōu)先級(jí)最高的事件 注冊(cè)相應(yīng)事件 NO YES SAPI_ProcessEvent處理本任務(wù)當(dāng)前優(yōu)先級(jí)最高的事件 NOSAPI_Init 注冊(cè)相應(yīng)事件 YES5.2、無(wú)線接收串口轉(zhuǎn)發(fā)流程圖如下:SerialApp_ProcessEventOsal_msg_receive(SerialApp_Taskid)AF_INCOMING_MSG_CMDSerialApp_ProcessMSGCmdHalUARTWriteOsal_set_event(SerialApp_TaskID,SERIALAPP_RESP_EVT)SerialApp_Resp5.3、串口接收無(wú)線轉(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 /電壓檢測(cè)#define ZMAIN_VDD_LIMIT HAL_ADC_VDD_LIMIT_4 /正常電壓極限值extern bool HalAdcCheckVdd (uint8 limit); /設(shè)備啟動(dòng)前的芯片電壓檢測(cè)函數(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)時(shí)鐘 、LED所使用的IO等/ Make sure supply voltage is high enough to runzmain_vdd_check(); /檢測(cè)芯片電壓是否正常/ Initialize board I/OInitBoard( OB_COLD ); /初始化LED的IO/ Initialze HAL driversHalDriverInit(); /初始化芯片各個(gè)硬件模塊(包括LCD)/ Initialize NV Systemosal_nv_init( NULL ); /初始化FLASH存儲(chǔ) / Initialize the MAC ZMacInit(); /初始化MAC層 / Determine the extended address zmain_ext_addr(); /形成節(jié)點(diǎn)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 ) /檢測(cè)設(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檢測(cè)電壓 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. 本站所有資源如無(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ù)網(wǎng)僅提供信息存儲(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)論