基于MT9075數(shù)字中繼接口的設(shè)計與實現(xiàn)
由于數(shù)字技術(shù)和計算機技術(shù)的發(fā)展,傳統(tǒng)的模擬交換機已經(jīng)被程控數(shù)字交換機所取代,數(shù)字中繼接口是數(shù)字交換機中不可或缺的部分。本文就是利用Mitel公司生產(chǎn)的MT9075芯片來實現(xiàn)數(shù)字中繼接口的功能。
?。薄ⅲ停裕梗埃罚敌酒喗椋郏保?/FONT>
?。停裕梗埃罚凳恰。停椋簦澹臁」就瞥龅囊粋€可以產(chǎn)生并處理PCM30信號的器件,不僅合并了PCM30成幀器、線性接口部件(UU)和鏈路控制器,還具有時鐘同步、中斷控制、同步處理與差錯保護、CAS信令、CCS信令處理、信號回送等功能。通過MT9075提供的并行微處理器接口,主CPU可對其狀態(tài)字進行讀寫控制和中斷接收處理,從而方便地實現(xiàn)對線路信令的控制和處理。用MT9075來實現(xiàn)數(shù)字中繼接口既可以減輕CPU的負(fù)擔(dān),又可以簡化系統(tǒng)硬件和軟件的設(shè)計。
2、硬件電路設(shè)計
本文采用ARM芯片S3C44B0作為主控CPU,來完成對整個系統(tǒng)的控制;用MT8980作為數(shù)字交換網(wǎng)絡(luò)部分的核心器件;用MT9075作為數(shù)字中繼接口的核心器件。圖1為數(shù)字中繼接口的具體電路。電路設(shè)計是根據(jù)芯片要求設(shè)計必要的外圍電路,MT9075有3個主要端口:
1)線路接口,傳輸?shù)拇a流是2.048M?。猓椋簦蟮碾p極性HDB3碼,具有PCM30/32系統(tǒng)的幀結(jié)構(gòu),用于連接PCM30/32基群線路。[2] 通過外接發(fā)送和接收兩變壓器與外部中繼線相連,其中,TX1、TX2為線路發(fā)送端,經(jīng)一阻抗匹配電路連接一個1:2的發(fā)送變壓器;RX1、RX2為線路接收端,經(jīng)一阻抗匹配電路連接一個1:1的接收變壓器。
?。玻樱浴拢眨咏涌冢瑐鬏?shù)拇a流是2.048M?。猓椋簦蟮膯螛O性碼,碼流具有PCM30/32系統(tǒng)的幀結(jié)構(gòu),其中DSTi連接數(shù)字交換芯片MT8980的輸出通道STO,DSTo連接MT8980的輸入通道STI。
?。常┨幚頇C接口,A0~A5,DO~D7,CS,R/W 等。MT9075與處理機的接口可采用兩種接法:INT或MOT,這里采用INT接法。MT9075的地址線A0~A4、DO~D7直接與S3C44B0的相應(yīng)的地址線和數(shù)據(jù)線相連,作為S3C44B0的一個外部擴展器件占用一定的地址空間。S3C44B0通過片選信號NGCS5和/RD、/WR讀寫信號對MT9075進行控制。[3]
此外,MT9075可以自動監(jiān)控各種同步狀態(tài),比如位同步、基本幀同步、CRC-4多幀同步、遠(yuǎn)程多幀同步。無論這幾種同步中的任何一個出現(xiàn)丟失的情況,均無法完成正常通信,為使通信穩(wěn)定,本文中MT9075的20MHz定時信號以及系統(tǒng)時鐘C4b(4.096?。停龋┖突編叫盘枺疲铮猓ǎ福耄龋┯筛叻€(wěn)頻時鐘產(chǎn)生器直接給出,MT9075能夠利用內(nèi)部的數(shù)字鎖相環(huán)從這些信號中自動分頻產(chǎn)生64?。耄龋膬?nèi)部時鐘和2.048?。停龋奈煌綍r鐘E2o。
圖1 MT9075 電路圖
?。?、軟件部分設(shè)計
軟件分別從對MT9075的讀寫控制、初始化處理以及數(shù)字中繼處理程序三方面進行介紹。MT9075分配的地址是S3C44B0的NGCS5下的一部分地址,其基地址為0a000000,定義如下:
?。#洌澹妫椋睿濉 。停裕梗埃罚担撸校幔纾濉 。ǎǎ觯铮欤幔簦椋欤濉。酰睿螅椋纾睿澹洹。悖瑁幔颉。。埃埃幔埃埃埃埃埃埃?/FONT>
其頁類的控制字的地址分別為0a000010~0a00001f,如Page?。埃保认拢停酰欤簦椋妫颍幔恚?、National?。拢椋簟。拢酰妫妫澹颉。幔睿洹。模幔簦帷。蹋椋睿搿。樱澹欤澹悖簦椋铮睢。祝铮颍洹『停停铮洌濉。樱澹欤澹悖簦椋铮睢。茫铮睿簦颍铮臁。祝铮颍涞刂贩謩e為0a000010和0a000011,定義如下:
?。#洌澹妫椋睿濉 。停裕梗埃罚担撸粒模模遥啊 。ǎǎ觯铮欤幔簦椋欤濉。酰睿螅椋纾睿澹洹。悖瑁幔颉。。埃埃幔埃埃埃埃保埃?/FONT>
?。#洌澹妫椋睿濉 。停裕梗埃罚担撸粒模模遥薄 。ǎǎ觯铮欤幔簦椋欤濉。酰睿螅椋纾睿澹洹。悖瑁幔颉。。埃埃幔埃埃埃埃保保?/FONT>
?。常薄Γ停裕梗埃罚档淖x寫控制
對MT9075的讀寫控制主要分為2個步驟:第一步選擇要讀寫的控制字頁號,第二步對該頁內(nèi)的控制字進行讀寫控制操作。如對MT9075進行軟復(fù)位,代碼如下所示:
MT9075_Page?。健。埃埃?; ?。x擇Page?。埃保龋ǎ停幔螅簦澹颉。茫铮睿簦颍铮臁。保?/FONT>
?。停裕梗埃罚担撸粒模模遥薄。健。埃玻?; ?。瘜Γ校幔纾濉。埃保认碌目刂谱郑停铮洌濉。樱澹欤澹悖簦椋铮睢。茫铮睿簦颍铮臁。祝铮颍洌ǎ保保龋M行寫操作設(shè)置MT9075軟件復(fù)位,寫入控制字0x20
3.2 對MT9075的初始化處理
在系統(tǒng)上電的時候需要對MT9075進行初始化處理,包括MT9075軟件復(fù)位、中斷處理、CAS模式選擇、阻抗工作方式設(shè)置、JA模式設(shè)置、DSTo輸出使能、傳輸信號設(shè)置等方面。
為使代碼簡潔,用一個函數(shù)代替了上面對MT9075讀寫控制的兩個步驟,函數(shù)如下:
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ校幔纾澹危?, RegAddr, Wdata)
?。 。停裕梗埃罚担撸校幔纾濉。健。校幔纾澹危?;
RegAddr?。健。祝洌幔簦幔弧 。?/FONT>
對MT9075的初始化代碼如下:
Control_9075?。ǎ埃埃保停裕梗埃罚担撸粒洌洌颍?,?。埃玻埃?;
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃?,MT9075_Addr11,?。埃妫妫?;
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃?,MT9075_Addr10,?。埃悖福?/FONT>
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃?,MT9075_Addr1,?。埃福玻?;
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃?,MT9075_Addr15,?。埃埃玻?;
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃?,MT9075_Addr8,?。埃幔埃?;
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃?,MT9075_Addr3,?。埃埃矗?;
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃保停裕梗埃罚担撸粒洌洌颍保?,?。埃福悖?;
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃?,MT9075_Addr2,?。埃梗妫?;
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃?,MT9075_Addr1,?。埃妫妫?;
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃担停裕梗埃罚担撸粒洌洌颍?,?。埃妫妫?;
?。 。 。 。?/FONT>
?。茫铮睿簦颍铮欤撸梗埃罚怠。ǎ埃埃?,MT9075_Addr15,?。埃妫妫?/FONT>
當(dāng)CPU需要發(fā)送話路的線路信令時,可以通過對Page 05H?。ǎ裕颍幔睿螅恚椋簟。茫瑁幔睿睿澹臁。粒螅螅铮悖椋幔簦澹洹。樱椋纾睿幔欤欤椋睿纭。校幔纾澹┑南嚓P(guān)寄存器進行操作。在初始化的最后是對Page 05H中的控制字進行操作,向MT9075_Addr1到MT9075_Addr15中寫入ff,使得輸出通道DSTo在上電后輸出為高電平,在上面省略了向MT9075_Addr3到MT9075_Addr14中寫ff幾行代碼。
?。常场?shù)字中繼處理程序
在實現(xiàn)過程中,信令部分是自己設(shè)計的一個簡單協(xié)議,不是標(biāo)準(zhǔn)的E1信令。信令在DSTo和DSTi的第16時隙中傳輸,同步信令在第0時隙中傳輸,主叫方的信令通過接口線傳輸?shù)竭_被叫中繼,存入被叫方MT9075的寄存器中,被叫方CPU通過讀取寄存器中的信令內(nèi)容來執(zhí)行相應(yīng)的操作,被叫方信令到達主叫方和這個過程相反。圖2為一用戶通過數(shù)字中繼呼叫另一用戶的示意圖。此圖假定被叫方不忙,若此過程中任一時刻被叫方忙,則發(fā)送被叫忙的信息給主叫方,讓主叫方關(guān)閉已開通道等待下次呼叫。圖3為數(shù)字中繼處理程序的基本流程圖。
圖2 數(shù)字中繼呼叫示意圖
?。?、結(jié)束語
應(yīng)用以上方案設(shè)計的數(shù)字中繼續(xù)接口電路的硬件軟件都已調(diào)試通過,工作穩(wěn)定,能夠滿足用戶的正常使用。用單片MT9075可以同時實現(xiàn)30對用戶的交換工作,考慮到用戶不在同時通話,即可以非常方便的實現(xiàn)更多用戶的交換工作。
圖3 數(shù)字中繼處理程序基本流程圖
評論