扩频通信芯片STEL-2000A的初步改进及其FPGA实现

时间:2022-10-28 10:42:04

扩频通信芯片STEL-2000A的初步改进及其FPGA实现

摘要:本文对扩频通信芯片stel-2000a的主要功能模块进行了研究,针对匹配滤波器和差分解调模块进行改进。具体来说,对匹配滤波器模块的幅值近似公式进行了详细误差分析,提出更加精确的近似公式。此外,针对差分解调模块提出新的查找表方法,相比原有的解调方法,新方法不仅正确实现差分解调功能,而且简化了复杂度、减小了计算量及资源占用量。改进的系统在Virtex-II pro开发板上进行实现,验证了改进方法的正确性及有效性。

关键词:扩频通信;DS-CDMA;STEL-2000A;fpga;匹配滤波器;差分解调;查找表

中图分类号:TN914.42文献标识码:Adoi: 10.3969/j.issn.1003-6970.2011.03.034

The Initial Improvements and FPGA Realization of the Spread-Spectrum Communication Chip STEL-2000A

Xu Yan-mei, Wan Yi

(School of Information Science & Engineering, Lanzhou University, Lanzhou 730000, China)

【Abstract】 In this paper, main function modules of spread spectrum comminucation chip STEL-2000A are studied and some improvements are made for the matched filter module and the differential demodulation module. Specifically, the detailed error analysis of the amplitude approximate formula is given in the matched filter module and more accurate approximate formulas are proposed. In addition, a new look-up table method is presented for the differential demodulation module. Compared with the original method, the new method not only achieves the correct differential demodulation function but also simplifies the complexity and reduces the amount of computation and the resource consumption. The improved system is realized on the Virtex-II pro development board which verifies the correctness and the validity of the improved method.

【Key words】Spread Spectrum Communication; DS-CDMA; STEL-2000A; FPGA; Matched filter; Differential demodulation; Look-up table

0引言

目前,扩频通信系统主要采用高集成度的扩频通信芯片实现,国外有很多公司都早已推出了自己的产品。由于国内半导体生产工艺以及设计水平的限制,这方面起步较晚,北京的福星晓程公司的电力线载波芯片PL3201以及上海弘亚微电子公司的MI200E就是为数不多的例子。但目前国产此类芯片的应用场合比较有限,在国防领域基本上还是选择国外设计生产的芯片,在安全方面存在隐患。此外,国内国外推出的这些扩频芯片的功能虽然很强大,但是它们也和很多ASIC产品一样,存在固有的一些缺陷,比如它们的大部分功能已经固化,不利于系统以后的升级,缺少产品开发的灵活性。而现场可编程门阵列(FPGA)资源丰富,具有可重复编程、现场可修改设计等特点,使其成为复杂数字系统设计的主要选择[1]。

STEL-2000A是美国Stanford Telecom公司研制的单片全数字扩频芯片,具有很强的信息处理能力,被广泛应用于数据获取系统、无线局域网通信等领域[2]。本文对该芯片的工作原理进行研究,在FPGA上实现其主要功能并进行一些初步改进

STEL-2000A芯片主要包括发射和接收两大部分,图1、图2分别是STEL-2000A发射子系统和接收子系统的主要功能模块框图[2][7]。发射部分主要有串并处理、差分编码、PN码扩频、QPSK (Quadrature Phase Shift Keying,正交相移键控)调制等模块;而接收部分主要由数字下变频、低通滤波器、匹配滤波器、差分解调、并串处理、自动频率跟踪处理等模块组成[2][7]。

图1发射子系统

Fig.1 the Transmitter Subsystem

图2接收子系统

Fig.2 the Receiver Subsystem

在接收子系统的匹配滤波器模块中,存在幅值检测单元,通过幅值近似公式计算得到信号幅值,然后将其与预定的门限值进行比较,判断信号是否同步。本文对匹配滤波器中使用的幅值近似公式进行了详细分析,通过求解最小均方误差的方法得到更加准确的近似公式。此外,针对差分解调模块,采用查表的方式取代传统的解调方法,不仅简化了复杂度,而且减少了运算量和资源占用量。

