打印

基于Xilinx器件的CPRI协议实现方法

[复制链接]
1848|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
老大的幸福|  楼主 | 2011-5-16 22:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前,分布式基站主要采用两种开放式接口标准:无线设备和无线设备控制部分分离的CPRI接口(Common Public Radio Interface)标准,还有基带处理、射频、网络传输和控制层面都分离的OBSAI接口(Open Base Station Architecture Initiative)标准。
CPRI主要针对WCDMA标准,实现相对容易,支持厂商以Ericsson、华为、Siemens、Nortel、NEC等为代表;OBSAI接口研发有一定难度,标准完善相对复杂,支持厂商以Nokia、Samsung、中兴、Alcatel、烽火、首信等。本文就是在CPRI协议的基础上,介绍了一种在CDMA系统中使用CPRI的逻辑设计方法,并给出了仿真波形。
协议简介
针对REC(Radio Equipment Control)和RE(Radio Equipment)之间或者两个RE之间的IQ数据、控制和管理数据及同步信息的传送,CPRI定义了L1和L2层协议,其架构见图1。

图1 CPRI协议架构简图

图2 CPRI在系统中的位置

在L2层上,CPRI支持两种控制模式:HDLC协议和以太网协议,所有的这些控制命令都是和用户层面的IQ数据交织在一起,以时分复用的形式在电传输线或者光纤中传输,另外协议还给厂家预留了一部分时隙,可以用来传输厂家自定义的信息。
CPRI支持两种控制模式:HDLC协议和以太网协议,所有的这些控制命令都是和用户层面的IQ数据交织在一起,以时分复用的形式在电传输线或者光纤中传输,另外协议还给厂家预留了一部分时隙,可以用来传输厂家自定义的信息。

CPRI协议可支持四种数据速率,分别是614.4Mb/s、1.2288Gb/s、2.4576Gb/s和3.0720Gb/s,这里的速率指的是光纤中串行信号的速率。因为CPRI主要是针对WCDMA制定的,其基本帧周期是1/3.84MHz,而CDMA基本帧为1/1.2288MHz,为了兼容CDMA的速率,在使用CPRI协议时需要进行调整,可以发现在25个CPRI帧的时间内,可发送8个CDMA基本帧,为了便于数据的对齐,参照图3的映射关系,在每3个CPRI帧的时间内传送1个CDMA帧,最后多余的第25个CPRI帧用来传送RSSI信息,这样就可以在CPRI的3个基本帧中实现CDMA多路载波的复用,根据协议,最多可支持21路载波的复用。

参照CPRI协议,每256个CPRI帧构成一个超帧,每150个超帧的长度为10ms,称为一个无线帧。协议规定每个超帧的起始字传输K码,利用K码来同步超帧和基本帧,并根据加入载波和控制字的位置进行解帧、组帧,本次设计中采用K28.5进行同步,每收到150个K码标志时的时间长度为10ms。

图3 CPRI帧和CDMA帧的映射关系

控制字命令在每个基本帧的首个16比特传输,CPRI协议留有空余的位置,允许用户传输自定义的控制字,各个厂家的控制字可以不同。
逻辑实现
CPRI在整个系统中的位置如图2所示,它是整个逻辑设计的最外层,直接与光口连接,其中光口0用来连接上一级RE或者REC,光口1连接下一级RE。在设计中采用支持SERDES IP CORE的Xilinx Virtex5器件,每个SERDES IP CORE可以支持两个光口,方便级联,在接收端,SERDES可以直接将光电转换器传过来的串行差分信号转换为并行数据输出,并恢复出相对应的随路时钟,在发送端,SERDES将随路时钟和并行数据转换为串行的差分信号输出,除此之外,还可以提供串并过程中的同步K码指示、接收信号错误指示、数据重新排列以及发送端数据的预加重等功能。
光纤中采用1.2288Gb/s的传输速率,按照协议规定的帧格式,得出式1:
(1)
其中,fclk代表时钟的工作频率,之所以乘以(10/8)是因为在并串转换时需要进行8B/10B编码,导致位数增加,由式1求得时钟频率为61.44MHz,这个频率就是CPRI模块以及SERDES参考时钟的频率。

1 下行链路
CPRI的下行链路模块的功能:对于本级RE,主要完成载波和控制字的分离;对于下一级RE,主要完成基带信号的透传。

数据的流程可以描述为下行链路模块从光口0接收基带或上一级RE发送过来的数据,进行解帧,提取出本级RE所需的控制字和载波数据,其中控制字送给本级CPU,载波数据发送给本级RE的下行链路处理模块。此外,还要完成基带数据的转发,将接收到的基带数据进行处理后,通过光口1直接发送给下一级RE,下行链路模块框图如图4所示。

图4 CPRI下行链路设计
帧同步模块对SERDES恢复的K码进行计数,同步出10ms无线帧标志,并根据此标志同步出超帧和基本帧的位号,其中超帧的位号范围是0~149,基本帧的位号范围是0~255。在完成同步后数据分为两路,一路送给本级RE,指示后续的模块在对应的位置解出控制字和IQ数据,其中控制字送到本级的CPU,CPU提取本级需要的控制字,对其他控制字则采取丢弃处理,IQ数据则以1CHIP(1.2288MHz)速率以并行的方式送到下行链路模块进行处理;另一路直接通过光口1送给下一级RE,根据系统的级联需要还可以加入RE的ID号或者其他的控制字。

2 上行链路
CPRI上行链路模块相对比较复杂,从光口1接收下一级RE送过来的数据,不仅要完成数据的解帧,分离出载波和控制字,还要插入本级上行的载波数据、RSSI以及其他控制字,并通过光口0送到上一级RE或者REC。不同于下行链路,上行链路需实现对所有控制字和数据的转发,除了本级的控制字和数据,还包括下级RE传来的控制字和数据,上行链路模块框图如图5所示。

图5 CPRI上行链路设计

仿真结果

图6 输入数据仿真波形

图7 下行解出10ms标志仿真波形
输入数据波形如图6所示,代表的是SERDES串并转换后的数据,基本帧的首个16bit(S_rx_slot_cnt=0处)传送控制字,末尾的16bit(S_rx_slot_cnt=15处)不使用,载波数据均用“0xaabb”表示。
CPRI下行同步模块在150个超帧后解出10ms标志,此时正好对应下一个超帧的开始,同样也是基本帧的开始,仿真波形如图7所示。

相关帖子

沙发
coco11| | 2011-5-16 22:48 | 只看该作者
MARK!

使用特权

评论回复
板凳
AutoESL| | 2011-5-17 09:33 | 只看该作者
学习

使用特权

评论回复
地板
dianzirobot| | 2011-5-17 23:47 | 只看该作者
GOOD  ,学习了

使用特权

评论回复
5
vivisa| | 2011-5-18 22:07 | 只看该作者
长知识来啦。呵呵。

使用特权

评论回复
6
小云001| | 2011-5-21 00:59 | 只看该作者
学习中

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

360

帖子

1

粉丝