基于物聯網技術的智能化家居系統畢業設計論文論文_第1頁
基于物聯網技術的智能化家居系統畢業設計論文論文_第2頁
基于物聯網技術的智能化家居系統畢業設計論文論文_第3頁
基于物聯網技術的智能化家居系統畢業設計論文論文_第4頁
基于物聯網技術的智能化家居系統畢業設計論文論文_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

WORD格式整理./畢業設計<論文>題目基于物聯網技術的智能家居系統學院<全稱>信息科學與工程學院專業、年級計算機科學與技術09級學生姓名學號指導教師論文評閱人XX交通大學2013年前言既互聯網技術之后,物聯網作為一個信息技術綜合應用的代名詞,掀起信息產業第三浪潮,大國紛紛將其納為重點領域,顯而易見,它將影響到政治,軍事,經濟,環境等方方面面,必在未來極大地改變人們的生活。物聯網是新一代信息技術的重要組成部分。其英文名稱是"Theinternetofthings"。顧名思義,"物聯網就是物物相連的互聯網"。這里包括兩層意思:第一,物聯網的核心和基礎仍然是互聯網,它是在互聯網基礎上的延伸和擴展的網絡;第二,其用戶端延伸和擴展到了任何物體與物體之間,進行信息交換和通信。因此可總結出,物聯網的定義是:通過射頻識別〔RFID、光電感應器、全球定位系統、激光掃描器信息傳感設備,按約定的協議,把任何物體與互聯網相連接,進行信息交換和通信,以實現對物體的智能化識別、定位、跟蹤、監控和管理的一種網絡。物聯網上部署了海量的多種類型傳感器,每個傳感器都是一個信息源,不同類別的傳感器所捕獲的信息內容和信息格式不同。傳感器獲得的數據具有實時性,按一定的頻率周期性的采集環境信息,不斷更新數據。其目的是實現物與物、物與人,所有的物品與網絡的實時連接,方便識別、管理和控制。其在2011年的產業規模超過2600億元人民幣,行業競爭將會越來越激烈。在市場應用方面,2011年從整體來看,占據中國物聯網市場主要份額的應用領域為智能工業、智能物流、智能交通、智能電網、智能醫療、智能農業、智能環保和智能家居等。本文研究的是基于物連網技術的智能家居系統。"智能家居",又稱智能住宅,是通過采用先進的計算機技術、網絡通信技術和綜合布線技術,建立一個由家庭安全防護系統、網絡服務系統和家庭自動化系統等組成的家庭服務與管理集成系統,從而實現全面、安全、舒適的居住環境以及便利的通訊網絡家庭住宅。把與家庭生活有關的各種子系統有機結合在一起統一管理,使生活舒適、安全、和高效,具有良好的發展前景。隨著科學技術的發展和物質生活水平的提高,人們對家居生活環境的要求也越來越高。家居不再是生活起居的場所,同時也是休閑、娛樂的地方。目前,高科技技術已經融入智能建筑當中,智能的概念也不斷得到深化和更新。建設部要求根據不同消費者的需求,推動家居數字化、建筑智能化,產品便利化的發展,未來智能家居市場潛力巨大。智能家居是一個多功能的系統,它包括可視化對講、家庭內部的安全防范、家電遠程監控,遠程視頻監控、遠程醫療診斷及護理系統,網上教育系統、家庭影星系統等。智能家居的基本目標是將家庭中各種信息相關的通信設備、家用電器和家用安防等裝置連接到一個智能化系統上進行集中或異地監視、控制和家庭事務性管理,并保持這些家庭設施與住宅環境的和諧與協調。隨著人類的應用需求和住宅智能化的發展,智能家居系統將擁有更豐富的內容,系統也越來越復雜,功能也越來越齊全。在當前市場中,智能家居相比傳統家居、建材行業所占的市場份額還是微乎其微。在目前的智能家居市場中不少企業均是發展項目與渠道建設并行發展,其中項目合作占據著相當重要的位置,這些項目往往也是定位相對高端的別墅、復式樓和大戶型高檔小區住宅居多。隨著信息技術和Internet技術的飛速發展,智能家居技術在實現成本上大幅度降低,同時人們永不停步地追求生活智能化和舒適化,如果技術更加成熟、成本更加低廉,功能更加完美,其市場需求將會非常巨大。目錄TOC\o"1-3"\h\u摘要IABSTRACTII第1章緒論11.1智能家居的簡介11.2國內外的現狀及發展趨勢21.2.1國外的發展現狀21.2.2國內的發展現狀31.3本課題研究的目的和意義41.4本課題研究的基本內容41.5本章小結5第2章系統的總體方案設計62.1系統需求分析62.1.1系統功能需求分析62.1.2性能需求分析62.1.3用戶界面及其他需求分析62.2系統設計的原則72.3系統總體架構設計72.4系統主要硬件介紹82.4.1ARM處理器82.4.2TC35模塊10溫度傳感器112.4.4MQ-2煙霧傳感器12光電傳感器132.4.6ISD1760語音芯片14繼電器152.5軟件系統介紹152.5.1幾種嵌入式操作系統的比較152.5.2選擇嵌入式操作系統的依據172.6本章小結19第3章建立Linux開發環境203.1搭建開發環境203.1.1安裝虛擬機、Linux操作系統、源代碼及其他工具203.1.2建立交叉編譯環境203.1.3配置網絡文件系統NFS213.2嵌入式軟件開發層次213.2.1BootLoader介紹223.2.2定制Linxu內核223.2.3根文件系統233.3本章小結24第4章系統的實現254.1GSM遠程控制模塊的實現274.1.1mini2440串口的配置和實現274.1.2通過串口發送短信284.2溫度采集模塊的實現294.3煙霧傳感器模塊的實現324.4具有語音提示功能的密碼鎖防盜模塊的實現344.5預防小孩墜樓模塊374.6本章小結39第5章系統測試405.1整體界面測試405.2模塊功能測試415.2.1遠程監控家電模塊功能測試415.2.2密碼鎖防盜模塊功能測試435.2.3煙霧報警模塊功能測試435.2.4預防小孩墜樓模塊功能測試44第6章總結與展望456.1總結456.2展望46致謝47參考文獻48WORD格式整理.摘要物聯網技術的興起和發展,不僅改變了我們的工作方式、也逐漸地改變我們的生活方式。不僅要求辦公自動化、智能化,也需要家居生活逐漸地變得自動和智能起來。智能家居就是在這樣的背景下產生的。智能家居系統是利用計算機、嵌入式系統和網絡通信技術將各種家用設施通過家庭網絡連接到一起,從而為人們提供更為便利舒適的生活環境。本設計利用32位嵌入式ARM處理器S3C2440作為智能家居控制系統的核心控制器,運用高性能、接口豐富、方便移植與擴展性好等優點,并且利用嵌入式操作系統實時性強、可靠性高、資源豐富等優勢,將嵌入式技術作為智能家居控制器的開發平臺,使智能家居控制系統的應用開發能夠變為在嵌入式平臺上的二次開發,從而縮短開發周期,并且節約資源。該設計通過對智能家居系統的分析,確定了總體架構設計。針對智能家居系統的特點和所要實現的基本功能,分析了智能家居控制器的基本結構,然后對各個模塊電路進行了詳細設計。最終利用人體紅外傳感器<infraredsensor>、GSM模塊、溫度傳感器<temperaturetransmitter>、光電傳感器<photoelectricsensor>,煙霧傳感器<MQ-2>,繼電器等,結合電路組裝成系統,實現房屋的遠程監控,以及保護人員、物體的安全,方便用戶隨時在最短的時間內了解并掌握房屋情況。關鍵詞:物聯網,智能家居,遠程監控.ABSTRACTTheriseanddevelopmentoftheInternetofthingstechnology,especiallyhighlydevelopingofcomputerandnetworkingtechnologies,notonlychangeoureverydaywork,butalsoourlife.Automationandintelligenceinofficewillnotenough,it’satrendtoaskformoreintelligenteverywhere,homelifeincluded.Thatiswhysmarthousecomeout.Thesmarthomesystemisusingcomputerandnetworkcommunication,embeddedsystemtechnologywillallkindsofhouseholdfacilitiesviahomenetworkconnectiontogether,soastoprovidemoreconvenientandcomfortablelifeforpeople.Weutilizethe32-bitembeddedARMprocessorS3C44B0Xasthecontrollingcoreofthesmarthomesysteminthispaper.Ithascharacteristicsofhighperformance,plentifulinterfacesandconvenienttransplantationandextension.Andalsoweadoptembeddedtechnologyastheplatformofthesmarthomecontrollerowingtoitshighreal-timeability,highreliabilityandrichresourses.Thustheapplicationofsmarthomesystembecomesthesecondarydevelopmentontheembeddedplatformsothatthedevelopingperiodiscutdownandresourceissaved.Thisdesignthroughtheanalysisoftheintelligenthouseholdsystem,determinetheoverallarchitecturedesign.Accordingtothecharacteristicsoftheintelligenthouseholdsystemandtoachievethebasicfunctions,thebasicstructureofsmarthomecontrollerareanalyzed,thenhascarriedonthedetaileddesigntoeachmodulecircuit,thefinalbodyusingthehumanbodyinfraredsensor,GSMmodule,temperaturetransmitter,photoelectricsensor,smokesensors,etc.combiningwiththecircuitassemblesystem,realizetheremotemonitoringofthebuilding,aswellastoprotectthesafetyofpersonnel,objects,convenienttotheuseratanytimeintheshortestpossibletimetounderstandandgrasphousingsituation.Keywords:Internetofthings,Smarthome,Remotecontrol.第1章緒論隨著人們生活水平的提高,電子技術,通信技術和自動化技術的日趨完善,家居智能化相應也就出現在了人們的生活中。它既能給我們營造了溫馨舒適、安全便捷的生活環境,還能夠對家電設備進行實時監控以及管理,當家庭安全問題出現后還能及時給我們相應的警報。智能家居系統是將大大小小的各種家用電器以及家庭安全保護設備通過有線或無線的方式連接起來,可以進行集中或遠程的監控、管理,為家庭住宅環境的安全提供了高效的管理方式。與普通的家居相比,智能家居不僅包括了普通家居的全部功能,更重要的是它提供給了我們溫馨快樂,且安全高效的高質量生活環境,還將一個看似靜止的生活空間變成了一個有一定高智能的生活小幫手,更加進一步優化了我們的生活質量。1.1智能家居的簡介智能家居系統的概念起源于上世紀70年代的美國[1],隨后,傳播到歐洲、日本等國并且得到了很好的發展。在我國,智能家居這一概念推廣較晚,約在90年代末家居智能化系統才得以進入國內,但發展速度驚人,至今已存在相當數量的智能化小區及住宅。所謂智能家居〔SmartHome是現代電子技術、自動化技術及通信技術相結合的產物。它是以家為平臺,兼備建筑、自動化,智能化于一體的高效、舒適、安全、便利的家居環境。自動化的智能家居不再是一幢被動的建筑,相反,成了幫助主人盡量利用時間的工具,使家庭更為舒適、安全、高效和節能。智能家居是現代社會最熱門的話題之一,它的目標是通過網絡等信息通信技術手段實現對家居電器等的智能控制,使其能夠按照人們的設定工作運行,而不論距離的遠近。智能化與遠程控制是智能家居的兩大特點。目前,已經有越來越多的機構和個人開始了對智能家居進行研究。隨著網絡技術的發展,特別是無線網絡的發展,網絡化智能家居系統可提供遙控、家電〔空調,熱水器等控制、照明控制、室內外遙控、窗簾自控、防盜報警、電話遠程控制、可編程定時控制及計算機控制等多種功能和手段,使生活更加舒適、便利和安全。它能夠自動控制和管理家電設備,對家庭環境的安全進行監控報警,并且能夠為住戶提供安全舒適、高效便利的學習生活及工作環境。家居智能化系統將家庭中各種與信息相關的通信設備、家用電器以及家庭保安裝置通過有線或無線的方式連接起來,并進行集中或異地的監控、管理,保持家庭住宅環境的舒適、協調。1.2國內外的現狀及發展趨勢智能家居的發展分為三個階段[2]:首先是家庭電子化〔HomeElectronics階段,這個時期主要是面向單個的電器,家庭電器之間并沒有形成網絡,亦沒有大的聯系。其次是住宅自動化〔HomeAutomation階段,這個時期是面向功能的階段,一部分的家庭電器之間形成了簡單的網絡,主要是為了實現某個特定單一的功能,例如單一的自動抄表功能。最后是家居智能化〔歐洲稱為SmartHome,美國稱為WiseHouse階段,這個時期是面向系統設計的階段,系統通過家庭分布總線把住宅內各種與信息相關的通信設備、家用電器、報警裝置并到網絡節點中進行集中的監控、管理,保持家電與環境的協調,提供生活、工作、學習以及娛樂的各種優質服務,營造一種溫馨舒適的家庭氛圍。智能家居控制系統提供高效、舒適的家居環境,確保住戶的生命財產安全;集中或遠程調節家居環境的溫度、濕度以及風的速度等,同時檢查空氣成分,提高空氣質量;調節音響,電視等娛樂設施,愉悅心情;合理利用太陽能活周遭環境的變化,盡可能的節約能耗,達到合理利用資源;提供現代化的通信、信息服務。1.2.1國外的發展現狀1984年,世界上第一幢智能建筑在美國康涅迪格州落成,這棟意義非凡的建筑只是對一座舊式大樓的一定程度的改造而完成的。它只是采用計算機系統對大樓的空調、電梯、照明等設備進行監控,并提供語音通信、電子郵件、情報資料等方面的信息服務。2000年,新加坡有近30個社區的約5000戶家庭采用了這種家庭智能化系統,而美國的安裝住戶高達4萬戶。2003年,網絡化家居的建設帶來了高達4500億美元的市場價值,這其中有3700億美元是智能家電硬件產品的價值,剩余的部分則是軟件和技術支持服務的費用。現在,國外的智能家居系統技術己日趨成熟,預計今年,50%以上的新房將具有一定的"智能型家居"功能。于此同時,由于技術的日益標準化,這些新型智能家居系統將比比爾.蓋茨耗資6000萬美元的高端別墅便宜得多。在智能家居系統研發方面,美國及一些歐洲國家一直處于領先地位。近年來,以美國微軟公司及摩托羅拉公司等為首的一批國外知名企業,先后擠身于智能家居的研發中。例如:微軟公司開發的"夢幻之家"、摩托羅拉公司開發的"居所之門"、IBM公司開發的"家庭主任"等均已日趨成穩。此外,日韓新等國的龍頭企業紛紛致力于家居智能化的開發,對家居市場更是躍躍欲試。目前市場上出現得智能家居控制系統主要有:〔1X-10系統〔美國,該系統是利用電力線作為網絡平臺,采用集中控制方式實現。這套系統的功能較為強大,與其它家居控制系統如ABB、C_BUS等比起來更容易接收,使用也相對簡單。因為實現同樣的功能,X-10家居控制系統是利用220v電力線將發射器發出的X-10信號傳送給接收器從而實現智能化的控制,因此采用這套系統不需要額外的布線,這也是這套系統的最大的一個優勢,因為其它系統基本上都需要布低壓線,在墻上或地面開槽、鉆孔,施工難度大、費用高、工期長。但由于缺乏在國內市場推廣的條件且價格昂貴,該系統在國內應用極少。〔2EIB系統〔德國,該系統采用預埋總線及中央控制方式實現控制功能。但由于其工程要求復雜嚴苛,并且價格較高,因此一直無法打開國內市場。〔38X系統〔新加坡,該系統采用預處理總線跟集中控制方式來實現功能。它的優點在于利用的產品對系統進行擴展,系統較為成熟,比較適合中國國情。但是由于系統架構、靈活性及產品價格等方面還難以達到要求,所以目前在國內還較少應用。1.2.2國內的發展現狀20世紀90年代后期,我國的智能小區日益興起。眾所周知,我國的智能化住宅建設最早起于上海、XX和XX等沿海城市,并逐漸向內陸發展[3]。在97香港回歸之際,在建設部"97跨世紀住宅小區案競賽活動"中,上海中皇廣場被建設部科技委員會列為全國首家"智能住宅示范工程",揭開了全國智能小區發展的序幕。1999年,建設部勘察設計司、建設部住宅產業化辦公室聯合組織實施全國住宅小區智能化技術示范工程,標志著我國住宅小區智能化進入了一個新階段。隨著信息化走進了千家萬戶,由國家經貿委牽頭成立了家庭信息網絡技術委員會,而信息網絡技術體系研究及產品開發已經被列為了國家技術創新的重點專項計劃。據建設部要求,截止今年,我國將有70%以上的家庭擁有Internet入網設備,大中城市中50%的住宅要實現智能化。我國的智能家居相對于國外起步較晚,尚未形成一定的國家標準。目前,主要采用國外的一些技術產品,但也有一些企業推出了自己的產品,主要有:〔1e家庭〔海爾,該系列產品以海爾電腦作為控制中心,各種網絡家電作為終端設備,海爾移動電話作為移動數字控制中心。海爾在技術上同微軟合作,利用微軟的WindowsMe技術和海爾的網絡家電,使"e家庭"已具雛形,已推出了網絡洗衣機、網絡冰箱、網絡空調、網絡微波爐等一系列網絡家電。〔2e-home數字家園〔清華同方,該智能家居控制系統是專門針對中國家庭設計的,遵循國際技術標準,采用嵌入式軟、硬件技術,提供網絡、網絡節點及末端設備。產品以功能模塊開發為主,基于國外成熟的智能家居標準之上。其智能家居控制系統主要有以下三個部分:A系列:遵循EIB協議的家庭控制產品,適用于中高檔住宅區。B系列:遵循X-10協議的家庭控制產品,適用于中檔住宅區。易家三代:配電箱集中安裝式家庭控制產品。國內各大軟、硬件機構正在積極的研制、開發更為符合市場的智能化家居設備,以解決當前智能化產品實用性差、使用復雜及產品價格昂貴等缺點,而技術創新性也逐步向國際先進水平靠攏,這樣的未來值得期待。1.3本課題研究的目的和意義根據前面提到的一些調查結果及數據可以看出,雖然目前智能家居系統有了一定的發展,并且市場上也開始出現相應的產品,但從總體的發展來看,不容樂觀,特別是統一標準和權威產品的缺乏嚴重影響了家居智能化的發展。隨著科技的提高,經濟的發展,人們的物質生活水平的提高,對家居環境的要求也越來越高,作為家居智能化的核心部分——智能家居控制系統也越發顯得重要。家居智能化控制的開發和建設是未來國家、經濟發展的必然趨勢[4]。智能家居控制器可以為系統提供智能控制方案,使住戶的控制更便捷,更高效,更能為家庭的日常活動節約不必要的能耗。而且在現在這個注重綠色環保的世界里,智能地為住戶控制好空氣的濕度、溫度等,檢查分析空氣成分,讓住戶安心入住。同時,智能家居控制器可以根據住戶的要求調整方案,加強緊急處理,危機救護等急救控制,充分達到只要是"用戶想要的,就是我們追求的"宗旨。1.4本課題研究的基本內容本次設計是基于ARM9的S3C2440核心處理器,以Linux嵌入式系統為家居總中心監控系統,使用LinuxQt完成控制程序及人機界面的編寫,采用ds18b20溫度傳感器、MQ-2煙霧傳感器、光電傳感器為數據采集源,采用西門子公司的AT35GSM模塊完成通信及監控功能,實現了遠程監控、實時監控家居溫度、空氣質量,以及家居重要財產防盜的功能。1.5本章小結本章主要分析了智能家居的研究背景,以及國內外的發展現狀及發展趨勢,以及智能家居平臺系統的技術特點。最后簡單介紹了本智能家居系統的基本內容和設計思路。第2章系統的總體方案設計2.1系統需求分析針對國內市場的實際情況分析,消費者對遠程抄表和物業管理興趣索然,但是對家電控制、家居安防報警網絡卻情有獨鐘,所以目前眾多企業都往這一方向發展。而嵌入式技術在最近幾年得到了廣闊的發展[5]。嵌入式處理器的性能得到了顯著地提高,這就為以嵌入式為基礎的智能化家居系統的發展奠定了硬件基礎,使較復雜的檢測和識別算法在系統中得到應用。在軟件方面,出現了豐富的支持嵌入式設備的軟件,使嵌入式系統的開發的難度降低,出現了大量專注于嵌入式的企業,使嵌入式開發中能得到良好的技術支持。同時智能化家居的概念也更加明確,相關的智能化技術得到了顯著地發展,使開發能獲得大量先進的資料。設計本智能家居系統,需要滿足以下需求。2.1.1系統功能需求分析〔1能用手機通過收發短信的方式檢測家電,打開、關閉家電的工作狀態。〔2在家居的門口安裝了4*4鍵盤,當用戶輸入正確的密碼可以把門打開,用戶通過其他非法手段比如撬開鎖時,系統及時啟動報警模塊,達到防盜的功能。〔3能實時測量家居內溫度、煙霧情況,當室內煙霧濃度偏高時,系統可以打開室內抽風機把室內有害氣體抽出室外,當室內煙霧濃度過高,系統啟動火災報警模塊,提示家居主人預防火災的發生。〔4當有小孩靠近窗戶時,系統自動把窗戶關上,避免小孩可能發生墜樓的危險,當小孩離開時,系統自動把窗戶打開。2.1.2性能需求分析智能家居系統在正常運行時,幾乎每時每刻都在運行,必須高度重視系統的穩定性和可靠性,盡量提高系統的容錯能力,同時一定要保證系統安全,性能良好。2.1.3用戶界面及其他需求分析智能家居相關的設備都是跟人們生活息息相關的,因而智能家居系統必須要求用戶界面友好,用戶體驗效果良好,并且使用戶可以很容易掌握操作流程,同時要求實用、舒適和有個性等。2.2系統設計的原則智能家居又稱智能住宅,它的最基本目的是為人們提供一個舒適、安全、高效、方便、實用的生活環境。對智能家居產品來說,最重要的是應立足于客戶的對家居環境的具體需求,以實用為核心,摒棄掉那些華而不實的功能。同時還要充分考慮到用戶體驗,注重操作的便利化和直觀性,注重完美的圖形化控制界面。智能家居系統大部分時間都在運行,必須高度重視系統的安全性、可靠性和容錯能力,保證系統正常安全使用、質量、性能良好,具備應付各種復雜環境變化的能力。根據目前國內外智能家居系統的發展現狀,人們不僅關注家居內部控制,更加注重對家用電器內部情況進行遠程實時監控。在要求智能家居控制系統方便快捷的同時,還要求產品外觀小、功耗低、成本低和擴展性號的特點。本系統主要針對用戶家庭內部進行遠程控制,主要實現的功能有:通過遠程監控家電運行情況、通過溫度、煙霧傳感器檢測家居溫度、空氣質量的情況,通過光電傳感器監控家庭重要財產,具有防火防盜的功能。2.3系統總體架構設計本課題旨在設計一套智能家居系統,根據系統的設計需求,本控制系統采用分布式控制方式對智能家居的各部分進行統一控制,主要包括遠程監控家電<包括臺燈、風扇>部分,具有語音提示功能的密碼鎖防盜部分,窗戶自動關窗預防小孩墜樓部分,煙霧濃度監測自動報警部分。各個模塊相互獨立,某個模塊出現故障不影響其他模塊運行。本智能家居系統整體架構框圖如圖2.1所示。圖2.1智能家居系統整體架構框圖該智能家居系統用S3C2440處理器,控制器控制遠程監控家電模塊,檢測溫度、煙霧模塊,密碼鎖模塊等。在實際開發中先在ARMLinux中編寫每個模塊的驅動程序,編譯加載驅動后應用層方能操作硬件模塊,手機通過收發短信的方式通過應用層程序與硬件模塊通信達到控制硬件的目的。2.4系統主要硬件介紹2.4.1ARM處理器嵌入式系統常用的處理器有單片機和ARM,由于考慮到單片機引腳少、功能簡單以及后續學習研究等原因,故選擇功能更強大的ARM處理器[6]。隨著電子技術的發展,ARM處理器經歷了包括ARM7、ARM9、ARM11等在內的多個發展階段,不斷成熟的ARM處理器的應用必將為嵌入式的發展帶來新的活力,是更高端的產品應用成為可能。Mini2440ARM是一款真正低價實用的ARM9開發板,它采用SamsungS3C2440為微處理器,并采用專業穩定的CPU內核電源芯片和復位芯片來保證系統運行時的穩定性。它采用了更多的晶體管,能夠達到兩倍以上于ARM7處理器的處理能力。本系統初期采用友善之臂公司集成的mini2440開發板,開發板硬件資源如下所示。圖2.2開發板硬件資源開發板的硬件資源包括:SamsungS3C2440A處理器:主頻400MHz,最高533Mhz。SDRAM內存:在板64MSDRAM,32bit數據總線,SDRAM時鐘頻率高達100MHz。FLASH存儲:256MNandFlash,掉電非易失。在板2MNorFlash,掉電非易失,已經安裝BIOS。LCD顯示:板上集成4線電阻式觸摸屏接口,可以直接連接四線電阻觸摸屏,支持黑白、4級灰度、16級灰度、256色、4096色STN液晶屏,尺寸從3.5寸到12.1寸。屏幕分辨率可以達到1024x768象素,支持黑白、4級灰度、16級灰度、256色、64K色、真彩色TFT液晶屏;尺寸從3.5寸到12.1寸,屏幕分辨率可以達到1024x768象素。標準配置為統寶3.5真彩LCD,分別率240x320,帶觸摸屏。接口和資源:1個100M以太網RJ-45接口<采用DM9000網絡芯片>。3個串行口。1個USBHost。1個USBSlaveB型接口。1個SD卡存儲接口。1路立體聲音頻輸出接口,一路麥克風接口。1個2.0mm間距10針JTAG接口。4USERLeds。6USERbuttons<帶引出座>。1個PWM控制蜂鳴器。1個可調電阻,用于AD模數轉換測試。1個I2C總線AT24C08芯片,用于I2C總線測試。1個2.0mm間距20pin攝像頭接口。板載實時時鐘電池。電源接口<5V>,帶電源開關和指示燈。系統時鐘源:12M無源晶振。實時時鐘:內部實時時鐘〔帶后備鋰電池。擴展接口:1個34pin2.0mmGPIO接口。1個40pin2.0mm系統總線接口。規格尺寸:100x100<mm>。操作系統支持:Linux+Qtopia-2.2.0+QtE-4.6.1<獨創雙圖形系統共存,無縫切換>。WindowsCE.NET6.0<R3>。2.4.2TC35模塊TC35是西門子公司出的一款雙頻900/1800MHZ高度集成的GSM模塊。在GSM網絡日臻完善的今天,它易于集成,可以在較短的時間內花費較少的成本開發出新穎的產品。在遠程監控和無線公話以及無線POS終端等領域您都能看到TC35無線模塊在發揮作用。本系統采用TC35對家電進行遠程監控,TC35的主要特征如下:信息傳送內容:語音和數據。電源:單電源3.3V~5.5V。頻段:雙頻GSM900MHz和DCS1800MHz<Phase2+>。SIM卡連接方式:外接。天線:由天線連接器連接外部天線。短信息:MT,MO,CB和PDU模式。音頻接口:模擬信號〔麥克風,耳麥,免提手柄。通訊接口:RS232〔指令和數據的雙向傳送。模塊復位:采用AT指令或掉電復位。串口通訊波特率:300bps...115kbps。要實現發短信或語音功能主要是通過開發板串口發送AT指令經max232把TTL電平轉換成RS232電平并處理TC35反饋回來的信息來進行的。下面圖2.3是TC35模塊和max232串口轉換電路。圖2.3TC35模塊和max232串口轉換電路2.4.3溫度傳感器本系統選擇DALLAS公司生產的DS18B20溫度傳感器進行開發。DS18B20以超小的體積、超低的硬件開銷,具有耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設備數字測溫和控制領域。DS18B20的主要特征和引腳封裝原理圖如下:全數字轉換及輸出。先進的單總線數據通信。測量結果以9~12位數字量方式串行傳送。不需要外圍任何元件。測溫范圍-55℃~+125℃,固有測溫分辨率為0.5℃。工作電壓:3~5V/DC。PVC電纜直接出線或德式球型接線盒出線,便于與其它電器設備連接。圖2.4DS18B20封裝及原理圖DS18B20引腳功能說明如下:〔1DQ為數字信號輸入/輸出端。〔2GND為電源地。〔3VDD為外接供電電源輸入端〔在寄生電源接線方式時接地。DS18B20與ARM處理器的接口十分簡單,只需要將DS18B20的信號線與控制線的一位雙向端口連接即可。本系統將DS18B20的信號線與S3C2440的GPE0引腳連接,如下面圖2.4所示。圖2.4DS18B20引腳電路圖2.4.4MQ-2煙霧傳感器MQ-2氣體傳感器所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫<SnO2>。當傳感器所處環境中存在可燃氣體時,傳感器的電導率隨空氣中可燃氣體濃度的增加而增大。使用簡單的電路即可將電導率的變化轉換為與該氣體濃度相對應的輸出信號。MQ-2氣體傳感器對液化氣、丙烷、氫氣的靈敏度高,對天然氣和其它可燃蒸汽的檢測也很理想。這種傳感器可檢測多種可燃性氣體,是一款適合多種應用的低成本傳感器。MQ-2的主要特征如下:工作溫度:-10℃~+50℃報警濃度:0.65~15.5%FT工作濕度:10~90%工作電源:12VDC/9VDC信號輸出:常開/常閉安裝方式:吸頂外殼:阻燃樹脂產品尺寸:直徑105mm厚度32mm圖2.4MQ-2引腳接線圖根據MQ-2的工作原理〔其電導率隨著氣體濃度的增大而增大,其電阻是電導率的倒數,所以隨著煙霧濃度的增大其電阻是減小的并且參考圖MQ-2Datasheet上的測試電路,在根據圖2.4的電路圖,可以得到煙霧傳感器的輸出電壓如式2.1所示。<式>光電傳感器光電傳感器是各種光電檢測系統中實現光電轉換的關鍵元件,它是把光信號〔紅外、可見紫外光輻射轉變成為電信號的器件。光電傳感器是以光電器件作為轉換元件的傳感器。它可以用于檢測直接引起光量變化的非電量,如光強等。本設計試圖把光電傳感器安裝在家庭保險柜或其他重要的財產出,當小偷或其他非家庭主人試圖靠近保險柜等重要財產處能自動觸發語音報警,從而達到防盜的目的。圖2.5光電傳感器引腳圖光電傳感器簡單易用,正確接好線之后輸入3.3V高電平,當檢測到有障礙物時會一直輸出低電平信號。我們把光電傳感器的輸出引腳接單片機的EINT5/GPF5中斷引腳,程序中設定低電平觸發,當有小偷靠近保險柜或家居其他重要財產時,系統能捕捉到這一信號從而做出反應。2.4.6ISD1760語音芯片語音報警部分采用isd1760語音芯片來完成。ISD1700系列錄放芯片可工作于獨立按鍵模式和SPI控制模式。芯片內有存儲管理系統來管理多段語音,這樣在獨立按鍵模式下也能進行多段語音錄放。此芯片內有振蕩器,可通過外部電阻來調節其振蕩頻率;還有帶自動增益控制〔AGC的話筒運放,模擬線路輸入。本設計采用獨立按鍵模式,連接好電路后給芯片的23腳一個電平信號即可播放提前錄好的聲音。圖2.6isd1760語音芯片接線引腳圖2.4.7繼電器由于家電電器工作電壓是220V,而單片機工作電壓是5V,因而監控家電時需要引入繼電器。繼電器是一種控制器件。它具有控制系統〔又稱輸入回路和被控制系統〔又稱輸出回路之間的互動關系。通常應用于自動化的控制電路中,它實際上是用小電流去控制大電流運作的一種"自動開關"。故在電路中起著自動調節、安全保護、轉換電路等作用。當收到特定的短信要把家電打開時,MCU通過打開繼電器給插座上電,即可打開家電,當需要關閉家電時,也是通過繼電器關閉家電。圖2.7繼電器原理圖ARM是一個弱電器件,一般情況下它們大都工作在電壓為5V甚至更低、驅動電流在mA級以下,而要把它的輸出用于一些大功率場合,比如控制步進電機,很顯然是不可行的。因此,就要設計一個環節來銜接,這個銜接環節就是"功率驅動"。一個典型簡單的功率驅動環節就是繼電器的驅動。此處,繼電器驅動含有兩層意思:一是通過GPIO口對繼電器本身進行驅動,因為繼電器對于ARM來說是一個功率器件;另一個就是繼電器去驅動其它負載,比如繼電器可以驅動中間繼電器,也可以直接驅動接觸器,因此繼電器驅動就是ARM與其塔大功率負載的接口。ARM的I/O口輸出電壓高電平為3.3V,直接接上繼電器后電平被拉低,無法控制繼電器的閉合。三極管具有良好的信號放大功能,信號經過三極管的放大后,再接入繼電器,可以實現對繼電器的控制,最終實現對交流電路的控制.2.5軟件系統介紹2.5.1幾種嵌入式操作系統的比較目前市場上流行的嵌入式操作系統比較多,下面對其進行性能比較:嵌入式LinuxLinux是1991年由荷蘭人LinusTorvalds發明的,從誕生到現在的短短幾十年時間,Linux已經發展成為一個功能強大、設計完善的操作系統,不僅在通用操作系統領域與Windows等商業系統分庭抗爭,而在在新興的嵌入式操作系統領域也獲得了飛速的發展。嵌入式Linux<EmbeddedLinux>是指對標準Limix進行小型化裁剪處理后,可固化在存儲器或單片機中,適合于特定嵌入式應用場合的專用Linux操作系統。商品化嵌入式操縱系統大都沒有公開其核心源代碼[7],這種源代碼的封閉性大大限制了開發者的積極性,當前國家隊研制自主核心源代碼大力支持,為源碼開發的Linux的推廣提供了廣闊的發展前景。嵌入式Linux的主要特征如下:〔1高性能、可裁剪的內核:其獨特的模塊機制使用戶可以根據自己的需要,實時地將某些模塊插入到內核或從內核中移走,很適合與嵌入式系統的小型化需要。〔2優秀的開發工具:嵌入式Linux提供了一套完整的工具鏈〔3免費,開發源代碼:Linux是開發源碼的自由操作系統,用戶可以根據自己的應用需要方便對內核進行修改和優化。〔4完善的網絡通信和文件管理機制:Linux支持所有標準的Internet網絡協議,并且很容易移植到嵌入式系統當中。〔5廣泛的硬件支持:支持x86、ARM、MIPS等多種體系結構。〔6軟件資源豐富:幾乎每一種通用程序在Linux上都能找到,從而減輕了開發的工作量。目前,網絡上無論是研究Linux操作系統還是研究嵌入式Linux的開發團隊都有很多,各種相應的程序以及文檔也比較豐富。μC/OSIIμC/OS是美國人JeanLabrosse在1992年開發的一個嵌入式操作系統[8],并于1998年推出了它的升級版本μC/OS-II。μC/OS-II是一種免費、開放源代碼、結構小巧、基于可搶占優先級調度的實時操作系統,其內核提供任務調度與管理、時間管理、任務間同步與通信、內存管理和中斷服務等功能。μC/OS-II主要面向中小型嵌入式系統,具有執行效率高、占用空間小、結構簡潔、實時性能優良和可擴展性強等特點,最小內核可編譯至2KB,一般情況下占用10KB數量級。它的內核本身并不支持文件系統,但它具有良好的擴展性能,如果需要的話可以自行加入。由于免費、源碼開放、規模較小,μC/OS-II不僅在眾多的商業領域中獲得了廣泛的應用,而且被大學所接納,作為教學用的嵌入式實時操作系統。VxWorksVxWorks是美國WindRiverSystem公司開發的一款嵌入式實時操作系統具有良好的可靠性和卓越的實時性,是目前嵌入式系統領域中使用最廣泛、市場占有率最高的商業系統。VxWorks支持各種主流的32位處理器,如X86、MotorolaMC68xxx、Clodfile、PowerPC、MIPS,ARM等。它基于微內核的體系結構、整個系統有四百多個相對獨立、短小精煉的目標模塊組成,用戶可以行剪裁和配置,根據自己的需要來選擇適當的模塊。VxWorks采用GNU類型的編譯和調試器,它的大多數API函數都是專有的。VxWorks以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空航天等高精尖技術及實時性要求極高的領域中。PalmOS在個人數字助理〔PDA市場上,PalmOS全球知名、使用人數最多的PDA操縱系統。它是由PDA操作系統開發的先驅者PalmComputing公司開發的。從1996年4月PlalmOS1.0發布至今,PlamOS逐步鞏固了其在PDA市場上的霸主地位。它的一個最大的特點就是省電以及系統資源開銷較少,速度也很快,但不支持多線程,長遠發展受到影響。但由于PalmOS采用開發式架構,全球有很多PlamOS用戶都投入到其軟件開發工作中,使其應用軟件非常豐富,這也成為PlamOS操作系統成功的一個重要因素之一。WindowsCEWindowsCE是微軟公司在嵌入式操縱系統市場上的一個重要的產品,它是一個開放的、可升級的32位操作系統,是基于掌上型電腦類的電子設備操作系統,它可以移植能夠開發多種企業和客戶類設備。WindowsCE為工作、家庭及其間的任何一部分開啟了動態的、嶄新的開發遠景。這個模塊化、可自訂的作業系統將Windows平臺延伸到桌面之外,到達更小、更機動性、更特別的裝置之上,然而它的Windows血統則確保了它的相容性,并且支援了更廣泛的開發基礎。目前,網絡上研究WinCE的開發團隊越來越多,其資源也逐漸豐富起來,可以說是新的趨勢。2.5.2選擇嵌入式操作系統的依據在選擇軟件開發方式和操作系統的時候,不僅要考慮到對硬件系統的支持,還要考慮軟件開發的周期等問題。一般而言,在選擇嵌入式操作系統時,可以遵循以下原則[9]。〔1市場進入時間。制定產品時間表與選擇操作系統有關系,實際產品和一般演示是不同的,上市時間和功能完善同樣重要。Linux出現時間較早,現成資源較多。〔2可移植性。也就是平臺無關性。當進行嵌入式軟件開發時,可移植性是要重點考慮的問題。良好的軟件可移植性,可以在不同平臺、不同系統上運行,跟操作系統無關。軟件的通用性和軟件的性能通常是矛盾的,即通常以損失某些特定情況下的優化性能為代價。很難設想開發一個嵌入式瀏覽器而僅能在某一特定環境下應用,反過來說,當產品與平臺和操作系統緊密結合時,往往你的產品的特色就蘊含其中。〔3可利用資源。產品開發不同于學術課題研究,它是以快速、低成本、高質量的推出適合用戶需求的產品為目的的。集中精力研發出產品的特色,其他功能盡量由操作系統附加或采用第三方產品,因此操作系統的可利用資源對于選型是一個重要的參考條件,Linux和WinCE都有大量的資源可以利用,這是他們被看好的重要原因。其它有些實時操作系統由于比較封閉,開發時可以利用的資源比較少,因此多數功能需要自己獨立開發,從而影響開發進度。近來的市場需求顯示,越來越多的嵌入式系統,均要求提供全功能的Web瀏覽器。而這就要求有一個高性能、高可靠的GUI的支持。〔4系統定制能力。信息產品不同于傳統PC的Wintel結構的單純性,用戶的需求是千差萬別的,硬件平臺也都不一樣,所以對系統的定制能力提出了要求。要分析產品是否對系統底層有改動的需求,這種改動是否伴隨著產品特色。Linux由于其源代碼開放的天生魅力,在定制能力方面具有優勢。〔5成本。成本是所有產品不得不考慮的問題。操作系統的選擇會對成本有著重要的影響。Linux免費,WinCE等商業系統需要支付許可證使用費,但這都不是問題的答案。成本是需要綜合權衡以后進行考慮的,選擇某一系統可能會對其它一系列的因素產生影響,如對硬件設備的選型、人員投入、以及管理和與其它合作伙伴的共同開發之間的溝通等許多方面的影響。〔6中文內核支持。國內產品必然需要對中文的支持。由于操作系統多數是采用西文方式,是否支持雙字節編碼方式,是否遵循GBK,GB18030等各種國家標準,是否支持中文輸入與處理,是否提供第三方中文輸入接口是針對國內用戶的嵌入式產品的必需考慮的重要因素。智能家居系統并不需要很嚴格的實時性,而且在本系統的設計中,關鍵任務將可以由可編程器件實現,僅向系統提供一個狀態信息。操作系統的主要目的是方便開發友好的人機界面,縮短開發周期,提高系統的穩定性。嵌入式操作系統選擇了嵌入式Linux[10]。Linux作為一款開源軟件,具有功能強大,與硬件兼容性好,可任意裁減等諸多特點,同時在Linux系統下支持很多開源軟件,在一定程度上減小了開發的難度。在版本方面,選擇內核的arm-linux,該內核在原有內核的基礎上進行了一定程度的裁減,同時也是專門支持ARM系統芯片的Linux版本,這也為后期的進一步裁減做好了鋪墊的工作。在文件系統方面,目前FLASH上常用的文件系統主要有JFFS2、CRAMFS、Yaffs2、ROMFS以及ROMFS等。目前,Mini2440開發板支持Yaffs2。YAFFS2是第一個專門為Nandflash存儲器設計的嵌入式文件系統,適用于大容量的存儲設備;并且是在GPL〔GeneralPublicLicense協議下發布的,可在其網站免費獲得源代碼。CRAMFS文件系統是專門針對閃存〔如NorFlash>設計的只讀壓縮的文件系統,采用實時解壓縮方式,小巧且速度快。本設計采用YAFFS2文件系統,可以讀寫保存。系統主要采用C語言作為基本開發語言,在嵌入式開發中,語言的可移植性很重要。因為Linux是用C語言編寫的,對C語言有良好的函數庫的支持,其編譯出的代碼精簡,具有運行速度快和對底層開發支持好的特點。2.6本章小結本章通過對智能家居的分析,確定了系統總體架構設計,然后針對其方案進行軟硬件選型。首先確定了SAMSUNG公司的32位RISC處理器S3C2440作為微控制器芯片;其次是介紹本智能家居各模塊所使用到的硬件設備,接著介紹幾種嵌入式操作系統和選擇嵌入式操作系統的依據,最后確定了適合CPU的最佳嵌入式操作系統。第3章建立Linux開發環境3.1搭建開發環境3.1.1安裝虛擬機、Linux操作系統、源代碼及其他工具本設計是在虛擬機上安裝Linux操作系統Fedora9.0版本而進行。首先安裝vmware并下載Fedora-9-i386-DVD.iso鏡像,安裝好Fedora9.0操作系統。在操作終端上創建工作目錄/opt/FriendlyARM/mini2440,在此終端上解壓安裝源代碼,此次用的是內核自帶的內核源代碼:linux--mini2440-20100106。此次設計用開發板自動的arm-qtopia設計qt運行界面。建立交叉編譯環境在Linux平臺下,要為開發板編譯內核,圖形界面Qtopia,bootloader,還有其他一些應用程序,均需要交叉編譯工具鏈。之前的系統,要使用不同的編譯器版本才能正常編譯各個部分,因此要在開發過程不斷切換設置,這十分不利于初學者使用,也降低了開發的效率;自從Linux-2.6.2開始<Mini2440所配內核已為最新的Linux->,我們把交叉編譯器統一為arm-linux-gcc-4.4.3,下面是它的安裝設置步驟。<1>將arm-linux-gcc-4.4.3.tgz復制到某個目錄下如tmp\,然后進入到該目錄,執行解壓命令:#cd/tmp#tarxvzfarm-linux-gcc-4.4.3.tgz–C/<2>Step2:把編譯器路徑加入系統環境變量,運行命令#gedit/root/.bashrc編輯/root/.bashrc文件,在最后一行添加:保存退出,注銷系統后,使設置生效,重新登錄系統<不必重啟機器,開始->logout即可>,在命令行輸入arm-linux-gcc–v,若沒有輸出錯誤信息即表示建立交叉編譯環境成功。配置網絡文件系統NFSNFS是NetworkFileSystem的簡寫,即網絡文件系統,NFS允許一個系統在網絡上與他人共享文件。通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問別的系統上的文件。在嵌入式開發環境中,通過NFS服務器,可以把NFS作為根文件系統來啟動開發板,通過使用NFS作為根文件系統,不僅使開發板的"硬盤"變得很大,還可以減少程序燒寫的次數,提供程序開發速度[11]。下面介紹NFS服務器的安裝和配置。首先安裝NFS服務器一般情況下系統默認按照好NFS服務,系統不默認安裝的話,只需要下載兩個安裝包安裝即可:nfs-utils-*<包括基本的NFS命令與監控程序

