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

?

基于嵌入式的智能家居網(wǎng)關(guān)設(shè)計(jì)

2016-11-04 13:15:05江寧桂斌
科技視界 2016年23期
關(guān)鍵詞:線程網(wǎng)關(guān)串口

江寧+桂斌

【摘 要】隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,智能家居已經(jīng)悄然走進(jìn)了千家萬戶。而在這些繁雜的系統(tǒng)中為了實(shí)現(xiàn)異地控制與監(jiān)測(cè),網(wǎng)關(guān)模塊是必不可少的。本文正是根據(jù)這種需求提出了一種基于嵌入式Linux+QT的,使用433MHz作為通信媒介的一種智能家居網(wǎng)關(guān)設(shè)計(jì)。從而能夠?qū)崿F(xiàn)對(duì)智能家居子節(jié)點(diǎn)的協(xié)調(diào)、控制以及將它們接入互聯(lián)網(wǎng)實(shí)現(xiàn)遠(yuǎn)程控制與監(jiān)控等功能。

【關(guān)鍵詞】物聯(lián)網(wǎng);嵌入式;433MHz通信;QT

0 概述

智能家居(英文:smart home, home automation)是以住宅為平臺(tái),利用綜合布線技術(shù)、網(wǎng)絡(luò)通信技術(shù)、安全防范技術(shù)、自動(dòng)控制技術(shù)、音視頻技術(shù)將家居生活有關(guān)的設(shè)施集成,構(gòu)建高效的住宅設(shè)施與家庭日程事務(wù)的管理系統(tǒng),提升家居安全性、便利性、舒適性、藝術(shù)性,并實(shí)現(xiàn)環(huán)保節(jié)能的居住環(huán)境。

目前常見的智能家居網(wǎng)關(guān)產(chǎn)品有的直接采用微機(jī)系統(tǒng),使用其他系統(tǒng)的產(chǎn)品也多采用基于wifi的通信手段并且軟件定制化很強(qiáng)。因此,導(dǎo)致的結(jié)果是功耗較高、可容納子節(jié)點(diǎn)較少、添加子節(jié)點(diǎn)后系統(tǒng)升級(jí)麻煩。本文正是為了解決這些缺點(diǎn),提出一種可能的解決方案。

本文使用ARM核心板作為基礎(chǔ),配合433MHz無線收發(fā)模塊設(shè)計(jì)了一個(gè)智能網(wǎng)關(guān)。該系統(tǒng)包含智能網(wǎng)關(guān)1個(gè)和用于與之測(cè)試通信的子節(jié)點(diǎn)若干。

1 硬件設(shè)計(jì)

1.1 硬件總設(shè)計(jì)

本系統(tǒng)包含智能網(wǎng)關(guān)1個(gè)和用于與之測(cè)試通信的子節(jié)點(diǎn)若干。在網(wǎng)關(guān)上應(yīng)當(dāng)配有方便人機(jī)交互的裝置,例如觸摸屏,同時(shí)應(yīng)當(dāng)能夠接入到互聯(lián)網(wǎng),具有網(wǎng)卡控制器。對(duì)于節(jié)點(diǎn)而言,并不是本文討論的重點(diǎn),但是其應(yīng)該具備一定的傳感器或控制器,然后通過微處理器將傳感器數(shù)據(jù)轉(zhuǎn)換成特定格式的數(shù)據(jù)幀由無線通信模塊發(fā)出與網(wǎng)關(guān)通信或者將接收到的數(shù)據(jù)根據(jù)相關(guān)邏輯驅(qū)動(dòng)控制器動(dòng)作。

而無線通信模塊的選取必須避免人們?nèi)找鎸挸ǖ募揖用娣e以及鋼筋墻壁所帶來的通信盲區(qū)。同時(shí),由于設(shè)備24小時(shí)工作,其空閑功耗必須較低。而對(duì)于環(huán)境數(shù)據(jù)以及控制信號(hào)其數(shù)據(jù)量卻并不大。為了滿足上述需求,本文選取國(guó)產(chǎn)匯承HC-21 433MHz通信模塊作為無線傳輸介質(zhì)。其空閑電流小于1mA,而通信距離則可大于600m,并具有良好的穿墻能力。彌補(bǔ)了傳統(tǒng)智能家居使用wifi帶來的高功耗及穿墻能力不足,也避免了zigbee復(fù)雜的布設(shè)過程。

1.2 網(wǎng)關(guān)硬件設(shè)計(jì)

