AAL2公共部分子层发送端装置 (一)技术领域:
本发明属于电信领域,具体地说涉及电信领域里与ATM应用相关的一种实现AAL2公共部分子层发送端功能的硬件装置。(二)背景技术:
AAL2是ATM适配层的一种类型,主要针对那些对传输时延敏感的、较低速率(可以是固定或可变速率)的实时业务(如话音等)提供一种高效的ATM信元适配方法。现有的AAL2发送端功能都是在通信处理器或CPU(中央处理器)基础上以软件(或微代码)方式实现,比如摩托罗拉的MPC8260子卡就是这样,但这种“软件+处理器”方式实现的AAL2发送装置存在以下缺点:单个处理器所能处理的业务流量较低、效率不高;若要处理较大带宽的业务流量,通常需要多个处理器并行工作,并要解决负荷分担的问题,使得有关的系统设计或实现变得复杂且成本增加。
AAL2-CPS的发送端功能包括:
1、接收高层发往不同ATM链路上的CPS业务数据单元(CPS-SDU),加上
CPS分组头组成CPS分组(CPS-Packet);
2、按照I.363.2协议中规定的格式把若干个CPS分组封装成47字节的数据
包,在前面附加一个STF(即开始域)字节形成CPS协议数据单元
(CPS-PDU),然后加上5字节的信元头形成ATM信元(如果ATM处
理单元可生成信元头中的校验字节,则此字节空置);
3、将形成的ATM信元传给ATM分接/复接单元。如果47字节数据包中的
剩余位置不足以装入一个完整的CPS分组,可把此CPS分组的前一部分
装入,而后一部分则装入下一个去往相同ATM链路的47字节数据包中。
本发明的目的即是采用硬件逻辑电路来实现ITU-T地I.363.2协议中规定的AAL2发送端功能,提高处理效率。(三)发明内容:
下面说明本发明的技术方案。
(1)本发明所述的AAL2发送端硬件装置是通过FPGA(现场可编程门阵
列)设计或是ASIC(专用集成电路)设计实现的,它以硬件逻辑电
路作为载体,既可以以独立的芯片形态出现,也可以与其它功能装置
相集成,即与其它功能装置一起包含在一个芯片中。
(2)该装置主要由输入控制模块、数据预处理模块、封装控制模块、发送
控制模块和定时模块组成(参见图1)。
(3)该装置的外部接口包括:与ATM层之间采用UTOPIA LEVEL1
(Universal Test and Operations PHY Interface for ATM LEVEL1)规范接口,
与高层(即AAL2业务应用层)之间采用共享存储器接口,与层管理
之间则提供地址、数据和控制信号,可通过外部处理器访问本装置。
下面分别描述各主要模块的操作及功能。 一、输入控制模块
输入控制模块是从高层接收AAL2处理系统产生的数据,每次接收的数据块最大长度为18个双字(一个双字即4个字节),包括8字节VPI(虚通路标识)、VCI(虚通道标识)、CID(连接标识号)、UUI(用户-用户信息)、LI(长度指示)及1至64字节的用户数据,通过为每个数据块设置标志位指示数据块是否可读。当接收使能信号到来时,输入控制模块首先检测当前数据块可读标志位(假设1表示高层数据有效,0表示无效):若标志位为1,则读取该数据块,并产生输入给数据预处理模块各子模块的使能信号,把读取的数据块中各部分数据送入相应子模块进行处理;若标志位为0,地址指针跳转到下一个数据块存放区检测标志位。一个读时钟周期可读取数据块中的一个双字或两个双字(当数据总线宽度为32位时是一个双字,数据总线宽度为64位时是两个双字),接收完一个完整数据块后(根据数据块参数中的长度指示),修改标志位和读指针,等待下一次接收使能信号有效。二、数据预处理模块
该模块包含三个子模块:VPI/VCI处理子模块、CPS分组头(CPS-PH)创建子模块、CPS-SDU转换子模块。
VPI/VCI处理子模块结构见图2。
在VPI/VCI处理子模块中,VPI、VCI被封装成5字节的信元头。为支持多个AAL2虚连接,并考虑VPI/VCI值的可变性,则信元封装缓存区的基地址不能由VPI/VCI按固定组合逻辑产生。为此,在VPI/VCI处理子模块中引入了一个存储器方式的映射表,在每次系统复位后由层管理接口(如某个外部控制器或处理器)对表格进行初始化,而在封装过程中,表格中的数据由VPI/VCI作为地址索引读出,经过相应运算产生子模块中状态表地址,状态表中则记录封装缓存区各个区域的状态(是否装有未满的信元及下次封装起始位)。这样对表格写入不同的数据可使状态表对应不同的VPI/VCI值,而由状态表地址即可推算出封装缓存区对应区的基地址,从而完成VPI/VCI值到状态表地址和封装缓存区的基地址之间的映射。
在CPS-PH创建子模块中,将CID、UUI、LI经过多项式编码,生成差错控制比特,并将它们封装成CPS-PH。具体的实现方法是:假设M(x)是所有位上都为1的帧,其多项式表示为M(x)=xm+xm-1+...+x1+x0;校验和的生成多项式为G(x),阶数为r,预先求得M(x)校验和:
xrM(x)/G(x)=xr(xm+xm-1+...+x1+x0)/G(x)
=xrxm/G(x)xrxm-1/G(x)...+xrx1/G(x)xrx0
/G(x)
从上式可以看出,所有位上都为1的帧的校验和等于多项式分别为xm、xm-1、...、x0的各阶校验和的异或,因此将一个存有所有各阶校验和的表预置在存储器中,则实际帧(假设可表示为amxm+am-1xm-1+...+alx1+a0x0,其中am、a0比特位为1,其它可为1或0)的校验和是比特位为1所对应的各单阶CRC经简单的异或运算得到,因此使用简单的与门和异或门就可求实现校验和的计算,速度很快,一个时钟周期即可完成。CPS-PH创建子模块构成参见图3。
在CPS-SDU转换子模块中有一块16*32位(或8*64位)的缓存区,通过四选一(或八选一)多路转换器把32位(或64位)的CPS-SDU转换成与下层接口相匹配的8位格式,并将其存放在信元封装缓存区中等待封装处理。可参见图4。三、封装控制模块
在封装控制模块中创建STF,并将各个域封装进ATM信元。该模块产生封装缓存区的写允许与地址信号,根据状态表输出的状态字来决定分配给信元各个域的封装时隙。在封装好一个完整信元后向发送控制模块发出发送请求,封装过程结束后刷新VPI/VCI处理子模块中的状态表和定时模块中时间表对应单元的信息以供下次封装处理时使用,并向输入控制模块发出接收允许。图5是该模块的结构框图。四、定时模块
定时模块的结构图参见图6。定时模块中设置了一个16位的计数器在系统工作期间循环计数,由封装控制模块在封装了一个未满信元过程结束时将计数器值写入时间表,这相当于为该信元标记了当前时间标签,时间表的各个单元与VPI/VCI处理子模块的状态表对应。轮询机制依次从时间表中读出每个信元的时间标签,与计数器当前值比较,如果差值大于设定值,轮询暂停,向发送控制单元发出到时指示,同时传送该到时信元所处封装缓存区的基地址。五、发送控制模块
发送控制模块的功能是发送ATM信元,它由来自封装控制模块的发送请求或定时模块的到时指示触发。发送控制模块的结构框图参见图7。
当发送请求有效时,表示有一个ATM信元已封装完成且ATM处理单元的先入先出接收缓存器可以接收一个完整的信元,则根据封装控制单元同时传送的基地址开始连续发送53字节的信元。
当到时指示有效时,表示有一个不完整的信元到时需要发送,则根据定时模块同时传送的基地址与参数,发送尾部填零的信元。发送完成后将时间表、状态表相应单元重新置数。发送信元的时序遵循UTOPIA LEVEL1接口规范。
本发明有益效果:
本装置可以在单个硬件芯片上实现,且由于是纯硬件方式,单个芯片能够处理成千上万个AAL2连接的发送端功能,处理的业务量可以高达每秒数百兆比特,克服了用软件方式实现时处理速度相对较慢、效率不高等缺点;可以根据应用系统的需求选择合适的FPGA芯片或是ASIC规模;可大大降低系统实现成本。(四)附图说明:
图1是一个AAL2发送端装置的总框图。
图2是VPI/VCI处理子模块结构框图。
图3是CPS-PH创建子模块结构框图。
图4是CPS-SDU转换子模块结构框图。
图5是封装控制模块的结构框图。
图6是定时模块的结构框图。
图7是发送控制模块的结构框图。(五)具体实施方式:
下面是本发明应用于第三代移动通信系统无线网络控制器设备中的一个实施例。
在第三代移动通信系统的无线网络控制器设备中,Iub接口、Iu接口和Iur接口都要用到AAL2功能,我们在实现AAL2发送端装置时,采用了Altera公司的FPGA芯片,型号为EPT10K50EQC208-3,按照本发明的技术方案进行设计,设计结果是该装置共占用FPGA芯片的4个嵌入式阵列块(EAB)和1800个逻辑单元(LE),约占芯片总逻辑资源的70%。这个用EPT10K50EQC208-3型FPGA芯片实现的AAL2发送端装置可以同时支持近万个AAL2连接。