>portmap-*<支持安全NFSRPC服務的連接>接著需要共享Linux系統和開發板目錄。必須解壓安裝好root_qtopia目標板文件系統包。接著在Fedora9.0的終端上運行命令#gedit/etc/exports,編輯nfs服務的配置文件,添加以下內容/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4*〔rw,sync,no_root_squash,其中/opt/FriendlyARM/**/rootfs_qtopia_qt4表示nfs共享目錄。最后啟動NFS服務。在命令行下運行以下命令即可:/etc/init.d/nfsstop。3.2嵌入式軟件開發層次本設計的軟件系統一個嵌入式Linux系統從軟件角度來看可以分為三個層次:〔1引導加載程序,包括固化在固件中的boot程序<可選>,和Bootloader部分兩大部分。〔2linux內核,特定于嵌入式平臺的定制內核。〔3文件系統,包括了系統命令和應用程序。一個同時裝有BootLoader、內核的啟動參數、內核映像和根文件系統映像的固態存儲設備的典型空間分配結構圖如圖3.1圖3.1空間分配結構圖BootLoader介紹簡單的說bootloader是一段程序,它的作用就是加載操作系統,BootLoader〔引導加載程序是系統加電后運行的第一段軟件代碼[12]。通過這段代碼實現硬件的初始化,建立內存空間的映射圖,為操作系統內核準備好硬件環境并引導內核的啟動。bootloader位于最底層,首先被運行來引導操作系統運行,很容易可以看出bootloader是底層程序所以它的實現嚴重地依賴于硬件,特別是在嵌入式世界。因此,在嵌入式世界里建立一個通用的BootLoader幾乎是不可能的。盡管如此,一些功能強大、支持硬件環境較多的BootLoader也被廣大的使用者和愛好者所支持,從而形成了一些被廣泛認可的、較為通用的的bootloader實現。此次開發板引導程序用的是Supervivi,它是友善之臂基于vivi改進的一個簡單易用的Bootloader。在此不用自己來移植bootloader。定制Linxu內核Linux是最受歡迎的自由電腦操作系統內核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統。Linux最早是由芬蘭黑客LinusTorvalds為嘗試在英特爾x86架構上提供自由免費的類Unix操作系統而開發的。該計劃開始于1991年,在計劃的早期有一些Minix黑客提供了協助,而今天全球無數程序員正在為該計劃無償提供幫助。技術上說Linux是一個內核。"內核"指的是一個提供硬件抽象層、磁盤及文件系統控制、多任務等功能的系統軟件。一個內核不是一套完整的操作系統。一套基于Linux內核的完整操作系統叫作Linux操作系統,或是GNU/Linux。Linux內核源代碼很龐大,想要短時間內讀懂大部分內核源代碼幾乎是不可能的,此次設計用的是開發板自帶的內核,版本號是Linux-。首先把內核代碼解壓安裝在工作目錄/opt/FriendlyARM/mini2440,進入內核代碼根目錄,執行"cpconfig_mini2440_t35.config_t35"使用缺省的配置文件。然后執行"makemenuconfig",打開內核配置界面,配置好內核后通過執行"makezImage"命令編譯內核,編譯結束后在/arch/arm/boot目錄下生成Linux內核映像文件zImage。根文件系統文件系統是對一個存儲設備上的數據和元數據進行組織的機制。這種機制有利于用戶和操作系統的交互。在Linux中沒有文件系統的話,用戶和操作系統的交互也就斷開了,所有應用用戶程序,都沒有辦法運行。根文件系統,是Linux/Unix系統啟動的一個重要的組成部分,也是操作系統正常工作的必要組成部分。Linux要在一個分區上存放系統啟動所必需的文件,如Init進程、系統配置文件、文件系統及網絡系統等等的工具集、鏈接庫等等。這些存放在同一個分區中的基本且必需的文件合起來稱為根文件系統。根文件系統的基本目錄結構一般包括:/bin,/sbin,/etc,/proc,/dev,/bin,/usr,/lib,/tmp等,如有需要可再添加。下面做簡單介紹:/bin存放root與普通賬號的命令,由于這些命令在掛接其他文件系統之前就可以使用,所以/bin目錄和根文件系統在同一個分區中。/sbin存放系統命令,只有系統管理員〔root能夠使用的命令,系統命令還可以存放在/usr/sbin,/usr/local/sbin目錄下,/sbin目錄中存放的是基本的系統命令,它們用于啟動系統和修復系統等/etc存放著系統主要的配置文件,例如人員的賬號密碼文件、各種服務的其實文件等。/lib存放共享庫和可加載〔驅動程序,共享庫用于啟動系統。運行根文件系統中的可執行程序。/home系統默認的用戶文件夾,它是可選的,對于每個普通用戶,在/home目錄下都有一個以用戶名命名的子目錄,里面存放用戶相關的配置文件。/root存放系統管理員〔root的主文件夾的,即是根用戶的目錄。/usr存放的是共享、只讀的程序和數據,這表明/usr目錄下的內容可以在多個主機間共享,這些主要也符合FHS標準的。/var存放可變的數據,比如spool目錄〔mail,news,log文件,臨時文件。/mnt存放臨時掛載某個文件系統的掛接點,通常是空目錄,也可以在里面創建一引起空的子目錄,比如/mnt/cdram/mnt/hda1。用來臨時掛載光盤、移動存儲設備等。/tmp存放臨時文件,通常是空目錄,一些需要生成臨時文件的程序用到的/tmp目錄下,所以/tmp目錄必須存在并可以訪問。3.3本章小結本章主要介紹了嵌入式系統開發平臺搭建過程。分別對虛擬機安裝,交叉編譯環境、在Linux服務器上安裝交叉編譯工具鏈、嵌入式Linux內核的配置和編譯,YAFFS32文件系統的實現,以及嵌入式軟件開發層次等。第4章系統的實現本智能家居系統分幾個模塊組成:GSM遠程控制模塊,溫度、煙霧數據采集模塊,具有語音提示功能的密碼鎖防盜功能模塊,預防小孩墜樓模塊。每個硬件模塊在嵌入式開發中稱為設備,每個設備想要運行都要在Linux內核中編寫設備驅動程序。所謂設備驅動程序就是控制與管理硬件設備數據收發的軟件,它是應用程序與硬件設備溝通的橋梁。從本質上講設備驅動程序主要負責硬件設備的數據讀寫、參數配置與中斷處理。設備驅動程序是操作系統的一部分,通常運行在內核層。應用層通過系統調用進入內核層,內核層根據系統調用號來調用驅動程序對應的接口函數。Linux驅動程序運行的原理如圖4.1所示。圖4.1驅動程序運行原理Linux中的大部分驅動程序,是以內核模塊的形式編寫的,內核模塊是Linux內核向外部提供的一個接口。Linux內核本身就是一個單內核,具有效率高的優點,也具有可擴展性和可維護性差的缺陷,模塊機制就是為了彌補這一缺陷而設計的。內核模塊可以單獨編譯,在運行時被鏈接到內核,作為內核的一部分在內核空間中運行。采用可加載模塊方式可以讓驅動程序的運行更加靈活,也更便于調試。本設計就是用動態可加載方式逐個模塊調試好,調試好后在直接編譯進內核中,然后開機就運行應用程序。一般來說,Linux系統將設備分為3種類型:字符設備、塊設備、網絡接口設備。本系統設計中用到的設備都是指字符設備驅動,這里主要講解字符設備及其相關內容。字符設備是指那些每次只能一個字節讀寫數據的設備,不能隨機讀取設備內存中的某一數據,其驅動程序中完成的主要工作是初始化、添加和刪除cdev結構體,申請和釋放設備號,以及填充file_operations結構體中操作函數,并實現file_operations結構體中的read<>、write<>、ioct1<>等重要函數。cdev結構體、file_operations和用戶空間調用驅動的關系如圖4.2所示。圖4.2字符設備與用戶空間關系想要設備正常工作,就必須要按圖4.2所示先加載設備驅動模塊,然后才能正確調用open<>、read<>、write<>、ioctl<>函數操作系統硬件設備。另外,上層應用程序是在qtopia中編譯的,而智能家居系統每個模塊必須互不干擾,其中一個模塊發生故障應不影響其他模塊的運行,要實現每個模塊能單獨工作,這里用到了多線程的技術,為每個模塊創建Timer定時器,把每個模塊的程序放在定時器函數中運行,下面分別詳細介紹本設計的幾個模塊的調試過程。4.1GSM遠程控制模塊的實現mini2440串口的配置和實現在實際程序設計過程中主要包括兩個組成部分,其一是串口的硬件驅動程序,其二是文件系統上的應用程序。S3C2440本身自帶了3個串口UART0、1、2,其中UART0做了RS232電平轉換,UART1、UART2輸出的點平是TTL電平,但是從NFS啟動系統需要用到UART0,我們開發時用到UART2,中間經過232電路與GSM模塊連接。開發板的內核源代碼自帶了串口驅動程序,在開發時我們不需要自己編寫驅動。在Linux中,所有東西都可以看成文件,在應用層想使用串口時首先需要打開串口:intfd;fd=open<"/dev/ttySAC1",O_RDWR>;if<-1==fd>{/*不能打開串口二*/perror<"提示錯誤!">;}打開串口后還不能時串口正常工作,需要正確設置串口包括設置波特率、效驗位和停止位的設置,設置串口主要是設置structtermios結構體的各成員值。Structtermios{ unsignedshortc_iflag;//輸入模式標志 unsignedshortc_oflag;//輸出模式標志 unsignedshortc_cflag;//控制模式標志 unsignedshortc_lflag;//本地模式標志 unsignedcharc_line;//控制協議 unsignedcharc_cc[NCC];//控制模式字符};幾乎對串口的操作都是通過結構體structtermios和幾個函數實現,其中最重要的是tcgetattr<>和tcsetattr<>,剛開始程序通過tcgetattr<>函數獲取設備當前的設置,然后修改這些設置,最后用tcsetattr<>使設置生效。在使用串口時,波特率設置成b9600,無校驗位,8位數據位和一位停止位。設置好串口之后,就可以通過把串口當作文件讀寫了。發送數據:charbuffer[1024];intLength=1024;intnbyte;nbyte=write<fd,buffer,Length>;接受數據:charbuffer[1024];intLen=1024;intreadbyte=read<fd,buff,Len>;通過串口發送短信前面已經簡單介紹過TC35模塊,TC35模塊有40個引腳,通過一個ZIF<ZeroInsertionForce,零阻力插座>連接器引出。這40個引腳可以劃分為5類,即電源、數據輸入/輸出、SIM卡、音頻接口和控制。在開發中我們用的是GSM集成模塊,模塊把我們需要使用的引腳都接了出來,開發時只有提供電源和接上MAX232電路即可。由于開發板上輸出的電平是TTL電平,TC35模塊輸入輸出的是RS232電平,因而開發時需要自己外接MAX232電路進行電平轉換。讓TC35工作的過程主要是通過開發板的串口給TC35發送AT指令以及處理開發板返回的AT指令。通過GSM短信模塊發送短信主要有兩種格式:英文短信和中文PDU短信。下面是發送英文短信的收發過程。發:AT //與AT35握手

