嵌入式 室內(nèi)環(huán)境信息采集控制系統(tǒng)_第1頁
嵌入式 室內(nèi)環(huán)境信息采集控制系統(tǒng)_第2頁
嵌入式 室內(nèi)環(huán)境信息采集控制系統(tǒng)_第3頁
嵌入式 室內(nèi)環(huán)境信息采集控制系統(tǒng)_第4頁
嵌入式 室內(nèi)環(huán)境信息采集控制系統(tǒng)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

嵌入式系統(tǒng)課程設(shè)計(jì)嵌入式系統(tǒng)課程設(shè)計(jì)基于嵌入式的室內(nèi)環(huán)境信息采集控制演示系統(tǒng)設(shè)計(jì)摘要:基于嵌入式的無線傳感網(wǎng)絡(luò)是多學(xué)科的高度交叉,知識的高度集成的前沿?zé)狳c(diǎn)研究領(lǐng)域。它通過各類集成化的微型傳感器協(xié)作地實(shí)時(shí)監(jiān)測,感知和采集各種環(huán)境或監(jiān)測對象的信息,這些信息通過無線方式被發(fā)送,并以自組多跳的網(wǎng)絡(luò)方式傳送到用戶終端無線傳感器網(wǎng)絡(luò)的特性決定了其不需要較高的傳輸帶寬,而要求較低的傳輸延時(shí)和極低的功率消耗。IEEES02.15.4/ZigBee技術(shù)是近年來通信領(lǐng)域中的研究熱點(diǎn),具有低成本、低功耗、低速率、低復(fù)雜度的特點(diǎn)和高可靠性、組網(wǎng)簡單、靈活等優(yōu)勢,逐漸成為無線傳感器網(wǎng)絡(luò)事實(shí)上的國際標(biāo)準(zhǔn)。此次課設(shè)設(shè)計(jì)并實(shí)現(xiàn)了用無線傳感器網(wǎng)絡(luò)構(gòu)成的分布式溫度濕度監(jiān)控系統(tǒng)。關(guān)鍵詞:嵌入式、信息采集、ZIGBEE、串口通信前言嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可定制,適用于不同應(yīng)用場合,對功能,可靠性,成本,體積,功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。隨著生活水平的提高和科學(xué)技術(shù)發(fā)展的需求,人類對環(huán)境信息的感知上有了更高的要求,在某些特殊工業(yè)生產(chǎn)領(lǐng)域和室內(nèi)存儲場合對環(huán)境要求顯得特別苛刻;隨著嵌入式技術(shù)的發(fā)展,為環(huán)境環(huán)境檢測提供了更進(jìn)一步的保障。基于嵌入式的環(huán)境信息采集系統(tǒng)包含感知層、傳輸層、應(yīng)用層三個(gè)層面;傳輸層常見的有溫濕度、煙感、一氧化碳、壓力等嵌入式傳感器模塊,傳輸層包括有線通信和無線通信兩部分,應(yīng)用層包括各種終端。在室內(nèi)環(huán)境監(jiān)測領(lǐng)域,以嵌入式技術(shù)為基礎(chǔ),結(jié)合ZigBee技術(shù)可以實(shí)現(xiàn)、準(zhǔn)確、完整、可靠的反應(yīng)環(huán)境信息,做到實(shí)時(shí)監(jiān)控。系統(tǒng)分析及其設(shè)計(jì)一、基本原理:濕度傳感器和溫度傳感器采集到數(shù)據(jù)后,通過給RS232串口增加ZigBee功能,替代設(shè)備電纜線進(jìn)行無線傳輸,串口傳輸設(shè)計(jì)為雙向全雙工,無硬件流控制,強(qiáng)制允許OTA(多條)時(shí)間和丟包重傳。本次課設(shè)采用的senser節(jié)點(diǎn)中燒寫EndDeviceEB程序,在協(xié)調(diào)器中燒寫CoordinatorEB程序。在設(shè)備綁定時(shí)先啟動協(xié)調(diào)器綁定,后啟動終端節(jié)點(diǎn)綁定,按鍵SW1用于設(shè)備之間綁定,SW2用于啟動匹配描述符請求。二、系統(tǒng)方案設(shè)計(jì)系統(tǒng)設(shè)計(jì)需求通過對Zigbee協(xié)議棧的學(xué)習(xí)與研究,結(jié)合嵌入式知識,根據(jù)溫濕度監(jiān)測的實(shí)際需求,確定出ZigBee的網(wǎng)絡(luò)協(xié)調(diào)器、終端數(shù)據(jù)采集節(jié)點(diǎn)管理、室內(nèi)溫度、濕度采集系統(tǒng)的設(shè)計(jì)方案。學(xué)習(xí)RS232串口通信原理及其數(shù)據(jù)包發(fā)送原理。最后根據(jù)設(shè)計(jì)的無線溫度采集系統(tǒng)搭建測試平臺,測量其網(wǎng)絡(luò)性能。系統(tǒng)方案設(shè)計(jì)方案一:飛思卡爾公司(Freescale)的MC13193芯片搭載了滿足IEEE802.15.4標(biāo)準(zhǔn)的射頻信號傳輸與接收的調(diào)制解調(diào)設(shè)備。這類功能完善的雙向2.4GHz頻段的收發(fā)設(shè)備能夠融合到ZigBee技術(shù)之中。MC13193包含低噪放大器,10mW的功率增強(qiáng)器,壓控振蕩器,電源供應(yīng)調(diào)節(jié)模塊,所有頻段編碼和解碼模塊,包括可以轉(zhuǎn)換和控制數(shù)據(jù)的發(fā)送與接收串行外圍接口(SPI)中斷請求輸出。采用O-QPSK的調(diào)制方式,最大傳輸速率為250kb/s。搭配高性能的微處理器一起使用,MC13193可以提供低成本且高效率的短距離數(shù)據(jù)傳輸解決方案。MC13193和MCU兩者采用串行外圍接口(SPI)連接,因此可以保證飛思卡爾龐大產(chǎn)品系列中的任意一款MCU都能與之匹配使用。方案二:選擇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)需求。系統(tǒng)方案選擇通過對比以上兩種方案開發(fā)的難易程度、開發(fā)周期和現(xiàn)有的實(shí)驗(yàn)環(huán)境我們選擇方案二。無線溫度采集系統(tǒng)改變了傳統(tǒng)有線的數(shù)據(jù)采集系統(tǒng)搭建布線困難,監(jiān)測區(qū)域受限等諸多不足。ZigBee這種新興的短距離無線通信系統(tǒng)具有功耗少,性價(jià)比高,系統(tǒng)維護(hù)快捷方便,而且通過在傳感器模塊上添加FLASH存儲設(shè)備,使得數(shù)據(jù)采集工作能夠擺脫對監(jiān)測過程網(wǎng)絡(luò)輻射范圍的限制,可應(yīng)用到許多的場合更好的改善采集工作的便捷行。通過與其他通信技術(shù)(如GSM/GPRS)的無縫接合,能夠?qū)崿F(xiàn)采集數(shù)據(jù)的遠(yuǎn)程傳輸,滿足對數(shù)據(jù)采集區(qū)域的遠(yuǎn)程監(jiān)控。一般以ZigBee技術(shù)為核心的無線溫度采集系統(tǒng)的工作過程為:協(xié)調(diào)器節(jié)點(diǎn)首先應(yīng)搭建網(wǎng)絡(luò),等待各自終端采集節(jié)點(diǎn)的入網(wǎng)請求;終端節(jié)點(diǎn)經(jīng)過驗(yàn)證加入網(wǎng)絡(luò)后,把溫度傳感器采集到的數(shù)據(jù)通過無線網(wǎng)絡(luò)上傳傳輸給協(xié)調(diào)器節(jié)點(diǎn);協(xié)調(diào)器節(jié)點(diǎn)接收到數(shù)據(jù)包后,進(jìn)行數(shù)據(jù)包解析,并通過串口將溫度信息以及子節(jié)點(diǎn)地址等有效信息存儲并顯示在監(jiān)控界面上。三、總體設(shè)計(jì)無線傳感器溫度測量系統(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è)無線溫度采集系統(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)較為簡化,僅由一個(gè)CC2530模塊,F(xiàn)lash存儲,2節(jié)1.5V電池和溫度傳感器組成,各個(gè)終端節(jié)點(diǎn)被初始化為無信標(biāo)網(wǎng)絡(luò)中的終端設(shè)備。終端設(shè)備上電復(fù)位后,便啟動搜索指定信道上的ZigBee協(xié)調(diào)器,并發(fā)送連接請求,終端設(shè)備在成功入網(wǎng)后,將被賦予一個(gè)16位短地址,在以后網(wǎng)絡(luò)中的通信都以這個(gè)16位的短地址作為節(jié)點(diǎn)的標(biāo)識;啟動休眠定時(shí)器,間隔10秒鐘喚醒一次,醒來后使用一種簡單的非時(shí)隙CSMA-CA,通過競爭機(jī)制取得信道使用權(quán),自己向協(xié)調(diào)器節(jié)點(diǎn)發(fā)送請求數(shù)據(jù)。利用模塊上的溫度傳感器模塊檢測環(huán)境溫度,并上傳給協(xié)調(diào)器節(jié)點(diǎn),然后立即再次進(jìn)入休眠狀態(tài),最大限度地減少能耗,延長終端節(jié)點(diǎn)電源續(xù)航時(shí)間,同時(shí)也可以延伸采集范圍,即利用ZigBe網(wǎng)絡(luò)的自組織性我們可以攜帶輕巧的終端數(shù)據(jù)采集節(jié)點(diǎn)到實(shí)際測量區(qū)域完成數(shù)據(jù)采集工作,如果超出了無線網(wǎng)絡(luò)可以支持的傳輸范圍,那可以將數(shù)據(jù)暫時(shí)存儲在Flash存儲器中。網(wǎng)絡(luò)中的協(xié)調(diào)器節(jié)點(diǎn)負(fù)責(zé)搜集各溫度采集節(jié)點(diǎn)的信息,并將信息快速的通過RS232串口按事先定義好的格式上傳PC機(jī),隨即解析并顯示出來。1、總體設(shè)計(jì)框圖如下:圖1無線溫濕度采集系統(tǒng)框圖2、硬件設(shè)計(jì)實(shí)物圖如下:2.1CC2530郵票孔節(jié)點(diǎn)模塊2.2無線節(jié)點(diǎn)模塊2.3溫濕度采集模塊溫濕度監(jiān)測芯片說明3.1SHT10說明SHT10是一款高度集成的溫度濕度傳感器芯片,提供全標(biāo)定的數(shù)字輸出。它采用專利的COMSens技術(shù),確保了傳感器具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括包括一個(gè)電容性聚合體測濕敏感元件、一個(gè)能隙材料制成的測溫元件,并在同一芯片上,與14位的A/D轉(zhuǎn)換器以及串行接口電路進(jìn)行連接。SH10引腳特性如下:3.1.1、電源引腳SHT10的供電電壓為2.4~5.5V。傳感器上電后,要等待11ms以越過“休眠”狀態(tài)。在此期間無需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個(gè)100nF的電容,用以去耦濾波。3.1.2、串行接口(兩線雙向)SHT10的串行接口,在傳感器信號的讀取及電源損耗方面,都做了優(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)定。為避免信號沖突,微處理器應(yīng)驅(qū)動DATA在低電平。需要一個(gè)外部的上拉電阻(例如:10kΩ)將信號提拉至高電平(參見圖2)。上拉電阻通常已包含在微處理器的I/O電路中。3.1.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)定。為避免信號沖突,微處理器應(yīng)驅(qū)動DATA在低電平。需要一個(gè)外部的上拉電阻(例如:10kΩ)將信號提拉至高電平(參見圖2)。上拉電阻通常已包含在微處理器的I/O電路中。3.1.7、測量時(shí)序(RH和T)發(fā)布一組測量命令(‘00000101’表示相對濕度RH,‘00000011’表示溫度T)后,控制器要等待測量結(jié)束。這個(gè)過程需要大約11/55/210ms,分別對應(yīng)8/12/14bit測量。確切的時(shí)間隨內(nèi)部晶振速度,最多有±15%變化。SHTxx通過下拉DATA至低電平并進(jìn)入空閑模式,表示測量的結(jié)束??刂破髟谠俅斡|發(fā)SCK時(shí)鐘前,必須等待這個(gè)“數(shù)據(jù)備妥”信號來讀出數(shù)據(jù)。檢測數(shù)據(jù)可以先被存儲,這樣控制器可以繼續(xù)執(zhí)行其它任務(wù)在需要時(shí)再讀出數(shù)據(jù)。接著傳輸2個(gè)字節(jié)的測量數(shù)據(jù)和1個(gè)字節(jié)的CRC奇偶校驗(yàn)。uC需要通過下拉DATA為低電平,以確認(rèn)每個(gè)字節(jié)。所有的數(shù)據(jù)從MSB開始,右值有效(例如:對于12bit數(shù)據(jù),從第5個(gè)SCK時(shí)鐘起算作MSB;而對于8bit數(shù)據(jù),首字節(jié)則無意義)。用CRC數(shù)據(jù)的確認(rèn)位,表明通訊結(jié)束。如果不使用CRC-8校驗(yàn),控制器可以在測量值LSB后,通過保持確認(rèn)位ack高電平,來中止通訊。在測量和通訊結(jié)束后,SHTxx自動轉(zhuǎn)入休眠模式。3.1.8、通訊復(fù)位時(shí)序如果與SHTxx通訊中斷,下列信號時(shí)序可以復(fù)位串口:當(dāng)DATA保持高電平時(shí),觸發(fā)SCK時(shí)鐘9次或更多。在下一次指令前,發(fā)送一個(gè)“傳輸啟動”時(shí)序。這些時(shí)序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。通訊復(fù)位時(shí)序圖4、CC2530說明4.1、簡介CC2530是用于2.4-GHz

