嵌入式系統(tǒng)課程設計--智能家居控制系統(tǒng)_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  前言</b></p><p>  1984年,在美國康涅迪格州(Connecticut)特福德市建設了世界上第一幢智能建筑—都市大廈,雖然當時只是對一棟破舊的大樓進行了改造,但是是采用先進的計算機技術對都市大廈內(nèi)部的電梯、照明、空調(diào)等設備進行監(jiān)控,并且還可以提供情報資料、電郵、語音通信等信息的服務。自此以后,在美國、歐洲、澳大利亞、韓國及新加坡等經(jīng)濟較發(fā)達的國家

2、先后提出了各種智能家居控制方案,如歐洲的EIB總線、美國的C-Bus總線、新加坡的8X系統(tǒng)用于智能家居系統(tǒng)的協(xié)議,而且主要發(fā)達國家都從國家戰(zhàn)略的高度大力推廣智能家居控制系統(tǒng)。</p><p>  國外很多大型公司非常看好智能家居控制的市場前景,例如:比利時的TELETASK、美國的Honeywell、德國的Merten、新加坡NICO等國際知名公司,都在加大力度研發(fā)智能家居控制系統(tǒng)。而且每個公司都有其不同的特點:

3、比利時的TELETASK重特點在于控制,其家居自動化系統(tǒng)質(zhì)量穩(wěn)定而且具有強大的升級能力,其最大的優(yōu)點在于模塊化結構,所有的模塊接口由AUTOBUS總線相連。美國的Honeywell重點在于安防,旨在提供安全、便利、舒適等特點。其系統(tǒng)大多用有RS-485,CANBUS,紅外遙控等技術德國的Merten智能控制系統(tǒng)是通過EIB工具軟件ETS進行系統(tǒng)配置和功能設置的,Merten提供免費的產(chǎn)品數(shù)據(jù)庫。新加坡NICO主要采用LonWorks技術

4、,并在“智能照明控制”領域成為行業(yè)的佼佼者。</p><p>  在進入21世紀的現(xiàn)代,智能家居控制系統(tǒng)依然成為國外流行的時尚文化,有著非常誘人的前景與巨大的市場,根據(jù)國際專家不完全統(tǒng)計,在未來十年內(nèi)智能家居控制產(chǎn)品銷售額能夠達到328億美元。雖然國外每家公司的策略不盡相同,但都堅信同樣的信念,就連IBM公司的邁克爾.凱羅斯克說:“這是個不容IBM公司忽視的市場機會?!?lt;/p><p> 

5、 現(xiàn)階段,智能家居控制系統(tǒng)在我國的研究與應用相對處于一個起步階段,但是也呈現(xiàn)出蓬勃發(fā)展的趨勢,在2011年5月正式提出的“十二五”規(guī)劃中也明確提出了將智能住宅作為戰(zhàn)略性新型產(chǎn)業(yè)培育發(fā)展,在大力扶持的物聯(lián)網(wǎng)時代,智能家居控制系統(tǒng)在我國必將迎來一種熱潮。然而智能家居控制系統(tǒng)在我國發(fā)展的近十年來,一直遇到市場瓶頸,原因在于:對我國廣大家庭來說,智能家居系統(tǒng)依然是一個概念產(chǎn)品,并沒有在人們心中形成一種消費化的產(chǎn)品,市場認可度比較低。智能家居行業(yè)

6、現(xiàn)狀也不容樂觀,出現(xiàn)很多問題:智能家居系統(tǒng)技術標準不統(tǒng)一,操作性差,價格昂貴,而且產(chǎn)品參差不齊。雖然智能家居系統(tǒng)在我國近十年的發(fā)展歷程中小有成就,提出了很多的概念性產(chǎn)品,但都沒有很好的滿足人們的核心需求,這種問題的關鍵性在于:目前智能家居控制系統(tǒng)產(chǎn)品的穩(wěn)定性差,并且兼容性也不成熟,以至于實際效果與人們所要求的效果有很大的差異。</p><p>  在我國雖然智能家居起步尚晚,技術水平處于發(fā)展階段,但我國人口眾多,

7、人們對住宅的剛性需求很大,隨著國家大力擴大內(nèi)需,民眾的消費水平也不斷提供,對生活水平質(zhì)量的要求不斷加大,因此在現(xiàn)有階段大力扶持智能家居行業(yè)也是對我國房地產(chǎn)事業(yè)的發(fā)展指明了一個新的發(fā)展平臺。因此現(xiàn)階段我國很多IT公司有一個明確的方向:智能家居控制系統(tǒng)先從實用性做起,積攢一些技術手段及民眾對其功能性的需求,然后逐漸開始做高端性的產(chǎn)品。具統(tǒng)計資料顯示,目前我國已有70%的家庭安有網(wǎng)絡寬帶,在一線、二線城市化進程中,將有50%左右的住宅要實現(xiàn)智

8、能化控制,由此看來我國智能家居控制系統(tǒng)前景還是可觀。</p><p>  目前,在國內(nèi)智能家居控制系統(tǒng)起步雖然較晚,但是國內(nèi)一些知名的傳統(tǒng)家電行業(yè)巨頭如:海爾、TCL等,還有一些IT巨頭如:河東企業(yè)(HDL)、上海索博、波創(chuàng)科技等都已經(jīng)涉足智能家居行業(yè),并投入大量的資金與高端技術來研發(fā)。而先進入該領域的一些企業(yè)基本都推出了各自的產(chǎn)品,如海爾集團的“U-home”、TCL的“Mihome我的智能管家”、波創(chuàng)“EHO

9、ME智能家居遠程控制系統(tǒng)”,都得到一定程度上的應用。</p><p>  在當前社會高速發(fā)展的同時,更是倡導節(jié)能減排、低碳環(huán)保,由此利用智能家居控制設備的優(yōu)點,其悄然已經(jīng)成為房地產(chǎn)行業(yè)、住宅建設、IT技術行業(yè)發(fā)展的重點。隨著生活節(jié)奏的加快,人們更感受到時間、生活的便捷、安全的重要性,并且對生活質(zhì)量的追求也越來越強烈,因此將智能化系統(tǒng)應用于家庭住宅中,有著重要的意義,也同時滿足廣大民眾的愿望。 由此可見智能家居控制

