基于Linux的物聯(lián)網(wǎng)智能網(wǎng)關(guān)的軟件設(shè)計(jì)_第1頁
基于Linux的物聯(lián)網(wǎng)智能網(wǎng)關(guān)的軟件設(shè)計(jì)_第2頁
基于Linux的物聯(lián)網(wǎng)智能網(wǎng)關(guān)的軟件設(shè)計(jì)_第3頁
基于Linux的物聯(lián)網(wǎng)智能網(wǎng)關(guān)的軟件設(shè)計(jì)_第4頁
基于Linux的物聯(lián)網(wǎng)智能網(wǎng)關(guān)的軟件設(shè)計(jì)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、    基于linux的物聯(lián)網(wǎng)智能網(wǎng)關(guān)的軟件設(shè)計(jì)    洪嵐 王佳斌【摘要】 隨著物聯(lián)網(wǎng)技術(shù)突飛猛進(jìn)的發(fā)展,智能控制和無線傳感領(lǐng)域正在發(fā)生著一場(chǎng)重大的技術(shù)變革,智能家居系統(tǒng)的出現(xiàn)就是物聯(lián)網(wǎng)技術(shù)的典型應(yīng)用。而智能網(wǎng)關(guān)作為整個(gè)智能家居系統(tǒng)的核心,實(shí)現(xiàn)了無線傳感網(wǎng)絡(luò)和互聯(lián)網(wǎng)、移動(dòng)網(wǎng)絡(luò)的融合,完成不同類型的網(wǎng)絡(luò)協(xié)議的轉(zhuǎn)換,為遠(yuǎn)程監(jiān)控和管理提供了橋梁。本文先介紹了目前通用的智能家居系統(tǒng)及其智能網(wǎng)關(guān)的硬件結(jié)構(gòu),隨后著重介紹了智能網(wǎng)關(guān)的軟件設(shè)計(jì)方案,使得網(wǎng)關(guān)可以實(shí)現(xiàn)與協(xié)調(diào)器的串口通信,以及網(wǎng)關(guān)和用戶手持終端的通信。由于嵌入式linux的可靠性較高且穩(wěn)定性較好,因此網(wǎng)關(guān)

2、的軟件設(shè)計(jì)采用嵌入式linux來實(shí)現(xiàn)。【關(guān)鍵詞】 智能網(wǎng)關(guān) 嵌入式linux zigbee引言:近年來,隨著科技的不斷發(fā)展,信息化建設(shè)越來越廣泛地應(yīng)用在日常生活中。智能家居系統(tǒng)的出現(xiàn),滿足了人們對(duì)現(xiàn)代生活更簡(jiǎn)便更快捷的要求。通用的智能家居系統(tǒng)的主要功能是能夠?qū)崿F(xiàn)用戶能遠(yuǎn)程地控制家中的家電設(shè)備并監(jiān)控家里環(huán)境等,智能網(wǎng)關(guān)則是人和家中設(shè)備通信的一個(gè)橋梁,是智能家居系統(tǒng)中最重要的控制單元。一方面,智能網(wǎng)關(guān)通過zigbee與系統(tǒng)中的所有設(shè)備進(jìn)行無線通信,讀取數(shù)據(jù),并發(fā)送指令。另一方面,智能網(wǎng)關(guān)通過tcp/ip等網(wǎng)絡(luò)協(xié)議連接到網(wǎng)絡(luò)中,方便人們對(duì)其進(jìn)行訪問和讀取。由于接口的不同,通信方式存在差異,因此智能網(wǎng)

3、關(guān)要完成不同設(shè)備之間的信息和數(shù)據(jù)交換的任務(wù)。智能網(wǎng)關(guān)的實(shí)現(xiàn)主要有電腦和嵌入式系統(tǒng)兩種方式,其中嵌入式系統(tǒng)具有體積小巧,成本低廉,可靠性高,穩(wěn)定性好、功耗小等優(yōu)點(diǎn),更能符合智能家居系統(tǒng)中智能網(wǎng)關(guān)的性能要求,因此,本文采用嵌入式的linux來進(jìn)行智能網(wǎng)關(guān)的軟件設(shè)計(jì)。一、智能家居系統(tǒng)的主要結(jié)構(gòu)組成在一個(gè)通用的智能家居系統(tǒng)中,主要是根據(jù)用戶的需求來設(shè)置智能節(jié)點(diǎn),通常包含門禁系統(tǒng),視頻監(jiān)控,家用電器,數(shù)據(jù)采集等。智能家居系統(tǒng)主要包括終端節(jié)點(diǎn)、智能網(wǎng)關(guān)和上機(jī)位系統(tǒng)等三個(gè)部分,智能網(wǎng)關(guān)是統(tǒng)一管理終端節(jié)點(diǎn)的控制設(shè)備。如圖1所示。智能家居系統(tǒng)中終端節(jié)點(diǎn)主要有家用電器,水表電表,門禁節(jié)點(diǎn),視頻監(jiān)控,防盜報(bào)警等等,

