基于以太網(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)生,使人們可以通過(guò)互聯(lián)網(wǎng)對(duì)家用電器進(jìn)行遠(yuǎn)程控制及安防報(bào)警,目前,很多智能家居產(chǎn)品還停留在電話語(yǔ)音控制或互聯(lián)網(wǎng)控制上,前者存在信息反饋及可視化的問(wèn)題,后者需要家庭網(wǎng)關(guān)的支持,隨著嵌入式網(wǎng)絡(luò)產(chǎn)品的問(wèn)世,通過(guò)嵌入式以太網(wǎng)控制芯片和pctn鏈路,實(shí)現(xiàn)家居數(shù)據(jù)的網(wǎng)絡(luò)共享和遠(yuǎn)程監(jiān)控已成為未來(lái)智能家居的發(fā)展趨勢(shì),本文對(duì)智能家居系統(tǒng)的遠(yuǎn)程控制技術(shù)進(jìn)行了分析,提出了基于以太網(wǎng)和pstn鏈路的雙冗余控制系統(tǒng),充分發(fā)揮了兩種網(wǎng)絡(luò)的優(yōu)勢(shì)互補(bǔ)。
1 系統(tǒng)功能與結(jié)構(gòu)
該系統(tǒng)以pc系列單片機(jī)pic16f877為核心,由防盜報(bào)警探測(cè)單元、繼電器輸出單元、pstn處理單元和以太網(wǎng)絡(luò)接口單元組成,防盜報(bào)警探測(cè)單元完成防火、防盜等信號(hào)的探測(cè)任務(wù),pstn處理單元負(fù)責(zé)電話鏈路的連接和語(yǔ)音處理,完成報(bào)警信息以及遠(yuǎn)程控制信息的解碼任務(wù),而以太網(wǎng)絡(luò)接口單元用來(lái)完成網(wǎng)絡(luò)接口任務(wù),負(fù)責(zé)網(wǎng)絡(luò)信息的雙向傳遞,系統(tǒng)結(jié)構(gòu)如圖1所示。
2 系統(tǒng)硬件構(gòu)成
2.1 單片機(jī)系統(tǒng)
單片機(jī)采用microchip公司的pic16f877。它是pic系列的中級(jí)產(chǎn)品,采用精簡(jiǎn)指令集和指令與數(shù)據(jù)分離的哈佛總線結(jié)構(gòu),功耗低,運(yùn)行速度高,代碼壓縮率高,與其他8位單片機(jī)相比具有較大的優(yōu)勢(shì),該單片機(jī)集成度高,外圍接口電路簡(jiǎn)單,內(nèi)部集成看門狗電路,a/d轉(zhuǎn)換電路、捕捉/比較/脈寬調(diào)制電路、主同步串行端口mssp模塊,并可以通過(guò)控制字方便的開(kāi)啟和關(guān)閉。
2.2 以太網(wǎng)絡(luò)接口設(shè)計(jì)
該電路主要由rj45接口、10m/100m耦合器隔離濾波器tg110-s050n2和以太網(wǎng)控制芯片rtl8019as組成。rtl8019as與單片機(jī)的接口電路如圖2所示。
rtl8019as是realtek公司全雙工以太網(wǎng)控制芯片,支持pnp自動(dòng)探測(cè),內(nèi)嵌16kb sram,用于收發(fā)緩沖。內(nèi)部集成了介質(zhì)訪問(wèn)控制子層(mac)和物理層的性能,兼容ethernetⅱ和ieee802.3的10base2和10baset。
rtl8019as是針對(duì)isa總線設(shè)計(jì)的,在pc上用來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)的物理層協(xié)議,主要包括網(wǎng)卡與網(wǎng)絡(luò)電纜的物理連接、介質(zhì)訪問(wèn)控制、數(shù)據(jù)幀的拆裝、幀的發(fā)送與接收、錯(cuò)誤校驗(yàn)、數(shù)據(jù)信號(hào)的編解碼、數(shù)據(jù)的串并行轉(zhuǎn)換等功能,這些設(shè)置需要對(duì)rtl8019as的若干寄存器進(jìn)行設(shè)置。
rtl8019as有三種工作方式:跳線方式,芯片的i/o和中斷由跳線決定,即插即用方式,軟件自行配置,免跳線方式,芯片的i/o和中斷由外接存儲(chǔ)器內(nèi)容決定,在嵌入式應(yīng)用場(chǎng)合,為降低成本,減小連接,采用第一種方式,所以jp引腳接高電平。
rtl8019as可以兼容8位和16位工作模式。圖2中,iocs168是16位i/o選擇引腳,如果rtl8019as上電復(fù)位時(shí)該引腳為低電平,rtl8019as將選擇8位模式;如果該引腳為高電平,將選擇16位工作模式,由于pic16f877單片機(jī)為8位數(shù)據(jù)總線,因此要工作在8位模式,所以該引腳接地。此時(shí),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個(gè)引腳tpin+,tpin-,tpout+和tpout-,分別和耦合隔離濾波器tg110-s050n2對(duì)應(yīng)輸入端口相連,最后與rj45接口相連。
24lc256是串行eeprom存儲(chǔ)器,采用cmos工藝,兼容i2c總線,這里通過(guò)pci內(nèi)部硬件接口模塊mssp(rc3、rc4引腳)與其相聯(lián),用來(lái)存儲(chǔ)web服務(wù)器的配置信息。
2.3 時(shí)鐘和wdt
為保證單片機(jī)時(shí)鐘精度,設(shè)計(jì)采用外接時(shí)鐘源從osc1引腳輸入[1],這里采用集成電路74f04,電阻和晶振構(gòu)成串聯(lián)諧振式時(shí)基振蕩器,如圖3所示。
pic16f877內(nèi)置的看門狗是一個(gè)擁有獨(dú)立時(shí)鐘源、計(jì)時(shí)周期約18ms、自由運(yùn)行的計(jì)時(shí)器,其工作無(wú)需任何外圍器件,單片機(jī)執(zhí)行程序期間,一旦wdt超時(shí)溢出,將使單片機(jī)產(chǎn)生復(fù)位操作,即使單片機(jī)處于睡眠狀態(tài),其溢出也將使單片機(jī)被喚醒,恢復(fù)正常運(yùn)行狀態(tài)。
看門狗的啟用通過(guò)系統(tǒng)配置字wdte位實(shí)現(xiàn),即wdte=1時(shí),看門狗將永久啟用。因此,需要在用戶主循環(huán)程序中將看門狗計(jì)時(shí)器清零(使用專用命令clrwdt)使它無(wú)法計(jì)時(shí)到最大值。
2.4 pstn處理單元
目前,在該方面的研究較多,相關(guān)元器件電路和理論比較成熟,本設(shè)計(jì)中該單元主要由mc145436雙音頻解碼芯片、apr9600語(yǔ)音錄放芯片,振鈴檢測(cè)和模擬摘掛機(jī)電路組成。
由電話線傳來(lái)的雙音多頻及直流混合信號(hào),經(jīng)耦合器濾除電話線上的直流信號(hào),然后送入放大器,再經(jīng)過(guò)耦合電容,送入mc145436雙音頻解碼芯片。接解碼后,dv信號(hào)變?yōu)楦唠娖?,同時(shí)輸出4位代碼,對(duì)因電話鍵盤上的按鍵。
為使用戶能夠通過(guò)電話鏈路及時(shí)了解受控家用電器的信息,使產(chǎn)品達(dá)到交互與智能化,系統(tǒng)采用apr9600語(yǔ)音錄放芯片完成的語(yǔ)音的錄放工作,該芯片具有多種手動(dòng)控制方式、分段管理方便、多段控制電路簡(jiǎn)單、采樣速度和錄放的時(shí)間可調(diào),支持串行和并行控制。本系統(tǒng)中,apr9600被設(shè)置成8段并行控制模式,即msel1、msel2和m8這3個(gè)引腳均設(shè)為高電平,當(dāng)re設(shè)為錄音狀態(tài),按下m1開(kāi)始錄第一段,松開(kāi)鍵錄音停止,按下m2鍵開(kāi)始錄第二段,松開(kāi)鍵停止,如此循環(huán),直到錄完8段,而相應(yīng)的語(yǔ)音播放則由軟件控制,sp+和sp-引腳與電話線相接,將語(yǔ)音信號(hào)反饋到聽(tīng)筒里。
我國(guó)公眾電話網(wǎng)的傳輸線為雙線模擬線路,采用直流環(huán)路信號(hào)方式,平時(shí)掛機(jī)時(shí)的饋電電壓一般為-48v,振鈴的鈴流電壓為75±15v,25赫茲的交流電壓,用戶的摘掛機(jī)狀態(tài)是通過(guò)對(duì)直流環(huán)路上的電流通斷來(lái)實(shí)現(xiàn)的。掛機(jī)狀態(tài)時(shí),直流環(huán)路斷開(kāi),饋電電流為0,摘機(jī)后,直流環(huán)路接通,饋電電流在20ma以上。
在設(shè)計(jì)振鈴檢測(cè)與模擬摘掛機(jī)電路中,為避免高壓振鈴信號(hào)機(jī)線路及其他高壓噪聲對(duì)解碼電路和語(yǔ)音信號(hào)的危害,系統(tǒng)采用專用芯片tca3385作為鈴流檢測(cè)核心部件。該芯片是一種性能穩(wěn)定的振鈴信號(hào)轉(zhuǎn)換、檢測(cè)器件,能夠承受較高電壓的沖擊,當(dāng)遠(yuǎn)程控制系統(tǒng)離線時(shí),只有該芯片與電話線相連,保證了系統(tǒng)的完全性。
3 軟件設(shè)計(jì)
系統(tǒng)的軟件部分主要分為:電話遠(yuǎn)程控制部分和網(wǎng)絡(luò)監(jiān)控部分。網(wǎng)絡(luò)監(jiān)控部分的核心和難點(diǎn)在于對(duì)網(wǎng)絡(luò)芯片的處理及tcp/ip協(xié)議棧的實(shí)現(xiàn),其中包括對(duì)rtl8019as的初始化、數(shù)據(jù)發(fā)送和接收,對(duì)rtl8019as的初始化主要是對(duì)其控制寄存器進(jìn)行初始化設(shè)置,這里用到其ne2000寄存器組,網(wǎng)卡的初始化首先要進(jìn)行網(wǎng)卡復(fù)位,復(fù)位完成后要對(duì)網(wǎng)卡的工作參數(shù)進(jìn)行設(shè)置,主要是對(duì)命令寄存器cr的設(shè)置,cr主要用于選擇寄存器頁(yè),啟動(dòng)或停止遠(yuǎn)程dma操作以及執(zhí)行命令,該寄存器內(nèi)容如表1所列[2]。
網(wǎng)卡數(shù)據(jù)的發(fā)送和接收是通過(guò)dma來(lái)讀寫網(wǎng)卡內(nèi)部的16kb ram來(lái)實(shí)現(xiàn)的。
以上對(duì)網(wǎng)絡(luò)芯片的處理完成了以太網(wǎng)的mac層和物理層的協(xié)議,要真正實(shí)現(xiàn)嵌入式系統(tǒng)與以太網(wǎng)上其他設(shè)備進(jìn)行通信, 需要在系統(tǒng)上實(shí)現(xiàn)tcp/ip協(xié)議,面向嵌入式應(yīng)用系統(tǒng)的tcp/ip協(xié)議,需要在不違背協(xié)議的標(biāo)準(zhǔn)的前提下對(duì)系統(tǒng)的tcp/ip協(xié)議加以剪裁、改寫和移植,使其占用的存儲(chǔ)空間盡可能小,這里使用微芯公司提供的tcp/ip協(xié)議棧,該協(xié)議棧支持arp、ip、tcp、icmp、http及ieee802.3協(xié)議,為嵌入式應(yīng)用系統(tǒng)提供低廉的網(wǎng)絡(luò)接入能力,對(duì)于數(shù)據(jù)量不大的系統(tǒng)較為實(shí)用。協(xié)議棧采用模塊化的設(shè)計(jì)思路,使用戶可以針對(duì)單個(gè)協(xié)議進(jìn)行修改,簡(jiǎn)化了協(xié)議的開(kāi)發(fā)過(guò)程。
評(píng)論