1 混合扩频接收机解扩模块的FPAG设计
解扩模块是混合扩频接收机的核心。该模块实现对接收信号的解扩处理,主要包括数字下变频器、数控振荡器(NCO)、码发生器、相关累加器和伪码移相电路等,通常各模块采用专用芯片。利用FPGA将这些功能集成在一块芯片中,大大缩小了接收机的体积,便于实现系统的小型化和集成化。下面分别介绍该模块各部分的FPGA实现结构。
1.1 数控振荡器(NCO)
数控振荡器是解扩模块中的重要组成部分,主要用于为码发生器提供精确的时钟信号,从而实现对接收信号的捕获和跟踪。码发生器由相位累加器和查找表构成。若使用字长为40位宽的累加器,对于某一频率控制字A,输出频率fout与输入频率控制字A的关系为:
其中,fclk为系统时钟。只要改变控制字A的大小,就可以控制输出频率fout。fout变化的最小步长Δf由累加器的数据宽度决定。若数据宽度取40位,则:
利用上述原理,可以通过精确分频得到所需频率。原理图如图1所示。
图1中频率控制字A由DSP写入。考虑到FPGA内部存储资源限制,取40位相位累加值result[39..0]的高八位作为查找表LUT(look-up table)的输入,查找表由ROM构成,存储各相位所对应采样值。当查找表输入端为某一相位phase时,则输出对应采样值。若输出数据宽度为6位,输出信号格式为余弦信号,则LUT输出为[6]:
若取ROM的并行6位out[5..0]作为输出,则输出信号为每周期采样256点的数字化余弦信号;如果取最高位out[5]作为输出,则输出为系统时钟的分频信号。
1.2 数字下变频器
数字下变频器将A/D采样得到的中频信号进行下变频处理,去除中频,得到基带信号。利用本地NCO产生与输入中频信号频率相同的正弦和余弦信号,并与输入信号进行复乘法运算,然后对运算结果做低通滤波,即可完成对中频信号的下变频操作。正交采样模式下,两路A/D转换器提供正交输入IIN及QIN,数字下变频器的复乘法器输出IOUT、QOUT为:
本振信号、复乘法器、低通滤波器均采用数字化设计。数字下变频器采用ALTERA公司的APEX20K200RC240-1
器件。该器件典型门数为20万,有丰富的逻辑单元和RAM单元,开发平台Quartus II 自带的宏模块,如lpm_mult(乘法器宏模块)、lpm_rom(ROM宏模块)、lpm_add_sub(加法器宏模块)等,给设计带来了极大的方便。数字下变频器原理图如图2所示。
图2中的数字表示相应模块的数据宽度。滤波模块是1个二阶的低通滤波器,滤除混频后的高频分量。在一些专用的数字下变频器件如STEL-2130中,滤波器的阶数是可编程的,可以根据需要设置不同的阶数,从而得到不同的滤波效果。考虑到FPGA的资源问题,设置滤波器的阶数为固定的二阶。滤波器输入x[n]与输出y[n]关系为:
该低通滤波器将相邻的两个输入数据相加后作为输出,即每两个输入数据对应一个输出数据,输入数据时钟节拍为输出数据时钟节拍的2倍。
经过低通滤波后的数据经过滑动窗处理,滑动窗对输入数据进行选择输出,用来动态调整相关峰的大小。在捕获过程中观察相关峰值时,通过调整滑动窗口,可以获得不同幅度的相关峰值。选择控制端由DSP写控制字来决定,结构如图3所示。滑动窗控制逻辑关系为:
符号扩展是为了与后面的相关累加器数据宽度保持一致,符号位扩展时需与输入数据最高位的符号保持一致。1.3 相关累加器
相关累加器完成本地伪码与接收信号的相关累加运算,运算得到的结果送入DSP完成伪码的捕获和跟踪。取伪码长度为256位,采用半码片滑动,则一个码周期完成512次累加运算。如采用串行滑动相关捕获方式,则遍历所有的码相位所需要的时间为512个码周期,即捕获所需要的最长时间为512个PN码周期。由于可编程逻辑器件的发展,使得有足够的硬件资源来完成并行运算。此处采用串/并混合的捕获方式[6][7],采用8路相关累加器,每一路分为超前、当前、滞后3组,每组相差半个码片的相位,每一路相差64个半码片的相位。这样,只需滑动64个半码片相位就可以遍历所有的伪码相位,完成捕获所需时间缩短为原来的八分之一。数据解调由另外4组相关累加器完成。由于发射端同步伪码与数据伪码相位严格对齐,所以在接收模块中,完成同步伪码捕获跟踪后,直接将所获得的相位信息用于数据解调相关器,即可正确解调数据。
同步伪码的跟踪采用超前—滞后延迟锁相环路(DPLL),每一路相关器包括3组累加器。捕获跟踪及数据解调共使用28组相关累加器,每一组相关累加器结构都是完全一样的,均分为I、Q两路,分别进行累加运算,完成512次累加运算后由DSP读取数据。I、Q两路结构完全相同,其中一路的原理图如图4所示。
相关累加器由18位加减法器、锁存器1和锁存器2组成,data[7..0]为下变频后的输入数据,PN CODE来自码发生器。作为控制端,低电平完成加运算,高电平完成减运算,DP上升沿进行数据锁存,下降沿完成一次累加运算。当累加运算完成后,由CLR信号清零并将结果存入锁存器2,CLR下降沿有效。锁存器1输出OV信号作为溢出标志位,锁存器2输出累加结果out[16..0]。输入与输出端的最高位为符号位。
1.4 本地码发生器及码移相电路
本地码发生器用于产生本地PN码,从而与接收信号进行相关运算。由于发送端采用编码扩频调制方式,接收信号中既有同步PN码,还有数据PN码,与接收信号相对应,本地也应该产生相应的PN码,用于同步及解调数据。
本地PN码发生器全部采用FPGA实现,并且设置了可编程寄存器和外部接口,DSP通过接口可预置PN码长度。1024进制计数器电路用于产生ROM的输入地址,ROM由FPGA内部RAM资源来实现,采用ALTERA公司APEX20K200器件。该器件内部可编程RAM容量为106496位,完全可以满足设计需求。本地PN码采用半码片滑动方式,ROM内部PN码也以半码片方式存储。如码长为256,采用半码片存储方式后,每一组PN码需存储512位数据,相应的ROM有9位地址线驱动输出。驱动时钟为PN码时钟的2倍。在实际设计时,PN码发生器内存放了8组PN码,但只用了五组,一组用于同步,另外四组用于解调数据。ROM输入地址由1024进制计数器产生,实际上只需用512进制计数器即可得到ROM输入地址。考虑到可扩展性,这里采用了计数容量最大为1024的可变计数器。由DSP通过DSP-FPGA接口改写寄存器值,可以很方便地调整PN码的输出相位。
伪码移位电路的主要作用是将码发生器产生的PN码进行移位操作,从而得到伪码的不同相位。捕获和跟踪过程共使用了8路24组相关累加器,每一路分为超前、当前、滞后3组,这3组累加器输入端PN码相差半个码片的相位,8路相关累加器中每相邻两路相差64个半码片。码发生器输出5组PN码序列(第0组~第4组),分别对应同步伪码及4组数据伪码。5组伪码均经过512级移位寄存器,第0组PN码作为同步码,取其0、1、2相位作为第一路的超前、当前、滞后3组相关累加器的输入;64、65、66相位作为第二路的超前、当前、滞后3组相关累加器的输入,其余各路依此类推。当完成捕获后,需要将捕获所得的同步PN相位切换到数据解调相关累加器中。例如,假设在第二组相关累加器的当前通道捕获,那么此时解调数据用的相关累加器的PN码相位就应该与第二组相关累加器当前通道的PN码相位保持一致。数据伪码相位切换的实现是由DSP记忆捕获通道的相位,然后控制多路选择开关选择该相位。2 同步模块的FPGA实现
同步模块由位同步及帧同步电路构成,主要实现对信息数据的检测和提取,并识别一帧信息数据的帧头位置,实现跳频图案的同步。跳频图案的同步采用等待搜索同步法,开始时接收端频率合成器停留在某一单频点fi′,等待发射机的频率fi,当发射机的频率跳变为fi时,接收端本地的频率fi′与发送的频率fi混频后,输出中频fIF。DSP完成解扩解调运算后,得到的串行数据流送入位同步和帧同步电路,从数据流中提取出特征字,就可以获得一帧完整的数据,从而确定帧头的位置,即频率转换时刻,由此控制接收端频率合成器与发送端频率合成器同步跳变,实现跳频图案的同步。由于采用编码扩频调制方式,发送端每两位信息比特在一个PN码周期被编码为4种PN码中的一种。所以接收端在每一个PN码周期,对4组数据相关累加器的累加结果进行最大值比较,然后译码成相应的信息数据。信息数据送到同步电路,进行巴克码匹配相关,提取有效的信息位,并控制跳频时序完成跳频同步。同步模块原理如图5所示。
在每一个PN码周期,4组数据解调相关累加器解调出2bit信息数据。2bit信息数据以9.6kHz的速率送到同步电路。同步电路首先将信息数据进行并串转换,由9.6kHz、2bit的数据流变换为19.2kHz、1bit的数据流,变换后的数据流再经过串并变换,得到19.2kHz、32bit的并行数据流。根据信号格式,每一帧数据为32bit,相应的13位巴克码在一帧数据中的位置固定不变,所以提取每帧数据中相应位置上的13位数据比特与本地巴克码进行相关匹配运算,结果与门限值比较,如果符合门限设置,即有中断输出,通知外部设备读取相应数据。
3 实验结果
系统技术指标为:信息数据速率4.8kbps,比特率19.2kbps。跳频速率600hop/s,20个跳频点,跳频带宽68MHz,每跳32bit扩频码周期为256,码速率为4.9152MHz。
用TEKTRONIX 2221A数字存储示波器观测实验结果。图6~9为FPGA各测试点的测试结果。
图6中第一组波形是256码长本地接收同步伪码流,第二组为跳频帧同步信号,该信号对应的伪码相位即为解扩、跳频同
步时的相位。图7第一组波形为接收数据流,第二组波形为发射数据流,发射数据帧格式为00000000011111001101010000000000,帧同步码为13位巴克码1111100110101,8位信息数据为00000000。由图7可以看出接收端数据与发射端相同,但滞后于发射端,这是由于传输时延造成的。图8第一组波形为接收串行数据,第二组为跳频帧同步信号,该信号下降沿对应于一帧数据的起始,控制频率合成器进行频率转换。图9第一组波形为发射跳频帧信号,第二组为接收帧同步信号,接受帧信号上升沿与发射跳频帧信号的下降沿对齐,信号宽度大于发射端信号。这是因为控制频率合成器进行频率转换的updata信号需要一定宽度。
解扩及同步是DS/FH混合扩频接收机正确数据解调的关键,采用FPGA设计实现了多片专用芯片的功能,大大缩小了接收机体积,便于系统实现小型化、集成化。捕获及跳频同步等算法采用硬件实现,加快了捕获跟踪速度。FPGA的可编程性使电路的设计更具灵活性,并使系统具有“软”接收机的特点。实验结果表明FPGA系统设计是正确可行的。