本文接下来的结构安排如下,第一部分对匹配滤波器模块的幅值近似公式进行详细分析,第二部分针对差分解调模块,提出一种新的基于查找表的方法,第三部分对采用改进方法的扩频通信系统进行了FPGA实现。第四部分给出结论,指出新方法在复杂度及资源占用量等方面的改进。

1匹配滤波器模块分析

1.1内部结构框图

STEL-2000A中的数字匹配滤波器可以同时实现扩频信号的同步与解扩[3]。接收子系统的接收信号是由A/D转换后的数字中频序列Iin、Qin,经过下变频、低通滤波器[4]处理后得到基带信号,该基带信号被送到匹配滤波器中。匹配滤波器的内部结构如图3所示[2]。

图3匹配滤波器模块

Fig.3 the Matched Filter Module

匹配滤波器将两路数字序列分别经过一组延时移位寄存器,分别与本地寄存器中的PN码系数相乘,将相乘后的结果累加起来,得到每次延时两者的相关值,图3中分别用Isum和Qsum表示两路累加器的输出结果。在FPGA实现中,这两个信号采用8bit有符号二进制数表示。通过两路信号累加值Isum和Qsum可以求出幅值[3]。该幅值被送到幅值检测器和预定门限值进行比较,当幅值MAG超过门限值时,说明扩频信号和 PN码达到同步。

由于在FPGA中实现多位数的平方运算需要占用大量的资源,随着数据位数的增长,资源耗费量也急剧增加。因此大多数文章以及STEL-2000A手册中都使用下面的近似公式求解幅值[2] [3] [6] :

(1)

但是在这些文献中都没有给出具体的推导过程,下面给出详细的理论分析及优化近似公式。

幅值近似公式分析

幅值近似公式的确定可以采用最小均方误差的思想。令,,那么真实幅值为,且A≥a。假设幅值MAG的近似公式为f (A,a),则均方误差L为:

(2)

其中,p (A,a)是随机变量A和a的联合概率密度,其分布随实际情况而定,下面以均匀分布为例进行误差分析。假设p(A,a)为均匀分布,A和a的积分范围均为[0,1]且A≥a,则A的实际积分范围为[a,1],p (A,a)=2。

假设f (A,a)为线性函数,即f (A,a)=αA+βa,其中α、β为常数,则。要求出均方误差L的最小值,须令,:

(3)

(4)

进而得到:

(5)

(6)

求得α=0.934320,β=0.426947。此时可以得到最小均方误差Lmin=0.000356464。下面我们讨论f (A,a)的三种特例:

a、f (A,a)=αA+a,即β=1。将β=1代入公式(5),求得α=0.647794,根据公式求得L=0.0140394。

b、f (A,a)=A+βa,即α=1。将α=1代入公式(6),可求出β=0.328427,L=0.000895696。

c、f (A,a)=α(A+a),即α=β。将α=β代入公式(5)、(6), 然后相加,可求得α=β=0.744055,L=0.00504915。

根据上述推导,可以得出更加精确的幅值近似公式。而STEL-2000A手册中使用的近似公式为f (A,a)=A+1/2・a,代入公式,求得L=0.0058019。上述各种情况的最终结果如表1所示:

从表1可以看出,一般形式的f (A,a)对应的均方误差L最小,而STEL-2000A手册公式对应的L较大,并不是最优的。但是求解得到的近似公式的系数α、β都是不规则小数,有的近似公式效果更优但是在FPGA中不容易实现,即使可以实现也会耗费太多的资源。其中,特例b的L值比较接近Lmin,其系数β=1、β=0.328427。在FPGA中实现时,可以使用1/3代替β值。即f (A,a)=A+0.328427・a≈A+1/3・a。STEL-2000A中的公式为f (A,a)=A+1/2・a,相比1/2而言,1/3更接近1/4,考虑到2的整数幂次在FPGA中更容易实现,将β=1/4的情况也考虑在内,即f (A,a)=A+1/4・a。

