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