摘 要: 固定電話應(yīng)用廣泛,管理固定電話話務(wù)信息的監(jiān)測終端也有極廣的應(yīng)用市場。為了實現(xiàn)對固話話務(wù)明細(xì)的實時獲取和電子管理,設(shè)計以STM32為核心的監(jiān)測終端。該終端通過外圍電路獲取FSK/DTMF制式來顯信息,檢測摘掛機(jī)狀態(tài)以及按鍵組合,并通過網(wǎng)絡(luò)模塊與服務(wù)器實現(xiàn)通信。實際應(yīng)用中,該終端有較高的穩(wěn)定性、準(zhǔn)確性和實時性,并且已成功應(yīng)用到掛機(jī)短信系統(tǒng)中。
關(guān)鍵詞: STM32; FSK/DTMF; 固定電話; 話務(wù)監(jiān)測
中圖分類號: TN931+.3?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2016)20?0111?03
Abstract: Since the fixed?line telephone is widely used, the monitoring terminal managing the fixed?line telephone traffic information also has a wide application market. In order to realize the real?time acquirement and e?management of the fixed?line telephone traffic information details, a monitoring terminal was designed, which takes STM32 as the core. This terminal acquires the ID caller information in FSK/DTMF modes and detects the status of on/off hook and keystroke combination by means of peripheral circuit, and communicates with the PC server via network module. In practical applications, this terminal has high stability, accuracy and real?time performance, and is applied to the on?hook short message system successfully.
Keywords: STM32; FSK/DTMF; fixed?line telephone; telephone traffic monitoring
0 引 言
話務(wù)信息的獲取與管理在銷售、業(yè)務(wù)聯(lián)系和售后等商用固定電話領(lǐng)域起到越來越重要的作用。來電顯示,又稱主叫識別信息傳送及顯示(CID),該業(yè)務(wù)的主要功能是向被叫用戶提供主叫號碼、呼叫時間和日期等主叫識別信息。普通的來電可以在來電顯示屏幕上顯示主叫識別信息,但是難以實現(xiàn)對詳細(xì)話務(wù)信息的存儲和管理。本設(shè)計在普通來電顯示的基礎(chǔ)上通過網(wǎng)絡(luò)與上位機(jī)進(jìn)行通信,獲取固定電話的話務(wù)明細(xì),并將話務(wù)明細(xì)上傳服務(wù)器,實現(xiàn)話務(wù)信息的存儲與管理,并以此為依托擴(kuò)展更多的功能。目前國際上不同地區(qū)規(guī)定的CID數(shù)據(jù)傳送制式不同[1]。本設(shè)計以STM32為核心的話務(wù)檢測終端與被監(jiān)測的固定電話并聯(lián),通過外圍電路獲取并解析FSK/DTMF兩種制式的來顯,檢測摘掛機(jī)狀態(tài),記錄按鍵信息。
1 系統(tǒng)總體設(shè)計
該監(jiān)測終端主要由監(jiān)聽模塊、主控模塊和網(wǎng)絡(luò)模塊三部分構(gòu)成。主控芯片采用ST公司的STM32F1032ET6,它具有先進(jìn)架構(gòu)的Cortex?M3內(nèi)核、資源豐富、實時性強(qiáng)、功耗低。監(jiān)聽模塊由FSK信號解調(diào)電路、DTMF信號解碼電路和摘掛機(jī)檢測電路組成,通過RJ11接口與被監(jiān)測電話實現(xiàn)并接。系統(tǒng)通過驅(qū)動程序控制DM9000實現(xiàn)網(wǎng)絡(luò)模塊,為終端和服務(wù)器之間提供雙向通信渠道。系統(tǒng)框圖如圖1所示。
外圍監(jiān)聽電路檢測到有效的來電鈴流時,引發(fā)系統(tǒng)中斷,系統(tǒng)先將來電號碼等信息存儲,再判斷摘掛機(jī)狀態(tài)來確定已接還是未接,并在通話過程中記錄按鍵信息,最終將所有采集信息以來電包的形式上傳服務(wù)器;摘掛機(jī)監(jiān)聽模塊檢測主動摘機(jī)信號,則記錄按鍵信息,并將信息以撥號包的形式上傳服務(wù)器。
2 監(jiān)聽模塊設(shè)計
國內(nèi)來電顯示(CID)的信息發(fā)送格式有頻移鍵控(FSK)和雙音多頻(DTMF)兩種制式。本設(shè)計采用雙制式解調(diào)電路,可以識別和接收兩種制式的來顯信息。
2.1 FSK監(jiān)聽模塊設(shè)計
FSK解調(diào)電路,采用Holtek公司的HT9032C主叫號碼識別接收芯片。它滿足Bell202和CCITT V.23 1 200 b/s FSK數(shù)據(jù)傳輸標(biāo)準(zhǔn),能同時檢測振鈴和載波[2]。FSK制式支持被叫用戶掛機(jī)和摘機(jī)兩種狀態(tài)下的信息傳送[3]。在掛機(jī)狀態(tài)下,來顯信號位于第一次和第二次振鈴之間。圖2是HT9032C的時序圖,檢測到有效鈴流時,nRDET輸出下降沿,觸發(fā)STM32中斷,系統(tǒng)置位振鈴標(biāo)志,使能模擬串口做好接收來顯數(shù)據(jù)的準(zhǔn)備;檢測到有效載波,nCDET輸出下降沿,系統(tǒng)通過讀取該引腳的電平值來判斷是否接收到有效載波;HT9032C解調(diào)芯片將主叫識別信號解調(diào)成異步串行數(shù)據(jù),從DOUTC輸出。DOUT輸出的信號除了主叫識別信號外,還有信道占用信號和標(biāo)志信號。主叫識別信息格式有單數(shù)據(jù)消息格式(SDMF)和復(fù)合數(shù)據(jù)消息格式(MDMF)[4]。FSK監(jiān)聽模塊原理圖如圖3所示。
解調(diào)后信號通過I/O口輸入,STM32通過中斷或查詢方式進(jìn)行讀取[5],系統(tǒng)通過定時器中斷,讀取nCDET的電平來判斷是否有有效載波。當(dāng)存在有效載波時,記錄模擬端口的電平值。每檢測8次記錄當(dāng)前電平,記錄8個電平后開始檢測停止位,將檢測到的模擬端口電平值存放在接收緩沖中。
2.2 DTMF監(jiān)聽模塊設(shè)計
DTMF技術(shù)有傳輸速度高和抗干擾能力強(qiáng)等優(yōu)點,8種頻率按4×4矩陣形成16種組合代表不同的數(shù)字和字母,其中包括10個數(shù)字和六個功能符[6]。DTMF解碼電路采用HT9170,電話的撥號也采用DTMF編碼。HT9170具有工作電壓低、外圍電路簡單、使用元件少且無需外部濾波器等優(yōu)點[7]。輸入的DTMF制式信號通過前置濾波器濾除噪聲及低頻干擾(350~400 Hz),經(jīng)過濾波,輸入的信號只剩高低兩個頻率。通過頻率檢測和編碼生成4位BCD碼,完成解碼后,在DV腳輸出高電平,并將數(shù)據(jù)鎖存在D0~D3輸出口。DV引腳上的上升沿觸發(fā)系統(tǒng)中斷,將OE置位使能輸出,讀取DTMF解碼數(shù)據(jù)并判斷數(shù)據(jù)類型。DTMF解碼電路如圖4所示。
在判斷數(shù)據(jù)類型時,首先檢測是否摘機(jī),若未摘機(jī)則屬于DTMF制式來顯信息;若摘機(jī)再判斷來電摘機(jī)標(biāo)志位是否置位,若置位則屬于接通電話后的有效按鍵組合,否則為撥號按鍵組合。根據(jù)不同的數(shù)據(jù)類型,將解碼數(shù)據(jù)存入相應(yīng)的緩存。
3 網(wǎng)絡(luò)模塊設(shè)計
網(wǎng)絡(luò)接口模塊通過驅(qū)動對以太網(wǎng)控制芯片DM9000的控制,實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸功能。DM9000是DAVICOM研發(fā)的一款高度集成,低功耗的10/100 Mb/s以太網(wǎng)芯片[8]。網(wǎng)絡(luò)設(shè)備接收數(shù)據(jù)包是通過中斷實現(xiàn)的[9]。STM32和DM9000通過數(shù)據(jù)總線、地址總線和控制總線連接,STM32、DM9000、網(wǎng)絡(luò)變壓器和RJ45接頭構(gòu)成了網(wǎng)絡(luò)接口平臺,如圖5所示。
STM32通過網(wǎng)絡(luò)接收來自上位機(jī)的請求和控制信號。這一環(huán)節(jié)主要由DM9000來實現(xiàn),DM9000驅(qū)動程序運行時首先監(jiān)測網(wǎng)卡并獲取網(wǎng)卡參數(shù),但檢測到中斷源時,開中斷進(jìn)入中斷服務(wù)程序傳送數(shù)據(jù)。
4 數(shù)據(jù)解析過程
系統(tǒng)數(shù)據(jù)解析的過程如圖6所示。兩次振鈴的間隔小于5 s,當(dāng)檢測到有效鈴流時,響鈴標(biāo)志位置位,并將來顯信息存儲。系統(tǒng)2 ms進(jìn)行一次T0計時器中斷,若響鈴標(biāo)志為1且在5 s時間內(nèi)摘機(jī),則為已接來電,檢測按鍵組合,存入數(shù)據(jù)包;若未在5 s內(nèi)摘機(jī),則主叫方已經(jīng)掛斷,來電未接,將未接標(biāo)志存入數(shù)據(jù)包相應(yīng)位。當(dāng)檢測到有效的DTMF信號,首先判斷數(shù)據(jù)類型,存入緩存。按鍵之間最長相隔3 s,一旦超過3 s系統(tǒng)不再接收按鍵信息。
其中direction_buf存放的信息表示是來電信息還是撥號信息,這里約定“#A0”表示撥號信息,“#A1”表示來電信息;operation_buf中“B0”表示摘機(jī),“B1”表示掛機(jī);“*”表示有按鍵組合,“B2”表示未接;ID_buf存放檢測終端的ID,每個終端對應(yīng)惟一的ID號,便于服務(wù)器進(jìn)行管理;num_buf存放來顯主叫號碼;button_buf存放按鍵組合信息。通過數(shù)據(jù)解析過程將對應(yīng)的數(shù)據(jù)或標(biāo)志存放入相應(yīng)的緩存,最終以撥號包和來電包的形式上傳服務(wù)器。
5 結(jié) 語
本設(shè)計的核心是數(shù)據(jù)的監(jiān)聽解碼、數(shù)據(jù)解析和網(wǎng)絡(luò)通信,監(jiān)聽模塊采用雙制式解調(diào)電路,網(wǎng)絡(luò)模塊實現(xiàn)終端與上位機(jī)的雙向通信。方案可行性高且成本較低,采用STM32作主控芯片減少了軟件工程量,穩(wěn)定性高,可以應(yīng)用到商用固定電話話務(wù)管理與短信掛載平臺等實際應(yīng)用中。
參考文獻(xiàn)
[1] 薛瑩,徐慨,黃麟舒.來電顯示電路設(shè)計[J].船艦電子工程, 2008,28(9):39?42.
[2] 高萬兵,王忠慶,任一峰.基于HT9032C的新型來電顯示器設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(3):49?51.
[3] 楊雯靜,羅志昕,劉錦高,等.FSK制式來電顯示的幾種解碼方式比較[J].國外電子元器件,2006(5):29?32.
[4] 中華人民共和國信息產(chǎn)業(yè)部.固定電話網(wǎng)主叫識別信息傳送技術(shù)要求測試方法:YD/T1277.1—2003[S].北京:人民郵電出版社,2003.
[5] 張旭,亓學(xué)廣,李世光,等.基于STM32電力數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].電子測量技術(shù),2010,33(11):90?93.
[6] 呂仁禮,周金和,李茂祥.電話DTMF數(shù)據(jù)收發(fā)模塊的設(shè)計[J].電子技術(shù)應(yīng)用,1998(4):46?48.
[7] 劉春生,孫志勇.DTMF芯片HT9170在數(shù)據(jù)通信中的應(yīng)用[J]. 國外電子元器件,2002(1):22?24.
[8] 宋寶華.Linux設(shè)備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社, 2008.
[9] 何永琪,楊紅濤,焦悅光,等.嵌入式Linux 系統(tǒng)實用開發(fā)[M]. 北京:電子工業(yè)出版社,2010.