道路節(jié)能照明終端設(shè)計_第1頁
道路節(jié)能照明終端設(shè)計_第2頁
道路節(jié)能照明終端設(shè)計_第3頁
道路節(jié)能照明終端設(shè)計_第4頁
道路節(jié)能照明終端設(shè)計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

福州大學(xué)至誠學(xué)院本科生畢業(yè)設(shè)計(論文)道路節(jié)能照明終端設(shè)計摘要隨著城市建設(shè)工作的不斷開展,各種各樣的路燈照明系統(tǒng)也在城市之中建立了起來,其一方面讓群眾獲得了視覺上的美觀感受,另一方面也讓城市的特色得到了體現(xiàn),然而與此同時,這些照明系統(tǒng)也產(chǎn)生了許多需要解決的問題,例如管理成本、物料成本、電力成本以及安全問題等。隨著物聯(lián)網(wǎng)系統(tǒng)的不斷發(fā)展,人們對于道路照明系統(tǒng)也有了更多的需求:除了基礎(chǔ)的照明作用之外,其還要具備智能性、科技性以及互聯(lián)性,其主要目的是要對路燈從單點到整體進行監(jiān)管,并進行相應(yīng)的調(diào)節(jié).以物聯(lián)網(wǎng)技術(shù)為基礎(chǔ)的道路照明控制體系在原本照明系統(tǒng)的基礎(chǔ)之上,有效整合了網(wǎng)絡(luò)通信、物聯(lián)網(wǎng)、嵌入式以及傳感器等多方面的技術(shù),為智能電網(wǎng)的構(gòu)建奠定了基礎(chǔ)。以ZigBee無線模塊以及LED光源為基礎(chǔ)的路燈系統(tǒng)有著較高的自動化程度,同時效率高、能耗低,LED本身的耗能較少,材質(zhì)環(huán)保,使用壽命長,而ZigBee模塊則能夠?qū)φ麄€照明系統(tǒng)進行調(diào)節(jié)與控制,不但能夠有效降低整個系統(tǒng)的能耗,同時還能夠讓照明設(shè)施的壽命進一步提高,降低維護成本。本文針對ZigBee網(wǎng)絡(luò)的特性,分層結(jié)構(gòu)以及協(xié)議棧,信息傳輸模式以及網(wǎng)絡(luò)拓?fù)涞榷鄠€方面進行探討,同時結(jié)合系統(tǒng)的實際需要,研究并設(shè)計了以ZigBee為基礎(chǔ)的道路照明控制控制系統(tǒng),同時進行了以CC2530單片機為核心的電源控制電路、LED照明控制電路、光強收集電路等硬件模塊的設(shè)計。經(jīng)測試,該設(shè)計在100m范圍內(nèi)可以做到可靠的通信傳輸,并實現(xiàn)燈光的控制調(diào)節(jié),相比于傳統(tǒng)路燈系統(tǒng)具有結(jié)構(gòu)簡單、可無線控制的優(yōu)勢,有較好的應(yīng)用前景。關(guān)鍵詞:ZigBee,CC2530,無線路燈DesignofRoadLightingEnergySavingTerminalAbstractWiththedevelopmentofcityconstruction,allkindsofstreetlamplightingsysteminthecityalsobuildup,onesidetoletthecrowdwonthebeautifulfeelingonthevision,ontheotherhand,urbancharacteristicsreflectedatthesametime,however,thelightingsystemalsoproducedmanyproblemsneedtobesolved,suchasthemanagementcost,materialcost,powercostandsafety,etc.WiththecontinuousdevelopmentoftheInternetofthingssystem,peopledemandforroadlightingsystemsalsohavemore:inadditiontobasiclightingeffect,itwillbeintelligent,integratedandinterconnectedness,itsmainpurposeistoregulateforstreetlightfromasinglepointtoasawhole,andmakecorrespondingadjustment.BasedontheInternetofthingstechnologyofroadlightingcontrolsystemonthebasisoforiginallightingsystem,theeffectiveintegrationofthenetworkcommunication,theInternetofthings,embeddedandsensortechnology,whichlaidafoundationfortheconstructionofsmartgrid.BasedontheZigBeewirelessmoduleandtheLEDlightsourceofthestreetlampsystemhasahighdegreeofautomation,highefficiency,lowenergyconsumptionatthesametime,theLEDitself,lessenergyconsumption,environmentalprotectionmaterial,longservicelife,whereasZigBeemodulecancarryontheadjustmentandcontroloftheentirelightingsystem,notonlycaneffectivelyreducetheenergyconsumptionofthewholesystem,atthesametimealsocanletthelightingfacilities,tofurtherimprovethelifeofalowermaintenancecosts.AimingatthecharacteristicsoftheZigBeenetwork,hierarchicalstructureandprotocolstack,theinformationtransfermode,anddiscussestheseveralaspectssuchasthenetworktopology,combiningtheactualrequirementofthesystematthesametime,theresearchanddesignthecontrolsystembasedonZigBeeroadlightingcontrol,atthesametimetheCC2530single-chipmicrocomputerasthecoreofthepowercontrolcircuit,LEDlightingcontrolcircuit,lightintensitycollectioncircuit,thedesignofthehardwaremodules.Thetestshowsthatthedesigncanachievereliablecommunicationtransmissionandcontrolandadjustmentoflightwithin100m.Comparedwiththetraditionalstreetlampsystem,ithastheadvantagesofsimplestructureandwirelesscontrolandhasagoodapplicationprospect.Keywords:ZigBee,CC2530,WirelessStreetLight目錄1281_WPSOffice_Level1第1章緒論 119992_WPSOffice_Level21.1課題研究背景 130723_WPSOffice_Level21.2國內(nèi)外路燈控制系統(tǒng)現(xiàn)狀及分析 110915_WPSOffice_Level21.3ZigBee技術(shù)介紹 2459_WPSOffice_Level21.4本課題主要研究內(nèi)容 528329_WPSOffice_Level1第2章系統(tǒng)方案設(shè)計 621183_WPSOffice_Level22.1無線路燈控制系統(tǒng)的組成 624919_WPSOffice_Level22.2系統(tǒng)核心技術(shù)分析 65169_WPSOffice_Level1第3章系統(tǒng)硬件電路設(shè)計 829231_WPSOffice_Level23.1系統(tǒng)總體設(shè)計方案 832069_WPSOffice_Level23.2單片機最小系統(tǒng) 84801_WPSOffice_Level23.3光敏電阻光強采集 931813_WPSOffice_Level23.4路燈控制電路 95956_WPSOffice_Level1第4章系統(tǒng)軟件設(shè)計 1132593_WPSOffice_Level24.1Z-Stack及軟件環(huán)境 117416_WPSOffice_Level24.2網(wǎng)絡(luò)中終端的設(shè)計 1432716_WPSOffice_Level24.3系統(tǒng)的組網(wǎng)設(shè)計 1411368_WPSOffice_Level1結(jié)論 1819959_WPSOffice_Level1參考文獻 1916146_WPSOffice_Level2謝辭 2018069_WPSOffice_Level1附錄1源代碼 2119200_WPSOffice_Level1附錄2原理圖 2910901_WPSOffice_Level1附錄3實物圖 30緒論1.1課題研究背景隨著地區(qū)發(fā)展與基礎(chǔ)建設(shè)步伐的加快,各城市之間道路照明的建設(shè)規(guī)模越來越大,但是介于傳統(tǒng)路燈系統(tǒng)耗能高等缺點,傳統(tǒng)的路燈控制系統(tǒng)已經(jīng)不符合當(dāng)今社會低能耗、低碳的能源觀發(fā)展需求。首先,控制路燈的系統(tǒng)功能少,技術(shù)落后,靈活性差;其次,由于道路照明規(guī)模的增加,路燈控制需要的人力資源、財力比以前大大增加,仍然難以高效率地發(fā)揮其所具有效能;另外,傳統(tǒng)的路燈控制系統(tǒng)更新難度大,不能利用遠(yuǎn)程技術(shù)控制和巡查路燈,需要人員去實地巡查,才能知道路燈的實時狀況,不僅工作量龐大,而且效率低下[1]。目前我國大部分地區(qū)的路燈控制系統(tǒng)的應(yīng)用技術(shù)不高,還在使用傳統(tǒng)的簡單的人員控制,礙于這種控制系統(tǒng)由于沒有采用無線通信技術(shù),路燈的工作狀態(tài)無法通過實時數(shù)據(jù)獲知,維修和管理要依靠人員巡查等傳統(tǒng)方法,導(dǎo)致無法實現(xiàn)對路燈的集中監(jiān)控、操作和數(shù)據(jù)統(tǒng)計,這導(dǎo)致了白天亮燈,夜間不亮燈的現(xiàn)象經(jīng)常發(fā)生,不但造成電力資源,人力資源的浪費,又會給人民的出行帶來一定的安全風(fēng)險[2]。1.2國內(nèi)外路燈控制系統(tǒng)現(xiàn)狀及分析無線路燈控制系統(tǒng)的控制模式為分布式,而信息收集模式則屬于集中式,其綜合運用了IT技術(shù)以及控制技術(shù),并能通過軟件編程以及通信技術(shù)實現(xiàn)對習(xí)慣照明設(shè)備的調(diào)節(jié)與監(jiān)管。就目前世界路燈系統(tǒng)的發(fā)展程度而言,國外在路燈控制方面的所使用的技術(shù)明要比國內(nèi)的更先進,并且在使用規(guī)模和技術(shù)水平上遠(yuǎn)遠(yuǎn)優(yōu)于國內(nèi)。在計算機運用技術(shù)普遍發(fā)展,方案成熟的當(dāng)今社會,利用計算機實現(xiàn)路燈各方面的控制,已經(jīng)成為了常用方法,英國、美國、澳大利亞、法國等國家使用電腦程序控制路燈的自動開閉以及故障路燈的檢測,使得管理路燈所消耗的資源成本大大降低。和國外相比較,我國的無線路燈控制系統(tǒng)的發(fā)展還處于起步階段,大部分地區(qū)路燈的控制由分散管理的控制器進行控制,分散性高、排障率低,仍處在人工直接現(xiàn)場控制階段。由于系統(tǒng)中缺少遠(yuǎn)程通信和傳感器采集數(shù)據(jù)功能,管理人員無法統(tǒng)一進行控制,導(dǎo)致路燈的實時控制結(jié)果不能集中監(jiān)測、記錄和統(tǒng)計,大部分管理部門采用人員巡察形式,設(shè)備是否健康運行主要取決于白天巡查線路,夜晚檢查路燈,在耗費大量的財力和人力的同時,實時性也差,維修故障的效率很低,難以滿足當(dāng)今社會大面積建設(shè)路燈要求[3]。隨著科技進步,物聯(lián)網(wǎng)技術(shù)越來越成熟,各行業(yè)取得了許多實際研究成果,極大的推動了信息技術(shù)的發(fā)展。未來的路燈控制系統(tǒng)的發(fā)展方向應(yīng)該更集中、無線化、更智能。對于管理人員來說,只要在控制中心,就能監(jiān)測到整個路燈系統(tǒng)的實時狀況;對于維修人員來說,能迅速知道故障路燈位置和故障形式;對群眾而言,高質(zhì)量的控制系統(tǒng)能夠為出行提供良好的保障。ZigBee技術(shù)可以較好地實現(xiàn)上述需求。1.3ZigBee技術(shù)介紹1.3.1ZigBee無線通信技術(shù)ZigBee是最近興起的無線網(wǎng)絡(luò)技術(shù),具有能耗小、價格低廉、復(fù)雜度小、距離近且數(shù)據(jù)率低等特點,擁有5層的體系結(jié)構(gòu),從低到高分別是物理層、介質(zhì)接入控制層、網(wǎng)絡(luò)層、運輸層以及應(yīng)用層。其中物理層位于協(xié)議的最底層,并且遵循IEEE802.15.4標(biāo)準(zhǔn)的規(guī)定,擁有具有低功耗、易開發(fā)、成本低的優(yōu)點。MAC層的作用是實現(xiàn)結(jié)點之間的鏈路管理工作,并提供信道控制、時限控制、幀格式控制以及安全保障等功能。運輸層以及網(wǎng)絡(luò)層是在上述兩層的基礎(chǔ)上通過軟件構(gòu)建的,主要功能有建立新的網(wǎng)絡(luò)、添加節(jié)點、刪除節(jié)點、實時調(diào)整網(wǎng)絡(luò)中節(jié)點的通信方式、管理PAN的網(wǎng)絡(luò)ID、將地址分配給剛加入網(wǎng)絡(luò)的節(jié)點、實時監(jiān)控終端的同步運行、實時管理網(wǎng)絡(luò)中的路由節(jié)點、對信息進行管理和防護網(wǎng)絡(luò)安全等。應(yīng)用層則負(fù)責(zé)建立功能函數(shù)開發(fā)接口(API),提供對設(shè)備配置子層ZDC和設(shè)備對象ZDO的支持,從而達(dá)到管理整個硬件系統(tǒng)的功能。此外,ZigBee協(xié)議還提供了安全功能層,可以選擇32/64/128位的秘鑰,對傳輸?shù)男畔⑦M行加密處理,以確保通信數(shù)據(jù)的安全傳輸,同時為網(wǎng)絡(luò)層、應(yīng)用層提供可靠安全的服務(wù)[4]。ZigBee協(xié)議結(jié)構(gòu)如圖1-1所示:圖1-1ZigBee協(xié)議結(jié)構(gòu)圖ZigBee能夠選取的頻段包括3個,主要有2.4GHz的ISM頻段,其中共劃分了16個信道;頻率為868MHz的歐洲頻段,其中共有1個信道;頻率為915MHz的美國頻段,其中共劃分了10個信道。中國采用免申報和免專利費的頻段是2.4GHz頻段,頻段長度為2.405GHz—2.480GHz,以5M作為劃分,共有16個信道可供使用,同時還具有很強的信道抗干擾性能。由于物理層選取了DS/FA技術(shù)(DirectSequence/FrequencyAgility),因此其能夠在較低信噪比的場合之中體現(xiàn)出較高的抗干擾作用。其傳輸?shù)乃俾释ǔ?0到250KB/s之間,對于傳感器的數(shù)據(jù)收集等場景較為適用,也能夠很方便的進行控制信息的發(fā)送?,F(xiàn)階段ZigBee已經(jīng)得到了十分普遍的使用,例如無線環(huán)境下的信息收集、設(shè)備管理、移動設(shè)備、智能家居、遠(yuǎn)程控制等等[5]。1.3.2ZigBee組網(wǎng)及網(wǎng)絡(luò)拓?fù)鋃igBee協(xié)議中一共涉及三類設(shè)施,分別是全功能設(shè)施(FullFunctionDevice,F(xiàn)FD)、簡化功能設(shè)施(ReducedFunctionDevice,RFD)以及協(xié)調(diào)器。網(wǎng)絡(luò)協(xié)調(diào)器實際上是擁有運算能力更快和資源更加豐富的一種FFD設(shè)備。RFD在組網(wǎng)拓?fù)渲型ǔW鹘K端設(shè)備,僅僅使用8位的MCU和4K的片上資源就能完成ZigBee協(xié)議的功能,但終端RFD相互之間是不能直接用無線通信的,所以每一個ZigBee網(wǎng)絡(luò)中必須至少擁有一個FFD協(xié)調(diào)器設(shè)備,來管理和維持網(wǎng)絡(luò)的數(shù)據(jù)傳遞、建立網(wǎng)絡(luò)等功能。ZigBee的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)共有3類,分別是星形、鏈?zhǔn)揭约熬W(wǎng)狀的結(jié)構(gòu),具體可參考下圖:圖1-2ZigBee網(wǎng)絡(luò)拓?fù)湫切谓Y(jié)構(gòu)搭建最簡便,所有端結(jié)點都和中心的協(xié)調(diào)器進行交互。鏈狀型網(wǎng)絡(luò)拓?fù)渲胁捎肍FD作為協(xié)調(diào)器與終端間傳遞數(shù)據(jù)的路由節(jié)點,能夠進一步延伸網(wǎng)絡(luò)通信的范圍。網(wǎng)狀型網(wǎng)絡(luò)拓?fù)涫荶igBee組網(wǎng)中使用的最復(fù)雜也是最可靠的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),當(dāng)某個節(jié)點出現(xiàn)問題而不能通信時,數(shù)據(jù)能通過其他鏈路傳到協(xié)調(diào)器,從而發(fā)現(xiàn)網(wǎng)絡(luò)中的故障,具有自修復(fù)、抗干擾等優(yōu)點。1.3.3ZigBee與其他無線網(wǎng)絡(luò)的對比ZigBee符合了IEEE802.15.4標(biāo)準(zhǔn)中的相關(guān)要求,是一種速率較小的無線網(wǎng),圖1-3是ZigBee與其他無線技術(shù)的工作距離和速率對比圖,由圖可知與它具有相似特性的無線網(wǎng)絡(luò)有:藍(lán)牙(Bluetooth)、Wifi、NFC以及移動蜂窩網(wǎng)(Cellular),每種網(wǎng)絡(luò)都有自身的特性以及各自的適用場景。ZigBee能夠選取的頻段包括3個,主要有2.4GHz的ISM頻段,其中共劃分了16個信道,最高速率為250Kbps;頻率為868MHz的歐洲頻段,其中共有1個信道,最高速率為40Kbps;頻率為915MHz的美國頻段,其中共劃分了10個信道,最高速率為20Kbps。由此能了解到ZigBee技術(shù)的最初目的就是為了滿足對低數(shù)據(jù)傳輸率的工業(yè)控制、數(shù)據(jù)采集、傳感器應(yīng)用領(lǐng)域的開發(fā)需求[6]。圖1-3網(wǎng)絡(luò)速率、距離特性對比圖表1-1網(wǎng)絡(luò)圖1-3各無線技術(shù)工作距離和速率對比表1-1詳細(xì)數(shù)據(jù)對比規(guī)范頻段速率(Mbps)數(shù)據(jù)/語音最大功耗傳輸方式連接設(shè)備數(shù)安全措施主要用途ZigBee868/915Mhz2.4Ghz0.02/0.040.25數(shù)據(jù)1-3mW點對多6553532/64秘鑰控制網(wǎng)絡(luò)/傳感器網(wǎng)絡(luò)藍(lán)牙2.4Ghz1/2/3語音數(shù)據(jù)100mW點對多8跳頻/秘鑰近距離遙控Wifi2.4Ghz11-54數(shù)據(jù)100mW點對多255WEP加密無線局域網(wǎng)紅外820nm1.52/4/16數(shù)據(jù)1-3mW點對點2IrDA個人局域網(wǎng)綜合各數(shù)據(jù),與其他無線技術(shù)相比,ZigBee有以下幾點優(yōu)勢:(1)成本低廉:ZigBee的協(xié)議棧大小只有有藍(lán)牙的十分之一,約為30kb,這使得開發(fā)的周期與成本大大降低。ZigBee所使用的無線頻段為免牌照頻段,工作節(jié)點只有2種,其中大多數(shù)是廉價的RFD節(jié)點,這使得開發(fā)成本進一步降低。(2)組網(wǎng)能力強:ZigBee協(xié)議能支持龐大數(shù)量的節(jié)點同時組網(wǎng),和3種組網(wǎng)方式,能構(gòu)建極其復(fù)雜的網(wǎng)絡(luò)拓?fù)?,在大?guī)模組網(wǎng)應(yīng)用中,向比于藍(lán)牙、Wifi等無線技術(shù),有著無可比擬的優(yōu)勢。(3)功耗低:ZigBee模塊所采用的硬件的工作電流和速率都比較低,還能支持多種睡眠模式,在無數(shù)據(jù)收發(fā)的時候,會進入睡眠狀態(tài),從而減少能耗。(4)有效范圍?。汗?jié)點間直接通信的距離能達(dá)到100m,在使用射頻功率放大器增加發(fā)射功率后,節(jié)點間直接通信的距離能增加到數(shù)千米。1.4本課題主要研究內(nèi)容本項目將在ZigBee無線技術(shù)的基礎(chǔ)之上,針對路燈控制系統(tǒng)進行分析和探討,全面詳實地分析核心系統(tǒng)以及終端軟件,并進一步對完整的系統(tǒng)進行設(shè)計。在硬件方面,選用了TI公司的CC2530作為核心芯片,在Z-STACK的基礎(chǔ)上開發(fā)出用于無線控制路燈的系統(tǒng)。軟件方面,使用C語言并在IAR開發(fā)環(huán)境中運行燒錄仿真。系統(tǒng)方案設(shè)計本章將在ZigBee技術(shù)的基礎(chǔ)之上對路燈控制系統(tǒng)的相關(guān)需求進行全面的分析,同時得到本系統(tǒng)的系統(tǒng)設(shè)計模型,并對涉及到的相關(guān)技術(shù)進行探討,主要包括設(shè)計使用的CC2530單片機以及ZigBee技術(shù)。2.1無線路燈控制系統(tǒng)的組成本系統(tǒng)包括兩大模塊。終端路燈控制節(jié)點,負(fù)責(zé)實現(xiàn)對路燈的控制,以及返回路燈控制器的狀態(tài)。協(xié)調(diào)器主要實現(xiàn)接收來自各節(jié)點的系統(tǒng)信息,以及可以獨立控制各節(jié)點的路燈狀態(tài)。其整體框如圖2-1所示:圖2-1無限路燈控制系統(tǒng)2.2系統(tǒng)核心技術(shù)分析本設(shè)計采用CC2530芯片作為每一個路燈的控制終端,CC2530能將每一個路燈的信息采集到內(nèi)存中,然后經(jīng)過數(shù)據(jù)的初步處理,通過2.4Ghz的無線通信傳遞給網(wǎng)絡(luò)中的協(xié)調(diào)器。CC2530是挪威的Chipcon公司生產(chǎn)的適用于IEEE802.15.4標(biāo)準(zhǔn)以及ZigBee技術(shù)的芯片系統(tǒng)。其中內(nèi)置了增強的8051處理器,同時還配置了相應(yīng)的RF無線收發(fā)器,具有最高256Kb的閃存(Flash),和8kb的運存(RAM)。片內(nèi)資源分別有:8路輸入和12位分辨率的模數(shù)轉(zhuǎn)換器(ADC);2個支持多種串行通信協(xié)議的串口(USART);-97分貝的接收靈敏度和抗環(huán)境干擾能力,通過編程使得輸出功率高達(dá)4.5dBm的RF信號收發(fā)器;5個強大的DMA通道;21個通用I/O引腳;看門狗定時器[7]。本設(shè)計主要用到的資源分別為:8051內(nèi)核;定時器;通信串口;I/O口;和RF無線通信模塊,其基本介紹如下。增強型8051核心:該芯片中的控制器為8051處理器。它使用3種不同功能的內(nèi)存用來訪問總線,分別為SFR,DATA和CODE/XDATA。它的核心程序與標(biāo)準(zhǔn)的8051內(nèi)核程序是相互兼容的,只需修改少量的特殊代碼,就可以將程序移植到CC2530上。定時器:CC2530中共有4個定時器,編號分別是Timer1(16位)、Timer2(16位)、Timer3(8位)、Timer4(8位)。其中Timer2為MAC定時器,其余為常用的定時器。通信串口:CC2530內(nèi)部有2個強大的USART,可以設(shè)置成普通串口模式和SPI模式,它們都有自己的波特率發(fā)生器,在使用時不占用定時器資源。I/O口:CC2530共有P0、P1、P23組共21個引腳,通過相關(guān)的功能寄存器,實現(xiàn)串口、DMA、外部中斷等等功能。RF無線:頻段在2.4Ghz-2.4835GHz的一個IEEE802.15.4兼容無線收發(fā)器;接收靈敏度和抗干擾能力都很強,適合中距離傳輸;利用軟件方式可以將輸出功率調(diào)整到4.5dBm;同時其還提供了幀生成、數(shù)據(jù)的同步以及檢查功能、10bit的CRC檢驗碼以及MAC保護等一系列功能。系統(tǒng)硬件電路設(shè)計3.1系統(tǒng)總體設(shè)計方案硬件電路以CC2530為核心,通過外圍電路達(dá)到系統(tǒng)設(shè)計的功能。在硬件電路部分,分別是電源電路、核心板電路、光傳感器電路、路燈控制器電路、路燈驅(qū)動電路。硬件電路框如圖3-1所示:圖3-1系統(tǒng)框圖3.2單片機最小系統(tǒng)CC2530芯片的最小系統(tǒng)主要由單片機、晶振、復(fù)位模塊以及電源系統(tǒng)所構(gòu)成,其引腳結(jié)構(gòu)可參考圖3-2:圖3-2CC2530引腳圖單片機最小系統(tǒng)還涉及到電源、復(fù)位以及晶振等模塊。電源穩(wěn)壓模塊通常借助USB或是電池提供電源輸入,然后在電源的入口和出口分別并聯(lián)電解質(zhì)電容和無極性電容起到去除電源紋波的作用,穩(wěn)壓芯片主要采用較為常見的AMS1117-3.3穩(wěn)壓出3.3V作為系統(tǒng)的電源輸出。其原理圖如下圖3-3:圖3-3穩(wěn)壓電源原理圖3.3光敏電阻光強采集光敏電阻實現(xiàn)光照強度的采集主要靠電路和光敏電阻的分壓,然后單片機采集之后換算光照強度來實現(xiàn)對路燈的控制,其原理圖如下圖3-4:圖3-4光照強度采集3.4路燈控制電路單片機的引腳大約只有20mA的驅(qū)動能力,所以在模擬路燈的情況下,我們添加了一個LED路燈的驅(qū)動電路,采用ULN2003驅(qū)動來調(diào)增大驅(qū)動能力,這樣即使USB供電的LED外設(shè)也能驅(qū)動起來。其電路圖如下圖3-5:圖3-5路燈驅(qū)動電路系統(tǒng)軟件設(shè)計本設(shè)計的核心是CC2530芯片,并根據(jù)功能的不同,劃分了協(xié)調(diào)器和終端2種功能節(jié)點。在系統(tǒng)設(shè)計中,本設(shè)計使用了TI公司的Z-Stack作為芯片的協(xié)議棧,并在協(xié)議棧上開發(fā)出所需要的功能代碼。在組網(wǎng)的過程中,協(xié)調(diào)器負(fù)責(zé)接收并解析客戶端串口的命令,將所解析的命令傳給終端,同時將所有終端的信息傳輸給客戶端。終端則會在協(xié)調(diào)器的控制下,將信息傳輸給協(xié)調(diào)器。在控制路燈功能方面,兩者都具有直接控制、時間控制和光強控制功能。4.1Z-Stack及軟件環(huán)境Z-Stack是包含從物理層、鏈路層、網(wǎng)絡(luò)層到最終應(yīng)用層的綜合協(xié)議棧代碼,由TI公司基于CC530開發(fā)。我們只需要調(diào)用協(xié)議棧中封裝好的API函數(shù),和按要求添加、修改功能就可以實現(xiàn)所需要的功能。其工作流程如圖4-1所示:開始開始關(guān)總中斷初始化硬件抽象層初始化寄存器初始化I/O初始化非易失系統(tǒng)初始化MAC確定擴展地址初始化非易失數(shù)據(jù)初始化應(yīng)用框架初始化操作系統(tǒng)打開中斷硬件設(shè)備初始化進入主循環(huán)函數(shù)運行一個任務(wù)執(zhí)行任務(wù)事件是否有任務(wù)CPU休眠YN圖4-1協(xié)議棧工作流程圖在本研究中所使用的Z-Stack版本號為2.3.0-1.4.0,硬件設(shè)計全部是基于IAR軟件系統(tǒng)。用戶只要在協(xié)議棧的APP中加入所需要功能的C源文件,上層應(yīng)用接口只要調(diào)用用戶的功能函數(shù),即可實現(xiàn)目標(biāo)功能。協(xié)議棧工程目錄如圖4-2所示:圖3-10IAR工程文件目錄3.2.2網(wǎng)絡(luò)中協(xié)調(diào)器的設(shè)計圖4-2協(xié)議棧工程目錄這里需要特別關(guān)注的是協(xié)調(diào)器的配置,因為在ZigBee網(wǎng)絡(luò)里協(xié)調(diào)器是作為整個網(wǎng)絡(luò)的核心而存在的,且僅有一個。其角色主要包括:(1)初始化操作系統(tǒng),啟動片內(nèi)硬件資源。(2)建立拓?fù)渚W(wǎng)路。(3)搜索周圍節(jié)點,并分配周圍節(jié)點的地址。(4)收集周圍節(jié)點的無線數(shù)據(jù),簡單處理后發(fā)送給客戶端。(5)接收客戶端發(fā)來的命令,并解析命令,做出相應(yīng)控制。主要的控制任務(wù)有:(1)檢測路燈的亮度。(2)讀取環(huán)境光強數(shù)值。(3)根據(jù)所選功能與實際數(shù)據(jù),對路燈的亮度進行控制。由于現(xiàn)實中路燈的控制頻率并不高,實時性控制需求較弱,由此,本設(shè)計引入了“心跳”機制去實現(xiàn)整個系統(tǒng)的任務(wù)時序?!靶奶睓C制就是每隔一段相同的時間,執(zhí)行一次所需要執(zhí)行的任務(wù),這樣會避免頻繁的開關(guān)燈操作,減少網(wǎng)絡(luò)中信息傳遞的擁堵和減少傳感器數(shù)據(jù)的誤差。在協(xié)調(diào)器中,利用定時器3設(shè)置定時功能為1秒的定時中斷,中斷函數(shù)讀取當(dāng)前時鐘芯片的分鐘值,每當(dāng)分鐘值跳變一次,則將信標(biāo)通過無線發(fā)送給其他終端節(jié)點,同時執(zhí)行一次所要執(zhí)行的任務(wù)。終端收到信標(biāo)后,同樣的執(zhí)行任務(wù),并將數(shù)據(jù)發(fā)送給協(xié)調(diào)器。在協(xié)調(diào)器的協(xié)議棧中,采用任務(wù)輪詢的機制去執(zhí)行任務(wù),這樣能節(jié)省更多的功耗。其中串口輪詢函數(shù)voidSampleApp_SerialCMD(mtOSALSerialData_t*cmdMsg)是處理客戶端數(shù)據(jù)的函數(shù),具體內(nèi)容如下:uint8i,len,*str=NULL; //定義長度len、指針strstr=cmdMsg->msg; //表示用戶數(shù)據(jù)的起始len=len*str //數(shù)據(jù)部分的首字節(jié)表示數(shù)據(jù)的總長度;for(i=1;i<=len;i++)//i=0的指針為數(shù)據(jù)總長度{SysOrder[i-1]=*(str+i);}//將數(shù)據(jù)放到SysOrder數(shù)組DataDeal();//調(diào)用函數(shù)處理傳入的數(shù)據(jù)if(SendToOther==1)//判斷無線發(fā)送標(biāo)志{RFSend(SysOrder,0x07);}//無線發(fā)射數(shù)據(jù) 客戶端數(shù)據(jù)由DataDeal()處理后,調(diào)用執(zhí)行器執(zhí)行相應(yīng)的功能。另外本設(shè)計在輪詢?nèi)蝿?wù)中加入了定時器中斷,以實現(xiàn)周期執(zhí)行任務(wù)功能。定時器初始化代碼如下:HalTimerInit();//定時器硬件初始化HalTimerConfig(HAL_TIMER_0, //TIMER_0為定時器3HAL_TIMER_MODE_CTC,//清零比較模式HAL_TIMER_CHANNEL_SINGLE,//要配置的信道HAL_TIMER_CH_MODE_OUTPUT_COMPARE,//輸出比較模式TRUE,//使能定時器3GetTime);//中斷執(zhí)行函數(shù)HalTimerStart(HAL_TIMER_0,1000);//中斷周期定義為1000毫秒在1秒的定時中斷中,讀取時鐘芯片的分鐘,并進行判斷,如果發(fā)現(xiàn)分鐘數(shù)發(fā)生變化,則執(zhí)行相應(yīng)的“心跳”函數(shù)。函數(shù)流程如下:Now_Light=ReadLight();//讀取光傳感器數(shù)據(jù)SendBeacon(); //無線發(fā)送信標(biāo)給終端LightSend(); //串口發(fā)送環(huán)境光強Delayms(50); //延時L1_Crtl(); //執(zhí)行控制1組LEDModeSend(); //串口發(fā)送協(xié)調(diào)器路燈模式L2_Crtl(); //執(zhí)行控制2組LEDLedStateSend(); //串口發(fā)送當(dāng)前路燈亮度SendCtrlTime(); //串口發(fā)送定時開關(guān)燈的時間終端在收到信標(biāo)后,便會執(zhí)行預(yù)設(shè)好的任務(wù),同時將信息反饋給協(xié)調(diào)器。協(xié)調(diào)器對終端的數(shù)據(jù)處理與對串口的數(shù)據(jù)處理相似,亦是先把數(shù)據(jù)存儲到特定數(shù)組,再解析數(shù)據(jù),然后根據(jù)數(shù)據(jù)來執(zhí)行相應(yīng)的任務(wù)。4.2網(wǎng)絡(luò)中終端的設(shè)計相較于協(xié)調(diào)器的功能配置,終端的設(shè)置較為簡單,在ZigBee網(wǎng)絡(luò)中終端所起的作用包括:(1)發(fā)出網(wǎng)絡(luò)申請請求至協(xié)調(diào)器中。(2)接受、處理來自協(xié)調(diào)器的消息,并作出相應(yīng)的反應(yīng);(3)按設(shè)定的幀格式向協(xié)調(diào)器發(fā)送采集好的數(shù)據(jù)。(4)采集光傳感器所采集到的環(huán)境光強數(shù)據(jù)。(5)斷網(wǎng)后如果再次搜索到協(xié)調(diào)器則自動重連入網(wǎng)。主要的控制任務(wù)是根據(jù)設(shè)置的功能,結(jié)合當(dāng)前時間和環(huán)境光強,對路燈的亮度進行控制。在終端的協(xié)議棧中,同樣是使用輪詢機制去執(zhí)行任務(wù)。當(dāng)有協(xié)調(diào)器數(shù)據(jù)發(fā)過來時,終端才會觸發(fā)接收函數(shù)SampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt),其中的具體代碼是:uint8len,i;//數(shù)據(jù)長度uint8*str=NULL;//指針清零switch(pkt->clusterId)//指向任務(wù)號{caseSAMPLEAPP_COM_CLUSTERID://接收數(shù)據(jù)的任務(wù)號len=pkt->cmd.Data[0];//led為數(shù)據(jù)長度for(i=0;i<len;i++){NetAccept[i]=pkt->cmd.Data[i+1];}//將每一個數(shù)據(jù)都存入NetAccept[]NetAcceptDeal();break;//接收數(shù)據(jù)處理NetAcceptDeal()函數(shù)會對傳入的數(shù)據(jù)進行解析,得到相應(yīng)的命令,然后執(zhí)行預(yù)先設(shè)定好的任務(wù)。當(dāng)終端執(zhí)行完任務(wù)后,會在一定的延時之后,將所得的數(shù)據(jù)發(fā)送給協(xié)調(diào)器。因為在網(wǎng)絡(luò)中,同時存在有多個終端節(jié)點,如果同一時間發(fā)送數(shù)據(jù)給協(xié)調(diào)器,容易造成無線網(wǎng)堵塞,使數(shù)據(jù)丟失。每個終端會根據(jù)本身的ID號,延時不同的時間再發(fā)送數(shù)據(jù)。4.3系統(tǒng)的組網(wǎng)設(shè)計4.3.1網(wǎng)絡(luò)拓?fù)浼奥?lián)網(wǎng)設(shè)計本設(shè)計采用星狀的網(wǎng)絡(luò)拓?fù)?,以廣播的方式進行通信,協(xié)調(diào)器作為網(wǎng)絡(luò)的中心,接收來自終端的信息。下面簡述一下網(wǎng)絡(luò)的形成過程:首先協(xié)調(diào)器功能配置完成后通電運行,可以掃描周圍環(huán)境中是否存在終端節(jié)點,發(fā)現(xiàn)存在終端節(jié)點后就向其發(fā)送一個稱為信標(biāo)的消息,表示允許終端加入網(wǎng)絡(luò)。終端收到信標(biāo)后即可向協(xié)調(diào)器發(fā)送加入網(wǎng)絡(luò)的申請,隨后收到協(xié)調(diào)器發(fā)過來的一個短地址。這樣隨著所有終端都加入到網(wǎng)絡(luò)中,一個龐雜的星狀網(wǎng)絡(luò)就構(gòu)成了。網(wǎng)絡(luò)的創(chuàng)建與設(shè)備的加入都是建立在協(xié)議棧的網(wǎng)絡(luò)層,而不需要人為的去設(shè)定各種參數(shù),為開發(fā)提供了良好的環(huán)境。在Z-Stack中,無線之間的傳輸是通過特定的通信協(xié)議去規(guī)范的,開發(fā)人員只需改變其中的一些參數(shù)即可實現(xiàn)數(shù)據(jù)傳輸。無線幀主要有2種,分別是信標(biāo)幀、數(shù)據(jù)幀。信標(biāo)幀用于整個系統(tǒng)的同步運行,避免數(shù)據(jù)沖突、丟失等現(xiàn)象出現(xiàn)。數(shù)據(jù)幀由應(yīng)用層(APL)生成,接著傳遞給MAC加上幀頭和幀尾等必要的結(jié)構(gòu),再由硬件發(fā)送出去[13]。兩種幀結(jié)構(gòu)如表4-3所示。以下是協(xié)議棧中無線數(shù)據(jù)幀的發(fā)送函數(shù):AF_DataRequest(&SampleApp_Periodic_Addr,//發(fā)送目的地址、端點地址以及通信方式&SampleApp_Com//發(fā)送源的端點SAMPLEAPP_COM_D_MARU//可自定義組IDLong+1,//數(shù)據(jù)總長度Data,//數(shù)據(jù)&SampleApp_TransID,//數(shù)據(jù)幀序列AF_DISCV_ROUTE,//發(fā)送方式AF_DEFAULT_RADIUS);//傳遞節(jié)點個數(shù)在本設(shè)計中,無線傳輸方式是廣播,目的地址是0XFFFF,即網(wǎng)絡(luò)中所有的終端設(shè)備[14]。如果某終端處于休眠狀態(tài),使用該目的地址時,數(shù)據(jù)將會存儲在協(xié)調(diào)器內(nèi)存中,直到終端被喚醒時發(fā)出。簇ID設(shè)置為3,序列號與發(fā)送選項使用默認(rèn)設(shè)置。所傳遞的數(shù)據(jù)放置在Str數(shù)組里面。當(dāng)接收端,登記任務(wù)ID之后,接收到的AF無限數(shù)據(jù)將被作為觸發(fā)事件調(diào)用任務(wù)輪詢函數(shù)即SampleApp_ProcessEvent()并執(zhí)行相應(yīng)的函數(shù)功能,該函數(shù)包含在協(xié)議棧中。其中AF接收數(shù)據(jù)任務(wù)為caseAF_INCOMING_MSG_CMD。本設(shè)計在此處添加了數(shù)據(jù)解析函數(shù)SampleApp_SerialCMD((mtOSALSerialData_t*)MSGpkt);用于把無線的數(shù)據(jù)解包,并存入數(shù)組。表4-32種無線幀的結(jié)構(gòu)字節(jié)214或102kmn2MAC層幀控制序列碼尋址信息超幀GTS未處理事務(wù)地址信標(biāo)負(fù)荷FCS信標(biāo)幀結(jié)構(gòu)字節(jié)214或20n2MAC層幀控制序列碼尋址信息信標(biāo)負(fù)荷FCS數(shù)據(jù)幀結(jié)構(gòu)4.3.2系統(tǒng)中通信協(xié)議的設(shè)計數(shù)據(jù)傳輸?shù)臏?zhǔn)確和完整有賴于通信協(xié)議的精確設(shè)計,協(xié)調(diào)器與客戶端之間通信和協(xié)調(diào)器與終端間的通信都需要建立在通信協(xié)議之上,本設(shè)計自主定義了應(yīng)用層通信協(xié)議的格式,用實現(xiàn)數(shù)據(jù)采集和功能操作,主要格式如表4-1所示:表4-1命令幀格式字節(jié)數(shù)111211幀頭0xDA設(shè)備ID設(shè)備命令數(shù)據(jù)校驗和0xAD幀尾客戶端可以向某個路燈發(fā)送命令,以達(dá)到控制的目的。例如單燈亮度調(diào)節(jié)、查詢路燈系統(tǒng)實時時間、采集環(huán)境光強等。協(xié)調(diào)器則可以將所采集到的信息,包括自身信息和終端的信息,按照幀的格式將數(shù)據(jù)發(fā)送給客戶端。例如發(fā)送一幀自身環(huán)境光強為1000Lx的命令幀為:0XDA,0X01,0X20,0X03,0XE8,0X42,0XAD。其中,0X01為設(shè)定的協(xié)調(diào)器ID號,0X20為采集光強的命令字,0X03,0XE8為1000化為16進制后的高位數(shù)據(jù)和低位數(shù)據(jù),0X42為整一幀的校驗和。在串口和無線通信中,均采用此格式傳遞數(shù)據(jù),以保證數(shù)據(jù)的準(zhǔn)確性。在設(shè)計通信命令時,已經(jīng)確定好了所有的設(shè)備命令,所以可以將回答幀設(shè)計的稍短一些,具體格式見表4-2:表4-2應(yīng)答幀格式字節(jié)數(shù)1111幀頭0xDA設(shè)備ID設(shè)備命令0xAD幀尾應(yīng)答幀的主要功能是用作系統(tǒng)操作的反饋,當(dāng)硬件執(zhí)行成功的時候,將會發(fā)送應(yīng)答幀給客戶端,以表示所執(zhí)行的功能成功執(zhí)行,而當(dāng)執(zhí)行失敗時則不會發(fā)送應(yīng)答幀。在每個協(xié)議幀后面,會附有一個用于檢驗數(shù)據(jù)是否正確的8位的校驗和。使用校驗和能有效的增加數(shù)據(jù)的準(zhǔn)確率,并且其算法較為簡單,廣泛應(yīng)用于通信領(lǐng)域。本設(shè)計中使用Switch方法去實現(xiàn)數(shù)據(jù)幀的解析。每次準(zhǔn)確接收一個數(shù)據(jù)幀后,系統(tǒng)會將該幀分解成數(shù)個包含相應(yīng)執(zhí)行函數(shù)的分支,函數(shù)的代碼如下所示:if(SysOrder[0]==0xDA&&SysOrder[6]==0xAD){//比較幀頭幀尾確認(rèn)收到正確數(shù)據(jù)switch(SysOrder[1]){//解析目標(biāo)節(jié)點IDcase0x00:{switch(SysOrder[2]){//ID為0x00case0x01:case0x02:case0x03:}}//解析命令執(zhí)行任務(wù)123case0x01:{switch(SysOrder[2]){//ID為0x01case0x01:case0x02:case0x03:}}}//解析命令執(zhí)行任務(wù)123如管理員人操作客戶端發(fā)出一幀協(xié)調(diào)器開啟時間控制的命令0XDA,0X01,0X06,0X81,0X81,0X42,0XAD,協(xié)調(diào)器首先解析幀頭、幀尾、校驗和是否正確,然后通過SysOrder[1]獲得ID號為0X01,SysOrder[2]獲得命令號0X06,然后會執(zhí)行SetTimeMode(SysOrder[3],SysOrder[4]);Answer(0x06);break;。當(dāng)檢測到SysOrder[3],SysOrder[4]均為0X81時,協(xié)調(diào)器會將時間控制的標(biāo)志位置1,開啟時間控制模式,隨后通過Answer(0x06);把任務(wù)執(zhí)行后的應(yīng)答函數(shù)發(fā)出,客戶端收到應(yīng)答信號后顯示時間控制功能已開啟,從而完成對硬件系統(tǒng)的操控。結(jié)論在本研究中為了提高傳統(tǒng)路燈控制系統(tǒng)的穩(wěn)定性和使用性能,設(shè)計了一個基于ZigBee芯片CC2530芯片的新型控制系統(tǒng)??紤]使用ZigBee技術(shù)是因為該技術(shù)具有能耗低、管理簡單的優(yōu)點,已經(jīng)被廣泛運用在各種無線傳輸系統(tǒng)中比如路燈控制系統(tǒng)。目前國內(nèi)這方面的研究相對于發(fā)達(dá)國家較為滯后,推廣ZigBee技術(shù)在促進低功耗、高傳輸速率的物聯(lián)網(wǎng)應(yīng)用中具有重要的意義。本研究的主要工作包括:(1)綜合比較目前常用的無線傳輸技術(shù)的優(yōu)缺點,結(jié)合項目需求選用ZigBee技術(shù)運用于本研究。(2)設(shè)計并實現(xiàn)路燈控制系統(tǒng)的各個模塊包括光強采集單元、控制單元、穩(wěn)壓電源單元等,并對設(shè)計的系統(tǒng)的功能進行了測試;(3)結(jié)合ZigBee技術(shù)的特征,考察了采用不同協(xié)議棧的運用效果,并實際配置了協(xié)調(diào)器和終端來運行系統(tǒng)。(4)設(shè)計了符合系統(tǒng)要求的通信協(xié)議,并對協(xié)議中數(shù)據(jù)傳輸?shù)母袷竭M行了規(guī)范;(5)對整個系統(tǒng)進行調(diào)試,對問題、漏洞進行相應(yīng)的處理,完成整個無線路燈系統(tǒng)。本文研究和設(shè)計的無線路燈控制系統(tǒng)基本上完成了所設(shè)計的功能,但是在某些地方還有待進一步的改進和完善。例如系統(tǒng)目前還不能得到實時的功率指標(biāo),通過引入ADC采樣技術(shù)就可以有效解決這個問題。其次為了進一步降低系統(tǒng)能耗還可以使用綠色能源作為系統(tǒng)的電源如太陽能。最后還可以考慮將GPS定位功能引入控制系統(tǒng),可以方便系統(tǒng)的維護和跟蹤。這一系列的改進還有待后續(xù)的研究。參考文獻[1]張忠林.基于ZigBee通訊技術(shù)的移動接觸網(wǎng)監(jiān)控系統(tǒng)[J].自動化與儀表,2011年05期:25-32.[2]陳青山.城市照明監(jiān)控管理系統(tǒng)的設(shè)計與實現(xiàn)[D].山東:山東大學(xué),2008.[3]苑囡囡.ZigBee技術(shù)在智能家居中的應(yīng)用[J].吉林工程技術(shù)師范學(xué)院學(xué)報,2009:42-57.[4]高巖.基于ZigBee技術(shù)的高速公路智能收費管理系統(tǒng)硬件技術(shù)方案設(shè)計[D].北京:北京郵電大學(xué),2009.[5]IEEE802.15.4,低速率無線個人局域網(wǎng)的物理層和媒體接入控制協(xié)議[S],1998.[6]施曉敏.城際高鐵制動控制試驗系統(tǒng)的物聯(lián)網(wǎng)實現(xiàn)[D].江蘇:江蘇科技大學(xué),2011.[7]C.L.FullmerandJ.J.Garcia-Luna-Aceves,"FloorAcquisitionMultipleAccess(FAMA)forPacketRadioNetworks",inProcACMSIGCOMM'95,Sept.1995,(3):72-85.[8]李巖巖.ZigBee技術(shù)在路燈監(jiān)控系統(tǒng)中的應(yīng)用[J].微型機與應(yīng)用:2013年05期:34-46.[9]何志業(yè).面向水環(huán)境監(jiān)測的無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)計[D]:杭州電子科技大學(xué),2010.[10]ZaferSahinoglu,GangDing,BharatBhargava,PhilipOrlik,JinyunZhang.ReliableBroadcastinZigbeeNetworks,2010:34-42.[11]孫慶元.基于ZigBee的水環(huán)境監(jiān)測無線傳感器網(wǎng)絡(luò)組網(wǎng)技術(shù)研究[D].安徽.中國科學(xué)技術(shù)大學(xué),2012.[12]吳斌.基于ZigBee的近距離無線網(wǎng)絡(luò)技術(shù)在電力行業(yè)的應(yīng)用[A].全國冶金自動化信息網(wǎng)2009年會論文集:2009年.[13]張文平.基于ZigBee技術(shù)的無線煤礦安全信息系統(tǒng)[D].西安:西安科技大學(xué),2008.[14]厲保軍.基于的城市消防導(dǎo)航信息系統(tǒng)研究[D].西安:西安科技大學(xué),2010.附錄1源代碼staticvoidzmain_ext_addr(void);#ifdefinedZCL_KEY_ESTABLISHstaticvoidzmain_cert_init(void);#endifstaticvoidzmain_dev_info(void);staticvoidzmain_vdd_check(void);#ifdefLCD_SUPPORTEDstaticvoidzmain_lcd_init(void);#endif/**********************************************************************@fnmain*@briefFirstfunctioncalledafterstartup.*@returndon'tcare*/intmain(void){//Turnoffinterruptsosal_int_disable(INTS_ALL);//InitializationforboardrelatedstuffsuchasLEDsHAL_BOARD_INIT();//Makesuresupplyvoltageishighenoughtorunzmain_vdd_check();//InitializeboardI/OInitBoard(OB_COLD);//InitialzeHALdriversHalDriverInit();//InitializeNVSystemosal_nv_init(NULL);//InitializetheMACZMacInit();//Determinetheextendedaddresszmain_ext_addr();#ifdefinedZCL_KEY_ESTABLISH//InitializetheCerticomcertificateinformation.zmain_cert_init();#endif//InitializebasicNVitemszgInit();#ifndefNONWK//SincetheAFisn'tatask,callit'sinitializationroutineafInit();#endif//Initializetheoperatingsystemosal_init_system();//Allowinterruptsosal_int_enable(INTS_ALL);//FinalboardinitializationInitBoard(OB_READY);//Displayinformationaboutthisdevicezmain_dev_info();/*DisplaythedeviceinfoontheLCD*/#ifdefLCD_SUPPORTEDzmain_lcd_init();#endif#ifdefWDT_IN_PM1/*IfWDTisused,thisisagoodplacetoenableit.*/WatchDogEnable(WDTIMX);#endifosal_start_system();//NoReturnfromherereturn0;//Shouldn'tgethere.}//main()/**********************************************************************@fnzmain_vdd_check*@briefCheckiftheVddisOKtoruntheprocessor.*@returnReturnifVddisok;otherwise,flashLED,thenreset*********************************************************************/staticvoidzmain_vdd_check(void){uint8cnt=16;do{while(!HalAdcCheckVdd(VDD_MIN_RUN));}while(--cnt);}/***************************************************************************************************@fnzmain_ext_addr**@briefExecuteaprioritizedsearchforavalidextendedaddressandwritetheresults*intotheOSALNVsystemforusebythesystem.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/*Attempttocreateasufficientlyrandomextendedaddressforexpediency.*Note:thisisonlyvalid/legalinatestenvironmentand*mustneverbeusedforacommercialproduct.*/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);}}//SettheMACPIBextendedaddressaccordingtoresultsfromabove.(void)ZMacSetReq(MAC_EXTENDED_ADDRESS,aExtendedAddress);}#ifdefinedZCL_KEY_ESTABLISH/***************************************************************************************************@fnzmain_cert_init**@briefInitializetheCerticomcertificateinformation.**inputparameters**None.**outputparameters**None.**@returnNone.***************************************************************************************************/staticvoidzmain_cert_init(void){uint8certData[ZCL_KE_IMPLICIT_CERTIFICATE_LEN];uint8nullData[ZCL_KE_IMPLICIT_CERTIFICATE_LEN]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};(void)osal_nv_item_init(ZCD_NV_IMPLICIT_CERTIFICATE,ZCL_KE_IMPLICIT_CERTIFICATE_LEN,NULL);(void)osal_nv_item_init(ZCD_NV_DEVICE_PRIVATE_KEY,ZCL_KE_DEVICE_PRIVATE_KEY_LEN,NULL);//Firstcheckwhethernon-nullcertificatedataexistsintheOSALNV.Tosaveoncodespace,//justusetheZCD_NV_CA_PUBLIC_KEYasthebellwetherforallthree.if((SUCCESS!=osal_nv_item_init(ZCD_NV_CA_PUBLIC_KEY,ZCL_KE_CA_PUBLIC_KEY_LEN,NULL))||(SUCCESS!=osal_nv_read(ZCD_NV_CA_PUBLIC_KEY,0,ZCL_KE_CA_PUBLIC_KEY_LEN,certData))||(osal_memcmp(certData,nullData,ZCL_KE_CA_PUBLIC_KEY_LEN))){//Attempttoreadthecertificatedatafromitscorrespondinglocationonthelockbitspage.HalFlashRead(HAL_FLASH_IEEE_PAGE,HAL_FLASH_CA_PUBLIC_KEY_OSET,certData,ZCL_KE_CA_PUBLIC_KEY_LEN);//IfthecertificatedataisnotNULL,useittoupdatethecorrespondi

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論