物聯網在智能家居中的應用系統設計_第1頁
物聯網在智能家居中的應用系統設計_第2頁
物聯網在智能家居中的應用系統設計_第3頁
物聯網在智能家居中的應用系統設計_第4頁
物聯網在智能家居中的應用系統設計_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

物聯網在智能家居中的應用系統設計摘要隨著人類社會的進步和科學技術的迅猛發展,特別是計算機技術、嵌入式技術、無線通信技術的發展,人類開始邁入以數字化、網絡化、智能化、人性化為平臺的物聯網世界。智能家居是在現有的住宅基礎上,利用計算機技術、嵌入式技術、無線通信技術、互聯網技術使家庭中各種終端設備連接成為一個物物相連的整體,可以實現在生活中的智能化控制,以及網絡的遠程監控和管理。它不僅擁有傳統意義上安全、溫馨、自由、舒適等特點的居住環境,而且可以使家庭中的終端設備賦予更多的人性化和智能化,可以提供一個完善的信息交互平臺,幫助我們獲取更多的外面信息,為我們的生活提供更多的方便,使我們可以更好的管理我們的家庭,已經成為了人類社會住宅的發展方向以及21世紀新概念住宅的一種必然趨勢。在此背景下,本文對物聯網在智能家居中的應用進行了研究。關鍵詞:物聯網;智能家居;系統構建

AbstractWiththeprogressofhumansocietyandtherapiddevelopmentofscienceandtechnology,especiallycomputertechnology,embeddedtechnology,thedevelopmentofwirelesscommunicationtechnology,humansbegantoenterthedigital,networked,intelligent,humannatureasaplatformofInternetofthingsintheworld.Smarthomeisonthebasisofexistingresidential,usingcomputertechnology,embeddedtechnology,wirelesscommunicationtechnology,Internettechnologymakesallkindsofterminalequipmentconnectedinthefamilyasaphysicalconnectedwhole,canrealizetheintelligentcontrolinthelife,andtheremotemonitoringandmanagementofthenetwork.Itnotonlyhastraditionallysafe,warm,freeandcomfortablelivingenvironment,butalsocanmaketheterminalequipmentofthefamilygivesmorehumanizationandintelligent,canprovideaperfectinformationinteractionplatform,helpustogetmoreinfoabouttheoutside,toprovideourlifemoreconvenient,enableustobettermanageourfamily,hasbecometheresidentialdevelopmentdirectionofhumansocietyandthenewconceptofhousingakindofinevitabletrendofthe21stcentury.Inthisbackground,thisarticleontheInternetofthingsintheapplicationofsmarthomeisstudied.Keywords:theInternetofthings;Smarthome;Systembuilds目錄摘要 1Abstract 2第1章相關理論概述 41.1智能家居概述 41.2系統的需求分析 51.3智能家居系統結構總體設計方案 6第2章物聯網智能家居系統硬件設計 82.1硬件設計流程 82.2通信模塊設計 92.3采集模塊設計 102.3.1溫度傳感器模塊 102.3.2濕度傳感器模塊 122.2.3火警監測模塊 142.2.4煤氣檢測模塊 18第3章物聯網智能家居系統軟件設計 183.1建立開發環境 183.2內核的移植與配置 203.3yaffs2文件系統的制作與移植 253.4嵌入式Web服務器Boa的移植 26第4章結論 27參考文獻 28致謝 30

