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