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