在Virtex-II pro开发板上对上述三种情况进行功能仿真。表2列出了它们的资源消耗情况:

由表2可知,特例b近似公式的均方误差L比STEL-2000A的小很多,但是占用了更多的FPGA资源。

f (A,a)=A+1/4・a和STEL-2000A的公式比较,占用资源差不多,但是L更小,更接近真实值,因此实际中推荐近似公式

f (A,a)=A+1/4・a。

上述误差分析方法适用于一般情况下的概率密度函数p(A,a)。

2差分解调模块改进

2.1差分编码原理

扩频系统中常用的调制方式有BPSK、QPSK、π/4-QPSK。常用的QPSK存在相位模糊等问题,为避免此类问题,系统常采用DQPSK(Differential Quadrature Reference Phase Shift Keying, 四相相对相移键控) [5],STEL-2000A扩频芯片就使用了DQPSK方式[2]。DQPSK的具体实现就是在QPSK处理模块之前加一个差分编码模块,相应的在接收模块中增加差分解调模块。

DQPSK的差分编码模块利用相邻码元之间载波相位的相对变化来表示实际传输的两位二进制数据信息。一般称差分编码之前的原始信号为绝对码,而经过差分编码处理之后的信号称为相对码[5]。DQPSK差分编码的第n位双比特相对码的编码输出不仅与第n位双比特绝对码输入有关,还与第n-1位相对码编码输出有关,差分编码的输出共有16种可能性,见表3[5]。

2.2差分解调原理

根据STEL-2000A的接收子系统(图2)可知,差分解调模块在匹配滤波器模块之后,差分解调模块要处理的信号是匹配滤波器的相关值Isum、Qsum。当匹配滤波器模块输出定位脉冲,即检测到相关值的峰值时,此相关值就被送到差分解调模块进行差分解调。

2.2.1STEL-2000A差分解调原理

信号经过匹配滤波器以后,基带信号可以表示为[6]:

I(k)=Acosφ(k)

Q(k)=Asinφ(k)

其中,I(k)和Q(k)是匹配滤波器输出的第k个双比特码元,实际实现中是用8bit有符号数表示的。假设:

Sin(k)=I(k)+jQ(k)=Aejφ(k)

Sout(k)=Sin(k)Sin*(k-1)=A2ejΔφ)

其中,Δφ=φ(k)-φ(k-1)。在STEL-2000A手册中引入了点积Dot(k)和叉积Cross(k)的概念[2][6],它们的定义是:

Dot(k)=Re[Sout(k)]=I(k)I(k-1)+Q(k)Q(k-1)=A2cosΔφ

Cross(k)=Im[Sout(k)]=Q(k)Q(k-1)-I(k)I(k-1)=A2sinΔφ

采用DQPSK调制方式,Δφ的取值有[0,π/2,π,3π/2]四种可能,相应的sinΔφ和cosΔφ的值就有[-1,0,+1]三种,这在进行最佳判决接收的时候较难实现[7]。经常采用的方法是引入π/4相移。实现方法如下:

最后直接根据Dot和Cross的正负即可判断出当前的双比特绝对码码元,解调结果判决表如表4所示。

求解Dot(k)和Cross(k)的时候,涉及到乘法运算,占用比较多的FPGA资源,接下来的小节提出一种新的基于查找表的改进方法。

2.2.2改进的查找表方法

由差分编码的原理可知,实际传输的绝对码是隐含在相邻两对相对码之间的,即差分解调模块的第n位双比特绝对码输出不仅与第n位双比特相对码输入有关,而且与第n-1位双比特相对码输入有关。另外,从表3可以看出,cndn的值完全由

en fn和en-1 fn-1决定。因此,可以考虑使用查找表方式来实现差分解调,即将第n-1位双比特相对码元保存en-1 fn-1下来,再和当前输入的第n位相对码元en fn结合起来,通过查表确定出隐含的绝对码元cndn的值,如表5所示。

查找表方法实现的关键是首先要从匹配滤波器输出的相关峰值Isum和Qsum中提取出两路要处理的差分信号。Isum和Qsum是8bit有符号数,根据Isum和Qsum的符号位可以判定出对应的差分信号是1还是0。得到两路1bit的差分信号以后,就可以根据真值表5进行差分解调了。