10、系統(tǒng)有著非常廣闊的前景。</p><p><b>  目錄</b></p><p>  第1章 方案論證1</p><p>  1.1智能家居控制系統(tǒng)結構設計1</p><p>  1.2智能家居控制系統(tǒng)方案框圖2</p><p>  第2章 硬件系統(tǒng)設計3</p><

11、p>  2.1處理器芯片的選擇3</p><p>  2.1.1電源電路設計3</p><p>  2.1.2復位電路設計4</p><p>  2.1.3時鐘電路設計5</p><p>  2.1.4串口電路設計6</p><p>  2.1.5 JTAG電路設計6</p><p

12、>  2.1.6 SDRAM電路設計7</p><p>  2.1.7 FLASH電路設計8</p><p>  2.2 ZigBee接口電路設計11</p><p>  2.3 WIFI接口電路設計12</p><p>  2.4 3G接口電路設計13</p><p>  2.5 溫度接口電路設計1

13、4</p><p>  2.6 煙霧傳感器接口電路設計15</p><p>  第三章 應用軟件設計17</p><p>  3.1交叉編譯環(huán)境的搭建17</p><p>  3.2 U-Boot的移植17</p><p>  3.3 Linux 內(nèi)核的移植18</p><p>  3

14、.4 YAFFS2文件系統(tǒng)移植19</p><p>  3.5 ZigBee模塊驅動軟件設計20</p><p>  3.6 3G模塊驅動軟件設計22</p><p>  3.7 WiFi模塊驅動軟件設計23</p><p><b>  第4章 小結25</b></p><p><

15、b>  參考文獻26</b></p><p><b>  第1章 方案論證</b></p><p>  1.1智能家居控制系統(tǒng)結構設計 </p><p>  經(jīng)過對用戶所需功能以及現(xiàn)有市場產(chǎn)品做出分析,本論文設計主要將智能家</p><p>  居控制系統(tǒng)主要分五個部分組成:電源部分、中央控制器S3C

16、2410A核心板、各個功能子模塊、智能家居控制系統(tǒng)內(nèi)部通信以及智能家居控制系統(tǒng)外部通信。電源部分:電源部分是為整個智能家居控制系統(tǒng)供電,因此是硬件設計的重點,在控制設備設計兩種電源控制方案,其一是用直流開關電源接220V電壓來接入設備為系統(tǒng)供電,其二是采用干電池直接對系統(tǒng)供電。</p><p>  中央控制器核心板:中央控制器是整個智能家居控制系統(tǒng)的核心,本設計采用Samsung公司的嵌入式ARM-S3C2410

17、A芯片,首先繪制其最小系統(tǒng)原理圖,PCB板制作成插針形式,預留一些I/O接口來連接其它功能子模塊,并可以在客戶需要其他功能時做出設備的擴展。其主要完成以下工作:接收各個功能子模塊所采集的數(shù)據(jù)信息進行分析,對分析結果和客戶所需要實現(xiàn)的功能,然后發(fā)送指令對家居設備進行控制;并以嵌入式系統(tǒng)設定網(wǎng)關,對通過網(wǎng)絡訪問家居設備時提供安全機制保障。</p><p>  功能子模塊:功能子模塊以中央控制器為核心,實現(xiàn)系統(tǒng)所需的特

18、定功能,比如:智能燈光的控制、家庭電器設備的控制、窗戶以及門禁系統(tǒng)控制、室內(nèi)溫度及氣體的采集、遠程控制等。每個模塊的實現(xiàn)功能都是由中央控制器來發(fā)送指令。</p><p>  智能家居控制系統(tǒng)內(nèi)部通信:其主要實現(xiàn)的功能是完成中央控制器與功能子模塊之間的信息傳遞。經(jīng)過前面對有線與無線通信方式的分析與研究,本次設計采用無線通信方式作為智能家居控制系統(tǒng)的內(nèi)部通信方式,并結合無線通信特點,本設計采用ZigBee+WIFI作

19、為內(nèi)部通信方式。</p><p>  智能家居控制系統(tǒng)外部通信:主要功能是實現(xiàn)用戶通過Internet遠程操作與控制家居設備,隨著我國目前寬帶網(wǎng)絡的發(fā)展日趨完善,技術的不斷成熟,現(xiàn)階段我國常用的寬帶接入方式有兩種:ADSL、無線上網(wǎng)及常說的WiFi,因此在控制系統(tǒng)中采用這兩種方式,添加DM9000模塊以有線方式接入,并將WiFi作為其外部通信,以此來降低系統(tǒng)成本及復雜度,系統(tǒng)中也添加3G模塊,當家庭電器出現(xiàn)狀況或

20、發(fā)生危險情況是,實現(xiàn)通過3G網(wǎng)絡以手機短信方式來告知用戶。</p><p>  1.2智能家居控制系統(tǒng)方案框圖</p><p>  經(jīng)過對智能家居控制系統(tǒng)方案的選擇及技術手段的選定,下圖2-4給出本次控制系統(tǒng)方案框圖。由圖可見,本次論文設計旨在實現(xiàn)的功能有:家居照明控制系統(tǒng)、家庭安防控制系統(tǒng)(指紋識別和RFID射頻卡相結合的門禁系統(tǒng)、火災、煤氣泄露)、通過溫度傳感器采集各個房間的溫度、通過

21、氣體傳感器采集空氣濕度與有害氣體、視頻實時視頻監(jiān)控系統(tǒng)、采用256色LCD來顯示小區(qū)信息、通過無線網(wǎng)絡實現(xiàn)智能家居統(tǒng)控制系統(tǒng)同Internet網(wǎng)絡連接,并通過3G網(wǎng)絡實現(xiàn)與手機的對接。</p><p>  圖1-1 智能家居控制系統(tǒng)框圖</p><p>  第2章 硬件系統(tǒng)設計</p><p>  2.1處理器芯片的選擇</p><p>  