IEEE802.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)型8051CPU,系統(tǒng)內(nèi)可編程閃存,8-KBRAM和許多其它強(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)大和完整的ZigBeeRF4CE

遠(yuǎn)程控制解決方案。4.2、引腳描述引腳名稱引腳引腳類型描述AVDD128電源(模擬)2-V–3.6-V模擬電源連接AVDD227電源(模擬)2-V–3.6-V模擬電源連接AVDD324電源(模擬)2-V–3.6-V模擬電源連接AVDD429電源(模擬)2-V–3.6-V模擬電源連接AVDD521電源(模擬)2-V–3.6-V模擬電源連接AVDD631電源(模擬)2-V–3.6-V模擬電源連接DCOUPL40電源(數(shù)字)1.8V數(shù)字電源去耦。不使用外部電路供應(yīng)。DVDD139電源(數(shù)字)2-V–3.6-V數(shù)字電源連接DVDD210電源(數(shù)字)2-V–3.6-V數(shù)字電源連接GND-接地接地襯墊必須連接到一個(gè)堅(jiān)固的接地面。GND1,2,3,4未使用的引腳

連接到GNDP0_019數(shù)字I/O端口0.0P0_118數(shù)字I/O端口0.1P0_217數(shù)字I/O端口0.2P0_316數(shù)字I/O端口0.3P0_415數(shù)字I/O端口0.4P0_514數(shù)字I/O端口0.5P0_613數(shù)字I/O端口0.6P0_712數(shù)字I/O端口0.7P1_011數(shù)字I/O端口1.0-20-mA驅(qū)動能力P1_19數(shù)字I/O端口1.1-20-mA驅(qū)動能力P1_28數(shù)字I/O端口1.2P1_37數(shù)字I/O端口1.3P1_46數(shù)字I/O端口1.4P1_55數(shù)字I/O端口1.5P1_638數(shù)字I/O端口1.6P1_737數(shù)字I/O端口1.7P2_036數(shù)字I/O端口2.0P2_135數(shù)字I/O端口2.1P2_234數(shù)字I/O端口2.2P2_333數(shù)字I/O模擬端口2.3/32.768kHzXOSCP2_432數(shù)字I/O模擬端口2.4/32.768kHzXOSCRBIAS30模擬I/O參考電流的外部精密偏置電阻RESET_N20數(shù)字輸入復(fù)位,活動到低電平RF_N26RFI/ORX期間負(fù)RF輸入信號到LNARF_P25RFI/ORX期間正RF輸入信號到LNAXOSC_Q122模擬I/O32-MHz晶振引腳1或外部時(shí)鐘輸入XOSC_Q223模擬I/O32-MHz晶振引腳24.3、模塊說明CC2530芯片系列中使用的8051CPU內(nèi)核是一個(gè)單周期的8051兼容內(nèi)核。它有三種不同的內(nèi)存訪問總線(SFR,DATA和CODE/XDATA),單周期訪問SFR,DATA和主SRAM。它還包括一個(gè)調(diào)試接口和一個(gè)18輸入擴(kuò)展中斷單元。中斷控制器總共提供了18個(gè)中斷源,分為六個(gè)中斷組,每個(gè)與四個(gè)中斷優(yōu)先級之一相關(guān)。當(dāng)設(shè)備從活動模式回到空閑模式,任一中斷服務(wù)請求就被激發(fā)。一些中斷還可以從睡眠模式(供電模式1-3)喚醒設(shè)備。內(nèi)存仲裁器位于系統(tǒng)中心,因?yàn)樗ㄟ^SFR

