基于單片機(jī)的家用電話遠(yuǎn)程遙控裝置設(shè)計
摘要 設(shè)計并實現(xiàn)了一種基于電話通道的家用電器遙控裝置。該裝置采用單片機(jī)智能控制,利用不同的提示音達(dá)到對不同操作的提示和受控方狀態(tài)的信息反饋,從而使操作者能及時了解受控方信息,使產(chǎn)品達(dá)到交互式與智能化。經(jīng)過實際測試:該裝置經(jīng)濟(jì)、可靠,符合未來家電的智能化發(fā)展方向,具有一定的實用價值。
關(guān)鍵詞 遠(yuǎn)程遙控;單片機(jī);家用電器;MT8870
文中設(shè)計的是基于單片機(jī)的家用電話遠(yuǎn)程遙控方案,采用ISD1420芯片進(jìn)行語音處理,使操作有語音提示,操作界面友好。電話遙控與常規(guī)遙控方式相比,不需進(jìn)行專門布線,不占用無線電頻率資源,避免了電磁污染,且由于電話線路各地聯(lián)網(wǎng),可以充分利用現(xiàn)有的電話網(wǎng)。
1 系統(tǒng)硬件設(shè)計
設(shè)計以高速單片機(jī)STC11F40XE為核心器件,STC11F40XE有40 kB的儲存空間,速度比STC89C51單片機(jī)快8~10倍,可充分利用單片機(jī)的片內(nèi)外資源。系統(tǒng)主要有振鈴檢測電路、雙音多頻電路和ISD1420語音電路等組成。系統(tǒng)硬件組成框圖如圖1所示。
1.1 振鈴檢測電路
振鈴檢測電路如圖2所示,當(dāng)用戶被呼叫時,電話交換機(jī)發(fā)來鈴流信號。振鈴為48±3 V的正弦波,諧鈴失真不大于10%,電壓有效值90±15 V。振鈴以5 s為周期,即1 s送,4 s斷。輸入至光電耦合器。經(jīng)過光耦的隔離轉(zhuǎn)換,從光電耦合器輸出的波形是時通時斷的近似正弦波,經(jīng)反向器及RC回路進(jìn)行濾波輸出方波信號。方波信號輸入至單片機(jī)的T1計數(shù)器外部管腳,完成整個振鈴音檢測和計數(shù)的過程。
1.2 雙音多頻電路
MT8870是Mitei公司生產(chǎn)的一種功能較強(qiáng)的DTMF發(fā)送與接收器,體積小、抗干擾性強(qiáng),晶振頻率為3.58 MHz,輸出為二進(jìn)制編碼信號,便于與計算機(jī)連接,是目前國際流行的DTMF解碼器件。MT8870電路連接如圖3所示。
雙音多頻信號完成撥號的檢測解碼,解碼信號由MT8870的Q1~Q4輸出,送單片機(jī)識別和處理。例如撥動“1”號鍵,MT8870通過對電話網(wǎng)上的雙音多頻信號解碼,識別操作者的命令,從而實現(xiàn)對遠(yuǎn)程的控制。當(dāng)MT8870作為DTMF發(fā)送器時,數(shù)據(jù)總線Q1~Q4上4位二進(jìn)制碼被鎖存在發(fā)送數(shù)據(jù)寄存器中,發(fā)送的DTMF信號頻率由3.58MHz的晶振分頻產(chǎn)生。
1.3 ISD1420語音電路
ISD1420為美國ISD公司出品的單片語音錄放電路,由振蕩器、語音存儲單元、前置放大器、自動增益控制電路、抗干擾濾波器、輸出放大器組成。一個最小的錄放系統(tǒng)由一個麥克風(fēng)、一個喇叭、兩個按鈕、一個電源和少數(shù)電阻電容組成,電路如圖4所示。ISD1420是采用模擬存取技術(shù)集成的可反復(fù)錄放20 s的語音芯片,掉電語音不丟失,最大可分160段,最小每段語音長度為125 ms,每段語音都可由地址線控制輸出,每125 ms為一個地址,由A0~A7,8根地址線控制。用戶錄制的語音每段結(jié)束后芯片自動設(shè)有段結(jié)束標(biāo)志(EOM),芯片錄滿后設(shè)有溢出標(biāo)志(OVF)。如果用單片機(jī)等控制電路按某一段的起始地址進(jìn)行放音操作,遇到段結(jié)束標(biāo)志(EOM)即自動停止放音,單片機(jī)收到段結(jié)束標(biāo)志(EOM)就開始觸發(fā)下一段語音的起始地址,如此控制,即可以將很多不同段的語音組合成一句話放音出來,實現(xiàn)語音自動組合。
語音芯片ISD1420可錄制20 s語音信號,本裝置中共錄制語音信號:“請輸入密碼”、“密碼正確,請輸入功能健,按*鍵結(jié)束”、“密碼錯誤,請重新輸入”、“電器已開”、“電器已關(guān)閉”。
2 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件設(shè)計主要由鈴流檢測、MT8870解碼、語音錄放、讀寫EEPROM、看門狗設(shè)置、密碼修改、密碼驗證、電器開關(guān)控制等組成。系統(tǒng)的工作流程如圖5所示??刂七^程中,系統(tǒng)上電復(fù)位后,CPU根據(jù)外圍雙音頻譯碼電路的譯碼信息判斷出要選擇的電器,然后再得到要求進(jìn)行的操作,并將單片機(jī)I/O的口相應(yīng)位置0或置1,即可按要求實現(xiàn)對相應(yīng)家用電器的控制。
(1)鈴流檢測模塊。由于整個電路無需中斷處理一些特殊的任務(wù),所以軟件采用順序結(jié)構(gòu)。鈴流檢測實質(zhì)是單片機(jī)TIMER1對外部方波的計數(shù)。
(2)MT8870解碼模塊。DTMF發(fā)送與接收器MT8870未檢測到電話網(wǎng)上的雙音多頻信號時,將單片機(jī)的外部中斷口拉低,當(dāng)檢測到雙音多頻信號并成功解碼輸出時會置高P3.2。因此程序可通過檢測P3.2口電平的高低來判斷是否有雙音多頻信號送往MT8870,一旦P3.2口電平置高,讀取P1口低4位數(shù)據(jù)并存儲。
(3)語音模塊。ISD1420語音芯片錄放音只需將相應(yīng)的錄放音管腳拉低,送入相應(yīng)的語音地址,即可完成錄放音功能。錄音時,先送P2口起始地址為0x90+Address,接著拉低錄音管腳。錄音完,再不斷播放錄音,尋找此段錄音結(jié)束時的地址,以確定下一段錄音的起始地址。
(4)EEPROM及看門狗功能模塊。單片機(jī)通過SPI串行總線向25045寫入指令、數(shù)據(jù)。25045在讀寫操作之前,需要先向它發(fā)出指令。25045芯片內(nèi)包含有一個看門狗定時器,可通過軟件預(yù)置系統(tǒng)的監(jiān)控時間。在看門狗定時器預(yù)置的時間內(nèi)若沒有總線活動,則25045將從RESET輸出一個高電平信號使CPU復(fù)位。看門狗定時器的預(yù)置時間是通過25045的狀態(tài)寄存器的相應(yīng)位來設(shè)定的。
(5)密碼修改和驗證模塊。密碼修改程序需注意按鍵的消抖動、密碼修改結(jié)束的確定、密碼的存儲。程序中使用第8個按鍵作為密碼修改結(jié)束的結(jié)束符。一旦第8個按鍵按下就結(jié)束密碼修改,將最終的密碼存儲到EEPROM中。密碼驗證比較容易,就是電話中輸入的密碼和EEPROM中的密碼進(jìn)行逐個比較,如有一個不同就認(rèn)為輸入的密碼有誤,返回一個“0”。程序中對EEPROM進(jìn)行了兩次讀操作,以防第一次讀出數(shù)據(jù)有誤。
(6)電器開關(guān)控制模塊。電器開關(guān)控制模塊通過MT8870解碼數(shù)據(jù)對8路電器進(jìn)行控制。該模塊程序一定程度上是MT8870模塊和放音模塊程序的疊加,另外加上簡單的P3口輸出操作。
3 結(jié)束語
系統(tǒng)借助家庭固定電話網(wǎng)絡(luò)傳送控制命令信號,由單片機(jī)系統(tǒng)進(jìn)行命令分析,由繼電器控制家用電器,無需對固定電話或家電做太大改動,安裝方便、性能穩(wěn)定、工作可靠,而且不影響電話的正常使用。