国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于電力線傳輸媒介的通信終端設計

發布時間:2010-11-17 17:31    發布者:conniede
關鍵詞: PC客戶端 , PLC , 服務器
電力線寬帶通信技術(PowerLine Communication 簡稱PLC)是近幾年來迅速發展起來的一種新興的利用電力線網絡作為載體的通信技術。運用嵌入式系統和電力線調制解調技術所構建的電力線網絡通訊終端,人們可以很方便地在辦公室、家庭內部、工業現場輕松地組建起局域網絡,成為智能家庭、分布式工業過程控制的一種很好的系統構造方式,具有廣闊的應用前景和市場。本應用系統利用電力線終端平臺和路由器構建電力線家庭內部網絡,實現家電、安全防范及三表的集中管理;對外通過寬帶連接Internet,遠程終端通過軟件就可以對家用電器進行狀態查詢和控制。具體的構建方式,在每個房間和客廳、廚房中安放一個電力線通訊終端平臺,掛載在電力線上形成家庭內部網絡,集中管理所有的電器,同時利用電力線調制解調模塊連接路由器,通過ADSL 上網的方式,把整個家庭內部網絡與Internet 交互,使得遠程終端可以通過Internet 網絡訪問家庭內部局域網。

一、系統的功能與設計

本應用系統實現的主要功能如下:

1) 實時監控客廳中的溫度,比如:在夏天如果超過33 度,系統會主動控制制冷空調打開;在冬天低于10 度則會打開制熱空調。

2) 住宅安防系統能夠通過連接電力線通訊終端平臺和與之互連的GPRS 上傳安保信息,比如:當發生有人非法進入住宅,系統會實時通過Internet 網絡向事先設置的報警接收終端,如110 報警臺、物業服務公司監控室、業主辦公室電話或業主手機等,發送預警信息。

3) 主人可以通過遠程終端訪問家用電器,并且實行遠程控制,比如開關日光燈、打開電飯煲,這樣下班回家后就可以吃到香噴噴的米飯。

為了實現上述功能,利用CPU 模塊上LPC2210 的GPIO(通用I/O)口連接繼電器控制家用電器的開關,比如:電飯煲、空調和日光燈等;利用芯片外部中斷連接安防系統,當系統報警時觸發外部中斷通知ARM CPU 使用GPRS 發送報警信息;同時,在硬件電路上安裝有LED 燈、A/D 轉換電路用以實時測試、顯示當前各種家用電器的運行狀態。該應用系統涉及到電力線通訊平臺的編程和PC 的編程兩方面。其中CPU 模塊(下位機)作為服務器端,使用TCP 作為通訊協議,提供服務。在服務器端收到服務請求后,解析請求,根據不同的請求做出相應的服務。而PC 作為客戶端發出服務請求,并且在收到服務器的響應后把具體內容在屏幕上顯示出來。在本例中,客戶端采用Qt 可視化編程環境。以下,首先介紹Qt 的相關知識,然后再具體分為服務器和客戶端具體的對該應用設計進行分析。

二、Qt 介紹

Qt 是一個全面的C++應用程序開發框架。它包含一個類庫和用于跨平臺及國際化開發的工具。Qt 是一個全面的開發框架,它包括廣泛的特征,性能與工具,可以開發高性能,跨平臺的客戶端,以及服務器端的應用程序。

同時Qt 對不同平臺(Unix, Windows, and Mac)的專門API 進行了封裝,如文件處理、網絡(操作,協議),進程處理、線程、數據庫訪問等。統一的跨平臺API 讓程序員們集中精力致力于可增值的技術革新,而無須擔心維護和管理現有應用程序多版本的基礎結構與界面。Qt 已由成千上成商業與開放源應用程序開發員,在多個操作系統與編譯器上進行了測試,奠定了高性能與資源性應用程序的基礎。Qt 無須“虛擬器”,模擬層或大容量的運行時間環境。它如本地化的應用程序一樣,直接寫入低級的圖形函數,因而Qt 程序能以源代碼速度執行。通過使用 Trolltech 的雙重授權模式,Qt 在商業支持并行之有效的框架下,呈現出開放源的所有優勢:開放源優勢包括一個活動的開放源開發員社團。由于Qt的不間斷開發,以及完整的代碼透明性,允許Qt 開發員進行“徹底深入地查看” ,進行自定義并擴展Qt 來滿足其獨特的需求。 商業產品的擔保包括客戶認可的產品支持,專門的Qt 開發小組,以及一個第三方工具、組件與服務的成長生態體系。

