




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
山東省應用物聯網設計大賽山東省應用物聯網設計大賽山東省應用物聯網設計大賽應用物聯網設計大賽作品設計報告基于嵌入式Linux和ZigBee技術的智能家居系統ThesmarthomesystembasedonembeddedLinuxandZigBee 設計報告摘要隨著科學技術的發展,智能家居生活也漸漸成為趨勢。本文設計了一個智能家居系統,采用ZigBee組網、Wi-Fi無線通信技術及嵌入式的網關服務器,實現了家居安防和家居遠程控制。系統以Android智能設備作為主控制器終端,以三星公司的S5PV210芯片和相關的一些外圍器件組建成整個系統的家庭網關控制平臺,基于嵌入式Linux操作系統通過Qt設計開發了智能管家軟件,而家居內部控制網絡則利用ZigBee無線網絡技術來實現。智能家居系統通過物聯網技術將家中的各種設備(如照明系統、窗簾控制、安防系統、煙霧報警系統、智能廚房、智能洗浴等)連接到一起,提供家電控制、照明控制、窗簾控制、電話遠程控制、室內外遙控、防盜報警、紅外轉發以及可編程定時控制等多種功能和手段。幫助家庭與外部保持信息交流暢通,優化人們的生活方式,幫助人們有效安排時間,增強家居生活的安全性,甚至為各種能源費用節約資金。關鍵詞:智能家居系統、Wi-Fi、ZigBee、嵌入式Linux、Android平臺AbstractWiththedevelopmentofscienceandtechnology,intelligenthouseholdlifeisbecomingatrend.Thispaperdesignedasmarthomesystem,USEStheZigBeenetwork,wi-fiwirelesscommunicationtechnologyandembeddedgatewayserver,homesecurityandhomeremotecontrolisrealized.SystemtoAndroidintelligentterminalequipmentasthemaincontroller,wsamsungS5PV210somechipsandrelatedperipheraldevicestoformintothefamilygatewaycontrolplatformofthewholesystem,basedonembeddedLinuxoperatingsystembyQtintelligenthousekeepingsoftwareisdesignedanddeveloped,whilehomeinternalcontrolnetworkusingZigBeewirelessnetworktechnologytorealize.SmarthomesysteminthehomethroughtheInternetofthingstechnologywiththeequipment(suchaslighting,curtaincontrol,securitysysmokealarmsystem,intelligentkitchen,intelligentbath,etc.)together,provideelectricalappliances,lighting,curtaincontrol,indoorandoutdoor,telephoneremotecontrolremotecontranti-theftalarm,infraredforwardandprogrammabletimingcontrolandotherfunctionsandmeansTohelpfamilieskeepsmoothcommunicationwithexternal,optimizepeople'slifestyle,helppeopletoarrangetimeeffectively,enhancethesecurityofhomelife,evenforavarietyofencostsavings.Keywords:Smarthomesystem、Wi-Fi、ZigBee、EmbeddedLinux、Androidplatform目錄摘要Abstract第1章快速說明1第2章背景及需求分析82.1智能家居系統的現狀及發展趨勢82.2需求分析9第3章系統方案103.1系統總體方案103.2系統總體結構10第4章系統硬件設計12第5章ZigBee無線傳感網絡的設計155.1ZigBee協議棧155.2Z-stack165.3ZigBee無線傳感網絡的設計175.3.2協調器節點設計185.3.3終端節點設計20第6章嵌入式網關設計216.1智能家居網關分析226.1.1工作原理226.1.2功能要求226.1.3智能家居網關總體設計226.2網關軟件開發平臺的搭建246.3網關應用程序設計256.3.1網關工作流程256.3.2應用程序界面設計266.3.3應用程序設計與實現第7章基于Android控制的智能家居終端設計287.1Android系統體系結構287.2Android軟件平臺的搭建297.2.1Linux內核層297.2.2Android運行時庫和其他庫層297.2.3應用框架層提供307.2.4應用程序層307.3Android應用程序的開發307.3.1界面設計307.3.2基于Android的應用軟件設計31第8章系統測試328.1手機APP測試328.2網關測試328.4家庭安防系統的測試348.5家庭環境控制系統34第9章系統特色34山東省應用物聯網設計大賽結論35參考文獻:36
第1章快速說明我們設計的總體框架如下:圖1智能家居物理架構圖圖2智能家居功能架構圖圖3智能家居技術架構圖成果展示:圖4用戶主界面::圖5自動洗浴注水控制系統測試::圖6自動房間照明控制系統測試:圖7防火自動監控與報警系統測試:圖圖8自動窗簾控制系統測試圖9APP生成圖圖10程序圖圖11圖11MS-i208-BOX實驗箱圖12MS-i208-BOX實驗箱屏幕圖圖13手機控制實物圖第2章背景及需求分析隨著社會經濟的發展、生活質量的日益改善和生活節奏的不斷加快,人們的工作、生活日益信息化。信息化社會在改變人們生活方式與工作習慣的同時,也對傳統的家庭住宅系統提出了挑戰。人們對于家居的要求已經不僅僅是物理意義上的生存空間,更為關注的是個高度安全性、方便、舒適的生活環境、先進的通訊設備、完備的信息終端、自動化和智能化的家用電器、信息資源使用的網絡化的需求等等,現代的家居設計理念越來越追求便捷化、高效化與智能化,家居設備的高度智能化已經成為一種強烈的消費需求。同時在科學技術的快速發展的推動下,實現這種需求已經不再是天方夜譚。由于電子技術的進步,家居產品已與計算機、網絡通信技術緊密地結合在一起,智能化的家用電子電器產品應運而生,智能家居系統越來越得到人們的重視,使得家居智能化勢在必然。2.1智能家居系統的現狀及發展趨勢迄今為止,智能家居還沒有一個普遍認同的統一的定義。通常智能家居系統利用先進的計算機和網絡通訊技術將與家居生活有關的各種各樣的子系統,通過特定的網絡有機地結合在一起,通過科學管理,讓家居生活更加舒適、有效、安全和節能。與傳統的家居相比,智能家居不僅僅具有傳統的居住和實用功能,還提供了舒適安全、高品位的宜人的家庭生活空間,并且提供全方位的信息交換功能,確保家庭內部與外界之間保持良好的交流與溝通,增強家居生活的安全性,節約能耗,幫助人們有效安排時間,優化人們的生活和工作方式。世界上第一幢智能建筑1984年在美國出現,美國聯合科技公司在美國康乃迪克州哈特佛市的一座舊式大樓的改造中將智能建筑的概念應用于大樓的供電、安保、照明等設備,使用計算機對大廈進行監測和控制,并提供了先進的語音、數據通信和資訊等方面的信息服務,該棟智能型建筑的誕生,揭開了智能家居發展的序幕。此后,一些經濟、技術比較發達的國家先后提出了各種各樣的智能家居解決方案。智能家居系統在法國、加拿大、日本等國都有廣泛應用。1998年5月,在新加坡舉辦的“家庭電器與電子消費品國際展覽會"上,“未來之家”進行了現場演示,該系統是一套完善的家庭智能化系統。它的系統功能主要包括三表遠程抄送功能、安保報警功能、家電控制功能、高速數據傳輸功能、家庭智能控制面板等。在展會上參與演示的家庭智能化系統距離真正的市場應用還尚需時日,但是科學技術的發展使得人們更加堅定了追求高品質生活方式的信心,智能家居作為高品質信息生活的代表得到越來越多的矚引引。智能家居網絡技術在國內的發展始于20世紀90年代末,到2000年左右智能家居概念開始得到大范圍的宣傳,使我國的普通居民開始了解并接受了智能家居的概念。如今各小區的開發商在住宅小區和住宅的設計階段也已經較多地考慮了智能化基礎設施的建設,少數高檔的住宅小區己經配套了相當完善的智能家庭網絡,很多開發商已經將住宅“智能化”作為一個“亮點"在房地產銷售的廣告中大量宣傳。從消費者的角度來看,智能家居的需求就是以實用為核心,力求家具設備的實用化、易用化和人性化,這就決定了家居智能控制系統的發展方向:無線化、網絡化。對普通用戶來說,最為使用方便的應用就是在家庭之外的任何地方通過手機等移動終端在手中可遠程控制家庭中的一切電器設備,這正是遠程移動通信技術在智能家居領域大受青睞。2.2需求分析智能家居網絡通常能夠分為家庭數據網絡和家庭控制網絡兩種:家庭數據網絡,提供高速率的數據傳輸服務,如家用計算機和數字電視、視頻和音頻播放器、資源共享及高速上網等;家庭控制網絡,提供便捷的和低速率的控制和互連網絡,用于燈光照明控制、家居安防、家居環境監測以及家庭應急求助等功能。智能家庭控制網絡是智能住宅系統的重要組成部分,家庭控制網絡子網和遠程管理是該系統的重點和難點。與家居數據通信網絡的應用目的不一樣,數據通信網絡中音、視頻等大數據傳輸需要高速的數據通信接口,而家居控制系統需要的是經濟、低功耗的控制網絡,該控制網絡的主要功能在于設備的連接與控制,基本上無需高速的通信方式來支撐。在家居網絡中,我們要考慮以下特點:(1)低成本:大量的家電和傳感器終端節點是家庭控制網絡中控制的主要對象,這種較大規模的網絡需要一個低成本的節點組網技術。(2)跨平臺:智能家居系統的使用環境是一個家居環境,整個系統中有著錯綜復雜的平臺,不能強制要求用戶能夠對系統進行復雜的配置和管理,網絡環境下各種資源的自組織和協同工作顯得非常重要。(3)可擴展性:能夠在系統主架構不做改動的情況下進行維護和擴展,加入新的家居設備。(4)遠程控制:移動終端設備能夠接入Internet并登錄到智能家居控制系統中,進行信息交互,實現遠程監控和控制。傳統的家居智能控制系統一般采用有線方式來組建,如同軸電纜、USB、CAN總線等但有線網絡具有布線麻煩,可擴展性差等固有的缺點,限制了有線網絡技術在智能家居系統中的發展。因此,將無線網絡技術應用于家庭網絡己成為大勢所趨。這不僅僅因為無線網絡具有更大的靈活性、流動性,省去了布線的麻煩,更重要的是它符合家居控制網絡的通訊特點。無線家居網絡將人們生活與工作的廣袤空間濃縮于人類的雙手可以掌控的距離。紅外、藍牙、ZigBee、WiFi等一系列無線網絡技術的進一步發展,必將大大促進家居設備無線化、智能化的進程。根據智能家居系統的特點,智能家居系統應具有如下幾種功能:(1)遠程控制:通過WiFi網絡,使用電腦、智能手機等終端設備,可在本地直接控制家中的燈光、電器等設備,或通過遠程訪問完成控制并查看家中情況。(2)遠程監控:監測住宅內火災、煤氣泄漏、人員非法聞入等狀況并及時發出警報。(3)環境監測及設備聯動對于各種季節的環境,傳感器自動監測周圍溫度,通過自動調節空調來讓家中一直處于一個舒適、溫馨的環境。通過光照等環境監測傳感器感知室內及室外的環境狀況,當光照值超出一定范圍時,窗簾自動關閉。第3章系統方案3.1系統總體方案基于無線傳感器網絡的智能家居網絡主要是由若干執行機構、若干無線傳感器節點、無線協調機構,輔助機構,家居控制中心組成。其中,節點分布于客廳、臥室、廚房、洗手間等需要監測的區域內,執行數據采集、處理和通信工作。無線控制模塊負責發送控制信號,實現窗簾自動開關閉合、模擬燈光自動打開、模擬自動開啟太陽能電磁閥門、模擬開啟電磁鎖等控制功能。無線控制模塊由三套系統組成,一套是由在家中近距離使用的遙控器控制系統,第二套是出門在外時使用的手機控制系統,第三套是在家中控制智能管家。3.2系統總體結構根據總體方案畫出了系統的總體設計圖,如圖3-1所示。按照結構層次系統劃分為三層:數據感知層(協調器和終端節點)、網絡層和應用層(智能終端)。圖3-1智能家居系統的結構圖數據感知層的終端是系統的前線,它起著數據供給的作用。它在系統的邊緣,是數據采集終端,算是擁有獨立系統的單元,它有獨立的微控制器(嵌入的8051內核),所以響應控制中心發來的命令,經過分析之后命令執行機構作出相應操作。設計結合智能家庭網絡系統的特點,如家庭內部無線網絡連接距離較短,分布的節點并不是太多,并且數據的傳輸量也不是太大。基于家庭網絡的這些特點,以協調器為中心節點組建一個星形家庭網絡。網絡層由網關做為家居系統的控制心,是整個系統的大腦,它支配整個系統的活動,不僅負責實現系統的內部網絡和外部網絡之間的相互通信,并且還需要通過ZigBee無線網絡對智能終端設備進行實時的監控和管理。通過智能管家或者手機發送命令,將命令接入網關,由網關將命令轉發給協調器,由協調器通過傳輸轉達給終端。終端獲得信息后控制外設傳感器等器件,這些外設就屬于執行機構,他們時刻等待命令,一旦接受立即執行相應操作。應用層是實現系統向用戶遠程傳達信息,可以通過Wi-Fi網絡與手機相互連接,實現遠程無線通信功能。第4章系統硬件設計智能家居系統中,控制終端(如手機)和受控終端(家居設備)為日常家居中的現成產品,它們只需通過適當的接口納入系統架構中即可。系統硬件設計主要包括網關設計、ZigBee節點設計和家居控制模塊設計。本次設計以微分電子公司的物聯網體驗箱為平臺,平臺提供一個A8網關、一個協調器節點和6個終端節點,因此系統硬件設計的重點在智能家居控制模塊上。實驗箱內終端節點包含了光照度檢測節點、溫濕度檢測節點、煙霧濃度探測節點、紅外反射傳感節點、步進電機節點和繼電器節點,可實現基本的家居環境檢測、家居控制和家居安防功能,如:光照強度的采集、溫度和濕度的采集、智慧燈光控制、電動窗簾控制、紅外探測和煙霧探測。在此基礎上,又添加了太陽能洗浴、報警系統、自動門禁、與智能管家系統可以實時發現家居隱患以及家居的安防。自動門禁控制系統——忠實守衛,我們的家當房子主人走到門口時,只要拿出手機輕輕一點,手機發出相關命令就可以實現房門自動打開與關閉。當客人到訪而家中無人或遇到火情需要救援人員進入家中時,主人可以通過手機遠程遙控打開房門。本部分通過手機軟件的加密措施實現安全的防盜功能。本子系統由電磁鎖、驅動模塊、防盜門模型、手機和CC2530終端節點等組成,如圖4-1所示。CC2530CC2530模塊路由電磁驅動模協調GPRS手機圖4-1門禁控制硬件框圖智慧燈光控制——解放雙手,智能感應本子系統由燈光控制電路、光敏、紅外探頭、燈泡、遙控器和CC2530終端節點等組成,如圖3-2所示。當房主進入房間時,燈光自動打開,房主離開房間時燈光自動關閉。本模塊還可以檢測進入房間、離開房間的人數。只有當進入本房間的所有人離開時燈光才會自動關閉。主人也可以按照自己的需求隨時控制燈的亮滅,如圖4-2所示。CC2CC2530模塊光敏控制電路紅外探頭燈泡圖4-2燈光控制硬件框圖(3)太陽能洗浴——輕輕一點,溫暖你的身心!本子系統由電磁閥門、太陽能模型、水位檢測探頭、驅動模塊、手機和CC2530終端節點等相互配合組成。當主人下班時,可以通過手機自動打開太陽能電磁閥門,在浴盆中提前注入合適水量的熱水。當主人回家時就可以馬上舒舒服服的洗澡,如圖4-3所示。圖4-3太陽能洗浴硬件框圖電動窗簾控制——自動開關,隨意遙控!本子系統由窗簾、窗戶模型、步進電機、單簧管、光敏、驅動模塊、遙控器和CC2530終端節點等組成。早晨,當您還在熟睡,臥室的窗簾自動打開,溫暖的陽光灑進房間,呼喚您開始新一天的生活。當夜幕降臨,光敏感應,窗簾自動閉合。主人也可以按照自己的需求隨時使用遙控器發送指令控制窗簾的打開與關閉,如圖4-4所示。圖4-4窗簾控制硬件框圖廚房自動控制系統——與家電的對話!本子系統由電飯煲、驅動模塊、繼電器、協調器、手機和CC2530的終端節點等組成。當房主下班時,可以通過手機遠程控制電飯煲開關,實現自動煮飯的功能,如圖4-5所示。圖4-5電飯煲控制硬件框圖防火自動監控與報警系統——智能安防,時刻守護!本子系統由煙霧傳感器、揚聲器、GPRS模塊和CC2530終端節點等組成。當房間內發生火情時,煙霧傳感器會檢測到火情并啟動揚聲器同時通過GPRS模塊發送相關指令至主人手機,及時遏制火勢蔓延,如圖4-6所示。圖4-6防火系統硬件框圖遠程監控與報警——輕松監控,智能實現!本子系統由攝像頭、揚聲器、A8網關、協調器、手機和cc2530終端節點等組成。當系統處于防盜模式時,盜賊潛入家中,揚聲器自動開啟鳴笛震懾,同時會有短信或電話發送至主人手機,主人可通過互聯網,利用視屏實時監控,通過攝像頭實時監測并處理家中境況,如圖4-7所示。圖4-7遠程監控系統硬件框圖無線遙控——隨時隨地,全屋掌控!本系統將所有子系統連接在一起,只需要利用遙控器,就可以在家里任何地方遙控家里樓上樓下、各個房間的燈和電器;利用手機,更可以實現對家內家外對所有控制系統實施全面遙控。第5章ZigBee無線傳感網絡的設計5.1ZigBee協議棧ZigBee協議體系結構如圖5-1所示。它的物理層和MAC層都是由IEEE802.15.4所定義,其中物理層支持868/915MHz和2.4GHz三種頻段。MAC層之上是網絡層,主要提供網絡層數據收發和路由功能。網絡層之上是應用層,應用層又分為幾個模塊,其中網絡層之上的是應用支持子層,簡稱“APS”,主要提供應用層數據處理和綁定功能。ZigBee設備對象提供設備管理的各項功能,包括設備發現、服務發現、綁定管理和網絡管理等。另外ZigBee還提供了安全的功能,成為安全服務提供者,簡稱“SSP”為網絡層和應用層提供安全服務。完整的ZigBee體系結構由物理層、MAC層、網絡層和應用層組成。不同層之間通過服務接入點進行通信,每一層為其上層提供服務。其中物理層和MAC層之間是物理層數據服務接入點和物理層管理實體服務接入點,MAC層與網絡層之間是MAC層數據實體服務接入點和MAC層管理實體服務接入點,網絡層與APS之間是網絡層數據實體服務接入點和網絡層管理實體服務接入點,APS與各應用對象之間是APS數據實體服務接入點和APS管理實體服務接入點。圖5-1ZigBee協議體系架構5.2Z-stackZigBee聯盟規范了協議,具體的協議編程語言表述則由IC廠商指定。Z-stack是TI公司開發的一款ZigBee協議棧,是對ZigBee標準的具體實現。Z-stack是半開源的協議棧,其核心部分的代碼都是編譯好的,以庫文件的形式給出的,比如安全模塊,路由模塊和Mesh自組網模塊。與ZigBee協議像對應,Z-stack協議棧采用分層的結構,如圖5-2所示。圖5-2圖5-2Z-stack軟件結構好,結構簡單,操作方便等特點。當主程序執行到啟動操作系統后,系統的指揮權就交給了OS,由操作系統控制各個任務的調度切換及數據傳送等功能。Z-stack協議棧已經做了很多的工作,用戶只需要在APL(應用層)上實現自己的應用就可以了。Z-Stack幾乎都是C語言寫的,用戶對于ZigBee無線網絡的開發就簡化為應用層的C語言程序開發。此外,Z-stack提供了很多的例程,在根據節點電路移植協議棧后,通過修改例程可以很快地完成無線傳感網絡的設計。使用協議棧進行開發的好處,不需要過多關注協議的細節,只需要掌握數據的流動過程,以及如何使用協議棧提供的函數來完成自身項目的需求即可。因此,本文選擇基于Z-stack協議棧進行ZigBee無線傳感網絡的應用程序開發。5.3ZigBee無線傳感網絡的設計本系統的ZigBee無線網絡是由協調器和若干終端節點組成。其軟件設計主要包括ZigBee協調器軟件設計和ZigBee終端節點軟件設計。5.3.1通信協議ZigBee網絡的物理層和MAC層的通信協議遵循IEEE802.15.4標準,由于本智能家居系統中ZigBee網絡采用簡單的星形拓撲結構,網絡層也不涉及路由尋址等問題,因此,本文通信協議的設計主要考慮應用層。數據幀格式如表5-1所示。表5-1協議協議頭保留字段傳感器的唯一傳感器類型操作類型保留字段數據域CRC協議尾設備設備Byte[0]Byte[1-6]Byte[7-12]Byte[13]Byte[14]Byte[15-16]Byte[17-24]Byte[25]Byte[26]0xFF默認填充為0識別號21或3默認填充為,0][8傳感器返回的信息校驗和0xFF5.3.2協調器節點設計協調器的工作流程協調器是全功能設備,是網絡的核心,它不僅建立了網絡,而且還給其它傳感器節點分配網絡地址。如果沒有協調器整個網絡就無法運行,協調器的硬件結構比較的簡單,其軟件設計相對比較復雜。協調器初始化后就開始組建網絡,組建網絡成功后就處于等待數據查詢狀態,若觸發數據查詢事件,查找與該事件對應的傳感器節點,查詢到網絡節點后發送查詢命令,然后接收傳感器節點的信息,主控制器若想獲得某傳感節點的信息,就通過此協調器獲得對應節點的信息并在顯示屏上顯示該信息。協調器的軟件流程如圖5-3所示。
圖5-3協調器節點的流程圖串口接收/發送數據幀串口通信的目的就是收集到的節點數據傳輸到上位機(智能家居系統),系統將這些數據通過手機短信或者Internet的方式反饋給用戶,用戶根據這些數據做出決策,然后再發送指令給智能家居系統,系統再根據串口的數據通信協議規范用戶發送的指令并將這些指令發送給ZigBee網絡協調器,協調器根據ZigBee數據通信協議規范接收到的指令并再次將這些指令發送給控制節點。①發送一幀數據的過程發送數據幀主要在節點反饋數據和上位機發送查詢/控制命令,此過程比較簡單,沒有校驗過程,具體步驟如下:設定起始字節和結束字節為0xFF,在中間插入數據和數據的校驗碼。除了起始字節和結束字節外,將一幀數據中的0xFF和0xFE(包括校驗碼)字節進行編碼:0xFF0xFE0x01、0xFE0xFE0x00。將編碼后的數據通過串口發送。②接收一幀數據的過程接收數據幀主要在ZigBee協調器節點接收上位機的查詢/控制命令以及上位機接收ZigBee網絡的反饋數據。此過程存在恢復被編碼的數據(即0xFE0x010xFF、0xFE0x000xFE)和校驗過程,因此比發送數據幀要復雜。具體步驟如下:首先接收一幀起始字節為0xFF,結束字節為0xFF的數據。由于在一幀數據中除了起始字節和接受字節為0xFF,其余的數據均不會出現0xFF,若起始字節有兩個0xFF,則拋棄第一個0xFF,從第二個0xFF開始。恢復被編碼的數據(譯碼),即對起始和結束字節之間為0xFE0x00和0xFE0x01的數據譯碼為0xFE和0xFF,即0xFE0x010xFF、0xFE0x000xFE。判斷譯碼后的幀長度,如果符合既定長度,則進行校驗驗證,校驗碼驗證也通過,則說明該幀數據正確,進行處理。如果在第三步中判斷數據有錯,則拋棄該數據,繼續處理后面接收到的數據。通常在拋棄錯誤數據的時候,為保證沒有拋棄下一幀數據的起始字節,在收到兩個連續的0xFF時,只拋棄一個0xFF,另一個作為下一幀的起始字節繼續使用。提取數據幀中有效載荷,并對這些載荷進行處理。5.3.3終端節點設計ZigBee終端節點程序按照各個節點實現的功能進行設計,分為兩類:一類是環境信息采集節點,一類是受控節點。環境信息采集比如溫度傳感器終端節點,當收到家居網關的命令后,接下來就要對接收到的信息進行分析與判斷,若為溫度采集信息則調用相應的溫度采集程序進行溫度采集,然后將溫度傳感器采集來的信息進行數據打包后發送給協調器,然后由協調器發送給家居網關,程序流程圖見圖5-4。受控節點比如燈光,當收到家居網關的命令后,控制設備開關,并將狀態反饋到家庭網關,程序流程圖如圖5-5所示。圖5-4采集終端節點流程圖圖5-5受控終端節點流程圖第6章嵌入式網關設計6.1智能家居網關分析6.1.1工作原理智能家居網關作為一種傳輸網關,它的作用在于在智能家居內部網絡與外部Internet網絡之間建立通信橋梁,完成不同網絡的數據跨異構網絡的傳輸。其基本工作原理可以描述如下:網關通過無線路由器連接到手機或外部Internet網絡,接收控制端發送來的控制和查詢命令,解析命令并將命令按照指定的格式發送給與網關可以直接通信的智能家居內部網絡中的各前端設備節點,實現對各設備的控制;同時作為智能家居內部網絡的信息匯聚節點,它接收來自各前端設備節點的數據信息,并對數據進行處理后發送到可以通信的外部網絡,從而完成智能家居系統網絡數據的異構網傳輸。6.1.2功能要求智能家居系統中,智能家居網關一方面是家庭內部網絡中信息數據的匯聚點,另一方面它聯系著遠程控制端,因此其性能直接影響著整個智能家居系統的最終性能。構建智能家居網關時應當在充分考慮實用性、易操作性、高兼容性和可擴展性等基本要求的基礎上,滿足網關還需具備較強的處理能力、通信能力和存儲能力的性能要求。通過分析目前市場上主流的智能家居網關基本功能,并結合未來發展趨勢和論文的實際應用需求,確定了本論文的智能家居網關的功能需求如下:家庭內部網絡建立功能:網關負責智能家居內部網絡的建立、管理和維護。家庭內部網絡數據發送及匯聚功能:向家庭內部網絡設備節點轉發控制命令,并接收來自內部網絡中各設備節點的數據信息。設備信息存儲功能:存儲智能家居內部網絡中各設備節點的編號、名稱、類型、狀態、位置等信息。Internet數據傳輸功能:完成與Internet網絡中的客戶端和服務器的數據通信,包括經Internet接收控制命令、返回查詢和控制結果等。內外網訪問功能:既可以通過家庭無線局域網(WLAN)Wi-Fi訪問網關,又可以通過公共Wi-Fi、3G或GPRS等經Internet公網服務器訪問網關,實現對家庭內部網絡中各種設備的控制。狀態顯示功能:網關實時顯示當前的工作狀態,包括內部網絡數據發送和匯聚狀態、Internet網絡數據發送和接收狀態、與服務器連接狀態等。6.1.3智能家居網關總體設計智能家居網關既要連接智能家居內部網絡,又要連接外部網絡,同時需要提供足夠的信息存儲空間,基本的人工輸入功能,狀態輸出功能。網關的總體框架如圖6-1所示。圖6-1智能家居網關總體框架圖智能家居網關作為一種典型的嵌入式系統,應該具備較強的實時任務處理能力、一定的信息存儲功能、較強的可擴展性、低功耗等特點。智能家居內部網絡的數據匯聚功能是智能家居網關的核心功能之一,作為智能家居內部網絡的匯聚節點,網關需要完成內部網絡的構建、維護、數據收發的任務。智能家居網關選擇ZigBee技術構建家庭內部網絡,需要為網關配置符合ZigBee技術標準的網絡協調器,并與主處理器硬件接口實現無縫連接,解決智能家居內部網絡的數據通信問題。實驗箱內A8網關硬件電路以ARM系列的Cortex-A8處理器為控制核心,主要包括電源模塊、按鍵模塊、觸摸屏模塊、存儲電路模塊、通信接口模塊等,完全能夠滿足本設計的要求,如圖6-2所示。因此,以下只介紹網關軟件設計過程。圖6-2網關硬件結構圖6.2網關軟件開發平臺的搭建網關軟件開發平臺如圖6-3所示,包括U-Boot、文件系統、Linux內核以及嵌入式Qt庫。U-Boot用作引導加載程序,負責加載內核;文件系統存儲系統應用以及用戶數據等;內核是整個操作系統的核心,負責對上層的抽象化;Qt庫提供應用軟件圖形API。軟件平臺搭建完成后,可以通過Qt進行網關應用程序的開發。圖6-3軟件平臺框圖6.3網關應用程序設計本設計采用Qt進行網關應用程序開發。Qt是一個跨平臺的C++圖形用戶界面庫。Qt是完全面向對象的,提供了豐富的窗口部件集,給應用程序開發者建立藝術級的圖形用戶界面所需的應用功能。而且很容易擴展,允許真正地組件編程。最為重要的是Qt使用“一次編寫,隨處編譯”的方式來構建多平臺圖形用戶程序。6.3.1網關工作流程本設計的網關工作流程圖如圖6-4所示。本設計中的傳感器的數據監控、設備的定時控制均由設備監控進程來進行維護,用戶退出時會自動保存用戶的配置,在啟動時自動導入配置,并將該配置同步給設備監控進程。在此之后設備的監控全部由設備監控進程來負責,在設備狀態更新或者由短消息控制設備定時狀態得到更新時,由設備監控進程通知該用戶界面進程來進行更新,以保證設備狀態信息的同步。在系統啟動開始需要用戶輸入密碼,進行授權驗證。如果密碼驗證錯誤次數超過閾值,則直接退出系統。如果驗證成功,則進行系統啟動,向設備監控進程請求設備的開關狀態以及傳感器的數據,初始化系統界面,之后進入循環判斷流程:如果有從設備監控進程發來的設備狀態信息同步數據,則進行數據的更新;如果用戶點擊設置按鈕,進行系統參數設置,如果選擇保存設置,則根據改變的參數類別,將其保存至文件或者通知相應的進程。圖6-4網關工作流程圖6.3.2應用程序界面設計網關應用程序的功能可分為后臺服務和功能控制。后臺服務主要會檢查如下這些情況:溫濕度的實時數值,以反映在主界面之上;檢查當前的燈光強度以自動控制窗簾的開或關;檢查當前的溫度以自動控制空調的開或關;檢查是否發生火災或入侵作出相應的動作。功能控制包括六大部分分別是門禁控制、廚房控制、窗簾控制、燈光控制、警報消除以及短信控制。各級功能控制會負責自己所控制的區域,不會互相交叉影響。1.主界面設計根據網關應用程序的功能,主用戶界面如圖6-5所示。該界面提供給用戶當前各個傳感器的實時數據,設備定時信息的總覽,并在狀態欄中實時顯示各個傳感器的連線狀態信息等,當和某個傳感器失去連線時,會顯示在主界面上,并有警告對話框提示用戶進行檢查。該界面中下端的設置按鈕以及上端工具欄中按鈕以及菜單欄設置欄中的選項均可調出系統對應的配置對話框供用戶進行配置,該部分對話框設計的部件在系統初始化時已經創建,僅是隱藏未顯示,在調用時顯示即可,以此來加速對話框的顯示,給用戶提供流暢的顯示。圖6-5主界面2.傳感器設置界面設計本設計中傳感器設置界面如圖6-6所示,該界面提供給用戶如下設置選項:蜂鳴器使能、門禁報警使能、溫度報警閾值設定、天然氣報警設置,該保存命令框的功能同上述設置GSM短消息配置大體相同,但本界面的設置保存除保存在系統配置中外,還需要將這些信息同步給設備監控進程,使各個進程間的配置保持相同。該界面的在系統配置中保存界面配置信息的代碼如下所示:圖6-6傳感器設置界面6.3.3應用程序設計與實現 網關的主要功能是通過串口與ZigBee無線傳感網絡實現信息交互和通過Internet網絡與控制終端(手機)實現遠程控制。1.串口通信Linux系統對串口的讀取僅能采用查詢模式。此外,Qt中并沒有特定的串口控制類,實際開發過程中多采用qextserialport類實現串口通信。2.網絡通信網關網線連接無線路由器,通過Wi-Fi網絡與智能交互終端等產品進行數據交互。在控制終端(手機)Wi-Fi功能的基礎上,應用程序通過套接字通信的方法來實現網關和控制終端的TCP連接。套接字通信的基本思想比較簡單,客戶端建立一個到服務器的連接,一旦建立了,客戶端就可以往套接字里面寫數據,并向服務器發送數據;反過來,服務端讀取客戶端寫入套接字的數據。因此,在Qt中建立一個TCP的服務器,在手機應用程序中建立一個TCP客戶端,基于手機的Wi-Fi功能便可實現網關和手機的TCP連接。Qt提供了QTcpSocket類實現TCP傳輸協議,若是創建服務器應用程序,還需要QTcpServer類處理引入的TCP連接。第7章基于Android控制的智能家居終端設計7.1Android系統體系結構Android主要是為移動平臺而設計的軟件包,其體系結構被分為四層,分別是Linux內核層、Android運行時和組件庫、應用框架層和應用層,如圖7-1所示。使用linux內核實現任務調度,內存管理等核心功能。同時實現了一個java虛擬機以支持java程序的運行,提供了各種C庫支持并把這些功能重新用jar包封裝,使得Android程序的開發變成了純java的開發。Google公司提供了整套開發環境和工具。圖7-1圖7-1Android體系結構7.2Android軟件平臺的搭建7.2.1Linux內核層Android是基于LinuxVersion216123內核開發的,主要是添加了一個名為Goldfish的虛擬CPU以及Android運行所需的特定驅動代碼。該層用來提供系統的底層服務,包括安全機制、內存管理、進程管理、網絡堆棧及一系列的驅動模塊。作為虛擬的中間層,該層位于硬件與其他的軟件層之間。7.2.2Android運行時庫和其他庫層運行時庫和其他庫層Android運行時庫包含一組核心庫(Java語言核心庫內的大部分功能)和Dalvik虛擬機。同時Android提供了豐富的庫類支持且大部分為開源代碼,如采用的數據庫為SQLite。Android選擇它作為移動終端的嵌入式數據庫有以下優點:它無需安裝和管理配置,它是一個存儲在單一磁盤文件中的完整的數據庫,體積只有250KB但支持數據庫大小至2TB,提供了對事務功能和并發處理的支持,而且比目前流行的大多數數據庫運行速度快。7.2.3應用框架層提供在應用框架,Android開發人員可以跟那些核心應用一樣擁有訪問框架APIs的全部權限。應用的結構化設計簡化了各組件之間的重用,任何應用都可以分發自己的組件,任何應用也可以使用這些分發的組件(應用的使用方法需遵循框架的安全性約束)。7.2.4應用程序層Android本身會附帶一些核心的應用程序,包括E-mail客戶端、短信程序、日歷、地圖、瀏覽器、通信錄等,目前所有的應用程序都是由Java語言開發的。7.3Android應用程序的開發智能家居智能終端應用程序主要功能模塊框架如下圖所示:圖7-2應用程序功能框架圖 手持終端要與網關進行通信,如果附近有熱點,可以使用Wi-Fi或者直接通過移動蜂窩網接入網關,終端和網關間的通信是基于TCP協議。基于Android開發的程序主要包括用戶界面開發和網絡功能開發兩個部分。界面的開發使用Android提供的各種API,可以得到精致的界面。而網絡方面的開發則要用到Java支持Sochet通信功能的API和文件讀寫的API。7.3.1界面設計當用戶擁有智能家居遠程控制系統中的相關硬件,如環境模塊、房間控制器、設備模塊等,各模塊上標示有唯一的ID,用戶可以根據ID進行注冊,注冊成功后便可以登錄此系統對相關設備進行控制。若用戶已經注冊,則可以直接登錄認證,登錄系統認證的大致流程圖7-3所示。圖7-3登陸系統認證流程若用戶登錄成功,則系統直接跳轉到系統主界面;系統的主界面如圖7-4所示。若用戶名或密碼錯誤,則彈出錯誤提示框。圖7-4系統主界面7.3.2基于Android的應用軟件設計在網絡編程方面,Android提供了非常好的支持。針對TCP傳輸,Android提供Socket類和ServerSocket類。手機側建立只需建立Socket客戶端,套接字Socket類的基本結構如圖7-5所示。 SocketSocketbind()close()connect()getInputStream()getInetAddress()getOutputStream()圖7-5Socket類的結構第8章系統測試8.1手機APP測試圖8-1主用戶界面測試結果:點觸以上功能均通過。8.2網關測試測試結果:點擊以上按鈕測試均通過。8.3智能家居環境的測試系統中的軟硬件資1.Zigbee系統中的軟硬件資1.Zigbee節點2.溫度傳感器、感器等多種傳感器3.測試用手機,庭網關中的軟件/基服務器端的Web程及其功能底板光敏傳感器、煙感及有害氣體傳設備,警報器等執行設備。平板電腦系統中的軟件包括:家于Android的移動終端上的軟件,序中的硬件展示,包括有ZigBee無線節點、無線智能報警系統、短信發送模塊、煙霧傳感器和攝像頭等。圖8-3智能家居環境8.4家庭安防系統的測試家庭安防系統包括無線報警系統、短信發送模塊、攝像頭及遠程終端測試程序。當用戶外出后,家庭安防系統開始工作。如果遇到門窗被打開,或者發現煙霧濃度過高,當這些信息被傳給網關后,網關會觸發一系列的活動,如短信通知、發出鳴叫等。展示了這樣一個當主人外出,家居安防系統啟動,遇到大門被打開時的情形。這時網關收到這一信號,判斷有人闖入。此時,一方面網關通過打電話通知主人。8.5家庭環境控制系統系統中家居環境控制實現了傳統家居設備操作,系統屏敝了不同操作設備之間的差異,使用同一種操作方式控制各種各樣的家居。在實現這一功能的基礎上,系統還實現了一定程序的自主控制。自主控制的含義是家居網關可以設置用戶習慣,即一系列動作執行列表。網關會根據時間,環境參數等因素,自主的執行這些行為。另一方面會在遠程終端打開監視程序。家居系統操作繁多的設備每一種設備都有獨立的操作方法,每一種操作都有一種操作器。然而通過ZigBee技術把這些所有的操作都歸并為統一的操作模式,方便家居用戶的操作。第9章系統特色智能家居系統的主要功能包括通信,設備自動控制,安全防范等方面。采用的器件前提都是以低成本,低功耗,穩定性好的特性。以下分別介紹我們此次設計的特色。9.1語音識別聲音控制特色我們所設計的系統的特點之一是語音控制,我們可以通過聲音控制實現照明開關、窗簾開關、智能洗浴注水開關、廚房炊具開關、門禁解除、煙霧報警解除、盜警報警解除功能。語音聲控功能為我們提供了極大的便利,讓我們在家中隨時通過語音指令控制家用電器。9.2手機遠程控制特色手機遠程控制也是本設計的一大特點實現了當主人在外面時可以手機發指令控制家里的節點,即使出門在外也可以控制家里的家用電器,手機登錄Internet網,通過簡單易懂的安卓手機界面,輕輕一點既可以實現智能洗浴注水開關、廚房炊具開關、門禁解除、煙霧報警解除、盜警報警解除等功能,讓世界的距離縮短,使家里的一切無時無刻不在我們的掌控之中。9.3遙控器近程控制特色本設計采用微型無線遙控發射、接收器件制作的無線遙控器,具有電路簡單、容易制作、調試方便等特點,可用于脈沖觸發電路或控制短時間工作的電器設備,遙控的特色是簡單易操作,在家中短距離控制可以直接用遙控控制。9.4手機遠程視頻監測特色遠程視頻智能監測系統很好的利用了將攝像頭連接至路由器,同時攝像頭是安裝在35步進電機上的,通過手機控制電機轉動的角度就可以全方位的觀察家里發生的情況。9.5緊急呼叫主人手機報警特色手機呼叫報警也是此次設計的一大特色,此次設計用了一個GPRS模塊作為家居系統重要的一部分,當家里發生盜警、火警等緊急事件時,可以及時向主人發出報警信號。結論經過兩個多月的努力,我們終于完成了此次作品—基于嵌入式Linux和ZigBee技術的智能家居系統的設計。該作品完成了。在整個設計階段,我們也遇到了很多問題,例如:在Android系統方面,我們以前并沒有接觸過Android系統的開發,因此在代碼方面存在一定問題;在Linux嵌入式方面,我們存在對代碼的編寫不熟練等問題但是在老師的幫助下,經過我們不斷的改進,最終我們一一克服了這些問題,到大賽前一個星期基本完成了整個設計過程。在整個設計階段令我感觸最深的莫過于我們小組的凝聚力,我們三位同學相互之間交流自己的想法,互相指正錯誤,互相學習,我自豪的認為我們小組是最團結的一個團隊。在剩下的幾天時間里我們還會繼續努力,繼續改進我們的設計,使我們的設計更加完美。最后感謝指導老師的悉心指導,還要感謝這次大賽的主辦方微分電子公司,感謝你們給了我們年輕的大學生發揮才能的平臺!參考文獻:[1]微分電子MS-i208-BOX實驗箱使用手冊微分電子有限公司[2]微分電子系列培訓資料微分電子有限公司[3]無線通信開發技術與實踐青島東合信息技術有限公司[4]模擬電子線路童詩白、華成英主編[5]51單片機原理及應用陳海宴主編[6]Zigbee開發技術與設計青島東合信息技術有限公司[7]百度百科.ZigBee技術./view/3085090.htm附部分程序清單://P0.7為光照度采樣(板子已自動接好)//--報警檢測開啟遙控器接的1、2接頭接P1.6P1.7(遙控器3、4接頭接P0.0P0.1)//遙控器A、B鍵為報警檢測開啟與關閉,C鍵為由手動轉自動,D鍵為手動控制燈的亮、滅//P0.345接紅外感應探頭//P0.6接零點檢測電路信號//P0.0P0.1接遙控器3、4頭//P1.3接燈泡控制電路的輸入端//P1.6P1.7接遙控器1、2頭#include"ioCC2530.h"http://定義控制LED燈的端口#defineLED1P1_0//LED1為P1.0口#defineLED2P1_1#defineLED3P1_2#defineLED4P1_3charmenjb=0;//門禁標志charbaojb=0;//報警標志charzidong=0;//手動自動標志0為自動,1為手動staticunsignedcharbuf[128];staticunsignedcharlen=0;unsignedcharerr=0,ok=0,zc=0;//zc主從標志unsignedcharzhiling=0;//是否有指令unsignedcharmac[6]={0,0x12,0x81};unsignedcharbenji[]={10,1,2,4,0x13,0x07,0x08,0x0e,0x0f,98,99};//本機指令集,此機為照明,第一個為本機的指令個數//0x01門禁開啟由下面的ma[]表述遙控器同時控制門禁模塊及照明模塊手機指令門禁與照明都響應但只由門禁應答//0x02門禁解除//0x03盜警報警啟動由照明模塊通知門禁模塊 //0x13盜警報警解除遙控器直接解除門禁與照明兩模塊的警情(門禁與照明不需要通訊);手機解除門禁與照明時,只由門禁應答//0x11煙霧報警啟動由煙霧模塊通知門禁模塊 //0x12煙霧報警解除經遙控器或手機解除,由門禁模塊通知煙霧模塊 //0x04解除報警,關閉報警器手機操作,功能類似門禁解除,但不解除“門鎖”//0x05電飯煲開啟手機控制開啟 \關閉//0x06電飯煲關閉//0x07照明手動開、閉,開、關兩種狀態轉換;并進入手動模式//0x08照明自動//0x0e照明模塊啟動報警檢測門禁開啟時(相當于門禁) 由遙控器直接控制(不經門禁模塊轉發)或手機控制//0x0f照明模塊取消報警檢測門禁關閉時 //0x09浴缸洗浴開啟手機控制開啟 \關閉//0x0a浴缸洗浴關閉//0x0b窗簾手動打開,進入手動狀態遙控器直接控制 //0x0c窗簾手動關閉,進入手動狀態//0x0d窗簾自動//0x10窗簾停止(停轉)停在中間某地,為手動狀態//99所有節點工作開啟//98所有節點工作禁止(停止)unsignedcharma[]={0,1,2,3,4,5,6,7,8,9,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,98,99};voidtx();voidfasong();voidchu_init();//串口用到的unsignedcharRecdata[16]="000";charRTflag=0;unsignedchartemp=0;chardatanumber=0;//以下為室內自動照明用到的#defineuintunsignedint#defineucharunsignedchar#defineled1P1_0#defineled2P1_1#defineled3P1_2#defineled4P1_3intinout=0;intcount=0;intnum=2750;intru=0,chu=0,churu=0;//進入室內、出去;intyx=0;//有效,出入計數有效(防止手臂擺動等多次計數)intii=0;intjs=0;unsignedcharsend_buf[2];unsignedcharlight=17;voidgetGuangM(void){P0DIR&=0x7f;ADCIF=0;//清EOC標志ADCH&=0X00;//P0.7做ad口APCFG|=0X80;//單次轉換,參考電壓為電源電壓,對P07進行采樣ADCCON3=0xb7;//等待轉化是否完成while(!(ADCCON1&0x80));//送數據的第5個字節AD轉換的高位send_buf[0]=ADCH;//送數據的第6個字節AD轉換的低位send_buf[1]=ADCL;}//io--P0及外部中斷初始化voidio_init(void){//P0中斷標志清0//P0IFG|=0x00;P0IFG=0x00;P0DIR&=~0x30;//將P0.4P0.5設置為輸入//P0.4有上拉、下拉能力P0INP&=~0x30;//P0.4和P0.5中斷使能P0IEN|=0x30;//P0.4和P0.5,改為上升沿觸發下降沿觸發PICTL&=~0x01;//開中斷EA=1;//端口P0中斷使能IEN1|=0X20;P0DIR&=~0x40;//將P0.6設置為輸入PICTL&=~0x01;//P0.6設置為上升沿觸發P0IEN|=0x40;//P0.6中斷使能P0DIR&=~0x08;//將P0.3設置為輸入PICTL&=~0x01;//P0.3設置為上升沿觸發(實際是整個P0口都設置為上升觸發)P0IEN|=0x08;//P0.3中斷使能P0DIR&=~0x01;//將P0.0設置為輸入PICTL&=~0x01;//P0.0設置為上升沿觸發(實際是整個P0口都設置為上升觸發)P0IEN|=0x01;//P0.0中斷使能P0DIR&=~0x02;//將P0.1設置為輸入PICTL&=~0x01;//P0.1設置為上升沿觸發(實際是整個P0口都設置為上升觸發)P0IEN|=0x02;//P0.1中斷使能}//io--P1及外部中斷初始化P1.4-7設置為外部中斷voidio_P1_init(void){P1SEL&=~0Xf0;//設置P1.4-7為普通IO口P1DIR&=~0Xf0;//在P1.4-7口,設置為輸入模式P1INP&=~0xf0;//打開P1.4-7上拉電阻,不影響//設為輸入//P1DIR|=0x0f;//P1口低4位設置為輸出//P1DIR&=0x0f;//在上面的基礎上,高4位設置為輸入//P1中斷標志清0P1IFG&=0x00;//P1.4--P1.7中斷使能P1IEN|=0xf0;//上升沿觸發下降沿觸發PICTL&=~0x04;//開中斷EA=1;//端口P1中斷使能IEN2|=0X10;}/****************************延時函數*****************************/voidDelayms(unsignedintxms)//i=xms即延時i毫秒{unsignedinti,j;for(i=xms;i>0;i--)for(j=587;j>0;j--);}voidDelay(unsignedintm)//unsignedcharm{inti=0,j=0;for(i=0;i<1000;i++){for(j=0;j<m;j++);}}//LED燈初始化voidled_init(void){//P1為普通I/O口//P1SEL&=~0x0f;P1SEL=0;//P1.0P1.1P1.2P1.3設置為輸出P1DIR|=0x0F;//關閉LED1LED1=1;//關閉LED2LED2=1;//關閉LED3LED3=1;//關閉LED4LED4=1;}/************************串口初始化*返回參數無***********************/voidinitUARTtest(void){//晶振CLKCONCMD&=~0x40;//等待晶振穩定while(!(SLEEPSTA&0x40));//TICHSPD128分頻,CLKSPD不分頻CLKCONCMD&=~0x47;//關閉不用的RC振蕩器SLEEPCMD|=0x04;//位置1P0口PERCFG=0x00;//P0用作串口P0SEL=0x3c;//UART方式U0CSR|=0x80;//baud_eU0GCR|=10;//波特率設為57600U0BAUD|=216;//UTX0IF=1;UTX0IF=0;//UART0TX中斷標志初始置位0//允許接收U0CSR|=0X40;//開總中斷,接收中斷IEN0|=0x84;}/*****************************************************************函數功能:串口接收一個字符*入口參數:無*返回值:無*說明:接收完成后打開接收****************************************************************///串口中斷,串口接收一個字符#pragmavector=URX0_VECTOR__interruptvoidUART0_ISR(void){//清中斷標志URX1IF=0;temp=U0DBUF;Recdata[0]=temp;}/*************************************************///向串口發送數據voidUartTX_Send_String(unsignedchar*Data,intlen){intj;for(j=0;j<len;j++){U0DBUF=*Data++;while(UTX0IF==0);UTX0IF=0;}}voidrf_init(){//硬件CRC以及AUTO_ACK使能FRMCTRL0|=(0x20|0x40);/*AUTO_ACK|AUTO_CRC*///設置TX抗混疊過濾器以獲得合適的帶寬TXFILTCFG=0x09;//調整AGC目標值AGCCTRL1=0x15;//獲得最佳的EVMFSCAL1=0x00;//RXPKTDONE中斷位使能RFIRQM0|=(1<<6);//RF中斷使能IEN2|=(1<<0);//開中斷EA=1;//信道選擇,選擇11信道FREQCTRL=0x0d;//目標地址過濾期間使用的短地址SHORT_ADDR0=0x05;SHORT_ADDR1=0x00;//目標地址過濾期間使用的PANIDPAN_ID0=0x22;PAN_ID1=0x00;//清除RXFIFO緩沖區并復位解調器RFST=0xed;//為RX使能并校準頻率合成器RFST=0xe3;//禁止幀過濾FRMFILT0&=~(1<<0);}#pragmavector=RF_VECTOR__interruptvoidrf_isr(void){unsignedchari;//關中斷EA=0;//接收幀結束if(RFIRQF0&(1<<6)){//接收幀長度len=RFD;len&=0x7f;//將接收的數據寫入buf中for(i=0;i<len;i++){buf[i]=RFD;Delay(200);}//清RF中斷S1CON=0;//清RXPKTDONE中斷RFIRQF0&=~(1<<6);//LED2等狀態改變LED2=~LED2;//UartTX_Send_String(buf,len-3);//Uart0SendString(buf);}//Delay(200);EA=1;if((buf[0]+buf[1]+buf[2]==buf[3])&&(buf[1]==mac[1]&&buf[2]==mac[2]))//如果校驗正確且密鑰對{if(zc==1)//主從,若自己為主叫if(buf[0]==0)ok=1;if(zc==0)//從機{for(i=1;i<=benji[0];i++)if(buf[0]==benji[i])//如果是屬于本機的指令{zhiling=buf[0];//指令置為相應的指令,并發送ok應答0代表OK//if(zhiling==0x0e)LED3=0;mac[0]=0;mac[3]=mac[0]+mac[1]+mac[2];//if(buf[0]!=98&&buf[0]!=99)tx();//本機模塊各指令都不需要應答}}}}voidtx(){unsignedchari;//unsignedcharmac[]="dh";//unsignedcharmac[]="DH";//為RX使能并校準頻率合成器RFST=0xe3;//waitforSFDnotactiveandTX_Activenotactive//TX_ACTIVE|SFDwhile(FSMSTAT1&((1<<1)|(1<<5)));//禁止RXPKTDONE中斷RFIRQM0&=~(1<<6);//禁止RF中斷IEN2&=~(1<<0);//ISFLUSHTXRFST=0xee;//清除TXDONE中斷RFIRQF1=~(1<<1);//傳輸的幀長度RFD=7;//將mac的內容寫到RFD中for(i=0;i<5;i++){RFD=mac[i];}//打開RX中斷RFIRQM0|=(1<<6);//打開RF中斷IEN2|=(1<<0);//ISTXONRFST=0xe9;//等待傳輸結束while(!(RFIRQF1&(1<<1)));//清除TXDONE狀態RFIRQF1=~(1<<1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025遼寧城市建設職業技術學院輔導員考試試題及答案
- 猴年微信祝詞
- 先秦文學教學設計
- 福建省建筑設計研究院有限公司招聘筆試題庫2025
- 人文社會科學考試試卷及答案2025年
- 2025年心理健康服務與干預職業資格考試試卷及答案
- 2025年縣鄉衛專業資格考試試題及答案
- 新生兒光療護理
- 2025年人際溝通與團隊協作能力測評的考試試題及答案
- 2025年綠色建筑與可持續設計考試試卷及答案
- 2024年四川省綿陽市中考學情調查地理試題(原卷版)
- 穿越時空的音樂鑒賞之旅智慧樹知到期末考試答案章節答案2024年浙江中醫藥大學
- 重慶市藻渡水庫工程環境影響報告書-上報
- QCT457-2023救護車技術規范
- DZ∕T 0207-2020 礦產地質勘查規范 硅質原料類(正式版)
- 云南省勞動合同范本下載
- 醫院培訓課件:《分級護理制度》
- 外國建筑賞析智慧樹知到期末考試答案章節答案2024年清華大學
- 抑郁障礙課件
- 2024屆湖南省瀏陽市中考聯考化學試卷含解析
- 北京奧林匹克森林公園植物景觀與生態效益初探
評論
0/150
提交評論