《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 語音數(shù)字記錄儀的電話接口

語音數(shù)字記錄儀的電話接口

2008-12-11
作者:許海國 陸延豐

  摘? 要: 介紹語音數(shù)字記錄儀的電話接口,采用單片機控制,電路簡單,可靠性高,應(yīng)用靈活?,F(xiàn)已作為鐵路語音數(shù)字記錄儀的一個必備接口。?

  關(guān)鍵詞: 單片機? DTMF? 通信接口?

?

  隨著數(shù)字信號處理芯片(DSP)的發(fā)展,語音編解碼技術(shù)日益廣泛地應(yīng)用于軍事、民用和監(jiān)控等領(lǐng)域。就語音數(shù)字記錄儀而言,它可廣泛地應(yīng)用于運輸、公安、消防、電話服務(wù)質(zhì)量監(jiān)督等諸多領(lǐng)域。但是記錄儀通常放置在工作現(xiàn)場附近,如果要知道記錄儀的工作狀態(tài)" title="工作狀態(tài)">工作狀態(tài)或查詢其中的記錄數(shù)據(jù),維護人員必須到現(xiàn)場,工作量極大。本文介紹的電路主要是為記錄儀提供遠程的電話查詢接口,維護人員依靠手中的電話就可以查詢記錄儀的工作狀態(tài)和數(shù)據(jù)記錄。系統(tǒng)需要獨占一個電話號碼,接通電話后使用者在語音提示下通過電話鍵盤輸入密碼,經(jīng)過確認(rèn)后可以查詢記錄儀的工作狀態(tài)是否正常。也可以輸入時間對記錄儀所存儲的一段語音進行查詢,語音記錄將經(jīng)由電話線路播放(本地查詢時通過喇叭播放)。如果三次密碼輸入不正確,或在語音提示下長時間沒有反應(yīng),系統(tǒng)將會強制掛機。?

  為了簡化電路,本接口使用ATMEL 89C2051" title="89C2051">89C2051單片機作為控制核心,它有128字節(jié)RAM,2K字節(jié)ROM,兩個時鐘。采用DTMF信號進行通信,實現(xiàn)遠程控制。電路可靠性高,價格低。電路可獨立地作為一個系統(tǒng),也可用作自動電話查詢或電話撥號控制系統(tǒng)的接口電路" title="接口電路">接口電路,使用比較靈活方便。?

  本電路具有語音回放接口、消側(cè)音模塊,提高了系統(tǒng)的穩(wěn)定性,可避免系統(tǒng)出現(xiàn)誤動作,配合相應(yīng)的軟件可以實現(xiàn)雙向通信。本電路在設(shè)計中對電話線的地和記錄儀的地作了隔離,否則系統(tǒng)會無法正常工作。?

1 總體的功能要求?

  (1)來電時,在振鈴幾次后自動摘機;?

  (2)在通話過程中,檢測到對方掛機后自動掛機,也可以主動地進行強制掛機;?

  (3)能夠?qū)㈦娫捑€上傳輸?shù)腄TMF信號轉(zhuǎn)換成為數(shù)字信號,并通過自定義通信口或者UART端口傳送給其它模塊;?

  (4)電話線的地和記錄儀的地需要隔離;?

  (5)電路需要提供功率放大器到電話線的傳輸接口,以實現(xiàn)遠程監(jiān)聽和查詢;?

  (6)系統(tǒng)要有高可靠性。?

2 硬件構(gòu)成及原理?

  系統(tǒng)組成框圖如圖1所示。?

?

?

  接口電路主要包含以下幾個模塊:電話線接口、振鈴檢測、雙音多頻信號檢測、忙音檢測以及與主控單片機的通信。下面分別介紹其中的一些模塊電路。?

2.1 電話線接口電路?

  電話線接口電路如圖2所示。電路模擬摘掛機通過控制一個電流源通斷來實現(xiàn)。交換機通過線路上的直流電流來判斷用戶的摘掛機狀態(tài)。在掛機狀態(tài)下,電路上的直流電流為0;在摘機狀態(tài)下,線路上的直流電流為18mA~55mA,如果電流超出此范圍,則認(rèn)為用戶環(huán)路出了故障。單片機通過端口I/O1控制三極管T1的通斷來控制電路中的電流,模擬摘掛機的動作。當(dāng)I/O1為低電平時,T1截止,電流比較小,處于掛機狀態(tài);當(dāng) I/O1為高電平,T1導(dǎo)通,此時T1和T2組成的電流源將提供30mA左右的電流,相當(dāng)于電話摘機,交換機會接通話路。另外,恒流源可以保證電路具有較小的直流阻抗(<300Ω)和較大的交流阻抗(>600Ω)。在電話線之間跨接壓敏電阻,以達到抗雷擊保護的作用。?

