如何設(shè)計與實現(xiàn)基于MT9075數(shù)字中繼接口?
由于數(shù)字技術(shù)和計算機技術(shù)的發(fā)展,傳統(tǒng)的模擬交換機已經(jīng)被程控數(shù)字交換機所取代,數(shù)字中繼接口是數(shù)字交換機中不可或缺的部分。本文就是利用Mitel公司生產(chǎn)的MT9075芯片來實現(xiàn)數(shù)字中繼接口的功能。
本文引用地址:http://www.ex-cimer.com/article/201808/384884.htm1、MT9075芯片簡介[1]
MT9075是 Mitel 公司推出的一個可以產(chǎn)生并處理PCM30信號的器件,不僅合并了PCM30成幀器、線性接口部件(UU)和鏈路控制器,還具有時鐘同步、中斷控制、同步處理與差錯保護(hù)、CAS信令、CCS信令處理、信號回送等功能。通過MT9075提供的并行微處理器接口,主CPU可對其狀態(tài)字進(jìn)行讀寫控制和中斷接收處理,從而方便地實現(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 bit/s的雙極性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的接收變壓器。
2)ST—BUS接口,傳輸?shù)拇a流是2.048M bit/s的單極性碼,碼流具有PCM30/32系統(tǒng)的幀結(jié)構(gòu),其中DSTi連接數(shù)字交換芯片MT8980的輸出通道STO,DSTo連接MT8980的輸入通道STI。
3)處理機接口,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進(jìn)行控制。[3]
此外,MT9075可以自動監(jiān)控各種同步狀態(tài),比如位同步、基本幀同步、CRC-4多幀同步、遠(yuǎn)程多幀同步。無論這幾種同步中的任何一個出現(xiàn)丟失的情況,均無法完成正常通信,為使通信穩(wěn)定,本文中MT9075的20MHz定時信號以及系統(tǒng)時鐘C4b(4.096 MHz)和基本幀同步信號Fob(8kHz)由高穩(wěn)頻時鐘產(chǎn)生器直接給出,MT9075能夠利用內(nèi)部的數(shù)字鎖相環(huán)從這些信號中自動分頻產(chǎn)生64 kHz的內(nèi)部時鐘和2.048 MHz的位同步時鐘E2o。
圖1 MT9075 電路圖
3、軟件部分設(shè)計
軟件分別從對MT9075的讀寫控制、初始化處理以及數(shù)字中繼處理程序三方面進(jìn)行介紹。MT9075分配的地址是S3C44B0的NGCS5下的一部分地址,其基地址為0a000000,定義如下:
#define MT9075_Page (*(volatile unsigned char *) 0x0a000000)
其頁類的控制字的地址分別為0a000010~0a00001f,如Page 01H下Multiframe、National Bit Buffer and Data Link Selection Word 和Mode Selection Control Word地址分別為0a000010和0a000011,定義如下:
#define MT9075_ADDR0 (*(volatile unsigned char *) 0x0a000010)
#define MT9075_ADDR1 (*(volatile unsigned char *) 0x0a000011)
3.1 對MT9075的讀寫控制
對MT9075的讀寫控制主要分為2個步驟:第一步選擇要讀寫的控制字頁號,第二步對該頁內(nèi)的控制字進(jìn)行讀寫控制操作。如對MT9075進(jìn)行軟復(fù)位,代碼如下所示:
MT9075_Page = 0x01; //選擇Page 01H(Master Control 1)
MT9075_ADDR1 = 0x20; //對Page 01H下的控制字Mode Selection Control Word(11H)//進(jìn)行寫操作設(shè)置MT9075軟件復(fù)位,寫入控制字0x20
3.2 對MT9075的初始化處理
在系統(tǒng)上電的時候需要對MT9075進(jìn)行初始化處理,包括MT9075軟件復(fù)位、中斷處理、CAS模式選擇、阻抗工作方式設(shè)置、JA模式設(shè)置、DSTo輸出使能、傳輸信號設(shè)置等方面。
為使代碼簡潔,用一個函數(shù)代替了上面對MT9075讀寫控制的兩個步驟,函數(shù)如下:
Control_9075 (PageNo, RegAddr, Wdata)
{ MT9075_Page = PageNo;
RegAddr = Wdata; ?。?/p>
對MT9075的初始化代碼如下:
Control_9075 (0x01,MT9075_Addr1, 0x20);
Control_9075 (0x01,MT9075_Addr11, 0xff);
Control_9075 (0x01,MT9075_Addr10, 0xc8);
Control_9075 (0x01,MT9075_Addr1, 0x82);
Control_9075 (0x01,MT9075_Addr15, 0x02);
Control_9075 (0x02,MT9075_Addr8, 0xa0);
Control_9075 (0x02,MT9075_Addr3, 0x04);
Control_9075 (0x01,MT9075_Addr10, 0x8c);
Control_9075 (0x01,MT9075_Addr2, 0x9f);
Control_9075 (0x05,MT9075_Addr1, 0xff);
Control_9075 (0x05,MT9075_Addr2, 0xff);
... ... ... ...
Control_9075 (0x05,MT9075_Addr15, 0xff);
當(dāng)CPU需要發(fā)送話路的線路信令時,可以通過對Page 05H (Transmit Channel Associated Signalling Page)的相關(guān)寄存器進(jìn)行操作。在初始化的最后是對Page 05H中的控制字進(jìn)行操作,向MT9075_Addr1到MT9075_Addr15中寫入ff,使得輸出通道DSTo在上電后輸出為高電平,在上面省略了向MT9075_Addr3到MT9075_Addr14中寫ff幾行代碼。
3.3 數(shù)字中繼處理程序
在實現(xiàn)過程中,信令部分是自己設(shè)計的一個簡單協(xié)議,不是標(biāo)準(zhǔn)的E1信令。信令在DSTo和DSTi的第16時隙中傳輸,同步信令在第0時隙中傳輸,主叫方的信令通過接口線傳輸?shù)竭_(dá)被叫中繼,存入被叫方MT9075的寄存器中,被叫方CPU通過讀取寄存器中的信令內(nèi)容來執(zhí)行相應(yīng)的操作,被叫方信令到達(dá)主叫方和這個過程相反。圖2為一用戶通過數(shù)字中繼呼叫另一用戶的示意圖。此圖假定被叫方不忙,若此過程中任一時刻被叫方忙,則發(fā)送被叫忙的信息給主叫方,讓主叫方關(guān)閉已開通道等待下次呼叫。圖3為數(shù)字中繼處理程序的基本流程圖。
評論