论文部分内容阅读
摘要:介绍了一种用于WCDMA系统中下行物理信道解调器,采用了FPGA器件实现该解调器,并给出该解调器总体结构和逻辑设计。该解调器把从基站发送过来的码片级数据解调成符号级数据,并结合外部微处理器将解调后的结果实时上报给后台PC。该解调器可用于WCDMA系统中下行多用户多小区信息的实时测量,有实时性好、配置灵活等特点。
关键词:WCDMA;物理信道;解调;FPGA
引言
在WCDMA系统中高层的数据通过传输信道映射到物理层的物理信道上,物理信道复用着多用户信息和控制信息。物理信道质量的好坏直接影响无线链路的性能,同时也直接决定了用户终端与交换设备的复杂度。根据WCDMA标准物理信道在成帧之后,下行方向从NodeB(基站)侧天线发送给用户(UE)之前的符号数据需要扩频和加扰。对于UE来说收到的下行数据就是经过加扩加扰的数据,为了方便评估下行物理信道的质量,首先要对下行物理信道解调,即将加扩加扰之后的数据解扩解扰恢复出原来的物理信道上承载的符号数,这样才能方便在后台评估。
基于FPGA下行物理信道的实时解调不仅可以在某些方面代替昂贵的仪器测试信道质量,而且因其灵活的配置,可以实现对多个小区的多个物理信道实时解调并将解调的结果实时上报给后台PC,为测试提供了极大的方便。
解调器的设计
总体设计
该解调器主要完成的功能是从背板接收过来的经加扩加扰后的码片级天线数据数据还原成符号级数据,并结合后台和MPC8270完成上报实时解调功能,其整体结构如图1所示。
其中FPGA主要完成的功能是:进行各个公用及专用码道的解调,即进行解扰解扩处理,将来自天线的码片级数据转为符号级软bit数据,根据各个码道的Chipoffset缓存组帧,到公共数据帧结束后通过中断上报数据、进行各个数据域的功率测量再进行硬判决,得到每帧的Pilot的错误个数后进行TFCI译码处理。FPGA内部具体的功能如图2所示。FPGA内部模块主要分为:天线接口模块、码发生器模块、公用和专用解调模块、上报模块。
天线接口模块
天线接口模块负责接收从背板发送过来的3载3扇两天线的高速LVDS数据,解复用之后发送给解调模块,再根据配置的扇区号、天线号和载频号从18路IQ数据中选择出一路IQ数据。背板过来的天线数据和本地时钟是异步时钟,所以在接收IQ数据时就要加缓存进行异步时钟域的切换。
码发生器模块
WCDMA中信道化码采用OVSF码(正交可变长扩频码)用于对物理信道比特信息的扩频,经过与扩频码的相乘,物理层的比特速率提高为码片速率,而且统一到同一个码片速率3.84Mbit/s。由于码片速率的提高,信号频谱也随之扩展。码字(SF)的长度与速率提高的倍数相等。它是一种正交码,其生成过程参考3GPP协议。
扰码采用的是Gold码作为扰码,有自相关性。其生成过程如下:
其生成过程如图3所示。
其中,各信道码发生器是由扰码发生器和信道码发生器组成,如图4所示,其中各物理信道所用扰码相同,因此可以共用一个扰码发生器。
各码发生器与输入IQ数据之间做复数乘法运算,参加乘法运算的两个复数都是I做实部,Q做虚部;运算前,码发生器的输出要先做共轭运算。积分器在复数乘法运算后,积分长度等于扩频因子。积分后得到的IQ数据就是软bit值。功率计算用的是积分后的IQ数据,先取出各域的bit数,然后计算功率,功率值=∑(I×I+Q×Q)/N,N为积分长度。在需要上报bit值(例如TPCbit,TFCIBit)及上报的码道中,如果配置了发射分集开关,还要进行去STTD运算功能。
解调模块
解调之前首先要产生相应的配置数据,配置如下:将所要解调的信道的参数通过CPU配置来确定所要解调的信道的类型、扩频因子、扩频号,以及相对于CPICH信道的时延等。再根据配置的扩频因子和扩频号码发生器产生相应的解扩序列。定时模块负责定时计数,并在每一个无线帧头来的时候将串行的帧号转换为并行的帧号。其计数格式是:SlotCounter+SymbolCounter+ChipCounter+CycleCounter。该模块在设计中的定时计数关系起着至关重要的作用,因为后面的各个模块的定时都是以它为参考。确定了各个信道类型之后,还需各信道各比特域的结构,所以在这里各信道域的定时模块负责产生各个域的定时标志。
解调模块是该设计中最主要的模块,分为公用解调模块和专用解调模块。其中公用解调信道实现的框图如图5所示。其功能包括每时隙符号解调,平均功率和E-RGCH&E-HICH的40个签名的符号相关值。并将这些解调解调出来的结果缓存起来,根据每个时隙测量结果缓存DPRAM读写控制信号,每个时隙测量结果缓存DPRAM读写控制信号,每个时隙需要进行3DPRAM的乒乓操作,即读RAM块比写RAM块落后2个块的长度。这里只说明一下E-RGCH和E-HICH签名解调的过程。根据协议,在解签名的时候有一个40×40的签名序列表,这其中的签名是完全正交序列。所以在程序里边将这个表例化成一个可查询的ROM,这样可以节约对寄存器使用的开支。其解调过程是由状态机完成的,签
名解调状态机当收到符号有效时将相关运算的符号更新一次,并根据符号计数值移位操作保证低位先发。接下来在等待1状态时,将移位得到的签名值与符号值相关并累加。在等待2状态时,将累加的结果存放在中间的DPRAM中,这样可以节省资源。并同时判断符号计数器的值是否为20,如果是则证明一个时隙的签名解调完毕并进行求平均运算,这里求平均直接进行截位,即将低5位截掉,等于给累加的结果除以了32,本来应该除以40,这样做的好处是节约资源,后面的精确计算等将结果上报后台再进一步精确计算。否则继续进行相关累加运算,返回到等待1状态。
专用解调模块比静态模块复杂的地方在于它的扩频因子和扩频号是变化的,通过后台配置进来的,是可以随时根据发送的下行信道配置的发送的信道变化的。其整体框图如图6所示。
其解调上报的结果比较多,包括:符号值,时隙功率平均幅度,导频误码数统计,TPC比特命令,TFCI译码,每时隙的TPC平均功率,每时隙Pilot平均功率。它们的上报模式对于TFCI译码,支持128种TFCI。采样预先生成128个32bit的TFCI表,在每帧进行TFCI译码时,将32个软符号和32bit数进行相关运算,进行128次,然后比较得到 最大值作为TFCI译码值。首先统计每帧数据的30个TFCI比特位,生成串行的数据送入到TFCI译码模块中。
上报模块
上报模块负责将缓存在3DPRAM中的结果在每个10ms帧中断来临时将缓存在大的上报缓存区的数据中断上报给MPC8270,这里开辟了两块大小为8192×16的DPRAM,上报方式采用乒乓操作。每个系统时隙标志到来时将所有的静态和动态信道所要上报的数据从小的DPRAM中取出,送入到上报缓存DPRAM中相应的位置,在帧中断来时,CPU将上一帧缓存的数据读走。其中帧中断的产生是通过判断系统帧号的最低位,只要最低位变化就证明新的一帧来临。因CPU与FPGA之间的地址空间有限,CPU需要复用地址空间,分多段(多个bank)将缓存在FPGA中的数据读走,每个读bank之前,CPU要先向FPGA写段地址,FPGA将该段地址作为每段DPRAM的高地址来使用。即在FPGA中例化了两个8192×16的DPRAM,来缓存每一帧的数据。因为这牵扯到异步时钟域,而CPU读取数据的速度又很快,所以使用了乒乓操作方式可行性好。其中往上报缓存里边写上报结果时,静态信道上报的数据放在前1200个地址空间中,并且不同信道相同时隙的数据存放是连续的,不同时隙之间结果存放地址是跳动的,跳动间隔为80个存储空间,动态信道上报的结果存放在后面的区域,同一信道的相邻两个时隙的上报结果地址相差248。这样上报的好处是方便后台将得到的结果统计。
系统验证与仿真
本设计采用Verilog硬件描述语言,经过Modelsim仿真进行功能和时序仿真,结果显示能够达到预期的功能。并利用Altera公司的stratix系列芯片的EPIS30F780C7,并配以Freescale的MPC8270实现了多信道实时解调,运用系统时钟61 44MHz的时钟频率进行多信道分时复用解调。FPGA将解调的结果每10ms上报一次给MPC8270,MPC8270再将所得到的结果通过ftp方式上报给后台PC。验证结果表明该系统能完成所预期的目标。
结语
本文提出的基于FPGA的WCDMA系统下行物理信道实时解调。利用FPGA易于处理底层电路信号的特点,实现了下行多物理信道的实时解调,为方便测试WCDMA系统中下行基站到用户的信道提供了方便的途径,其特点是方便现场测试,在后台配置下应用灵活,在某些测试方面可以替代仪器的使用。
关键词:WCDMA;物理信道;解调;FPGA
引言
在WCDMA系统中高层的数据通过传输信道映射到物理层的物理信道上,物理信道复用着多用户信息和控制信息。物理信道质量的好坏直接影响无线链路的性能,同时也直接决定了用户终端与交换设备的复杂度。根据WCDMA标准物理信道在成帧之后,下行方向从NodeB(基站)侧天线发送给用户(UE)之前的符号数据需要扩频和加扰。对于UE来说收到的下行数据就是经过加扩加扰的数据,为了方便评估下行物理信道的质量,首先要对下行物理信道解调,即将加扩加扰之后的数据解扩解扰恢复出原来的物理信道上承载的符号数,这样才能方便在后台评估。
基于FPGA下行物理信道的实时解调不仅可以在某些方面代替昂贵的仪器测试信道质量,而且因其灵活的配置,可以实现对多个小区的多个物理信道实时解调并将解调的结果实时上报给后台PC,为测试提供了极大的方便。
解调器的设计
总体设计
该解调器主要完成的功能是从背板接收过来的经加扩加扰后的码片级天线数据数据还原成符号级数据,并结合后台和MPC8270完成上报实时解调功能,其整体结构如图1所示。
其中FPGA主要完成的功能是:进行各个公用及专用码道的解调,即进行解扰解扩处理,将来自天线的码片级数据转为符号级软bit数据,根据各个码道的Chipoffset缓存组帧,到公共数据帧结束后通过中断上报数据、进行各个数据域的功率测量再进行硬判决,得到每帧的Pilot的错误个数后进行TFCI译码处理。FPGA内部具体的功能如图2所示。FPGA内部模块主要分为:天线接口模块、码发生器模块、公用和专用解调模块、上报模块。
天线接口模块
天线接口模块负责接收从背板发送过来的3载3扇两天线的高速LVDS数据,解复用之后发送给解调模块,再根据配置的扇区号、天线号和载频号从18路IQ数据中选择出一路IQ数据。背板过来的天线数据和本地时钟是异步时钟,所以在接收IQ数据时就要加缓存进行异步时钟域的切换。
码发生器模块
WCDMA中信道化码采用OVSF码(正交可变长扩频码)用于对物理信道比特信息的扩频,经过与扩频码的相乘,物理层的比特速率提高为码片速率,而且统一到同一个码片速率3.84Mbit/s。由于码片速率的提高,信号频谱也随之扩展。码字(SF)的长度与速率提高的倍数相等。它是一种正交码,其生成过程参考3GPP协议。
扰码采用的是Gold码作为扰码,有自相关性。其生成过程如下:
其生成过程如图3所示。
其中,各信道码发生器是由扰码发生器和信道码发生器组成,如图4所示,其中各物理信道所用扰码相同,因此可以共用一个扰码发生器。
各码发生器与输入IQ数据之间做复数乘法运算,参加乘法运算的两个复数都是I做实部,Q做虚部;运算前,码发生器的输出要先做共轭运算。积分器在复数乘法运算后,积分长度等于扩频因子。积分后得到的IQ数据就是软bit值。功率计算用的是积分后的IQ数据,先取出各域的bit数,然后计算功率,功率值=∑(I×I+Q×Q)/N,N为积分长度。在需要上报bit值(例如TPCbit,TFCIBit)及上报的码道中,如果配置了发射分集开关,还要进行去STTD运算功能。
解调模块
解调之前首先要产生相应的配置数据,配置如下:将所要解调的信道的参数通过CPU配置来确定所要解调的信道的类型、扩频因子、扩频号,以及相对于CPICH信道的时延等。再根据配置的扩频因子和扩频号码发生器产生相应的解扩序列。定时模块负责定时计数,并在每一个无线帧头来的时候将串行的帧号转换为并行的帧号。其计数格式是:SlotCounter+SymbolCounter+ChipCounter+CycleCounter。该模块在设计中的定时计数关系起着至关重要的作用,因为后面的各个模块的定时都是以它为参考。确定了各个信道类型之后,还需各信道各比特域的结构,所以在这里各信道域的定时模块负责产生各个域的定时标志。
解调模块是该设计中最主要的模块,分为公用解调模块和专用解调模块。其中公用解调信道实现的框图如图5所示。其功能包括每时隙符号解调,平均功率和E-RGCH&E-HICH的40个签名的符号相关值。并将这些解调解调出来的结果缓存起来,根据每个时隙测量结果缓存DPRAM读写控制信号,每个时隙测量结果缓存DPRAM读写控制信号,每个时隙需要进行3DPRAM的乒乓操作,即读RAM块比写RAM块落后2个块的长度。这里只说明一下E-RGCH和E-HICH签名解调的过程。根据协议,在解签名的时候有一个40×40的签名序列表,这其中的签名是完全正交序列。所以在程序里边将这个表例化成一个可查询的ROM,这样可以节约对寄存器使用的开支。其解调过程是由状态机完成的,签
名解调状态机当收到符号有效时将相关运算的符号更新一次,并根据符号计数值移位操作保证低位先发。接下来在等待1状态时,将移位得到的签名值与符号值相关并累加。在等待2状态时,将累加的结果存放在中间的DPRAM中,这样可以节省资源。并同时判断符号计数器的值是否为20,如果是则证明一个时隙的签名解调完毕并进行求平均运算,这里求平均直接进行截位,即将低5位截掉,等于给累加的结果除以了32,本来应该除以40,这样做的好处是节约资源,后面的精确计算等将结果上报后台再进一步精确计算。否则继续进行相关累加运算,返回到等待1状态。
专用解调模块比静态模块复杂的地方在于它的扩频因子和扩频号是变化的,通过后台配置进来的,是可以随时根据发送的下行信道配置的发送的信道变化的。其整体框图如图6所示。
其解调上报的结果比较多,包括:符号值,时隙功率平均幅度,导频误码数统计,TPC比特命令,TFCI译码,每时隙的TPC平均功率,每时隙Pilot平均功率。它们的上报模式对于TFCI译码,支持128种TFCI。采样预先生成128个32bit的TFCI表,在每帧进行TFCI译码时,将32个软符号和32bit数进行相关运算,进行128次,然后比较得到 最大值作为TFCI译码值。首先统计每帧数据的30个TFCI比特位,生成串行的数据送入到TFCI译码模块中。
上报模块
上报模块负责将缓存在3DPRAM中的结果在每个10ms帧中断来临时将缓存在大的上报缓存区的数据中断上报给MPC8270,这里开辟了两块大小为8192×16的DPRAM,上报方式采用乒乓操作。每个系统时隙标志到来时将所有的静态和动态信道所要上报的数据从小的DPRAM中取出,送入到上报缓存DPRAM中相应的位置,在帧中断来时,CPU将上一帧缓存的数据读走。其中帧中断的产生是通过判断系统帧号的最低位,只要最低位变化就证明新的一帧来临。因CPU与FPGA之间的地址空间有限,CPU需要复用地址空间,分多段(多个bank)将缓存在FPGA中的数据读走,每个读bank之前,CPU要先向FPGA写段地址,FPGA将该段地址作为每段DPRAM的高地址来使用。即在FPGA中例化了两个8192×16的DPRAM,来缓存每一帧的数据。因为这牵扯到异步时钟域,而CPU读取数据的速度又很快,所以使用了乒乓操作方式可行性好。其中往上报缓存里边写上报结果时,静态信道上报的数据放在前1200个地址空间中,并且不同信道相同时隙的数据存放是连续的,不同时隙之间结果存放地址是跳动的,跳动间隔为80个存储空间,动态信道上报的结果存放在后面的区域,同一信道的相邻两个时隙的上报结果地址相差248。这样上报的好处是方便后台将得到的结果统计。
系统验证与仿真
本设计采用Verilog硬件描述语言,经过Modelsim仿真进行功能和时序仿真,结果显示能够达到预期的功能。并利用Altera公司的stratix系列芯片的EPIS30F780C7,并配以Freescale的MPC8270实现了多信道实时解调,运用系统时钟61 44MHz的时钟频率进行多信道分时复用解调。FPGA将解调的结果每10ms上报一次给MPC8270,MPC8270再将所得到的结果通过ftp方式上报给后台PC。验证结果表明该系统能完成所预期的目标。
结语
本文提出的基于FPGA的WCDMA系统下行物理信道实时解调。利用FPGA易于处理底层电路信号的特点,实现了下行多物理信道的实时解调,为方便测试WCDMA系统中下行基站到用户的信道提供了方便的途径,其特点是方便现场测试,在后台配置下应用灵活,在某些测试方面可以替代仪器的使用。