?

?

  由于在檢測振鈴信號的時候T1截止,在穩(wěn)壓二極管的鉗制下,線路上的電壓幾乎都加在T1的集電極和發(fā)射極兩端,此時電壓高達100多伏。所以三極管需要選擇一個耐壓比較高的三極管,耐壓在150V左右比較合適。需要注意的是所使用的單片機I/O腳的輸出電流,T1的基極工作電流大約為2mA~3mA,而89C2051的輸出電流只有80μA,無法驅(qū)動三極管,所以需要驅(qū)動電路。?

  為了將功率放大器的輸出送到電話線路上去,通常的做法是采用變壓器耦合。但在本文中采用了一種更為簡單的辦法。?

  電路采用了直接電容耦合。記錄儀的I/O輸出通過電容、8Ω電阻R1將聲音耦合到電話線路。89C2051通過I/O2控制繼電器來控制聲音是播放到本地的喇叭還是電話線路。電阻放在電橋的后面,便于直接從Voice處取出聲音信號來消側(cè)音。?

2.2 振鈴檢測電路?

  在待機狀態(tài)下,電話線路上的電壓一直保持約52V;當(dāng)有用戶呼叫本機時,交換機將向電話線路上發(fā)送振鈴信號,振鈴信號為90V±15V、25Hz±3Hz、3s通、4s斷的蜂音。此時只需將線路上的電壓與參考電壓進行比較,I/O3為高電平時就可以檢測出振鈴信號,電路如圖3所示。因為振鈴電壓要比平時高許多,所以可靠性高,干擾信號不會影響檢測結(jié)果。同時,可以在軟件部分進行振鈴次數(shù)的檢測,設(shè)置在一定次數(shù)的振鈴后再摘機,提高系統(tǒng)的穩(wěn)定性。?

?

?

2.3 DTMF信號檢測?

  DTMF信號檢測則由MT8870完成,見圖4。當(dāng)有DTMF信號時,MT8870可以將其解碼得出四位二進制代碼,同時產(chǎn)生一個STB信號,用作與其它控制芯片連接。?

?

?

2.4 忙音檢測?

  圖5為忙音檢測電路。通話中一方掛機后,交換機會向另一方發(fā)送忙音信號。電話遠程模塊必須具備的一個功能就是在查詢者掛機后,檢測出忙音,自動掛機。線路上的忙音信號是0.35s±0.05s斷續(xù)的450Hz±25Hz峰音。本電路采用Teltone公司的M982。這是一個專門用于電話呼叫進程檢測的芯片。其作用是把蜂音信號轉(zhuǎn)換成高低電平的信號,使用本身的時鐘,所以檢測比較準(zhǔn)確,且與單片機接口比較方便。?

?

?

2.5 消側(cè)音電路?

  因為掛機依據(jù)的是忙音檢測結(jié)果,而語音中包含了忙音450Hz這個頻率,所以在線路上聲音比較大時,有可能影響忙音檢測的進程,使得電路誤掛機。消側(cè)音電路可以減少在放音過程中系統(tǒng)的誤動作,提高系統(tǒng)的可靠性和穩(wěn)定性。?

  電路如圖4所示。從Voice處取出的語音通過T3反向后與通過話路耦合過來的信號相加,以達到消除忙音檢測輸入信號中的聲音的目的,電路簡單可靠。?

2.6 光耦隔離?

  光耦電路如圖6所示。使用電話接口的電路需要注意的一點是,電源必須懸浮(由于記錄儀采用了接地設(shè)計,兩部分的電源必須隔離)。此電路中采用光電耦合器來實現(xiàn)隔離。電路中采用普通的4N35,在標(biāo)定的傳輸頻率下需要的電流為幾個mA,但是因為89C2051可以提供10mA的吸收電流,故可以直接同光耦連接使用,比較方便。?

2.7 與記錄儀的通信接口?

  接口電路與記錄儀的通信通過四個信號線來實現(xiàn),分別是STB選通、ASW應(yīng)答、DATA數(shù)據(jù)、CLK時鐘。這種通信接口可以從遠程模塊向記錄儀單向發(fā)送DTMF數(shù)據(jù)。?