通過分析既定的需求,該系統(tǒng)必須能夠流暢的執(zhí)行多任務(wù),因?yàn)橹辽儆?33MHz數(shù)據(jù)通信和網(wǎng)絡(luò)請(qǐng)求處理兩個(gè)繁重的任務(wù)需要不斷執(zhí)行。而且,最為整個(gè)家庭控制的核心,還需要有人機(jī)交互的友好界面,如果使用時(shí)下流行的LCD觸摸屏對(duì)于系統(tǒng)的性能是有較高的用途的。因此綜合上述分析,本文選取Banana pi開發(fā)板作為網(wǎng)關(guān)的核心。

本開發(fā)板擁有一顆Cortex-A7 雙核核心以及1GB內(nèi)存板載有線+無線網(wǎng)卡并且留有LVDS觸摸屏接口。能夠滿足多任務(wù)并發(fā)同時(shí)CPU內(nèi)置的顯卡能夠處理一般的人機(jī)交互界面。

1.3 子節(jié)點(diǎn)硬件設(shè)計(jì)

子節(jié)點(diǎn)負(fù)責(zé)對(duì)相關(guān)監(jiān)測(cè)量進(jìn)行采集或響應(yīng)網(wǎng)關(guān)發(fā)來的指令控制相應(yīng)的控制器動(dòng)作,而這種工作狀態(tài)具有實(shí)時(shí)性和突發(fā)性。因此,子節(jié)點(diǎn)需要有一定的邏輯處理能力,較好的I/O性能以及較低的功耗。

本系統(tǒng)選取溫濕度采集和調(diào)光燈這兩個(gè)常見的功能作為節(jié)點(diǎn)功能以供測(cè)試網(wǎng)關(guān)的功能。為了滿足上述需求采用STM32F103C8T6作為控制核心,其具有Cortex M3的內(nèi)核并且支持休眠模式。

2 軟件設(shè)計(jì)

2.1 軟件總設(shè)計(jì)

本系統(tǒng)軟件部分除了提供有好的用戶UI和實(shí)現(xiàn)網(wǎng)絡(luò)控制的框架外。需要解決2個(gè)根本矛盾:互斥資源排他性訪問、并發(fā)性與433MHz通信慢速的矛盾。對(duì)于矛盾1不能簡(jiǎn)單使用P-V操作來完成,因?yàn)榧揖硬僮骶哂忻黠@的順序性對(duì)于嵌入式系統(tǒng)利用這點(diǎn)這將節(jié)省大量硬件開銷;針對(duì)矛盾2為了節(jié)省成本也不能采用增加收發(fā)器的方式來增加速率。

綜上,本系統(tǒng)提出以下軟件結(jié)構(gòu)來解決這些問題。

2.2 串口驅(qū)動(dòng)層

這是由一系列類組成的軟件模塊,主要功能是向下連接操作系統(tǒng)API操縱串口,向上封裝操作,將初始化、寫、讀等操作進(jìn)行封裝方便上層調(diào)用。串口驅(qū)動(dòng)最主要要解決的是讀取問題,由于Linux不支持事件驅(qū)動(dòng)讀取方式。故提出解決方案,創(chuàng)建守護(hù)進(jìn)程監(jiān)視串口,有數(shù)據(jù)來就啟動(dòng)軟件定時(shí)器每次定時(shí)器到期就查看串口緩沖數(shù)據(jù)有沒有增加,有則在啟動(dòng)一次定時(shí)器周期,若無則向輪詢接收線程發(fā)送一信號(hào),同步阻塞接收線程收到信號(hào)后返回緩沖區(qū)全部字節(jié)。

由于串口訪問排他性,為了避免程序中錯(cuò)誤的多次實(shí)例化需要將該類設(shè)為單例模式。同時(shí),繼續(xù)向上封裝數(shù)據(jù)操作方法,并防止程序在多個(gè)線程內(nèi)重復(fù)訪問串口,在這些方法中均使用了互斥鎖。

2.3 HTTP監(jiān)聽程序

HTTPListener類對(duì)TCP連接進(jìn)行監(jiān)聽,然后解析Http數(shù)據(jù)包,并且將連接存入連接池?;诰€程類QThread派生出HttpConnectionHandle和 HttpQuestHandler子類進(jìn)行Http數(shù)據(jù)包的處理。最終QuestHandler繼承HttpQuestHandler并重寫虛函數(shù)Service實(shí)現(xiàn)獲取請(qǐng)求內(nèi)容。然后反序列化請(qǐng)求內(nèi)容交由串行化調(diào)度器完成任務(wù),期間阻塞本線程直到任務(wù)完成向客戶端發(fā)回響應(yīng)。若完成時(shí)間過長(zhǎng),則停止阻塞返回超時(shí)錯(cuò)誤。

2.4 脫機(jī)寄存器

為了解決無線信道并發(fā)的沖突,本系統(tǒng)使用串行化調(diào)度器。但是實(shí)際應(yīng)用中大多數(shù)時(shí)間信道是閑置的,僅當(dāng)例如用戶下達(dá)某一操作時(shí)信道將同時(shí)發(fā)生多個(gè)原子操作從而降低通信效率,433MHz的低速率特點(diǎn)將加劇這一現(xiàn)象。