(1)信號

當某個信號其客戶或所有者發生內部狀態改變時,信號被一個對象發射。只有定義過這個信號的類及其派生類能夠發射這個信號。當一個信號被發射時,與其相關聯的槽將被立刻執行,就象一個正常的函數調用一樣。信號-槽機制完全獨立于 任何GUI 事件循環。只有當所有的槽返回以后發射函數(emit)才返回。 如果存在多個槽與某個信號相關聯,那么,當這個信號被發射時,這些槽將會一個接一個地 執行,但是它們執行的順序將會是隨機的、不確定的,我們不能人為地指定哪個先執行、哪個后執行。信號的聲明是在頭文件中進行的,Qt 的signals 關鍵字指出進入了信號聲明區,隨后即可 聲明自己的信號。

(2)槽

槽是普通的C++成員函數,可以被正常調用,它們唯一的特殊性就是很多信號可以與其相關聯。當與其關聯的信號被發射時,這個槽就會被調用。槽可以有參數,但槽的參數不能有缺省值。既然槽是普通的成員函數,因此與其它的函數一樣,它們也有存取權限。槽的存取權限決定了誰能夠與其相關聯。同普通的C++成員函數一樣,槽函數也分為三種類型,即public slots、private slots 和protected slots。

三、服務器端

在本應用中,電力線通訊終端平臺連接家用電器作為服務器端,在實時顯示用電器狀態的同時,需要構建一個TCP 服務器來為遠程終端提供服務,實現遠程控制和報警的功能。在基于QF 操作系統的網絡協議棧中,由QL4 接口類來實現對L4 協議(傳輸層)的解析和處理抽象。本應用中需要派生一個QTcp 類,實現傳輸層的TCP 協議。

處理抽象。本應用中需要派生一個QTcp 類,實現傳輸層的TCP 協議。一般基于 TCP 的網絡應用程序都要繼承QTcp 類,然后在ESTABLISHED 狀態中添加 子狀態完成特定的功能。在服務器端,利用量子框架實現一個QServer 類,是一個活動對象,繼承自QTcp 類。QServer 活動對象同客戶端TCP Socket 連接后,進入ESTABLISHED狀態中,通過調用Recvfrom 函數接收客戶端的請求,然后解析請求的服務類型,根據不同請求做出不同的服務。其軟件流程圖如圖1 所示:


圖 1 QServer 活動對象狀態流程圖

服務器端需要提供的具體服務包括:(1)當接收到客戶端打開家用電器的請求是,使用GPIO口發出電平信號,通過繼電器打開相關的電器。(2)監控客廳中的溫度,在夏天如果超過33 度,則會主動控制制冷空調打開。在冬天低于10度就會打開制熱空調。并及時地把空調開關的信息通過TCP 協議傳送給遠程的終端。(3)當有人觸發了安防系統,發生外部中斷時,使用服務器向客戶端發送報警信號。并通過GPRS給110 報警臺、物業服務公司監控室、業主辦公室電話或業主手機等,發送預警信息。

四、 PC 客戶端

PC 機作為遠程客戶端,主要的工作是向服務器發出服務請求,并且在收到服務器的響應或者報警信號后把收到的具體內容在屏幕上顯示以達到遠程控制和報警的功能。在本例中,我采用的是Qt 的可視化編程環境。以下介紹客戶端的具體功能以及實現:在客戶端可視化界面上按下日光燈或者電飯煲按鈕,就可以向服務器端發送一個開關家用電器的請求,在服務器端收到請求后就會去執行;同理,按下A/D 按鈕,就可以發送一個讀取A/D 的請求,在收到服務器端采集的A/D 數值后,客戶端就會在屏幕上顯示;溫度的測量則是每隔兩秒就會發送一個請求,讀取當前的溫度,顯示在屏幕上,并且判斷是否要打開空調,并從服務器端讀取其狀態信息,更新空調的開關狀態欄,顯示在文本框中;當服務器端安防系統檢測到有人入侵時,就會向客戶端發送報警信號,客戶端需要相應修改當前的安防系統狀態為報警。

首先使用Qt 的工具Qt Designer 設計界面。然后進入具體的客戶端編程階段,構造一個窗體類為TcpClient 類,具體的軟件編寫如下:

