基于以太網(wǎng)和PSTN的智能家居遠(yuǎn)程控制系統(tǒng)
隨著互聯(lián)網(wǎng)的日益普及,信息共享程度在不斷提高,各種儀器儀表,家電設(shè)備以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制正慢慢走向網(wǎng)絡(luò)化。數(shù)字化家居系統(tǒng)的產(chǎn)生,使人們可以通過互聯(lián)網(wǎng)對家用電器進(jìn)行遠(yuǎn)程控制及安防報警,目前,很多智能家居產(chǎn)品還停留在電話語音控制或互聯(lián)網(wǎng)控制上,前者存在信息反饋及可視化的問題,后者需要家庭網(wǎng)關(guān)的支持,隨著嵌入式網(wǎng)絡(luò)產(chǎn)品的問世,通過嵌入式以太網(wǎng)控制芯片和pctn鏈路,實現(xiàn)家居數(shù)據(jù)的網(wǎng)絡(luò)共享和遠(yuǎn)程監(jiān)控已成為未來智能家居的發(fā)展趨勢,本文對智能家居系統(tǒng)的遠(yuǎn)程控制技術(shù)進(jìn)行了分析,提出了基于以太網(wǎng)和pstn鏈路的雙冗余控制系統(tǒng),充分發(fā)揮了兩種網(wǎng)絡(luò)的優(yōu)勢互補。
1 系統(tǒng)功能與結(jié)構(gòu)
該系統(tǒng)以pc系列單片機pic16f877為核心,由防盜報警探測單元、繼電器輸出單元、pstn處理單元和以太網(wǎng)絡(luò)接口單元組成,防盜報警探測單元完成防火、防盜等信號的探測任務(wù),pstn處理單元負(fù)責(zé)電話鏈路的連接和語音處理,完成報警信息以及遠(yuǎn)程控制信息的解碼任務(wù),而以太網(wǎng)絡(luò)接口單元用來完成網(wǎng)絡(luò)接口任務(wù),負(fù)責(zé)網(wǎng)絡(luò)信息的雙向傳遞,系統(tǒng)結(jié)構(gòu)如圖1所示。

2 系統(tǒng)硬件構(gòu)成
2.1 單片機系統(tǒng)
單片機采用microchip公司的pic16f877。它是pic系列的中級產(chǎn)品,采用精簡指令集和指令與數(shù)據(jù)分離的哈佛總線結(jié)構(gòu),功耗低,運行速度高,代碼壓縮率高,與其他8位單片機相比具有較大的優(yōu)勢,該單片機集成度高,外圍接口電路簡單,內(nèi)部集成看門狗電路,a/d轉(zhuǎn)換電路、捕捉/比較/脈寬調(diào)制電路、主同步串行端口mssp模塊,并可以通過控制字方便的開啟和關(guān)閉。
2.2 以太網(wǎng)絡(luò)接口設(shè)計
該電路主要由rj45接口、10m/100m耦合器隔離濾波器tg110-s050n2和以太網(wǎng)控制芯片rtl8019as組成。rtl8019as與單片機的接口電路如圖2所示。

rtl8019as是realtek公司全雙工以太網(wǎng)控制芯片,支持pnp自動探測,內(nèi)嵌16kb sram,用于收發(fā)緩沖。內(nèi)部集成了介質(zhì)訪問控制子層(mac)和物理層的性能,兼容ethernetⅱ和ieee802.3的10base2和10baset。
rtl8019as是針對isa總線設(shè)計的,在pc上用來實現(xiàn)網(wǎng)絡(luò)的物理層協(xié)議,主要包括網(wǎng)卡與網(wǎng)絡(luò)電纜的物理連接、介質(zhì)訪問控制、數(shù)據(jù)幀的拆裝、幀的發(fā)送與接收、錯誤校驗、數(shù)據(jù)信號的編解碼、數(shù)據(jù)的串并行轉(zhuǎn)換等功能,這些設(shè)置需要對rtl8019as的若干寄存器進(jìn)行設(shè)置。
rtl8019as有三種工作方式:跳線方式,芯片的i/o和中斷由跳線決定,即插即用方式,軟件自行配置,免跳線方式,芯片的i/o和中斷由外接存儲器內(nèi)容決定,在嵌入式應(yīng)用場合,為降低成本,減小連接,采用第一種方式,所以jp引腳接高電平。
rtl8019as可以兼容8位和16位工作模式。圖2中,iocs168是16位i/o選擇引腳,如果rtl8019as上電復(fù)位時該引腳為低電平,rtl8019as將選擇8位模式;如果該引腳為高電平,將選擇16位工作模式,由于pic16f877單片機為8位數(shù)據(jù)總線,因此要工作在8位模式,所以該引腳接地。此時,rtl8919as只需8根數(shù)據(jù)線sd0-sd7。
pic16f877的b口rb0-rb4與rtl8019as的低五位地址線sa0-sa4相連;re0-re2作為控制線分別與iorb、iowr、reset相連;d口與rtl8019as的低8位數(shù)據(jù)線sd0-sd7相連。
rtl8019as的4個引腳tpin+,tpin-,tpout+和tpout-,分別和耦合隔離濾波器tg110-s050n2對應(yīng)輸入端口相連,最后與rj45接口相連。
24lc256是串行eeprom存儲器,采用cmos工藝,兼容i2c總線,這里通過pci內(nèi)部硬件接口模塊mssp(rc3、rc4引腳)與其相聯(lián),用來存儲web服務(wù)器的配置信息。
2.3 時鐘和wdt
為保證單片機時鐘精度,設(shè)計采用外接時鐘源從osc1引腳輸入[1],這里采用集成電路74f04,電阻和晶振構(gòu)成串聯(lián)諧振式時基振蕩器,如圖3所示。