4、這些設(shè)備通過zigbee網(wǎng)絡(luò)與智能網(wǎng)關(guān)進(jìn)行通信,并把數(shù)據(jù)轉(zhuǎn)輸?shù)骄W(wǎng)關(guān)中進(jìn)行解析,智能網(wǎng)關(guān)把解析后的數(shù)據(jù)通過以太網(wǎng)傳輸?shù)接脩舻氖种?,從而?shí)現(xiàn)用戶對(duì)末端節(jié)點(diǎn)的監(jiān)測(cè)和控制。二、網(wǎng)關(guān)的硬件結(jié)構(gòu)智能網(wǎng)關(guān)主要板載嵌入式處理器,zigbee網(wǎng)關(guān)協(xié)調(diào)器,天線,串口,以太網(wǎng)接口等模塊。1、網(wǎng)關(guān)采用三星公司主流cortex-a8嵌入式處理器,該處理器是采用的芯片是samsung s5pv210,s5pv210采用了arm cortextm-a8內(nèi)核,arm v7指令集,主頻可達(dá)1ghz,64/32位內(nèi)部總線結(jié)構(gòu),32/32kb的數(shù)據(jù)/指令一級(jí)緩存,512kb的二級(jí)緩存,可以實(shí)現(xiàn)2000dmips(每秒運(yùn)算20億條指

5、令集)的高性能運(yùn)算能力。其該處理器支持tcp/ ip協(xié)議,安卓軟件和zigbee等應(yīng)用。2、zigbee網(wǎng)關(guān)協(xié)調(diào)器是采用德州儀器設(shè)備公司主流cc2530無線收發(fā)芯片組成智能網(wǎng)關(guān)協(xié)調(diào)器,它作為zigbee網(wǎng)絡(luò)的協(xié)調(diào)器,負(fù)責(zé)家庭內(nèi)網(wǎng)絡(luò)的建立,對(duì)各個(gè)終端節(jié)點(diǎn)的入網(wǎng)加以驗(yàn)證。zigbee發(fā)收模塊部分,是將接收到的無線zigbee信號(hào)通過串行通信的方式傳送到處理器芯片,另一個(gè)面,處理器發(fā)送數(shù)據(jù)的時(shí)候,也是通過串行通信的方式,將數(shù)據(jù)傳送到zigbee收發(fā)模塊,然后模塊將數(shù)據(jù)以zigbee協(xié)議進(jìn)行發(fā)送。其采用的無線協(xié)議是zigbee2007。3、網(wǎng)關(guān)通過外擴(kuò)lan9220網(wǎng)卡芯片和rj-45的水晶頭來實(shí)現(xiàn)聯(lián)

6、網(wǎng)功能。lan9220集成了以太網(wǎng)的mac和phy,符合ieee802.3/802.3u標(biāo)準(zhǔn),支持全雙工和半雙工的模式,能夠自動(dòng)生成并檢查32位的crc,其引腳數(shù)少且體積小巧,適用于小型系統(tǒng)設(shè)計(jì)。三、嵌入式linux網(wǎng)關(guān)的軟件設(shè)計(jì)由于智能網(wǎng)關(guān)要處理的數(shù)據(jù)量比較大,不同設(shè)備之間的協(xié)議轉(zhuǎn)換復(fù)雜,因此軟件設(shè)計(jì)考慮采用多線程的編程技術(shù)。多線程的編程技術(shù)優(yōu)點(diǎn)在它可以把上行數(shù)據(jù)和下行數(shù)據(jù)分開處理,且兩個(gè)線程可同時(shí)運(yùn)行,節(jié)省了運(yùn)行時(shí)間。這樣既充分發(fā)揮嵌入式linux網(wǎng)關(guān)的網(wǎng)絡(luò)性能,又能獲得最大的通訊效率和穩(wěn)定性1。網(wǎng)關(guān)的網(wǎng)絡(luò)編程是通過socket接口來實(shí)現(xiàn)的,系統(tǒng)在網(wǎng)關(guān)和上機(jī)之間建立了一個(gè)面向連接的服務(wù),使

7、網(wǎng)關(guān)用無線或者有線的方式和上位機(jī)進(jìn)行通信。在系統(tǒng)工作的主程序中,網(wǎng)關(guān)服務(wù)器不斷地檢測(cè)來自設(shè)備終端和來自用戶終端的連接請(qǐng)求,當(dāng)從任一端收到請(qǐng)求命令時(shí),服務(wù)器被激活并創(chuàng)建一個(gè)子進(jìn)程與發(fā)送請(qǐng)求端通信,直到通信結(jié)束服務(wù)器方才結(jié)束該進(jìn)程,而主程序返回繼續(xù)檢測(cè)來自其他終端的連接請(qǐng)求。智能網(wǎng)關(guān)軟件設(shè)計(jì)主流程圖如下圖所示:3.1 網(wǎng)關(guān)數(shù)據(jù)庫的選擇嵌入式系統(tǒng)可用的數(shù)據(jù)庫是很多種,本文選用sqlite數(shù)據(jù)庫, sqlite是一種開源數(shù)據(jù)庫,免費(fèi)使用,功能完善,體積小巧,具有可自由授權(quán),可移植且有多種api接口等特點(diǎn)2。首先把sqlite源碼移植到網(wǎng)關(guān)平臺(tái)上,然后在sqlite中創(chuàng)建一個(gè)用戶終端信息表和一個(gè)設(shè)備終端

