摘要:介紹一種基于DTMF(雙音多頻)信號和RS485的遠(yuǎn)程智能控制器。它具有振鈴檢測和模擬摘機(jī)、DTMF信號解調(diào)、紅外遙控編碼自舉學(xué)習(xí)和發(fā)射多路紅外遙控信號的功能。本文對該控制器的組成、硬件配置、軟件設(shè)計(jì)、工作原理、功能以及技術(shù)性能進(jìn)行了詳細(xì)論述。該控制器在遠(yuǎn)程控制的數(shù)據(jù)終端系統(tǒng)中使用后,證明其方便、可靠和有實(shí)用價值。
關(guān)鍵詞:DTMF RS485 紅外遙控 MT8870
1 概述
隨著工業(yè)自動化水平的進(jìn)一步提高,在許多無人看守的工業(yè)現(xiàn)場,希望能夠?qū)υO(shè)備進(jìn)行遠(yuǎn)程的控制和監(jiān)測,以及對遠(yuǎn)程數(shù)據(jù)終端進(jìn)行設(shè)置和數(shù)據(jù)采集。電話的逐漸普及使得在工業(yè)現(xiàn)場安裝電話成為可能。根據(jù)這種情況,我們設(shè)計(jì)并制作了一種基于DTMF(Dual Tone Multiple Frequency)的多路電話控制器,只要將電話控制器并接在工業(yè)現(xiàn)場的電話線上,就可以通過它隨著時隨地用電話對設(shè)備進(jìn)行開關(guān)控制、數(shù)據(jù)采集、遠(yuǎn)程設(shè)置等[1]。另外,社會經(jīng)濟(jì)水平的不斷提高已經(jīng)開始促使家庭自動化,人們希望能夠隨時隨地對家庭安全實(shí)行遠(yuǎn)程監(jiān)控以及對家電實(shí)行遠(yuǎn)程控制。由于電話線路是全國聯(lián)網(wǎng)的,所以遙控距離可以跨省市。該控制器采用單片機(jī)和語音芯片,可利用語音對于不同操作進(jìn)行提示并可反饋受控方狀態(tài)的信息。
2 控制的組成及原理
2.1 控制器的工作原理
整機(jī)電路如圖1所示,包括:振鈴檢測與模擬摘機(jī)電路,由MT8870等組成的解碼電路,紅外生成發(fā)射電路、八路開關(guān)量輸入和八路開關(guān)量輸出控制電路,語音控制和錄放電路,由DS12887組成的時鐘電路,RS232或RS485串行通信電路,外加鍵盤和液晶顯示構(gòu)成的紅外信號自學(xué)習(xí)電路。
該控制器的工作原理:當(dāng)需要遠(yuǎn)程控制時,撥打相應(yīng)的電話號碼,振鈴檢測電路檢測鈴流信號。振鈴次數(shù)達(dá)到5次后(次數(shù)可以通過軟件任意設(shè)定),單片機(jī) 89C51控制實(shí)現(xiàn)電路自動摘機(jī),并啟動語音電路發(fā)出提示輸入密碼。密碼經(jīng)接收電路接收并輸入到單片機(jī)中進(jìn)行核對,核對正確則提示輸入控制命令鍵,單片機(jī)對命令進(jìn)行分析判斷,并根據(jù)命令要求完成相應(yīng)的操作。當(dāng)輸入“*”鍵后,自動實(shí)現(xiàn)電話掛機(jī),從而完成一次遠(yuǎn)程控制。摘機(jī)的30s內(nèi)若不輸入命令或密碼,電路會自動掛機(jī);同樣,若輸入按鍵超過8個鍵也自動掛機(jī)。
該控制器還可以通過RS485串行通信電路實(shí)現(xiàn)遠(yuǎn)程信息采集,控制若干開關(guān)量和具有紅外遙控功能的設(shè)備;還可通過遠(yuǎn)程電話或計(jì)算機(jī)設(shè)置定時開機(jī)或關(guān)機(jī)等功能。
2.2.1 振鈴檢測、摘機(jī)電路
振鈴檢測電路是由光耦T521-1和74LS123構(gòu)成的。當(dāng)有電話呼入時,25Hz、90V振鈴信號由整流后光電隔離輸出脈沖信號。該脈沖輸入到 74LS123中,74LS123將小脈沖整形成大方波信號,送入單片機(jī)中計(jì)數(shù)。當(dāng)計(jì)數(shù)達(dá)到設(shè)定次數(shù)時,單片機(jī)控制輸出高電平,使三極管導(dǎo)通,從而繼電器吸合,完成模擬摘機(jī)動作。由于語音信號和雙音頻信號電壓遠(yuǎn)低于振鈴信號電壓,因此該電路不會引起誤判。振鈴檢測、摘機(jī)電路如圖2所示。
2.2.2 雙音多頻解調(diào)電路
MT8870 是DTMF信號接收處理的專用芯片,其功能是將接收到的DTMA信號解碼為4位二制碼,由Q1~Q4直接輸出。模擬摘機(jī)以后,雙音多頻信號經(jīng)過耦合隔離變壓器耦合入MT8870輸入腳。該雙音頻信號先經(jīng)MT8870內(nèi)部的撥號音濾波器濾除撥號音信號后,再經(jīng)前置放大器送入雙音頻濾波器,將雙音頻信號按高、低頻信號分開,又經(jīng)高、低頻濾波器、幅度檢測器送入譯碼電路,最后從MT8870的數(shù)據(jù)輸出端輸出相應(yīng)的編碼。為了獲取有效的數(shù)據(jù),MT8870的STD 接AT89C51的INT0。當(dāng)STD電平由低變高,經(jīng)AT89C51檢測后通過P1口總線接收有效撥號鍵值碼。雙音多頻解調(diào)電路如圖3所示。
2.2.3 語音控制與語音錄放電路
語音控制與語音錄放電路如圖4所示,采用ISD2590芯片作數(shù)字錄音器件。錄放時間可達(dá)90s,可以連續(xù)錄放也可以通過地址線A0~A9選擇分段錄放。語音芯片ISD2590的片選輸入端CE為低脈沖時啟動放音周期。放音不隨CE電平的返高而結(jié)束。CE信號的下降沿啟動錄音周期。PD腳為高時進(jìn)入低功耗狀態(tài)。P/R輸入端為高電平時選定放音操作,低電平時選定錄音操作。相應(yīng)語音段的播放由軟件來實(shí)現(xiàn)。ISD2590的SP+、SP-端的信號送至音頻放大電路LM386進(jìn)行放大,再經(jīng)隔離變壓器耦合至電話回路,用戶可以從電話里聽到系統(tǒng)控制語音芯片發(fā)出的提示,以進(jìn)行相應(yīng)的操作。
2.2.4 紅外發(fā)射電路
由時基電路555構(gòu)成產(chǎn)生38.5kHz脈沖振蕩電路,用GAL16V8邏輯陣列器件實(shí)現(xiàn)輸出通路選擇并疊加輸出38.5kHz載波信號作控制輸出,經(jīng)八路驅(qū)動器2803驅(qū)動后發(fā)射出去。單片機(jī)89C51的P1.4、P1.5、P1.6作為GAL16V8的三個通道選擇輸入,P1.7作為使能控制。當(dāng) P1.7為高電平時,禁止輸出;當(dāng)P1.7為低電平時,允許輸出。紅外脈沖串寬度和間隔由89C51單片機(jī)的定時器T0控制。為提高抗干擾能力和進(jìn)行可靠的通信,有些遙控器在發(fā)送二進(jìn)制編碼前要插入各種各樣的引導(dǎo)碼,以便接收器容易識別。為了區(qū)分不同類型的遙控器,還需要發(fā)送地址碼和校驗(yàn)碼。另外,不同遙控器所發(fā)送的碼長也不相同。紅外發(fā)射電路如圖5所示。
2.2.5 其它電路
控制器還增加了實(shí)時時鐘電路DS12887,可給系統(tǒng)提供標(biāo)準(zhǔn)空間。同時控制器具備定時控制功能。
控制器還可通過RS485遠(yuǎn)程通信接口與上位計(jì)算機(jī)進(jìn)行通信,可設(shè)置定時時間、不同類型的紅外信號編碼等,鄧可用計(jì)算機(jī)對控制器發(fā)出命令實(shí)現(xiàn)遠(yuǎn)程控制和讀取采集的信息。
3 軟件設(shè)計(jì)
3.1 89C51A的程序
(1)振鈴檢測和模擬摘機(jī)程序
根據(jù)軟件設(shè)定的振鈴呼叫次數(shù),進(jìn)行檢測比較。當(dāng)?shù)竭_(dá)設(shè)定值時,啟動摘機(jī)和語音提示。
(2)DTMF接收和命令解釋程序
這段程序主要是模擬摘機(jī)后,單片機(jī)接收由MT8870輸出的數(shù)據(jù),并判斷是否結(jié)束。輸入結(jié)束后,分析所得到的數(shù)據(jù)和執(zhí)行相應(yīng)的操作。
(3)串行通信程序
主要接收上位機(jī)的命令和執(zhí)行相應(yīng)操作。
(4)語音錄放和控制程序。
3.2 89C51B的程序
(1)紅外接收程序
用INT0作為輸入引腳,當(dāng)有下降沿時產(chǎn)生中斷,啟動定時器T0開始計(jì)時。當(dāng)INT0由低到高時,停止計(jì)時,讀計(jì)數(shù)值并存入存儲器后再啟動定時。
(2)自學(xué)習(xí)紅外編碼處理分析程序
根據(jù)存儲器中存放紅外信號的高電平和低電平的時間值,判斷是否有引導(dǎo)碼。若有,找出引腳碼的高電平和低電平的時間間隔值。通過比較,計(jì)算機(jī)信息碼元“0”和“1”的時間間隔t、t0、t1,再找出地址碼、信息碼并存入存儲器。
2個單片機(jī)之間通過INT1產(chǎn)生中斷,讀取數(shù)據(jù)。并行通信格式為:引導(dǎo)碼,字節(jié)數(shù)N,命令碼,數(shù)據(jù)1,數(shù)據(jù)2……數(shù)據(jù)N-2,校驗(yàn)碼。
(4)鍵盤掃描和液晶顯示程序
(5)紅外發(fā)射程序
紅外輸出信號的實(shí)現(xiàn)程序:根據(jù)所要控制的命令,選擇相應(yīng)的通道后,將遙控控制碼從EEPROM中取出送入移位緩沖區(qū),判斷是否需要引導(dǎo)碼。而后移位遙控控制碼,當(dāng)移位為“1”時,先使P1.4為高,時間間隔為t,然后再使P1.4為低,時間間隔為t1。發(fā)送多少個“1”和“0”是根據(jù)遙控控制碼的長短而定的;何時發(fā)出“1”和“0”,由地址碼和控制碼來決定。
結(jié)束語
本系統(tǒng)具有很強(qiáng)的適應(yīng)性,可以遠(yuǎn)程對工業(yè)現(xiàn)場的設(shè)備、各類家用電器進(jìn)行控制,并且在安裝時不需對已有的工業(yè)現(xiàn)場或住宅的布線作任何改動,安裝和維護(hù)方便,成本低,因而具有較高的實(shí)用價值。除此以外,本系統(tǒng)的操作方便簡單,用戶通過電話機(jī)(無論是固定電話還是移動電話),就可以輸入精簡的指令和修改密碼;還可以根據(jù)語音提示進(jìn)行操作,所以該系統(tǒng)具有較高的推廣應(yīng)用價值。