pic16f877內(nèi)置的看門狗是一個擁有獨立時鐘源、計時周期約18ms、自由運行的計時器,其工作無需任何外圍器件,單片機執(zhí)行程序期間,一旦wdt超時溢出,將使單片機產(chǎn)生復(fù)位操作,即使單片機處于睡眠狀態(tài),其溢出也將使單片機被喚醒,恢復(fù)正常運行狀態(tài)。
看門狗的啟用通過系統(tǒng)配置字wdte位實現(xiàn),即wdte=1時,看門狗將永久啟用。因此,需要在用戶主循環(huán)程序中將看門狗計時器清零(使用專用命令clrwdt)使它無法計時到最大值。
2.4 pstn處理單元
目前,在該方面的研究較多,相關(guān)元器件電路和理論比較成熟,本設(shè)計中該單元主要由mc145436雙音頻解碼芯片、apr9600語音錄放芯片,振鈴檢測和模擬摘掛機電路組成。
由電話線傳來的雙音多頻及直流混合信號,經(jīng)耦合器濾除電話線上的直流信號,然后送入放大器,再經(jīng)過耦合電容,送入mc145436雙音頻解碼芯片。接解碼后,dv信號變?yōu)楦唠娖剑瑫r輸出4位代碼,對因電話鍵盤上的按鍵。
為使用戶能夠通過電話鏈路及時了解受控家用電器的信息,使產(chǎn)品達(dá)到交互與智能化,系統(tǒng)采用apr9600語音錄放芯片完成的語音的錄放工作,該芯片具有多種手動控制方式、分段管理方便、多段控制電路簡單、采樣速度和錄放的時間可調(diào),支持串行和并行控制。本系統(tǒng)中,apr9600被設(shè)置成8段并行控制模式,即msel1、msel2和m8這3個引腳均設(shè)為高電平,當(dāng)re設(shè)為錄音狀態(tài),按下m1開始錄第一段,松開鍵錄音停止,按下m2鍵開始錄第二段,松開鍵停止,如此循環(huán),直到錄完8段,而相應(yīng)的語音播放則由軟件控制,sp+和sp-引腳與電話線相接,將語音信號反饋到聽筒里。
我國公眾電話網(wǎng)的傳輸線為雙線模擬線路,采用直流環(huán)路信號方式,平時掛機時的饋電電壓一般為-48v,振鈴的鈴流電壓為75±15v,25赫茲的交流電壓,用戶的摘掛機狀態(tài)是通過對直流環(huán)路上的電流通斷來實現(xiàn)的。掛機狀態(tài)時,直流環(huán)路斷開,饋電電流為0,摘機后,直流環(huán)路接通,饋電電流在20ma以上。
在設(shè)計振鈴檢測與模擬摘掛機電路中,為避免高壓振鈴信號機線路及其他高壓噪聲對解碼電路和語音信號的危害,系統(tǒng)采用專用芯片tca3385作為鈴流檢測核心部件。該芯片是一種性能穩(wěn)定的振鈴信號轉(zhuǎn)換、檢測器件,能夠承受較高電壓的沖擊,當(dāng)遠(yuǎn)程控制系統(tǒng)離線時,只有該芯片與電話線相連,保證了系統(tǒng)的完全性。
3 軟件設(shè)計
系統(tǒng)的軟件部分主要分為:電話遠(yuǎn)程控制部分和網(wǎng)絡(luò)監(jiān)控部分。網(wǎng)絡(luò)監(jiān)控部分的核心和難點在于對網(wǎng)絡(luò)芯片的處理及tcp/ip協(xié)議棧的實現(xiàn),其中包括對rtl8019as的初始化、數(shù)據(jù)發(fā)送和接收,對rtl8019as的初始化主要是對其控制寄存器進(jìn)行初始化設(shè)置,這里用到其ne2000寄存器組,網(wǎng)卡的初始化首先要進(jìn)行網(wǎng)卡復(fù)位,復(fù)位完成后要對網(wǎng)卡的工作參數(shù)進(jìn)行設(shè)置,主要是對命令寄存器cr的設(shè)置,cr主要用于選擇寄存器頁,啟動或停止遠(yuǎn)程dma操作以及執(zhí)行命令,該寄存器內(nèi)容如表1所列[2]。

網(wǎng)卡數(shù)據(jù)的發(fā)送和接收是通過dma來讀寫網(wǎng)卡內(nèi)部的16kb ram來實現(xiàn)的。
以上對網(wǎng)絡(luò)芯片的處理完成了以太網(wǎng)的mac層和物理層的協(xié)議,要真正實現(xiàn)嵌入式系統(tǒng)與以太網(wǎng)上其他設(shè)備進(jìn)行通信, 需要在系統(tǒng)上實現(xiàn)tcp/ip協(xié)議,面向嵌入式應(yīng)用系統(tǒng)的tcp/ip協(xié)議,需要在不違背協(xié)議的標(biāo)準(zhǔn)的前提下對系統(tǒng)的tcp/ip協(xié)議加以剪裁、改寫和移植,使其占用的存儲空間盡可能小,這里使用微芯公司提供的tcp/ip協(xié)議棧,該協(xié)議棧支持arp、ip、tcp、icmp、http及ieee802.3協(xié)議,為嵌入式應(yīng)用系統(tǒng)提供低廉的網(wǎng)絡(luò)接入能力,對于數(shù)據(jù)量不大的系統(tǒng)較為實用。協(xié)議棧采用模塊化的設(shè)計思路,使用戶可以針對單個協(xié)議進(jìn)行修改,簡化了協(xié)議的開發(fā)過程。
評論