22、S3C2410A處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用FBGA封裝,采用0.18um制造工藝的32位微控制器。該處理器擁有:獨立的16KB指令Cache和16KB數(shù)據(jù)Cache,MMU,支持TFT的LCD控制器,NAND閃存控制器,3路UART,4路DMA,4路帶PWM的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2個USB主

23、機,1個USB設備,SD主機和MMC接口,2路SPI。S3C2410處理器最高可運行在203MHz。</p><p>  2.1.1電源電路設計</p><p>  現(xiàn)在的ARM處理器為了減少系統(tǒng)的功耗、便于電源管理,采取多組電源供電的方式來工作。一般都有CPU核心電壓VCC_CORE、外圍接口部分供電VCC_IO、內(nèi)存接口部分供電電壓VCC_MEM等多路供電電壓。</p>

24、<p>  本設計采用Samsung公司的S3C2410A處理器,考慮其應用場合以及電源管理部分的內(nèi)部設計,采用多個分離原件來設計電源電路部分。S3C2410A所需電壓為2組:一組為核心電壓VCC_CORE為1.25V,用帶固定輸出的PJ1134調(diào)節(jié)分壓電阻得到1.25V,另外一組為其片內(nèi)功能模塊及I/O引腳電壓,分別為1.8V和3.3V。如圖2-1所示電路圖:</p><p>  圖2-1 S3C24

25、10A內(nèi)核電壓</p><p>  I/O引腳電壓VCC_IO為3.3V,此外還包括:ZigBee模塊、WiFi模塊、3G模塊、溫度采集模塊等,所需均為3.3 V。電路設計如圖2-2所示電路圖,5V經(jīng)LM1117-33轉換成3.3V。</p><p>  圖2-2 5V轉3.3V電路設計</p><p>  USB、GPS、煙霧傳感器等所需電壓均為5V,電路設計如圖

26、2-3所示,由</p><p>  LM2576經(jīng)外接12V直流開關電源轉換成5V,LM2576芯片有較強的輸出電流驅動</p><p>  能力,具有可靠的工作性能、較高的工作效率和較強的輸出電流驅動能力,從而</p><p>  為MCU的穩(wěn)定、可靠工作提供了強有力的保證。</p><p>  圖2-3 12V轉5V電路設計</p&

27、gt;<p>  2.1.2復位電路設計</p><p>  本設計在采用分離式芯片的設計中,同時采用門電路來實現(xiàn)復位電路,電路</p><p>  設計如圖2-4所示,采用電阻電容電路及SN74LV14D組成了一個復位信號輸出電</p><p>  路。帶有RESET和nRESET兩個復位信號輸出,S3C2410A復位為低電平有效。</p>

28、;<p>  圖2-4 復位電路設計</p><p>  2.1.3時鐘電路設計</p><p>  Samsung公司的S3C2410A處理器內(nèi)部帶有DPLL、APLL電路,所以外部一般都接頻率比較低的12MHz或13MHz的有源晶振或晶體振蕩器;由于S3C2410A內(nèi)部帶有RTC電路,還需外接32.768KHz的晶體振蕩器,具體接法如圖2-5所示。C20、C22一般選用1

29、5pF的電容,VSS的引腳需要注意接到離晶體最近的VSS。C21、C23一般選用22pF的電容,如果外部采用有源晶振的話,直接把時鐘信號接到OSC32K_IN,而OSC32K_OUT引腳可以懸空,這個時候需要注意OSC32K_CTRL引腳,這個引腳是來OMAP確定使用內(nèi)部晶體振蕩器還是使用外部振蕩器的。</p><p>  在設計PCB的時候,振蕩器電路走線要盡量近,晶體擺放位置要離ARM的時鐘輸入引腳近,而且最

30、好在擺放晶體的表層鋪上一層地信號銅箔,把晶體的時鐘信號圍起來。</p><p>  圖2-5 時鐘電路設計</p><p>  2.1.4串口電路設計</p><p>  S3C2410A系統(tǒng)為了與PC機之間進行通信,因此需要串口模塊,采用RS-232,是一種全雙工的串行接口,傳輸速率為20Kbps。由于RS-232采用標準電平信號與S3C2410A采用的不同,因此

31、兩者之間進行通信必須經(jīng)行信號電平轉換,本次串口電路設計采用MAXIM公司的MAX3232芯片進行電平轉換。電路設計如圖2-6所示。</p><p>  圖2-6串口電路設計</p><p>  2.1.5 JTAG電路設計</p><p>  TAG是Joint Test Action Group的縮寫,是一種國際標準測試協(xié)議,主要用于芯片內(nèi)部測試,以及對系統(tǒng)進行仿

32、真、調(diào)試。標準的JTAG接口是4線:測試數(shù)據(jù)輸入TDI、測試數(shù)據(jù)輸出TDO、測試模式選擇TMS、測試時鐘TCK。在ARM最小系統(tǒng)中,JTAG主要實行對各個器件的測試,主要目的是調(diào)試BootLoader,一旦在集成開發(fā)環(huán)境下成功下載BootLoader后,開發(fā)工作就可以脫離JTAG接口,直接使用BootLoader和ARM處理器的外圍接口來下載內(nèi)核和文件系統(tǒng)了,另外還可以通過JTAG接口對Flash芯片燒寫。</p><

33、;p>  本設計采用20pins插針形式的JTAG接口電路設計。如果在nRESET與nTRST這兩個引腳信號不用時,要將這兩個引腳上接1KΩ的上拉電阻,不然在進行調(diào)試時,這兩個JTAG信號就不確定了,造成不能正常連接ARM系統(tǒng);JTAG上的輸出信號都要接10KΩ的電阻拉高,20pins的JTAG電路設計如圖2-7所示:</p><p>  圖2-7 JTAG接口電路設計</p><p&g

34、t;  2.1.6 SDRAM電路設計</p><p>  在上面幾個小部分介紹的電源電路設計、復位電路設計、時鐘電路設計、JTAG電路設計等幾個部分,已經(jīng)組成了基于ARMS3C2410A處理器的最小系統(tǒng)硬件設計。然而在本課題設計的智能家居手持設備,需采集、處理大量信息,還需要移植Linux,光是片內(nèi)的SDRAM是不夠的,還是需要外擴SDRAM,因此在本次控制系統(tǒng)設計時,需要設計大容量的存儲器。SDRAM多用于設

