由于数字技术和计算机技术的发展,传统的模拟交换机已经被程控数字交换机所取代,数字中继接口是数字交换机中不可或缺的部分。本文就是利用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个主要端口:
1)线路接口,传输的码流是2.048Mbit/s的双极性HDB3码,具有PCM30/32系统的帧结构,用于连接PCM30/32基群线路。[2]通过外接发送和接收两变压器与外部中继线相连,其中,TX1、TX2为线路发送端,经一阻抗匹配电路连接一个1:2的发送变压器;RX1、RX2为线路接收端,经一阻抗匹配电路连接一个1:1的接收变压器。
2)ST—BUS接口,传输的码流是2.048Mbit/s的单极性码,码流具有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.096MHz)和基本帧同步信号Fob(8kHz)由高稳频时钟产生器直接给出,MT9075能够利用内部的数字锁相环从这些信号中自动分频产生64kHz的内部时钟和2.048MHz的位同步时钟E2o。
图1MT9075电路图
3、软件部分设计
软件分别从对MT9075的读写控制、初始化处理以及数字中继处理程序三方面进行介绍。MT9075分配的地址是S3C44B0的NGCS5下的一部分地址,其基地址为0a000000,定义如下:
#defineMT9075_Page(*(volatileunsignedchar*)0x0a000000)
其页类的控制字的地址分别为0a000010~0a00001f,如Page01H下Multiframe、NationalBitBufferandDataLinkSelectionWord和ModeSelectionControlWord地址分别为0a000010和0a000011,定义如下:
#defineMT9075_ADDR0(*(volatileunsignedchar*)0x0a000010)
#defineMT9075_ADDR1(*(volatileunsignedchar*)0x0a000011)
3.1对MT9075的读写控制
对MT9075的读写控制主要分为2个步骤:第一步选择要读写的控制字页号,第二步对该页内的控制字进行读写控制操作。如对MT9075进行软复位,代码如下所示:
MT9075_Page=0x01;//选择Page01H(MasterControl1)
MT9075_ADDR1=0x20;//对Page01H下的控制字ModeSelectionControlWord(11H)//进行写操作设置MT9075软件复位,写入控制字0x20
3.2对MT9075的初始化处理
在系统上电的时候需要对MT9075进行初始化处理,包括MT9075软件复位、中断处理、CAS模式选择、阻抗工作方式设置、JA模式设置、DSTo输出使能、传输信号设置等方面。
为使代码简洁,用一个函数代替了上面对MT9075读写控制的两个步骤,函数如下:
Control_9075(PageNo,RegAddr,Wdata)
{MT9075_Page=PageNo;
RegAddr=Wdata;}
对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,0);
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);
当CPU需要发送话路的线路信令时,可以通过对Page05H(TransmitChannelAssociatedSignallingPage)的相关寄存器进行操作。在初始化的最后是对Page05H中的控制字进行操作,向MT9075_Addr1到MT9075_Addr15中写入ff,使得输出通道DSTo在上电后输出为高电平,在上面省略了向MT9075_Addr3到MT9075_Addr14中写ff几行代码。
3.3数字中继处理程序
在实现过程中,信令部分是自己设计的一个简单协议,不是标准的E1信令。信令在DSTo和DSTi的第16时隙中传输,同步信令在第0时隙中传输,主叫方的信令通过接口线传输到达被叫中继,存入被叫方MT9075的寄存器中,被叫方CPU通过读取寄存器中的信令内容来执行相应的操作,被叫方信令到达主叫方和这个过程相反。图2为一用户通过数字中继呼叫另一用户的示意图。此图假定被叫方不忙,若此过程中任一时刻被叫方忙,则发送被叫忙的信息给主叫方,让主叫方关闭已开通道等待下次呼叫。图3为数字中继处理程序的基本流程图。