冷建伟 徐琼琼
(1.天津市复杂系统控制理论及应用重点实验室,天津 300384;2.天津理工大学自动化学院,天津 300384)
锯齿波信号经常被用作一种基准信号,广泛应用于测距系统、激励和时域响应电路系统中[1]。产生锯齿波信号的传统方法之一是直接用信号发生器,但信号发生器体积庞大、不便移动且不利于控制。另一种方法是设计振荡电路产生锯齿波,如555振荡电路。这种电路不需要单片机或FPGA控制,设计电路非常复杂,若要改变其频率必须改变外围电路中的电容和电阻,频率可调范围很小,而且这种信号源的电容、电阻很大,增加了元器件的制作难度[2]。在工业控制、激光测距及生物医学等研究领域,都要求基准信号源的可调范围较宽,针对这一问题,笔者以单片机为主控器,FLASH作为FPGA的外部存储器存储波形数据,配合DA转换器,设计了一种频率、幅值和直流分量可调的锯齿波信号发生器,产生的扫频锯齿波信号用于雷达测距系统输入压控振荡器(VCO)产生电调电压。
本设计采用M430F169单片机,FPGA选用Altera公司的CycloneII系列EP2C8Q208C8N芯片,配合高速数模转换芯片AD768,作为扫频信号发生器的主要控制和转换部分。系统的组成框图如图1所示。
图1 锯齿波信号发生器组成框图
系统主要采用单片机进行控制,所需的波形数据由上位机提供,上位机通过RS232串口和单片机实现通信,单片机将波形数据读、写到存储器FLASH中。由于雷达测距精度与电调电压的线性度成正比,需要通过调频电压来补偿,若DA输出电压不可调会影响测距精度[3]。因此,本设计利用FPGA内部丰富的资源解决这一问题,同样也解决了单片机与FLASH连接端口复用的问题。当系统开始工作时,FPGA控制逻辑会从FLASH中读取波形,并输出至DAC进行模数转换输出。信号的频率由硬件拨码开关控制[4]。
本设计中单片机的主要作用是将上位机提供的波形数据存储到FLASH中。与上位机的通信通过RS232电路完成,RS232电路设计采用MAX232标准串口设计芯片。该芯片采用+5V单电源供电。MAX232外围电路如图2所示。
M430单片机的接口采用标准JTAG模式,将波形程序烧写至单片机,再存储到存储器FLASH中[5]。单片机引脚与JTAG接口电路如图3所示。
由于系统掉电后FPGA不保存数据,所以通常在应用中设计外部存储电路。本设计选用的FLASH存储器为AT49BV320,该芯片为3.3V单电源供电芯片。FLASH外围电路设计如图4所示。
图2 MAX232外围电路
图3 单片机JTAG接口电路
图4 FLASH外围电路
AT49BV320 FLASH具有20条地址线和16条数据线,1MByte内存。该芯片用于存储锯齿波数据,FPGA为其提供地址线和数据线的控制时序。图5所示为FPGA控制FLASH的逻辑电路,该电路采用QuartusII原理的硬件编程方式绘制。74157的SEL信号由单片机控制选择FLASH的读/写模式。FLASH的硬件地址由4个四位二选一74157和计数器提供。
图5 FLASH控制信号逻辑
数模转换的输出控制信号由FPGA分频提供,FPGA的外部晶振选用24.48MHz,应用中设计拨码开关来选择输出频率。FPGA内部分频逻辑如图6所示。
图6 FPGA内部分频
数模转换模块采用16位高精度芯片AD768。为满足整个系统的需要,本设计中扫频信号发生器的输出电压为0~10V可调,采用ML358运算放大器将AD的输出电流转换成电压信号输出。DA转换电路如图7所示。
DA数据线控制逻辑由两个三态总线驱动控制器产生,如图8所示,D0~D7为单片机数据线,DAD0~DAD7为FLASH数据线。输出方向控制信号由DIR提供,当DIR为1时,数据由A输出至B,并往FLASH里写程序;DIR为0时,数据输出由B至A,FPGA从FLASH中读取数据。
图7 DA转换电路
图8 DA数据线产生逻辑
本设计的单片机软件环境为IAR for MSP430,将程序烧写至单片机的存储器FLASH中。FPGA软件环境为Altera QuartusII9.0,对FPGA控制逻辑进行功能仿真,仿真部分结果如图9所示,DA0~DA19为FPGA为FLASH提供的时序控制逻辑。XZCS7、XWE0和XRD信号由单片机控制。
图9 FPGA仿真测试结果
由仿真结果可以看出这种方法提供的信号精确稳定,并且方法简单方便。
通过LabVIEW示波器观察系统最终的输出波形,如图10所示,发现锯齿波的波形在上升至4.9V时并不是立即开始下一个波形,这是由于硬件原因造成的延迟,因此在实际项目中要根据需要进行去回扫等改进才能获得更准确的雷达信号。
图10 信号发生器输出锯齿波信号
通过示波器观察分析,笔者设计的信号发生器实现了触发雷达信号所需要的4种频率的锯齿波信号的输出,且幅值、直流分量可调。信号发生器硬件电路简单、成本较低,可以根据实际应用的要求,通过更改软件程序来实现不同信号的输出。实验结果表明:本设计中输出的信号频率稳定可调、抗干扰能力强,同时系统具有很强的灵活性。