35、備內(nèi)存區(qū),雖然掉電之后數(shù)據(jù)不能保存,但是它具有快速的讀取與寫入特性,而且速度遠遠大于Flash這樣掉電不失數(shù)據(jù)的存儲設備,這樣使它非常適合用于作為程序的運行空間,存放運行時所需的數(shù)據(jù)和堆棧區(qū)。對于嵌入式設備系統(tǒng)的啟動過程來說,當系統(tǒng)剛上電的時候CPU會從0x0地址讀取啟動代碼,然后對系統(tǒng)硬件進行簡單必要的初始化,然后把后續(xù)的代碼移入SDRAM,然后跳到SDRAM繼續(xù)執(zhí)行,這樣就會在很大程度上提高系統(tǒng)的啟動速度。幾乎所有的嵌入式設備都會用

36、到SDRAM,可見它的應用之廣,SDRAM不但價格上便宜,而且它的單位空間存儲量也大。由于本次設計的中央控制器是SC32410A,其片內(nèi)具有獨立的SDRAM刷新控制邏輯,可以方便地與SDRAM接口。</p><p>  目前市場上最為常用的是16位數(shù)據(jù)帶寬的SDRAM,工作電壓為3.3V。本次設計采用2片16位的SDRAM擴展為32位數(shù)據(jù)帶寬的SDRAM。采用Samsung公司16位數(shù)據(jù)帶寬的SDRAM器件K4S

37、561632C-TC75(32MB),采用高性能CMOS技術,按4M×16位×4組織方式,電路設計如圖2-8所示:</p><p>  圖 2-8 SDRAM電路設計</p><p>  2.1.7 FLASH電路設計</p><p>  Flash存儲器是一種在系統(tǒng)可編程期間,存儲的信息在系統(tǒng)掉電后不會丟失。Flash在嵌入式設備中應用非常廣

38、泛,它具有容量大、讀寫速度快、低功耗、可整片或分扇區(qū)在系統(tǒng)編程(燒寫)或擦除等特點,所有對芯片的操作都是根據(jù)它自己的內(nèi)部嵌入的算法完成的。它相比RAM等易失性存儲器具有掉電不會失去數(shù)據(jù)的特點,所以很多時候我們用它來存放系統(tǒng)的重要數(shù)據(jù),比如BootLoader,內(nèi)核、程序代碼等。當前Flash主要分成兩種:Intel公司開發(fā)的NOR Flash和TOSHIBA開發(fā)的NAND Flash o NOR Flash容量小、成本高、但讀速度要快,

39、NAND Flash相比NOR Flash容量大、成本低、但不適用與頻繁讀寫,因此NOR Flash適合用來存儲少量程序代碼,NAND Flash則是高數(shù)據(jù)存儲密度的理想方案。</p><p>  NOR Flash采用AMD公司生產(chǎn)的AM29LV 160DB,其采用COMS高性能結構,2Mx8-Bit結構。AM29LV 160DB是一款常見的Flash存儲器,單片存儲容量為16MB,工作電壓為2.7-3.6V,

40、 AM29LV160DB具有16位數(shù)據(jù)寬度,并以16位(字模式)數(shù)據(jù)寬度的方式工作。通過對其內(nèi)部的命令寄存器寫入標準命令序列,可對Flash進行編程、整片擦除以及其他操作。電路設計如圖2-9所示:</p><p>  圖2-9 NOR Flash電路設計</p><p>  AM29LU160DB第47腳是BYTE#腳,如果采用數(shù)據(jù)位為16位,BYTE#需要接接高電平時:或者采用數(shù)據(jù)

41、位為8位,BYTE#就需要接低電平。本設計接VCC,采用16位數(shù)據(jù)帶寬,A0-A19是地址線,D0-D15作為數(shù)據(jù)輸入輸出口。因為數(shù)據(jù)位是16位,AO-A19可以選擇2^20=1M*2byte = 2Mbyte,正好是AM29LV160DB的容量。上圖中AM29LV160DB的A20,A21是空腳,分別接的是LADDR21,LADDR22,這是為了以后方便擴展NOR Flash的容量。</p><p>  NAN

42、D Flash進行擦除和寫操作的效率更高,并且容量更大,用十存儲數(shù)據(jù)。NAND Flash一般都采用Samsung公司的K9FXX08系列,有16M ( K9F2808 ), 32M(K9F5608 ), 64M ( K9F1208 ), 128M (K9F1G08),它們的封裝與原理圖一致,只需要在軟件編程中稍加修改,本設計采用K9F1G08,存儲空間為128M 。</p><p>  圖2-10 NAND

43、 Flash電路設計</p><p>  S3C2410A芯片內(nèi)集成NAND Flash控制器,因此電路設計相對簡單,K9F1G08 和S3C2410A的連線包括,8個IO引腳連接S3C2410A的低8位數(shù)據(jù)總線[LADTA7-LDATAO] , 5個使能信號(nWE, ALE, CLE, nCE, nRE), 1個狀態(tài)引腳(R/B) , 1個寫保護引腳(nWP,直接連接3.3V電壓拉高。地址、數(shù)據(jù)和命令,是在

44、這_5個使能信號的配合下,通過8個IO引腳傳輸。寫地址、數(shù)據(jù)、命令時,nCE, nWE信號必須設為低電平,它們在nWE信號的上升沿被鎖存:命令鎖存使能信號CLE和地址鎖存使能信號ALE用來區(qū)別IO引腳上傳輸?shù)氖敲钸€是地址。需要注意的是RnB信號是OC門輸出,因此需要外部的10K歐姆上拉電阻。電路設計如圖2-10所示。</p><p>  2.2 ZigBee接口電路設計</p><p>