總線把CPU和DMA控制器和物理存儲器以及所有外設(shè)連接起來。內(nèi)存仲裁器有四個(gè)內(nèi)存訪問點(diǎn),每次訪問可以映射到三個(gè)物理存儲器之一:一個(gè)8-KBSRAM、閃存存儲器和XREG/SFR

寄存器。它負(fù)責(zé)執(zhí)行仲裁,并確定同時(shí)訪問同一個(gè)物理存儲器之間的順序。8-KBSRAM映射到DATA存儲空間和部分XDATA存儲空間。8-KBSRAM是一個(gè)超低功耗的SRAM,即使數(shù)字部分掉電(供電模式2和3)也能保留其內(nèi)容。這是對于低功耗應(yīng)用來說很重要的一個(gè)功能。32/64/128/256KB閃存塊為設(shè)備提供了內(nèi)電路可編程的非易失性程序存儲器,映射到XDATA

存儲空間。除了保存程序代碼和常量以外,非易失性存儲器允許應(yīng)用程序保存必須保留的數(shù)據(jù),這樣設(shè)備重啟之后可以使用這些數(shù)據(jù)。使用這個(gè)功能,例如可以利用已經(jīng)保存的網(wǎng)絡(luò)具體數(shù)據(jù),就不需要經(jīng)過完全啟動、網(wǎng)絡(luò)尋找和加入過程。4.4、時(shí)鐘和電源管理數(shù)字內(nèi)核和外設(shè)由一個(gè)1.8-V低差穩(wěn)壓器供電。它提供了電源管理功能,可以實(shí)現(xiàn)使用不同供電模式的長電池壽命的低功耗運(yùn)行。有五種不同的復(fù)位源來復(fù)位設(shè)備。4.5、外設(shè)CC2530包括許多不同的外設(shè),允許應(yīng)用程序設(shè)計(jì)者開發(fā)先進(jìn)的應(yīng)用。調(diào)試接口執(zhí)行一個(gè)專有的兩線串行接口,用于內(nèi)電路調(diào)試。通過這個(gè)調(diào)試接口,可以執(zhí)行整個(gè)閃存存儲器的擦除、控制使能哪個(gè)振蕩器、停止和開始執(zhí)行用戶程序、執(zhí)行8051