收:OK

發:AT+CMGF=1//選擇發送短信的格式

收:OK

發:AT+CMGS=//要發送的手機號

收:>

發:data→

//test為發送內容,→為發送符〔ctrl+z,十六進制0x1A

收:+CMGS:54OK知道了GSM英文短信的發送過程,只要把握好順序用nbyte=write<fd,buffer,Length>;即可實現發送英文短信的功能。本設計中,用發送短信主要是為了實現家電遠程監視的功能,當用戶發送檢測家電的請求時,系統通過發送英文短信向用戶反饋家電的工作狀態,從而達到檢測家電的功能。要控制家電,首先系統要識別是什么用戶向系統發送了消息,而且系統還要識別受到消息的內容,從而對家電進行控制。系統首先保存用戶的電話號碼,當用戶收到消息時,首先判斷是否是智能家居系統對家電發送了消息,如果是系統的主人發送的控制命令,系統接著對短信進行解析,最后控制器對家電進行控制。若智能家居系統收到其他用戶的短信請求,將不會對短信進行解析,也不會對短信進行監控。GSM短信模塊遠程監控家電過程如圖4.3所示:圖4.3GSM短信模塊的程序流程圖控制器的串口和連接GSM模塊的max232串口相連接,當GSM模塊收到信息后馬上向開發板返回AT指令信息,因而系統一直在檢測是否收到短信,4.2溫度采集模塊的實現DS18B20溫度傳感器提供9位到12位<二進制>溫度讀數,指示器件的溫度信息經過單線接口送入DS18B20或從DS18B2O送出,從主機CPU到DS18B20僅需一條線<共地>,DS18B20可選擇兩種供電方式,一是數據總線供電方式,可節省一根導線,但測量溫度時間較長;二是外部供電方式,DS18B2O工作電源由VDD引腳接入,I/O線不需要強上拉,不存在電源電流不足的問題,可以保證轉換精度,這樣雖多用一根導線,但測量速度較快,同時總線可以掛接多個DS18B20傳感器,組成多點測溫系統,為了實現及時多點采集溫度,本設計選用了外部供電的方式。DS18B20的測量范圍從-55攝氏度到+125攝氏度,增量值為0.5攝氏度,可在1s<典型值>內把溫度變換成數字,每一個DS18B20在出廠時已給定了唯一的序號,多個DS18B20可以存放在同一條單線總線上,實現多路溫度采集。DS18B20的序號值存放在DSl8B20內部的ROM<只讀存貯器>中,多路測量時需用DS18B20的ROM搜索命令對所有單線總線上的傳感器進行搜索,然后初始化各DS18B20并發送跳過ROM命令和RAM溫度轉換命令,單線上各DS18B20完成溫度轉換后,即可定位某一個DS18B20,并用匹配ROM命令和RAM溫度讀取命令讀取其數字溫度值。ROM和RAM存儲器操作命令分別如表4.1和表4.2所示:表4.1ROM存儲器操作命令ROM指令代碼指令功能ReadROM33H讀取DS18B20的64位器件序列號Match55H總線控制在單線上定位一只特定的DS18B20SkipROMCCH總線控制器不需發送器件序列號就可對存儲器操作SearchROMF0H識別單線總線上各單線器件的序列號AlarmROMECH對溫度超過報警上、下限的器件做出警告搜索響應表4.2RAM存儲器操作命令RAM指令代碼指令功能WriteScratchpad4EH寫入數據到儲存器字節2,3和字節4ReadScratchpadBEH讀暫存存儲器CopyScratchpad48H將暫存器中TH,TL和配置寄存器內容復雜到E2PROMConvertTemperature44H啟動DS18B20溫度轉換RecallEPROMB8H將E2PROM中TH,TL和配置寄存器內容回寫到暫存器ReadPowersupplyB4H讀電源數字溫度傳感器DS18B20將模擬溫度信號直接轉換為數字信號,然后通過串行通信的方式輸出。因此,溫度采集的關鍵是DS18B20的通信協議,為了確保數據轉換與傳輸的完整性,DS18B20器件必須采用嚴格的通信協議與處理器S3C2440進行數據通信DS18B20數據通信協議包括傳感器的初始化,數據執行ROM操作命令和存儲器操作命令等。初始化協議定義復位和存在脈沖時序,數據執行協議定義處理器讀0讀1時序和寫0寫1時序,所有的命令和數據以字節發送,并且低位在前,高位在后,DS18B20數據通信時序圖如圖4.4所示:圖4.4DS18B20數據通信時序圖處理器將單線總線DQ從邏輯高電平拉為邏輯低電平時,啟動一個寫時序,所有的寫時序必須在60μs~12μs內完成,并且兩個連續的寫時序之間至少需要1μs的恢復時間,在寫"0"整個時序期間,總線一直保持為邏輯低電平,而在寫"1"時序期間,處理器先將單線總線拉為邏輯低電平,在時序開始后15μs內將總線釋放,寫"0"與寫"1"時序如圖4.5所示:圖4.5寫"0"與寫"1"時序圖DS18B20溫度采集程序設計流程圖如圖4.6所示:圖4.6DS18B20溫度采集程序設計流程圖數據采集過程中驅動層所編寫的主要函數如下:1:staticintds18b20_init<void>;//數據初始化2:staticunsignedcharwrite_byte<void>;//向DS18B20讀數據3:staticunsignedcharread_byte<void>;//往DS18B20寫數據4:staticssize_tds18b20_read<structfile*file,char__user*buf,size_tcount,loff_t*f_pos>;//讀出溫度值,然后利用copy_to_user函數返回給用戶層。為便于調試,該驅動模塊沒有內核驅動方式配置,而是以模塊方式配置,所以每次使用的時候必須通過運行insmoddr18b20.ko命令加載模塊。溫度傳感器在嵌入式系統中對應的設備文件為/dev/ds18b20,首先系統調用函數intfd_ds18b20=open<"/dev/ds18b20",O_RDWR>打開嵌入式設備中的傳感器設備,打開設備失敗返回-1,以后的系統函數就可以使用fd_ds18b20來對設備進行操作。關閉數字溫度傳感器的函數為close<fd_ds18b20>。系統通過調用read<fd_ds18b20,&result,sizeof<result>>讀出溫度值,保存在result中,最后顯示出來。4.3煙霧傳感器模塊的實現MQ-2氣體傳感器可檢測多種可燃性氣體,當傳感器所處環境中存在可燃性氣體時,傳感器的電導率隨空氣中可燃氣體濃度的增加而增大。使用簡單的電路即可將電導率的變化轉換為與該氣體濃度相對應的輸出電壓信號。根據傳感器輸出的電壓大小判斷環境中可燃性氣體濃度的大小。MQ-2氣體傳感器輸出的是電壓信號,處理器要把相應的電壓值轉換成對應的數值,S3C2440自帶了A/D轉換的功能,A/D轉換芯片在嵌入式系統中對應的設備文件"/dev/adc",首先系統調用函數intfd_adctest=open<"/dev/adc",O_RDWR>打開嵌入式設備中的A/D轉換設備,打開設備失敗返回-1,以后的系統函數就可以使用fd_adctest來對設備進行操作。關閉煙霧傳感器的函數為close<fd_adctest>。下圖是煙霧傳感器的連接圖。圖4.7煙霧傳感器接線圖如上圖所示,MQ-2其他傳感器有6只針狀管引腳,

溫馨提示

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

評論

0/150

提交評論