基于FPGA的跳频电调滤波器控制软件的设计与实现
打开文本图片集
摘要:该文从跳频电调滤波器控制软件开发环境入手,通过VerilogHDL 描述语言编码完成了跳频电调滤波器中FPGA控制系统的软件设计;设计了FPGA通过I2C接口读取EEPROM中存储的调谐电压参数的代码和DA模块的驱动;实现了对跳频电调滤波器中心频率的控制。
关键词:跳频;电调滤波器;FPGA
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)22-0221-03
跳频通信技术是在现代信息对抗日益激烈的形势下迅速发展起来的,它具有很强的抗搜索、抗截获、抗干扰能力。因此,各国军方对这一先进技术的发展和应用十分重视。为此,我们成立课题组,对跳频技术进行了深入研究,专题研究带通电调滤波器,设计出了一种基于FPGA控制的数字调谐跳频滤波器。该调谐滤波器工作频段为30~88 MHz,在不同的频点都具有良好的参数指标,具有很好的实用价值和发展前景。下面仅就其中的电调滤波器控制软件的设计与实现进行分析,以供参考。
1 系统软件开发环境
该跳频电调滤波器整个硬件系统的工作处理流程为:系统上电启动→FPGA接收来至外界的频率控制信息→FPGA通过频率信息映射出参数存储器地址→FPGA读取已经写入存储器中的电压参数信息→FPGA将电压参数信息送至DA模块进行数模转换→DA模块输出电压至电调滤波器使其工作在当前中心频率→FPGA处于空闲状态,等待新的频率控制信息。
从上述硬件系统工作流程可知,跳频电调谐波器当前中心频率的设置是由基于FPGA的控制系统实现的。首先FPGA通过SPI接口接收来至综合业务模块的频率字信息;之后FPGA通过该频率字信息计算出所要设置的工作频点对应的EEPROM存储器的地址,该地址中存储有对应工作频点所需要的调谐电压参数;FPGA向EEPROM发送读命令与地址信息并接收EEPROM返回的数据;最后FPGA将读取的电压参数送至10位DA转换模块,得到当前工作频点对应的调谐电压,并由此电压来控制跳频电调滤波器的中心频率。
本设计中FPGA可以实时接收并处理来至外部的频率字信息,系统软件设计的主流程如图1所示。
本设计选用Xilinx公司ISE(Integrated Software Environment)作为电调滤波器软件控制系统的开发和调试工具,使用Verilog HDL描述语言实现基于FPGA的软件控制程序。
1.1 ISE集成开发环境简介
ISE是集成综合环境的缩写,它是Xilinx FPGA/CPLD的综合性集成设计平台,该平台集成了设计、输入、仿真、逻辑综合、布局布线与实现、时序分析、芯片下载与配置、功率分析等几乎所有设计流程所需工具。需要提出的是ISE中还集成了两款仿真器ISE Simulator和Modelsim,从而可以实现更快的仿真和更大的设计容量。另外ISE支持Spartan-3E FPGA系列和超低功耗Spartan-3L FPGA,因而可支持额外的大批量设计,可以大大节约设计者的成本。
1.2 ISE开发FPGA流程
一般来说完整的ISE软件设计流程包括:电路设计与输入、功能仿真、综合、综合后仿真、实现、布局布线后仿真与验证以及下载调试等主要步骤,如图2所示。
2 SPI接口设计实现
SPI(串行外围接口)总线,是一个同步串行接口的数据总线,它具有全双工、信号线少、协议简单、传输速度快等优点。SPI总线最典型的应用就是主机与外围设备之间的实时通信。本文中综合业务单元与跳频滤波器单元之间采用SPI同步串行通信,内容包括:预留信息、频率信息(频率信息采用BCD编码格式,先送高字节,再送低字节)。其中频率字的高字节表示频率的十M位和M位,低字节表示频率的百K位和十K位,频率信息以50K为一个步进。例如,38.65M对应的频率字为:0x3865。
FPGA作为从机,接收来至综合业务模块通过SPI协议发送来的频率字。在时钟的上升沿,将数据线上的频率字移位至内部寄存器,频率字的前8位是预留位,后16位是频率信息。FPGA中的接收寄存器用Verilog HDL语言描述如下:
always @(posedge Sysclk )begin
if(Reset == 1"b1)
rx_shifter <= 24"h0;
else if(sck_pose == 1"b1) begin
rx_shifter <= (rx_shifter << 1);
rx_shifter[0]<= Iwo;
end
end
3 I2C接口读写EEPROM设计
跳频电调滤波器FPGA控制单元接收到来至综合业务模块的频率字信息,通过内部算法将其映射到对应频点的存储器地址信息,之后FPGA将完成对EEPROM存储器的读操作。设计中采用24FC1025系列EEPROM作为电调滤波器的参数存储器,它支持I2C协议的读写操作。I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号,如图3所示。
本设计选用的EEPROM是24FC1025,它支持单字节读取和多字节读取命令。FPGA在对24FC1025芯片进行单字节读操作时,首先需要发送一个开始位,即在时钟为高电平时将数据线拉低;之后发送写命令字,在24FC1025返回ACK后,FPGA通过数据线将所要读取的数据地址发送至存储器,24FC1025重新返回ACK,表明地址已被正确接收;FPGA再次发送开始位,并将读命令字发送至数据线;24FC1025正确接收读命令字后,返回ACK,开始把所要读取的数据按位送至数据线。24FC1025的读取操作执行过程中控制字格式如图4所示。
在FPGA对24FC1025进行读操作时,所有数据位的接收都是在时钟的上升沿执行。本设计中FPGA的全局时钟为9.6MHz,通过分频I2C接口采用的时钟为400K,通过ModelSim软件进行仿真,时序如图5所示。
4 DA模块的驱动实现
跳频电调滤波器FPGA控制单元读取到对应频点的调谐电压参数后,将10比特电压参数发送至DA模块,转换成模拟电压后控制带通电调滤波器的中心频率。本设计中采用AD5310作为DA模块的数模转换芯片。可以采用同步串口对AD5310芯片的内部寄存器进行写操作,来调整输出电压的值,其串口写操作的时序如图所示。其中SCLK为串口时钟信号,在其下降沿时AD5310采样数据线上的电平;
AD5310内部设有16位寄存器,其按位的功能定义如图7所示。前两位为和最后两位是预留的比特位,可以忽略。寄存器的第2至第11位是数据位,第12和13位是模式选择位(00时为正常操作模式,其它为低功耗模式)。
按照以上功能定义,通过Verilog HDL语言对DA模块进行驱动编码,得到基于ModelSim的时序仿真结果如图8所示。
5 结束语
在ISE集成开发环境下,通过VerilogHDL 描述语言编码完成了跳频电调滤波器中FPGA控制系统的软件设计,包括FPGA作为从机接收来至综合业务模块发送的频率字信息的SPI接口代码实现,FPGA通过I2C接口读取EEPROM中存储的调谐电压参数的代码实现,以及DA模块的驱动实现。通过Modelsim软件对各个模块的代码进行时序仿真,结果表明控制系统软件可以满足对跳频电调滤波器中心频率的控制。
同时,该跳频电调滤波器在调试完成之后,通过调试终端软件发送频率控制信息,使所设计的跳频电调滤波器工作在相应的频率,通过矢量网络分析仪可以得到每个频率的性能参数曲线,还得出了所设计制作的跳频滤波器在工作频段(30~88M)的详细工作参数(测试数据),由于篇幅所限,本文不列出了。
在军用超短波电台的射频前端,为了使电台具有更好的频率选择性和抗干扰性,通常要求跳频滤波器具有更陡峭的衰减特性。为了达到更好的工程应用效果可采用如图9所示的设计方案。该方案已在某型号电台的研制应用中得到验证,可以提高电台的灵敏度与抗干扰性能,是跳频电调滤波器使用方案的一种有效改进。
参考文献:
[1] Jose I.Alonso. Cesar Briso-Rodrigue. Tunable Filter with Continuous Control of Center Frequency and Bandwith[J]. IEEE Transactions on Microwave Theory and Techniques.2005,53(1):191-199.
[2] 孙航,胡灵博,于联锋. Xilinx可编程逻辑器件应用与系统设计[M]. 北京:电子工业出版社,2008: 5-16.
[3] 尤志刚, 林先其, 邓立科.电调谐滤波器的研究与设计[J]. 通信技术, 2011(1): 162-167.
[4] 华清远见嵌入式培训中心 .FPGA应用开发入门与典型实例[M]. 北京:人民邮电出版社, 2008: 185-195.
[5] 史水娥, 杨豪强, 秦鑫. 基于单片机的UHF电调滤波器的实时调谐设计[J]. 河南师范大学学报,2009(9): 51-53.
[6] 陈艳华,李朝晖,夏玮. ADS应用详解—射频电路设计与仿真[M]. 北京:人民邮电出版社, 2008: 70-79.
[7] Analog Device Inc. AD5310 Data Sheet.1999.
推荐访问: 滤波器 控制 设计 软件 FPGA