45、  圖 2-11 ZigBee接口電路</p><p>  考慮目前市場上的ZigBee產(chǎn)品以及技術方面的原因,因此采用TI公司的CC2530系列嵌入式無線通信模塊。CC2530是用于IEEE 802.15.4, ZigBee和RF4CE應用的一個真正的片上系統(tǒng)(SOC)解決方案。CC2530集成單片機、ADC、無線通信模塊十一體,大大提高了單片機與無線通信模塊組合時的可靠性,同時也減小了節(jié)點的體積與質(zhì)量。 CC

46、2530支持最新的ZigBee協(xié)議---ZigBee 2007/PRO, ZigBee 2007/PRO相對十以前的協(xié)議棧具有更好的互操作性、節(jié)點密度管理、數(shù)據(jù)負荷管理、頻率捷變等方面有重大進步,并且支持網(wǎng)狀網(wǎng)絡,而且其相對十以前的版本,具有功耗低的優(yōu)點。這就使得運用CC2530設計出來的節(jié)點通信距離更遠,組網(wǎng)性能更穩(wěn)定可靠。 CC2530目前常用的有四種,分別是不同的Flash版本:CC2530F32/64/128/256,分別具有3

47、2/64/128/256KB的閃存。</p><p>  ZigBee接口電路設計如圖 2-11所示,描述的是CC2530模塊上各引腳的連接狀況,當使用諸如單極子的一個不平衡的天線,應該使用一個巴倫來最優(yōu)化性能。巴倫可以使用低成本的分立電感和電容實現(xiàn)。巴倫包括C38, L3, C46和Loo32MHz晶振使用了一個外部32MHz振蕩器XTAL1和兩個負載電容(C49和Cs0);XTAL2是一個可選的32.768k

48、Hz晶振,有兩個負載電容(C_53和C_54)用十32.768kHz晶振,32.768kHz晶振用十要求非常低的睡眠電流消耗和精確喚醒時間的應用。</p><p>  CC2530與ARM-S3C2410A采用SPI接口形式,來進行通信,在S3C2410A作為主機時,SSEL引腳要接10K歐姆的上拉電阻,用一個GPIO口來接CC2530的使能端CSN,用四個中斷EINT1, EINT3, EINT4, EINT

49、S分解連接CC2530的四個中斷輸出引腳。電路連接如圖2-12所示: </p><p>  圖2-12 S3C2410A與CC2530接口連接設計</p><p>  2.3 WIFI接口電路設計</p><p>  WiFi模塊采用上海漢楓電子科技有限公司推出的全新的第二代嵌入式Uart-WiFi模塊產(chǎn)品HF-A11x o Uart-WiFi是基十Uart接口的符

50、合WiFi無線網(wǎng)絡標準的嵌入式模塊,通過FCC, CE, RoHS認證,內(nèi)置無線網(wǎng)絡l辦議IEEE802.11協(xié)議棧以及TCP/IP協(xié)議棧,支持頻率范圍:2.412-2.484GHz,能夠實現(xiàn)用戶串口或TTL電平數(shù)據(jù)到無線網(wǎng)絡之間的轉換。</p><p>  圖2-13 HF-A 11 x電路設計</p><p>  處理器S3C2410A的串口直接與HF-A 11 x的串口相連,進行通

51、信,電路設計連接如圖2-13所示,S3C2410A的3個GPIO口控制其WiFi狀態(tài)指示(nLink、模塊啟動狀態(tài)指示(nReady)、模組復位(nRST),電源為S3C2410A外部接口電源3.3V。</p><p>  2.4 3G接口電路設計</p><p>  3G模塊采用ZTE中興公司的MF210模塊,MF210是一款PCI Express Mini C and接口的HSUPA無

52、線上網(wǎng)模塊,MF210模塊具有許多功能特點。</p><p>  模塊產(chǎn)品MF210和S3C2410A連接時時,主要分為以下信號組:USB信號、SIIVI Card信號、射頻開關控制信號W_DISABLE_N、整機復位信號PERST_N、電源和地。工作狀態(tài)指示燈信號WWAN_LED_N經(jīng)過一個限流電阻后直接接電源3.3V。</p><p>  W_DISABLE_N信號(管腳號:20)為M

53、F210的輸入信號,低電平有效,由與在MF210內(nèi)部由150K歐姆電阻上拉到3.3V,因此系統(tǒng)對此電路不做上拉處理。PERST_N信號(管腳號:22)號為MF210的系統(tǒng)復位信號,低電平有效。MF210具有高速USB2.0接口,支持全速和高速模式,其經(jīng)過PCI-E接口引出連接到控制器S3C2410A,管腳為36 (USB_DM), 38 (USB_DP)。電路設計如圖2-14:</p><p>  圖2-14 3

54、G模塊接口電路設計</p><p>  本產(chǎn)品的射頻天線接口有兩個:一個是主天線接口(PCB上有“MAIN”標識),一個是分集(GPS)天線(分集和GPS都可選,但不能同時支持)接口(PCB上有“AUX”標識)。天線接口采用的射頻座均為HRS公司U.FL-R-SMT(10),對應十射頻接口的線纜,建議選用HRS公司的U.FL_ LP_ 088。</p><p>  2.5 溫度接口電路設計

55、</p><p>  結合本次控制系統(tǒng)的實際情況,由于需要采集家庭內(nèi)部的溫度,具有分散性,</p><p>  因此本系統(tǒng)設計采用DALLAS公司的DS 18B20,它具有進行多點溫度采集的特</p><p>  點。DS 18B20是采用“單總線”形式的數(shù)字溫度傳感器,它具有結構簡單、體積小、功耗低、無須外接元件等特點,而且用戶還可以自己設定預警上下限溫度。

56、 DS 18B20其測量溫度范圍為-55到+125攝氏度,支持3-5.5V電壓供電,因此本次系統(tǒng)電源的設計完全滿足其供電模式。DS 18B20主要由四部分組成:64位光刻ROM,溫度傳感器、配置寄存器和非易失性溫度報警觸發(fā)器。ROM中的64位序列號出廠前已光刻固化,每個傳感器的序列號都是唯一的,因此可以在一根總線上掛接多個DS 18B20,能極大減少I/O口的占用,在使用中不需要任何外圍元件,傳感器與CC2530的連接形式如圖2-15所

57、示:</p><p>  圖2-15溫度接口電路設計</p><p>  2.6 煙霧傳感器接口電路設計</p><p>  煙霧傳感器主要是利用氣敏元件的氣敏特性,將其作為電路中的氣-電轉換</p><p>  元件,并配以相應的電路、指示儀表或聲光顯示部分}fn組成的氣體檢測儀器。本</p><p>  論文設計采

