隨著數(shù)字信號處理芯片(DSP)的發(fā)展,語音編解碼技術日益廣泛地應用于軍事、民用和監(jiān)控等領域。就語音數(shù)字記錄儀而言,它可廣泛地應用于運輸、公安、消防、電話服務質量監(jiān)督等諸多領域。但是記錄儀通常放置在工作現(xiàn)場附近,如果要知道記錄儀的工作狀態(tài)或查詢其中的記錄數(shù)據(jù),維護人員必須到現(xiàn)場,工作量極大。本文介紹的電路主要是為記錄儀提供遠程的電話查詢接口,維護人員依靠手中的電話就可以查詢記錄儀的工作狀態(tài)和數(shù)據(jù)記錄。系統(tǒng)需要獨占一個電話號碼,接通電話后使用者在語音提示下通過電話鍵盤輸入密碼,經(jīng)過確認后可以查詢記錄儀的工作狀態(tài)是否正常。也可以輸入時間對記錄儀所存儲的一段語音進行查詢,語音記錄將經(jīng)由電話線路播放(本地查詢時通過喇叭播放)。如果三次密碼輸入不正確,或在語音提示下長時間沒有反應,系統(tǒng)將會強制掛機。
為了簡化電路,本接口使用ATMEL 89C2051單片機作為控制核心,它有128字節(jié)RAM,2K字節(jié)ROM,兩個時鐘。采用DTMF信號進行通信,實現(xiàn)遠程控制。電路可靠性高,價格低。電路可獨立地作為一個系統(tǒng),也可用作自動電話查詢或電話撥號控制系統(tǒng)的接口電路,使用比較靈活方便。
本電路具有語音回放接口、消側音模塊,提高了系統(tǒng)的穩(wěn)定性,可避免系統(tǒng)出現(xiàn)誤動作,配合相應的軟件可以實現(xiàn)雙向通信。本電路在設計中對電話線的地和記錄儀的地作了隔離,否則系統(tǒng)會無法正常工作。
1 總體的功能要求
(1)來電時,在振鈴幾次后自動摘機;
(2)在通話過程中,檢測到對方掛機后自動掛機,也可以主動地進行強制掛機;
(3)能夠將電話線上傳輸?shù)腄TMF信號轉換成為數(shù)字信號,并通過自定義通信口或者UART端口傳送給其它模塊;
(4)電話線的地和記錄儀的地需要隔離;
(5)電路需要提供功率放大器到電話線的傳輸接口,以實現(xiàn)遠程監(jiān)聽和查詢;
(6)系統(tǒng)要有高可靠性。
2 硬件構成及原理
系統(tǒng)組成框圖如圖1所示。
接口電路主要包含以下幾個模塊:電話線接口、振鈴檢測、雙音多頻信號檢測、忙音檢測以及與主控單片機的通信。下面分別介紹其中的一些模塊電路。
2.1 電話線接口電路
電話線接口電路如圖2所示。電路模擬摘掛機通過控制一個電流源通斷來實現(xiàn)。交換機通過線路上的直流電流來判斷用戶的摘掛機狀態(tài)。在掛機狀態(tài)下,電路上的直流電流為0;在摘機狀態(tài)下,線路上的直流電流為18mA~55mA,如果電流超出此范圍,則認為用戶環(huán)路出了故障。單片機通過端口I/O1控制三極管T1的通斷來控制電路中的電流,模擬摘掛機的動作。當I/O1為低電平時,T1截止,電流比較小,處于掛機狀態(tài);當 I/O1為高電平,T1導通,此時T1和T2組成的電流源將提供30mA左右的電流,相當于電話摘機,交換機會接通話路。另外,恒流源可以保證電路具有較小的直流阻抗(<300Ω)和較大的交流阻抗(>600Ω)。在電話線之間跨接壓敏電阻,以達到抗雷擊保護的作用。
[!--empirenews.page--]
由于在檢測振鈴信號的時候T1截止,在穩(wěn)壓二極管的鉗制下,線路上的電壓幾乎都加在T1的集電極和發(fā)射極兩端,此時電壓高達100多伏。所以三極管需要選擇一個耐壓比較高的三極管,耐壓在150V左右比較合適。需要注意的是所使用的單片機I/O腳的輸出電流,T1的基極工作電流大約為2mA~3mA,而89C2051的輸出電流只有80μA,無法驅動三極管,所以需要驅動電路。
為了將功率放大器的輸出送到電話線路上去,通常的做法是采用變壓器耦合。但在本文中采用了一種更為簡單的辦法。
電路采用了直接電容耦合。記錄儀的I/O輸出通過電容、8Ω電阻R1將聲音耦合到電話線路。89C2051通過I/O2控制繼電器來控制聲音是播放到本地的喇叭還是電話線路。電阻放在電橋的后面,便于直接從Voice處取出聲音信號來消側音。
2.2 振鈴檢測電路
在待機狀態(tài)下,電話線路上的電壓一直保持約52V;當有用戶呼叫本機時,交換機將向電話線路上發(fā)送振鈴信號,振鈴信號為90V±15V、25Hz±3Hz、3s通、4s斷的蜂音。此時只需將線路上的電壓與參考電壓進行比較,I/O3為高電平時就可以檢測出振鈴信號,電路如圖3所示。因為振鈴電壓要比平時高許多,所以可靠性高,干擾信號不會影響檢測結果。同時,可以在軟件部分進行振鈴次數(shù)的檢測,設置在一定次數(shù)的振鈴后再摘機,提高系統(tǒng)的穩(wěn)定性。
2.3 DTMF信號檢測
DTMF信號檢測則由MT8870完成,見圖4。當有DTMF信號時,MT8870可以將其解碼得出四位二進制代碼,同時產(chǎn)生一個STB信號,用作與其它控制芯片連接。
2.4 忙音檢測
圖5為忙音檢測電路。通話中一方掛機后,交換機會向另一方發(fā)送忙音信號。電話遠程模塊必須具備的一個功能就是在查詢者掛機后,檢測出忙音,自動掛機。線路上的忙音信號是0.35s±0.05s斷續(xù)的450Hz±25Hz峰音。本電路采用Teltone公司的M982。這是一個專門用于電話呼叫進程檢測的芯片。其作用是把蜂音信號轉換成高低電平的信號,使用本身的時鐘,所以檢測比較準確,且與單片機接口比較方便。
2.5 消側音電路
因為掛機依據(jù)的是忙音檢測結果,而語音中包含了忙音450Hz這個頻率,所以在線路上聲音比較大時,有可能影響忙音檢測的進程,使得電路誤掛機。消側音電路可以減少在放音過程中系統(tǒng)的誤動作,提高系統(tǒng)的可靠性和穩(wěn)定性。
電路如圖4所示。從Voice處取出的語音通過T3反向后與通過話路耦合過來的信號相加,以達到消除忙音檢測輸入信號中的聲音的目的,電路簡單可靠。
2.6 光耦隔離
光耦電路如圖6所示。使用電話接口的電路需要注意的一點是,電源必須懸浮(由于記錄儀采用了接地設計,兩部分的電源必須隔離)。此電路中采用光電耦合器來實現(xiàn)隔離。電路中采用普通的4N35,在標定的傳輸頻率下需要的電流為幾個mA,但是因為89C2051可以提供10mA的吸收電流,故可以直接同光耦連接使用,比較方便。
2.7 與記錄儀的通信接口 [!--empirenews.page--]
接口電路與記錄儀的通信通過四個信號線來實現(xiàn),分別是STB選通、ASW應答、DATA數(shù)據(jù)、CLK時鐘。這種通信接口可以從遠程模塊向記錄儀單向發(fā)送DTMF數(shù)據(jù)。
3 軟件控制流程
主程序流程圖如圖7所示。
系統(tǒng)一直監(jiān)測線路信號,在三次振鈴后接通電話。提示音通過8Ω電阻耦合到電話線路上后,就可以進行DTMF信號的通信。系統(tǒng)檢測電話線上的DTMF碼;同時檢測線路是否有忙音信號,判斷對方是否已掛機,若對方掛機則本地也掛機。在掛機后系統(tǒng)返回初始等待狀態(tài);如果主叫方三次密碼輸入錯誤,則記錄儀通知電話查詢模塊主動掛機;主叫方在接通電話以后長時間沒有輸入需要查詢的記錄時間,電路也會主動掛機。
軟件首先對所用到的寄存器和存儲器進行初始化,然后進入節(jié)電模式。
如果有振鈴信號,則通過中斷方式進行響應。振鈴3次后接通電話;對于異常情況,如振鈴只響過一次對方就已經(jīng)掛機,則不響應。中斷處理程序中首先將中斷屏蔽掉(以避免同一次鈴流而產(chǎn)生幾次中斷),計時4s后打開中斷;如果超過8s仍然沒有下一次鈴流來觸發(fā)中斷,則清除計數(shù)器,跳轉到程序開始。累計振鈴3次后,關掉中斷,避免其他干擾信號打斷程序的正常運行。此后進入主程序。
為了保證程序的實時性且不丟失數(shù)據(jù),主程序為一個主循環(huán)。循環(huán)中根據(jù)輸入和標志位來判斷是否有DTMF數(shù)據(jù)需要接收,是否有數(shù)據(jù)需要發(fā)送,是否需要掛機。而數(shù)據(jù)的接收檢測、發(fā)送和忙音檢測是在定時中斷中來做。
有忙音時,M982的輸出是一個0.35s±0.05s的方波。此時對方已經(jīng)掛機,其他的任務已基本不需要占用時間,所以可以采取一種比較嚴格的檢測方法。本文在檢測到有忙音信號,即I/O3變低時,開始連續(xù)監(jiān)測,每隔100μs檢測一次,如果連續(xù)100ms中有85ms均為低電平,即檢測1000次中至少有850次為低,則認為檢測到一次方波的低電平部分,然后延時200ms后再開始檢測高電平。在檢測到高以后,同樣監(jiān)測100ms,然后再檢測低電平。一共檢測3個周期,如果檢測都通過,即認為收到一個合格的忙音信號,在掛機的同時通知記錄儀。
在檢測到有DTMF信號時,即I/O4變?yōu)楦唠娖綍r,設置接收標志位,在主程序中接收數(shù)據(jù),并且緩存在RAM中。因為接收到的數(shù)據(jù)除了密碼,就是查詢時間,需要用FIFO的存儲方式,將順序輸入的數(shù)據(jù)發(fā)給記錄儀。在時鐘中斷服務程序中僅設置標志位,在主程序中讀取。
如果有數(shù)據(jù)需要發(fā)送,電路首先在STB上給出信號;然后等待ASW線上的應答信號;在得到應答后,開始發(fā)送程序產(chǎn)生的時鐘信號,在時鐘信號的上升沿發(fā)送數(shù)據(jù)位,外圍電路在時鐘信號的下降沿接收數(shù)據(jù)。電路的傳送速率是100kbps。由于DTMF信號都只有四位數(shù)據(jù),所以數(shù)據(jù)發(fā)送時定義了一個前導碼,即三個‘0’,一個‘1’,然后是數(shù)據(jù)。
這個接口電路經(jīng)過實際運行檢驗,具有電路可靠、使用靈活、成本低等特點。