1 引言
短波无线通信由于所需发射功率小,设备成本低,通信线路不容易遭到破坏等特点而在军事通信领域得到广泛的应用。现在国内短波电台测试主要是外场测试,这种方法成本高,操作麻烦,受地理环境和天气影响较大。研制一种能够在室内模拟各种短波信道条件,对电台进行测试的设备是很有必要的[1]。
短波信道模拟器就是这样一种设备,它主要模拟短波在大气中传播的过程,包括信号的频移、频展以及多径延迟等。信号的频移、频展等可以通过算法用高性能的DSP来实现,对于信号的多径延迟,通常的做法是使用延迟线等方式来实现,这种模拟的方式精度不够高,而且延迟时间的可变性不够好。因此需要寻找一种新的方式来实现。本文对此进行了研究。
2系统模型与设计原理
多径延时是由于发射信号经过不同的传播路径到
达接收端,由于路径的传播距离不同而导致同一时刻的发射信号在不同时刻到达接收端的情况。多径延时通常用多径传播中最大的传输延时与最小的传输延时之差来表示。多径延时与通信距离、工作频率和工作时刻有密切的关系,通常多径延时最大可达几毫秒[2]。短波传播的多径情形主要有三种,如图1中所示。其中,图1(a)的多径由天波地波构成;图1(b)由单跳和多跳构成;图1(c)是由寻常波和非寻常波之间的干扰以及电离层的漫射构成的多径。
通常延时算法都采用RC电路、延时器等模拟方法来实现,用模拟的方法产生实时性的延时在应用上必然会产生较大的误差。使用大容量存储器件算法也可实现延时,从理论上来讲,大容量的SDRAM或者其他高速RAM有着速度和空间优势,可以满足速度要求,也能保持对后的扩展性和对前的兼容性。但是SDRAM的弱点是它的读写时序都比较复杂。
本文提出了一种新的设计方法,该方法使用FPGA和FIFO来实现信号的延时功能,即充分利用了FPGA的灵活方便、可编程性强的特点;同时也利用了FIFO的控制简单、触发位置可变等优点。
在现代的系统设计中,为了提高系统的性能,设计者对数据的传输率、数据的传输量,对系统各部分之间的接口部分不同的数据输入和接收传输率的匹配有越来越高的要求,而FIFO(First-InFirst-Out)存储器以其合理的价格、
使用的方便灵活性以及上述的对速度匹配的应用而成为解决这类问题的理想途径。之所以选择FIFO作为延时的存储单元,是因为FIFO的控制非常简单,而FIFO的容量也越来越大,另外还有一个重要原应是FIFO的触发位置是可变的。
本文使用FPGA来实现对FIFO触发位置的控制。FPGA(FieldProgrammableGateArray)是一种可由用户根据所设计的数字系统的要求,在现场自己配制、定义的高密度专用数字集成电路,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物[3]。
3硬件设计
在本系统中,硬件部分主要包括FPGA和FIFO以及
一些外围配置电路,系统硬件原理如图2所示。这里使用的FPGA是Altera公司65ns工艺的CycloneII芯片EP2C5T144C8,FIFO型号为IDT72V245,其容量为4K。
3.1FIFO的使用
FIFO是一种先入先出的存储器阵列,它的控制逻辑执行所有必要的读写指针管理,产生状态标志信号和
可选择的与用户逻辑电路接口连接的握手信号。单时钟FIFO有一个控制数据读写操作的单时钟端口,出现在模块数据输入端口(DIN)的数据,在写使能输入信号(WREN)低电平有效时,在时钟上升沿触发下写入到下一个可用的空存储器区域。存储器满状态输出信号(FULL)表示在模块的内部存储器中没有更多的空区域可供写入数据。FIFO中的数据输出,是通过模块的数据输出端口(DOUT),按照在先前的时钟上升沿声明的读使能信号(RDEN)触发数据写入的顺序,依次输出。存储器空状态输出标志信号(EMPTY)表示模块内部存储器读空,没有存储可用的数据[4]。
除了空、满标志信号外,还可以设置计数变量(OFFSET),用来提供一个更精确的FIFO状态度量。这个变量的位宽是用户可编程的,以便于提供易于生成的附加状态标志信号。例如,一位的变量位宽可产生半满标志信号,两位的变量位宽产生二进制编码象限标志信号等等。
在本系统中,侧重的是FIFO的读触发信号的可编程性,即OFFSET的可改变性,通过改变OFFSET的寄存器的值,就可以得到在PAF的触发信号,使用FPGA就可以根据PAF的触发信号读出数据。图3是配置FIFO时的时序图。
通过FPGA控制FIFO的触发点来实现输入信号在不同时刻输出。假设一路信号延迟m个时钟周期输出,另一路信号延迟n个时钟周期输出,那么两路信号将产生|m-n|个时钟周期的相对延迟。要提高延时的时间,就是要增大|m-n|的值,而|m-n|的值将最终取决于FI-FO的容量,容量越大,所能实现的|m-n|的值就越大,从而延时的时间就越长。
同时,延时的精度可以达到1/f(其中f为系统工作频率),即一路信号相对于另一路信
号只延迟一个时钟周期输出。
3.2FPGA控制模块
在这里以2路信号延时为例,即使用2个FIFO模拟两个路径的多径延时效应。这里信号在FIFO中延迟多少个时钟周期输出是由FPGA来控制的。该控制模块在底层中需要分为三个模块,分别为:初始化配置模块、FIFO数据写入模块和FIFO数据读出模块。此处为控制2个不同的FIFO,所以在每个模块中以a和b对这两个FIFO加以区分。如图4所示:
其中FIFO_CTRL为FIFO初始化模块,根据FIFO的datasheet所示,在RESET后有多个信号需要给出,模块完成的工作有三个方面:
1)根据FIFO的工作时序模式以及是否使用菊花链以扩展深度,来确定WXI、RXI、FL的输出。在本次的设计中,都为单一FIFO,所以配置非常简单(FL=1,RXI=0,WXI=0);
2)rst_man的信号产生。因为OFFSET数据输出要占用Dada_in数据位,所以在写入OFFSET寄存器的时候,不能有任何其他的数据挂在Dada_in的数据总线上,否则将会产生冲突,此处使用的方法就是在配置FIFO的时候产生rst_man低电平,来控制其它Data_in的数据源部分输出为0,然后通过一个或门就可以把它们隔开来。
3)OFFSET寄存器的值的写入,这是设计中的关键部分。OFFSET的配置时序如图3所示。因为OFFSET写入有特殊的时序要求,也有OFFSET_empty和OFF-SET_full两个区分,所以在此处必须使用状态机来完成。状态的变化虽然比较少,但是为了满足FIFO的时序要求,在Clock的上升沿的变化还是要求比较苛刻,在QUARTUSII的时序仿真中能达到设计时的要求。
Read_ctr模块为读取FIFO中的数据的控制模块,因为把FIFO产生的所有反馈的输出都连入FPGA中,所以看起来此处的port非常多,其实用到的port不是很多。这个模块的程序编写思路为:
1)对于FIFOb来说,我们做最大的延时,所以此处的触发信号为Full信号,所以,只要FIFOb的Full信号
为低电平,就读FIFO中的数据。
2)对于FIFOa来说,因为要产生不同的时间差,那么读取的时间自然要早一些,那么就读取PAFa的低电平来识别。因为PAF的触发时间为(4096-OFFSET),所以改变了OFFSET的值,就改变了触发时间,自然就产生了时间差,也就产生了不同的延时了。
上面两个FIFO的数据读取完成都是通过两个状态机来完成,总体来说通过简单的状态机就可以很好地完成这两部分的工作。
接下来介绍Write_Ctr模块,这个模块的编写就是根据clock的变化写入输入信号。通过配置初始化完成后,使得FIFO的OE和WEN变为低电平以后,再产生Wclk就可以完成全部的工作。此处的RST是来自FI-FO_CTRL的rst_man。所以不会产生数据冲突问题[5]。
另外,为了配合外部电路的速度和匹配要求,在这里应用了Altera的库生成了PLL(PhaseLockedLoop)。PLL具有低的时钟偏移,应用灵活,通过调整比例关系,就可以得到需要的时钟频率。如图5所示。
通过前面各个模块的介绍,那么通过综合、编译、布局和布线就完成了在FPGA中基本上比较符合实际的网络联线表。通过对整个工程的仿真就会出来一个仿真结果图。比较结果和预期的目的,不难看出,程序的编写是完全符合要求的,如图6所示。
4硬件测试结果
硬件系统完成后,需要对延时的最大时间、延时精度,以及延时的可变性进行测试。测试的输入信号为位宽12位的数字正弦波信号,使用逻辑分析仪测试输出信号。
对于最大可延时时间,在系统时钟确定的情况下,其取决于FIFO的容量。由于FIFO的容量为4K,系统的时钟采用20MHz,那么可实现的最大延时时间为4K×1/20MHz=200微秒。对两路输入信号进行测试,比较其中一路相对于另一路的延迟时间,最大延时时间如图7所示,从测试图中可以看出,最大延时和理论计算的相同。
再来看延时的精度,此时的Clock选用的是10MHz,那么最大的精度就是1/Clock,也就是100ns。通过改变OFFSET的值,就可以测出位移一个OFFSET的触发点就可以得到,如图8所示。
最后,要测试的是延时的可变性,因为所有的偏移量都是通过改变OFFSET的值来实现的。所以只要改变这些量的值,就能实现,图9和图10就是实测图。
5结束语
以上的测试表明,使用FPGA和FIFO可以很好地
实现对短波电磁波信号传播的多径延时效应的模拟。在该方案中,采用更大容量的FIFO就能提高多径延时的时间;同时,该方法能实现的多径延时的精度很高,可以到达100ns的水平(依赖于系统的时钟);而且,多径延时的时间能够较精确地连续变化。整个系统的硬件开销
也比较小,实用性很强。
参考文献:
[1]董彬虹,李少谦.短波通信的现状及发展趋势[J].信息与电子工程,2007,5(1):1-4.
[2]胡中豫.现代短波通信[M].北京:国防工业出版社,2003:8-19.
[3]PalnitkarS.VerilogHDL数字设计与综合[M].第2版.夏宇闻,胡燕祥,刁岚松,等译.北京:电子工业出版社,2004:2-140.
[4]IDT72V225/72V235/72V245DataSheet[M].IntegratedDeviceTechnologyInc,2006:1-25.
[5]常晓明.Verilog-HDL实践与应用系统设计[M].北京:北京航空航天大学出版社,2003:74-92.