58、用MQ-N 10進行敏感氣體的密度采集。MQ-N 10的敏感材料是活性很高Sn02,其工作原理為:當Sn02在空氣中被加熱到一定溫度時,Sn02會吸附空氣中的氧,因此其電子會轉移到所吸附的氧上,導致氧原子變?yōu)檠踟撾x子,由于這種電子的轉移,會在Sn02表面生成一個正的空間電荷層,從而導致表面勢壘升高,這樣會阻礙電子流動,導致電導率的變化。</p><p>  MQ-N10具有很長的使用壽命,可靠的穩(wěn)定性、快速的響應

59、恢復特性。因此</p><p>  在家庭,工廠以及大型商場中得到了廣泛應用,MQ-N 10電路設計如圖2-16所示:</p><p>  圖2-16 MQ-N10煙霧傳感器接口電路設計</p><p>  MQ-N10煙霧傳感器電路設計采用兩部分:煙霧傳感器部分與模擬放大電路部分,系統(tǒng)將采集的煙霧信號首先轉化為模擬信號,然后將模擬信號經(jīng)過S3C2410A中的A/D

60、轉換器,轉化為數(shù)字信號,這樣S3C2410A就能夠把所采集到的信號進行分析與判斷,電路設計中ADC_AIN1與ADC_AIN1兩個信號連接S3C2410A的ADC通道上。</p><p>  第三章 應用軟件設計</p><p>  3.1交叉編譯環(huán)境的搭建</p><p>  先將安裝包linux\中的arm-linux-gcc-3 .4.1. tgz拷貝到某個目

61、錄文件火下,如tmp\,然后進入到該目錄,執(zhí)行解壓命令:</p><p>  #cd /tmp #tar xvzf arm-linux-gcc-3.4.l.tgz -C\</p><p>  #mkdir -p /opt/HY2410</p><p><b>  然后運行命令:</b></p><p>  #ged

62、it /root/.bashrc</p><p>  編輯/root/.bashrc文件,在最后一行export PATH=$PATH:/usr/local arm/3.4.1/bin</p><p>  編輯完成后,需要重新登入系統(tǒng)(不必重啟機器,開始一>>logout即可),以便使設置生效,然后在終端界面下的命令行輸入arm-linux-gcc -v,則交叉編譯環(huán)境已經(jīng)成功

63、建立。</p><p>  3.2 U-Boot的移植</p><p>  本系統(tǒng)設計移植U-Boot的具體步驟如下:</p><p>  1)從U-Boot的官方網(wǎng)站ftp://ftp.denx.de/pub/u-boo“上獲得最新版本的</p><p>  U-Boot-1.3.4,也是bzip2的壓縮格式。</p><

64、;p>  2)建立自己項目名稱SmartHome2410,修改U-Boot - 1.3.4目錄下的</p><p>  Makefile文件,修改如下:</p><p>  SmartHome2410_config:unconfig</p><p>  @./(MKCONF IG)$(@:_config=)arm arm920t SmartHome2410 N

65、ULL</p><p><b>  S3c24x0</b></p><p>  3)在board子目錄中建立SmartHome2410</p><p>  [uboot@menglingxu uboot]#cp rf board/s3c2410 board/ SmartHome2410</p><p>  [uboot@

66、menglingxu uboot]#cd board/ SmartHome2410</p><p>  [uboot@menglingxu SmartHome2410]#mv s3c2410.c SmartHome2410.c</p><p>  4)在include/configs中配置頭文件</p><p>  先復制S3C2410A核心板的配置文件,在修改:&

67、lt;/p><p>  [uboot@menglingxu uboot]#cp include/configs/s3c2410.h</p><p>  include/configs/SmartHome2410.h</p><p>  5)配置S3C2410A核心板</p><p>  [uboot@menglingxu SmartHome241

68、0]#make SmartHome2410_ config</p><p>  6)編譯U-Boot</p><p>  執(zhí)行#make CROSS_COMPILE=arm-linux一命令,如果編譯成功可以得到U-Boot映像。</p><p>  7)將U-Boot通過JTAG接口,燒寫入NAND Flash 。</p><p>  3.

69、3 Linux 內(nèi)核的移植</p><p><b>  內(nèi)核移植過程:</b></p><p>  1)從http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.tar.xz下載</p><p>  linux-2.6.39.2內(nèi)核代碼,把內(nèi)核代碼放到自己所建立的目錄文件下,并</

70、p><p><b>  解壓:</b></p><p>  [root@menglingxu linux2.6.39]# cd /home/arm/s3c2410/Kernel</p><p>  [root@menglingxu linuxt2.6.39 kernel]#tar xzvflinux2.6.39.2.tar.gz -c/</p

71、><p>  [root@menglingxu linuxt2.6.39 kernel]# cd linux2.6.39</p><p>  2)清理內(nèi)核配置文件信息,執(zhí)行如下命令:</p><p>  [root@menglingxu linux2.6.39 kernel]#make distclean</p><p><b>  然

72、后重新啟動。</b></p><p><b>  3)Flash分區(qū)</b></p><p>  本論文設計采用的是NAND Flash,因此需要把NAND Flash分為bootloader, kernel, root, user四個區(qū)。</p><p>  4)確定核心板微處理器的類型S3C2410A、網(wǎng)卡類型DM9000, T

73、CP/IP協(xié)議等,要結合實際所做的目標板來配置。</p><p><b>  5)配置內(nèi)核</b></p><p>  對十本次核心板S3C2410A核心板開發(fā)來說,Liunx內(nèi)核中,有很多不需要的功能,為了項目設計時能夠減少編譯出來的內(nèi)核體積,因此在配置內(nèi)核的時候,就需要對所需功能進行配置,并刪除不需要的模塊,因此需要配置內(nèi)核產(chǎn)生.config文件</p>