內(nèi)核提供的指令、設(shè)置代碼斷點(diǎn),以及內(nèi)核中全部指令的單步調(diào)試。使用這些技術(shù),可以很好地執(zhí)行內(nèi)電路的調(diào)試和外部閃存的編程。設(shè)備含有閃存存儲器以存儲程序代碼。閃存存儲器可通過用戶軟件和調(diào)試接口編程。閃存控制器處理寫入和擦除嵌入式閃存存儲器。閃存控制器允許頁面擦除和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存儲空間訪問存儲器,因此能夠訪問所有物理存儲器。每個(gè)通道(觸發(fā)器、優(yōu)先級、傳輸模式、尋址模式、源和目標(biāo)指針和傳輸計(jì)數(shù))用DMA描述符在存儲器任何地方配置。許多硬件外設(shè)(AES

內(nèi)核、閃存控制器、USART、定時(shí)器、ADC接口)通過使用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輸出或捕獲輸入信號邊沿的時(shí)序。它還可以配置在IR產(chǎn)生模式,計(jì)算定時(shí)器3周期,輸出是ANDed,定時(shí)器3的輸出是用最小的CPU互動產(chǎn)生調(diào)制的消費(fèi)型IR信號。MAC定時(shí)器(定時(shí)器2)是專門為支持IEEE802.15.4MAC或軟件中其他時(shí)槽的協(xié)議設(shè)計(jì)。定時(shí)器有一個(gè)可配置的定時(shí)器周期和一個(gè)8位溢出計(jì)數(shù)器,可以用于保持跟蹤已經(jīng)經(jīng)過的周期數(shù)。一個(gè)16位捕獲寄存器也用于記錄收到/發(fā)送一個(gè)幀開始界定符的精確時(shí)間,或傳輸結(jié)束的精確時(shí)間,還有一個(gè)16位輸出比較寄存器可以在具體時(shí)間產(chǎn)生不同的選通命令(開始RX,開始TX,等等)到無線模塊。定時(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-kHzRC振蕩器的周期。睡眠定時(shí)器在除了供電模式3的所有工作模式下不斷運(yùn)行。這一定時(shí)器的典型應(yīng)用是作為實(shí)時(shí)計(jì)數(shù)器,或作為一個(gè)喚醒定時(shí)器跳出供電模式1或2。ADC支持7到12位的分辨率,分別在30kHz或4kHz的帶寬。DC和音頻轉(zhuǎn)換可以使用高達(dá)八個(gè)輸入通道(端口0)。輸入可以選擇作為單端或差分。參考電壓可以是內(nèi)部電壓、AVDD或是一個(gè)單端或差分外部信號。ADC還有一個(gè)溫度傳感輸入通道。ADC可以自動執(zhí)行定期抽樣或轉(zhuǎn)換通道序列的程序。隨機(jī)數(shù)發(fā)生器使用一個(gè)16位LFSR來產(chǎn)生偽隨機(jī)數(shù),這可以被CPU讀取或由選通命令處理器直接使用。例如隨機(jī)數(shù)可以用作產(chǎn)生隨機(jī)密鑰,用于安全。AES加密/解密內(nèi)核允許用戶使用帶有128位密鑰的AES算法加密和解密數(shù)據(jù)。這一內(nèi)核能夠支持IEEE802.15.4MAC安全、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í)器。USART0和USART1每個(gè)被配置為一個(gè)SPI主/從或一個(gè)UART。它們?yōu)镽X和TX提供了雙緩沖,以及硬件流控制,因此非常適合于高吞吐量的全雙工應(yīng)用。每個(gè)都有自己的高精度波特率發(fā)生器,因此可以使普通定時(shí)器空閑出來用作其他用途。4.6、無線設(shè)備CC2530具有一個(gè)IEEE802.15.4兼容無線收發(fā)器。RF內(nèi)核控制模擬無線模塊。另外,它提供了MCU和無線設(shè)備之間的一個(gè)接口,這使得可以發(fā)出命令,讀取狀態(tài),自動操作和確定無線設(shè)備事件的順序。無線設(shè)備還包括一個(gè)數(shù)據(jù)包過濾和地址識別模塊。5、軟件設(shè)計(jì)在一個(gè)ZigBee應(yīng)用系統(tǒng)中,光有硬件是沒有用的,還需要與之相匹配的軟件程序才能真正的能夠使用。無線溫度采集系統(tǒng)的軟件設(shè)計(jì)主要包括ZigBee節(jié)點(diǎn)間的通信程序,協(xié)調(diào)器節(jié)點(diǎn)組網(wǎng)程序。5.1、軟件開發(fā)環(huán)境的選擇ZigBee協(xié)議棧:ZigBee2007ZigBee2007的開發(fā)及下載工具:TI公司的IAR軟件5.2、基于ZigBee無線傳感器網(wǎng)絡(luò)的測控系統(tǒng)中協(xié)調(diào)器設(shè)備的軟件設(shè)計(jì)流程如下:macEventLoopmacEventLoop處理本任務(wù)當(dāng)前優(yōu)先級最高的事件macTaskInit注冊相應(yīng)事件YES處理本任務(wù)當(dāng)前優(yōu)先級最高的事件macTaskInitNwk_event_loop處理本任務(wù)當(dāng)前優(yōu)先級最高的事件nwk_init注冊相應(yīng)事件Nwk_event_loop處理本任務(wù)當(dāng)前優(yōu)先級最高的事件nwk_initHal_InitHalProcessevet處理本任務(wù)當(dāng)前優(yōu)先級最高的事件開始注冊相應(yīng)事件YESHal_InitHalProcessevet處理本任務(wù)當(dāng)前優(yōu)先級最高的事件開始MT_ProcessEventMT_TaskInit處理本任務(wù)當(dāng)前優(yōu)先級最高的事件硬件初始化MT_ProcessEventMT_TaskInit處理本任務(wù)當(dāng)前優(yōu)先級最高的事件硬件初始化osalInitTASKS系統(tǒng)初始化注冊相應(yīng)事件YESosalInitTASKS系統(tǒng)初始化APS_event_loopAPS_Init處理本任務(wù)當(dāng)前優(yōu)先級最高的事件注冊相應(yīng)事件YESAPS_event_loopAPS_Init處理本任務(wù)當(dāng)前優(yōu)先級最高的事件執(zhí)行操作系統(tǒng)執(zhí)行操作系統(tǒng)ZDApp_InitZDAappeventlooppp處理本任務(wù)當(dāng)前優(yōu)先級最高的事件注冊相應(yīng)事件NOYESZDApp_InitZDAappeventlooppp處理本任務(wù)當(dāng)前優(yōu)先級最高的事件SAPI_ProcessEvent處理本任務(wù)當(dāng)前優(yōu)先級最高的事件NOSAPI_ProcessEvent處理本任務(wù)當(dāng)前優(yōu)先級最高的事件SAPI_Init注冊相應(yīng)事件YESSAPI_Init5.3、無線接收串口轉(zhuǎn)發(fā)流程圖如下:SerialApp_ProcessEventSerialApp_ProcessEventOOsal_msg_receive(SerialApp_Taskid)AAF_INCOMING_MSG_CMDSerialApp_ProcessMSGCmdSerialApp_ProcessMSGCmdHalUARTWriteHalUARTWriteOOsal_set_event(SerialApp_TaskID,SERIALAPP_RESP_EVT)SerialApp_RespSerialApp_Resp5.4、串口接收無線轉(zhuǎn)發(fā)流程圖如下:SerialApp_CallBackSerialApp_CallBackSerialApp_Send()SerialApp_Send()HalUARTResdHalUARTResdAF_DataResquestAF_DataResquest發(fā)送是否成功?發(fā)送是否成功?結(jié)束YES結(jié)束Osal_Set_event(SerialApp_TaskID,Osal_Set_event(SerialApp_TaskID,SERIALAPPSENDEVT)5.5源代碼如下:#include"ZComDef.h"#include"OSAL.h"#include"OSAL_Nv.h"#include"OnBoard.h"#include"ZMAC.h"#ifndefNONWK#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"http://MaximunnumberofVddsamplescheckedbeforegoon#defineMAX_VDD_SAMPLES3//電壓檢測#defineZMAIN_VDD_LIMITHAL_ADC_VDD_LIMIT_4//正常電壓極限值externboolHalAdcCheckVdd(uint8limit);//設(shè)備啟動前的芯片電壓檢測函數(shù)staticvoidzmain_dev_info(void);staticvoidzmain_ext_addr(void);staticvoidzmain_vdd_check(void);#ifdefLCD_SUPPORTEDstaticvoidzmain_lcd_init(void);#endif/**********************************************************************@fnmain*@briefFirstfunctioncalledafterstartup.*@returndon'tcare*/intmain(void){//Turnoffinterruptsosal_int_disable(INTS_ALL);//關(guān)閉所有中斷EA=0//InitializationforboardrelatedstuffsuchasLEDsHAL_BOARD_INIT();//初始化系統(tǒng)時(shí)鐘、LED所使用的IO等//Makesuresupplyvoltageishighenoughtorunzmain_vdd_check();//檢測芯片電壓是否正常//InitializeboardI/OInitBoard(OB_COLD);//初始化LED的IO//InitialzeHALdriversHalDriverInit();//初始化芯片各個(gè)硬件模塊(包括LCD)//InitializeNVSystemosal_nv_init(NULL);//初始化FLASH存儲//InitializetheMACZMacInit();//初始化MAC層//Determinetheextendedaddresszmain_ext_addr();//形成節(jié)點(diǎn)MAC地址//InitializebasicNVitemszgInit();//初始化一些非易失變量#ifndefNONWK//SincetheAFisn'tatask,callit'sinitializationroutineafInit();//初始化應(yīng)用框架層#endif//Initializetheoperatingsystemosal_init_system();//初始化操作系統(tǒng)//Allowinterruptsosal_int_enable(INTS_ALL);//使能全部中斷//FinalboardinitializationInitBoard(OB_READY);//初始化按鍵//Displayinformationaboutthisdevicezmain_dev_info();//在液晶上顯示設(shè)備IEEE信息/*DisplaythedeviceinfoontheLCD*/#ifdefLCD_SUPPORTEDzmain_lcd_init();//在LCD上顯示該設(shè)備的信息#endif#ifdefWDT_IN_PM1/*IfWDTisused,thisisagoodplacetoenableit.*/WatchDogEnable(WDTIMX);#endifosal_start_system();//NoReturnfromherereturn0;//Shouldn'tgethere.}/**********************************************************************@fnzmain_vdd_check*@briefCheckiftheVddisOKtoruntheprocessor.*@returnReturnifVddisok;otherwise,flashLED,thenreset*********************************************************************/staticvoidzmain_vdd_check(void)//檢測設(shè)備電壓{uint8vdd_passed_count=0;booltoggle=0;//RepeatgettingthesampleuntilnumberoffailuresorsuccesseshitsMAX//thenbasedonthecountvalue,determineifthedeviceisreadyornotwhile(vdd_passed_count<MAX_VDD_SAMPLES)//電壓正常情況下,檢查3次{if(HalAdcCheckVdd(ZMAIN_VDD_LIMIT))//設(shè)置電壓正常的極限值并使用AD檢測電壓{vdd_passed_count++;//Keeptrack#timesVddpassesinarowMicroWait(10000);//Wait10mstotryagain}else{vdd_passed_count=0;//ResetpassedcounterMicroWait(50000);//Wait50msMicroWait(50000);//Waitanother50mstotryagain}/*toggleLED1andLED2*/if(vdd_passed_count==0){if((toggle=!(toggle)))HAL_TOGGLE_LED1();elseHAL_TOGGLE_LED2();}}/*turnoffLED1*/HAL_TURN_OFF_LED1();HAL_TURN_OFF_LED2();}/***************************************************************************************************@fnzmain_ext_addr**@briefExecuteaprioritizedsearchforavalidextendedaddressandwritetheresults*intotheOSALNVsystemforusebythe*system.TemporaryaddressnotsavedtoNV.*inputparameters*None.*outputparameters*None.*@returnNone.***************************************************************************************************/staticvoidzmain_ext_addr(void){uint8nullAddr[Z_EXTADDR_LEN]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};uint8writeNV=TRUE;//Firstcheckwhetheranon-erasedextendedaddressexistsintheOSALNV.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))){//Attempttoreadtheextendedaddressfromthelocationonthelockbitspage//wheretheprogrammingtoolsknowtoreserveit.HalFlashRead(HAL_FLASH_IEEE_PAGE,HAL_FLASH_IEEE_OSET,aExtendedAddress,Z_EXTADDR_LEN);if(osal_memcmp(aExtendedAddress,nullAddr,Z_EXTADDR_LEN)){//AttempttoreadtheextendedaddressfromthedesignatedlocationintheInfoPage.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//Novalidextendedaddresswasfound.{uint8idx;#if!defined(NV_RESTORE)writeNV=FALSE;//MakethisatemporaryIEEEaddress#endif/*Attempttocreateasufficientlyrandomextended*addressforexpediency.*Note:thisisonlyvalid/legalinatestenvironment*andmustneverbeusedforacommercialproduct.*/for(idx=0;idx<(Z_EXTADDR_LEN-2);){uint16randy=osal_rand();aExtendedAddress[idx++]=LO_UINT16(randy);aExtendedAddress[idx++]=HI_UINT16(randy);}//Next-to-MSBidentifiesZigBeedevicetype.#ifZG_BUILD_COORDINATOR_TYPE&&!ZG_BUILD_JOINING_TYPEaExtendedAddress[idx++]=0x10;#elifZG_BUILD_RTRONLY_TYPEaExtendedAddress[idx++]=0x20;#elseaExtendedAddress[idx++]=0x30;#endif//MSBhashistoricalsignficance.aExtendedAddress[idx]=0xF8;}}if(writeNV){(void)osal_nv_write(ZCD_NV_EXTADDR,0,Z_EXTADDR_LEN,aExtendedAddress);}}//SettheMACPIBextendedaddressaccordingtoresults//fromabove.(void)ZMacSetReq(MAC_EXTENDED_ADDRESS,aExtendedAddress);}/***************************************************************************************************@fnzmain_dev_info*@briefThisdisplaystheIEEE(MSBtoLSB)ontheLCD.*inputparameters*None.*outputparameters*None.*@returnNone.***************************************************************************************************/staticvoidzmain_dev_info(void){#ifdefLCD_SUPPORTEDuint8i;uint8*xad;uint8lcd_buf

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論