第1章相關理論概述1.1智能家居概述智能家居是一個居住環境,是以住宅為平臺安裝有智能家居系統的居住環境,利用先進的計算機技術、網絡通信技術和綜合布線技術將與家居生活有關的各種子系統,將家居生活有關的設施集成,構建高效的住宅設施與家庭日程事務的管理系統,提升家居安全性、便利性、舒適性、藝術性,并實現環保節能的居住環境。智能家居的目標是:將家庭中各種與信息相關的通信設備、家用電器和家庭保安裝置通過家庭總線技術(HBS)連接到一個家庭智能化系統上進行集中的或異地的監視、控制和家庭事務性管理,同時保持這些家庭設施與住宅環境的和諧與協調一致。與普通家居相比,智能家居不僅具有傳統的居住功能,提供舒適安全、高品位且宜人的家庭生活空間,還由原來的被動靜止結構轉變為具有能動智慧的工具,提供全方位的信息交換功能,幫助家庭與外部保持信息交流暢通,優化人們的生活方式,幫助人們有效安排時間,增強家居生活的安全性,甚至為各種能源費用節約資金。物聯網為家居智能化提供了技術條件,使智能家居成為可能,表現在:物聯網所包括的自動感知技術、傳感器技術、計算機技術、網絡通訊技術、信息協議交換、嵌入式技術等,使得物品具有數據化的身份標識,借助家庭網關,數據可以電信網、互聯網、廣電網上對內和對外的流動。智能家居是物聯網技術應用生活的具體表現,使一個抽象概念轉變成現實應用。物聯網的技術推廣成為推動智能家居發展的催化劑,智能家居系統逐步朝著網絡化、信息化、智能化方向發展,智能終端設備的產品也逐步走向成熟,尤其以ZigBee為代表的先進技術應用,使得物聯網通信技術往無線方向發展,也從一定程度上降低了產品的成本,更容易推廣和接受。傳統的智能家居雖然也具備一定的系統性,提供了諸多應用,但是沒有突出與互聯網技術、感知技術的有機融合。把物聯網技術應用于家庭環境,實現對智能家居系統的全面提升。智能家居在我國已經發展十多年的時間,但是智能家居行業還沒有發展到一定的規模,物聯網作為一個新的經濟增長點,受到各發達國家和新興經濟體國家的大力推崇,智能家居行業作為物聯網的一個重要組成部分將會受到了社會各界前所未有的關注,對智能家居行業的廠商來說將迎來難得的發展機遇。1.2系統的需求分析智能家居系統為住戶提供全方位的信息交換功能,幫助家庭和外部、使用者與家庭環境之間保持信息交流暢通,優化人們的生活方式。一個完整的智能家居系統需要解決的問題包括:家電的遠程控制即隨時隨地實現對家電的控制,方便用戶不在家時對家電進行操作;智能照明即能對燈光進行集中和遠程控制,提供舒適的照明體驗;電動門窗即對電動鎖、電動窗簾的遠程控制,確保家庭環境的安全,隨時調節家庭的光照;安防報警即通過視頻監控和報警器隨時監視家庭的安全狀況;環境信息采集即對溫度和濕度采集,隨時隨地的感知家庭的環境信息。1.3智能家居系統結構總體設計方案圖1.1是智能家居系統的結構框圖。從圖中可以看出可看出,作為家居部分中最為重要的智能網關擔負著不同網段信息匯集的任務。對家居網絡內部,它與協調器相連,是家居信息唯一的出口,對于外部網絡,它與Internet相連,是遠程操作接入家庭內部網的最后一道屏障。無論是家居內部的環境的信息,還是遠程用戶的操作命令,都會經過家居網關的轉發。這樣的設計保證了家居內部網絡環境的安全性。圖1.1智能家居系統結構框圖整個智能家居系統的層次設計按照物聯網的層次結構也分為三層:分別是數據感知層、網絡層和應用層。其中位于感知層的有ZigBee節點及其所組成的ZigBee網絡、各類傳感器、音視頻采集設備等感知器以及安防門禁系統等執行器。在這一層次上主要解決的是底層ZigBee節點互連的問題。各種傳感器信息通過ZigBee節點把環境信息轉送到網關;同樣由應用層發出的命令信息也通過ZigBee節點發給執行設備來完成特定的用戶操作。在網關和ZigBee網絡之間,是ZigBee協調器。它負責網絡組網,ZigBee信息匯集和用戶命令的向下分發。智能家居的網絡層主要由三個子網通過網關組成如圖1.2所示。由家庭內部網、Internet網和移動蜂窩網組成。其中網關作為三網之間的橋梁,負責收集家庭內部網中的節點信息和狀態并在網關上進行處理,再通過網關向和蜂窩網進行發送。例如通過Internet查看家庭內部監控信息或通過手機短信控制家居設備等。圖1.2智能家居網絡層應用層設計是物聯網智能家居設計的重要目標。開發一個智能家居環境需要考慮到在家居應用中哪些應用是有意義的。目前智能家居中,家居安防監控、家庭信息管理、家居環境監測和控制是三個重要方面。其具體應用如:火災及有害氣體預警、家庭老人監護、家務清單信息管理等。下面將分別從傳感器網絡的組建、軟硬件平臺的選擇和智能家居網關應用程序的開發三個方面進行詳細講述。第2章物聯網智能家居系統硬件設計2.1硬件設計流程通常硬件電路的設計流程如下:第一步,根據各節點的功能確定實現各節點功能所需的模塊;第二步,為各模塊選擇合適的芯片,選擇芯片時要考慮芯片功能、參數、成本等因素;第三步,設計各模塊原理圖并畫出PCB圖;最后加工電路板并調試電路。整個設計流程如圖2.1所示。圖2.1硬件設計流程2.2通信模塊設計本設計中GSM模塊是智能網關節點的一部分,其作用是根據智能網關模塊中MCU的指令通過GSM網絡向用戶手機報警,以及接收用戶手機發來的指令并將指令交給網關中的MCU處理。在本文設計的系統中選用西門子公司生產的模塊,TC35是一款雙頻900/1800MHZ高度集成的GSM模塊,它體積小、功耗低,主要由GSM基帶處理器、供電模塊和一個FLASH存儲器模塊組成,并通過接口引出所有可以與其他模塊相連的引腳,TC35模塊的硬件結構如圖2.2所示:圖2.2TC35硬件結構圖圖中,GSM基帶處理器是整個模塊的核心部分,他負責處理模塊中的各種數據以及控制各種接口,電源模塊負責給整個電路供電,射頻部分負責RF信號的接收和發送。本文中GSM模塊受MCU控制,主要數據交換也發生在它與之間,GSM模塊與MCU的互連通過ZIP接口實現。2.3采集模塊設計2.3.1溫度傳感器模塊本文選用DS18B20溫度傳感器芯片,其外形和典型封裝如圖2.4所示,我們選擇圖中最左邊的封裝。這種溫度傳感器芯片非常簡單,只有三個引腳,使用時1腳接地,3腳接MCU電源,2腳接MCU的I/O口。爆接的時候千萬要注意不能接反,一旦接反就會發熱,很可能燒毀。DS18B20應用電路如圖2.3。其中DQ接到CC2430(或MCU)的I/O口。圖2.3溫度傳感器DS18B20圖2.4溫度傳感器模塊電路DS18B20具有耐磨耐碰、體積小、使用方便等優點,適用于鍋爐測溫、機房測溫、大鵬測溫、潔凈室測溫等各種非極限溫度場合,測溫范圍為-55°C-125°C,很顯然滿足智能家居的要求。工作電壓為3-5V/DC,在本文系統中,至于直接用MCU電源為其供電即可。獨特的單線接口方式,DS18B20與微處理器連接時只需一根接線即可實現雙向通信。此外,DS18B20還支持多點組網功能,多個DS18B20芯片可以并聯在唯一的三線上,實現多點測溫,但是最多只能并聯8個,如果芯片數量過多,會使供電電源電壓過低,從而導致信號傳輸不穩定。DS18B20芯片內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、溫度報警觸發器TH和TL、配置寄存器。當溫度高于TH或高于TL時,芯片內部會置位一個報警標識,DS18B20會對報警搜索命令有反應。在本文的系統中,我們可以根據各人對住宅環境的要求編程設定相應的TH和TL,當系統工作時啟動報警搜索命令,當發現有響應時即可做出相應的操作。也可以不使用TH和,而是MCU每隔一段時間讀出傳感器測得的溫度,當發現不在舒適度范圍內時向網關發送相應的信息。每個DS18B20芯片出廠時都有一個唯一的64位序列號被刻在光刻ROM中,所以即使有很多傳感器節點也不會產生混亂,可以將節點布置在室內需要的地方,形成室內多點監測采集。2.3.2濕度傳感器模塊同室內溫度一樣,室內空氣的濕度也是住宅舒適度的一個重要的方面,監測和釆集住宅內空氣濕度是本系統的一個重要功能。本文選擇DHT11芯片作為濕度傳感器測量空氣濕度。DHTU數字溫濕度傳感器是一中含有已校準數字信號輸出的溫濕度復合傳感器,它采用專門的數字模塊采集技術和溫度濕度傳感技術,確保該產品具有很高的可靠性和很強的長期穩定性。DHT11內部包含一個電阻式濕度傳感器和一個NTC溫度傳感器,濕度傳感器為HR202濕敏電阻,溫度傳感器則為100K±1%的熱敏電阻濕度傳感器。這里我們只需用到它的濕度傳感器功能。芯片主要參數如下:供電電壓:3.3-3.5VDC,這說明可以直接用MCU電壓對其供電。輸出:單總線數字信號測量范圍:濕度20-905%RH,溫度0-50攝氏度±測量精度:濕度±5%RH,溫度±2攝氏度分辨率:濕度1%RH,溫度±1攝氏度互換性:可完全互換長期穩定性:<±5%RH/年這些特性使得DHT11適用于家電、醫療等各種不同的領域。其應用電路如圖2.5所示。圖2.5濕度傳感器模塊電路與溫度傳感器模塊類似,濕度傳感器模塊也很簡單,同樣只需要一根接線就能進行通信。采集數據的過程很簡單:當MCU向DHT11發送一個開始信號(即一段低電平),DHT11接到收到MCU信號后,由低功耗模式轉到高速模式,等待主機信號結束后,DHT11發出響應,準備發送數據。發送的數據是一段數據,數據格式為8bit濕度整數部分+8bit濕度小數部分+8bit溫度整數部分溫度小數部分+8bit校驗和,高位先出。我們在這里只需要從收到的數據中取前位(即濕度整數部分),DHT11收到一次開始信號即啟動一次數據采集,如果沒有收到開始信號,不會啟動數據采集,采集后會自動回到低速模式。以上介紹了溫度傳感器模塊和濕度傳感器模塊,他們都是家庭環境控制系統的一部分。本文設計的智能家居系統還包括家庭安防系統。家庭安防系統的作用是對住宅中的突發險情如火災、陌生人闖入等進行監控并及時發出警報。尤其是現代家庭中家中無人得情況成為常態,這時遠程監控和報警就變得尤為重要。下面介紹本文系統中設計的幾種家庭安防系統中常用的傳感器模塊。2.3.3火警監測模塊火災是目前家居環境中很常見的一種災害類型,主要發生在廚房、電線漏電處及一些易燃物如衣服長期擺放的地方,往往造成很大的損失。火警監測模塊用以檢測家居內發生火災環境變化以及時發現火情,目前市場上的火災探測器基本上通過探測一些物理參數如火焰、溫度等的方法來監測災情,但是這些方法都有其局限性,不能對所有的火災類型做出反應,如酒精著火不產生煙,無法被監測煙霧的探測器發現,監測光線的探測器很容易由于障礙物的遮擋無法檢測到火光,所以要找到一種能夠覆蓋各種火情的傳感器來檢測火情。火災發生時燃燒主要產生C02,CO和H20等,在不同的環境中H20和C02含量變化較大且很多其他正常活動也可能產生大量的H20和C02,所以我們不采用監測這兩種氣體而選擇監測CO濃度來判斷火情。事實上CO是火災極早期的特征,正常情況下空氣中CO濃度極低,火災發生時,可燃物的不完全燃燒產生大量的CO,是空氣中CO濃度迅速增加,再加上CO濃度低于空氣,CO會很快上升到天花板處,我們將火警檢測模塊安放到已發生火災處的天花板處,可以實現火災的早期探測。本文選用氣體傳感器MQ-7來檢測空氣中CO濃度的變化,根據空氣中一氧化碳氣體濃度的變化來判斷火警。這種傳感器具有靈敏度高、價格低廉、壽命長、外圍電路簡單等優點。芯片采用高低溫循環檢測方式,低溫時(1.5V電壓加熱)檢測空氣中CO的濃度,傳感器的電阻隨著CO濃度增加而減小,高溫時電壓加熱)清洗傳感器吸附的雜散氣體。圖2.6為該傳感器的靈敏度特性圖。圖2.6MQ-7靈敏度特性曲線圖中縱坐標為傳感器的電阻比(Rs/Ro),橫坐標為氣體濃度。Rs表示傳感器在不同濃度氣體中的電阻值Ro表示傳感器在lOOOppm氧氣中的電阻值。組成的檢測電路很簡單,考慮到MQ-7工作時要用到5V和1.5V兩種電壓加熱,本文使用繼電器來給芯片提供高低電壓,原理圖如圖2.8。如圖2.8所示,輸入低電平時,繼電器線圈導通,此時繼電器1腳與2腳相接,DQ-7芯片端接5V電源,此時為高溫加熱,加熱60秒后,P1輸入高電平,繼電器線圈不導通,此時繼電器I腳接在3腳上,R4分壓,假設傳感器自身電阻為R(約為31歐),此時加熱電壓為:5×R/(R+R4)=1.5。將R=31代入可求得R4約為72歐。P2為傳給MCU的輸出信號。圖2.7DQ-7電路由于DQ-7的工作電壓為5V,而我們所用的MCU的工作電壓為3.3V,所以要給DQ-7模塊單獨供電。此外,圖中P1信號為5V高電平,不能直接由輸出信號得到。本文選擇芯片74LVC4245來實現3.3V到5V電壓的轉化。如圖2.8所示,芯片采用雙電源供電,VCCA接5V,VCCB接3.3V,由DIR腳控制轉化方向,DIR為高電平時輸入5V輸出3.3V,DIR接低電平時則相反,本文中P1信號由MCU輸出信號經3.3V轉5V得到。為了及時提醒用戶火災的發生,本文還在火警監測模塊中加入了蜂鳴器報警模塊,模塊電路如圖2.10所示,CC2430芯片I/O口P1.0和P1.1具有20mA驅動能力,足以驅動蜂鳴器報警。圖2.8741vc4245圖2.9蜂鳴器報警模塊2.3.4煤氣檢測模塊現在家庭廚房中使用煤氣非常普遍,由于人們的疏忽或者設備本身的問題導致的煤氣泄漏乃至中毒事件時有發生,成為家庭安全事故的重要原因,因此監視煤氣泄漏現象變得越來越重要。煤氣檢測模塊通常安裝于廚房中用于監測煤氣泄漏,在事故發生時發出警報,及時作出處理。煤氣泄漏中最嚴重的當屬CO泄漏,因為CO與血紅蛋白結合的能力遠強于氧氣,因而吸入過量CO會導致呼吸困難,嚴重的會導致窒息而亡。因此,監測廚房中的CO含量,防止中毒事件的發生是家庭安全的重要部分。本系統選用MQ-5氣體傳感器來監測煤氣泄漏的發生,MQ-5與上節中所使用的MQ-7芯片外形和封裝完全相同,應用電路也相似,跟MQ-7所不同的是,芯片加熱時只需要5V電源即可,無需高低電壓,故電路更加簡單。與火警監測模塊相同,此模塊上同樣安裝一個蜂鳴器,以及時發出警報。第3章物聯網智能家居系統軟件設計3.1建立開發環境交叉編譯是在一種在計算機環境下運行的編譯程序,能夠編譯生成在另外一種環境下運行的代碼。簡單地說,就是在一個平臺上可以編譯出在另一個平臺上運行的可執行代碼。平時生活中我們常常使用的QQ程序,如果我們把Windows平臺上的程序源代碼直接移植到Limix平臺上運行,這樣肯定是不能正常運行的,這里必須要使用針對Linux平臺的編譯器對源代碼進行編譯,然后生成的可執行代碼才可以在Linux平臺上運行。簡單地說,BootLoader就是在操作系統內核運行之前運行的一段小程序。通過這段小程序,可以對相應的硬件設備進行初始化,建立系統的內存空間映射圖,從而可以提供一個比較好的運行環境給系統的軟件和硬件,以便為最終調用操作系統的內核做好相應的準備。U-Boot是德國DENX小組開發的可以應用于多種嵌入式系統的程序。一方面,它不僅支持嵌入式Linux系統的引導,同時還支持Vxworks、、QNS>NetBSD等嵌入式操作系統。另一方面,除了支持PowerPC系列的處理器外,還支持ARM、X86、MIPS、XScale、NIOS等常用系列的處理器。由于需要進行交叉編譯,所以在進行移植之前,我們需要先指定相應的交叉編譯器。通過研究分析3.3.2版本的交叉編譯器能夠支持U-Boot的正常編譯。首先將arm-linux-gcc-3.3.2.tar.bz2復制到Samba共享目錄,然后執行如下命令:[root@localhostroot]#cd/home/erik[root@localhostroot]#lsarm-linux-gcc-3.3.2.tar.bz2[root@localhostroot]#tarxjvfarm-linux-gcc-3.3.2.tar.bz2-C/這樣程序就被解壓到了usr/local/arm目錄下,由于Linux根目錄運行的命令一般存放在bin、sbin、usr/bin等目錄下,所以我們這里使用添加環境變量的方法來指定PATH變量為交叉編譯器的路徑,告訴操作系統可以到這個文件夾下查找相應的可執行文件。執行命令如下:[root@localhostroot]#vi/etc/profile再打開的profile文件中相應位置添加exportPATH=/usr/local/arm/2.3.2/bin:$PATH這樣一行,如果存在這里需要把其他以“#”號開頭的其他編譯器的路徑取消掉,然后執行如下命令使剛剛修改的文件生效,并且查看編譯器的版本。[root@localhostroot]#source/etc/profile[root@localhostroot]#arm-linux-gcc-V按照同樣的方法對解HIU-Boot-].1.6,然后進入U-Boot目錄F,修改文件,在文件小的相應位置添加如下代碼:QRS2440—config:unconfig@$(MKCONFIG)$(@:_config=)araiarm920tQRS2440NULLS3C24X0來指定CPU的架構和CPU的類型等,接著指定相應的交叉編譯器。修改完文件后,我們可以建立一個自己的目錄QRS2440,然后把smdk2410目錄下所有文件拷貝到該目錄下,把smdk2410.c文件名改為QRS2440.C,同時修改該目錄下的Makefile文件,把smdk2410.o文件名改為QRS2440.O。這里還需要把board目錄下除了名為QRS2440文件的所有文件全部刪除,在目錄下創建板子的配置頭文件,把smdk2410.h文件改名為QRS2440.h,再將其他的文件全部刪除,只留下QRS2440.h文件。我們還需要對存儲控制的配置進行修改,完成U-Boot對NandFlash的支持,然后重新編譯U-Boot,最后通過仿真器燒入到Flash中,這樣就可以通過從NANDFlash中啟動來燒寫內核鏡像文件和根文件系統文件等。3.2內核的移植與配置在開發環境已經建立好的條件下,我們可以對Linux內核進行移植。從內核源碼的官方網站下載獲得內核源碼Linux-2.6.31.tar.bz2,但是這里使用的內核版本并不是總是適用于所有的Linux所支持的體現結構,所以我們需要對它進行相應的修改來適應不同的目標平臺,并且安裝到該目標平臺使目標平臺能夠正常運行起來,這個過程就叫做Linux內核移植。內核的移植比較復雜,工作量也比較大,主要步驟如下:(1)將Linux-2.6.31.tar.bz2復制到Samba共享的文件夾下,然后對其進行解壓。(2)修改Makefile文件。其功能主要是決定編譯哪些文件,怎么去編譯這些文件,以及按什么樣的順序來編譯這些文件。通過修改來指定系統的硬件架構和交叉編譯器。(3)修改2440的輸入時鐘,防止系統啟動的時候打印出亂碼。在目錄arch/anTi/mach-s3c2440/mach-smdk2440.c下輸入時鐘為12MHz,即s3c24xx_init_clocks(12000000)。(4)修改機器碼。在內核中:arch/arm/tools/mach-types,在U-Boot中:include/asmarm/mach-types.h,使內核中的機器碼和U-Boot的機器碼一致。(5)輸入命令#makememiconfig進入圖形化配置界面。在配置菜單中選擇:“LoadanAlternateConfigurationFile”,輸入2440的默認配置文件:arch/ann/configs/s3c2410_defconfig,這個文件就是S3C24XX系列芯片所支持的包,然后選擇OK,按回車鍵。接著,進入“SystemType”選項里面的選項都保持默認,在“S3C24XXMachine”選項中只配置以下兒項,其他的都取消掉。S3C2410Machine—>[*]SMDK2410/A9M2410S3C2410Machine—>[*]SMDK2440[*]SMDK2440withS3C2440cpumodule(6)支持NANDFlash的驅動。在新版的內核中支持了大頁NandFlash的驅動,那么我們需要修改NandFlash的分區表,使其同時支持64M和256M或者更大的容量。Staticstructmtd_partitionsmdk—default一nand_partn={#ifdefmed(CONFIG—64M—NAND)[0]={.name="boot",.offset=0,.size=SZlM,}’[1]={.name="kemel",.offset=SZ_lM+SZ_128K,.size=SZ_4M,}’[2]={.name="yaffs2",.offset=SZ_lM+SZ_128K+SZ_4M,.size=SZ_64M-SZ_4M-SZ_lM-SZ_128K,}'#elifdefmed(CONFIG—256M—NAND)[O]={.name=“boot”,.offset=0,.size=SZ_1M,},[1]={.name="kerner\.offset=SZ_1M+SZ_128K.size=SZ_4M,},[2]={.name="yaffs2",.offset=SZ_1M+SZ_128K+SZ_4M,.size=SZ_256M-SZ_4M-SZ_1M-SZ_128K,},#endif};(7)修改Kconfig文件,這是一個配置選項的菜單,在每一個目錄下都會存在—個Kconfig文件。在執行#makemenuconfig命令時,就會查找所有的文件,生成一個Ncurses的圖形界面配置菜單。所以在這里我們需要修改driver/mtd/nand/Kconfig,在配置時就會支持NAND類型的選擇,添加如下代碼:Choiceprompt”NandFlashCapacitySelect"dependsonMTDconfig64M_NANDboolean”64MNANDForQRS2440A"dependsonMTDconfig256M—NANDboolean"256MNANDForQRS2440A"DependsonMTDendchoice接著,配置內核來支持NandHashfDeviceDrivers—><*〉MemoryTechnologyDevice(MTD)support—>[*]MTDpartitioningsupport<=^>NANDFlashsupportforS3C24410/S3C2440SoC[*]S3C2410NANDHardwareECCNandFlashCapacitySelect(256MNandForQRS2440A)…〉(8)支持yaffs2文件系統。下載yaffs2文件系統并對其進行解壓,接著給內核打上yaffs2文件系統的補丁,執行#./patch-ker.shC內核源碼的路徑,這時內核源碼fs目錄下多一個yaffs2目同時Makefile文件和Kconfig文件也增加了的記置和編譯條件。執行#makemenuconfig命令進入Ncurses圖形界面,根據自己的需要進行配賈,并可以把不需要的文件系統都去掉,如下是幾個常的配置:Filesystems>DOS/FAT/NTFilesystems—><*>MSDOSfssupport<*>VFATfssupportMiscellaneousfilesystems><*>YAFFS2filesystemsupport[*]Autoselectyaffs2format語言選項的配置如下:NativeLanguagesupport>(iso8859-l)DefaultNLSOption<*>Codepage437(UnitedStates,Canada)<*>SimplifiedChinesecharset(CP936,GB2312)<*>NLSIS08859-1(Latin1;WesternEuropeanLanguage)<*>NLSUTF-8現在內核就已經支持NandFlash和yaffs2文件系統,只要將內核燒入后,就可以燒入yaffs2文件系統。(9)對網卡DM9000的驅動。DM9000驅動移植也是一個比較復雜的工作,需要進行配置的主要工作是:修改arch/ann/mach-s3c2440/mach-smdk2440.c,在—device結構中加入&s3c—device」im9000;在中加入如下代碼:#include<linux/dm9000.h>Staticstructresources3c_dm9000_resource[]={[0]={.start=S3C2410_CS4,.end=S3C2410—CS4+3,.flags=IORESOURCE—MEM,},[1]={.start=S3C2410_CS4+4,.end=S3C2410CS4+4+3,.flags=IORESOURCE_MEM,}’[2]={.start=IRQ_EINT18,.end=IRQ—EINT18,.flags=IORESOURCE_IRQ,},};Staticstructplatform_devices3c_device_dm9000={.name="dm9000",.id=0,.num—resources-ARRAY—SIZE(s3c—dm9000_resource),.resource=s3C-dm9000—resource,.dev={.platform_data=&s3c_dm9000_platdataj}};EXPORT—SYMBOL(s3c—device_dm9000);最后配置內核,支持網卡:DeviceDrivers>[*]Networkdevicesupport>[*]Ethemet(10or100Mbit)><*〉DM9000support(4)DM9000maximumdebuglevelLinux內核代碼非常龐大,擁有相當豐富的驅動程序,可以支持各種主流硬件設備和最新的硬件技術,但是針對于特定的目標平臺,必須對相應的驅動進行選擇。從這個角度出發,我們就需要對Linux內核進行適當的配置,根據需要對內核進行裁剪,把不需要的選項都去掉,這樣就可以使內核的體積更小,從而可以大大的縮減編譯的時間由于大部分的配置過程都是大同小異,所以在上述的配置中,這里只對CPU、NANDFIash.yaffC文件系統、網卡的配置進行了介紹。內核配置完成后,我們就可以對內核文件進行編譯,生成針對于特定平臺的內核鏡像文件ZIiTiage_。3.3yaffs2文件系統的制作與移植文件系統不僅是操作系統的重要組成部分,而且它還決定了操作系統本身的信息和用戶的數據在存儲設備上的組織形式。移植了Bootloader和LinuxOSKernel之后,iii然操作系統可以運行起來,但是我們還是無法對其進行操作的。我們知道,在計算機中大量使用的數據和程序在存儲設備中都是以文件的形式而存在的,我們需要操作的也都是文件,那么在操作系統中我們就需要有一個專門的文件系統來管理存儲設備中的文件。本設計中利用專門的制作工具mkyaffs2image將系統文件root—qtopia制作生成yaffs2鏡像文件系統。具體方法如下:(1)建立一個名為root_2.6.31的文件夾,并且在該文件夾下創建以下目錄:、/etc、/dev、/home、/opt、/lib、/proc、/mnt、/root、/usr、/sbin、/var、/tmp、。(2)獲取biisyboxl.13.2源碼進行解壓,解壓完后需要對其Makefile文件進行修改,來指定處理器架構和交叉編譯器,然后再執R#makemenuconfig命令進行配置busybox,配置完成后執行命令#make進行編譯,如果編譯沒有出現錯誤就可以執R#makeinstall命令來安裝busybox。(3)制作相應的文件系統,制作完成后我們需要使用mkyaffs2image工具把文件系統制作成可以燒寫進NandFlash中的yaffs2鏡像文件。制作文件鏡像的命令如下:#mkyaffs2imageroot—2.6—31root—2.6.3l.bin。3.4嵌入式Web服務器Boa的移植在嵌入式設備上運行一個Web服務器,能夠生成一個動態的頁面,用戶通過Web瀏覽器只要登呆到該頁面就可以對嵌入式設谷進行管理和監控。因此服務器的構建是實現遠程對智能家居系統的智能終端設備進行操作的基礎。Boa服務器是一種非常小巧的單進程Web服務器,適應于嵌入式系統的單任務服務器,具有源代碼開放、性能高等特點。Boa服務器的移植可分為兩個部分,一部分是在X86平臺上的移植,即在虛擬機的Linux下;另外一部分是在ARM平臺上的移植,即在目標硬件平臺的Linux上。我們需要先在PC機上先驗證boa服務器是否能夠正常工作,然后再移植到目標硬件平臺上,具體步驟如下:(1)獲得boa-0.92.13.tar.gz源代碼文件,進行壓解后,執行#./configure和#make命令生成Makefile文件并進行編譯。(2)建立/etc/boa目求,并把boa.conf復制到/etc/boa目錄下;修改為User0,修改Groupnogroup為Group0;設置日志目錄ErrorLog和分別為/var/log/boa/error—log和/var/log/boa/access—log;設置html文件目錄和默認首頁分別為DocumentRoot/var/www和Directorylndexindex.html;設置cgi腳本目錄為ScriptAlias/cgi-bin//var/www/cgi-bin。注意這些目錄的設置必須要跟網頁的存放目錄一致。(3)運行boa程序,可以通過在windows下輸入虛擬機的IP地址來對網頁進行訪問和測試。移植到開發板上。上面步驟操作完成后,修改Makefile文件,將(4)移植到開發板上。上面步驟操作完成后,修改Makefile文件,將CC=gccCPP=gcc-E改為:CC=arm-linux-gccCPP=arm-linux-gcc-E執行#make命令進行編譯,并執行#arm-linux-gcc-E命令去掉調試信息,減少boa的體積。

第4章結論隨著社會的進步、科學技術的不斷發展以及人們生活水平的不斷提高,人們對家居環境的要求也越來越高,智能家居系統得到了越來越廣泛的應用。本文對基于物聯網的智能家居系統進行研究了和設計。本文主要完成了以下工作:首先簡單介紹的智能家居系統,分析了智能家居系統的組成,并為選擇了合適的通信技術(ZigBee)。利用CC2430為核心芯片設計了系統的末端節點(釆集和控制節點),利用為核心芯片設計了智能網關節點,選

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論