基于SM8951的小型程控交換機(jī)設(shè)計(jì)
引言
雙音多頻(DTMF)信號(hào)由貝爾實(shí)驗(yàn)室發(fā)明,最初是用于電話系統(tǒng)中電話機(jī)與交換機(jī)之間的一種用戶信令,通常用于發(fā)送被叫號(hào)碼。DTMF信號(hào)由高頻群和低頻群組成,高、低頻群各包含四個(gè)頻率。一個(gè)高頻信號(hào)和一個(gè)低頻信號(hào)疊加組成一個(gè)組合信號(hào),代表一個(gè)數(shù)字。DTMF信令有16個(gè)編碼。雙音多頻的撥號(hào)鍵盤是4×4的矩陣。每按一個(gè)鍵就發(fā)送一個(gè)高頻和低頻的正弦信號(hào)組合,因?yàn)槿魏?個(gè)頻率之間沒有諧波干擾,因此其抗干擾能力很強(qiáng),遠(yuǎn)程傳輸之后的誤判率很低。
交換機(jī)中DTMF、解碼芯片采用CM8870實(shí)現(xiàn)通訊線路上雙音多頻信號(hào)的解碼功能,該芯片將偵聽到的雙音多頻信號(hào)轉(zhuǎn)換為二進(jìn)制四位代碼,發(fā)往單片機(jī),為單片機(jī)提供數(shù)據(jù)流的目的信息。雙音多頻信號(hào)是一組由高頻信號(hào)與低頻信號(hào)疊加而成的組合信號(hào)。雙音多頻信號(hào)解碼是交換機(jī)中非常重要的組成部分,是否能夠準(zhǔn)確地解碼出線路發(fā)送來的雙音多頻信號(hào)是建立通信鏈路的關(guān)鍵,它的工作情況直接決定了遠(yuǎn)程數(shù)據(jù)通訊的可靠性。本系統(tǒng)采用的雙音頻解碼芯片CM8870集成了頻帶分離濾波器和數(shù)字解碼器,可以將接收到的DTMF信號(hào)轉(zhuǎn)換成8421碼。
1CM8870解碼功能實(shí)現(xiàn)
1.1CM8870芯片簡(jiǎn)介
CAMD公司的CM8870雙音多頻信號(hào)解碼器為單片18腳DIP封裝芯片,該芯片內(nèi)含濾波器與數(shù)據(jù)解碼功能,可濾除340~3400Hz外的非音頻信號(hào),同時(shí)將音頻信號(hào)轉(zhuǎn)換為二進(jìn)制4位數(shù)字信號(hào),內(nèi)部CMOS工藝大大降低了芯片功耗,功耗僅為35mW。CM8870內(nèi)置一個(gè)差分輸入放大器、一個(gè)時(shí)鐘產(chǎn)生器及一個(gè)三態(tài)鎖存接口總線,減少了芯片外圍組件,只需要接一個(gè)普通晶振即可正常工作。其特點(diǎn)如下:提供DTMF信號(hào)分離濾波和譯碼功能;功耗低于35mW;可以工作在工業(yè)溫度范圍內(nèi);可外接晶振,且內(nèi)含震蕩器產(chǎn)生基準(zhǔn)頻率信號(hào);采用18引腳DIP,EIAJ,OIC,PLCC封裝。
CM8870電路的基本特性是提供DTMF信號(hào)分離濾波和譯碼功能,輸出相應(yīng)的16種DTMF頻率組合的4位并行二進(jìn)制碼。電路輸出的二進(jìn)制碼D1~D4由數(shù)據(jù)輸出允許段TOE控制,當(dāng)TOE為高電平時(shí),D1~D4輸出與當(dāng)前輸入的DTMF信號(hào)相對(duì)應(yīng)的二進(jìn)制碼;當(dāng)TOE為低電平時(shí),D1~D4端呈高阻狀態(tài)。運(yùn)放和R1,R2,C1組成一反相放大器,對(duì)輸入的DTMF信號(hào)進(jìn)行隔離放大,其增益.K=-R2/R1,改變R2的值可改變?cè)鲆娴拇笮?,VREF為基準(zhǔn)電壓輸出端,取VDD/2=2.5V;INH和PD為內(nèi)部電路連接點(diǎn),應(yīng)接地;OSCl和OSC2為振蕩器輸入輸出端,外接3.58MHz晶振與內(nèi)部振蕩器產(chǎn)生基準(zhǔn)頻率信號(hào);STD為延遲控制輸出端,當(dāng)一組有效的雙音頻信號(hào)被接收時(shí)輸出“1”,否則輸出“O”;ESt為初始控制輸出端,若電路檢測(cè)出可識(shí)別的單音對(duì),則此端變成高電平,若無輸入信號(hào)或連續(xù)失真,則ESt返回低電平;SI/GT為控制輸入端/時(shí)間監(jiān)測(cè)輸出端。功能框圖如圖1所示。
雙音多頻信號(hào)是用兩個(gè)不同頻率的信號(hào)組合來表示一個(gè)字符或數(shù)字。這兩個(gè)頻率一個(gè)選自低頻段,一個(gè)選自高頻段,每個(gè)頻段分別包含四個(gè)不同的頻率,因而總共可以組合成16種選擇,而常用的只有12種,它們是O~9,以及#號(hào)和*號(hào)。CM8870能將DTMF信號(hào)譯碼成4位二進(jìn)制碼。
1.2CM8870的收號(hào)過程
CM8870組成收號(hào)電路,它的輸入為來自模擬用戶接口雙音多頻信號(hào),輸出為4位二進(jìn)制數(shù)據(jù),供處理器從數(shù)據(jù)總線口讀入。其收號(hào)過程如下:模擬信號(hào)從IN一腳引入后,經(jīng)雙音濾波器初步濾除帶外干擾信號(hào),隨后,此濾出信號(hào)在經(jīng)高群濾波器和低群濾波器分別濾出其中的高頻和低頻分量,這兩種分量分別通過過零檢測(cè)后送給數(shù)字檢測(cè)計(jì)算電路;該電路對(duì)音頻信號(hào)進(jìn)行進(jìn)一步的優(yōu)化,能排除外部噪聲因偶然含有某些特定頻率而被編碼器編碼,或者影響編碼器的編碼,從而引起后續(xù)的收號(hào)錯(cuò)誤。當(dāng)高、低頻組信號(hào)同時(shí)被編碼器檢測(cè)到時(shí),ESt腳將輸出高電平作為有效檢測(cè)DTMF信號(hào)的標(biāo)志,而當(dāng)DTMF信號(hào)消失時(shí),ESt腳將輸出低電平。為了防止外部噪聲被CM8870誤編碼,編碼器要求被編碼的音頻信號(hào)能維持一段時(shí)間,這段時(shí)間由外部的一個(gè)RC電路來決定。如前所述,當(dāng)音頻信號(hào)被檢測(cè)到時(shí),ESt輸出高電平1,電容放電,VC上的電壓值上升(假設(shè)信號(hào)在整個(gè)要求時(shí)間內(nèi)部存在),VC升到一個(gè)門限值Vrst時(shí),該音頻信號(hào)被編碼,變成了數(shù)字信號(hào),該數(shù)字信號(hào)將被鎖存起來,此時(shí),GT就為高,使VC點(diǎn)的電壓由門限值升到VDD,此后,只要ESt仍保持為高,GT就為高,外部的RC電路回到初始狀態(tài),隨后,經(jīng)過一段鎖存操作引起的延時(shí)后,STD腳輸出高電平,表示信號(hào)鎖存完畢。這時(shí),若要從Q1~Q4上讀這4位編碼,應(yīng)使TOE為高,打開鎖存器,就完成了DTMF的收號(hào)任務(wù)。
2單片機(jī)控制CM8870設(shè)計(jì)
2.1SM895l控制框圖
SM8951外圍電路連接如圖2所示,單片機(jī)通過P1.4管腳與模擬摘掛機(jī)電路相連,有設(shè)備呼叫通信時(shí),單片機(jī)會(huì)通過該管腳檢測(cè)到線路上有摘機(jī)動(dòng)作,然后單片機(jī)控制鈴流發(fā)生器向呼叫方發(fā)送撥號(hào)音,收到號(hào)碼后,將該號(hào)碼用DTMF、解碼器解碼并經(jīng)過P2.7腳發(fā)給單片機(jī),單片機(jī)對(duì)該號(hào)碼進(jìn)行分析,確定主叫方呼叫的對(duì)象,而后單片機(jī)摘機(jī),判定終端交換機(jī)是否空閑,若空閑則發(fā)送呼叫號(hào)碼,收到回應(yīng)后,給被叫方發(fā)送振鈴音,給主叫方發(fā)送回鈴音,被叫一旦摘機(jī),則單片機(jī)馬上退出操作,完成呼叫轉(zhuǎn)移。
CM8870與SM8951單片機(jī)的接口電路如圖3所示。SM8951單片機(jī)的PO.O~PO.3讀取CM8870的譯碼數(shù)據(jù),當(dāng)CM8870接收到一個(gè)有效DTMF信號(hào)后,ESt端首先變?yōu)楦唠娖?,?jīng)積分電路使控制輸入端SI電平升高,若SI端電平高于門限電平,CM8870內(nèi)部的4位二進(jìn)制碼被更新,STD端變?yōu)楦唠娖?,SM8951單片機(jī)通過P2.7口檢測(cè)到這一信息后就開始接收。若CM8870無DTMF信號(hào)輸入或DTMF信號(hào)連續(xù)失真,則ESt端為低電平,SI端為低電平,STD端輸出低電平。
雙音頻解碼電路如圖4所示。雙音頻信號(hào)輸入點(diǎn)與一個(gè)三極管的集電極V1相連接,當(dāng)V1導(dǎo)通時(shí),從電話線上送來的雙音頻信號(hào)進(jìn)入CM8870。如果CM8870接收到的是有效的DTMF信號(hào),便解碼出對(duì)應(yīng)的8421碼從數(shù)據(jù)輸出端Q1~Q4輸出,該數(shù)據(jù)進(jìn)入單片機(jī)PO.0~P0.3口,完成數(shù)據(jù)采集、判斷和處理。另外,從CM8870的第15腳出來的狀態(tài)信號(hào)進(jìn)入單片機(jī)的P2.7端口,通知單片機(jī)讀取數(shù)據(jù)。
2.2單片機(jī)控制過程
單片機(jī)控制交換機(jī)通信時(shí)要時(shí)時(shí)監(jiān)控通信鏈路中是否有摘機(jī)、掛機(jī)動(dòng)作。摘機(jī)、掛機(jī)電路其實(shí)就是一個(gè)電子開關(guān),控制電路板和電話線之間的連接。平時(shí)這個(gè)開關(guān)應(yīng)該處于斷開的狀態(tài),以免造成電話線占線;當(dāng)需要實(shí)現(xiàn)遠(yuǎn)程控制時(shí),如果振鈴響5次而無人接聽,這時(shí)就需要讓電路板和電話線路接通,即完成摘機(jī)動(dòng)作。V1就是一個(gè)電子開關(guān),該開關(guān)的導(dǎo)通與否受到單片機(jī)P1.4口的控制。摘機(jī)掛機(jī)電路如果用繼電器設(shè)計(jì),電路要簡(jiǎn)單一些,但在實(shí)用中發(fā)現(xiàn)耗電大,5V的繼電器吸合電流高達(dá)30μA,另外繼電器也容易產(chǎn)生火花干擾。采用晶體管摘機(jī)掛機(jī)電路克服了這些問題。
軟件設(shè)計(jì)流程圖如圖5所示。
當(dāng)單片機(jī)控制CM8870作為主叫方時(shí),單片機(jī)要先對(duì)CM8870進(jìn)行初始化,然后控制摘機(jī)電路摘機(jī),收到被叫方的撥號(hào)音后,單片機(jī)控制鈴流發(fā)生器產(chǎn)生振鈴,作為主叫方呼叫。等待一段時(shí)間后,看對(duì)方有沒有接機(jī)。若對(duì)方摘機(jī),則通信開始,否則掛機(jī),通信結(jié)束。
當(dāng)中繼作為被叫方時(shí),啟動(dòng)單片機(jī)后,程序要首先對(duì)CM8870進(jìn)行初始化,然后隨時(shí)檢測(cè)是否有振鈴音,如果有,由單片機(jī)控制摘機(jī)電路主動(dòng)摘機(jī),等待一段時(shí)間,確保已經(jīng)摘機(jī)后,單片機(jī)控制鈴流發(fā)生器產(chǎn)生振鈴,作為主叫方呼叫。等一段時(shí)間后,完成呼叫轉(zhuǎn)移功能,掛機(jī),結(jié)束通信。
3結(jié)語
本系統(tǒng)基于SM8951單片機(jī)與CM8870雙音多頻解碼芯片實(shí)現(xiàn)小型工控交換機(jī)功能,該小型交換機(jī)可用于以電力線或雙絞線為傳輸載體的工控網(wǎng)絡(luò)遠(yuǎn)程數(shù)據(jù)傳輸,依據(jù)PSTN公共電話交換網(wǎng)絡(luò)協(xié)議與信令標(biāo)準(zhǔn),采用電路交換原理實(shí)現(xiàn)交換功能。該小型交換機(jī)可置于網(wǎng)絡(luò)通信的中繼器中,也可置于末端的數(shù)據(jù)處理器中,通常,該交換機(jī)只負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù),為數(shù)據(jù)通信建立傳輸鏈路,數(shù)據(jù)在交換機(jī)中的傳輸是雙向的。交換機(jī)不是數(shù)據(jù)的最終目的地,而只是一個(gè)“驛站”。雖然隨著數(shù)字通信技術(shù)的發(fā)展,交換技術(shù)日趨復(fù)雜,交換功能日益完善,但對(duì)于工控網(wǎng)絡(luò)來說,基于有線網(wǎng)絡(luò)的電路交換技術(shù)仍以其低成本,易實(shí)現(xiàn)、安全可靠性高等優(yōu)點(diǎn)而被廣泛使用。
交換機(jī)相關(guān)文章:交換機(jī)工作原理
評(píng)論