3 軟件控制流程?

  主程序" title="主程序">主程序流程圖如圖7所示。?

?

?

  系統(tǒng)一直監(jiān)測線路信號,在三次振鈴后接通電話。提示音通過8Ω電阻耦合到電話線路上后,就可以進行DTMF信號的通信。系統(tǒng)檢測電話線上的DTMF碼;同時檢測線路是否有忙音信號,判斷對方是否已掛機,若對方掛機則本地也掛機。在掛機后系統(tǒng)返回初始等待狀態(tài);如果主叫方三次密碼輸入錯誤,則記錄儀通知電話查詢模塊主動掛機;主叫方在接通電話以后長時間沒有輸入需要查詢的記錄時間,電路也會主動掛機。?

  軟件首先對所用到的寄存器和存儲器進行初始化,然后進入節(jié)電模式。?

  如果有振鈴信號,則通過中斷方式進行響應(yīng)。振鈴3次后接通電話;對于異常情況,如振鈴只響過一次對方就已經(jīng)掛機,則不響應(yīng)。中斷處理程序中首先將中斷屏蔽掉(以避免同一次鈴流而產(chǎn)生幾次中斷),計時4s后打開中斷;如果超過8s仍然沒有下一次鈴流來觸發(fā)中斷,則清除計數(shù)器,跳轉(zhuǎn)到程序開始。累計振鈴3次后,關(guān)掉中斷,避免其他干擾信號打斷程序的正常運行。此后進入主程序。?

  為了保證程序的實時性且不丟失數(shù)據(jù),主程序為一個主循環(huán)。循環(huán)中根據(jù)輸入和標(biāo)志位來判斷是否有DTMF數(shù)據(jù)需要接收,是否有數(shù)據(jù)需要發(fā)送,是否需要掛機。而數(shù)據(jù)的接收檢測、發(fā)送和忙音檢測是在定時中斷中來做。?

  有忙音時,M982的輸出是一個0.35s±0.05s的方波。此時對方已經(jīng)掛機,其他的任務(wù)已基本不需要占用時間,所以可以采取一種比較嚴(yán)格的檢測方法。本文在檢測到有忙音信號,即I/O3變低時,開始連續(xù)監(jiān)測,每隔100μs檢測一次,如果連續(xù)100ms中有85ms均為低電平,即檢測1000次中至少有850次為低,則認(rèn)為檢測到一次方波的低電平部分,然后延時200ms后再開始檢測高電平。在檢測到高以后,同樣監(jiān)測100ms,然后再檢測低電平。一共檢測3個周期,如果檢測都通過,即認(rèn)為收到一個合格的忙音信號,在掛機的同時通知記錄儀。?

  在檢測到有DTMF信號時,即I/O4變?yōu)楦唠娖綍r,設(shè)置接收標(biāo)志位,在主程序中接收數(shù)據(jù),并且緩存在RAM中。因為接收到的數(shù)據(jù)除了密碼,就是查詢時間,需要用FIFO的存儲方式,將順序輸入的數(shù)據(jù)發(fā)給記錄儀。在時鐘中斷服務(wù)程序中僅設(shè)置標(biāo)志位,在主程序中讀取。?

  如果有數(shù)據(jù)需要發(fā)送,電路首先在STB上給出信號;然后等待ASW線上的應(yīng)答信號;在得到應(yīng)答后,開始發(fā)送程序產(chǎn)生的時鐘信號" title="時鐘信號">時鐘信號,在時鐘信號的上升沿發(fā)送數(shù)據(jù)位,外圍電路在時鐘信號的下降沿接收數(shù)據(jù)。電路的傳送速率是100kbps。由于DTMF信號都只有四位數(shù)據(jù),所以數(shù)據(jù)發(fā)送時定義了一個前導(dǎo)碼,即三個‘0’,一個‘1’,然后是數(shù)據(jù)。?

  這個接口電路經(jīng)過實際運行檢驗,具有電路可靠、使用靈活、成本低等特點。?

參考文獻?

1 國標(biāo)半導(dǎo)體集成電路通信電路系列和品種.北京:中國標(biāo)準(zhǔn)出版社,1993?

2 曾 剛,賀 蓉,徐成. DTMF遠程通信的軟硬件實現(xiàn)技術(shù).電子技術(shù)應(yīng)用, 2000;26(5)?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。