74、;<p>  [root@menglingxu linux2.6.39]#cp arch/arm/configs/</p><p>  SmartHome2410_ defconfig .config</p><p>  [root@menglingxu linux2.6.39]#make menuconfig</p><p>  保存退出,產(chǎn)生.co

75、nfig文件,.config文件能從提供linux-2.6.39.2的內(nèi)核中找到,文件名為config.back 。</p><p><b>  6)編譯內(nèi)核</b></p><p>  [root@menglingxu linux2.6.39]#make zImage</p><p>  編譯內(nèi)核完成后,會生成uImage,其位于/arch/

76、 arm/boot目錄下。</p><p><b>  7)加載內(nèi)核模塊</b></p><p>  [root@menglingxu linux2.6.39]#make modules_ install</p><p>  將編譯好的內(nèi)核模塊從內(nèi)核代碼目中找到,并cope到//lib/modules目錄下。</p><p&

77、gt;  8)制作init ramdisk</p><p>  [root@menglingxulinux2.6.39}#mkinitrd initrd-$version $version</p><p>  3.4 YAFFS2文件系統(tǒng)移植</p><p>  1)從http://www.alephl .co.uk/cgi-bin/viewcvs.cgi/下載最新

78、的YAFFS2代</p><p>  碼,點擊“Download GNU tarball",下載后出現(xiàn)cvs-root.tar.gz壓縮包并解壓。</p><p>  2)給內(nèi)核打YAFFS2文件系統(tǒng)的補丁</p><p>  cd /opt/stdudyarm/source</p><p>  tar一zxvf cvs-root.

79、tar.gz一C /opt/studyarm</p><p>  cd /opt/stdudyarm/cvs/yaffs2/</p><p>  ./patch-ker.sh c /opt/studyarm/linux-2.6.39.2/</p><p>  3)下面完成二件事:</p><p>  1.修改內(nèi)核fs/Kconfig</

80、p><p>  增加一行:source "fs/yaffs2/Kconfig"</p><p>  增加一行:ojb-$(CONFIG_ YAFFS_ FS) +=yaffs2/</p><p>  2.在內(nèi)核fs/目錄下創(chuàng)建yaffs2目錄</p><p>  將yaffs2源碼目錄下面的Makefile.kernel文件復

81、制為內(nèi)核</p><p>  fs/yaffs2/Makefie;</p><p>  將yaffs2源碼目錄的Kconfig文件復制到內(nèi)核fs/yaffs2目錄下;</p><p>  將yaffs2源碼目錄下的*.c *.h文件復制到內(nèi)核fs/yaffs2目錄下. </p><p>  4)配置Linux內(nèi)核,選擇支持yaffs2文件系統(tǒng)

82、</p><p>  進入Linux內(nèi)核目錄linux2.6.29.2</p><p>  make modules ARCH=arm</p><p>  CROSS COMPILE=arm-linux-</p><p>  5)編譯并安裝yaffs2</p><p>  make ARCH=arm CROSS COM

83、PILE=arm一linux-make install</p><p>  3.5 ZigBee模塊驅動軟件設計</p><p>  cc2s}o與S3C2410A的接口主要是SPI的四線接口,其實用到就是二個。在編寫CC2s30的驅動程序前,先寫一個驅動程序的框架,接著就可以在后面的開發(fā)過程中添加有關CC2s30操作的代碼了。</p><p>  struct f

84、ile_operations這個數(shù)據(jù)結構提供文件系統(tǒng)的入口點函數(shù),也就是訪問設備驅動的函數(shù),包括設備的讀寫操作,初始化操作等。file_ operations在<linux/fs.h>定義。</p><p>  static struct file_ operations spi_fops=</p><p><b>  {</b></p>&

85、lt;p>  .owner=ZIGBEE_MODULE,</p><p>  .open=spi_open,</p><p>  .read=spi_read,</p><p>  .write =spi_write,</p><p><b>  };</b></p><p>  Spi_i

