【摘要】在此設(shè)計了一種基于GSM的紅外遙控語音提醒系統(tǒng),該系統(tǒng)采用STC89C52單片機為主控芯片,并使用紅外遙控控制整個系統(tǒng)。系統(tǒng)中ISD4004語音模塊可在用戶設(shè)定的時間播放預(yù)先錄制的語音信息。實現(xiàn)了將GSM技術(shù)融入到設(shè)計中,用戶即使不在語音提醒器的附近,一樣可以通過手機接收到語音提醒。創(chuàng)新點是打破以往提醒系統(tǒng)的提醒范圍的局限性,極大地提高了提醒系統(tǒng)的實用性和可靠性。
【關(guān)鍵詞】語音提醒GSM紅外遙控
由于現(xiàn)在人們生活壓力大,事務(wù)繁忙,經(jīng)常會因為忘記東西而造成嚴重的后果;而一些老年人由于年老健忘,需要定時提醒吃藥和注意日常事務(wù)。本文論述了基于GSM的紅外遙控語音提醒器的研制,并且語音內(nèi)容可根據(jù)使用者需要反復(fù)錄制及播放。如果使用者沒有在房間中收聽到提醒,提醒器還可以通過GSM實現(xiàn)遠程無線提醒,自動撥打預(yù)先設(shè)置的電話號,播放語音提醒錄音。
一、硬件電路設(shè)計
系統(tǒng)采用STC89S52單片機為主控芯片。紅外遙控模塊負責接收和處理紅外遙控器發(fā)出的紅外遙控信號;時鐘模塊負責顯示時間和設(shè)定提醒時間,DSl302提供的慢速充電功能,可在系統(tǒng)掉電后正常計時,不需重新設(shè)定時鐘時間,這使得時鐘的使用更加便捷;溫度模塊采用18B20芯片,它是單線數(shù)字溫度傳感器,測得的溫度在液晶上實時顯示;顯示模塊采用1602液晶屏,用來顯示時間、溫度和操作內(nèi)容的提示;語音模塊使用了ISD4004語音芯片,單片機通過SPI總線發(fā)送操作命令控制語音芯片的錄放音操作;西門子公司的tc35i模塊作為GSM模塊,可傳輸語音和數(shù)據(jù)信號,和單片機之間的通信使用 9600bps波特率。系統(tǒng)的總體結(jié)構(gòu)框圖如圖1所示。
遙控器用來產(chǎn)生遙控編碼脈沖,驅(qū)動紅外發(fā)射管輸出紅外遙控信號,遙控接收頭完成對遙控信號的放大、檢波、整形、解調(diào)出遙控編碼脈沖[1]。遙控編碼脈沖是一組串行二進制碼,由單片機完成對遙控指令解碼,并執(zhí)行相應(yīng)的遙控功能。
遙控器以專用發(fā)射集成電路TC9012組成,TC9012的一幀數(shù)據(jù)中含有32位碼,包含兩次8位用戶碼,8位數(shù)據(jù)碼和8位數(shù)據(jù)碼的反碼及最后位的同步位。引導(dǎo)碼由4.5ms的載波和4.5ms的載波關(guān)斷波形所構(gòu)成,以作為用戶碼、數(shù)據(jù)碼以及他們的反碼的先導(dǎo)。同步位(SY)是標志最后一位編碼是“0”或“1”的標識位,它只有0.56ms的有載波信號構(gòu)成。發(fā)射碼的格式如圖2所示。
DS1302是一種高性能、低功耗的實時時鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與單片機同步通信,它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小于31天時可以自動調(diào)整,且具有閏年補償功能。
DS1302接口電路如圖3所示。DS1302與單片機的連接也僅需要3條線:/RST引腳,在讀、寫數(shù)據(jù)期間,必須為高;SCLK串行時鐘引腳;I/O串行數(shù)據(jù)引腳,三線接口時的雙向數(shù)據(jù)線。外接32.768kHz晶振,為芯片提供計時脈沖。
美國ISD公司推出的ISD4000系列單片語音錄放電路,將每個采樣值直接存儲在片內(nèi)的快閃存儲器中,能夠非常真實、自然地再現(xiàn)語音。ISD4004與單片機連接電路圖如圖4所示。該電路具有操作簡單、接口方便、錄音時間長、可任意分段錄放、不怕斷電及低功耗等優(yōu)點[2]。
從圖4可以看出,P1.5接ISD4004的片選引腳/ss,控制ISD4004是否選通;P1.2接ISD4004的MOSI串行輸入引腳,語音芯片從該引腳讀入放音的地址;P1.7接ISD的串行輸出引腳MISO,單片機從該引腳接收從語音芯片傳來的信號;單片機的P1.4接ISD4004的串行時鐘輸入端SCLK,作為ISD的時鐘輸入,用于同步MOSI和MISO的數(shù)據(jù)傳輸;ISD4004音頻信號輸出引腳AUDOUT通過一可調(diào)電阻(調(diào)整輸出音量)和一濾波電容輸出至外部功放;AMCAP為自動靜音端,使用時通過一個電容接地。
西門子公司的tc35i模塊是一個支持中英文短信息的GSM模塊,可傳輸語音和數(shù)據(jù)信號。tc35i的數(shù)據(jù)接口通過AT命令可雙向傳輸指令和數(shù)據(jù),可選波特率為300bit/s~115kbit/s,默認9600bps[3]。
整個模塊主要由電源電路、啟動電路、SIM卡接口電路和MAX232通信接口電路等幾部分組成。tc35i的第1~5引腳是正電源輸入腳;第6~10引腳是電源地;tc35i的15腳是啟動腳IGT,在系統(tǒng)中,直接將該腳對地短接來啟動模塊;tc35i使用外接式SIM卡,SIM卡通過卡座與tc35i的同名端直接相連,CCIN引腳用來檢測SIM卡是否插好,如果連接正確,則CCIN引腳輸出高電平,否則為低電平;tc35i的18、19腳直接連到單片機的串口;ISYNC端通過一個三極管和一個發(fā)光二級管連接到電源,用來指示系統(tǒng)的工作狀態(tài)。tc35i模塊結(jié)構(gòu)示意圖如圖5所示[4]。
二、系統(tǒng)軟件設(shè)計
系統(tǒng)軟件也是采用模塊化設(shè)計,分為紅外收發(fā)模塊、時鐘模塊、測溫模塊、LCD顯示模塊、語音模塊、GSM模塊等。
主程序調(diào)用幾個模塊的子程序來完成系統(tǒng)任務(wù),當有紅外信號時,單片機接收頭產(chǎn)生外部中斷請求信號,程序跳轉(zhuǎn)到紅外接收模塊執(zhí)行相應(yīng)的中斷服務(wù)程序。單片機首先判斷引導(dǎo)碼和系統(tǒng)碼是否正確,不對則直接退出;其次判斷數(shù)據(jù)碼與數(shù)據(jù)反碼是否一致,如果一致就根據(jù)數(shù)據(jù)碼調(diào)用子程序執(zhí)行相應(yīng)的操作。
DS1302時鐘模塊讀寫程序流程如圖6所示。單片機和DS1302進行數(shù)據(jù)交換時,要先發(fā)送命令字,命令字的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中;位6為0,表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1(A5~A1)表示操作單元的地址;位0(最低有效位)為0,表示要進行寫操作,為1表示進行讀操作[5]。
在命令輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,同樣,在命令輸入后的下一個SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀寫數(shù)據(jù)都是從最低位到最高位。
語音模塊設(shè)置從00地址處錄音,則按以下時序:發(fā)POWER UP命令,等待TPUD(上電延時);發(fā)POWER UP命令,等待2倍TPUD;發(fā)地址值為00的SETREC命令;發(fā)REC命令。器件便從00地址開始錄音,一直到出現(xiàn)OVF(存貯器末尾)時,錄音停止。
從00地址處放音,應(yīng)遵循如下時序:發(fā)POWER UP命令,等待TPUD(上電延時);發(fā)地址值為00的SETPLAY命令;發(fā)PLAY命令。器件會從00地址開始放音,當出現(xiàn)EOM時,立即中斷,停止放音[6]。語音模塊錄放音流程圖如圖7所示。
GSM模塊初始化程序,他包含了單片機串行口的初始化、控制TC35i模塊開機、檢測整機工作狀態(tài)等工作;撥打電話子程序的作用是當用戶不在語音提醒器旁時,立即調(diào)用撥打電話子程序,用于實現(xiàn)遠程語音提醒功能。GSM模塊語音提醒流程圖如圖8所示。
三、結(jié)語
本設(shè)計最大的創(chuàng)新點在于使用了語音模塊,使用戶可以錄入和接收到語音提醒,較以往傳統(tǒng)的文字提醒更為方便直觀。紅外遙控作為系統(tǒng)的控制部分,可以提高系統(tǒng)的操控性。同時還將GSM技術(shù)融入到設(shè)計中,打破了以往提醒系統(tǒng)的提醒范圍的局限性,即使不在語音提醒器的附近,一樣可以通過手機等接收到語音提醒,極大地提高了提醒系統(tǒng)的實用性和可靠性。