合成孔径雷达系统综合测控器的研制
2008-07-07
作者:王 朔1,2, 禹卫东2
摘 要: 介绍了一种合成孔径雷达系统综合测控器的研制,以51单片机为核心,协同复杂逻辑门阵列(CPLD)、现场可编程门阵列(FPGA)及液晶显示模块" title="液晶显示模块">液晶显示模块(LCM)等外围电路共同工作,集成了定时信号" title="定时信号">定时信号产生、基准频率" title="基准频率">基准频率信号产生、控制信号输出、监测信号输入并显示等功能。
关键词: 合成孔径雷达 控制 测试 单片机 现场可编程门阵列
合成孔径雷达SAR(Synthetic Aperture Radar)是一种先进的对地遥感工具,它可以获得目标的高分辨率图像。与光学遥感相比,具有全天时、全天候工作、穿透障碍物成像等优势。
SAR系统是一个复杂的电子系统,由定时、基准频率产生、信号发射/接收、数据存储和传送等许多部分组成。在SAR系统的研制过程中,需要对各个部分进行细致的调试和测试,然后进行集成测试。普通的测试设备只能针对SAR系统某一组成部分,功能单一缺乏通用性,特别是在集成测试时需要提供许多的检测设备,各检测设备间缺乏联系,给测试工作带来了不便。
本文介绍了一种集成化的测控设备,它综合了SAR系统各分机检测设备的功能,具有监测工作状态、发送各种控制信号、提供基准频率和定时信号、发送数据和供电等通用功能,同时还针对单个测试对象的需要设计了相应的特殊功能。体积小,功能多,使用方便。对整个SAR系统的调试测试只需要一台设备,免去了使用多个检测设备带来的不便。本文从描述功能入手,简要叙述了综合测控器的硬件组成,最后介绍了相关软件的设计方法。
1 测控器主要功能
合成孔径雷达综合测控器在测试中需要提供的信号通常有六种:(1) 控制信号:用于设定被测对象的工作参数,在不同的工作模式间切换;(2) 监测信号:接收被测对象输出的工作状态信号并将其显示,以便操作人员能及时了解系统的运行情况。(3) 定时基准信号:用于同步SAR系统各部分,使它们协同工作;(4) 基准频率信号" title="频率信号">频率信号:以一个参考频率信号为基准,综合产生全相干、高稳定度及低相位噪声的多个工作频率信号,基准频率信号是SAR系统各组成部分工作的基准时钟信号,一切工作的时序都基于此;(5)辅助数据:测控器将被测对象所需的关于工作参数等相关信息的数据送入辅助数据接口" title="数据接口">数据接口缓存后再送至被测对象; (6)供电:为综合测控器和被测对象提供各种直流电源。
2 硬件设计
本设计采用单片机AT89C55作为控制核心,由CPLD辅助提供各芯片的控制逻辑;使用液晶显示模块和键盘提供友好的人机交互界面来设定工作模式和工作参数,输出相应的控制信号,并将各分机输出的测试信号显示于液晶屏幕上;由FPGA提供各被测分机正常工作所需要的定时同步信号、基准频率信号;用一片先进先出存储器(FIFO)作为辅助数据接口,向被测对象发送辅助数据;用交流转直流的开关电源为自身和被测分机供电。整个硬件结构如图1所示。
下面从功能对应硬件的角度详细介绍硬件组成结构。
2.1 控制核心
综合测控器的核心是单片机,通过对单片机编程实现人机交互过程和对其他芯片的控制。考虑到待测项目较多、人机交互窗口的编程量较大,需要较多的程序存储器,而且没有复杂的数学计算,采用了ATMEL公司的AT89C55,它与通用的8051芯片的区别在于有更大(20KB)的程序存储器、更大(256B)的数据存储器和三个定时器。由外接的时钟信号产生器给单片机提供时钟。为了防止单片机运行时程序进入死循环,使用一片MAX813L作看门狗。单片机通过地址总线、数据总线、读写控制线和经过CPLD产生的片选等逻辑信号来控制其他芯片的工作。
2.2 人机交互
2.2.1 键盘
采用专门定制的薄膜键盘配合8279芯片,它是INTEL公司的一款能控制矩阵键盘和数码管显示器的芯片。8279由单片机的ALE引脚提供时钟信号,工作在解码扫描模式,操作人员由键盘设定被测对象的工作模式、输入工作参数,8279获取矩阵键盘的按键信息并以中断方式通知单片机响应。单片机根据测控器当前工作状态和按键值决定采取何种操作。
2.2.2 液晶显示模块(LCM)
用以显示人机交互界面和被测对象输出的监测信号。
液晶显示器显示汉字的原理[1]是将一个汉字视为16×16的点阵图像,某一点的控制逻辑为1则亮,为0则暗,这样一个汉字需要16×16=256位=32字节的数据。传统的图形液晶显示器需要提供每个汉字的点阵数据,如果汉字数量多,提取汉字点阵数据的工作将变得相当繁琐。本设计使用带汉字库的液晶显示模块(LCM),要显示一个汉字,单片机只需向LCM写入2字节的汉字内码,提取汉字点阵数据的工作由LCM完成。采用自带字库的LCM有两个优势:①每个汉字可节省32-2=30字节的存储空间,对于资源有限的单片机来说非常实用;②从简化编程的角度考虑,写入2字节的汉字内码比写入32字节的点阵数据要方便得多,方便编程。
根据以上分析,本设计采用北京青云创新公司的自带中文字库的单色液晶显示模块LCM24064ZK。
2.3 控制信号输出
单片机将操作员输入的控制信息转换为1~2字节的二进制数输出。由于单片机的并口资源有限,需要外接82C55作为并行输出接口将控制信号传送至被测对象。在实际应用中,为了减小环境温度和噪声对信号传输质量的影响,加入输出输出驱动器,即将82C55输出的TTL信号通过芯片DS26LS31C转换成RS-422平衡差分信号输出。平衡差分信号(Balanced Differential Signal)可以有效地抑制共模噪声,增加信号传输距离和传输可靠性[2]。
2.4 监测信号输入和显示
SAR系统的监测信号有模拟和数字两种。
数字监测信号可以直接通过单片机并口输入,如果某一位信号是‘0’则表示该信号对应的硬件工作不正常,如为‘1’则表示工作正常。单片机根据需要在屏幕上显示相关文字信息。
SAR系统的模拟监测信号路数较多,故采用自带16路选择开关的模数转换器ADC0816,它由单片机的地址线选择对某一路模拟信号采样,单片机发送一个脉冲启动A/D转换器,读入转换后的8位数据,进行数学处理,再将结果显示于屏幕上。
2.5 辅助数据输出
辅助数据接口由一片先进先出存储器(FIFO)IDT72200及输出驱动组成。FIFO有两个I/O接口,它们可以工作在不同的时钟频率下,能在具有不同工作频率的两个系统之间传送数据。
将一个数据接口与单片机相连,由单片机的写信号线(WR)作FIFO的写时钟,通过单片机的数据总线将操作员设置的辅助数据写入FIFO暂存;另一个数据接口与被测对象相连,由被测对象提供FIFO的读时钟。当单片机将数据都写入辅助数据接口后发出一个握手信号通知被测对象读取辅助数据。
2.6 基准频率和定时信号产生
基准频率将作为被测对象的基准工作时钟;定时信号是一系列满足特定时间关系的脉冲。定时信号的频率和起始时刻都可调。基准频率和定时信号选用XILINX公司的SPARTANIII FPGA产生,型号是XC3S1500[3]。FPGA的结构如图2所示。
单片机通过数据总线、地址总线、读写控制线和片选线连接FPGA。用一片时钟信号产生器或经过整形的外接时钟源为FPGA提供时钟信号。它经过FPGA内部的数字时钟管理器(DCM)分频或倍频后产生所有频率信号和定时信号,这样能保证产生的所有信号是高度相干的。操作员通过人机交互界面输入定时信号的频率、起始时刻等参数,单片机将这些参数写入FPGA的RAM中存储,作为延时计数器的初始值。FPGA中的延时计数器启动后,就会按照要求产生精确的频率信号和定时信号。图3显示了单片机向FPGA的RAM写数据的时序和FPGA产生的定时信号。
2.7 电源
综合测控器使用220V交流电,用开关电源将交流电转换成直流电,为被测对象供电;在测控器内部,各个芯片根据需要使用相应的DC/DC模块进行二次电源转换。
3 软件设计
3.1 单片机编程
用汇编语言编写的程序可读性差且不易修改;C语言直观易用,而且有许多函数库可调用[4]。故采用C语言编写单片机程序,编译器是KEIL UV3。关于单片机对外围电路控制的方法在许多教材中都有详细的讲解,本文不再详述。
编程的重点在于人机交互的实现。由于是集成化的检测设备,被测对象较多,人机交互界面多,编程任务量大。人机交互有两个难点,一是汉字的显示,二是多级窗口的实现。
3.1.1 汉字的显示
由于采用了带中文字库的LCM,要显示一个汉字只需写入2字节的汉字内码[5]。具体做法是:用C语言编程,将要显示的若干汉字(或者英文和数字)定义为一个字符串,按顺序将字符串的每个字符写入LCM后即可显示相应汉字。以笔者使用的LCM24064ZK为例,部分程序如下:
#include
#define LcmData XBYTE[地址] //LCM的数据接口
sbit Busy = Px^x;
//用单片机的Px.x口连接忙碌标志位
unsigned char s[]=“你好!ABC”; //要显示的内容
void show_a_sentence(*s) //显示一句话的函数
{
while (*s!=‘0’) { //判断字符串是否结束
while (Busy==1); //如果LCM忙碌则一直等待
LcmData = *s; //输出一字节汉字内码
s++; //指针指向下一字节内码
}
}
在这个例子中没有列出LCM初始化的程序,在实际应用中这是与具体的LCM型号有关的,请参考相应的数据手册。在主函数main中只要调用函数show_a_sentence(s),单片机便将汉字内码一个个地写入LCM的数据存储器,即可在液晶屏幕上显示“你好!ABC”。
用C语言编程省去了查询汉字内码的步骤,大大提高了工作效率。
3.1.2 多级窗口的实现
假设现在系统处于窗口A1的状态,A1有三个子选项B1、B2、B3,现在的任务是等待按键。如果按下的是数字键1、2或3则根据按键值判定进入B1、B2或B3子选项;如果按下的是返回键则返回上一级窗口。假设选择了第一项B1,程序进入B1窗口,然后等待按键。如图4所示。
编程时,事先根据键盘控制芯片8279的硬件接线情况,用宏#define定义BACK、KEY1、KEY2、KEY3分别对应于键盘上的“返回”、“1”、“2”、“3”各键的键值,将NO_EFFECT定义为一个不存在的键值,表示按键无效。函数show_A1()的功能是显示窗口A1的内容,函数getkey()获取按键值。
void A1() //调用此函数进入A1窗口
{
unsigned char key; //声明存储按键值的变量
show_A1(); //显示窗口A1
do {
key=getkey(); //获取按键值
switch (key) { //由键值判定采用何种操作
case BACK: return; break; //返回上级窗口
case KEY1: B1(); break; //进入B1窗口
case KEY2: B2(); break; //进入B2窗口
case KEY3: B3(); break; //进入B3窗口
default: key=NO_EFFECT; //按键无效
}
}while (key==NO_EFFECT)//当按键无效时重新选择
}
3.2 FPGA的VHDL编程
如前所述,雷达测控器需要用FPGA来提供各种基准频率和定时信号,即需要FPGA对一个输入时钟进行分频、倍频、延时等操作。现在FPGA中集成了很多具有特定功能的模块,使用这些模块可以方便地获得高质量、高性能的信号。SPARTAN III系列FPGA通过数字时钟管理器DCM(Digital Clock Manager)使用户灵活、完全地控制时钟频率和相位偏移。即使工作环境的温度和电压在一定范围内有变动,DCM仍可以保持高精度的信号质量。DCM的分频功能可以达到原时钟信号频率的1/16,倍频功能可以达到32倍,而且可消除由电路传播延时导致的输出信号与输入信号之间的相位差。XILINX 推出的集成设计环境(ISE)中提供了DCM的VHDL模板,用模板定义好输入输出信号和频率参数即可方便地运用DCM。关于VHDL硬件描述语言的使用可以参考相关教材。
4 雷达综合测控器的使用
使用综合测控器,能提供任何一个预定被测对象所需要的测试信号。测控器的接口是通用的,不同的分机通过各自的数据传输电缆与之连接。将各电缆线连接好后,启动电源,进入主界面,根据提示选择被测对象,进入与之相关的监控界面进行测试与控制。在实际运行中,整个系统工作正常,完成了预定的功能要求。
用单片机作控制器对整个设备各芯片的工作进行调度,简单方便;用FPGA产生频率和定时信号,精度高。以此为基础的合成孔径雷达综合测控器实现了监测、控制、信号产生、数据传输等多种功能,功能强、体积小、集成度高,在SAR系统调试和测试中有很大的应用价值。本文介绍的硬件设计方案和液晶显示模块的使用方法在其他硬件系统的设计中也具有一定的参考价值。
参考文献
[1] 李华. MCS-51系列单片机实用接口技术[M]. 北京:北京航空航天大学出版社, 1996.
[2] National Semiconductor, Inc. TIA/EIA-422-B Overview [EB/OL]. http://www.national.com.
[3] Xilinx, Inc. Spartan-3 FPGA Family:Complete Data Sheet [EB/OL].[2006-04-26].http://www.xilinx.com.
[4] 徐爱钧,彭秀华. 单片机高级语言C51 Windows环境编程与应用[M]. 北京:电子工业出版社, 2004.
[5] 北京青云创新科技发展有限公司.图形液晶显示模块LCM24064ZK使用说明书[EB/OL]. http://www.qingyunit.com.