86、nit函數(shù)是在驅動模塊加載時調(diào)用的,它是最先被執(zhí)行的一個函數(shù)。在這里一般會進行一些設備的初始化工作,例如注冊設備,端口映射。</p><p>  Static int spi_init(void)</p><p><b>  {</b></p><p>  printk(KERN_ALERT "zigbee_ spi一us init

87、ok\n");</p><p>  if(SPI MAJOR){</p><p>  SPI DEV=MKDEV(SPI MAJOR, SPI MINOR);</p><p>  retvalue=register_chrdev_region(SPI DEV, 0, SPI NAME);</p><p><b>  }&l

88、t;/b></p><p><b>  else{</b></p><p>  retvalue=alloc_chrdev_region(&SPI DEV, 0, 1,SPI NAME); </p><p>  SPI MAJOR=MAJOR(SPI DEV);</p><p>  if(-1== retv

89、alue){</p><p>  printk(KERN_ERR "zigbee module device register failure din");</p><p>  return retvalue;</p><p><b>  }</b></p><p>  SPI CDEV=cdev_a

90、lloc();</p><p>  if (SPL CDEV!=NULL)</p><p>  cdev_init(SPI CDEV, &spi_fops);</p><p>  SPI CDEV->ops=&spi_fops;</p><p>  SPI CDEV->owner-ZIGBEE_MODULE;<

91、;/p><p>  if (cdev_add(SPI CDEV, SPI DEV, 1)){</p><p>  printk(KERN_ALERT "zigbee dev register wrong\n");</p><p><b>  }</b></p><p><b>  else{&

92、lt;/b></p><p>  printk(KERN_ALERT "zigbee dev register succeed\n");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b&g

93、t;</p><p>  spi_exit在驅動模塊被卸載時會被調(diào)用,例如我們用rmmod命令時。在這里一般會進行一些資源的釋放操作,例如釋放之前注冊的中斷,端口內(nèi)存等等。</p><p>  static void exit spi_exit(void)</p><p><b>  {</b></p><p><

94、b>  }</b></p><p>  module_init(spi_init);</p><p>  module_exit(spi_exit);</p><p>  module_init是要告訴內(nèi)核spi_init是驅動的初始化函數(shù),這樣在加載驅動模塊時該函數(shù)就會被執(zhí)行去完成設備的初始化工作。</p><p>  m

95、odule_exit是要告訴內(nèi)核spi_exit是驅動模塊的清除函數(shù),在移除驅動模塊時這個函數(shù)就會被執(zhí)行。</p><p>  module_init. module_exit都只是一個宏,其實就是告訴編譯器將它們放到代碼段的init節(jié)中。</p><p>  3.6 3G模塊驅動軟件設計</p><p>  向linux內(nèi)核添加3G模塊的驅動(USB轉串口的驅動)

96、和PP川辦議的支持,交叉編譯并下載內(nèi)核到開發(fā)板。</p><p>  由十linux-2.6.39.2內(nèi)核支持“USB driver for GSM and CDMA modems ",所以不需要修改代碼,只修改內(nèi)核配置即可。</p><p>  1)清除臨時文件、中間文件和配置文件</p><p>  進入內(nèi)核文件目錄,執(zhí)行命令:make distcle

97、an</p><p>  2)使用內(nèi)核/arch/arm/configs目錄下的S3C2410-defconfig文件作為配置文件,將其拷貝為內(nèi)核目錄下的.config文件。</p><p>  3)在終端輸入:make menuconfig ARCH=arm,出現(xiàn)內(nèi)核配置界面后,表示可以配置。到此3G模塊驅動添加完成,下面進行PPP協(xié)議支持的添加(下面所示的幾個選項必選),如圖3-1所示

98、: </p><p>  圖 3-1 PPP協(xié)議中的必選項</p><p>  完成這些步驟之后,可以進行內(nèi)核的交叉編譯,退出make menuconfig,輸</p><p>  入make zImage ARCH=arm CROSS_COMPILE=arm-linux-,編譯生成的內(nèi)核映像文件位于當前內(nèi)核源代碼文件的/arch/arm/boot目錄下,將生成的內(nèi)

99、核映像文件下載到核心板上。</p><p>  內(nèi)核啟動后,在開發(fā)板USB HOST口插上3G模塊的USB線,會有打印信息輸出。</p><p>  3.7 WiFi模塊驅動軟件設計</p><p>  HF-A 11 x模塊支持兩種工作模式,一種配置模式。工作模式分別為透明傳輸模式和協(xié)議傳輸模式,配置模式下可以通過AT命令對模塊進行配置。HF-A 11 x模塊啟動

100、后,根據(jù)設置選擇一種工作模式,在任一種工作模式下都可以切換到配置模式進行配置。</p><p>  HF-A 11 x模塊支持串口透明傳輸模式,可以實現(xiàn)串口即插即用,從而最大程度的降低用戶的復雜度。在該模式下,所有需要被接受和發(fā)送數(shù)據(jù)都需要在WiFi接口與串口之間做透明傳輸,不做任何解析。在透明傳輸模式下,可以完全兼容用戶軟件。如果采用TCP辦議,打開串口的硬件流程(CTSRTS)功能,可以使誤碼率降到最低。&l

101、t;/p><p>  傳輸模式采用協(xié)議傳輸模式,主要保證DART接口上數(shù)據(jù)的準確性,在這種</p><p>  傳輸模式,定義了串口線上傳輸?shù)臄?shù)據(jù)結構、校驗方式及兩邊設備握手方式。在</p><p>  協(xié)議傳輸模式下,用戶設備可以發(fā)送命令給HF-A 11 x模塊,模塊接收到所發(fā)送的數(shù)據(jù)后會返回確認命令。HF-A 11 x模塊不會主動把數(shù)據(jù)發(fā)送給用戶設備,只有當用戶設備

102、向模塊發(fā)送命令要求數(shù)據(jù)時,模塊才會把數(shù)據(jù)發(fā)給用戶設備,在HF-A 11 x模塊內(nèi)部有1 MB的FIFO保存用戶數(shù)據(jù)。HF-A 11 x模塊啟動時,軟件流程圖如3-2所示:</p><p>  圖3-2 HF-Allx驅動軟件流程圖</p><p><b>  第4章 小結</b></p><p>  嵌入式系統(tǒng)(Embedded system)

103、,是一種“完全嵌入受控器件內(nèi)部,為特定應用而設計的專用計算機系統(tǒng)”,根據(jù)英國電氣工程師協(xié)會( U.K. Institution of Electrical Engineer)的定義,嵌入式系統(tǒng)為控制、監(jiān)視或輔助設備、機器或用于工廠運作的設備。與個人計算機這樣的通用計算機系統(tǒng)不同,嵌入式系統(tǒng)通常執(zhí)行的是帶有特定要求的預先定義的任務。由于嵌入式系統(tǒng)只針對一項特殊的任務,設計人員能夠對它進行優(yōu)化,減小尺寸降低成本。嵌入式系統(tǒng)通常進行大量生產(chǎn),

104、所以單個的成本節(jié)約,能夠隨著產(chǎn)量進行成百上千的放大。</p><p>  通過本次課程設計,使我對嵌入式系統(tǒng)的理解更加深刻。在課程設計中,不僅僅要對課程設計中使用到的芯片進行選擇,還要對其進行硬件方面的設計以及軟件方面的設計。將會運用到平時所學的課程中的理論知識以及實驗動手操作方面的能力。通過課程設計也是對自己解決問題的能力的一種鍛煉。</p><p>  最后,感謝再次課程設計中幫助我的

105、同學和老師們!</p><p><b>  參考文獻</b></p><p>  [1] 王學龍.嵌入式Linux系統(tǒng)設計與應用[M].清華大學出版社.2001</p><p>  [2] 周立功.ARM微控制器基礎與實戰(zhàn)[M].北京:北京航空航天出版社.2003.</p><p>  [3] 張軍,姜國靜,劉廣益.基于

溫馨提示

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

評論

0/150

提交評論