因此,本系統(tǒng)采用脫機(jī)寄存器,將硬件控制位抽象到網(wǎng)關(guān)作為緩沖。從而解決了極低速通信與高并發(fā)之間的矛盾,而且增加了數(shù)據(jù)吞吐率和信道利用率。

2.5 串行化調(diào)度器和任務(wù)隊(duì)列

串口的使用具有互斥性,雖然Linux底層對(duì)此有排他性訪問限制,但是一次串口操作并不能滿足一個(gè)邏輯功能。為了實(shí)現(xiàn)原子操作,解決方案有二:一是,剖析Linux底層代碼,將這些特殊功能寫入驅(qū)動(dòng),將串口進(jìn)一步邏輯化,編寫自己的設(shè)備。為了降低開發(fā)精力,故選擇第二種方案,即在應(yīng)用層人為調(diào)度這些任務(wù)。

首先為原子操作建立基類,然后添加到任務(wù)隊(duì)列中,最后串行化調(diào)度器依照優(yōu)先級(jí)取出這些操作,通過統(tǒng)一抽象入口函數(shù)進(jìn)行處理。其工作流程如圖3所示。

2.6 其他模塊

UI采用派生自QWidget的豐富控件庫(kù)構(gòu)建,然后設(shè)置對(duì)應(yīng)的槽接收來定時(shí)器的信號(hào)進(jìn)行周期性更新。同時(shí)定時(shí)器也負(fù)責(zé)周期性更新離線寄存器的值。

最后網(wǎng)頁(yè)服務(wù)采用Nginx服務(wù)器,其小巧、占用資源少、并發(fā)性好特別適合本系統(tǒng)??蛻舳瞬捎肏TML5+Ajax給用戶提供美觀、便利的界面。

3 小結(jié)

智能家居的發(fā)展體現(xiàn)出了人們追求高質(zhì)量生活的趨勢(shì)。而其中智能網(wǎng)關(guān)的發(fā)展程度充分體現(xiàn)出整個(gè)智能家居的發(fā)展程度。如今許多產(chǎn)品多在智能家居中扮演子節(jié)點(diǎn),而多家產(chǎn)品又難以統(tǒng)一連接,加之網(wǎng)關(guān)標(biāo)準(zhǔn)的缺失使得其偏離了物聯(lián)網(wǎng)的主旨。而本系統(tǒng)的提出正好解決了這個(gè)問題,在種種近距無線離通信技術(shù)不成熟的今天通過充分利用嵌入式系統(tǒng)的資源和對(duì)軟件的合理設(shè)計(jì)完全可能設(shè)計(jì)出又“快”又“好”的智能系統(tǒng)。正如本文使用的433MHz模塊,其優(yōu)點(diǎn)不言而喻,若是用軟件手段規(guī)避其超低速的缺點(diǎn)它依舊能夠和主流技術(shù)抗衡。

因此,在通用型嵌入式硬件性能過剩的今天,如何合理組織軟件系統(tǒng)利用現(xiàn)有硬件條件構(gòu)建起完整的智能家居系統(tǒng)將是一個(gè)重要課題。

[責(zé)任編輯:許麗]

猜你喜歡
線程網(wǎng)關(guān)串口
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
基于改進(jìn)RPS技術(shù)的IPSEC VPN網(wǎng)關(guān)設(shè)計(jì)
淺談linux多線程協(xié)作
數(shù)字電源內(nèi)部數(shù)據(jù)傳輸?shù)拇谕ㄐ欧椒▽?shí)現(xiàn)
USB接口的多串口數(shù)據(jù)并行接收方法探索
LTE Small Cell網(wǎng)關(guān)及虛擬網(wǎng)關(guān)技術(shù)研究
應(yīng)對(duì)氣候變化需要打通“網(wǎng)關(guān)”
基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
一種實(shí)時(shí)高效的伺服控制網(wǎng)關(guān)設(shè)計(jì)
Linux線程實(shí)現(xiàn)技術(shù)研究
寿宁县| 新密市| 洛扎县| 定日县| 商南县| 米易县| 连平县| 边坝县| 龙口市| 武胜县| 九龙县| 萨嘎县| 朝阳区| 兴海县| 濮阳县| 石首市| 南宁市| 宜阳县| 多伦县| 巴楚县| 贵州省| 得荣县| 洪湖市| 龙南县| 晋州市| 凭祥市| 伊春市| 得荣县| 同江市| 大新县| 若羌县| 兰西县| 汉寿县| 千阳县| 宿州市| 盈江县| 双江| 阳泉市| 米脂县| 灌阳县| 新宁县|