国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Linux的物聯(lián)網(wǎng)智能網(wǎng)關(guān)的軟件設(shè)計(jì)

2016-06-15 06:45洪嵐王佳斌
中國新通信 2016年9期

洪嵐 王佳斌

【摘要】 隨著物聯(lián)網(wǎng)技術(shù)突飛猛進(jìn)的發(fā)展,智能控制和無線傳感領(lǐng)域正在發(fā)生著一場重大的技術(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)的軟件設(shè)計(jì)采用嵌入式Linux來實(shí)現(xiàn)。

【關(guān)鍵詞】 智能網(wǎng)關(guān) 嵌入式Linux Zigbee

引言:近年來,隨著科技的不斷發(fā)展,信息化建設(shè)越來越廣泛地應(yīng)用在日常生活中。智能家居系統(tǒng)的出現(xiàn),滿足了人們對現(xià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ò)中,方便人們對其進(jìn)行訪問和讀取。由于接口的不同,通信方式存在差異,因此智能網(wǎng)關(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)警等等,這些設(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)用戶對末端節(jié)點(diǎn)的監(jiān)測和控制。

二、網(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ù)/指令一級緩存,512KB的二級緩存,可以實(shí)現(xiàn)2000DMIPS(每秒運(yùn)算20億條指令集)的高性能運(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ò)的建立,對各個(gè)終端節(jié)點(diǎn)的入網(wǎng)加以驗(yàn)證。Zigbee發(fā)收模塊部分,是將接收到的無線Zigbee信號通過串行通信的方式傳送到處理器芯片,另一個(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)網(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ù),使網(wǎng)關(guān)用無線或者有線的方式和上位機(jī)進(jìn)行通信。在系統(tǒng)工作的主程序中,網(wǎng)關(guān)服務(wù)器不斷地檢測來自設(shè)備終端和來自用戶終端的連接請求,當(dāng)從任一端收到請求命令時(shí),服務(wù)器被激活并創(chuàng)建一個(gè)子進(jìn)程與發(fā)送請求端通信,直到通信結(jié)束服務(wù)器方才結(jié)束該進(jìn)程,而主程序返回繼續(xù)檢測來自其他終端的連接請求。智能網(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è)備終端信息表。用戶終端信息表主要存儲(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é)束時(shí),通過函數(shù)pthread_ exit來結(jié)束一個(gè)線程,并返回相關(guān)參數(shù)。

3.3 與串口RS-232的通信

RS-232是工業(yè)設(shè)備中常用的一種串口,由于其通訊簡單,連線少而被定義為標(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)程之間的雙向通信。網(wǎng)絡(luò)的Socket數(shù)據(jù)傳輸是一種特殊的I/O,因此Socket也是一種文件描述符,常用的有以下三種類型:流式Socket、數(shù)據(jù)報(bào)Socket和原始Socket[4]。本文所采用的是流式Socket編程技術(shù),對客戶端而言,智能網(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)還有許多地方需要改善,比如網(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-7

[3] StevensW.R, Rago S A, Advanced Programming in the UNIX Environment(Second Edition),[M].London: Pearson Education, 2013.154-155

[4]文全剛,嵌入式Linux操作系統(tǒng)原理與應(yīng)用[M]。北京:北京航空航天大學(xué)出版社,2011(3). 79-83

揭东县| 驻马店市| 常州市| 抚顺市| 财经| 杂多县| 留坝县| 红安县| 肥乡县| 雅安市| 佳木斯市| 临潭县| 满洲里市| 同仁县| 江都市| 登封市| 高要市| 盐津县| 临沧市| 洛南县| 阳朔县| 治县。| 济南市| 全椒县| 宜兴市| 大安市| 土默特右旗| 通化市| 岢岚县| 三江| 通许县| 长子县| 郸城县| 顺平县| 高安市| 咸阳市| 阿拉善盟| 苍南县| 祁门县| 晋城| 视频|