基于ISDl420的多路語音報(bào)警系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:以AT89C51為核心,采用直接模擬存儲(chǔ)技術(shù)DAST芯片ISDl420和8位A/D轉(zhuǎn)換器ADC0809,設(shè)計(jì)了一種多路語音報(bào)警系統(tǒng),包括信號(hào)放大、處理電路,A/D轉(zhuǎn)換模塊,語音報(bào)警模塊、數(shù)碼顯示模塊、按鍵輸入模塊等。系統(tǒng)具有一定通用性、穩(wěn)定可靠,可廣泛應(yīng)用于各種監(jiān)測(cè)系統(tǒng)中。
關(guān)鍵詞:語音報(bào)警;單片機(jī);ISDl420;ADC0809
語音報(bào)警系統(tǒng)廣泛應(yīng)用于礦井、糧倉(cāng)溫度測(cè)量及控制、溫室溫度采集和控制、火災(zāi)語音報(bào)警系統(tǒng)等。本系統(tǒng)功能是進(jìn)行信號(hào)檢測(cè)和語音報(bào)警,包括運(yùn)算放大器、A/D轉(zhuǎn)換模塊、語音錄放模塊、輸出控制模塊、顯示模塊和繼電器驅(qū)動(dòng)以及控制電路等部分。單片機(jī)主要負(fù)責(zé)數(shù)據(jù)采集、顯示和判斷,以及對(duì)ISDl420語音芯片控制,系統(tǒng)硬件框圖,如圖1所示。
1 基于ISDl420的語音報(bào)警模塊
ISDl420為ISD公司出品的優(yōu)質(zhì)單片語音錄放電路,單片錄放時(shí)間8~20 s音質(zhì)較好。芯片采用CMOS技術(shù),內(nèi)含振蕩器、話筒前置放大、自動(dòng)增益控制、防混淆濾波器、平滑濾波器、揚(yáng)聲器驅(qū)動(dòng)及EEPROM陣列。在錄放操作結(jié)束后,芯片自動(dòng)進(jìn)入低功耗節(jié)電模式、功耗僅0.5μW。芯片采用多電平直接模擬量存儲(chǔ)專利技術(shù),每個(gè)采樣直接存儲(chǔ)在片內(nèi)EEPROM單元中,因能夠非常真實(shí)、自然地再現(xiàn)語音、音樂、音調(diào)各效果,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和“金屬聲”。采樣頻率為5.3 kHz,6.4 kHz和8.0 kHz,對(duì)音質(zhì)僅有輕微影響。片內(nèi)信息可保存100年(無需后備電源),EEPROM單片可反復(fù)錄音10萬次。
1.1 ISDl420的工作原理
ISDl420是采用模擬存取技術(shù)集成的可反復(fù)錄放的20 s語音芯片,掉電語音不丟失,最大可分為160段,最小每段語音長(zhǎng)度為125 ms,每段語音都可由地址線控制輸出,每125 ms為一個(gè)地址,由A0~A7這8根地址線控制,地址語音控制表,如表1所示。用戶錄制的語音每段結(jié)束后芯片自動(dòng)設(shè)有段結(jié)束標(biāo)志(EOM),芯片錄滿后設(shè)有溢出標(biāo)志(OVF)。用單片機(jī)控制電路按某一段的起始地址進(jìn)行放音操作,遇到段結(jié)束標(biāo)志(EOM)即自動(dòng)停止放音,單片機(jī)收到段結(jié)束標(biāo)志(EOM)就開始觸發(fā)下一段語音的起始地址,如此控制,即可以將很多不同段的語音組合成一句話放音出來,實(shí)現(xiàn)語音的自動(dòng)組合。
用戶可以通過專用ISDl420語音編程拷貝機(jī)將需要的語音分段編程、連續(xù)錄制到芯片中,每段語音長(zhǎng)度不限,制成語音源片后,將源片的錄音端封住不讓其再做錄音操作,再由單片機(jī)電路控制放音。首先,單片機(jī)將ISDl420語音芯片完整搜索一遍,自動(dòng)找出每一段的起始地址,按分段順序編號(hào)存入外置的串行存儲(chǔ)器中;然后用戶通過單片機(jī)串口發(fā)出指令,單片機(jī)即將這些段的編號(hào)、地址調(diào)出,依次向語音芯片發(fā)出首地址、放音該段、該段結(jié)束,單片機(jī)收到EOM標(biāo)志后單片機(jī)發(fā)出下一段語音的首地址、放音該段,如此工作,直到要求的一句話合成完畢。[!--empirenews.page--]
這種控制方式有較強(qiáng)的通用性和方便性,它不需要事先規(guī)定每段語音的時(shí)間長(zhǎng)度和總段數(shù),甚至不需要知道每段語音在ISDl420芯片上的具體地址,只要用戶記住錄入語音的段順序即可控制各段語音的自由組合。
ISDl420系列內(nèi)置了若了干操作模式,可用最少的外圍器件實(shí)現(xiàn)最多的功能。操作模式也由地址端控制,當(dāng)A7和A6都為l時(shí),其它地址端置高就選擇某個(gè)(或某幾個(gè))模式。因?yàn)椴僮髂J胶椭苯訉ぶ坊ハ嗯懦狻2僮髂J娇捎晌⒖刂破骰蛴布?shí)現(xiàn)。ISDl420操作模式簡(jiǎn)表如表2所示。使用操作模式有兩點(diǎn)注意:(1)所有操作都從O地址,即存儲(chǔ)空間的起始端開始。后續(xù)操作根據(jù)所選用的模式可從其它的地址開始。此外,A4模式中,當(dāng)電路由錄轉(zhuǎn)為放時(shí)地址計(jì)數(shù)器復(fù)位為0,而由放轉(zhuǎn)為錄則不復(fù)位;(2)當(dāng)控制信號(hào)(PLAYL,PLAYE或REC)變低,同時(shí)A6和A7為高時(shí),執(zhí)行操作模式。這種操作模式一直有效,除非控制信號(hào)再次由高變低,芯片重新鎖存當(dāng)前的地址/模式端電平,然后執(zhí)行相應(yīng)操作。
1.2 ISDl420語音報(bào)警電路的設(shè)計(jì)
為了使系統(tǒng)能夠?qū)φZ音進(jìn)行分段控制,設(shè)計(jì)一個(gè)ISDl420與單片機(jī)的接口電路,ISDl420的地址段A0~A7由單片機(jī)的IO口控制。具體的電路,如圖2所示。錄制信息時(shí):將REC電平變低,從內(nèi)部存儲(chǔ)器空間開始錄制信息。如果REC保持低電平,錄音操作一直持續(xù)到存儲(chǔ)器空間錄滿,這時(shí)錄音結(jié)束。如果REC變?yōu)楦唠娖剑娐穼⒆詣?dòng)進(jìn)入掉電模式。邊緣啟動(dòng)放音時(shí):將PLAYE變低,從存儲(chǔ)器開始或選定的位置開始放音。PLAYE的上升沿對(duì)操作沒有影響。如果存儲(chǔ)器內(nèi)部全部錄滿信息,則可以播放內(nèi)部全部信息。如果到達(dá)結(jié)束標(biāo)志EOM,電路將停止放音并自動(dòng)進(jìn)入掉電模式。一個(gè)新的PLAYE下降沿將觸發(fā)另一個(gè)從起始地址的錄音。電平觸發(fā)放音時(shí):將PLAYL變低,將從存儲(chǔ)器開始或選定的位置開始放音。如果存儲(chǔ)器內(nèi)部全部錄滿信息,則可以播放內(nèi)部全部信息。如果到達(dá)結(jié)束標(biāo)志EOM,電路將停止放音并自動(dòng)進(jìn)入掉電模式。一個(gè)新的PLAYL下降沿將觸發(fā)另一個(gè)從起始地址的放音。錄音(中斷放音)時(shí):REC引起的錄音操作優(yōu)先于其他操作。任何時(shí)間REC信號(hào)的變低將引起一次新的錄音操作,地址從起始地址或指定的地址開始,不論當(dāng)前是否進(jìn)行其他操作。RECLED操作時(shí):在錄音操作時(shí),RECLED將輸出低電平有效信號(hào),可以驅(qū)動(dòng)一個(gè)LED,表明現(xiàn)在正在錄音操作。如果整個(gè)存儲(chǔ)器空間錄滿,或REC變?yōu)楦唠娖浇Y(jié)束錄音,則RECLED將變?yōu)楦唠娖健A硗?,在放音過程中,如果遇到一個(gè)EOF標(biāo)志,RE-CLED總是輸出一個(gè)低電平脈沖。
[!--empirenews.page--]
2 ADC0809的數(shù)據(jù)采集電路的設(shè)計(jì)
A/D轉(zhuǎn)換接口是數(shù)據(jù)采集系統(tǒng)前向通道中的一個(gè)重要環(huán)節(jié)。數(shù)據(jù)采集和轉(zhuǎn)換系統(tǒng)從一個(gè)或幾個(gè)信號(hào)源中采集模擬信號(hào),并將這些信號(hào)通過A/D轉(zhuǎn)換接口轉(zhuǎn)換成數(shù)字信號(hào),以便輸入單片機(jī),為進(jìn)一步的數(shù)據(jù)處理做好準(zhǔn)備。為滿足系統(tǒng)要求,簡(jiǎn)化數(shù)據(jù)采集電路,本設(shè)計(jì)采用ADC0-809模數(shù)轉(zhuǎn)換器對(duì)模擬信號(hào)進(jìn)行轉(zhuǎn)換。
ADC0809芯片的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。START上升沿將逐次逼近寄存器復(fù)位,下降沿啟動(dòng)A/D轉(zhuǎn)換,之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖剑甘続/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器。這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng)OE輸入高電平時(shí),打開三態(tài)輸出鎖存器,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。與51單片機(jī)的接口電路,如圖3所示,采用中斷方式,轉(zhuǎn)換完成的狀態(tài)信號(hào):EOC引腳經(jīng)過一個(gè)反相器接在單片機(jī)的引腳上,轉(zhuǎn)換結(jié)束后,EOC=1,經(jīng)過反相后為0,可以向單片機(jī)發(fā)出中斷請(qǐng)求。
3 數(shù)碼顯示模塊
LED動(dòng)態(tài)顯示電路占用單片機(jī)的I/O口資源很少,把所有LED顯示器的8個(gè)筆畫段a~g和dp的各段同名端互相連接起來,并把它接到輸出口上。為了防止各顯示器顯示同樣的數(shù)字,各個(gè)顯示器應(yīng)該輪流顯示,在某一刻只能是其中的一個(gè)數(shù)碼管點(diǎn)亮。因此每個(gè)數(shù)碼管的COM端還要受到另一信號(hào)的控制,可以接到另一個(gè)I/O輸出口上,某一個(gè)時(shí)刻只讓其中一個(gè)COM出現(xiàn)低電平點(diǎn)亮共陰數(shù)碼管。這樣,對(duì)一組LED數(shù)碼管顯示器需要兩組信號(hào)控制:段碼控制顯示的字形;位碼選擇第幾個(gè)顯示器工作。在這兩組信號(hào)的作用下,可以使各顯示器顯示各自的字符,當(dāng)然這些字符不是同時(shí)顯示的,但由于人眼存在視覺暫留,加上發(fā)光二極管的余輝效應(yīng),只要掃描的速度足夠快,每位顯示的間隔時(shí)間足夠短,就可以給人同時(shí)顯示的感覺,而不會(huì)有閃爍感。系統(tǒng)中,由74LSl64串-并轉(zhuǎn)換擴(kuò)展I/O,DsDat連接AT89C51的RXD,DsClk連接AT89C5l的TXD,GW,SW,BW和QW分別接AT89C5l的P1.0~P1.3,采用LED動(dòng)態(tài)顯示,如圖4所示。
[!--empirenews.page--]
4 單片機(jī)控制軟件的設(shè)計(jì)
4.1 ADC0809數(shù)據(jù)采集程序
為了提高系統(tǒng)的穩(wěn)定性和單片機(jī)的工作效率,在設(shè)計(jì)數(shù)據(jù)采集電路時(shí),采用了定時(shí)采集加中斷的方式,這樣既可以任意設(shè)定采集的間隔時(shí)間,又不妨礙單片機(jī)執(zhí)行其他程序。程序的詳細(xì)流程圖,如圖5所示。
4.2 ISDl420語音芯片控制程序
為了充分利用ISDl420的語音分段程序,使語音資源的利用率提高。設(shè)計(jì)中將語音程序獨(dú)立編寫、調(diào)試,在系統(tǒng)需要語音報(bào)警時(shí),只需通過P0口給出不同的放音地址,調(diào)用語音播放程序就能實(shí)現(xiàn)智能語音報(bào)警。這部分的程序比較簡(jiǎn)單,主要是邏輯配合與精確延時(shí)程序的編寫。在錄制聲音前,要計(jì)算好每段語音的時(shí)間才能確定需要調(diào)用的延時(shí)程序。圖6是該部分程序的流程圖。
4.3鍵盤和顯示程序
系統(tǒng)的鍵盤采用了獨(dú)立式鍵盤并采用查詢方式,根據(jù)獨(dú)立式鍵盤的特點(diǎn),程序必須不停地對(duì)鍵盤接口進(jìn)行查詢。LED顯示采用動(dòng)態(tài)顯示,并采用74LSl64作為I/O擴(kuò)展以節(jié)約單片機(jī)的I/O口資源。鍵盤程序和動(dòng)態(tài)顯示程序的流程,如圖7所示。
5 結(jié)束語
此多路語音報(bào)警系統(tǒng)經(jīng)過電路測(cè)試、軟件調(diào)試和系統(tǒng)組裝,可以實(shí)現(xiàn)多路數(shù)據(jù)采集和語音報(bào)警,穩(wěn)定可靠。可廣泛應(yīng)用于礦井、糧倉(cāng)、石油工程、電站、隧道和大壩等領(lǐng)域的監(jiān)測(cè)系統(tǒng)中。