1引言
某型空管二次雷达应答机系统是一种全固态化的A/C模式应答机,用于空中交通管制。它与地面二次雷达站配合工作,能在各种气候条件下,及时、连续、准确地提供载机的距离、方位、飞机代码、飞行高度、危急状态等信息。实现对飞机的有效跟踪、监视、管制、从而确保空域中各个飞机间的最小安全飞行距离,尤其在繁忙的大机场空域,保障飞行安全。某型空管二次雷达应答机的基本组成为应答机主机、应答机控制盒、天线三部分,另有闭锁信号交联盒供不同装机环境的需求选用。
应答机主机通过天线接收地面站的询问信号,在机内微处理器的控制管理下,对接收到的脉冲信号处理识别,根据询问信号模式,产生相应的应答信号,经功率放大后由天线发射至地面询问站。当询问信号模式为A模式时,回答飞机的代码;当询问信号模式为C模式时,回答飞机的高度信息,其中回答的高度信息中的高度值是来自高度源的高度数据中的高度值。
为了在工作房、实验室等没有高度源的环境中测试应答机主机高度信号接收和处理功能是否正常,需要设计高度源模拟器。模拟高度源向应答机主机发送高度信号,其发送的高度值可以通过按键设置,并将高度值显示出来,用于与应答机比对。若应答机控制盒面板上LED显示器显示的高度值与高度信号模拟器设置的高度值相同,则说明应答机主机高度信号接收和处理功能正常。
2高度编码
高度源向应答机发送的数据是先对高度值进行编码,再根据高度编码按照一定的格式生成一条高度数据。其编码方法如下:
(1)高度格雷码编码
高度编码由国际民航组织规定,高度范围为-1 200~126 700英尺,高度编码增量为100英尺(100英尺=30.48 m)。高度编码采用11位脉冲以格雷码格式进行,11位脉冲编成三组,其编排顺序为:
D2 D4 A1 A2 A4 B1 B2 B4 C1 C2 C4
脉冲组D2 D4 A1 A2组成每8 000英尺高度增量的16个格雷码;
脉冲组A4 B1 B2 B4组成每500英尺高度增量的16个格雷码;
脉冲组C1 C2 C4组成每100英尺高度增量的5个“五周期循环码”。
为了便于负数高度值的编码,以上在计算高度增量之前应先把高度值加1 200英尺。
(2)高度数据格式
一条完整的高度数据信息由4个数据字节组成,每个字节包含1个起始位(0),8位数据位,1个奇校验位和1个终止位(1)。第1个数据字节为同步字节(01010010111),第2个数据字节的8位数据位为(C4C2C184B281A1A2),第3个数据字节的8位数据位为(A1D4D200000),第4个数据字节的8位数据位的每一位为前3个数据字节数据位的相应位取异或。每个数据字节的奇检验位为本字节8位数据位奇检验。详细高度数据格式见表1。
(3)串口发送方法
一条完整的高度信息的发送方法:先低字节后高字节,先低位后高位。传输比特率为9 600 b/s。数据刷新率为35±15 ms。
3硬件结构和工作流程
根据高度源模拟器所要实现的功能,可以设计高度源模拟器由FPGA(现场可编程门阵列)、LCD显示器、4个按键、RS 422驱动器、时钟信号、电源等组成。高度源模拟器原理框图如图1所示。
其中,由于高度数据传输比特率为9 600 b/s,因此所选初始时钟频率必须大于9 600 Hz,可选用19 200 Hz的时钟。高度源高度范围为001 000~126 700英尺,高度编码增量为100英尺,共有4位发生变化,因此可选4个按键分别控制高度值各位递增,其中首位0~1递增,其余3位0~9递增。对于LCD显示器,能显示4位数字即满足要求,普通LCD均可用。RS 422驱动器用来完成发送数据的TTL电平与RS 422标准电平的转换。硬件电路主要进行按键控制、LCD显示、输入高度数值编码转换和发送,使用基于FPGA采用VHDL(硬件描述语言)和逻辑综合为基础的自顶向下的电路设计方法,具有开发成本低、周期短、可靠性高、功能升级方便的优点。
高度源模拟器主要工作流程为:系统不停地等待按键动作,若按键被操作,则系统将对应的按键操作转换成十进制高度值输出至LCD,同时进行数据转换,转换为待发送的数据报文,每35±15 ms发送一次串口数据报文,传输比特率为9 600 b/s。
4 FPGA功能模块设计与仿真调试
为了便于设计,FPGA内部分为五个模块进行VHDL描述。分别为:时钟分频模块,按键控制模块,LCD显示模块、数据处理模块、RS 422串口数据发送模块。如图2所示。
4.1 时钟分频模块
时钟分频模块为把初始输入时钟信号分频为各种需要的时钟信号。根据系统设计需求,共需产生3种频率的时钟信号(设初始时钟频率为19.2 kHz):
(1)9.6 kHz(104.1 ns)(2个初始时钟周期)时钟信号用于发送一位数据(串行通信的波特率9 600 b/s);
(2)25 Hz(40 ms)(800个初始时钟周期)用于按键去抖动和发送一次数据报文;
(3)2.5 Hz时钟信号(400 ms)(8 000个初始时钟周期)用于LCD刷新。
4.2按键控制模块
共有4个按键,分别控制高度值十进制的4位。首先应对4个按键进行防抖动处理,然后控制最高位按键按动使高度值最高位0~1递增,其余3个按键使高度值相应位0~9递增,且应满足高度值范围为0000~1267。得到高度值后输出至LCD显示模块和数据处理模块。
4.3 LCD显示模块
将4个按键控制的高度数值显示在LCD显示器上,并增加2个“0”,以还原真实6位高度值,并实时刷新。一般字符型LCD显示器都附带ASCII码字符,只需直接调用显示即可。
4.4数据处理模块
根据前面叙述的高度编码和数据格式,可以将数据处理模块分为3个子过程,每个过程进行优化简化后得到最后算法,用伪代码表示如下:
(1)高度数值转换为自然二进制编码
高度数值/100+12→得到新高度数值
(新高度数值/5)→进行8位二进制转换→得到自然二进制高度编码前8位
(2)自然二进制高度编码转换为格雷码二进制高度编码
自然二进制高度编码前8位→格雷码转换(左移1位,与移位前异或)→高度编码前8位
新高度数值的个位→对应的五周期循环码→高度编码后3位
(3)高度格雷码二进制编码按照高度数据格式生成高度数据
11位高度编码→填入高度数据相应位置
高度数据前3 B的相应位→异或运算→填人高度数据第4 B相应位
高度数据每个字节的数据位→奇检验→填入高度数据每个字节的奇检验位
至此,高度数据计算完毕。
4.5 RS 422串口数据发送模块
根据高度数据按9 600 p/s的速率异步发送,每40 ms装入新高度数据。
4.6仿真调试
使用Active HDL 6.1仿真软件进行仿真,仿真结果与理论设计结果完全吻合。图3所示的是高度值为123 700英尺的仿真截图,图中,转换后的二进制格雷码高度编码为1000 0101 001,高度数据为1110001000010000001000 10001010010 11101001010,这是为了下一步串口发送提供方便而经过反转处理的,实际高度数据信号应为01010010111 01001010001 0001000000100001000111,串口发送数据为:0101001011101001010001 00010000001 00001000111(图中用红色标注),与高度数据一致。经验证高度编码、高度数据和串口发送数据都是正确的。
5结 语
本文介绍了基于FPGA的空管应答机高度源信号模拟器的电路设计过程,包括飞机高度数据的编码和格式、系统硬件结构和工作流程以及PGA功能模块设计和VHDL编程实现等。文中提出的数据转换算法经仿真后验证正确,且经过优化,节约了FPGA芯片资源,转换速度快、延时小。在设计过程中由于采用了FPGA和硬件描述语言,在硬件电路不加改变的前提下,功能改进和升级十分方便,稳定性好、可靠性高、成本低廉。