TcpClient::TcpClient(QWidget *parent)

: QWidget(parent)

{

ui.setupUi(this);

adsocket= new QTcpSocket(this); //用以傳輸A/D數據的TCP通道

tempsocket= new QTcpSocket(this); //用以傳輸溫度數據的TCP通道

applincesocket= new QTcpSocket(this); //用以控制家用電器的TCP通道

securitysocket = new QTcpSocket(this); //用以安防系統報警的TCP通道

QTimer *temptimer = new QTimer(this); //2S的定時器

connect(temptimer,SIGNAL(timeout()),this,SLOT(temp_update()));

temptimer->start(2000);

connect( adsocket,SIGNAL( connected() ),this, SLOT( ad_request() ) );

connect( adsocket,SIGNAL( readyRead() ), this, SLOT( ad_readresult() ) );

connect( tempsocket,SIGNAL( connected() ),this,SLOT( lm_request() ) );

connect( tempsocket,SIGNAL( readyRead() ),this,SLOT( lm_readresult() ) );

connect(appliancesocket,SIGNAL( connected() ), this,SLOT( appliance_request() ) );

connect(securitysocket,SIGNAL( readyRead() ),this,SLOT( security_readresult() ) );

}

動態分配四個QTcpSocket(Qt 內部對于TCP 協議的封裝類)對象,分別用該類的對象指針adsocket、tempsocket、appliancesocket、securitysocket 來指向這四個對象。然后定義一個QTimer對象,用來實現2 秒的定時。接著對一些信號和槽進行連接,從而完成各個組件之間的通訊,其中: QTimer 對象的timeout 信號和temp_update()槽連接、adsocket 對象的connected 信號和ad_request()連接,adsocket 對象的readyRead 信號和ad_readresult()槽。同理連接其他的幾個QTckSocket 對象的信號和槽。

以下,具體描述如何實現溫度檢測和空調自動控制的功能(其他功能的實現類似,就不贅述):

(1)定時器每隔2S 觸發一次,客戶端使用tempsocket 連接服務器端后發送測溫請求。

(2)接收到服務器的溫度數據后在界面上顯示,并且根據要求決定是否需要啟動空調。

(3)利用appliancesocket 發送開啟或者關閉空調的命令。并根據服務器端的執行結果修改空調開關狀態欄顯示。

五、結論

在實際的測試中,服務器端運行在實驗室,連接有日光燈、電飯煲和空調。客戶端運行在寢室中。本應用在實現所有功能的基礎上,電力線終端作為服務器連續開機一周,并進行高流量的負荷測試,能夠穩定運行,所有功能均表現正常,沒有發生故障。從而驗證了本終端的穩定性和該智能家居應用的可行性。
本文地址:http://m.qingdxww.cn/thread-40280-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 無線充電基礎知識及應用培訓教程3
  • 無線充電基礎知識及應用培訓教程2
  • 想要避免發生災難,就用MPLAB® SiC電源仿真器!
  • 基于CEC1712實現的處理器SPI FLASH固件安全彈性方案培訓教程
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 1024亚洲精品国产 | 1024亚洲 | 国产91av视频 | 日韩aⅴ片 | 国产在线播放91 | 日韩欧美在线免费观看 | 三分野电视剧手机免费观看 | 亚洲精品成人久久久影院 | 日本韩一级二级三级 | 免费羞羞网站视频 | 国产成人a毛片 | 亚欧在线视频 | 国产精品资源在线观看网站 | 免费观看情趣v视频网站 | 日日夜夜噜噜噜 | 成人在线不卡 | 亚洲人成在线影院 | 国产成人最新毛片基地 | 国产a不卡 | 国产精品久久精品牛牛影视 | 99视频精品全部国产盗摄视频 | 久久久精品视频免费观看 | 国产午夜精品理论片在线 | 成人午夜视频在线观 | 国产精品亚洲高清一区二区 | 欧美性受一区二区三区 | 肉大捧一进一出视频免费播放 | 91视频下载入口 | 一区国严二区亚洲三区 | 99久久精品免费视频 | 亚洲欧美一区二区三区二厂 | 羞羞午夜 | 国产福利小视频在线播放观看 | 久久久久久国产精品视频 | 97爱sese| 五月天中文字幕 | 国产免费久久精品99 | 逆天邪神第一季全集免费观看 | 久久成人激情视频 | 99精品网站 | 天天干在线免费视频 |