摘 要:本文介绍了ATM交换芯片CUBIT-3 (05804)的功能原理,并结合ATM综合交换设备的具体实现 给出了该芯片在嵌入式平台下与MPC8260微处理器接口应用的实例,介绍了该芯
片的配置方法和 软件驱动流程。
关键词:CUBIT-3 ;ATM信元;CELLBUS;UTOPIA
概述
在ATM交换设备中,各ATM接入端口板卡和主控板卡间的通信一般通过背板总线进行,传统的总线技术往往因带宽不足而产生数据交换的瓶颈。近年来,由TranSwitch公司提出的CELBUS共享总线技术在ATM交换设备中得到了广泛应用。该总线通过一个37线的并行接口标准,采用GTLP电平(1.5V),使得信号质量得到了较大改善,并同时减小了功率和电磁干扰(EMI),使得最大总线频率达38MHz,32位的数据带宽超过1Gb/s,保证了高速ATM信元交换的可靠性。CUBIT-3(05804)是
TranSwitch 公司为实现ATM业务在CELLBUS总线上的交换功能而开发的一种ASIC芯片,可将最多32个CUBIT-3通过背板互连,实现ATM设备的灵活接入。本文简单介绍了该芯片的特性和原理,提出了基于CUBIT-3ATM交换嵌入式平台的一种解决方案。
CUBIT-3工作原理
主要特点和总体结构
CUBIT-3 的一些重要特性:
(1)16 或8比特的 ATM 层或 PHY 层的 UTOPIA 接口, ALI-25 PHY 层接口;
(2)入口侧信元地址翻译和路由标签的插入 ;
(3)出口侧信元排队:按信元类型可有多种队列模式;
(4)可编程的 OAM 信元和 RM 信元寻路;
(5)控制信元可由微处理器接口插入或提取,通过CELLBUS总线收发;
(6)可实时插入 GFC 字段,可插入 FECN ( 前向拥塞指示 );
(7)CELLBUS总线接入机制;
(8)支持单播(single_address)和组播(multi_address)。
图1 CUBIT-Pro结构框图(略)
如图1所示,CUBIT-3总体结构分线路侧、交换侧、处理器接口、TRAM接口及SSRAM接口等。其中线路侧又分入口侧(inlet
side)和出口侧(outlet side),和UTOPIA总线连接,接收和发送ATM信元。交换侧完成CELLBUS信元的收发、帧脉冲的形成、地址筛选和定时控制等功能。微处理器接口完成对CUBIT-3的复位、初始化、寄存器的读写和收发控制信元的功能。TRAM接口和SSRAM接口外接SRAM,分别用于入口侧ATM信元的地址翻译和出口侧信元的缓存。
线路侧
线路侧实现CUBIT-3与其它ATM层或PHY层芯片的ATM通信,采用ATM论坛规定的UTOPIA1或UTOPIA2总线接口,速率为155M。
在入口侧,CUBIT-3将接收下来的ATM信元先放入FIFO移位寄存器,然后提取ATM信元头的VPI或VPI/VCI信息,到外接的TRAM中查找翻译表中对应的新VPI或VPI/VCI并替换之,同时加上CELLBUS信元头(CellBus
Routing Header和Tandem Routing Header),随后送入发送队列等待发送。
在出口侧,由交换侧筛选来的CELLBUS信元被分为三部分:数据信元、控制信元和环回信元,出口侧只处理数据信元,将信元按照初始化的列表信息送到SSRAM中的指定空间,等待发送到UTOPIA总线。
控制信元的插入和提取都是通过微处理器接口,实现ATM交换网络的信令功能。环回信元用于板间测试,由微处理器接口发送,接收后直接送回CELLBUS总线。
交换侧
主要实现CELLBUS总线的收发功能。交换侧有一些提供控制功能的接口,可以设置CUBIT-3的总线发送、总线仲裁器(Arbitor)和用户数量等参数。当CUBIT-3被设置为仲裁器时,由它来产生CELLBUS总线的帧同步脉冲。交换侧还完成对接收数据的地址筛选功能,根据接收数据头部信息判断是数据信元还是控制、环回信元。筛选后,CELLBUS信元头被去掉。
微处理器侧
通过微处理器接口可以对CUBIT-3的所有寄存器进行读或写操作,接口采用8位数据总线,10位地址总线,可以设置为摩托罗拉或英特尔的连接方式,用于外接不同的微处理器。通过该接口可以实现的功能有:对CUBIT-3进行初始化和设置UTOPIA、CELLBUS等参数;TRAM翻译表的初始和更新;SRAM队列的初始化;插入和提取控制信元。
ATM交换嵌入式平台的CUBIT-3应用
图2所示是采用高性能嵌入式微处理器MPC8260作为ATM层,以CUBIT-3作为PHY层的嵌入式平台,实现ATM交换功能。MPC8260外部端口可以接入多种速率的ATM数据,通过SAR(分段重组)形成155M的高速ATM数据,经UTOPIA接口发送到CUBIT-3,再由CUBIT-3处理后发送到CELLBUS总线,通过背板与其它ATM单板或主控板通信。从CELLBUS总线收到的信元经过CUBIT-3完成到UTOPIA总线的转换,送到MPC8260,由MPC8260进行处理后分发到外部端口。
图2 ATM交换板总体结构(略)
图3 数据接口(UTOPIA总线)(略)
图4 控制接口(微处理器接口)(略)
与MPC8260的数据接口和控制接口
CUBIT-3的ATM接口和微处理器接口与通用的CPU都可以无缝连接。与MPC8260的硬件连接如图3、4所示:
CUBIT-3的处理器控制
(1)初始化和参数设置
CUBIT-3内部寄存器需要在上电后,正常工作前由MPC8260进行初始化,或者是在CUBIT-3处于工作状态时受MPC8260控制。这些寄存器分为如下几类:
1)设备标识和复位字
该类寄存器主要用于识别芯片的标识号和版本等信息,以及软中断的设置;
2)状态和中断使能字
CUBIT-3在信元收发和自身工作状态中存在错误时可能引发中断告知微处理器,这些中断位可以开启和关闭;
3)设备模式控制字
用于控制芯片的工作状态、时钟的选取、端口的开关及流控制等功能的开关,这类寄存器可在初始化时设置,也可以在工作时随时更改;
4)环回控制地址寄存器
用于环回信元的地址读取;
5)翻译RAM读/写控制
用于更新和读取翻译RAM内部翻译表;
6)SSRAM读/写控制
SSRAM有两个重要的地址空间:空闲列表(FREELIST)和FIFO指针表(FPTRAM),需要在初始时设定;
7)计数器和错误路由信元头
CUBIT-3的各类计数器及错误路由信元控制的设置;
8)信元收发控制
收发控制信元的缓存队列。
(2)TRAM的设置和翻译过程
入口侧的翻译功能完成的任务是:VPI翻译;VPI/VCI翻译;CELLBUS路由头的插值及TANDEM路由头的插值。
图5 软件初始化和配置流程(略)
需要指出的是,要进行翻译的前提是控制寄存器的UNI位设置为1,即用户网络接口。此时CUBIT-3在信元头的GFC域插入源连接的4位端口号,这4位加上原来的8位VPI组成新的12位VPI提供给翻译操作过程。这个"VPI"对应的翻译表内的控制信息表明:这个VPI是否有效和此信元的路由是基于VPI自己还是VPI/VCI。但是,在UTOPIA1模式下,插入到这个GFC域的永远是0x0H。接下来,如果确定是VPI路由,则从翻译记录中取得替换的VPI加上CELLBUS和TANDEM路由,接入信元的VCI不发生改变;VCI翻译时,分为两个步骤,先取VPI得到VCI翻译表在TRAM中的大小和位置,然后依照该信息和信元中的VCI地址取得VPI/VCI翻译记录,用记录中的VPI和VCI号加上CELLBUS和TANDEM路由头赋给信元,完成翻译。
在VPI/VCI翻译过程中有个限制,即每个VPI指定的VCI页地址必须限定在从页0开始向上递增的VCI连续空间内。在每个记录的第0个字节有下列控制位:
A 位:该位为1则VPI或VCI翻译有效,接收到信元的VPI或VCI如果和该记录的相同,则翻译,送到CELLBUS;为0则接收到的和VPI或VCI相等的信元就被视为错误路径丢弃。
P 位:该位为1则该记录仅仅是VPI翻译,为0则是VPI和VCI混合翻译。
(3)SSRAM的设置
1)空闲列表
空闲列表将所有的SSRAM信元缓存链接为一个链表,必须在CUBIT-3复位后由用户马上设定。空闲列表的设置过程由8260通过处理器接口对24bit
QMADD和32bit QMDATA寄存器完成:
设置寄存器DATA/CTRL为1,QMR/W为0,即对SSRAM的写操作模式(DATA/CTRL为0则是写FPTRAM);
写数据(下个缓存的地址)到对应的第一个链接地址:
QMADD = First Link Address location = BP + 0FH
QMDATA = Address of next buffer = BP + 0FH + 01H
上式中,BP为基址指针。
写数据(下个缓存的地址)到对应的下一个链接地址:
QMADD = Next Link Address = BP + 0FH + 10H
QMDATA = Address of next buffer = BP + 0FH + 01H + 10H
继续上述2、3步骤直到最后一个信元缓存
写最后一个缓存部分,其对应的下一个链接地址必须被写为8000H:
QMADD = Last Link Address = BP + 0FH + 10H X (length of Free List
- 1)
QMDATA = End of Free List code = 8000H
2)FIFO指针表(FPTRAM)
FPTRAM是一个32位宽度的数据结构,内部包含关于每个排队的信息。FPTRAM的初始化过程:
设置DATA/CTRL为0,QMR/W为0,即设为对FPTRAM的写操作模式;
写对应队列0、端口0的FPT首地址(00H)
QMADD = 000000H
QMDATA = D3.D2.D1.D0
D3 = 00H
D2 = 00H
D1(7..6) = 00
D1(5..0) = QLIMIT(13..8)
D0 = QLIMIT(7..0)
写对应队列0、端口0的FPT第二个地址(01H)
QMADD = 000001H
QMDATA = D3.D2.D1.D0
D3 = 00H
D2 = 00H
D1 = 00H
D0 = 00H
4) 对剩下的63端口/队列重复上述2、3步骤
5) 对端口7-0写使能位
6) 对端口15-8写使能位
注:5) 6)两步只需在CUBIT工作后执行一次即可。
(4)控制信元的插入和提取
发送控制信元,由8260通过微处理器接口写CUBIT寄存器CTQ(0-55)(写前查询CTRDY 位状态),完成控制信元的插入。接收控制信元的过程是:CUBIT将接收到的控制信元放入16个信元深度的缓存中,对应寄存器是CRQ(0-51),同时引发一个中断位
CRQCAV,告之处理器来读取CRQ(0-51)中的控制信元。
总结
CUBIT-3的功能十分强大,这使得它在ATM交换技术中具有很好的应用前景。上述设计中尚未提及的其它功能诸如错误检测、流量控制、前向拥塞通告和组播等,都可以根据用户的需求灵活运用。
|