本发明涉及光通信、数字通信领域,尤其涉及一种基于fpga的cpri自适应解码系统及实现方法。
背景技术:
随着通信及计算机技术的发展,对大量数据进行高速,实时传输的需求越来越多,传统的并行传输技术已经接近理论上限,但仍不能满足需求。因此,高速串行传输技术被越来越多的通信设备采用。高速数据传输对硬件的要求很高(包括芯片接口和电路板走线),而能满足高速传输需求的各种专业ic、asic器件不仅价格昂贵,而且功能单一,灵活性低,不能满足用户多样化的需求。特别是在cpri通信系统中,不同厂商之间扰码密钥的不尽相同,在未开放扰码密钥的情况下,跨厂商的设备之间难以通信,增加了用户的成本,降低了设备的灵活性。
技术实现要素:
鉴于现在技术存在的问题,本发明提供一种基于fpga的cpri自适应解码系统及实现方法。本发明的目的就是要解决上述技术中存在的问题,采用fpga来完成cpri自适应解码的技术,通过fpga完成对cpri信号的解码功能。使用fpga对cpri的高速信号进行处理,完成cpri解码后传输给下一级进行各种处理。
本发明采取的技术方案是:一种基于fpga的cpri自适应解码系统,其特征在于,所述系统包括sfp光模块和fpga芯片,sfp光模块与fpga芯片相连接,sfp光模块用于将光信号转换为差分电信号,fpga芯片用于完成对cpri的数据恢复与解码。
所述的sfp光模块采用finisar公司的10g光模块;所述的fpga芯片为xilinx公司的kintex7-325t。
所述的fpga芯片包括transceiver模块、frame_head模块和descrambler模块,transceiver模块与frame_head模块连接,frame_head模块与descrambler模块连接。
一种采用基于fpga的cpri自适应解码系统的实现方法,其特征在于,有如下步骤:
一、transceiver模块接收sfp光模块的10gbps的差分数据,对差分数据进行串并转换,最终输出一路数据信号及一路随路时钟信号;
二、frame_head模块接收transceiver模块的数据,在数据中搜寻帧头,在一帧的周期内,如果找到帧头则输出帧同步信号,输出对应的随路地址,否则输出帧失步信号;
三、根据cpri协议规定,紧随帧头不加扰字节后连续的四个控制字节被加扰数据,根据这连续4个字节的加扰前的值与加扰后的值,即可获得加扰的初始密钥;
四、frame_head模块将获取的初始密钥传递给descrambler模块进行进一步处理;
五、descrambler模块根据初始密钥进一步迭代,推导出后续所有解码比特;依据cpri协议,解码密钥的迭代算法为:bit[i]与bit[i+3]做异或运算,将其结果填入bit[i+30]中;
六、在帧同步状态下,descrambler模块将按照随路地址搜索帧头,按地址顺序进行解码;如果处于帧失步状态,descrambler模块不会进行解码,数据原样输出。
本发明产生的有益效果是:实现了同一厂家内部设备才能实现的cpri解码功能。本系统中所有数据及帧格式完全符合cpri国际通用标准。在基站数据处理控制单元(rec)、基站收发单元(re)等各种cpri设备中有广泛的应用价值。
附图说明
图1为本发明的系统硬件及主要信号线连接示意图;
图2为fpga内部功能模块示意图;
图3为cpri帧头格式示意图;
图4为cpri密钥获取示意图;
图5为解码密钥迭代算法示意图;
图6为解码方法示意图。
具体实施方式
以下结合附图对本发明做进一步说明。
如图1所示,基于fpga的cpri自适应解码系统所述系统包括sfp光模块和fpga芯片,sfp光模块与fpga芯片相连接,sfp光模块用于将光信号转换为差分电信号,fpga芯片用于完成对cpri的数据恢复与解码。sfp光模块采用finisar公司的10g光模块;fpga芯片为xilinx公司的kintex7-325t。
如图2所示,fpga芯片包括transceiver模块、frame_head模块和descrambler模块,transceiver模块与frame_head模块连接,frame_head模块与descrambler模块连接。
系统硬件主要有两大部分构成:
1)sfp光模块:主要完成对光信号的光电转换,将转换后高速差分信号送入下端。sfp光模块将4915.2mbit/s(6144.0mbit/s、9830.4mbit/s)的光信号转换为差分电信号传入fpga。
2)fpga:主要完成光模块串行电信号的接收,并完成cpri信号的数据恢复与解码。最终输出解码后的信号数据、帧同步/失步指示信号、随路地址。硬件及主要信号连接如图1所示。
本设计中使用的sfp光模块为finisar公司的10g光模块,fpga为xilinx公司的kintex7-325t,kintex7系列fpga是xlinx公司开发的中端fpga,集成了serdes(高速串行收发器),ddr控制器等通信系统中常用功能的ip硬核。
核心fpga功能设计:fpga设计中的主要功能模块如图2所示:
1.transceiver模块实现串并转换功能。
transceiver模块主要是对xilinxfpga中特有的高速io的调用,使fpga的部分io能对速率高达10gbps的数据进行收发,该模块中采用了xilinx公司提供的transceiver模块完成对差分数据的串并转换,最终输出1路数据信号及1路随路时钟信号。
2.frame_head模块实现帧头搜索、帧同步信息输出、随路地址生成、初始密钥获取等功能。
frame_head模块接收transceiver模块的数据,在数据中搜寻帧头,在一帧的周期内,如果找到帧头则输出帧同步信号,否则输出帧失步信号。cpri的帧头结构如图3所示。
图3中每一个格子代表1字节(8bit)数据,帧头的头两个字节(k28.5,d16.2/d5.6)不进行扰码,据此可以找到帧头,并输出对应的随路地址,k28.5对应的地址为0,每隔1字节数据地址加1。
紧随帧头不加扰字节后连续的4个控制字节被加扰,根据cpri协议规定,这4个控制字节在加扰前的值固定且已知,即4个d5.6。根据这连续4个字节的加扰前的值与加扰后的值,可以获得加扰的初始密钥,具体实现方法为,将这连续4字节加扰数据与4个d5.6按对应bit做异或运算,得到4个字节(32bit)的初始密钥,初始密钥获取如图4所示。
初始密钥的获取功能在frame_head模块中实现,frame_head模块将获取的初始密钥传递给descrambler模块进行进一步处理。
3.descrambler模块实现密钥迭代推导、数据解码等功能。
帧同步状态下,descrambler模块将按照随路地址搜索帧头,按地址顺序进行解码。如果处于帧失步状态,descrambler模块不会进行解码,数据原样输出。
解码的初始密钥已由frame_head模块给出,descrambler模块需要根据初始密钥进一步迭代,推导出后续所有解码比特。依据协议,解码密钥的迭代算法为,bit[i]与bit[i+3]做异或运算,其结果填入bit[i+30]中,即依据已知比特推导出后续比特,其中i为非负整数,例如bit[2]异或bit[5]的结果传递给bit[32],理论上初始密钥具备连续的30bit就可以实现迭代,而frame_head模块给出的密钥有连续的32bit,完全符合要求。解码密钥迭代算法如图5所示,其中每一个格子代表1bit信息。
获取扰码后的数据,且具备迭代推导出的解码比特,descrambler模块可以实现解码功能。具体实现方法为,加扰的数据与解码比特按顺序、按位异或,得出的结果即为解码后的数据。解码方法如图6所示,图中每个格子代表1字节(8bit)数据,即8bit一组按位异或。
采用fpga(现场可编程门阵列电路)实现cpri(通用公共无线接口)中4915.2mbit/s及以上速率信号的自适应解码方法,通过该解码方法,可以在fpga中实现未知发送端扰码密钥的情况下在接收端正确解码。
基于fpga的cpri自适应解码系统的实现方法有如下步骤:
一、transceiver模块接收sfp光模块的10gbps的差分数据,对差分数据进行串并转换,最终输出一路数据信号及一路随路时钟信号;
二、frame_head模块接收transceiver模块的数据,在数据中搜寻帧头,在一帧的周期内,如果找到帧头则输出帧同步信号,输出对应的随路地址,否则输出帧失步信号;
三、根据cpri协议规定,紧随帧头不加扰字节后连续的四个控制字节被加扰数据,根据这连续4个字节的加扰前的值与加扰后的值,即可获得加扰的初始密钥;
四、frame_head模块将获取的初始密钥传递给descrambler模块进行进一步处理;
五、descrambler模块根据初始密钥进一步迭代,推导出后续所有解码比特;依据cpri协议,解码密钥的迭代算法为:bit[i]与bit[i+3]做异或运算,将其结果填入bit[i+30]中;
六、在帧同步状态下,descrambler模块将按照随路地址搜索帧头,按地址顺序进行解码;如果处于帧失步状态,descrambler模块不会进行解码,数据原样输出。