3FPGA实现及结果分析

使用Xilinx的Virtex-II pro开发板,对差分解调模块的两种方法进行测试[10]。整个扩频通信系统的输入为周期循环序列“10110101”,串并转换后I路信号为“1100”循环序列,对应的Q路信号为“0111”循环序列。扩频系统的发送模块和接收模块在同一个FPGA开发板上实现。系统时钟为100MHz,数据传输速率为31.25Kbps,扩频通信中使用64位的m序列作为PN码[7-8],其速率为1Mchips/s。

通过在线逻辑分析仪Chipscope观察扩频系统中各模块输出信号并记录实验结果。图4和图5图5中的clk_chip是PN码片时钟信号,clk_bit为串行输入信号的时钟,而clk_symbol为串并转换后的并行信号的时钟,其周期为clk_bit时钟周期的两倍。I、Q是发送端经过串并转换后的两路输入信号,I_chafen、Q_chafen为差分编码信号,I_PN和Q_PN是经PN码扩频后的信号,symbol为定位脉冲,而I_de、Q_de是接收端解调后的双路信号。在两种方法中,I_de、Q_de的结果均为“10110101”循环序列。

图4STEL-2000A使用的方法

Fig.4 the Method of STEL-2000A

图5查找表方法

Fig.5 the Look-up Table Method

从图4、图5中可以看出,两种方法的最终解调结果I_de、Q_de相对于输入信号I、Q都存在两个clk_symbol周期的时延。其中一个时钟周期的延迟是由匹配滤波器的相关处理产生的,另一个时钟周期的延迟是由于在当前clk_symbol周期检测到的最大相关值只能在下一周期才能进行差分解调处理的缘故。

两种方法占用的资源情况如表6所示。可以看出:改进的查找表方法节省了FPGA资源,尤其是宝贵的乘法器资源。

4结论

本文通过对扩频通信芯片STEL-2000A主要功能模块的研究,对差分解调模块进行了改进,并对匹配滤波器模块使用的幅值近似公式进行了详细分析。通过在FPGA上实现,验证了改进后的差分解调模块可以正常工作,并且节省了FPGA资源。

本文中实现的扩频系统是非常理想的,接收端没有使用AFC(自动频率控制)模块对下变频中的NCO(数控振荡器)的输出频率进行控制和调节。如果在实际应用中需要用到AFC模块并且用到点积、叉积时,查找表方法就没有太大的优势了。

参考文献

[1] 李果. 基于FPGA的扩频通信芯片设计及应用[D]. 武汉:武汉理工大学,2008.

[2] STEL-2000A Datasheet[S]. Intel. Decemeber 15, 1999.

[3] 魏炳朝,汪春霆,李峰等. 扩频接收机中数字匹配器的设计与实现[J]. 无线电通信技术,2003,29(2):55-57.

[4] 盖鹏翱,赵笛. CIC滤波器的原理及FPGA实现[J]. 无线通信技术, 2005(4):52-55.

[5] 周炯,庞沁华,续大我等. 通信原理(合订本)[M]. 北京:北京邮电大学出版社,2005.

[6] 陆涛. 基于FPGA实现的扩频通信系统[D]. 成都:西南交通大学,2003.

[7] 谭强,万毅. 扩频通信芯片STEL-2000A的FPGA实现[J]. 电子设计工程,2010,18(11):136-139.

[8] 章潋,秦会斌. 基于FPGA伪随机码发生器的实现[J]. 电子与封装,2008,8(2):43-46.

[9] 韦惠民. 扩频通信技术及应用[M]. 西安:西安电子科技大学出版社,2007.

[10] 田耘,胡彬,徐文波等. Xilinx ISE Design Suite 10.x FPGA开发指南.DSP、嵌入式与高速传输篇[M]. 北京:人民邮电出版社,2008.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:从水位偏高说开去 下一篇:基于绩效评价的网上电子学档系统的设计