基于電力線傳輸媒介的通信終端設計
摘要:本文開發(fā)一種基于電力線傳輸媒介的數(shù)據(jù)通信終端,該系統(tǒng)完全兼容HomePlug 標準,具有成本低、速度高、保密性好的諸多優(yōu)勢,能夠用于構(gòu)建電力線網(wǎng)絡,實現(xiàn)諸如視頻點播、VoIP、遠程監(jiān)控等數(shù)字化、智能化系統(tǒng)的高速信息交互。網(wǎng)絡終端可以完成電力線數(shù)據(jù)包和以太網(wǎng)數(shù)據(jù)包的轉(zhuǎn)換,因此便于如同開發(fā)一般以太網(wǎng)應用系統(tǒng)一樣地實現(xiàn)電力線通信的應用系統(tǒng)開發(fā)。
本文引用地址:http://m.butianyuan.cn/article/180293.htm電力線寬帶通信技術(PowerLine Communication 簡稱PLC)是近幾年來迅速發(fā)展起來的一種新興的利用電力線網(wǎng)絡作為載體的通信技術。運用嵌入式系統(tǒng)和電力線調(diào)制解調(diào)技術所構(gòu)建的電力線網(wǎng)絡通訊終端,人們可以很方便地在辦公室、家庭內(nèi)部、工業(yè)現(xiàn)場輕松地組建起局域網(wǎng)絡,成為智能家庭、分布式工業(yè)過程控制的一種很好的系統(tǒng)構(gòu)造方式,具有廣闊的應用前景和市場。本應用系統(tǒng)利用電力線終端平臺和路由器構(gòu)建電力線家庭內(nèi)部網(wǎng)絡,實現(xiàn)家電、安全防范及三表的集中管理;對外通過寬帶連接Internet,遠程終端通過軟件就可以對家用電器進行狀態(tài)查詢和控制。具體的構(gòu)建方式,在每個房間和客廳、廚房中安放一個電力線通訊終端平臺,掛載在電力線上形成家庭內(nèi)部網(wǎng)絡,集中管理所有的電器,同時利用電力線調(diào)制解調(diào)模塊連接路由器,通過ADSL 上網(wǎng)的方式,把整個家庭內(nèi)部網(wǎng)絡與Internet 交互,使得遠程終端可以通過Internet 網(wǎng)絡訪問家庭內(nèi)部局域網(wǎng)。
一、系統(tǒng)的功能與設計
本應用系統(tǒng)實現(xiàn)的主要功能如下:1) 實時監(jiān)控客廳中的溫度,比如:在夏天如果超過33 度,系統(tǒng)會主動控制制冷空調(diào)打開;在冬天低于10 度則會打開制熱空調(diào)。2) 住宅安防系統(tǒng)能夠通過連接電力線通訊終端平臺和與之互連的GPRS 上傳安保信息,比如:當發(fā)生有人非法進入住宅,系統(tǒng)會實時通過Internet 網(wǎng)絡向事先設置的報警接收終端,如110 報警臺、物業(yè)服務公司監(jiān)控室、業(yè)主辦公室電話或業(yè)主手機等,發(fā)送預警信息。3) 主人可以通過遠程終端訪問家用電器,并且實行遠程控制,比如開關日光燈、打開電飯煲,這樣下班回家后就可以吃到香噴噴的米飯。
為了實現(xiàn)上述功能,利用CPU 模塊上LPC2210 的GPIO(通用I/O)口連接繼電器控制家用電器的開關,比如:電飯煲、空調(diào)和日光燈等;利用芯片外部中斷連接安防系統(tǒng),當系統(tǒng)報警時觸發(fā)外部中斷通知ARM CPU 使用GPRS 發(fā)送報警信息;同時,在硬件電路上安裝有LED 燈、A/D 轉(zhuǎn)換電路用以實時測試、顯示當前各種家用電器的運行狀態(tài)。該應用系統(tǒng)涉及到電力線通訊平臺的編程和PC 的編程兩方面。其中CPU 模塊(下位機)作為服務器端,使用TCP 作為通訊協(xié)議,提供服務。在服務器端收到服務請求后,解析請求,根據(jù)不同的請求做出相應的服務。而PC 作為客戶端發(fā)出服務請求,并且在收到服務器的響應后把具體內(nèi)容在屏幕上顯示出來。在本例中,客戶端采用Qt 可視化編程環(huán)境。以下,首先介紹Qt 的相關知識,然后再具體分為服務器和客戶端具體的對該應用設計進行分析。
二、Qt 介紹
Qt 是一個全面的C++應用程序開發(fā)框架。它包含一個類庫和用于跨平臺及國際化開發(fā)的工具。Qt 是一個全面的開發(fā)框架,它包括廣泛的特征,性能與工具,可以開發(fā)高性能,跨平臺的客戶端,以及服務器端的應用程序。
同時Qt 對不同平臺(Unix, Windows, and Mac)的專門API 進行了封裝,如文件處理、網(wǎng)絡(操作,協(xié)議),進程處理、線程、數(shù)據(jù)庫訪問等。統(tǒng)一的跨平臺API 讓程序員們集中精力致力于可增值的技術革新,而無須擔心維護和管理現(xiàn)有應用程序多版本的基礎結(jié)構(gòu)與界面。Qt 已由成千上成商業(yè)與開放源應用程序開發(fā)員,在多個操作系統(tǒng)與編譯器上進行了測試,奠定了高性能與資源性應用程序的基礎。Qt 無須“虛擬器”,模擬層或大容量的運行時間環(huán)境。它如本地化的應用程序一樣,直接寫入低級的圖形函數(shù),因而Qt 程序能以源代碼速度執(zhí)行。通過使用 Trolltech 的雙重授權(quán)模式,Qt 在商業(yè)支持并行之有效的框架下,呈現(xiàn)出開放源的所有優(yōu)勢:開放源優(yōu)勢包括一個活動的開放源開發(fā)員社團。由于Qt的不間斷開發(fā),以及完整的代碼透明性,允許Qt 開發(fā)員進行“徹底深入地查看” ,進行自定義并擴展Qt 來滿足其獨特的需求。 商業(yè)產(chǎn)品的擔保包括客戶認可的產(chǎn)品支持,專門的Qt 開發(fā)小組,以及一個第三方工具、組件與服務的成長生態(tài)體系。
?。?)信號
當某個信號其客戶或所有者發(fā)生內(nèi)部狀態(tài)改變時,信號被一個對象發(fā)射。只有定義過這個信號的類及其派生類能夠發(fā)射這個信號。當一個信號被發(fā)射時,與其相關聯(lián)的槽將被立刻執(zhí)行,就象一個正常的函數(shù)調(diào)用一樣。信號-槽機制完全獨立于 任何GUI 事件循環(huán)。只有當所有的槽返回以后發(fā)射函數(shù)(emit)才返回。 如果存在多個槽與某個信號相關聯(lián),那么,當這個信號被發(fā)射時,這些槽將會一個接一個地 執(zhí)行,但是它們執(zhí)行的順序?qū)请S機的、不確定的,我們不能人為地指定哪個先執(zhí)行、哪個后執(zhí)行。信號的聲明是在頭文件中進行的,Qt 的signals 關鍵字指出進入了信號聲明區(qū),隨后即可 聲明自己的信號。
?。?)槽
槽是普通的C++成員函數(shù),可以被正常調(diào)用,它們唯一的特殊性就是很多信號可以與其相關聯(lián)。當與其關聯(lián)的信號被發(fā)射時,這個槽就會被調(diào)用。槽可以有參數(shù),但槽的參數(shù)不能有缺省值。既然槽是普通的成員函數(shù),因此與其它的函數(shù)一樣,它們也有存取權(quán)限。槽的存取權(quán)限決定了誰能夠與其相關聯(lián)。同普通的C++成員函數(shù)一樣,槽函數(shù)也分為三種類型,即public slots、private slots 和protected slots。
三、服務器端
在本應用中,電力線通訊終端平臺連接家用電器作為服務器端,在實時顯示用電器狀態(tài)的同時,需要構(gòu)建一個TCP 服務器來為遠程終端提供服務,實現(xiàn)遠程控制和報警的功能。在基于QF 操作系統(tǒng)的網(wǎng)絡協(xié)議棧中,由QL4 接口類來實現(xiàn)對L4 協(xié)議(傳輸層)的解析和處理抽象。本應用中需要派生一個QTcp 類,實現(xiàn)傳輸層的TCP 協(xié)議。
評論