8、信息表。用戶終端信息表主要存儲(chǔ)用戶終端的信息,包括用戶名和密碼等。設(shè)備終端信息表主要記錄設(shè)備終端的狀態(tài),從zigbee 協(xié)調(diào)器發(fā)來的數(shù)據(jù)經(jīng)解析后存在這張表中。3.2 創(chuàng)建網(wǎng)關(guān)的多線程在嵌入式linux系統(tǒng)中,創(chuàng)建一個(gè)進(jìn)程必須分配給它獨(dú)立的地址空間,同時(shí)還要建立從多的數(shù)據(jù)表,而創(chuàng)建一個(gè)線程,可以共享相同的地址空間和很多數(shù)據(jù),節(jié)約了運(yùn)行時(shí)間。但時(shí)在創(chuàng)建線程時(shí)必須考慮到其執(zhí)行的先后順序,這樣線程運(yùn)行時(shí)才不會(huì)沖突3。在lunux中,線程的創(chuàng)建要遵循posix線程接口,稱為pthread。在編寫程序時(shí)要先要調(diào)用pthread.h做為頭文件,然后使用函數(shù)pthread_create來創(chuàng)建一個(gè)線程。在線程結(jié)

9、束時(shí),通過函數(shù)pthread_ exit來結(jié)束一個(gè)線程,并返回相關(guān)參數(shù)。3.3 與串口rs-232的通信rs-232是工業(yè)設(shè)備中常用的一種串口,由于其通訊簡(jiǎn)單,連線少而被定義為標(biāo)準(zhǔn)接口。嵌入式 linux網(wǎng)關(guān)調(diào)用串口進(jìn)行通信的基本流程為打開串口,初始化串口,讀寫串口,關(guān)閉串口。串口初始化包括串口選擇、波特率設(shè)置、數(shù)據(jù)位數(shù)選擇、校驗(yàn)碼選擇、停止位設(shè)置等。3.4 網(wǎng)關(guān)服務(wù)器的socket編程socket(套接字)是兩組網(wǎng)絡(luò)數(shù)據(jù)實(shí)現(xiàn)雙向通信并進(jìn)行數(shù)據(jù)交換的一個(gè)端口,主要是描述ip地址和端口。socket可看成是在網(wǎng)絡(luò)應(yīng)用層和傳輸層之間的一個(gè)虛擬層,當(dāng)成一個(gè)接口以供不同程序的調(diào)用,以實(shí)現(xiàn)網(wǎng)絡(luò)進(jìn)程之間的

10、雙向通信。網(wǎng)絡(luò)的socket數(shù)據(jù)傳輸是一種特殊的i/o,因此socket也是一種文件描述符,常用的有以下三種類型:流式socket、數(shù)據(jù)報(bào)socket和原始socket4。本文所采用的是流式socket編程技術(shù),對(duì)客戶端而言,智能網(wǎng)關(guān)相當(dāng)于socket的服務(wù)器。四、結(jié)語本系統(tǒng)的中軟件設(shè)計(jì),可以實(shí)現(xiàn)智能網(wǎng)關(guān)的功能,一方面可以讀取終端節(jié)點(diǎn)的數(shù)據(jù),另一方面可以通過internet與電腦或手機(jī)通信,使人們可以方便地通過手機(jī)、平板電腦等設(shè)備與智能家居系統(tǒng)進(jìn)行通信,遠(yuǎn)程讀取信息,遠(yuǎn)程控制系統(tǒng)中的終端設(shè)備。但是智能家居系統(tǒng)是非常復(fù)雜且龐大的,涉及到的技術(shù)領(lǐng)域廣泛,在設(shè)計(jì)網(wǎng)關(guān)的過程中,發(fā)現(xiàn)網(wǎng)關(guān)還有許多地方需要

11、改善,比如網(wǎng)關(guān)的功能還比較單一,接口較少,在未來的研究工作中,還應(yīng)多拓展網(wǎng)關(guān)的功能接口。另外,網(wǎng)關(guān)的系統(tǒng)安全性能還有完善,提高網(wǎng)關(guān)的安全性會(huì)使大大增加用戶的滿意度。參 考 文 獻(xiàn)1吳晟,蘇慶堂,羅斌等,基于soctet和多線程技術(shù)的并發(fā)服務(wù)器的研究j.昆明理工大學(xué)學(xué)報(bào)(理工版),2006,4:6-9.2王京謙,萬蒞新,開源嵌入式數(shù)據(jù)庫berkeley dbt sqllite的比較j。單片機(jī)與嵌入式系統(tǒng)應(yīng)用.2005(2):5-73 stevensw.r, rago s a, advanced programming in the unix environment(second edition),m.london: pearson education, 2013.154-1554文全剛,嵌入

溫馨提示

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

評(píng)論

0/150

提交評(píng)論